Commit Graph

60 Commits

Author SHA1 Message Date
Jakub Jelinek c4d5ab5d09 genrecog.c (validate_pattern): Add VEC_SELECT validation.
* genrecog.c (validate_pattern): Add VEC_SELECT validation.
	* genmodes.c (emit_min_insn_modes_c): Call emit_mode_nunits
	and emit_mode_inner.

From-SVN: r246460
2017-03-24 15:09:33 +01:00
Jakub Jelinek cbe34bb5ed Update copyright years.
From-SVN: r243994
2017-01-01 13:07:43 +01:00
Kirill Yukhin 5fbb13a720 Enable AVX512_4FMAPS and AVX512_4VNNIW instructions
This requires additional patch for register allocator from Vladimir
Makarov.

gcc/

2016-11-17  Kirill Yukhin  <kirill.yukhin@gmail.com>
	    Andrew Senkevich <andrew.senkevich@intel.com>

	* common/config/i386/i386-common.c
	(OPTION_MASK_ISA_AVX5124FMAPS_SET,
	OPTION_MASK_ISA_AVX5124FMAPS_UNSET,
	OPTION_MASK_ISA_AVX5124VNNIW_SET,
	OPTION_MASK_ISA_AVX5124VNNIW_UNSET): New.
	(ix86_handle_option): Handle OPT_mavx5124fmaps,
	OPT_mavx5124vnniw.
	* config.gcc: Add avx5124fmapsintrin.h, avx5124vnniwintrin.h.
	* config/i386/avx5124fmapsintrin.h: New file.
	* config/i386/avx5124vnniwintrin.h: Ditto.
	* config/i386/constraints.md (h): New constraint.
	* config/i386/cpuid.h: (bit_AVX5124VNNIW,
	bit_AVX5124FMAPS): New.
	* config/i386/driver-i386.c (host_detect_local_cpu):
	Detect avx5124fmaps, avx5124vnniw.
	* config/i386/i386-builtin-types.def: Add types
	V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF_V16SF_UHI,
	V16SF_FTYPE_V16SF_V16SF_V16SF_V16SF_V16SF_PCV4SF,
	V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF,
	V4SF_FTYPE_V4SF_V4SF_V4SF_V4SF_V4SF_PCV4SF_V4SF_UQI,
	V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI,
	V16SI_FTYPE_V16SI_V16SI_V16SI_V16SI_V16SI_PCV4SI_V16SI_UHI.
	* config/i386/i386-builtin.def (__builtin_ia32_4fmaddps_mask,
	__builtin_ia32_4fmaddps, __builtin_ia32_4fmaddss,
	__builtin_ia32_4fmaddss_mask, __builtin_ia32_4fnmaddps_mask,
	__builtin_ia32_4fnmaddps, __builtin_ia32_4fnmaddss,
	__builtin_ia32_4fnmaddss_mask, __builtin_ia32_vp4dpwssd,
	__builtin_ia32_vp4dpwssd_mask, __builtin_ia32_vp4dpwssds,
	__builtin_ia32_vp4dpwssds_mask): New.
	* config/i386/i386-c.c (ix86_target_macros_internal):
	Define __AVX5124FMAPS__, __AVX5124VNNIW__.
	* config/i386/i386-modes.def: Fixed comment typos, added new
	modes (VECTOR_MODES (FLOAT, 256), VECTOR_MODE (INT, SI, 64)).
	* config/i386/i386.c (ix86_target_string): Add -mavx5124fmaps,
	-mavx5124vnniw.
	(PTA_AVX5124FMAPS, PTA_AVX5124VNNIW): Define.
	(ix86_option_override_internal): Handle new options.
	(ix86_valid_target_attribute_inner_p): Add avx5124fmaps,
	avx5124vnniw.
	(ix86_expand_builtin): Handle new builtins.
	(ix86_additional_allocno_class_p): New.
	* config/i386/i386.h (TARGET_AVX5124FMAPS,
	TARGET_AVX5124FMAPS_P,
	TARGET_AVX5124VNNIW,
	TARGET_AVX5124VNNIW_P): Define.
	(reg_class): Add MOD4_SSE_REGS.
	(MOD4_SSE_REG_P, MOD4_SSE_REGNO_P): New.
	* config/i386/i386.opt: Add mavx5124fmaps, mavx5124vnniw.
	* config/i386/immintrin.h: Include avx5124fmapsintrin.h,
	avx5124vnniwintrin.h.
	* config/i386/sse.md (unspec): Add UNSPEC_VP4FMADD,
	UNSPEC_VP4FNMADD,
	UNSPEC_VP4DPWSSD, UNSPEC_VP4DPWSSDS.
	(define_mode_iterator IMOD4): New.
	(define_mode_attr imod4_narrow): Ditto.
	(define_insn "mov<mode>"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddps"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddps_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddps_maskz"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddss"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddss_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fmaddss_maskz"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddps"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddps_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddps_maskz"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddss"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddss_mask"): Ditto.
	(define_insn "avx5124fmaddps_4fnmaddss_maskz"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssd"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssd_mask"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssd_maskz"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssds"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssds_mask"): Ditto.
	(define_insn "avx5124vnniw_vp4dpwssds_maskz"): Ditto.
	* init-regs.c (initialize_uninitialized_regs): Add emit_clobber call.
	* genmodes.c (mode_size_inline): Extend return type.
	* machmode.h (mode_size, mode_base_align): Extend type.

gcc/testsuite/

2016-11-17  Kirill Yukhin  <kirill.yukhin@gmail.com>
	    Andrew Senkevich <andrew.senkevich@intel.com>

	* gcc.target/i386/avx5124fmadd-v4fmaddps-1.c: New test.
	* gcc.target/i386/avx5124fmadd-v4fmaddps-2.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fmaddss-1.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fnmaddps-1.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fnmaddps-2.c: Ditto.
	* gcc.target/i386/avx5124fmadd-v4fnmaddss-1.c: Ditto.
	* gcc.target/i386/avx5124fmaps-check.h: Ditto.
	* gcc.target/i386/avx5124vnniw-check.h: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssd-1.c: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssd-2.c: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssds-1.c: Ditto.
	* gcc.target/i386/avx5124vnniw-vp4dpwssds-2.c: Ditto.
	* gcc.target/i386/avx512f-helper.h: Add avx5124fmaps-check.h,
	avx5124vnniw-check.h.
	* gcc.target/i386/i386.exp (check_effective_target_avx5124fmaps,
	check_effective_target_avx5124vnniw): New.
	* gcc.target/i386/m128-check.h (ESP_FLOAT, ESP_DOUBLE):
	Set under ifndef.
	* gcc.target/i386/sse-12.c: Add -mavx5124fmaps, -mavx5124vnniw.
	* gcc.target/i386/sse-13.c: Ditto.
	* g++.dg/other/i386-2.C: Ditto.
	* g++.dg/other/i386-3.C: Ditto.
	* gcc.target/i386/sse-22.c: Ditto.
	* gcc.target/i386/sse-23.c: Ditto.

From-SVN: r242569
2016-11-17 14:11:21 -08:00
Martin Sebor 3d7b83b671 c-ada-spec.c (dump_ada_function_declaration): Increase buffer size to guarantee it fits the output of the formatted function...
gcc/c-family/ChangeLog:

	* c-ada-spec.c (dump_ada_function_declaration): Increase buffer
	size to guarantee it fits the output of the formatted function
	regardless of its arguments.

gcc/cp/ChangeLog:

	* mangle.c: Increase buffer size to guarantee it fits the output
	of the formatted function regardless of its arguments.

gcc/go/ChangeLog:

	* gofrontend/expressions.cc: Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.

gcc/java/ChangeLog:

	* decl.c (give_name_to_locals): Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.
	* mangle_name.c (append_unicode_mangled_name): Same.

gcc/ChangeLog:

	* genmatch.c (parser::parse_expr): Increase buffer size to guarantee
	it fits the output of the formatted function regardless of its
	arguments.
	* gcc/genmodes.c (parser::parse_expr): Same.
	* gimplify.c (gimplify_asm_expr): Same.
	* passes.c (pass_manager::register_one_dump_file): Same.
	* print-tree.c (print_node): Same.

From-SVN: r239949
2016-09-01 16:47:49 -06:00
Patrick Palka 524cf1e47a Teach VRP to register assertions along default switch labels (PR18046)
gcc/ChangeLog:

	PR tree-optimization/18046
	* genmodes.c (emit_mode_size_inline): Emit an assert that
	verifies that mode is a valid array index.
	(emit_mode_nuinits_inline): Likewise.
	(emit_mode_inner_inline): Likewise.
	(emit_mode_unit_size_inline): Likewise.
	(emit_mode_unit_precision_inline): Likewise.
	* tree-vrp.c: Include params.h.
	(find_switch_asserts): Register edge assertions for the default
	label which correspond to the anti-ranges of each case label.
	* params.def (PARAM_MAX_VRP_SWITCH_ASSERTIONS): New.
	* doc/invoke.texi: Document it.

gcc/testsuite/ChangeLog:

	PR tree-optimization/18046
	* gcc.dg/tree-ssa/ssa-dom-thread-6.c: Bump FSM count to 5.
	* gcc.dg/tree-ssa/vrp103.c: New test.
	* gcc.dg/tree-ssa/vrp104.c: New test.

From-SVN: r238761
2016-07-26 15:19:58 +00:00
Uros Bizjak dd4786fe81 cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
* cse.c: Use HOST_WIDE_INT_M1 instead of ~(HOST_WIDE_INT) 0.
	* combine.c: Use HOST_WIDE_INT_M1U instead of
	~(unsigned HOST_WIDE_INT) 0.
	* double-int.h: Ditto.
	* dse.c: Ditto.
	* dwarf2asm.c:Ditto.
	* expmed.c: Ditto.
	* genmodes.c: Ditto.
	* match.pd: Ditto.
	* read-rtl.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-ssa-loop-prefetch.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree.c: Ditto.

From-SVN: r238529
2016-07-20 17:47:33 +02:00
Uros Bizjak fecfbfa4a2 builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1...
* builtins.c: Use HOST_WIDE_INT_1 instead of (HOST_WIDE_INT) 1,
	HOST_WIDE_INT_1U instead of (unsigned HOST_WIDE_INT) 1,
	HOST_WIDE_INT_M1 instead of (HOST_WIDE_INT) -1 and
	HOST_WIDE_INT_M1U instead of (unsigned HOST_WIDE_INT) -1.
	* combine.c: Ditto.
	* cse.c: Ditto.
	* dojump.c: Ditto.
	* double-int.c: Ditto.
	* dse.c: Ditto.
	* dwarf2out.c: Ditto.
	* expmed.c: Ditto.
	* expr.c: Ditto.
	* fold-const.c: Ditto.
	* function.c: Ditto.
	* fwprop.c: Ditto.
	* genmodes.c: Ditto.
	* hwint.c: Ditto.
	* hwint.h: Ditto.
	* ifcvt.c: Ditto.
	* loop-doloop.c: Ditto.
	* loop-invariant.c: Ditto.
	* loop-iv.c: Ditto.
	* match.pd: Ditto.
	* optabs.c: Ditto.
	* real.c: Ditto.
	* reload.c: Ditto.
	* rtlanal.c: Ditto.
	* simplify-rtx.c: Ditto.
	* stor-layout.c: Ditto.
	* toplev.c: Ditto.
	* tree-ssa-loop-ivopts.c: Ditto.
	* tree-vect-generic.c: Ditto.
	* tree-vect-patterns.c: Ditto.
	* tree.c: Ditto.
	* tree.h: Ditto.
	* ubsan.c: Ditto.
	* varasm.c: Ditto.
	* wide-int-print.cc: Ditto.
	* wide-int.cc: Ditto.
	* wide-int.h: Ditto.

From-SVN: r238481
2016-07-19 18:40:55 +02:00
Michael Meissner 4304ccfd01 machmode.h (mode_complex): Add support to give the complex mode for a given mode.
[gcc]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* machmode.h (mode_complex): Add support to give the complex mode
	for a given mode.
	(GET_MODE_COMPLEX_MODE): Likewise.
	* stor-layout.c (layout_type): For COMPLEX_TYPE, use the mode
	stored by build_complex_type and gfc_build_complex_type instead of
	trying to figure out the appropriate mode based on the size. Raise
	an assertion error, if the type was not set.
	* genmodes.c (struct mode_data): Add field for the complex type of
	the given type.
	(blank_mode): Likewise.
	(make_complex_modes): Remember the complex mode created in the
	base type.
	(emit_mode_complex): Write out the mode_complex array to map a
	type mode to the complex version.
	(emit_insn_modes_c): Likewise.
	* tree.c (build_complex_type): Set the complex type to use before
	calling layout_type.
	* config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Add
	support for __float128 complex datatypes.
	(rs6000_hard_regno_mode_ok): Likewise.
	(rs6000_setup_reg_addr_masks): Likewise.
	(rs6000_complex_function_value): Likewise.
	* config/rs6000/rs6000.h (FLOAT128_IEEE_P): Likewise.
	__float128 and __ibm128 complex.
	(FLOAT128_IBM_P): Likewise.
	(ALTIVEC_ARG_MAX_RETURN): Likewise.
	* doc/extend.texi (Additional Floating Types): Document that
	-mfloat128 must be used to enable __float128.  Document complex
	__float128 and __ibm128 support.

[gcc/fortran]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* trans-types.c (gfc_build_complex_type):

[gcc/testsuite]
2016-05-02  Michael Meissner  <meissner@linux.vnet.ibm.com>

	* gcc.target/powerpc/float128-complex-1.c: New tests for complex
	__float128.
	* gcc.target/powerpc/float128-complex-2.c: Likewise.

From-SVN: r235794
2016-05-02 23:23:45 +00:00
Jakub Jelinek 818ab71a41 Update copyright years.
From-SVN: r232055
2016-01-04 15:30:50 +01:00
David Sherwood f22b057522 genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.
2015-09-01  David Sherwood  <david.sherwood@arm.com>

    gcc/
	* genmodes.c: Add CONST_MODE_UNIT_SIZE modifier.

From-SVN: r227369
2015-09-01 12:40:10 +00:00
David Sherwood 8dc89e4d7e genmodes.c (emit_mode_unit_size_inline): New function.
2015-08-19  David Sherwood  <david.sherwood@arm.com>

    gcc/
	* genmodes.c (emit_mode_unit_size_inline): New function.
	(emit_mode_unit_precision_inline): New function.
	(emit_insn_modes_h): Emit new #define.  Emit new functions.
	(emit_mode_unit_size): New function.
	(emit_mode_unit_precision): New function.
	(emit_mode_adjustments): Add mode_unit_size adjustments.
	(emit_insn_modes_c): Emit new arrays.
	* machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
	use new inline methods.

From-SVN: r227013
2015-08-19 15:23:11 +00:00
David Sherwood 1c0e448f4b arm.c (neon_element_bits, [...]): Call GET_MODE_INNER unconditionally.
gcc/
2015-07-28  David Sherwood  <david.sherwood@arm.com>

	* config/arm/arm.c (neon_element_bits, neon_valid_immediate): Call
	GET_MODE_INNER unconditionally.
	* config/spu/spu.c (arith_immediate_p): Likewise.
	* config/i386/i386.c (ix86_build_signbit_mask): Likewise.
	* expmed.c (synth_mult): Remove check for VOIDmode result from
	GET_MODE_INNER.
	(expand_mult_const): Likewise.
	* fold-const.c (fold_binary_loc): Replace call to element_precision
	with call to GET_MODE_PRECISION.
	* genmodes.c (emit_mode_inner_inline): Replace void_mode->name with
	m->name.
	(emit_mode_inner): Likewise.
	* lto-streamer-out.c (lto_write_mode_table): Update GET_MODE_INNER
	result check.
	* machmode.h (GET_MODE_UNIT_SIZE): Simplify.
	(GET_MODE_UNIT_PRECISION): Likewise.
	* rtlanal.c (subreg_get_info): Call GET_MODE_INNER unconditionally.
	* simplify-rtx.c (simplify_immed_subreg): Likewise.
	* stor-layout.c (bitwise_type_for_mode): Update assert.
	(element_precision): Remove.

From-SVN: r226328
2015-07-28 20:31:17 +00:00
Andrew MacLeod 13fdf2e2d5 coretypes.h: Include hash-table.h and hash-set.h for host files.
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* coretypes.h: Include hash-table.h and hash-set.h for host files.
	* ggc.h: Don't include statistics.h>
	* hash-map.h: Remove all includes.
	* hash-set.h: Likewise.
	* hash-table.h: Add statistics.h, inchash.h and hash-map-traits.h to
	the include list. Remove <new>.
	* inchash.h: Remove all includes.
	* mem-stats.h: Likewise.
	* vec.h: No special processing for generators or ggc.  
	* alias.c : Adjust include files.
	* alloc-pool.c : Likewise.
	* alloc-pool.h : Likewise.
	* asan.c : Likewise.
	* attribs.c : Likewise.
	* auto-inc-dec.c : Likewise.
	* auto-profile.c : Likewise.
	* bb-reorder.c : Likewise.
	* bitmap.c : Likewise.
	* bitmap.h : Likewise.
	* bt-load.c : Likewise.
	* builtins.c : Likewise.
	* caller-save.c : Likewise.
	* calls.c : Likewise.
	* ccmp.c : Likewise.
	* cfg.c : Likewise.
	* cfganal.c : Likewise.
	* cfgbuild.c : Likewise.
	* cfgcleanup.c : Likewise.
	* cfgexpand.c : Likewise.
	* cfghooks.c : Likewise.
	* cfgloop.c : Likewise.
	* cfgloop.h : Likewise.
	* cfgloopanal.c : Likewise.
	* cfgloopmanip.c : Likewise.
	* cfgrtl.c : Likewise.
	* cgraph.c : Likewise.
	* cgraphbuild.c : Likewise.
	* cgraphclones.c : Likewise.
	* cgraphunit.c : Likewise.
	* cilk-common.c : Likewise.
	* combine-stack-adj.c : Likewise.
	* combine.c : Likewise.
	* compare-elim.c : Likewise.
	* context.c : Likewise.
	* convert.c : Likewise.
	* coverage.c : Likewise.
	* cppbuiltin.c : Likewise.
	* cprop.c : Likewise.
	* cse.c : Likewise.
	* cselib.c : Likewise.
	* data-streamer-in.c : Likewise.
	* data-streamer-out.c : Likewise.
	* data-streamer.c : Likewise.
	* data-streamer.h : Likewise.
	* dbxout.c : Likewise.
	* dce.c : Likewise.
	* ddg.c : Likewise.
	* debug.c : Likewise.
	* df-core.c : Likewise.
	* df-problems.c : Likewise.
	* df-scan.c : Likewise.
	* df.h : Likewise.
	* dfp.c : Likewise.
	* dojump.c : Likewise.
	* dominance.c : Likewise.
	* domwalk.c : Likewise.
	* double-int.c : Likewise.
	* dse.c : Likewise.
	* dumpfile.c : Likewise.
	* dwarf2asm.c : Likewise.
	* dwarf2cfi.c : Likewise.
	* dwarf2out.c : Likewise.
	* emit-rtl.c : Likewise.
	* et-forest.c : Likewise.
	* except.c : Likewise.
	* except.h : Likewise.
	* explow.c : Likewise.
	* expmed.c : Likewise.
	* expr.c : Likewise.
	* final.c : Likewise.
	* fixed-value.c : Likewise.
	* fold-const.c : Likewise.
	* function.c : Likewise.
	* fwprop.c : Likewise.
	* gcc-plugin.h : Likewise.
	* gcc.c : Likewise.
	* gcse-common.c : Likewise.
	* gcse.c : Likewise.
	* genattrtab.c : Likewise.
	* genautomata.c : Likewise.
	* genconditions.c : Likewise.
	* genemit.c : Likewise.
	* generic-match-head.c : Likewise.
	* genextract.c : Likewise.
	* gengtype-state.c : Likewise.
	* gengtype.c : Likewise.
	* genhooks.c : Likewise.
	* genmatch.c : Likewise.
	* genmodes.c : Likewise.
	* genrecog.c : Likewise.
	* gensupport.c : Likewise.
	* ggc-common.c : Likewise.
	* ggc-internal.h : Likewise.
	* ggc-none.c : Likewise.
	* ggc-page.c : Likewise.
	* gimple-builder.c : Likewise.
	* gimple-expr.c : Likewise.
	* gimple-fold.c : Likewise.
	* gimple-iterator.c : Likewise.
	* gimple-low.c : Likewise.
	* gimple-match-head.c : Likewise.
	* gimple-pretty-print.c : Likewise.
	* gimple-ssa-isolate-paths.c : Likewise.
	* gimple-ssa-strength-reduction.c : Likewise.
	* gimple-ssa.h : Likewise.
	* gimple-streamer-in.c : Likewise.
	* gimple-streamer-out.c : Likewise.
	* gimple-streamer.h : Likewise.
	* gimple-walk.c : Likewise.
	* gimple.c : Likewise.
	* gimplify-me.c : Likewise.
	* gimplify.c : Likewise.
	* godump.c : Likewise.
	* graph.c : Likewise.
	* graphds.c : Likewise.
	* graphite-blocking.c : Likewise.
	* graphite-dependences.c : Likewise.
	* graphite-interchange.c : Likewise.
	* graphite-isl-ast-to-gimple.c : Likewise.
	* graphite-optimize-isl.c : Likewise.
	* graphite-poly.c : Likewise.
	* graphite-scop-detection.c : Likewise.
	* graphite-sese-to-poly.c : Likewise.
	* graphite.c : Likewise.
	* haifa-sched.c : Likewise.
	* hard-reg-set.h : Likewise.
	* hw-doloop.c : Likewise.
	* ifcvt.c : Likewise.
	* inchash.c : Likewise.
	* incpath.c : Likewise.
	* init-regs.c : Likewise.
	* input.c : Likewise.
	* internal-fn.c : Likewise.
	* ipa-chkp.c : Likewise.
	* ipa-comdats.c : Likewise.
	* ipa-cp.c : Likewise.
	* ipa-devirt.c : Likewise.
	* ipa-icf-gimple.c : Likewise.
	* ipa-icf.c : Likewise.
	* ipa-inline-analysis.c : Likewise.
	* ipa-inline-transform.c : Likewise.
	* ipa-inline.c : Likewise.
	* ipa-polymorphic-call.c : Likewise.
	* ipa-profile.c : Likewise.
	* ipa-prop.c : Likewise.
	* ipa-pure-const.c : Likewise.
	* ipa-ref.c : Likewise.
	* ipa-reference.c : Likewise.
	* ipa-split.c : Likewise.
	* ipa-utils.c : Likewise.
	* ipa-visibility.c : Likewise.
	* ipa.c : Likewise.
	* ira-build.c : Likewise.
	* ira-color.c : Likewise.
	* ira-conflicts.c : Likewise.
	* ira-costs.c : Likewise.
	* ira-emit.c : Likewise.
	* ira-lives.c : Likewise.
	* ira.c : Likewise.
	* jump.c : Likewise.
	* langhooks.c : Likewise.
	* lcm.c : Likewise.
	* libfuncs.h : Likewise.
	* lists.c : Likewise.
	* loop-doloop.c : Likewise.
	* loop-init.c : Likewise.
	* loop-invariant.c : Likewise.
	* loop-iv.c : Likewise.
	* loop-unroll.c : Likewise.
	* lower-subreg.c : Likewise.
	* lra-assigns.c : Likewise.
	* lra-coalesce.c : Likewise.
	* lra-constraints.c : Likewise.
	* lra-eliminations.c : Likewise.
	* lra-lives.c : Likewise.
	* lra-remat.c : Likewise.
	* lra-spills.c : Likewise.
	* lra.c : Likewise.
	* lto-cgraph.c : Likewise.
	* lto-compress.c : Likewise.
	* lto-opts.c : Likewise.
	* lto-section-in.c : Likewise.
	* lto-section-out.c : Likewise.
	* lto-streamer-in.c : Likewise.
	* lto-streamer-out.c : Likewise.
	* lto-streamer.c : Likewise.
	* lto-streamer.h : Likewise.
	* mcf.c : Likewise.
	* mode-switching.c : Likewise.
	* modulo-sched.c : Likewise.
	* omega.c : Likewise.
	* omp-low.c : Likewise.
	* optabs.c : Likewise.
	* opts-global.c : Likewise.
	* opts.h : Likewise.
	* passes.c : Likewise.
	* plugin.c : Likewise.
	* postreload-gcse.c : Likewise.
	* postreload.c : Likewise.
	* predict.c : Likewise.
	* print-rtl.c : Likewise.
	* print-tree.c : Likewise.
	* profile.c : Likewise.
	* read-md.c : Likewise.
	* read-md.h : Likewise.
	* read-rtl.c : Likewise.
	* real.c : Likewise.
	* realmpfr.c : Likewise.
	* recog.c : Likewise.
	* ree.c : Likewise.
	* reg-stack.c : Likewise.
	* regcprop.c : Likewise.
	* reginfo.c : Likewise.
	* regrename.c : Likewise.
	* regstat.c : Likewise.
	* reload.c : Likewise.
	* reload1.c : Likewise.
	* reorg.c : Likewise.
	* resource.c : Likewise.
	* rtl-chkp.c : Likewise.
	* rtl.c : Likewise.
	* rtl.h : Likewise.
	* rtlanal.c : Likewise.
	* rtlhash.c : Likewise.
	* rtlhash.h : Likewise.
	* rtlhooks.c : Likewise.
	* sanopt.c : Likewise.
	* sched-deps.c : Likewise.
	* sched-ebb.c : Likewise.
	* sched-rgn.c : Likewise.
	* sched-vis.c : Likewise.
	* sdbout.c : Likewise.
	* sel-sched-dump.c : Likewise.
	* sel-sched-ir.c : Likewise.
	* sel-sched-ir.h : Likewise.
	* sel-sched.c : Likewise.
	* sese.c : Likewise.
	* shrink-wrap.c : Likewise.
	* shrink-wrap.h : Likewise.
	* simplify-rtx.c : Likewise.
	* stack-ptr-mod.c : Likewise.
	* statistics.c : Likewise.
	* stmt.c : Likewise.
	* stor-layout.c : Likewise.
	* store-motion.c : Likewise.
	* stringpool.c : Likewise.
	* symtab.c : Likewise.
	* target-globals.c : Likewise.
	* targhooks.c : Likewise.
	* tlink.c : Likewise.
	* toplev.c : Likewise.
	* tracer.c : Likewise.
	* trans-mem.c : Likewise.
	* tree-affine.c : Likewise.
	* tree-affine.h : Likewise.
	* tree-browser.c : Likewise.
	* tree-call-cdce.c : Likewise.
	* tree-cfg.c : Likewise.
	* tree-cfgcleanup.c : Likewise.
	* tree-chkp-opt.c : Likewise.
	* tree-chkp.c : Likewise.
	* tree-chrec.c : Likewise.
	* tree-complex.c : Likewise.
	* tree-data-ref.c : Likewise.
	* tree-dfa.c : Likewise.
	* tree-diagnostic.c : Likewise.
	* tree-dump.c : Likewise.
	* tree-eh.c : Likewise.
	* tree-eh.h : Likewise.
	* tree-emutls.c : Likewise.
	* tree-hasher.h : Likewise.
	* tree-if-conv.c : Likewise.
	* tree-inline.c : Likewise.
	* tree-inline.h : Likewise.
	* tree-into-ssa.c : Likewise.
	* tree-iterator.c : Likewise.
	* tree-loop-distribution.c : Likewise.
	* tree-nested.c : Likewise.
	* tree-nrv.c : Likewise.
	* tree-object-size.c : Likewise.
	* tree-outof-ssa.c : Likewise.
	* tree-parloops.c : Likewise.
	* tree-phinodes.c : Likewise.
	* tree-predcom.c : Likewise.
	* tree-pretty-print.c : Likewise.
	* tree-profile.c : Likewise.
	* tree-scalar-evolution.c : Likewise.
	* tree-sra.c : Likewise.
	* tree-ssa-address.c : Likewise.
	* tree-ssa-alias.c : Likewise.
	* tree-ssa-ccp.c : Likewise.
	* tree-ssa-coalesce.c : Likewise.
	* tree-ssa-copy.c : Likewise.
	* tree-ssa-copyrename.c : Likewise.
	* tree-ssa-dce.c : Likewise.
	* tree-ssa-dom.c : Likewise.
	* tree-ssa-dse.c : Likewise.
	* tree-ssa-forwprop.c : Likewise.
	* tree-ssa-ifcombine.c : Likewise.
	* tree-ssa-live.c : Likewise.
	* tree-ssa-loop-ch.c : Likewise.
	* tree-ssa-loop-im.c : Likewise.
	* tree-ssa-loop-ivcanon.c : Likewise.
	* tree-ssa-loop-ivopts.c : Likewise.
	* tree-ssa-loop-manip.c : Likewise.
	* tree-ssa-loop-niter.c : Likewise.
	* tree-ssa-loop-prefetch.c : Likewise.
	* tree-ssa-loop-unswitch.c : Likewise.
	* tree-ssa-loop.c : Likewise.
	* tree-ssa-math-opts.c : Likewise.
	* tree-ssa-operands.c : Likewise.
	* tree-ssa-phiopt.c : Likewise.
	* tree-ssa-phiprop.c : Likewise.
	* tree-ssa-pre.c : Likewise.
	* tree-ssa-propagate.c : Likewise.
	* tree-ssa-reassoc.c : Likewise.
	* tree-ssa-sccvn.c : Likewise.
	* tree-ssa-scopedtables.c : Likewise.
	* tree-ssa-sink.c : Likewise.
	* tree-ssa-strlen.c : Likewise.
	* tree-ssa-structalias.c : Likewise.
	* tree-ssa-tail-merge.c : Likewise.
	* tree-ssa-ter.c : Likewise.
	* tree-ssa-threadedge.c : Likewise.
	* tree-ssa-threadupdate.c : Likewise.
	* tree-ssa-uncprop.c : Likewise.
	* tree-ssa-uninit.c : Likewise.
	* tree-ssa.c : Likewise.
	* tree-ssanames.c : Likewise.
	* tree-stdarg.c : Likewise.
	* tree-streamer-in.c : Likewise.
	* tree-streamer-out.c : Likewise.
	* tree-streamer.c : Likewise.
	* tree-streamer.h : Likewise.
	* tree-switch-conversion.c : Likewise.
	* tree-tailcall.c : Likewise.
	* tree-vect-data-refs.c : Likewise.
	* tree-vect-generic.c : Likewise.
	* tree-vect-loop-manip.c : Likewise.
	* tree-vect-loop.c : Likewise.
	* tree-vect-patterns.c : Likewise.
	* tree-vect-slp.c : Likewise.
	* tree-vect-stmts.c : Likewise.
	* tree-vectorizer.c : Likewise.
	* tree-vectorizer.h : Likewise.
	* tree-vrp.c : Likewise.
	* tree.c : Likewise.
	* tsan.c : Likewise.
	* ubsan.c : Likewise.
	* valtrack.c : Likewise.
	* valtrack.h : Likewise.
	* value-prof.c : Likewise.
	* var-tracking.c : Likewise.
	* varasm.c : Likewise.
	* varpool.c : Likewise.
	* vec.c: Likewise.
	* vmsdbgout.c : Likewise.
	* vtable-verify.c : Likewise.
	* vtable-verify.h : Likewise.
	* web.c : Likewise.
	* wide-int.cc : Likewise.
	* xcoffout.c : Likewise.
	* config/aarch64/aarch64-builtins.c : Likewise.
	* config/aarch64/aarch64.c : Likewise.
	* config/aarch64/cortex-a57-fma-steering.c : Likewise.
	* config/alpha/alpha.c : Likewise.
	* config/arc/arc.c : Likewise.
	* config/arm/aarch-common.c : Likewise.
	* config/arm/arm-builtins.c : Likewise.
	* config/arm/arm-c.c : Likewise.
	* config/arm/arm.c : Likewise.
	* config/avr/avr-c.c : Likewise.
	* config/avr/avr-log.c : Likewise.
	* config/avr/avr.c : Likewise.
	* config/bfin/bfin.c : Likewise.
	* config/c6x/c6x.c : Likewise.
	* config/cr16/cr16.c : Likewise.
	* config/cris/cris.c : Likewise.
	* config/darwin-c.c : Likewise.
	* config/darwin.c : Likewise.
	* config/default-c.c : Likewise.
	* config/epiphany/epiphany.c : Likewise.
	* config/epiphany/mode-switch-use.c : Likewise.
	* config/epiphany/resolve-sw-modes.c : Likewise.
	* config/fr30/fr30.c : Likewise.
	* config/frv/frv.c : Likewise.
	* config/ft32/ft32.c : Likewise.
	* config/glibc-c.c : Likewise.
	* config/h8300/h8300.c : Likewise.
	* config/i386/i386-c.c : Likewise.
	* config/i386/i386.c : Likewise.
	* config/i386/msformat-c.c : Likewise.
	* config/i386/winnt-cxx.c : Likewise.
	* config/i386/winnt-stubs.c : Likewise.
	* config/i386/winnt.c : Likewise.
	* config/ia64/ia64-c.c : Likewise.
	* config/ia64/ia64.c : Likewise.
	* config/iq2000/iq2000.c : Likewise.
	* config/lm32/lm32.c : Likewise.
	* config/m32c/m32c-pragma.c : Likewise.
	* config/m32c/m32c.c : Likewise.
	* config/m32r/m32r.c : Likewise.
	* config/m68k/m68k.c : Likewise.
	* config/mcore/mcore.c : Likewise.
	* config/mep/mep-pragma.c : Likewise.
	* config/mep/mep.c : Likewise.
	* config/microblaze/microblaze-c.c : Likewise.
	* config/microblaze/microblaze.c : Likewise.
	* config/mips/mips.c : Likewise.
	* config/mmix/mmix.c : Likewise.
	* config/mn10300/mn10300.c : Likewise.
	* config/moxie/moxie.c : Likewise.
	* config/msp430/msp430-c.c : Likewise.
	* config/msp430/msp430.c : Likewise.
	* config/nds32/nds32-cost.c : Likewise.
	* config/nds32/nds32-fp-as-gp.c : Likewise.
	* config/nds32/nds32-intrinsic.c : Likewise.
	* config/nds32/nds32-isr.c : Likewise.
	* config/nds32/nds32-md-auxiliary.c : Likewise.
	* config/nds32/nds32-memory-manipulation.c : Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c : Likewise.
	* config/nds32/nds32-predicates.c : Likewise.
	* config/nds32/nds32.c : Likewise.
	* config/nios2/nios2.c : Likewise.
	* config/nvptx/nvptx.c : Likewise.
	* config/pa/pa.c : Likewise.
	* config/pdp11/pdp11.c : Likewise.
	* config/rl78/rl78-c.c : Likewise.
	* config/rl78/rl78.c : Likewise.
	* config/rs6000/rs6000-c.c : Likewise.
	* config/rs6000/rs6000.c : Likewise.
	* config/rx/rx.c : Likewise.
	* config/s390/s390-c.c : Likewise.
	* config/s390/s390.c : Likewise.
	* config/sh/sh-c.c : Likewise.
	* config/sh/sh-mem.cc : Likewise.
	* config/sh/sh.c : Likewise.
	* config/sh/sh_optimize_sett_clrt.cc : Likewise.
	* config/sh/sh_treg_combine.cc : Likewise.
	* config/sol2-c.c : Likewise.
	* config/sol2-cxx.c : Likewise.
	* config/sol2-stubs.c : Likewise.
	* config/sol2.c : Likewise.
	* config/sparc/sparc-c.c : Likewise.
	* config/sparc/sparc.c : Likewise.
	* config/spu/spu-c.c : Likewise.
	* config/spu/spu.c : Likewise.
	* config/stormy16/stormy16.c : Likewise.
	* config/tilegx/mul-tables.c : Likewise.
	* config/tilegx/tilegx-c.c : Likewise.
	* config/tilegx/tilegx.c : Likewise.
	* config/tilepro/mul-tables.c : Likewise.
	* config/tilepro/tilepro-c.c : Likewise.
	* config/tilepro/tilepro.c : Likewise.
	* config/v850/v850-c.c : Likewise.
	* config/v850/v850.c : Likewise.
	* config/vax/vax.c : Likewise.
	* config/visium/visium.c : Likewise.
	* config/vms/vms-c.c : Likewise.
	* config/vms/vms.c : Likewise.
	* config/vxworks.c : Likewise.
	* config/winnt-c.c : Likewise.
	* config/xtensa/xtensa.c : Likewise.

ada
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* gcc-interface/cuintp.c : Adjust include files.
	* gcc-interface/decl.c : Likewise.
	* gcc-interface/misc.c : Likewise.
	* gcc-interface/targtyps.c : Likewise.
	* gcc-interface/trans.c : Likewise.
	* gcc-interface/utils.c : Likewise.
	* gcc-interface/utils2.c : Likewise.
	
c
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* c-array-notation.c : Adjust include files.
	* c-aux-info.c : Likewise.
	* c-convert.c : Likewise.
	* c-decl.c : Likewise.
	* c-errors.c : Likewise.
	* c-lang.c : Likewise.
	* c-lang.h : Likewise.
	* c-objc-common.c : Likewise.
	* c-parser.c : Likewise.
	* c-typeck.c : Likewise.

cfamily
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* array-notation-common.c : Adjust include files.
	* c-ada-spec.c : Likewise.
	* c-cilkplus.c : Likewise.
	* c-common.c : Likewise.
	* c-common.h : Likewise.
	* c-cppbuiltin.c : Likewise.
	* c-dump.c : Likewise.
	* c-format.c : Likewise.
	* c-gimplify.c : Likewise.
	* c-indentation.c : Likewise.
	* c-lex.c : Likewise.
	* c-omp.c : Likewise.
	* c-opts.c : Likewise.
	* c-pch.c : Likewise.
	* c-ppoutput.c : Likewise.
	* c-pragma.c : Likewise.
	* c-pretty-print.c : Likewise.
	* c-semantics.c : Likewise.
	* c-ubsan.c : Likewise.
	* cilk.c : Likewise.
	* stub-objc.c : Likewise.

cp
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* call.c : Adjust include files.
	* class.c : Likewise.
	* constexpr.c : Likewise.
	* cp-array-notation.c : Likewise.
	* cp-cilkplus.c : Likewise.
	* cp-gimplify.c : Likewise.
	* cp-lang.c : Likewise.
	* cp-objcp-common.c : Likewise.
	* cp-tree.h : Likewise.
	* cp-ubsan.c : Likewise.
	* cvt.c : Likewise.
	* decl.c : Likewise.
	* decl2.c : Likewise.
	* dump.c : Likewise.
	* error.c : Likewise.
	* except.c : Likewise.
	* expr.c : Likewise.
	* friend.c : Likewise.
	* init.c : Likewise.
	* lambda.c : Likewise.
	* lex.c : Likewise.
	* mangle.c : Likewise.
	* method.c : Likewise.
	* name-lookup.c : Likewise.
	* optimize.c : Likewise.
	* parser.c : Likewise.
	* pt.c : Likewise.
	* ptree.c : Likewise.
	* repo.c : Likewise.
	* rtti.c : Likewise.
	* search.c : Likewise.
	* semantics.c : Likewise.
	* tree.c : Likewise.
	* typeck.c : Likewise.
	* typeck2.c : Likewise.
	* vtable-class-hierarchy.c : Likewise.

fortran
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* convert.c : Adjust include files.
	* cpp.c : Likewise.
	* decl.c : Likewise.
	* f95-lang.c : Likewise.
	* gfortran.h : Likewise.
	* iresolve.c : Likewise.
	* match.c : Likewise.
	* module.c : Likewise.
	* openmp.c : Likewise.
	* options.c : Likewise.
	* target-memory.c : Likewise.
	* trans-array.c : Likewise.
	* trans-common.c : Likewise.
	* trans-const.c : Likewise.
	* trans-decl.c : Likewise.
	* trans-expr.c : Likewise.
	* trans-intrinsic.c : Likewise.
	* trans-io.c : Likewise.
	* trans-openmp.c : Likewise.
	* trans-stmt.c : Likewise.
	* trans-types.c : Likewise.
	* trans.c : Likewise.


go
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* go-backend.c : Adjust include files.
	* go-gcc.cc : Likewise.
	* go-lang.c : Likewise.

java
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* boehm.c : Adjust include files.
	* builtins.c : Likewise.
	* class.c : Likewise.
	* constants.c : Likewise.
	* decl.c : Likewise.
	* except.c : Likewise.
	* expr.c : Likewise.
	* java-gimplify.c : Likewise.
	* java-tree.h : Likewise.
	* jcf-dump.c : Likewise.
	* jcf-io.c : Likewise.
	* jcf-parse.c : Likewise.
	* jcf-reader.c : Likewise.
	* jvgenmain.c : Likewise.
	* lang.c : Likewise.
	* mangle.c : Likewise.
	* mangle_name.c : Likewise.
	* resource.c : Likewise.
	* typeck.c : Likewise.
	* verify-glue.c : Likewise.
	* verify-impl.c : Likewise.

jit
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* dummy-frontend.c : Adjust include files.
	* jit-common.h : Likewise.
	* jit-playback.c : Likewise.

lto
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* lto-lang.c : Adjust include files.
	* lto-object.c : Likewise.
	* lto-partition.c : Likewise.
	* lto-partition.h : Likewise.
	* lto-symtab.c : Likewise.
	* lto.c : Likewise.
	* lto.h : Likewise.

objc
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* objc-act.c : Adjust include files.
	* objc-encoding.c : Likewise.
	* objc-gnu-runtime-abi-01.c : Likewise.
	* objc-lang.c : Likewise.
	* objc-map.c : Likewise.
	* objc-next-runtime-abi-01.c : Likewise.
	* objc-next-runtime-abi-02.c : Likewise.
	* objc-runtime-shared-support.c : Likewise.

objcp
2015-06-08  Andrew MacLeod  <amacleod@redhat.com>

	* objcp-decl.c : Adjust include files.
	* objcp-lang.c : Likewise.

From-SVN: r224250
2015-06-08 21:06:50 +00:00
Mikhail Maltsev fab27f5289 Use std::swap instead of explicit swaps
gcc/
	* bb-reorder.c (fix_up_fall_thru_edges): Use std::swap instead of
	explicit swaps.
	* dojump.c (do_compare_rtx_and_jump): Likewise.
	* expmed.c (emit_store_flag_1): Likewise.
	* fibonacci_heap.h (fibonacci_heap::union_with): Likewise.
	* final.c (sprint_ul): Use std::reverse for reversing a string.
	* fold-const.c (extract_muldiv_1): Use std::swap.
	* genmodes.c (emit_mode_int_n): Likewise.
	* ifcvt.c (dead_or_predicable): Likewise.
	* ira-build.c (ira_merge_live_ranges): Likewise.
	(swap_allocno_copy_ends_if_necessary): Likewise.
	* ira.c (ira_setup_alts): Likewise.
	* loop-iv.c (iv_analyze_expr): Likewise.
	(implies_p): Likewise.
	(canon_condition): Likewise.
	* lra-constraints.c (swap_operands): Likewise.
	* lra-lives.c (lra_merge_live_ranges): Likewise.
	* omega.c (swap): Remove.
	(bswap): Remove.
	(omega_unprotect_1): Use std::swap.
	(omega_solve_geq): Likewise.
	* optabs.c (expand_binop_directly): Likewise.
	(expand_binop): Likewise.
	(emit_conditional_move): Likewise.
	(emit_conditional_add): Likewise.
	* postreload.c (reload_cse_simplify_operands): Likewise.
	* reg-stack.c (emit_swap_insn): Likewise.
	(swap_to_top): Likewise.
	(compare_for_stack_reg): Likewise.
	(subst_asm_stack_regs): Likewise.
	* reload.c (find_reloads): Likewise.
	* reload1.c (gen_reload_chain_without_interm_reg_p): Likewise.
	* sel-sched.c (invoke_reorder_hooks): Likewise.
	(create_block_for_bookkeeping): Likewise.
	* tree-data-ref.c (lambda_matrix_row_exchange): Remove.
	(lambda_matrix_right_hermite): Use std::swap.
	* tree-ssa-coalesce.c (sort_coalesce_list): Likewise.
	* tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise.
	* tree-ssa-loop-ivopts.c (iv_ca_delta_reverse): Likewise.
	* tree-ssa-math-opts.c (is_widening_mult_p): Likewise.
	* tree-ssa-phiopt.c (hoist_adjacent_loads): Likewise.
	* tree-ssa-reassoc.c (linearize_expr_tree): Likewise.
	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Likewise.
	* tree-vrp.c (compare_ranges): Likewise.
	* var-tracking.c (add_with_sets): Likewise.
	(vt_find_locations): Likewise.

gcc/c/
	* c-typeck.c (build_array_ref): Use std::swap instead of explicit
	swaps

gcc/cp/
	* typeck.c (composite_pointer_type): Use std::swap instead of explicit
	swaps.

gcc/c-family/
	* c-common.c (shorten_compare): Use std::swap instead of explicit swaps.

gcc/fortran/
	* interface.c (compare_actual_formal): Use std::swap instead of
	explicit swaps.
	* trans-array.c (gfc_trans_scalarized_loop_end): Likewise.
	* trans-intrinsic.c (walk_inline_intrinsic_transpose): Likewise.

From-SVN: r223332
2015-05-19 04:24:31 +00:00
Jakub Jelinek 5624e564d2 Update copyright years.
From-SVN: r219188
2015-01-05 13:33:28 +01:00
Ilya Enkovich d5e254e19c ipa-chkp.c: New.
gcc/

2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>

	* ipa-chkp.c: New.
	* ipa-chkp.h: New.
	* tree-chkp.c: New.
	* tree-chkp.h: New.
	* tree-chkp-opt.c: New.
	* rtl-chkp.c: New.
	* rtl-chkp.h: New.
	* Makefile.in (OBJS): Add ipa-chkp.o, rtl-chkp.o, tree-chkp.o
	tree-chkp-opt.o.
	(GTFILES): Add tree-chkp.c.
	* mode-classes.def (MODE_POINTER_BOUNDS): New.
	* tree.def (POINTER_BOUNDS_TYPE): New.
	* genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
	(POINTER_BOUNDS_MODE): New.
	(make_pointer_bounds_mode): New.
	* machmode.h (POINTER_BOUNDS_MODE_P): New.
	* stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
	(layout_type): Support POINTER_BOUNDS_TYPE.
	* tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
	* tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
	* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
	(type_contains_placeholder_1): Likewise.
	(build_common_tree_nodes): Initialize
	pointer_bounds_type_node.
	* tree.h (POINTER_BOUNDS_TYPE_P): New.
	(pointer_bounds_type_node): New.
	(POINTER_BOUNDS_P): New.
	(BOUNDED_TYPE_P): New.
	(BOUNDED_P): New.
	(CALL_WITH_BOUNDS_P): New.
	* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
	(gimple_call_with_bounds_p): New.
	(gimple_call_set_with_bounds): New.
	(gimple_return_retbnd): New.
	(gimple_return_set_retbnd): New
	* gimple.c (gimple_build_return): Increase number of ops
	for return statement.
	(gimple_build_call_from_tree): Propagate CALL_WITH_BOUNDS_P
	flag.
	* gimple-pretty-print.c (dump_gimple_return): Print second op.
	* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.
	* gimplify.c (gimplify_init_constructor): Avoid infinite
	loop during gimplification of bounds initializer.
	* calls.c: Include tree-chkp.h, rtl-chkp.h, bitmap.h.
	(special_function_p): Use original decl name when analyzing
	instrumentation clone.
	(arg_data): Add fields special_slot, pointer_arg and
	pointer_offset.
	(store_bounds): New.
	(emit_call_1): Propagate instrumentation flag for CALL.
	(initialize_argument_information): Compute pointer_arg,
	pointer_offset and special_slot for pointer bounds arguments.
	(finalize_must_preallocate): Preallocate when storing bounds
	in bounds table.
	(compute_argument_addresses): Skip pointer bounds.
	(expand_call): Store bounds into tables separately.  Return
	result joined with resulting bounds.
	* cfgexpand.c: Include tree-chkp.h, rtl-chkp.h.
	(expand_call_stmt): Propagate bounds flag for CALL_EXPR.
	(expand_return): Add returned bounds arg.  Handle returned bounds.
	(expand_gimple_stmt_1): Adjust to new expand_return signature.
	(gimple_expand_cfg): Reset rtx bounds map.
	* expr.c: Include tree-chkp.h, rtl-chkp.h.
	(expand_assignment): Handle returned bounds.
	(store_expr_with_bounds): New.  Replaces store_expr with new bounds
	target argument.  Handle bounds returned by calls.
	(store_expr): Now wraps store_expr_with_bounds.
	* expr.h (store_expr_with_bounds): New.
	* function.c: Include tree-chkp.h, rtl-chkp.h.
	(bounds_parm_data): New.
	(use_register_for_decl): Do not registerize decls used for bounds
	stores and loads.
	(assign_parms_augmented_arg_list): Add bounds of the result
	structure pointer as the second argument.
	(assign_parm_find_entry_rtl): Mark bounds are never passed on
	the stack.
	(assign_parm_is_stack_parm): Likewise.
	(assign_parm_load_bounds): New.
	(assign_bounds): New.
	(assign_parms): Load bounds and determine a location for
	returned bounds.
	(diddle_return_value_1): New.
	(diddle_return_value): Handle returned bounds.
	* function.h (rtl_data): Add field for returned bounds.
	* varasm.c: Include tree-chkp.h.
	(output_constant): Support POINTER_BOUNDS_TYPE.
	(output_constant_pool_2): Support MODE_POINTER_BOUNDS.
	(ultimate_transparent_alias_target): Move up.
	(make_decl_rtl): For instrumented function use
	name of the original decl.
	(assemble_start_function): Mark function as global
	in case it is instrumentation clone of the global
	function.
	(do_assemble_alias): Follow transparent alias chain
	for identifier.  Check if original alias is public.
	(maybe_assemble_visibility): Use visibility of the
	original function for instrumented version.
	(default_unique_section): Likewise.
	* emit-rtl.c (immed_double_const): Support MODE_POINTER_BOUNDS.
	(init_emit_once): Build pointer bounds zero constants.
	* explow.c (trunc_int_for_mode): Support MODE_POINTER_BOUNDS.
	* target.def (builtin_chkp_function): New.
	(chkp_bound_type): New.
	(chkp_bound_mode): New.
	(chkp_make_bounds_constant): New.
	(chkp_initialize_bounds): New.
	(load_bounds_for_arg): New.
	(store_bounds_for_arg): New.
	(load_returned_bounds): New.
	(store_returned_bounds): New.
	(chkp_function_value_bounds): New.
	(setup_incoming_vararg_bounds): New.
	(function_arg): Update hook description with new possible return
	value CONST_INT.
	* targhooks.h (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_load_returned_bounds): New.
	(default_store_returned_bounds): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode): New.
	(default_builtin_chkp_function): New.
	(default_chkp_function_value_bounds): New.
	(default_chkp_make_bounds_constant): New.
	(default_chkp_initialize_bounds): New.
	(default_setup_incoming_vararg_bounds): New.
	* targhooks.c (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_load_returned_bounds): New.
	(default_store_returned_bounds): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode); New.
	(default_builtin_chkp_function): New.
	(default_chkp_function_value_bounds): New.
	(default_chkp_make_bounds_constant): New.
	(default_chkp_initialize_bounds): New.
	(default_setup_incoming_vararg_bounds): New.
	* builtin-types.def (BT_BND): New.
	(BT_FN_PTR_CONST_PTR): New.
	(BT_FN_CONST_PTR_CONST_PTR): New.
	(BT_FN_BND_CONST_PTR): New.
	(BT_FN_CONST_PTR_BND): New.
	(BT_FN_PTR_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR): New.
	(BT_FN_VOID_PTRPTR_CONST_PTR): New.
	(BT_FN_VOID_CONST_PTR_SIZE): New.
	(BT_FN_VOID_PTR_BND): New.
	(BT_FN_CONST_PTR_CONST_PTR_CONST_PTR): New.
	(BT_FN_BND_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
	(BT_FN_VOID_CONST_PTR_BND_CONST_PTR): New.
	* chkp-builtins.def: New.
	* builtins.def: include chkp-builtins.def.
	(DEF_CHKP_BUILTIN): New.
	* builtins.c: Include tree-chkp.h and rtl-chkp.h.
	(expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
	BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
	BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
	BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
	BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
	BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
	BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_NARROW,
	BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
	(std_expand_builtin_va_start): Init bounds for va_list.
	* cppbuiltin.c (define_builtin_macros_for_compilation_flags): Add
	__CHKP__ macro when Pointer Bounds Checker is on.
	* params.def (PARAM_CHKP_MAX_CTOR_SIZE): New.
	* passes.def (pass_ipa_chkp_versioning): New.
	(pass_early_local_passes): Renamed to pass_build_ssa_passes.
	(pass_fixup_cfg): Moved to pass_chkp_instrumentation_passes.
	(pass_chkp_instrumentation_passes): New.
	(pass_ipa_chkp_produce_thunks): New.
	(pass_local_optimization_passes): New.
	(pass_chkp_opt): New.
	* tree-pass.h (make_pass_ipa_chkp_versioning): New.
	(make_pass_ipa_chkp_produce_thunks): New.
	(make_pass_chkp): New.
	(make_pass_chkp_opt): New.
	(make_pass_early_local_passes): Renamed to ...
	(make_pass_build_ssa_passes): This.
	(make_pass_chkp_instrumentation_passes): New.
	(make_pass_local_optimization_passes): New.
	* passes.c (pass_manager::execute_early_local_passes): Execute
	early passes in three steps.
	(execute_all_early_local_passes): Renamed to ...
	(execute_build_ssa_passes): This.
	(pass_data_early_local_passes): Renamed to ...
	(pass_data_build_ssa_passes): This.
	(pass_early_local_passes): Renamed to ...
	(pass_build_ssa_passes): This.
	(pass_data_chkp_instrumentation_passes): New.
	(pass_chkp_instrumentation_passes): New.
	(pass_data_local_optimization_passes): New.
	(pass_local_optimization_passes): New.
	(make_pass_early_local_passes): Renamed to ...
	(make_pass_build_ssa_passes): This.
	(make_pass_chkp_instrumentation_passes): New.
	(make_pass_local_optimization_passes): New.
	* c-family/c.opt (fcheck-pointer-bounds): New.
	(fchkp-check-incomplete-type): New.
	(fchkp-zero-input-bounds-for-main): New.
	(fchkp-first-field-has-own-bounds): New.
	(fchkp-narrow-bounds): New.
	(fchkp-narrow-to-innermost-array): New.
	(fchkp-optimize): New.
	(fchkp-use-fast-string-functions): New.
	(fchkp-use-nochk-string-functions): New.
	(fchkp-use-static-bounds): New.
	(fchkp-use-static-const-bounds): New.
	(fchkp-treat-zero-dynamic-size-as-infinite): New.
	(fchkp-check-read): New.
	(fchkp-check-write): New.
	(fchkp-store-bounds): New.
	(fchkp-instrument-calls): New.
	(fchkp-instrument-marked-only): New.
	(Wchkp): New.
	* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
	(handle_bnd_legacy): New.
	(handle_bnd_instrument): New.
	(c_common_attribute_table): Add bnd_variable_size, bnd_legacy
	and bnd_instrument.  Fix documentation.
	(c_common_format_attribute_table): Likewsie.
	* toplev.c: include tree-chkp.h.
	(process_options): Check Pointer Bounds Checker is supported.
	(compile_file): Add chkp_finish_file call.
	* ipa-cp.c (initialize_node_lattices): Use cgraph_local_p
	to handle instrumentation clones properly.
	(propagate_constants_accross_call): Do not propagate
	through instrumentation thunks.
	* ipa-pure-const.c (propagate_pure_const): Support
	IPA_REF_CHKP.
	* ipa-inline.c (early_inliner): Check edge has summary allocated.
	* ipa-split.c: Include tree-chkp.h.
	(find_retbnd): New.
	(split_part_set_ssa_name_p): New.
	(consider_split): Do not split retbnd and retval
	producers.
	(insert_bndret_call_after): new.
	(split_function): Propagate Pointer Bounds Checker
	instrumentation marks and handle returned bounds.
	* tree-ssa-sccvn.h (vn_reference_op_struct): Transform opcode
	into bit field and add with_bounds field.
	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Set
	with_bounds field for instrumented calls.
	* tree-ssa-pre.c (create_component_ref_by_pieces_1): Restore
	CALL_WITH_BOUNDS_P flag for calls.
	* tree-ssa-ccp.c: Include tree-chkp.h.
	(insert_clobber_before_stack_restore): Handle
	BUILT_IN_CHKP_BNDRET calls.
	* tree-ssa-dce.c: Include tree-chkp.h.
	(propagate_necessity): For free call fed by alloc check
	bounds are also provided by the same alloc.
	(eliminate_unnecessary_stmts): Handle BUILT_IN_CHKP_BNDRET
	used by free calls.
	* tree-inline.c: Include tree-chkp.h.
	(declare_return_variable): Add arg holding
	returned bounds slot.  Create and initialize returned bounds var.
	(remap_gimple_stmt): Handle returned bounds.
	Return sequence of statements instead of a single statement.
	(insert_init_stmt): Add declaration.
	(remap_gimple_seq): Adjust to new remap_gimple_stmt signature.
	(copy_bb): Adjust to changed return type of remap_gimple_stmt.
	Properly handle bounds in va_arg_pack and va_arg_pack_len.
	(expand_call_inline): Handle returned bounds.  Add bounds copy
	for generated mem to mem assignments.
	* tree-inline.h (copy_body_data): Add fields retbnd and
	assign_stmts.
	* value-prof.c: Include tree-chkp.h.
	(gimple_ic): Support returned bounds.
	* ipa.c (cgraph_build_static_cdtor_1): Support contructors
	with "chkp ctor" and "bnd_legacy" attributes.
	(symtab_remove_unreachable_nodes): Keep initial values for
	pointer bounds to be used for checks eliminations.
	(process_references): Handle IPA_REF_CHKP.
	(walk_polymorphic_call_targets): Likewise.
	* ipa-visibility.c (cgraph_externally_visible_p): Mark
	instrumented 'main' as externally visible.
	(function_and_variable_visibility): Filter instrumentation
	thunks.
	* cgraph.h (cgraph_thunk_info): Add add_pointer_bounds_args
	field.
	(cgraph_node): Add instrumented_version, orig_decl and
	instrumentation_clone fields.
	(symtab_node::get_alias_target): Allow IPA_REF_CHKP reference.
	(varpool_node): Add need_bounds_init field.
	(cgraph_local_p): New.
	* cgraph.c: Include tree-chkp.h.
	(cgraph_node::remove): Fix instrumented_version
	of the referenced node if any.
	(cgraph_node::dump): Dump instrumentation_clone and
	instrumented_version fields.
	(cgraph_node::verify_node): Check correctness of IPA_REF_CHKP
	references and instrumentation thunks.
	(cgraph_can_remove_if_no_direct_calls_and_refs_p): Keep
	all not instrumented instrumentation clones alive.
	(cgraph_redirect_edge_call_stmt_to_callee): Support
	returned bounds.
	* cgraphbuild.c (rebuild_cgraph_edges): Rebuild IPA_REF_CHKP
	reference.
	(cgraph_rebuild_references): Likewise.
	* cgraphunit.c: Include tree-chkp.h.
	(assemble_thunks_and_aliases): Skip thunks calling instrumneted
	function version.
	(varpool_finalize_decl): Register statically initialized decls
	in Pointer Bounds Checker.
	(walk_polymorphic_call_targets): Do not mark generated call to
	__builtin_unreachable as with_bounds.
	(output_weakrefs): If there are both instrumented and original
	versions, output only one of them.
	(cgraph_node::expand_thunk): Set with_bounds flag
	for created call statement.
	* ipa-ref.h (ipa_ref_use): Add IPA_REF_CHKP.
	(ipa_ref): increase size of use field.
	* symtab.c (ipa_ref_use_name): Add element for IPA_REF_CHKP.
	* varpool.c (dump_varpool_node): Dump need_bounds_init field.
	(ctor_for_folding): Do not fold constant bounds vars.
	* lto-streamer.h (LTO_minor_version): Change minor version from
	0 to 1.
	* lto-cgraph.c (compute_ltrans_boundary): Keep initial values for
	pointer bounds.
	(lto_output_node): Output instrumentation_clone,
	thunk.add_pointer_bounds_args and orig_decl field.
	(lto_output_ref): Adjust to new ipa_ref::use field size.
	(input_overwrite_node): Read instrumentation_clone field.
	(input_node): Read thunk.add_pointer_bounds_args and orig_decl
	fields.
	(input_ref): Adjust to new ipa_ref::use field size.
	(input_cgraph_1): Compute instrumented_version fields and restore
	IDENTIFIER_TRANSPARENT_ALIAS chains.
	(lto_output_varpool_node): Output
	need_bounds_init value.
	(input_varpool_node): Read need_bounds_init value.
	* lto-partition.c (add_symbol_to_partition_1): Keep original
	and instrumented versions together.
	(privatize_symbol_name): Restore transparent alias chain if required.
	(add_references_to_partition): Add references to pointer bounds vars.
	* dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
	* dwarf2out.c (gen_subprogram_die): Ignore bound args.
	(gen_type_die_with_usage): Skip pointer bounds.
	(dwarf2out_global_decl): Likewise.
	(is_base_type): Support POINTER_BOUNDS_TYPE.
	(gen_formal_types_die): Skip pointer bounds.
	(gen_decl_die): Likewise.
	* var-tracking.c (vt_add_function_parameters): Skip
	bounds parameters.
	* ipa-icf.c (sem_function::merge): Do not merge when instrumentation
	thunk still exists.
	(sem_variable::merge): Reset need_bounds_init flag.
	* doc/extend.texi: Document Pointer Bounds Checker built-in functions
	and attributes.
	* doc/tm.texi.in (TARGET_LOAD_BOUNDS_FOR_ARG): New.
	(TARGET_STORE_BOUNDS_FOR_ARG): New.
	(TARGET_LOAD_RETURNED_BOUNDS): New.
	(TARGET_STORE_RETURNED_BOUNDS): New.
	(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
	(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
	(TARGET_BUILTIN_CHKP_FUNCTION): New.
	(TARGET_CHKP_BOUND_TYPE): New.
	(TARGET_CHKP_BOUND_MODE): New.
	(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
	(TARGET_CHKP_INITIALIZE_BOUNDS): New.
	* doc/tm.texi: Regenerated.
	* doc/rtl.texi (MODE_POINTER_BOUNDS): New.
	(BND32mode): New.
	(BND64mode): New.
	* doc/invoke.texi (-mmpx): New.
	(-mno-mpx): New.
	(chkp-max-ctor-size): New.
	* config/i386/constraints.md (w): New.
	(Ti): New.
	(Tb): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
	* config/i386/i386-modes.def (BND32): New.
	(BND64): New.
	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.c: Include tree-chkp.h, rtl-chkp.h, tree-iterator.h.
	(regclass_map): Add bound registers.
	(dbx_register_map): Likewise.
	(dbx64_register_map): Likewise.
	(svr4_dbx_register_map): Likewise.
	(isa_opts): Add -mmpx.
	(PTA_MPX): New.
	(ix86_option_override_internal): Support MPX ISA.
	(ix86_conditional_register_usage): Support bound registers.
	(ix86_code_end): Add MPX bnd prefix.
	(output_set_got): Likewise.
	(print_reg): Avoid prefixes for bound registers.
	(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
	(ix86_print_operand_punct_valid_p): Likewise.
	(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
	UNSPEC_BNDLDX_ADDR.
	(ix86_output_call_insn): Add MPX bnd prefix to branch instructions.
	(ix86_class_likely_spilled_p): Add bound regs support.
	(ix86_hard_regno_mode_ok): Likewise.
	(x86_order_regs_for_local_alloc): Likewise.
	(ix86_bnd_prefixed_insn_p): New.
	(ix86_builtins): Add
	IX86_BUILTIN_BNDMK, IX86_BUILTIN_BNDSTX,
	IX86_BUILTIN_BNDLDX, IX86_BUILTIN_BNDCL,
	IX86_BUILTIN_BNDCU, IX86_BUILTIN_BNDRET,
	IX86_BUILTIN_BNDNARROW, IX86_BUILTIN_BNDINT,
	IX86_BUILTIN_SIZEOF, IX86_BUILTIN_BNDLOWER,
	IX86_BUILTIN_BNDUPPER.
	(builtin_isa): Add leaf_p and nothrow_p fields.
	(def_builtin): Initialize leaf_p and nothrow_p.
	(ix86_add_new_builtins): Handle leaf_p and nothrow_p
	flags.
	(bdesc_mpx): New.
	(bdesc_mpx_const): New.
	(ix86_init_mpx_builtins): New.
	(ix86_init_builtins): Call ix86_init_mpx_builtins.
	(ix86_emit_cmove): New.
	(ix86_emit_move_max): New.
	(ix86_expand_builtin): Expand IX86_BUILTIN_BNDMK,
	IX86_BUILTIN_BNDSTX, IX86_BUILTIN_BNDLDX,
	IX86_BUILTIN_BNDCL, IX86_BUILTIN_BNDCU,
	IX86_BUILTIN_BNDRET, IX86_BUILTIN_BNDNARROW,
	IX86_BUILTIN_BNDINT, IX86_BUILTIN_SIZEOF,
	IX86_BUILTIN_BNDLOWER, IX86_BUILTIN_BNDUPPER.
	(ix86_function_value_bounds): New.
	(ix86_builtin_mpx_function): New.
	(ix86_get_arg_address_for_bt): New.
	(ix86_load_bounds): New.
	(ix86_store_bounds): New.
	(ix86_load_returned_bounds): New.
	(ix86_store_returned_bounds): New.
	(ix86_mpx_bound_mode): New.
	(ix86_make_bounds_constant): New.
	(ix86_initialize_bounds):
	(TARGET_LOAD_BOUNDS_FOR_ARG): New.
	(TARGET_STORE_BOUNDS_FOR_ARG): New.
	(TARGET_LOAD_RETURNED_BOUNDS): New.
	(TARGET_STORE_RETURNED_BOUNDS): New.
	(TARGET_CHKP_BOUND_MODE): New.
	(TARGET_BUILTIN_CHKP_FUNCTION): New.
	(TARGET_CHKP_FUNCTION_VALUE_BOUNDS): New.
	(TARGET_CHKP_MAKE_BOUNDS_CONSTANT): New.
	(TARGET_CHKP_INITIALIZE_BOUNDS): New.
	(ix86_option_override_internal): Do not
	support x32 with MPX.
	(init_cumulative_args): Init stdarg, bnd_regno, bnds_in_bt
	and force_bnd_pass.
	(function_arg_advance_32): Return number of used integer
	registers.
	(function_arg_advance_64): Likewise.
	(function_arg_advance_ms_64): Likewise.
	(ix86_function_arg_advance): Handle pointer bounds.
	(ix86_function_arg): Likewise.
	(ix86_function_value_regno_p): Mark fisrt bounds registers as
	possible function value.
	(ix86_function_value_1): Handle pointer bounds type/mode
	(ix86_return_in_memory): Likewise.
	(ix86_print_operand): Analyse insn to decide abounf "bnd" prefix.
	(ix86_expand_call): Generate returned bounds.
	(ix86_setup_incoming_vararg_bounds): New.
	(ix86_va_start): Initialize bounds for pointers in va_list.
	(TARGET_SETUP_INCOMING_VARARG_BOUNDS): New.
	* config/i386/i386.h (TARGET_MPX): New.
	(TARGET_MPX_P): New.
	(FIRST_PSEUDO_REGISTER): Fix to new value.
	(FIXED_REGISTERS): Add bound registers.
	(CALL_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(HARD_REGNO_NREGS): Likewise.
	(VALID_BND_REG_MODE): New.
	(FIRST_BND_REG): New.
	(LAST_BND_REG): New.
	(reg_class): Add BND_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(BND_REGNO_P): New.
	(ANY_BND_REG_P): New.
	(BNDmode): New.
	(HI_REGISTER_NAMES): Add bound registers.
	(ix86_args): Add bnd_regno, bnds_in_bt,	force_bnd_pass and
	stdarg fields.
	* config/i386/i386.md (UNSPEC_BNDMK): New.
	(UNSPEC_BNDMK_ADDR): New.
	(UNSPEC_BNDSTX): New.
	(UNSPEC_BNDLDX): New.
	(UNSPEC_BNDLDX_ADDR): New.
	(UNSPEC_BNDCL): New.
	(UNSPEC_BNDCU): New.
	(UNSPEC_BNDCN): New.
	(UNSPEC_MPX_FENCE): New.
	(UNSPEC_SIZEOF): New.
	(BND0_REG): New.
	(BND1_REG): New.
	(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(length_immediate): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(prefix_rep): Check for bnd prefix.
	(prefix_0f): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(length_nobnd): New.
	(length): Use length_nobnd when specified.
	(memory): Support mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(BND): New.
	(bnd_ptr): New.
	(BNDCHECK): New.
	(bndcheck): New.
	(*jcc_1): Add MPX bnd prefix.
	(*jcc_2): Likewise.
	(jump): Likewise.
	(*indirect_jump): Likewise.
	(*tablejump_1): Likewise.
	(simple_return_internal): Likewise.
	(simple_return_internal_long): Likewise.
	(simple_return_pop_internal): Likewise.
	(simple_return_indirect_internal): Likewise.
	(<mode>_mk): New.
	(*<mode>_mk): New.
	(mov<mode>): New.
	(*mov<mode>_internal_mpx): New.
	(<mode>_<bndcheck>): New.
	(*<mode>_<bndcheck>): New.
	(<mode>_ldx): New.
	(*<mode>_ldx): New.
	(<mode>_stx): New.
	(*<mode>_stx): New.
	move_size_reloc_<mode>): New.
	* config/i386/predicates.md (address_mpx_no_base_operand): New.
	(address_mpx_no_index_operand): New.
	(bnd_mem_operator): New.
	(symbol_operand): New.
	(x86_64_immediate_size_operand): New.
	* config/i386/i386.opt (mmpx): New.
	* config/i386/i386-builtin-types.def (BND): New.
	(ULONG): New.
	(BND_FTYPE_PCVOID_ULONG): New.
	(VOID_FTYPE_BND_PCVOID): New.
	(VOID_FTYPE_PCVOID_PCVOID_BND): New.
	(BND_FTYPE_PCVOID_PCVOID): New.
	(BND_FTYPE_PCVOID): New.
	(BND_FTYPE_BND_BND): New.
	(PVOID_FTYPE_PVOID_PVOID_ULONG): New.
	(PVOID_FTYPE_PCVOID_BND_ULONG): New.
	(ULONG_FTYPE_VOID): New.
	(PVOID_FTYPE_BND): New.

gcc/testsuite/

2014-11-05  Ilya Enkovich  <ilya.enkovich@intel.com>

	* gcc.target/i386/chkp-builtins-1.c: New.
	* gcc.target/i386/chkp-builtins-2.c: New.
	* gcc.target/i386/chkp-builtins-3.c: New.
	* gcc.target/i386/chkp-builtins-4.c: New.
	* gcc.target/i386/chkp-remove-bndint-1.c: New.
	* gcc.target/i386/chkp-remove-bndint-2.c: New.
	* gcc.target/i386/chkp-const-check-1.c: New.
	* gcc.target/i386/chkp-const-check-2.c: New.
	* gcc.target/i386/chkp-lifetime-1.c: New.
	* gcc.dg/pr37858.c: Replace early_local_cleanups pass name
	with build_ssa_passes.

From-SVN: r217125
2014-11-05 12:42:03 +00:00
Richard Sandiford ef4bddc299 decl.c, [...]: Remove redundant enum from machine_mode.
gcc/ada/
	* gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c,
	gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c:
	Remove redundant enum from machine_mode.

gcc/c-family/
	* c-common.c, c-common.h, c-cppbuiltin.c, c-lex.c: Remove redundant
	enum from machine_mode.

gcc/c/
	* c-decl.c, c-tree.h, c-typeck.c: Remove redundant enum from
	machine_mode.

gcc/cp/
	* constexpr.c: Remove redundant enum from machine_mode.

gcc/fortran/
	* trans-types.c, trans-types.h: Remove redundant enum from
	machine_mode.

gcc/go/
	* go-lang.c: Remove redundant enum from machine_mode.

gcc/java/
	* builtins.c, java-tree.h, typeck.c: Remove redundant enum from
	machine_mode.

gcc/lto/
	* lto-lang.c: Remove redundant enum from machine_mode.

gcc/
	* addresses.h, alias.c, asan.c, auto-inc-dec.c, bt-load.c, builtins.c,
	builtins.h, caller-save.c, calls.c, calls.h, cfgexpand.c, cfgloop.h,
	cfgrtl.c, combine.c, compare-elim.c, config/aarch64/aarch64-builtins.c,
	config/aarch64/aarch64-protos.h, config/aarch64/aarch64-simd.md,
	config/aarch64/aarch64.c, config/aarch64/aarch64.h,
	config/aarch64/aarch64.md, config/alpha/alpha-protos.h,
	config/alpha/alpha.c, config/arc/arc-protos.h, config/arc/arc.c,
	config/arc/arc.h, config/arc/predicates.md,
	config/arm/aarch-common-protos.h, config/arm/aarch-common.c,
	config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
	config/arm/arm.md, config/arm/neon.md, config/arm/thumb2.md,
	config/avr/avr-log.c, config/avr/avr-protos.h, config/avr/avr.c,
	config/avr/avr.md, config/bfin/bfin-protos.h, config/bfin/bfin.c,
	config/c6x/c6x-protos.h, config/c6x/c6x.c, config/c6x/c6x.md,
	config/cr16/cr16-protos.h, config/cr16/cr16.c,
	config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.md,
	config/darwin-protos.h, config/darwin.c,
	config/epiphany/epiphany-protos.h, config/epiphany/epiphany.c,
	config/epiphany/epiphany.md, config/fr30/fr30.c,
	config/frv/frv-protos.h, config/frv/frv.c, config/frv/predicates.md,
	config/h8300/h8300-protos.h, config/h8300/h8300.c,
	config/i386/i386-builtin-types.awk, config/i386/i386-protos.h,
	config/i386/i386.c, config/i386/i386.md, config/i386/predicates.md,
	config/i386/sse.md, config/i386/sync.md, config/ia64/ia64-protos.h,
	config/ia64/ia64.c, config/iq2000/iq2000-protos.h,
	config/iq2000/iq2000.c, config/iq2000/iq2000.md,
	config/lm32/lm32-protos.h, config/lm32/lm32.c,
	config/m32c/m32c-protos.h, config/m32c/m32c.c,
	config/m32r/m32r-protos.h, config/m32r/m32r.c,
	config/m68k/m68k-protos.h, config/m68k/m68k.c,
	config/mcore/mcore-protos.h, config/mcore/mcore.c,
	config/mcore/mcore.md, config/mep/mep-protos.h, config/mep/mep.c,
	config/microblaze/microblaze-protos.h, config/microblaze/microblaze.c,
	config/mips/mips-protos.h, config/mips/mips.c,
	config/mmix/mmix-protos.h, config/mmix/mmix.c,
	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
	config/moxie/moxie.c, config/msp430/msp430-protos.h,
	config/msp430/msp430.c, config/nds32/nds32-cost.c,
	config/nds32/nds32-intrinsic.c, config/nds32/nds32-md-auxiliary.c,
	config/nds32/nds32-protos.h, config/nds32/nds32.c,
	config/nios2/nios2-protos.h, config/nios2/nios2.c,
	config/pa/pa-protos.h, config/pa/pa.c, config/pdp11/pdp11-protos.h,
	config/pdp11/pdp11.c, config/rl78/rl78-protos.h, config/rl78/rl78.c,
	config/rs6000/altivec.md, config/rs6000/rs6000-c.c,
	config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
	config/rs6000/rs6000.h, config/rx/rx-protos.h, config/rx/rx.c,
	config/s390/predicates.md, config/s390/s390-protos.h,
	config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
	config/sh/predicates.md, config/sh/sh-protos.h, config/sh/sh.c,
	config/sh/sh.md, config/sparc/predicates.md,
	config/sparc/sparc-protos.h, config/sparc/sparc.c,
	config/sparc/sparc.md, config/spu/spu-protos.h, config/spu/spu.c,
	config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c,
	config/tilegx/tilegx-protos.h, config/tilegx/tilegx.c,
	config/tilegx/tilegx.md, config/tilepro/tilepro-protos.h,
	config/tilepro/tilepro.c, config/v850/v850-protos.h,
	config/v850/v850.c, config/v850/v850.md, config/vax/vax-protos.h,
	config/vax/vax.c, config/vms/vms-c.c, config/xtensa/xtensa-protos.h,
	config/xtensa/xtensa.c, coverage.c, cprop.c, cse.c, cselib.c, cselib.h,
	dbxout.c, ddg.c, df-problems.c, dfp.c, dfp.h, doc/md.texi,
	doc/rtl.texi, doc/tm.texi, doc/tm.texi.in, dojump.c, dse.c,
	dwarf2cfi.c, dwarf2out.c, dwarf2out.h, emit-rtl.c, emit-rtl.h,
	except.c, explow.c, expmed.c, expmed.h, expr.c, expr.h, final.c,
	fixed-value.c, fixed-value.h, fold-const.c, function.c, function.h,
	fwprop.c, gcse.c, gengenrtl.c, genmodes.c, genopinit.c, genoutput.c,
	genpreds.c, genrecog.c, gensupport.c, gimple-ssa-strength-reduction.c,
	graphite-clast-to-gimple.c, haifa-sched.c, hooks.c, hooks.h, ifcvt.c,
	internal-fn.c, ira-build.c, ira-color.c, ira-conflicts.c, ira-costs.c,
	ira-emit.c, ira-int.h, ira-lives.c, ira.c, ira.h, jump.c, langhooks.h,
	libfuncs.h, lists.c, loop-doloop.c, loop-invariant.c, loop-iv.c,
	loop-unroll.c, lower-subreg.c, lower-subreg.h, lra-assigns.c,
	lra-constraints.c, lra-eliminations.c, lra-int.h, lra-lives.c,
	lra-spills.c, lra.c, lra.h, machmode.h, omp-low.c, optabs.c, optabs.h,
	output.h, postreload.c, print-tree.c, read-rtl.c, real.c, real.h,
	recog.c, recog.h, ree.c, reg-stack.c, regcprop.c, reginfo.c,
	regrename.c, regs.h, reload.c, reload.h, reload1.c, rtl.c, rtl.h,
	rtlanal.c, rtlhash.c, rtlhooks-def.h, rtlhooks.c, sched-deps.c,
	sel-sched-dump.c, sel-sched-ir.c, sel-sched-ir.h, sel-sched.c,
	simplify-rtx.c, stmt.c, stor-layout.c, stor-layout.h, target.def,
	targhooks.c, targhooks.h, tree-affine.c, tree-call-cdce.c,
	tree-complex.c, tree-data-ref.c, tree-dfa.c, tree-if-conv.c,
	tree-inline.c, tree-outof-ssa.c, tree-scalar-evolution.c,
	tree-ssa-address.c, tree-ssa-ccp.c, tree-ssa-loop-ivopts.c,
	tree-ssa-loop-ivopts.h, tree-ssa-loop-manip.c,
	tree-ssa-loop-prefetch.c, tree-ssa-math-opts.c, tree-ssa-reassoc.c,
	tree-ssa-sccvn.c, tree-streamer-in.c, tree-switch-conversion.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop.c,
	tree-vect-patterns.c, tree-vect-slp.c, tree-vect-stmts.c,
	tree-vrp.c, tree.c, tree.h, tsan.c, ubsan.c, valtrack.c,
	var-tracking.c, varasm.c: Remove redundant enum from
	machine_mode.
gcc/
	* gengtype.c (main): Treat machine_mode as a scalar typedef.
	* genmodes.c (emit_insn_modes_h): Hide inline functions if
	USED_FOR_TARGET.

From-SVN: r216834
2014-10-29 12:02:45 +00:00
DJ Delorie 78a7c3172f machmode.h (int_n_data_t): New.
* machmode.h (int_n_data_t): New.
	(int_n_enabled_p): New.
	(int_n_data): New.
	* tree.c (int_n_enabled_p): New.
	(int_n_trees): New.
	(make_or_reuse_type): Check for all __intN types, not just
	__int128.
	(build_common_tree_nodes): Likewise.  Also fill in integer_typs[]
	entries.
	* tree.h (int128_integer_type_node): Remove.
	(int128_unsigned_type_node): Remove.
	(int_n_trees_t): New.
	(int_n_enabled_p): New.
	(int_n_trees): New.
	* toplev.c (standard_type_bitsize): New.
	(do_compile): Check which __intN types are enabled for the current
	run.
	* builtin-types.def (BT_INT128): Remove.
	(BT_UINT128): Remove.
	* machmode.def: Add macro to create __int128 for all targets.
	* stor-layout.c (mode_for_size): Support __intN types.
	(smallest_mode_for_size): Likewise.
	(initialize_sizetypes): Support __intN types.
	* genmodes.c (struct mode_data): Add int_n field.
	(blank_mode): Likewise.
	(INT_N): New.
	(make_int_n): New.
	(emit_insn_modes_h): Count __intN entries and define
	NUM_INT_N_ENTS.
	(emit_mode_int_n): New.
	(emit_insn_modes_c): Call it.
	* gimple.c (gimple_signed_or_unsigned_type): Check for all __intN
	types, not just __int128.
	* tree-core.h (integer_type_kind): Remove __int128-specific
	entries, reserve spots for __intN entries.

libstdc++-v3/
	* src/c++11/limits.cc: Add support for __intN types.
	* include/std/type_traits: Likewise.
	* include/std/limits: Likewise.
	* include/c_std/cstdlib: Likewise.
	* include/bits/cpp_type_traits.h: Likewise.
	* include/c_global/cstdlib: Likewise.

c-family/
	* c-pretty-print.c (pp_c_integer_constant): Check for all __intN
	types, not just __int128.
	* c-cppbuiltin.c (c_cpp_builtins): Add builtins for all __intN
	types, not just __int128.
	(cpp_atomic_builtins): Round pointer sizes up.
	(type_suffix): Use type precision, not specific types.
	* c-common.c (c_common_reswords): Remove __int128 special case.
	(c_common_type_for_size): Check for all __intN types, not just
	__int128.
	(c_common_type_for_mode): Likewise.
	(c_common_signed_or_unsigned_type): Likewise.
	(c_build_bitfield_integer_type): Likewise.
	(c_common_nodes_and_builtins): Likewise.
	(keyword_begins_type_specifier): Likewise.
	* c-common.h (rid): Remove RID_INT128 and add RID_INT_N_* for all
	__intN variants.

c/
	* c-parser.c (c_parse_init): Add RID entries for each __intN.
	(c_token_starts_typename): Check all __intN, not just __int128.
	(c_token_starts_declspecs): Likewise.
	(c_parser_declspecs): Likewise.
	(c_parser_attribute_any_word): Likewise.
	(c_parser_objc_selector): Likewise.
	* c-tree.h (c_typespec_keyword): cts_int128 -> cts_int_n.
	(struct c_declspecs): Add int_n_idx field to record *which* __intN
	is specified.
	* c-decl.c (declspecs_add_type): Check for all __intN, not just
	__int128.
	(finish_declspecs): Likewise.

testsuite/
	* g++.dg/abi/mangle64.C: New.

cp/
	* typeck.c (cp_common_type): Check for all __intN types, not just
	__int128.
	* decl.c (grokdeclarator): Likewise.
	* rtti.c (emit_support_tinfos): Check for all __intN types, not just
	__int128.
	* parser.c (cp_lexer_next_token_is_decl_specifier_keyword): Check
	for all __intN types, not just __int128.
	(cp_parser_simple_type_specifier): Likewise.
	* mangle.c (integer_type_codes): Remove int128-specific codes.
	* cp-tree.h (cp_decl_specifier_seq): Add int_n_idx to store which
	__intN was specified.
	* lex.c (init_reswords): Reserve all __intN keywords.

lto/
	* lto-lang.c (lto_build_c_type_nodes): Check intN types for
	size-type as well.
	(lto_init): Initialize all intN types, not just int128.

From-SVN: r216220
2014-10-14 15:44:36 -04:00
Joseph Myers 8cc4b7a26d Remove LIBGCC2_HAS_?F_MODE target macros.
This patch removes the LIBGCC2_HAS_{SF,DF,XF,TF}_MODE target macros,
replacing them by predefines with -fbuilding-libgcc, together with a
target hook that can influence those predefines when needed.

The new default is that a floating-point mode is supported in libgcc
if (a) it passes the scalar_mode_supported_p hook (otherwise it's not
plausible for it to be supported in libgcc) and (b) it's one of those
four modes (since those are the modes for which libgcc hardcodes the
possibility of support).  The target hook can override the default
choice (in either direction) for modes that pass
scalar_mode_supported_p (although overriding in the direction of
returning true when the default would return false only makes sense if
all relevant functions are specially defined in libgcc for that
particular target).

The previous default settings depended on various settings such as
LIBGCC2_LONG_DOUBLE_TYPE_SIZE, as well as targets defining the above
target macros if the default wasn't correct.

The default scalar_mode_supported_p only declares a floating-point
mode to be supported if it matches one of float / double / long
double.  This means that in most cases where a mode is only supported
conditionally in libgcc (TFmode only supported if it's the mode of
long double, most commonly), the default gets things right.  Overrides
were needed in the following cases:

* SFmode would always have been supported in libgcc (the condition was
  BITS_PER_UNIT == 8, true for all current targets), but pdp11
  defaults to 64-bit float, and in that case SFmode would fail
  scalar_mode_supported_p.  I don't know if libgcc actually built for
  pdp11 (and the port may well no longer be being used), but this
  patch adds a scalar_mode_supported_p hook to it to ensure SFmode is
  treated as supported.

* Certain i386 and ia64 targets need the new hook to match the
  existing cases for when XFmode or TFmode support is present in
  libgcc.  For i386, the hook can always declare XFmode to be
  supported - the cases where it's not are the cases where long double
  is TFmode, in which case XFmode fails scalar_mode_supported_p[*] -
  but TFmode support needs to be conditional.  (And of the targets not
  defining LIBGCC2_HAS_TF_MODE before this patch, some defined
  LONG_DOUBLE_TYPE_SIZE to 64, so ensuring LIBGCC2_HAS_TF_MODE would
  always be false, while others did not define it, so allowing it to
  be true in the -mlong-double-128 case.  This patch matches that
  logic, although I suspect all the latter targets would have been
  broken if you tried to enable -mlong-double-128 by default, for lack
  of the soft-fp TFmode support in libgcc, which is separately
  configured.)

  [*] I don't know if it's deliberate not to support __float80 at all
  with -mlong-double-128.

In order to implement the default version of the new hook,
insn-modes.h was made to contain macros such as HAVE_TFmode for each
machine mode, so the default hook can contain conditionals on whether
XFmode and TFmode exist (to match the hardcoding of a list of modes in
libgcc).  This is also used in fortran/trans-types.c; previously it
had a conditional on defined(LIBGCC2_HAS_TF_MODE) (a bit dubious,
since it ignored the value of the macro), which is replaced by testing
defined(HAVE_TFmode), in conjunction with requiring
targetm.libgcc_floating_mode_supported_p.

(Fortran is testing something stronger than that hook: not only is
libgcc support required, but also libm or equivalent.  Thus, it has a
test for ENABLE_LIBQUADMATH_SUPPORT in the case that the mode is
TFmode and that's not the same as any of the three standard types.
The old and new tests are intended to accept exactly the same set of
modes for all targets.)

Apart from the four target macros eliminated by this patch, it gets us
closer to eliminating LIBGCC2_LONG_DOUBLE_TYPE_SIZE as well, though a
few more places using that macro need changing first.

Bootstrapped with no regressions on x86_64-unknown-linux-gnu; also
built cc1 for crosses to ia64-elf and pdp11-none as a minimal test of
changes for those targets.

gcc:
	* target.def (libgcc_floating_mode_supported_p): New hook.
	* targhooks.c (default_libgcc_floating_mode_supported_p): New
	function.
	* targhooks.h (default_libgcc_floating_mode_supported_p): Declare.
	* doc/tm.texi.in (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_XF_MODE)
	(LIBGCC2_HAS_TF_MODE): Remove.
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): New @hook.
	* doc/tm.texi: Regenerate.
	* genmodes.c (emit_insn_modes_h): Define HAVE_%smode for each
	machine mode.
	* system.h (LIBGCC2_HAS_SF_MODE, LIBGCC2_HAS_DF_MODE)
	(LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE): Poison.
	* config/i386/cygming.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/darwin.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/djgpp.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/dragonfly.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/freebsd.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/gnu-user-common.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/i386-interix.h (IX86_NO_LIBGCC_TFMODE): Define.
	* config/i386/i386.c (ix86_libgcc_floating_mode_supported_p): New
	function.
	(TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define.
	* config/i386/i386elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/lynx.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/netbsd-elf.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/netbsd64.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/nto.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/openbsd.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/i386/openbsdelf.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/rtemself.h (IX86_NO_LIBGCC_TFMODE): Define.
	* config/i386/sol2.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/i386/vx-common.h (IX86_MAYBE_NO_LIBGCC_TFMODE): Define.
	* config/ia64/elf.h (IA64_NO_LIBGCC_TFMODE): Define.
	* config/ia64/freebsd.h (IA64_NO_LIBGCC_TFMODE): Define.
	* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE, LIBGCC2_HAS_TF_MODE):
	Remove.
	* config/ia64/ia64.c (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P):
	New macro.
	(ia64_libgcc_floating_mode_supported_p): New function.
	* config/ia64/linux.h (LIBGCC2_HAS_TF_MODE): Remove.
	* config/ia64/vms.h (IA64_NO_LIBGCC_XFMODE)
	(IA64_NO_LIBGCC_TFMODE): Define.
	* config/msp430/msp430.h (LIBGCC2_HAS_DF_MODE): Remove.
	* config/pdp11/pdp11.c (TARGET_SCALAR_MODE_SUPPORTED_P): New
	macro.
	(pdp11_scalar_mode_supported_p): New function.
	* config/rl78/rl78.h (LIBGCC2_HAS_DF_MODE): Remove.
	* config/rx/rx.h (LIBGCC2_HAS_DF_MODE): Remove.

gcc/c-family:
	* c-cppbuiltin.c (c_cpp_builtins): Define __LIBGCC_HAS_%s_MODE__
	macros for floating-point modes.

gcc/fortran:
	* trans-types.c (gfc_init_kinds): Check
	targetm.libgcc_floating_mode_supported_p for floating-point
	modes.  Check HAVE_TFmode instead of LIBGCC2_HAS_TF_MODE.

libgcc:
	* libgcc2.h (LIBGCC2_HAS_SF_MODE): Define using
	__LIBGCC_HAS_SF_MODE__.
	(LIBGCC2_HAS_DF_MODE): Define using __LIBGCC_HAS_DF_MODE__.
	(LIBGCC2_HAS_XF_MODE): Define using __LIBGCC_HAS_XF_MODE__.
	(LIBGCC2_HAS_TF_MODE): Define using __LIBGCC_HAS_TF_MODE__.
	* config/libbid/bid_gcc_intrinsics.h
	(LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Do not define.
	(LIBGCC2_HAS_XF_MODE): Define using __LIBGCC_HAS_XF_MODE__.
	(LIBGCC2_HAS_TF_MODE): Define using __LIBGCC_HAS_TF_MODE__.
	* fixed-bit.h (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Do not define.
	(LIBGCC2_HAS_SF_MODE): Define using __LIBGCC_HAS_SF_MODE__.
	(LIBGCC2_HAS_DF_MODE): Define using __LIBGCC_HAS_DF_MODE__.

From-SVN: r215215
2014-09-12 13:05:18 +01:00
Jakub Jelinek 92f0f3ec92 genmodes.c (struct mode_data): Add need_bytesize_adj field.
* genmodes.c (struct mode_data): Add need_bytesize_adj field.
	(blank_mode): Initialize it.
	(emit_mode_size_inline, emit_mode_nunits_inline,
	emit_mode_inner_inline): New functions.
	(emit_insn_modes_h): Call them and surround their output with
	#if GCC_VERSION >= 4001 ... #endif.
	* machmode.h (GET_MODE_SIZE, GET_MODE_NUNITS, GET_MODE_INNER):
	For GCC_VERSION >= 4001 use mode_*_inline routines instead of
	mode_* arrays if the argument is __builtin_constant_p.
	* lower-subreg.c (dump_choices): Make sure GET_MODE_SIZE argument
	is enum machine_mode.
fortran/
	* trans-types.c (gfc_init_kinds): Make sure GET_MODE_BITSIZE
	argument is enum machine_mode.

From-SVN: r209484
2014-04-17 14:49:49 +02:00
Richard Sandiford 23a5b65a92 Update copyright years in gcc/
From-SVN: r206289
2014-01-02 22:23:26 +00:00
Kenneth Zadeck 7424147986 genmodes.c (emit_max_int): Fixed missing parens.
2013-12-13  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* genmodes.c (emit_max_int): Fixed missing parens.

From-SVN: r205970
2013-12-13 19:04:14 +00:00
Kenneth Zadeck 8fd05f4d87 arc.h (BITS_PER_UNIT): Removed.
2013-12-13  Kenneth Zadeck  <zadeck@naturalbridge.com>

	* config/arc/arc.h (BITS_PER_UNIT): Removed.
	* config/bfin/bfin.h (BITS_PER_UNIT): Removed.
	* config/lm32/lm32.h (BITS_PER_UNIT): Removed.
	* config/m32c/m32c.h (BITS_PER_UNIT): Removed.
	* config/microblaze/microblaze.h (BITS_PER_UNIT): Removed.
	* config/picochip/picochip.h (BITS_PER_UNIT): Removed.
	* config/spu/spu.h (BITS_PER_UNIT): Removed.
	* defaults.h (BITS_PER_UNIT): Removed.
	* config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): New.
	* doc/rtl (BITS_PER_UNIT): Moved from tm.texi.
	(MAX_BITSIZE_MODE_ANY_INT): Updated.
	* doc/tm.texi (BITS_PER_UNIT): Removed.
	* doc/tm.texi.in (BITS_PER_UNIT): Removed.
	* genmodes.c (bits_per_unit, max_bitsize_mode_any_int): New.
	(create_modes): Added code to set bits_per_unit and
	max_bitsize_mode_any_int.
	(emit_max_int): Changed code generation.
	* mkconfig.sh: Added insn-modes.h.

From-SVN: r205964
2013-12-13 16:38:53 +00:00
Ilya Enkovich 089d122746 revert: cgraph.h (varpool_node): Add need_bounds_init field.
Reverted:
	2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
	* cgraph.h (varpool_node): Add need_bounds_init field.
	* lto-cgraph.c (lto_output_varpool_node): Output
	need_bounds_init value.
	(input_varpool_node): Read need_bounds_init value.
	* varpool.c (dump_varpool_node): Dump need_bounds_init field.

	Reverted:
	2013-11-20  Ilya Enkovich  <ilya.enkovich@intel.com>
	* dbxout.c (dbxout_type): Ignore POINTER_BOUNDS_TYPE.
	* dwarf2out.c (gen_subprogram_die): Ignore bound args.
	(gen_type_die_with_usage): Skip pointer bounds.
	(dwarf2out_global_decl): Likewise.

	Reverted:
	2013-11-18  Ilya Enkovich  <ilya.enkovich@intel.com>
	* builtin-types.def (BT_FN_PTR_CONST_PTR_VAR): New.
	* chkp-builtins.def (BUILT_IN_CHKP_BIND_BOUNDS): New.
	* cfgexpand.c (expand_call_stmt): Expand BUILT_IN_CHKP_BIND_BOUNDS.
	* gimple.c (gimple_call_get_nobnd_arg_index): Remove.
	* gimple.h (gf_mask): Add GF_CALL_WITH_BOUNDS.
	(gimple_call_with_bounds_p): New.
	(gimple_call_set_with_bounds): New.
	(gimple_call_num_nobnd_args): Remove.
	(gimple_call_nobnd_arg): Remove.
	* tree.h (CALL_WITH_BOUNDS_P): New.
	* rtl.h (CALL_EXPR_WITH_BOUNDS_P): New.

	Reverted:
	2013-11-08  Ilya Enkovich  <ilya.enkovich@intel.com>
	* common.opt (fcheck-pointer-bounds): Move to ...
	* c-family/c.opt: ... here.
	* langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): Remove.
	(LANG_HOOKS_INITIALIZER): Remove LANG_HOOKS_CHKP_SUPPORTED.
	* langhooks.h (lang_hooks): Remove chkp_supported field.
	* toplev.c (process_options): Remove chkp_supported check.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* tree-core.h (tree_index): Add TI_POINTER_BOUNDS_TYPE.
	* tree.h (POINTER_BOUNDS_P): New.
	(BOUNDED_TYPE_P): New.
	(BOUNDED_P): New.
	(pointer_bounds_type_node): New.
	* tree.c (build_common_tree_nodes): Initialize
	pointer_bounds_type_node.
	* gimple.h (gimple_call_get_nobnd_arg_index): New.
	(gimple_call_num_nobnd_args): New.
	(gimple_call_nobnd_arg): New.
	(gimple_return_retbnd): New.
	(gimple_return_set_retbnd): New
	* gimple.c (gimple_build_return): Increase number of ops
	for return statement.
	(gimple_call_get_nobnd_arg_index): New.
	* gimple-pretty-print.c (dump_gimple_return): Print second op.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* ipa.c (cgraph_build_static_cdtor_1): Support contructors
	with "chkp ctor" and "bnd_legacy" attributes.
	* gimplify.c (gimplify_init_constructor): Avoid infinite
	loop during gimplification of bounds initializer.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* c-family/c-common.c (handle_bnd_variable_size_attribute): New.
	(handle_bnd_legacy): New.
	(c_common_attribute_table): Add bnd_variable_size and bnd_legacy.
	* doc/extend.texi: Document bnd_variable_size and bnd_legacy
	attributes.

	Reverted:
	2013-10-29  Ilya Enkovich  <ilya.enkovich@intel.com>
	* builtin-types.def (BT_FN_VOID_CONST_PTR): New.
	(BT_FN_PTR_CONST_PTR): New.
	(BT_FN_CONST_PTR_CONST_PTR): New.
	(BT_FN_PTR_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR): New.
	(BT_FN_VOID_PTRPTR_CONST_PTR): New.
	(BT_FN_VOID_CONST_PTR_SIZE): New.
	(BT_FN_PTR_CONST_PTR_CONST_PTR_SIZE): New.
	* chkp-builtins.def: New.
	* builtins.def: include chkp-builtins.def.
	(DEF_CHKP_BUILTIN): New.
	* builtins.c (expand_builtin): Support BUILT_IN_CHKP_INIT_PTR_BOUNDS,
	BUILT_IN_CHKP_NULL_PTR_BOUNDS, BUILT_IN_CHKP_COPY_PTR_BOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_LBOUNDS, BUILT_IN_CHKP_CHECK_PTR_UBOUNDS,
	BUILT_IN_CHKP_CHECK_PTR_BOUNDS, BUILT_IN_CHKP_SET_PTR_BOUNDS,
	BUILT_IN_CHKP_NARROW_PTR_BOUNDS, BUILT_IN_CHKP_STORE_PTR_BOUNDS,
	BUILT_IN_CHKP_GET_PTR_LBOUND, BUILT_IN_CHKP_GET_PTR_UBOUND,
	BUILT_IN_CHKP_BNDMK, BUILT_IN_CHKP_BNDSTX, BUILT_IN_CHKP_BNDCL,
	BUILT_IN_CHKP_BNDCU, BUILT_IN_CHKP_BNDLDX, BUILT_IN_CHKP_BNDRET,
	BUILT_IN_CHKP_INTERSECT, BUILT_IN_CHKP_ARG_BND, BUILT_IN_CHKP_NARROW,
	BUILT_IN_CHKP_EXTRACT_LOWER, BUILT_IN_CHKP_EXTRACT_UPPER.
	* common.opt (fcheck-pointer-bounds): New.
	* toplev.c (process_options): Check Pointer Bounds Checker is
	supported.
	* doc/extend.texi: Document Pointer Bounds Checker built-in functions.

	Reverted:
	2013-10-30  Ilya Enkovich  <ilya.enkovich@intel.com>
	* target.def (builtin_chkp_function): New.
	(chkp_bound_type): New.
	(chkp_bound_mode): New.
	(fn_abi_va_list_bounds_size): New.
	(load_bounds_for_arg): New.
	(store_bounds_for_arg): New.
	* targhooks.h (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_fn_abi_va_list_bounds_size): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode): New.
	(default_builtin_chkp_function): New.
	* targhooks.c (default_load_bounds_for_arg): New.
	(default_store_bounds_for_arg): New.
	(default_fn_abi_va_list_bounds_size): New.
	(default_chkp_bound_type): New.
	(default_chkp_bound_mode); New.
	(default_builtin_chkp_function): New.
	* doc/tm.texi.in (TARGET_FN_ABI_VA_LIST_BOUNDS_SIZE): New.
	(TARGET_LOAD_BOUNDS_FOR_ARG): New.
	(TARGET_STORE_BOUNDS_FOR_ARG): New.
	(TARGET_BUILTIN_CHKP_FUNCTION): New.
	(TARGET_CHKP_BOUND_TYPE): New.
	(TARGET_CHKP_BOUND_MODE): New.
	* doc/tm.texi: Regenerated.
	* langhooks.h (lang_hooks): Add chkp_supported field.
	* langhooks-def.h (LANG_HOOKS_CHKP_SUPPORTED): New.
	(LANG_HOOKS_INITIALIZER); Add LANG_HOOKS_CHKP_SUPPORTED.

	Reverted:
	2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
	* config/i386/constraints.md (B): New.
	(Ti): New.
	(Tb): New.
	* config/i386/i386-c.c (ix86_target_macros_internal): Add __MPX__.
	* config/i386/i386-modes.def (BND32): New.
	(BND64): New.
	* config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.c (isa_opts): Add mmpx.
	(regclass_map): Add bound registers.
	(dbx_register_map): Likewise.
	(dbx64_register_map): Likewise.
	(svr4_dbx_register_map): Likewise.
	(PTA_MPX): New.
	(ix86_option_override_internal): Support MPX ISA.
	(ix86_conditional_register_usage): Support bound registers.
	(print_reg): Likewise.
	(ix86_code_end): Add MPX bnd prefix.
	(output_set_got): Likewise.
	(ix86_output_call_insn): Likewise.
	(ix86_print_operand): Add '!' (MPX bnd) print prefix support.
	(ix86_print_operand_punct_valid_p): Likewise.
	(ix86_print_operand_address): Support UNSPEC_BNDMK_ADDR and
	UNSPEC_BNDMK_ADDR.
	(ix86_class_likely_spilled_p): Add bound regs support.
	(ix86_hard_regno_mode_ok): Likewise.
	(x86_order_regs_for_local_alloc): Likewise.
	(ix86_bnd_prefixed_insn_p): New.
	* config/i386/i386.h (FIRST_PSEUDO_REGISTER): Fix to new value.
	(FIXED_REGISTERS): Add bound registers.
	(CALL_USED_REGISTERS): Likewise.
	(REG_ALLOC_ORDER): Likewise.
	(HARD_REGNO_NREGS): Likewise.
	(TARGET_MPX): New.
	(VALID_BND_REG_MODE): New.
	(FIRST_BND_REG): New.
	(LAST_BND_REG): New.
	(reg_class): Add BND_REGS.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(BND_REGNO_P): New.
	(ANY_BND_REG_P): New.
	(BNDmode): New.
	(HI_REGISTER_NAMES): Add bound registers.
	* config/i386/i386.md (UNSPEC_BNDMK): New.
	(UNSPEC_BNDMK_ADDR): New.
	(UNSPEC_BNDSTX): New.
	(UNSPEC_BNDLDX): New.
	(UNSPEC_BNDLDX_ADDR): New.
	(UNSPEC_BNDCL): New.
	(UNSPEC_BNDCU): New.
	(UNSPEC_BNDCN): New.
	(UNSPEC_MPX_FENCE): New.
	(BND0_REG): New.
	(BND1_REG): New.
	(type): Add mpxmov, mpxmk, mpxchk, mpxld, mpxst.
	(length_immediate): Likewise.
	(prefix_0f): Likewise.
	(memory): Likewise.
	(prefix_rep): Check for bnd prefix.
	(length_nobnd): New.
	(length): Use length_nobnd if specified.
	(BND): New.
	(bnd_ptr): New.
	(BNDCHECK): New.
	(bndcheck): New.
	(*jcc_1): Add bnd prefix and rename length attr to length_nobnd.
	(*jcc_2): Likewise.
	(jump): Likewise.
	(simple_return_internal): Likewise.
	(simple_return_pop_internal): Likewise.
	(*indirect_jump): Add MPX bnd prefix.
	(*tablejump_1): Likewise.
	(simple_return_internal_long): Likewise.
	(simple_return_indirect_internal): Likewise.
	(<mode>_mk): New.
	(*<mode>_mk): New.
	(mov<mode>): New.
	(*mov<mode>_internal_mpx): New.
	(<mode>_<bndcheck>): New.
	(*<mode>_<bndcheck>): New.
	(<mode>_ldx): New.
	(*<mode>_ldx): New.
	(<mode>_stx): New.
	(*<mode>_stx): New.
	* config/i386/predicates.md (lea_address_operand): Rename to...
	(address_no_seg_operand): ... this.
	(address_mpx_no_base_operand): New.
	(address_mpx_no_index_operand): New.
	(bnd_mem_operator): New.
	* config/i386/i386.opt (mmpx): New.
	* doc/invoke.texi: Add documentation for the flags -mmpx, -mno-mpx.
	* doc/rtl.texi Add documentation for BND32mode and BND64mode.

	Reverted:
	2013-10-24  Ilya Enkovich  <ilya.enkovich@intel.com>
	* mode-classes.def (MODE_POINTER_BOUNDS): New.
	* tree.def (POINTER_BOUNDS_TYPE): New.
	* genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
	(POINTER_BOUNDS_MODE): New.
	(make_pointer_bounds_mode): New.
	* machmode.h (POINTER_BOUNDS_MODE_P): New.
	* stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
	(layout_type): Support POINTER_BOUNDS_TYPE.
	* tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
	* tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
	(type_contains_placeholder_1): Likewise.
	* tree.h (POINTER_BOUNDS_TYPE_P): New.
	* varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
	* doc/rtl.texi (MODE_POINTER_BOUNDS): New.

From-SVN: r205522
2013-11-29 12:12:39 +00:00
Mike Stump d8487c949a machmode.def (PARTIAL_INT_MODE): Add precision and name.
* machmode.def (PARTIAL_INT_MODE): Add precision and name.
	* genmodes.c (PARTIAL_INT_MODE): Add precision and name.
	(make_vector_mode): Increase namebuf to 16.
	(emit_insn_modes_h): When processing BImode, don't
	also match partial int modes.
	(emit_class_narrowest_mode): Likewise.

	* config/bfin/bfin-modes.def: Add precision to PDI.
	* config/m32c/m32c-modes.def: Add precision to PSI.
	* config/msp430/msp430-modes.def: Add precision to PSI.
	* config/rs6000/rs6000-modes.def: Add precision to PTI.
	* config/sh/sh-modes.def: Add precision to PSI and PDI.

From-SVN: r204193
2013-10-30 03:02:00 +00:00
Ilya Enkovich 65f55baca4 mode-classes.def (MODE_POINTER_BOUNDS): New.
* mode-classes.def (MODE_POINTER_BOUNDS): New.
        * tree.def (POINTER_BOUNDS_TYPE): New.
        * genmodes.c (complete_mode): Support MODE_POINTER_BOUNDS.
        (POINTER_BOUNDS_MODE): New.
        (make_pointer_bounds_mode): New.
        * machmode.h (POINTER_BOUNDS_MODE_P): New.
        * stor-layout.c (int_mode_for_mode): Support MODE_POINTER_BOUNDS.
        (layout_type): Support POINTER_BOUNDS_TYPE.
        * tree-pretty-print.c (dump_generic_node): Support POINTER_BOUNDS_TYPE.
        * tree.c (build_int_cst_wide): Support POINTER_BOUNDS_TYPE.
        (type_contains_placeholder_1): Likewise.
        * tree.h (POINTER_BOUNDS_TYPE_P): New.
        * varasm.c (output_constant): Support POINTER_BOUNDS_TYPE.
        * doc/rtl.texi (MODE_POINTER_BOUNDS): New.

From-SVN: r204045
2013-10-25 05:36:14 +00:00
Richard Sandiford c328471880 alloc-pool.c, [...]: Add missing whitespace before "(".
gcc/
	* alloc-pool.c, asan.c, auto-inc-dec.c, basic-block.h, bb-reorder.c,
	bitmap.c, bitmap.h, bt-load.c, builtins.c, calls.c, cfgcleanup.c,
	cfgexpand.c, cfghooks.c, cfgloop.c, cfgloopmanip.c, cfgrtl.c, cgraph.c,
	cgraph.h, cgraphbuild.c, cgraphclones.c, cgraphunit.c, collect2.c,
	combine-stack-adj.c, combine.c, compare-elim.c, context.c, context.h,
	cprop.c, cse.c, cselib.c, dbxout.c, dce.c, defaults.h, df-core.c,
	df-problems.c, df-scan.c, df.h, diagnostic.c, double-int.c, dse.c,
	dumpfile.c, dwarf2asm.c, dwarf2cfi.c, dwarf2out.c, emit-rtl.c,
	errors.c, except.c, expmed.c, expr.c, file-find.c, final.c,
	fixed-value.c, fold-const.c, function.c, fwprop.c, gcc-ar.c, gcc.c,
	gcov-io.c, gcov-io.h, gcov.c, gcse.c, genattr-common.c, genattr.c,
	genattrtab.c, genautomata.c, genconfig.c, genemit.c, genextract.c,
	genflags.c, gengenrtl.c, gengtype-state.c, gengtype.c, genmodes.c,
	genopinit.c, genoutput.c, genpeep.c, genpreds.c, genrecog.c,
	gensupport.c, ggc-common.c, ggc-page.c, gimple-fold.c, gimple-low.c,
	gimple-pretty-print.c, gimple-ssa-strength-reduction.c, gimple.c,
	gimple.h, godump.c, graphite-clast-to-gimple.c,
	graphite-optimize-isl.c, graphite-poly.h, graphite-sese-to-poly.c,
	graphite.c, haifa-sched.c, hash-table.c, hash-table.h, hwint.c,
	hwint.h, ifcvt.c, incpath.c, init-regs.c, input.h, intl.c, intl.h,
	ipa-cp.c, ipa-devirt.c, ipa-inline-analysis.c, ipa-inline.c,
	ipa-profile.c, ipa-pure-const.c, ipa-reference.c, ipa-split.c,
	ipa-utils.c, ipa.c, ira-build.c, ira.c, jump.c, loop-doloop.c,
	loop-init.c, loop-invariant.c, loop-iv.c, lower-subreg.c, lto-cgraph.c,
	lto-streamer-in.c, lto-streamer-out.c, lto-wrapper.c, mcf.c,
	mode-switching.c, modulo-sched.c, omp-low.c, optabs.c, opts.c,
	pass_manager.h, passes.c, plugin.c, postreload-gcse.c, postreload.c,
	predict.c, prefix.c, pretty-print.c, print-rtl.c, print-tree.c,
	profile.c, read-md.c, real.c, real.h, recog.c, ree.c, reg-stack.c,
	regcprop.c, reginfo.c, regmove.c, regrename.c, regs.h, regstat.c,
	reload1.c, reorg.c, rtl.c, rtl.h, rtlanal.c, sbitmap.c, sched-rgn.c,
	sdbout.c, sel-sched-ir.c, sel-sched.c, sparseset.c, stack-ptr-mod.c,
	statistics.c, stmt.c, stor-layout.c, store-motion.c, streamer-hooks.h,
	system.h, target-hooks-macros.h, targhooks.c, targhooks.h, toplev.c,
	tracer.c, trans-mem.c, tree-browser.c, tree-call-cdce.c, tree-cfg.c,
	tree-cfgcleanup.c, tree-complex.c, tree-data-ref.c, tree-data-ref.h,
	tree-eh.c, tree-emutls.c, tree-flow.h, tree-if-conv.c, tree-into-ssa.c,
	tree-iterator.c, tree-loop-distribution.c, tree-mudflap.c,
	tree-nested.c, tree-nomudflap.c, tree-nrv.c, tree-object-size.c,
	tree-optimize.c, tree-pass.h, tree-pretty-print.c, tree-profile.c,
	tree-scalar-evolution.c, tree-sra.c, tree-ssa-ccp.c,
	tree-ssa-coalesce.c, tree-ssa-copy.c, tree-ssa-copyrename.c,
	tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-dse.c, tree-ssa-forwprop.c,
	tree-ssa-ifcombine.c, tree-ssa-live.c, tree-ssa-loop-ch.c,
	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-loop-prefetch.c,
	tree-ssa-loop.c, tree-ssa-math-opts.c, tree-ssa-operands.c,
	tree-ssa-phiopt.c, tree-ssa-phiprop.c, tree-ssa-pre.c,
	tree-ssa-reassoc.c, tree-ssa-sink.c, tree-ssa-strlen.c,
	tree-ssa-structalias.c, tree-ssa-threadedge.c, tree-ssa-threadupdate.c,
	tree-ssa-uncprop.c, tree-ssa-uninit.c, tree-ssa.c, tree-ssanames.c,
	tree-stdarg.c, tree-switch-conversion.c, tree-tailcall.c,
	tree-vect-data-refs.c, tree-vect-generic.c, tree-vect-loop-manip.c,
	tree-vect-stmts.c, tree-vectorizer.c, tree-vectorizer.h, tree-vrp.c,
	tree.c, tree.h, tsan.c, tsystem.h, value-prof.c, var-tracking.c,
	varasm.c, vec.h, vmsdbgout.c, vtable-verify.c, web.c: Add missing
	whitespace before "(".

From-SVN: r203004
2013-09-28 08:42:34 +00:00
Kenneth Zadeck 8697be17fe genmodes.c (emit_max_int): New function.
2013-03-28  Kenneth Zadeck <zadeck@naturalbridge.com>

   	* genmodes.c (emit_max_int): New function.
	(emit_insn_modes_h): Added call to emit_max_function.
	* doc/rtl.texi (MAX_BITSIZE_MODE_ANY_INT, MAX_BITSIZE_MODE_ANY_MODE): Added doc.	
	* machmode.def: Fixed comment.

From-SVN: r197200
2013-03-28 14:46:31 +00:00
Richard Sandiford d1e082c2c2 Update copyright years in gcc/
From-SVN: r195098
2013-01-10 20:38:27 +00:00
Bernd Schmidt e90247f8ba re PR middle-end/52940 (conversion from MODE_PARTIAL_INT uses sign extension for unsigned types)
PR middle-end/52940
	* machmode.h (CLASS_HAS_WIDER_MODES_P): True for MODE_PARTIAL_INT.
	* expr.c (convert_move): Honor unsignedp when extending partial int
	modes.
	* genmodes.c (complete_mode): Don't clear component field of partial
	int modes.
	(emit_mode_inner): Don't emit it however.
	(calc_wider_mode): Partial int modes widen to their component.

From-SVN: r186877
2012-04-26 14:20:39 +00:00
Jim Meyering 1f36f7b30b genmodes: don't truncate a mode name of length >= 7
* genmodes.c (make_complex_modes): Don't truncate a mode name of
length 7 or more when prepending a "C".  Suggested by Richard Guenther.

From-SVN: r186628
2012-04-20 15:38:35 +00:00
Jim Meyering 75be0217a8 genmodes: remove misleading use of strncpy
* genmodes.c (make_complex_modes): Avoid unnecessary use of strncpy.
We verified above that the string(including trailing NUL) fits in buf,
so just use memcpy.

From-SVN: r186596
2012-04-19 13:51:17 +00:00
Richard Henderson a7de2c2a71 Let GET_MODE_2XWIDER_MODE find a double-width vector mode.
* genmodes.c (struct mode_data): Remove wider_2x member.
        (blank_mode): Adjust initializer.
        (calc_wider_mode): Use XALLOCAVEC.
        (emit_move_wider): Select double-width same-element vectors for
        2xwider vectors.
        * machmode.h (GET_MODE_2XWIDER_MODE): Update documentation.
        * config/i386/i386.c (doublesize_vector_mode): Remove.
        (expand_vselect_vconcat): Use GET_MODE_2XWIDER_MODE instead.

From-SVN: r182191
2011-12-10 12:42:55 -08:00
Joseph Myers c538766023 tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
* doc/tm.texi.in (OVERRIDE_OPTIONS): Remove documentation.
	(C_COMMON_OVERRIDE_OPTIONS): Don't refer to OVERRIDE_OPTIONS.
	* doc/tm.texi: Regenerate.
	* system.h (OVERRIDE_OPTIONS): Poison.
	* target.def (override): Default to hook_void_void.
	* targhooks.c (default_target_option_override): Remove.
	* genmodes.c, machmode.def: Update comments mentioning
	OVERRIDE_OPTIONS.
	* config/alpha/alpha-modes.def: Update comment mentioning
	alpha_override_options.
	* config/alpha/alpha-protos.h (override_options): Remove.
	* config/alpha/alpha.c (override_options): Rename to
	alpha_option_override.  Call SUBTARGET_OVERRIDE_OPTIONS.  Make
	static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/alpha/alpha.h (OVERRIDE_OPTIONS): Remove.
	* config/alpha/vms.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead
	of OVERRIDE_OPTIONS.
	* config/arc/arc-protos.h (arc_init): Remove.
	* config/arc/arc.c (TARGET_OPTION_OVERRIDE): Define.
	(arc_init): Rename to arc_option_override.  Make static.
	* config/arc/arc.h (ARC_EXTENSION_CPU): Correct comment.
	(OVERRIDE_OPTIONS): Remove.
	* config/arm/arm-protos.h (arm_override_options): Remove.
	* config/arm/arm.c (TARGET_OPTION_OVERRIDE): Define.
	(arm_override_options): Rename to arm_option_override.  Make
	static.  Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/arm/arm.h (OVERRIDE_OPTIONS): Remove.
	* config/arm/arm.md: Update comment referring to
	arm_override_options.
	* config/arm/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
	instead of OVERRIDE_OPTIONS.
	* config/avr/avr-protos.h (avr_override_options): Remove.
	* config/avr/avr.c (TARGET_OPTION_OVERRIDE): Define.
	(avr_override_options): Rename to avr_option_override.  Make
	static.
	* config/avr/avr.h (OVERRIDE_OPTIONS): Remove.
	* config/bfin/bfin-protos.h (override_options): Remove (twice).
	* config/bfin/bfin.c (override_options): Rename to
	bfin_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/bfin/bfin.h (OVERRIDE_OPTIONS): Remove.
	* config/cris/cris-protos.h (cris_override_options): Remove.
	* config/cris/cris.c (TARGET_OPTION_OVERRIDE): Define.
	(cris_override_options): Rename to cris_option_override.  Make
	static.
	* config/cris/cris.h (OVERRIDE_OPTIONS): Remove.
	* config/frv/frv-protos.h (frv_override_options): Remove.
	* config/frv/frv.c (TARGET_OPTION_OVERRIDE): Define.
	(frv_override_options): Rename to frv_option_override.  Make
	static.
	* config/frv/frv.h (OVERRIDE_OPTIONS): Remove.
	* config/h8300/h8300-protos.h (h8300_init_once): Remove.
	* config/h8300/h8300.c (h8300_init_once): Rename to
	h8300_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/h8300/h8300.h (OVERRIDE_OPTIONS): Remove.
	* config/i386/i386-protos.h (override_options): Remove.
	* config/i386/i386.c (override_options): Rename to
	ix86_option_override_internal.  Make static.  Comments referring
	to this function and callers changed.
	(ix86_option_override): New.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/i386/i386.h (OVERRIDE_OPTION): Remove.
	* config/i386/linux64.h (DEFAULT_PCC_STRUCT_RETURN): Update
	comment.
	* config/ia64/ia64.c (ia64_file_start): Update comment referring
	to ia64_override_options.
	* config/iq2000/iq2000-protos.h (override_options): Remove.
	* config/iq2000/iq2000.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to iq2000_option_override.  Make
	static.
	* config/iq2000/iq2000.h (OVERRIDE_OPTIONS): Remove.
	* config/lm32/lm32-protos.h (lm32_override_options): Remove.
	* config/lm32/lm32.c (TARGET_OPTION_OVERRIDE): Define.
	(lm32_override_options): Rename to lm32_option_override.  Make
	static.
	* config/lm32/lm32.h (OVERRIDE_OPTIONS): Remove.
	* config/m32r/m32r.c (TARGET_OPTION_OVERRIDE): Define.
	(m32r_option_override): New.
	(m32r_init): Update comment.
	* config/m32r/m32r.h (OVERRIDE_OPTIONS): Remove.
	* config/m68hc11/m68hc11-protos.h (m68hc11_override_options):
	Remove.
	* config/m68hc11/m68hc11.c (TARGET_OPTION_OVERRIDE): Define.
	(m68hc11_override_options): Rename to m68hc11_option_override.
	Make static.  Return void.
	* config/m68hc11/m68hc11.h (OVERRIDE_OPTIONS): Remove.
	* config/m68k/m68k-protos.h (override_options): Remove.
	* config/m68k/m68k.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to m68k_option_override.  Make static.
	* config/m68k/m68k.h (OVERRIDE_OPTIONS): Remove.
	* config/mcore/mcore-protos.h (mcore_override_options): Remove.
	* config/mcore/mcore.c (TARGET_OPTION_OVERRIDE): Define.
	(mcore_override_options): Rename to mcore_option_override.  Make
	static.
	* config/mcore/mcore.h (OVERRIDE_OPTIONS): Remove.
	* config/mep/mep-protos.h (mep_override_options): Remove.
	* config/mep/mep.c (TARGET_OPTION_OVERRIDE): Define.
	(mep_override_options): Rename to mep_option_override.  Make
	static.
	* config/mep/mep.h (OVERRIDE_OPTIONS): Remove.
	* config/mmix/mmix-protos.h (mmix_override_options): Remove.
	* config/mmix/mmix.c (TARGET_OPTION_OVERRIDE): Define.
	(mmix_override_options): Rename to mmix_option_override.  Make
	static.
	* config/mmix/mmix.h (OVERRIDE_OPTIONS): Remove.
	* config/mn10300/mn10300-protos.h (mn10300_override_options):
	Remove.
	* config/mn10300/mn10300.c (TARGET_OPTION_OVERRIDE): Define.
	(mn10300_override_options): Rename to mn10300_option_override.
	Make static.
	* config/mn10300/mn10300.h (OVERRIDE_OPTIONS): Remove.
	* config/moxie/moxie-protos.h (moxie_override_options): Remove.
	* config/moxie/moxie.c (moxie_override_options): Rename to
	moxie_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/moxie/moxie.h (OVERRIDE_OPTIONS): Remove.
	* config/picochip/picochip-protos.h (picochip_override_options):
	Remove.  Update comment referring to picochip_override_options.
	* config/picochip/picochip.c (TARGET_OPTION_OVERRIDE): Define.
	(picochip_override_options): Rename to picochip_option_override.
	Make static.  Update comment and definition of
	TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.
	* config/picochip/picochip.h (OVERRIDE_OPTIONS): Remove.
	* config/rs6000/aix43.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix51.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix52.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix53.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/aix61.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/rs6000/linux64.h (OPTION_TARGET_CPU_DEFAULT): Define
	instead of OVERRIDE_OPTIONS.
	* config/rs6000/rs6000-modes.def: Update comment referring to
	rs6000_override_options.
	* config/rs6000/rs6000-protos.h (rs6000_override_options): Remove.
	* config/rs6000/rs6000.c (TARGET_OPTION_OVERRIDE): Define.
	(rs6000_override_options): Rename to
	rs6000_option_override_internal.  Make static.  Commented
	referring to rs6000_override_options and OVERRIDE_OPTIONS updated.
	(rs6000_option_override): New.
	* config/rs6000/rs6000.h (OPTION_TARGET_CPU_DEFAULT): Define
	instead of OVERRIDE_OPTIONS.
	* config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Update
	comment.
	* config/s390/s390-protos.h (override_options): Remove.
	* config/s390/s390.c (override_options): Rename to
	s390_option_override.  Make static.
	(TARGET_OPTION_OVERRIDE): Define.
	* config/s390/s390.h (OVERRIDE_OPTIONS): Remove.
	* config/score/score-protos.h (score_override_options): Remove.
	* config/score/score.c (TARGET_OPTION_OVERRIDE): Define.
	(score_override_options): Rename to score_option_override.  Make
	static.
	* config/score/score.h (OVERRIDE_OPTIONS): Remove.
	Update comment referring to override_options.
	* config/score/score3.c (score3_override_options): Rename to
	score3_option_override.
	* config/score/score3.h (score3_override_options): Rename to
	score3_option_override.
	* config/score/score7.c (score7_override_options): Rename to
	score7_option_override.
	* config/score/score7.h (score7_override_options): Rename to
	score7_option_override.
	* config/sh/sh.c: Update comments referring to OVERRIDE_OPTIONS.
	* config/sparc/sparc.c (TARGET_OPTION_OVERRIDE): Define.
	(sparc_override_options): Rename to sparc_option_override.  Make
	static.  Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/sparc/sparc.h (OVERRIDE_OPTIONS): Remove.
	* config/sparc/vxworks.h (SUBTARGET_OVERRIDE_OPTIONS): Define
	instead of OVERRIDE_OPTIONS.
	* config/spu/spu-protos.h (spu_override_options): Remove.
	* config/spu/spu.c (TARGET_OPTION_OVERRIDE): Define.
	(spu_override_options): Rename to spu_option_override.  Make
	static.
	* config/spu/spu.h (OVERRIDE_OPTIONS): Remove.
	* config/vax/elf.h (SUBTARGET_OVERRIDE_OPTIONS): Define instead of
	OVERRIDE_OPTIONS.
	* config/vax/vax-protos.h (override_options): Remove.
	* config/vax/vax.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to vax_option_override.  Make static.
	Call SUBTARGET_OVERRIDE_OPTIONS.
	* config/vax/vax.h (OVERRIDE_OPTIONS): Remove.
	* config/vxworks.c: Update comment referring to OVERRIDE_OPTIONS.
	* config/vxworks.h: Update comment referring to OVERRIDE_OPTIONS.
	* config/xtensa/xtensa-protos.h (override_options): Remove.
	* config/xtensa/xtensa.c (TARGET_OPTION_OVERRIDE): Define.
	(override_options): Rename to xtensa_option_override.  Make
	static.
	* config/xtensa/xtensa.h (OVERRIDE_OPTIONS): Remove.

From-SVN: r164334
2010-09-16 12:59:39 +01:00
H.J. Lu b8698a0f37 Remove trailing white spaces.
2009-11-25  H.J. Lu  <hongjiu.lu@intel.com>

	* alias.c: Remove trailing white spaces.
	* alloc-pool.c: Likewise.
	* alloc-pool.h: Likewise.
	* attribs.c: Likewise.
	* auto-inc-dec.c: Likewise.
	* basic-block.h: Likewise.
	* bb-reorder.c: Likewise.
	* bt-load.c: Likewise.
	* builtins.c: Likewise.
	* builtins.def: Likewise.
	* c-common.c: Likewise.
	* c-common.h: Likewise.
	* c-cppbuiltin.c: Likewise.
	* c-decl.c: Likewise.
	* c-format.c: Likewise.
	* c-lex.c: Likewise.
	* c-omp.c: Likewise.
	* c-opts.c: Likewise.
	* c-parser.c: Likewise.
	* c-pretty-print.c: Likewise.
	* c-tree.h: Likewise.
	* c-typeck.c: Likewise.
	* caller-save.c: Likewise.
	* calls.c: Likewise.
	* cfg.c: Likewise.
	* cfganal.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfghooks.h: Likewise.
	* cfglayout.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloop.h: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraph.h: Likewise.
	* cgraphbuild.c: Likewise.
	* cgraphunit.c: Likewise.
	* cif-code.def: Likewise.
	* collect2.c: Likewise.
	* combine.c: Likewise.
	* convert.c: Likewise.
	* coverage.c: Likewise.
	* crtstuff.c: Likewise.
	* cse.c: Likewise.
	* cselib.c: Likewise.
	* dbgcnt.c: Likewise.
	* dbgcnt.def: Likewise.
	* dbgcnt.h: Likewise.
	* dbxout.c: Likewise.
	* dce.c: Likewise.
	* ddg.c: Likewise.
	* ddg.h: Likewise.
	* defaults.h: Likewise.
	* df-byte-scan.c: Likewise.
	* df-core.c: Likewise.
	* df-problems.c: Likewise.
	* df-scan.c: Likewise.
	* df.h: Likewise.
	* dfp.c: Likewise.
	* diagnostic.c: Likewise.
	* diagnostic.h: Likewise.
	* dominance.c: Likewise.
	* domwalk.c: Likewise.
	* double-int.c: Likewise.
	* double-int.h: Likewise.
	* dse.c: Likewise.
	* dwarf2asm.c: Likewise.
	* dwarf2asm.h: Likewise.
	* dwarf2out.c: Likewise.
	* ebitmap.c: Likewise.
	* ebitmap.h: Likewise.
	* emit-rtl.c: Likewise.
	* et-forest.c: Likewise.
	* except.c: Likewise.
	* except.h: Likewise.
	* expmed.c: Likewise.
	* expr.c: Likewise.
	* expr.h: Likewise.
	* final.c: Likewise.
	* flags.h: Likewise.
	* fold-const.c: Likewise.
	* function.c: Likewise.
	* function.h: Likewise.
	* fwprop.c: Likewise.
	* gcc.c: Likewise.
	* gcov-dump.c: Likewise.
	* gcov-io.c: Likewise.
	* gcov-io.h: Likewise.
	* gcov.c: Likewise.
	* gcse.c: Likewise.
	* genattr.c: Likewise.
	* genattrtab.c: Likewise.
	* genautomata.c: Likewise.
	* genchecksum.c: Likewise.
	* genconfig.c: Likewise.
	* genflags.c: Likewise.
	* gengtype-parse.c: Likewise.
	* gengtype.c: Likewise.
	* gengtype.h: Likewise.
	* genmddeps.c: Likewise.
	* genmodes.c: Likewise.
	* genopinit.c: Likewise.
	* genpreds.c: Likewise.
	* gensupport.c: Likewise.
	* ggc-common.c: Likewise.
	* ggc-page.c: Likewise.
	* ggc-zone.c: Likewise.
	* ggc.h: Likewise.
	* gimple-iterator.c: Likewise.
	* gimple-low.c: Likewise.
	* gimple-pretty-print.c: Likewise.
	* gimple.c: Likewise.
	* gimple.def: Likewise.
	* gimple.h: Likewise.
	* gimplify.c: Likewise.
	* graphds.c: Likewise.
	* graphite-clast-to-gimple.c: Likewise.
	* gthr-nks.h: Likewise.
	* gthr-posix.c: Likewise.
	* gthr-posix.h: Likewise.
	* gthr-posix95.h: Likewise.
	* gthr-single.h: Likewise.
	* gthr-tpf.h: Likewise.
	* gthr-vxworks.h: Likewise.
	* gthr.h: Likewise.
	* haifa-sched.c: Likewise.
	* hard-reg-set.h: Likewise.
	* hooks.c: Likewise.
	* hooks.h: Likewise.
	* hosthooks.h: Likewise.
	* hwint.h: Likewise.
	* ifcvt.c: Likewise.
	* incpath.c: Likewise.
	* init-regs.c: Likewise.
	* integrate.c: Likewise.
	* ipa-cp.c: Likewise.
	* ipa-inline.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-reference.c: Likewise.
	* ipa-struct-reorg.c: Likewise.
	* ipa-struct-reorg.h: Likewise.
	* ipa-type-escape.c: Likewise.
	* ipa-type-escape.h: Likewise.
	* ipa-utils.c: Likewise.
	* ipa-utils.h: Likewise.
	* ipa.c: Likewise.
	* ira-build.c: Likewise.
	* ira-color.c: Likewise.
	* ira-conflicts.c: Likewise.
	* ira-costs.c: Likewise.
	* ira-emit.c: Likewise.
	* ira-int.h: Likewise.
	* ira-lives.c: Likewise.
	* ira.c: Likewise.
	* jump.c: Likewise.
	* lambda-code.c: Likewise.
	* lambda-mat.c: Likewise.
	* lambda-trans.c: Likewise.
	* lambda.h: Likewise.
	* langhooks.c: Likewise.
	* lcm.c: Likewise.
	* libgcov.c: Likewise.
	* lists.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lower-subreg.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-compress.c: Likewise.
	* lto-opts.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-section-out.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* lto-streamer.c: Likewise.
	* lto-streamer.h: Likewise.
	* lto-symtab.c: Likewise.
	* lto-wpa-fixup.c: Likewise.
	* matrix-reorg.c: Likewise.
	* mcf.c: Likewise.
	* mode-switching.c: Likewise.
	* modulo-sched.c: Likewise.
	* omega.c: Likewise.
	* omega.h: Likewise.
	* omp-low.c: Likewise.
	* optabs.c: Likewise.
	* optabs.h: Likewise.
	* opts-common.c: Likewise.
	* opts.c: Likewise.
	* params.def: Likewise.
	* params.h: Likewise.
	* passes.c: Likewise.
	* plugin.c: Likewise.
	* postreload-gcse.c: Likewise.
	* postreload.c: Likewise.
	* predict.c: Likewise.
	* predict.def: Likewise.
	* pretty-print.c: Likewise.
	* pretty-print.h: Likewise.
	* print-rtl.c: Likewise.
	* print-tree.c: Likewise.
	* profile.c: Likewise.
	* read-rtl.c: Likewise.
	* real.c: Likewise.
	* recog.c: Likewise.
	* reg-stack.c: Likewise.
	* regcprop.c: Likewise.
	* reginfo.c: Likewise.
	* regmove.c: Likewise.
	* regrename.c: Likewise.
	* regs.h: Likewise.
	* regstat.c: Likewise.
	* reload.c: Likewise.
	* reload1.c: Likewise.
	* resource.c: Likewise.
	* rtl.c: Likewise.
	* rtl.def: Likewise.
	* rtl.h: Likewise.
	* rtlanal.c: Likewise.
	* sbitmap.c: Likewise.
	* sched-deps.c: Likewise.
	* sched-ebb.c: Likewise.
	* sched-int.h: Likewise.
	* sched-rgn.c: Likewise.
	* sched-vis.c: Likewise.
	* sdbout.c: Likewise.
	* sel-sched-dump.c: Likewise.
	* sel-sched-dump.h: Likewise.
	* sel-sched-ir.c: Likewise.
	* sel-sched-ir.h: Likewise.
	* sel-sched.c: Likewise.
	* sel-sched.h: Likewise.
	* sese.c: Likewise.
	* sese.h: Likewise.
	* simplify-rtx.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* stmt.c: Likewise.
	* stor-layout.c: Likewise.
	* store-motion.c: Likewise.
	* stringpool.c: Likewise.
	* stub-objc.c: Likewise.
	* sync-builtins.def: Likewise.
	* target-def.h: Likewise.
	* target.h: Likewise.
	* targhooks.c: Likewise.
	* targhooks.h: Likewise.
	* timevar.c: Likewise.
	* tlink.c: Likewise.
	* toplev.c: Likewise.
	* toplev.h: Likewise.
	* tracer.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-affine.h: Likewise.
	* tree-browser.def: Likewise.
	* tree-call-cdce.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-chrec.h: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-data-ref.h: Likewise.
	* tree-dfa.c: Likewise.
	* tree-dump.c: Likewise.
	* tree-dump.h: Likewise.
	* tree-eh.c: Likewise.
	* tree-flow-inline.h: Likewise.
	* tree-flow.h: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-loop-linear.c: Likewise.
	* tree-mudflap.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-nomudflap.c: Likewise.
	* tree-nrv.c: Likewise.
	* tree-object-size.c: Likewise.
	* tree-optimize.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-pass.h: Likewise.
	* tree-phinodes.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-profile.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-address.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-ccp.c: Likewise.
	* tree-ssa-coalesce.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-ifcombine.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-live.h: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-operands.c: Likewise.
	* tree-ssa-operands.h: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-phiprop.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-structalias.c: Likewise.
	* tree-ssa-ter.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa-uncprop.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-ssanames.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vectorizer.h: Likewise.
	* tree-vrp.c: Likewise.
	* tree.c: Likewise.
	* tree.def: Likewise.
	* tree.h: Likewise.
	* treestruct.def: Likewise.
	* unwind-compat.c: Likewise.
	* unwind-dw2-fde-glibc.c: Likewise.
	* unwind-dw2.c: Likewise.
	* value-prof.c: Likewise.
	* value-prof.h: Likewise.
	* var-tracking.c: Likewise.
	* varasm.c: Likewise.
	* varpool.c: Likewise.
	* vec.c: Likewise.
	* vec.h: Likewise.
	* vmsdbgout.c: Likewise.
	* web.c: Likewise.
	* xcoffout.c: Likewise.

From-SVN: r154645
2009-11-25 02:55:54 -08:00
Nick Clifton 9dcd6f09a3 Change copyright header to refer to version 3 of the GNU General Public License and to point readers at the COPYING3 file and the FSF's license web page.
From-SVN: r126948
2007-07-26 08:37:01 +00:00
Kaveh R. Ghazi 741ac90383 c-common.c (fname_as_string, [...]): Constify.
* c-common.c (fname_as_string, c_type_hash): Constify.
	* c-typeck.c (free_all_tagged_tu_seen_up_to): Likewise.
	* cgraph.c (edge_hash, edge_eq): Likewise.
	* dwarf2out.c (decl_die_table_eq, decl_loc_table_eq): Likewise.
	* emit-rtl.c (mem_attrs_htab_eq, reg_attrs_htab_hash,
	reg_attrs_htab_eq): Likewise.
	* except.c (t2r_eq, t2r_hash, ttypes_filter_eq, ehl_hash, ehl_eq):
	Likewise.
	* genautomata.c (const_reserv_sets_t, const_unit_decl_t,
	const_decl_t, const_state_t, const_automata_list_el_t): New.
	(first_out_arc, DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL,
	DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV,
	automaton_decl_hash, automaton_decl_eq_p, insn_decl_hash,
	insn_decl_eq_p, decl_hash, decl_eq_p, alt_state_cmp,
	reserv_sets_cmp, reserv_sets_eq, state_hash, state_eq_p,
	automata_list_hash, automata_list_eq_p, compare_states_for_equiv,
	compare_max_occ_cycle_nums, out_state_arcs_num,
	compare_transition_els_num, units_cmp, state_reservs_cmp):
	Constify.
	* genmodes.c (cmp_modes): Likewise.
	* ggc-common.c (saving_htab_hash, saving_htab_eq): Likewise.
	* gimplify.c (compare_case_labels): Likewise.
	* ipa-type-escape.c (get_name_of_type, type_brand_s): Likewise.
	* loop-unroll.c (si_info_hash, ve_info_hash): Likewise.
	* matrix-reorg.c (mtt_info_hash): Likewise.
	* postreload-gcse.c (hash_expr_for_htab, expr_equiv_p): Likewise.
	* rtl-factoring.c (const_p_hash_bucket, const_p_hash_elem): New.
	(htab_hash_bucket, htab_hash_elem): Constify.
	* tree-browser.c (TB_parent_eq): Likewise.
	* tree-scalar-evolution.c (hash_scev_info): Likewise.
	* tree-ssa-alias.c (sort_tags_by_id): Likewise.
	* tree-ssa-coalesce.c (const_coalesce_pair_p): New.
	(coalesce_pair_map_hash, coalesce_pair_map_eq, compare_pairs):
	Constify.
	* tree-ssa-dom.c (avail_expr_hash, avail_expr_eq): Likewise.
	* tree-ssa-pre.c (const_expr_pred_trans_t): New.
	(expr_pred_trans_hash, expr_pred_trans_eq): Constify.
	* tree-ssa-sccvn.c (const_vn_binary_op_t, const_vn_unary_op_t,
	const_vn_phi_t, const_vn_reference_op_t, const_vn_reference_t):
	New.
	(vn_reference_op_eq, vn_reference_hash, vn_reference_eq,
	vn_unary_op_hash, vn_unary_op_eq, vn_binary_op_hash,
	vn_binary_op_eq, vn_phi_hash, vn_phi_eq): Constify.
	* tree-ssa-threadupdate.c (redirection_data_hash,
	redirection_data_eq): Likewise. 
	* tree-ssa-uncprop.c (equiv_hash, equiv_eq): Likewise.
	* tree-ssa.c (var_ann_eq): Likewise.
	* tree-vrp.c (compare_case_labels): Likewise.
	* tree.c (int_cst_hash_hash, int_cst_hash_eq,
	tree_map_base_marked_p, type_hash_marked_p, tree_check_failed,
	tree_not_check_failed, tree_class_check_failed,
	tree_range_check_failed, tree_not_class_check_failed,
	omp_clause_check_failed, omp_clause_range_check_failed,
	tree_contains_struct_check_failed, tree_operand_check_failed):
	Likewise. 
	* tree.h (tree_contains_struct_check_failed, tree_check_failed,
	tree_not_check_failed, tree_class_check_failed,
	tree_range_check_failed, tree_not_class_check_failed,
	tree_operand_check_failed, omp_clause_operand_check_failed,
	tree_operand_length): Likewise. 
	* var-tracking.c (const_variable): New.
	(variable_htab_hash, variable_htab_eq): Constify.
	* varasm.c (const_desc_hash): Likewise.

cp:
	* decl.c (typename_hash, typename_compare): Constify.
	* mangle.c (hash_type, compare_type): Likewise.
	* pt.c (eq_local_specializations, hash_local_specialization):
	Likewise.
	* tree.c (cplus_array_hash, cplus_array_compare, list_hash_eq,
	list_hash): Likewise.
	* typeck2.c (pat_compare): Likewise.

fortran:
	* gfortran.h (generate_isocbinding_symbol): Constify.
	* symbol.c (gen_special_c_interop_ptr, gen_cptr_param,
	generate_isocbinding_symbol): Likewise.

java:
	* class.c (java_treetreehash_hash, java_treetreehash_compare):
	Constify. 
	* expr.c (type_assertion_eq): Likewise.
	* jcf-io.c (compare_path): Likewise.
	* jcf-parse.c (cmpstringp): Likewise.
	* verify-impl.c (get_one_type, compute_argument_types,
	compute_return_type): Likewise. 

objc:
	* objc-act.c (volatilized_hash, volatilized_eq, string_hash,
	string_eq): Constify.

From-SVN: r126925
2007-07-25 19:06:06 +00:00
Chao-ying Fu 1699ec0b95 rtl.texi (Machine Modes): Document QQ...
* doc/rtl.texi (Machine Modes): Document QQ, HQ, SQ, DQ, TQ,
	UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA, USA, UDA, and UTAmodes.
	Document MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
	Document GET_MODE_IBIT, and GET_MODE_FBIT.

	* machmode.h (VECTOR_MODE_P): Test MODE_VECTOR_FRACT,
	MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	(SCALAR_FRACT_MODE_P, SCALAR_UFRACT_MODE_P, ALL_SCALAR_FRACT_MODE_P,
	SCALAR_ACCUM_MODE_P, SCALAR_UACCUM_MODE_P, ALL_SCALAR_ACCUM_MODE_P,
	SIGNED_SCALAR_FIXED_POINT_MODE_P, UNSIGNED_SCALAR_FIXED_POINT_MODE_P,
	ALL_SCALAR_FIXED_POINT_MODE_P, FRACT_MODE_P, UFRACT_MODE_P,
	ALL_FRACT_MODE_P, ACCUM_MODE_P, UACCUM_MODE_P, ALL_ACCUM_MODE_P,
	SIGNED_FIXED_POINT_MODE_P, UNSIGNED_FIXED_POINT_MODE_P,
	ALL_FIXED_POINT_MODE_P): New define.
	(CLASS_HAS_WIDER_MODES_P): Test MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
	MODE_UACCUM.
	(GET_MODE_IBIT, GET_MODE_FBIT): New define.

	* mode-classes.def (MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM,
	MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
	MODE_VECTOR_UACCUM): New mode classes.

	* machmode.def: Document FRACT_MODE, UFRACT_MODE, ACCUM_MODE,
	UACCUM_MODE, ADJUST_IBIT, and ADJUST_FBIT.
	Add QQ, HQ, SQ, DQ, TQ, UQQ, UHQ, USQ, UDQ, UTQ, HA, SA, DA, TA, UHA,
	USA, UDA, and UTA.

	* genmodes.c (struct mode_data): Add ibit and fbit fields.
	(blank_mode): Initialize ibit and fbit.
	(adj_ibit, adj_fbit): New to adjust ibit and fbit.
	(vector_class): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM, MODE_UACCUM.
	(new_adjust): Change required_class to required_class_from and
	required_class_to for testing within a range.
	(complete_mode): Handle MODE_FRACT, MODE_UFRACT, MODE_ACCUM,
	MODE_UACCUM, MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT, MODE_VECTOR_ACCUM,
	MODE_VECTOR_UACCUM.
	(FRACT_MODE, UFRACT_MODE, ACCUM_MODE, UACCUM_MODE): New define.
	(make_fixed_point_mode): New.
	(_ADD_ADJUST): Change C to C1 and C2.
	(ADJUST_BYTESIZE, ADJUST_ALIGNMENT, ADJUST_FLOAT_FORMAT): Change to
	use a range for machine classes.
	(ADJUST_IBIT, ADJUST_FBIT): New.
	(emit_insn_modes_h): Output defines of CONST_MODE_IBIT and
	CONST_MODE_FBIT.
	(emit_mode_adjustments): Handle MODE_VECTOR_FRACT, MODE_VECTOR_UFRACT,
	MODE_VECTOR_ACCUM, MODE_VECTOR_UACCUM.
	Emit adjustment for ibit and fbit.
	(emit_mode_ibit, emit_mode_fbit): New.
	(emit_insn_modes_c): Add emit_mode_ibit and emit_mode_fbit.

From-SVN: r126007
2007-06-25 22:51:27 +00:00
Paolo Bonzini 7258e976ea genmodes.c (tagged_printf, [...]): Don't use %n on printf.
2007-06-06  Paolo Bonzini  <bonzini@gnu.org>

	* genmodes.c (tagged_printf, emit_insn_modes_h): Don't
	use %n on printf.

From-SVN: r125494
2007-06-06 15:43:29 +00:00
Roger Sayle 62e5bf5d42 alias.c (init_alias_analysis): Correct whitespace.
* alias.c (init_alias_analysis): Correct whitespace.
	* bb-reorder.c (fix_edges_for_rarely_executed_code,
	partition_hot_cold_basic_blocks): Likewise.
	* builtins.c (expand_builtin_printf, expand_builtin_fprintf,
	expand_builtin_sprintf, fold_builtin_carg, fold_builtin_sprintf,
	maybe_emit_sprintf_chk_warning, fold_builtin_sprintf_chk,
	fold_builtin_snprintf_chk, fold_builtin_printf,
	fold_builtin_fprintf, do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_arg2,
	do_mpfr_arg3, do_mpfr_sincos): Likewise.
	* cfgcleanup.c (cleanup_cfg): Likewise.
	* cfgexpand.c (tree_expand_cfg): Likewise.
	* fold-const.c (fold_binary) <RDIV_EXPR>: Likewise.
	* function.c (get_next_funcdef_no): Likewise.
	* gengtype.c (main): Likewise.
	* genmodes.c (main): Likewise.
	* gcse.c (bypass_conditional_jumps, print_ldst_list): Likewise.
	* haifa-sched.c (schedule_block, extend_h_i_d): Likewise.
	* ifcvt.c (noce_emit_move_insn): Likewise.
	* modulo-sched.c (generate_prolog_epilog, sms_schedule_by_order):
	Likewise.
	* stor-layout.c (get_best_mode): Likewise.
	* tree-ssa-loop-niter.c (get_val_for): Likewise.
	* tree-ssa-structalias.c (get_varinfo, get_varinfo_fc,
	scc_visit, do_ds_constraint, do_complex_constraint, label_visit,
	perform_var_substitution, solve_graph): Likewise.
	* tree-vrp.c (vrp_finalize): Likewise.

From-SVN: r121470
2007-02-01 20:32:20 +00:00
Bernd Schmidt 75d8b2d014 genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a MODE_PARTIAL_INT mode.
* genmodes.c (make_vector_mode): Allow making VECTOR_MODE_INT of a
	MODE_PARTIAL_INT mode.
	* config/bfin/bfin-modes.def: Add V2PDI and V2SI.
	* config/bfin/bfin.c (print_operand): Add macflag and mac/msu modifiers
	for CONST_INTs.
	(hard_regno_mode_ok): V2PDImode is ok for accumulators.
	* config/bfin/bfin.h (CLASS_MAX_NREGS, HARD_REGNO_NREGS): Handle
	V2PDImode.
	* config/bfin/predicates.md (const01_operand, vec_shift_operand):
	New predicates.
	* config/bfin/bfin.md (UNSPEC_MUL_WITH_FLAG, UNSPEC_MAC_WITH_FLAG):
	New constants.
	(MACFLAG_NONE, MACFLAG_T, MACFLAG_FU, MACFLAG_TFU, MACFLAG_IS,
	MACFLAG_IU, MACFLAG_W32, MACFLAG_M, MACFLAG_S2RND, MACFLAG_ISS2,
	MACFLAG_IH): Likewise.
	(movstricthi_1): Renamed from "*movstricthi".
	(load_accumulator, load_accumulator_pair, movsi_insv, insv,
	ssaddsi3, sssubsi3, ssnegsi2, signbitssi2, smaxhi3, sminhi3,
	abshi2, neghi2, ssneghi2, signbitshi2, movhi_low2high,
	movhi_high2high, movhi_low2low, movhi_high2low, movhiv2hi_low,
	movhiv2hi_high, composev2hi, movv2hi_hi, movv2hi_hi_low,
	movv2hi_hi_high, ssaddhi3, sssubhi3, ssaddv2hi3, sssubv2hi3,
	addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, sssubaddv2hi3,
	sublohiv2hi3, subhilov2hi3, sssublohiv2hi3, sssubhilov2hi3,
	addlohiv2hi3, addhilov2hi3, ssaddlohiv2hi3, ssaddhilov2hi3,
	mulhisi_ll, mulhisi_lh, mulhisi_hl, mulhisi_hh, ssnegv2hi2,
	ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3, packv2hi,
	flag_mulhi, flag_mulhisi_parts, flag_machi, flag_machi_acconly,
	flag_macinithi, flag_macinit1hi, flag_mulv2hi, flag_mulv2hi_parts,
	flag_macv2hi_parts, flag_macv2hi_parts_acconly,
	flag_macinitv2hi_parts, flag_macinit1v2hi_parts): New patterns.

From-SVN: r113245
2006-04-25 11:49:27 +00:00
Jon Grimm 909e225622 dfp.h, dfp.c: New files.
2005-12-02  Jon Grimm  <jgrimm2@us.ibm.com>
	    Janis Johnson  <janis187@us.ibm.com>
	    David Edelsohn  <dje@watson.ibm.com>
	    Ben Elliston  <bje@au.ibm.com>

	* dfp.h, dfp.c: New files.
	* Makefile.in (DECNUM, DECNUMINC, LIBDECNUMBER): New variables.
	(DECNUM_H): Likewise.
	(LIBDEPS, LIBS, BACKEND): Append $(LIBDECNUMBER).
	(INCLUDES): Append $(DECNUMINC).
	(OBJS-common): Add dfp.o.
	(dfp.o): New rule.
	* real.h (EXP_BITS): Pinch one bit to ..
	(struct real_value): Add decimal field.
	(real_format): Change table size, update documentation.
	(REAL_MODE_FORMAT): Update for to handle float, decimal float.
	(real_from_string3): Declare.
	(decimal_single_format): Declare.
	(decimal_double_format): Declare.
	(decimal_quad_format): Declare.
	(REAL_VALUE_TO_TARGET_DECIMAL32): New.
	(REAL_VALUE_TO_TARGET_DECIMAL64): New.
	(REAL_VALUE_TO_TARGET_DECIMAL128): New.
	* real.c: Include dfp.h.
	(normalize): Early return for decimal floats.
	(do_add): Zero decimal field.
	(do_compare): Call do_decimal_compare for decimal floats.
	(do_fix_trunc): Likewise, call decimal_do_fix_trunc.
	(real_arithmetic): Call decimal_real_arithmetic for decimal
	floating point operands.
	(real_identical): If a and b are of differing radix, return false.
	(real_to_integer): Call decimal_real_to_integer if the value is a
	decimal float.
	(real_to_integer2): Likewise, call decimal_real_to_integer2.
	(real_to_decimal): Likewise, call decimal_real_to_decimal.
	(real_to_hexadecimal): Place "N/A" in the return string for
	decimal float.
	(real_from_string3): New variant, given a mode.
	(real_maxval): Use decimal_real_maxval for decimal floats.
	(round_for_format): Use decimal_round_for_format for decimals.
	(real_convert): Use decimal_real_convert where appropriate.
	(significand_size): Handle base 10.
	(encode_decimal_single, decode_decimal_single,
	encode_decimal_double, decode_decimal_double, encode_decimal_quad,
	decode_decimal_quad): New functions.
	(decimal_single_format): New.
	(decimal_double_format): New.
	(decimal_quad_format): New.
	* machmode.def: Add SD, DD and TD decimal floating point modes.
	* machmode.h (FLOAT_MODE_P, SCALAR_FLOAT_MODE_P, MODES_WIDEN_P):
	Include MODE_DECIMAL_FLOAT.
	(DECIMAL_FLOAT_MODE_P): New.
	* mode-classes.def (MODE_DECIMAL_FLOAT): New mode class.
	* genmodes.c (struct mode_data): Add counter field.
	(struct mode_data): Update comment for format.
	(blank_mode): Initialise counter field.
	(new_mode): Increment counter field for each mode defined.
	(complete_mode): Handle MODE_DECIMAL_FLOAT, update check for mode
	using a format.
	(make_complex_modes): Handle modes containing `D'.
	(DECIMAL_FLOAT_MODE, FRACTIONAL_DECIMAL_FLOAT_MODE): New.
	(make_decimal_float_mode): New.
	(reset_float_format): Handle MODE_DECIMAL_FLOAT.
	(cmp_modes): Compare counter field if other characteristics
	similar.
	(emit_real_format_for_mode): Support formats for decimal floats.
	* doc/rtl.texi (Machine Modes): Document SD, DD and TDmodes.
	Document MODE_DECIMAL_FLOAT.

Co-Authored-By: Ben Elliston <bje@au.ibm.com>
Co-Authored-By: David Edelsohn <dje@watson.ibm.com>
Co-Authored-By: Janis Johnson <janis187@us.ibm.com>

From-SVN: r107861
2005-12-02 13:30:42 +11:00
Kelley Cook 366ccddb2b Update FSF address.
From-SVN: r101317
2005-06-25 02:02:01 +00:00
Kaveh R. Ghazi 474b650ec3 errors.h (warning, [...]): Add printf attribute.
* errors.h (warning, error, fatal, internal_error): Add printf
	attribute.
	* genmodes.c (make_vector_mode): Fix format arguments.

From-SVN: r100421
2005-06-01 02:55:50 +00:00
DJ Delorie d2348bd591 expr.c (convert_move): When a partial_int requires multiple conversion steps...
* expr.c (convert_move): When a partial_int requires multiple
conversion steps, make sure successive steps convert the
intermediate value, not the original value.

* expmed.c (expand_mult): Convert partial_int multiplies to
shift/add combinations too.

* genmodes.c (mode_data): Add wider_2x.
(calc_wider_mode): Calculate twice-wider mode too.
(emit_mode_wider): Emit twice-wider mode too.
* machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
* expr.c (expand_expr_real_1): Use it for expanding
multiplies.

From-SVN: r100414
2005-05-31 20:20:13 -04:00
Kazu Hirata f30278e8b4 bitmap.c, [...]: Update copyright.
* bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h,
	collect2.h, conflict.c, coretypes.h, coverage.h, errors.h,
	gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c,
	genconstants.c, gengenrtl.c, genmodes.c, genpeep.c,
	gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c,
	gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c,
	lists.c, machmode.def, mips-tdump.c, opts.h, params.c,
	predict.def, predict.h, protoize.c, reload.h, resource.h,
	rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c,
	tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c,
	unwind-sjlj.c, value-prof.h: Update copyright.

From-SVN: r89097
2004-10-15 14:47:12 +00:00
Nathan Sidwell b2d59f6f77 Makefile.in (gengtype): Use $(BUILD_ERRORS).
* Makefile.in (gengtype): Use $(BUILD_ERRORS).
	(gengtype.o): Depend on errors.h.
	* genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable.
	(attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr,
	attr_alt_subset_p, attr_alt_subset_of_compl_p,
	attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn,
	write_test_expr, write_attr_value, write_eligible_delay,
	make_internal_attr, make_numeric_value): Likewise.
	* genautomata.c (regexp_name, get_str_vect,
	gen_presence_absence_set, automaton_decl_hash,
	automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash,
	decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps,
	process_regexp_cycles, reserv_sets_cmp, set_unit_reserv,
	test_unit_reserv, it_is_empty_reserv_sets,
	reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or,
	reserv_sets_and, output_cycle_reservs, get_free_state,
	intersected_state_reservs_p, states_union, remove_arc,
	copy_insn_regexp, transform_1, transform_2, transform_3,
	regexp_transform_func, store_alt_unit_usage,
	check_regexp_units_distribution, process_seq_for_forming_states,
	process_alts_for_forming_states, make_automaton,
	form_arcs_marked_by_insn, create_composed_state,
	set_out_arc_insns_equiv_num, partition_equiv_class,
	process_insn_equiv_class, set_insn_equiv_classes,
	units_to_automata_heuristic_distr, form_regexp,
	longest_path_length, output_dfa_max_issue_rate, add_vect,
	out_state_arcs_num, add_vect_el, output_trans_table,
	output_state_alts_table, output_dead_lock_vect,
	output_max_insn_queue_index_def,
	output_min_insn_conflict_delay_func,
	output_internal_insn_latency_func, output_print_reservation_func,
	output_cpu_unit_reservation_p, output_state_arcs,
	make_insn_alts_attr, make_internal_dfa_insn_code_attr,
	make_default_insn_latency_attr,
	form_important_insn_automata_lists): Likewise.
	* genemit.c (gen_exp, output_add_clobbers,
	output_added_clobbers_hard_reg_p): Likewise.
	* genextract.c (print_path, main): Likewise.
	* genflags.c (gen_macro): Likewise.
	* gengenrtl.c: Include errors.h
	(type_from_format, accessor_from_format): Likewise.
	* gengtype.c (get_file_basename, output_mangled_typename,
	walk_type, write_types_process_field,
	write_types_local_process_field): Likewise.
	* genmodes.c (complete_mode): Likewise.
	* genopinit.c (gen_insn): Likewise.
	* genoutput.c (output_insn_data, check_constraint_len,
	constraint_len): Likewise.
	* genpreds.c (add_mode_tests):Likewise.
	* gen-protos.c (add_hash): Likewise.
	* genrecog.c (find_operand, find_matching_operand,
	validate_pattern, add_to_sequence, maybe_both_true,
	nodes_identical_1, merge_trees, write_switch, write_cond,
	write_action, is_unconditional, make_insn_sequence,
	debug_decision_2): Likewise.
	* gensupport.c (is_predicable, collect_insn_data,
	alter_predicate_for_insn, maybe_eval_c_test): Likewise.

From-SVN: r87236
2004-09-09 13:22:38 +00:00
Bernardo Innocenti 28dab13236 basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
* basic-block.h (reorder_block_def): Rename to reorder_block_def_p.
	* c-common.c: Add missing casts from void * to other types.
	* c-decl.c: Likewise.
	* c-format.c: Likewise.
	* c-lex.c: Likewise.
	* c-pragma.c: Likewise.
	* c-typeck.c: Likewise.
	* defaults.h: Likewise.
	* genconstants.c: Likewise.
	* gengtype-lex.l: Likewise.
	* genmodes.c: Likewise.
	* read-rtl.c: Likewise.
	* rtl.c: Likewise.

From-SVN: r85166
2004-07-26 00:17:02 +02:00
Bernardo Innocenti 5d038c4cb1 bitmap.c: Use type-safe memory allocation macros from libiberty.
* bitmap.c: Use type-safe memory allocation macros from libiberty.
	* c-common.c: Likewise.
	* c-decl.c: Likewise.
	* c-lang.c: Likewise.
	* c-lex.c: Likewise.
	* c-opts.c: Likewise.
	* c-parse.in: Likewise.
	* c-typeck.c: Likewise.
	* genconditions.c: Likewise.
	* gengtype-lex.l: Likewise.
	* gengtype-yacc.y: Likewise.
	* gengtype.c: Likewise.
	* genmodes.c: Likewise.
	* gensupport.c: Likewise.
	* read-rtl.c: Likewise.
	* read-rtl.c (read_constants): Use INSERT instead of TRUE in call to
	htab_find_slot().

From-SVN: r85163
2004-07-25 22:43:23 +02:00
Bernardo Innocenti e3a64162f5 c-common.c: Rename all identifiers named `class' to `cl'.
* c-common.c: Rename all identifiers named `class' to `cl'.
	* c-decl.c: Likewise.
	* c-common.h: Likewise.
	* c-parse.in: Likewise.
	* c-typeck.c: Likewise.
	* genmodes.c: Likewise.
	* real.c: Likewise.
	* real.h: Likewise.
	* recog.c: Likewise.
	* recog.h: Likewise.
	* regrename.c: Likewise.
	* tree.h: Likewise.

From-SVN: r85153
2004-07-25 19:57:24 +02:00