Commit Graph

60086 Commits

Author SHA1 Message Date
Nathan Sidwell 2a21ff193a libgomp.map: Add 4.0.2 version.
libgomp/
	* libgomp.map: Add 4.0.2 version.
	* target.c (offload_image_descr): Add version field.
	(gomp_load_image_to_device): Add version argument.  Adjust plugin
	call.  Improve load mismatch diagnostic.
	(gomp_unload_image_from_device): Add version argument.  Adjust plugin
	call.
	(GOMP_offload_regster): Make stub function, move bulk to ...
	(GOMP_offload_register_ver): ... here.  Process version argument.
	(GOMP_offload_unregister): Make stub function, move bulk to ...
	(GOMP_offload_unregister_ver): ... here.  Process version argument.
	(gomp_init_device): Process version field.
	(gomp_unload_device): Process version field.
	(gomp_load_plugin_for_device): Reimplement DLSYM & DLSYM_OPT
	macros.  Check plugin version.
	* libgomp.h (gomp_device_descr): Add version function field.  Adjust
	loader and unloader types.
	* oacc-host.c: Include gomp-constants.h.
	(host_version): New.
	(host_load_image, host_unload_image): Adjust.
	(host_dispatch): Add host_version.
	* plugin/plugin-nvptx.c: Include gomp-constants.h.
	(GOMP_OFFLOAD_version): New.
	(GOMP_OFFLOAD_load_image): Add version arg and check it.
	(GOMP_OFFLOAD_unload_image): Likewise.
	* plugin/plugin-host.c: Include gomp-constants.h.
	(GOMP_OFFLOAD_version): New.
	(GOMP_OFFLOAD_load_image): Add version arg.
	(GOMP_OFFLOAD_unload_image): Likewise.

	liboffloadmic/
	* plugin/libgomp-plugin-intelmic.cpp (GOMP_OFFLOAD_version): New.
	(GOMP_OFFLOAD_load_image): Add version arg and check it.
	(GOMP_OFFLOAD_unload_image): Likewise.

	include/
	* gomp-constants.h (GOMP_VERSION, GOMP_VERSION_NVIDIA_PTX,
	GOMP_VERSION_INTEL_MIC): New.
	(GOMP_VERSION_PACK, GOMP_VERSION_LIB, GOMP_VERSION_DEV): New.

	gcc/
	* config/nvptx/mkoffload.c (process): Replace
	GOMP_offload_{,un}register with GOMP_offload_{,un}register_ver.

From-SVN: r227137
2015-08-24 17:10:06 +00:00
H.J. Lu 03541b0d44 Update MOVE_RATIO cost for IA MCU
This patch updates MOVE_RATIO cost for IA MCU from 6 to 9 so that we
can unroll the loop completely for DOM with -mtune=iamcu.

gcc/

	PR target/67329
	* config/i386/i386.c (iamcu_cost): Set MOVE_RATIO cost to 9.

gcc/testsuite/

	PR target/67329
	* gcc.target/i386/pr67329.c: New test.

From-SVN: r227132
2015-08-24 08:24:44 -07:00
Renlin Li 6ce4364514 [PATCH][ARM]Tighten the conditions for arm_movw, arm_movt.
gcc/

2015-08-24  Renlin Li  <renlin.li@arm.com>

	* config/arm/arm-protos.h (arm_valid_symbolic_address_p): Declare.
	* config/arm/arm.c (arm_valid_symbolic_address_p): Define.
	* config/arm/arm.md (arm_movt): Use arm_valid_symbolic_address_p.
	* config/arm/constraints.md ("j"): Add check for high code.

From-SVN: r227129
2015-08-24 14:59:58 +00:00
Tom de Vries 6be5c241bb Optimize expand_omp_for_static_chunk for chunk_size one
2015-08-24  Tom de Vries  <tom@codesourcery.com>

	PR tree-optimization/65468
	* omp-low.c (expand_omp_for_static_chunk): Remove inner loop if
	chunk_size is one.

	* gcc.dg/gomp/static-chunk-size-one.c: New test.

	* testsuite/libgomp.c/static-chunk-size-one.c: New test.

From-SVN: r227124
2015-08-24 13:14:17 +00:00
Nathan Sidwell 7373d132e1 nvptx.c (walk_args_for_param): Revert previous change to nvptx_type_from_mode call.
* config/nvptx/nvptx.c (walk_args_for_param): Revert previous
	change to nvptx_type_from_mode call. Use arg_promotion for both
	split and non-split args.

From-SVN: r227123
2015-08-24 12:43:54 +00:00
Richard Sandiford 7cff0471e4 target-insns.def (movstr): New pattern.
gcc/
	* target-insns.def (movstr): New pattern.
	* builtins.c (HAVE_movstr, CODE_FOR_movstr): Delete.
	(expand_movstr): Use targetm rather than HAVE_movstr/
	CODE_FOR_movstr.

From-SVN: r227121
2015-08-24 11:13:16 +00:00
Richard Sandiford d26ed7fa67 microblaze.c (microblaze_classify_unspec): Fix cast syntax.
gcc/
	* config/microblaze/microblaze.c (microblaze_classify_unspec): Fix
	cast syntax.

From-SVN: r227120
2015-08-24 11:12:32 +00:00
Andrew Pinski a339a01c96 Remove the hack for AARCH64_EXTRA_TUNE_ALL.
2015-08-24  Andrew Pinski  <apinski@cavium.com>

        * config/aarch64/aarch64-tuning-flags.def: Remove all index to
        AARCH64_EXTRA_TUNING_OPTION.
        * config/aarch64/aarch64-protos.h (aarch64_extra_tuning_flags_index): New enum.
        (aarch64_extra_tuning_flags): Base the shifted value on the index instead
        of the argument to AARCH64_EXTRA_TUNING_OPTION.
        * config/aarch64/aarch64.c: Remove the last argument to
        AARCH64_EXTRA_TUNING_OPTION.

From-SVN: r227117
2015-08-24 02:56:48 -07:00
Nathan Sidwell ac9521817d nvptx.c (walk_args_for_param): Promote arg reg decls.
* config/nvptx/nvptx.c (walk_args_for_param): Promote arg reg
	decls.
	(nvptx_declare_function_name): Insert formatting tabs for
	consistency.

From-SVN: r227104
2015-08-23 14:37:09 +00:00
Tom de Vries 2eddac76ab Don't create superfluous parm in expand_omp_taskreg
2015-08-23  Tom de Vries  <tom@codesourcery.com>

	* omp-low.c (expand_omp_taskreg): If in ssa, set rhs of parcopy stmt to
	parm_decl, rather than generating a dummy default def in cfun.
	* tree-cfg.c (replace_ssa_name): Assume no default defs.  Make sure
	ssa_name from cfun and child_fn do not share a stmt as def stmt.
	(move_stmt_op): Handle PARM_DECl.
	(gather_ssa_name_hash_map_from): New function.
	(move_sese_region_to_fn): Add default defs for function params, and add
	them to vars_map.  Release copied ssa names.
	* tree-cfg.h (gather_ssa_name_hash_map_from): Declare.

From-SVN: r227103
2015-08-23 09:19:32 +00:00
Tom de Vries 1b95056999 Rename vect_no_int_max to vect_no_int_min_max
2015-08-23  Tom de Vries  <tom@codesourcery.com>

	* gcc.dg/vect/trapv-vect-reduc-4.c: Use vect_no_int_min_max.
	* gcc.dg/vect/costmodel/i386/costmodel-vect-reduc-1char.c: Rename
	vect_no_int_max to vect_no_int_min_max.
	* gcc.dg/vect/costmodel/ppc/costmodel-vect-reduc-1char.c: Same.
	* gcc.dg/vect/costmodel/x86_64/costmodel-vect-reduc-1char.c: Same.
	* gcc.dg/vect/no-scevccp-noreassoc-slp-reduc-7.c: Same.
	* gcc.dg/vect/slp-reduc-4.c: Same.
	* gcc.dg/vect/slp-reduc-5.c: Same.
	* gcc.dg/vect/vect-125.c: Same.
	* gcc.dg/vect/vect-13.c: Same.
	* gcc.dg/vect/vect-double-reduc-3.c: Same.
	* gcc.dg/vect/vect-reduc-1.c: Same.
	* gcc.dg/vect/vect-reduc-1char-big-array.c: Same.
	* gcc.dg/vect/vect-reduc-1char.c:Same.
	* gcc.dg/vect/vect-reduc-1short.c: Same.
	* gcc.dg/vect/vect-reduc-2.c: Same.
	* gcc.dg/vect/wrapv-vect-reduc-2char.c: Same.
	* gcc.dg/vect/wrapv-vect-reduc-2short.c: Same.
	* lib/target-supports.exp: Same.

	* doc/sourcebuild.texi: Rename vect_no_int_max with
	vect_no_int_min_max.  Update description.

From-SVN: r227102
2015-08-23 08:35:41 +00:00
Andrew Pinski ed9fa8d2a3 Remove index from AARCH64_FUSION_PAIR
Instead of doing an explict index in aarch64-fusion-pairs.def, we
    should have an enum which does the index instead.  This allows
    you to add/remove them without worrying about the order being
    correct and having holes or worry about merge conficts.

    OK? Bootstrapped and tested on aarch64-linux-gnu with no regressions.

    ChangeLog:
    * aarch64-fusion-pairs.def: Remove all index to AARCH64_FUSION_PAIR.
    * config/aarch64/aarch64-protos.h (aarch64_fusion_pairs_index): New enum.
    (aarch64_fusion_pairs): Base the shifted value on the index instead
    Rewrite AARCH64_FUSE_ALL to be based on the end index.
    of the argument to AARCH64_FUSION_PAIR.
    * config/aarch64/aarch64.c: Remove the last argument to AARCH64_FUSION_PAIR.

From-SVN: r227094
2015-08-21 23:49:32 -07:00
Mikhail Maltsev 2321dd914f Refactor dominance.c: define dom_info as C++ class
gcc/
	* dominance.c (new_zero_array): Define.
	(dom_info): Redefine as class with proper encapsulation.
	(dom_info::m_n_basic_blocks, m_reverse, m_start_block, m_end_block):
	Add new members.
	(dom_info::dom_info, ~dom_info): Define.  Use new/delete for memory
	allocations/deallocations.  Pass function as parameter (instead of
	using cfun).
	(dom_info::get_idom): Define accessor method.
	(dom_info::calc_dfs_tree_nonrec, calc_dfs_tree, compress, eval,
	link_roots, calc_idoms): Redefine as class members.  Do not use cfun.
	(calculate_dominance_info): Adjust to use dom_info class.
	(verify_dominators): Likewise.

From-SVN: r227093
2015-08-22 03:20:13 +00:00
Alexandre Oliva 27294e9f02 fix -fdump-unnumbered-links
for  gcc/ChangeLog

	* print-rtl.c (print_rtx): Check the correct range for
	flag_dump_unnumbered_links to behave as documented.

From-SVN: r227086
2015-08-21 20:03:33 +00:00
Alexandre Oliva 2d88904a41 fix sched compare regression
for  gcc/ChangeLog

	PR rtl-optimization/64164
	PR rtl-optimization/67227
	* alias.c (memrefs_conflict_p): Handle VALUEs in PLUS better.
	(nonoverlapping_memrefs_p): Test offsets and sizes when given
	identical gimple_reg exprs.

From-SVN: r227085
2015-08-21 20:03:14 +00:00
Nathan Sidwell 18c05628a6 nvptx.md (allocate_stack): Emit sorry during expansion.
* config/nvptx/nvptx.md (allocate_stack): Emit sorry during
	expansion.
	* config/nvptx/nvptx.c (nvptx_declare_function_name): Look at
	crtl->stack_alignment_needed to determine alignment.
	(nvptx_get_drap_rtx): New.
	(TARGET_GET_DRAP_RTX): Override.
	* config/nvptx/nvptx.h (MAX_STACK_ALIGNMENT): Set.

From-SVN: r227084
2015-08-21 19:34:34 +00:00
Francois-Xavier Coudert f291336269 * config.build: Remove case for m68000-hp-hpux* | m68k-hp-hpux*.
From-SVN: r227079
2015-08-21 17:44:47 +00:00
Francois-Xavier Coudert abe64d9ec4 configure.ac: Remove uwin* cases.
* configure.ac: Remove uwin* cases.
	* config.build: Remove cases for i370-*-opened*, i370-*-mvs*,
	i[34567]86-*-sco3.2v5*, i[34567]86-sequent-ptx4*,
	i[34567]86-sequent-sysv4*, i[34567]86-*-sysv4*,
	i[34567]86-*-udk*, i[34567]86-*-uwin*, i386-*-vsta.
	* config.host: Remove cases for i370-*-opened*, i370-*-mvs*,
	i[34567]86-*-uwin*, powerpc-*-beos*.

From-SVN: r227077
2015-08-21 17:38:01 +00:00
Richard Sandiford 523ba7389a gencodes.c (gencodes): Print the comma for the preceding enum value rather than the current one.
gcc/
	* gencodes.c (gencodes): Print the comma for the preceding
	enum value rather than the current one.  Use aliased enum values
	rather than #defines for compiled-out patterns.
	(main): Update accordingly.  Replace LAST_INSN_CODE with
	NUM_INSN_CODES.
	* lra.c (insn_code_data): Update accordingly.
	(finish_insn_code_data_once, get_static_insn_data): Likewise.
	* recog.h (target_recog): Likewise.
	(preprocess_insn_constraints): Change parameter to unsigned int.
	* recog.c (preprocess_insn_constraints): Likewise.
	(recog_init): Replace LAST_INSN_CODE with NUM_INSN_CODES.
	* tree-vect-stmts.c (vectorizable_operation): Simplify.

From-SVN: r227076
2015-08-21 17:23:10 +00:00
Markus Trippelsdorf f5dffc0ba1 Fix PR61657 (undefined behavior in loop-iv.c)
bootstrap-ubsan shows:
 loop-iv.c:2626:14: runtime error: signed integer overflow: 9223372036854775806 - -9223372036854775808 cannot be represented in type 'long int'

Fixed by moving the variables in question from signed to unsigned.

	PR rtl-optimization/61657
	* loop-iv.c (iv_number_of_iterations): Declare up and down as
	unsigned. Remove superflous uint64_t cast.

From-SVN: r227075
2015-08-21 16:44:30 +00:00
Felix Yang 3b14abc847 value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL argument and get builtin function code directly from CALL.
* value-prof.c (interesting_stringop_to_profile_p): Removed FNDECL argument
	and get builtin function code directly from CALL.
	(gimple_stringop_fixed_value): Modified accordingly.
	(gimple_stringops_transform, gimple_stringops_values_to_profile): Modified
	accordingly and only accept BUILT_IN_NORMAL string operations.

Co-Authored-By: Jiji Jiang <jiangjiji@huawei.com>

From-SVN: r227060
2015-08-21 14:34:52 +00:00
Dominik Vogt 838326d5d9 s390-builtins.def: Fix value range of vec_load_bndry.
gcc/ChangeLog
2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* config/s390/s390-builtins.def: Fix value range of vec_load_bndry.

gcc/testsuite/ChangeLog
2015-08-21  Dominik Vogt  <vogt@linux.vnet.ibm.com>

	* gcc.target/s390/zvector/vec-load_bndry-1.c: New test.

From-SVN: r227058
2015-08-21 12:51:20 +00:00
Naveen H.S 52c6378aa5 fold-const.c (fold_binary_loc): Move sqrt(x)*sqrt(x) as x to match.pd.
2015-08-21  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>

	* fold-const.c (fold_binary_loc) : Move sqrt(x)*sqrt(x) as x
	to match.pd.
	Move Optimize pow(x,y)*pow(z,y) as pow(x*z,y)to match.pd.
	Move Optimize tan(x)*cos(x) as sin(x) to match.pd.
	Move Optimize x*pow(x,c) as pow(x,c+1) to match.pd.
	Move Optimize pow(x,c)*x as pow(x,c+1) to match.pd.
	Move Optimize sin(x)/cos(x) as tan(x) to match.pd.
	Move Optimize cos(x)/sin(x) as 1.0/tan(x) to match.pd.
	Move Optimize sin(x)/tan(x) as cos(x) to match.pd.
	Move Optimize tan(x)/sin(x) as 1.0/cos(x) to match.pd.
	Move Optimize pow(x,c)/x as pow(x,c-1) to match.pd.
	Move Optimize x/pow(y,z) into x*pow(y,-z) to match.pd.

	* match.pd (SIN ) : New Operator.
	(TAN) : New Operator.
	(mult (SQRT@1 @0) @1) : New simplifier.
	(mult (POW:s @0 @1) (POW:s @2 @1)) : New simplifier.
	(mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
	(mult:c (TAN:s @0) (COS:s @0)) : New simplifier.
	(rdiv (SIN:s @0) (COS:s @0)) : New simplifier.
	(rdiv (COS:s @0) (SIN:s @0)) : New simplifier.
	(rdiv (SIN:s @0) (TAN:s @0)) : New simplifier.
	(rdiv (TAN:s @0) (SIN:s @0)) : New simplifier.
	(rdiv (POW:s @0 REAL_CST@1) @0) : New simplifier.
	(rdiv @0 (SQRT:s (rdiv:s @1 @2))) : New simplifier.
	(rdiv @0 (POW:s @1 @2)) : New simplifier.

From-SVN: r227056
2015-08-21 10:46:09 +00:00
Bin Cheng eff1e5afad tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break loop if EXPR is simplified to const value.
* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Break
	loop if EXPR is simplified to const value.

From-SVN: r227055
2015-08-21 10:09:48 +00:00
Yury Gribov 55b9e2fc72 sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG, [...]): Fix builtin types.
2015-08-21  Yury Gribov  <y.gribov@samsung.com>

	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_NONNULL_ARG,
	BUILT_IN_UBSAN_HANDLE_NONNULL_ARG): Fix builtin types.

From-SVN: r227054
2015-08-21 08:42:57 +00:00
Richard Biener 4d20d00a0d re PR middle-end/67285 (ICE with (rdiv (POW:s @0 REAL_CST@1) @0))
2015-08-21  Richard Biener  <rguenther@suse.de>

	PR middle-end/67285
	* gimple-fold.c (replace_stmt_with_simplification): Assert
	seq is empty when replacing a call with itself but different
	arguments.
	* gimple-match-head.c (maybe_push_res_to_seq): When pushing
	a call require that it is const.

From-SVN: r227053
2015-08-21 08:06:20 +00:00
Trevor Saunders 6b00e42da3 add default for CONSTANT_ALIGNMENT
gcc/ChangeLog:

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* defaults.h (CONSTANT_ALIGNMENT): New macro definition.
	* builtins.c (get_object_alignment_2): Adjust.
	* varasm.c (align_variable): Likewise.
	(get_variable_align): Likewise.
	(build_constant_desc): Likewise.
	(force_const_mem): Likewise.
	* doc/tm.texi.in: Likewise.
	* doc/tm.texi: Regenerate.

From-SVN: r227052
2015-08-21 01:15:33 +00:00
Trevor Saunders 70b0dcce28 always define HAVE_peephole2
gcc/ChangeLog:

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genconfig.c (main): Always define HAVE_cc0.
	* recog.c (rest_of_handle_peephole2): Adjust.

From-SVN: r227051
2015-08-21 01:15:15 +00:00
Trevor Saunders 913b71f183 remove another #if for HAVE_cc0
gcc/ChangeLog:

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* reorg.c (relax_delay_slots): Don't use #if to check value of
	HAVE_cc0.

From-SVN: r227050
2015-08-21 01:14:59 +00:00
Trevor Saunders e1f60ccfab always define HAVE_conditional_execution
gcc/ChangeLog:

2015-08-20  Trevor Saunders  <tbsaunde+gcc@tbsaunde.org>

	* genconfig.c (main): Always define HAVE_CONDITIONAL_EXECUTION.
	* targhooks.c (default_have_conditional_execution): Adjust.

From-SVN: r227049
2015-08-21 01:14:46 +00:00
Richard Sandiford 92695fbb29 rtl.h (rtvec_all_equal_p): Declare.
gcc/
	* rtl.h (rtvec_all_equal_p): Declare.
	(const_vec_duplicate_p, unwrap_const_vec_duplicate): New functions.
	* rtl.c (rtvec_all_equal_p): New function.
	* expmed.c (expand_mult): Use unwrap_const_vec_duplicate.
	* config/aarch64/aarch64.c (aarch64_vect_float_const_representable_p)
	(aarch64_simd_dup_constant): Use const_vec_duplicate_p.
	* config/arm/arm.c (neon_vdup_constant): Likewise.
	* config/s390/s390.c (s390_contiguous_bitmask_vector_p): Likewise.
	* config/tilegx/constraints.md (W, Y): Likewise.
	* config/tilepro/constraints.md (W, Y): Likewise.
	* config/spu/spu.c (spu_legitimate_constant_p): Likewise.
	(classify_immediate): Use unwrap_const_vec_duplicate.
	* config/tilepro/predicates.md (reg_or_v4s8bit_operand): Likewise.
	(reg_or_v2s8bit_operand): Likewise.
	* config/tilegx/predicates.md (reg_or_v8s8bit_operand): Likewise.
	(reg_or_v4s8bit_operand): Likewise.

From-SVN: r227041
2015-08-20 19:04:34 +00:00
Bill Schmidt 6992707b2a altivec.h (vec_pmsum_be): New #define.
[gcc]

2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* config/rs6000/altivec.h (vec_pmsum_be): New #define.
	(vec_shasigma_be): New #define.
	* config/rs6000/rs6000-builtin.def (VPMSUMB): New BU_P8V_AV2_2.
	(VPMSUMH): Likewise.
	(VPMSUMW): Likewise.
	(VPMSUMD): Likewise.
	(VPMSUM): New BU_P8V_OVERLOAD_2.
	* config/rs6000/rs6000-c.c (altivec_overloaded_builtins): New
	entries for VEC_MADD and VEC_VPMSUM.

[gcc/testsuite]

2015-08-20  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>

	* gcc.target/powerpc/altivec-35.c (foo): Add tests for vec_madd.
	* gcc.target/powerpc/p8vector-builtin-8.c (foo): Add tests for
	vec_vpmsum_be and vec_shasigma_be.

From-SVN: r227036
2015-08-20 17:01:32 +00:00
Georg-Johann Lay b68db6d189 avr.c (avr_insert_attributes): In diagnostic essage: Multiply argument avr_n_flash by 64 to match unit of "KiB".
* config/avr/avr.c (avr_insert_attributes): In diagnostic essage:
	Multiply argument avr_n_flash by 64 to match unit of "KiB".
	(avr_pgm_check_var_decl): Same.

From-SVN: r227035
2015-08-20 14:22:35 +00:00
Alan Lawrence 50399bb138 [ARM] Hide existing float16 intrinsics unless we have a scalar __fp16 type
gcc/:

	* config/arm/arm-builtins.c (arm_init_simd_builtin_types): Move
	initialization of HFmode scalar type (float16_t) to...
	(arm_init_fp16_builtins): ... Here. Combine with __fp16 initialization
	code.

	(arm_init_builtins): Call arm_init_fp16_builtins earlier and always.

	* config/arm/arm_neon.h (vcvt_f16_f32, vcvt_f32_f16): Condition on
	having an -mfp16-format.

gcc/testsuite/:

	* lib/target-supports.exp
	(check_effective_target_arm_neon_fp16_ok_nocache): Add flag variants
	with -mfp16-format=ieee.

From-SVN: r227033
2015-08-20 12:38:20 +00:00
Richard Sandiford 30aa6349e1 predicates.md (vector_all_ones_operand): Use CONSTM1_RTX to simplify definition.
gcc/
	* config/i386/predicates.md (vector_all_ones_operand): Use
	CONSTM1_RTX to simplify definition.

From-SVN: r227032
2015-08-20 11:36:00 +00:00
Richard Biener 5fc6ae7dab toplev.c (compile_file): Remove loop calling late_global_decl on all symbols.
2015-08-20  Richard Biener  <rguenther@suse.de>

	* toplev.c (compile_file): Remove loop calling late_global_decl
	on all symbols.
	* varpool.c (varpool_node::assemble_decl): Call late_global_decl
	on decls we assembled.

From-SVN: r227031
2015-08-20 11:02:30 +00:00
James Greenhalgh 054b4005fa [AArch64] Break -mcpu tie between the compiler and assembler
gcc/

	* common/config/aarch64/aarch64-common.c
	(AARCH64_CPU_NAME_LENGTH): Delete.
	(aarch64_option_extension): New.
	(all_extensions): Likewise.
	(processor_name_to_arch): Likewise.
	(arch_to_arch_name): Likewise.
	(all_cores): New.
	(all_architectures): Likewise.
	(aarch64_get_extension_string_for_isa_flags): Likewise.
	(aarch64_rewrite_selected_cpu): Change to rewrite CPU names to
	architecture names.
	* config/aarch64/aarch64-protos.h
	(aarch64_get_extension_string_for_isa_flags): New.
	* config/aarch64/aarch64.c (aarch64_print_extension): Delete.
	(aarch64_option_print): Get the string to print from
	aarch64_get_extension_string_for_isa_flags.
	(aarch64_declare_function_name): Likewise.
	* config/aarch64/aarch64.h (BIG_LITTLE_SPEC): Rename to...
	(MCPU_TO_MARCH_SPEC): This.
	(ASM_CPU_SPEC): Use it.
	(BIG_LITTLE_SPEC_FUNCTIONS): Rename to...
	(MCPU_TO_MARCH_SPEC_FUNCTIONS): ...This.
	(EXTRA_SPEC_FUNCTIONS): Use it.

From-SVN: r227028
2015-08-20 10:18:54 +00:00
Simon Dardis 58df0b91cb mips.c (mips_expand_block_move): Enable inline memcpy expansion when !ISA_HAS_LWL_LWR.
gcc/

  	* config/mips/mips.c (mips_expand_block_move): Enable inline memcpy
	expansion when !ISA_HAS_LWL_LWR.
	(mips_block_move_straight): Update the size of elements copied to
	account for alignment when !ISA_HAS_LWL_LWR.
	* config/mips/mips.h (MIPS_MIN_MOVE_MEM_ALIGN): New macro.

gcc/testsuite/

	* inline-memcpy-1.c: Test for inline expansion of memcpy.
	* inline-memcpy-2.c: Ditto.
	* inline-memcpy-3.c: Ditto.
	* inline-memcpy-4.c: Ditto.
	* inline-memcpy-5.c: Ditto.

From-SVN: r227026
2015-08-20 10:45:33 +01:00
Jiong Wang b61a0d75fe [Patch][expand] Check gimple statement to improve LSHIFT_EXP expand
This patch improves LSHIFT_EXP expand if the shift operand comes from sign
extension and the shift result across word_mode_size boundary. See code
comments for details.

2015-08-19  Jiong.Wang  <jiong.wang@arm.com>

gcc/
  * expr.c (expand_expr_real_2): Check gimple statement during
  LSHIFT_EXPR expand.
  
gcc/testsuite
  * gcc.dg/wide_shift_64_1.c: New testcase.
  * gcc.dg/wide_shift_128_1.c: Likewise.
  * gcc.target/aarch64/ashlti3_1.c: Likewise.

From-SVN: r227018
2015-08-19 22:55:28 +00:00
Magnus Granberg e0f6cba004 common.opt (fstack-protector): Initialize to -1.
* common.opt (fstack-protector): Initialize to -1.
        (fstack-protector-all): Likewise.
        (fstack-protector-strong): Likewise.
        (fstack-protector-explicit): Likewise.
        * configure.ac: Add --enable-default-ssp.
        * defaults.h (DEFAULT_FLAG_SSP): New.  Default SSP to strong.
        * opts.c (finish_options): Update opts->x_flag_stack_protect if it is
        -1.
        * doc/install.texi: Document --enable-default-ssp.
        * config.in: Regenerated.
        * configure: Likewise.

        * lib/target-supports.exp
        (check_effective_target_fstack_protector_enabled): New test.
        * gcc.target/i386/ssp-default.c: New test.

From-SVN: r227017
2015-08-19 16:07:06 -06:00
Alexandre Oliva c24f5688ad [PR64164] fix regressions reported on m68k and armeb
Defer stack slot address assignment for all parms that can't live in
pseudos, and accept pseudos assignments in assign_param_setup_block.

for  gcc/ChangeLog

	PR rtl-optimization/64164
	* cfgexpand.c (parm_maybe_byref_p): Renamed to...
	(parm_in_stack_slot_p): ... this.  Disregard mode, what
	matters is whether the parm will live in a pseudo or a stack
	slot.
	(expand_one_ssa_partition): Deal with params without a default
	def.  Disregard mode.
	* cfgexpand.h: Renamed function declaration.
	* tree-ssa-coalesce.c: Adjust.
	* function.c (split_complex_args): Allocate stack slot for
	unassigned parms before splitting.
	(parm_in_unassigned_mem_p): New.  Use it instead of
	parm_maybe_byref_p throughout this file.
	(assign_parm_setup_block): Use it.  Accept pseudos in the
	expand-assigned rtl.
	(assign_parm_setup_reg): Drop BLKmode requirement.
	(assign_parm_setup_stack): Allocate and fill in the address of
	unassigned MEM parms.

From-SVN: r227015
2015-08-19 17:00:32 +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
Kyrylo Tkachov 8d55c61ba8 [AArch64] Use popcount_hwi instead of homebrew version
* config/aarch64/aarch64.c (bit_count): Delete prototype
	and definition.
	(aarch64_print_operand): Use popcount_hwi instead of the above.

From-SVN: r227012
2015-08-19 15:09:38 +00:00
Kyrylo Tkachov 474b0f70a8 [AArch64][obvious] Remove obsolete comment in aarch64-option-extensions.def
* config/aarch64/aarch64-option-extensions.def: Delete obsolete
	comment.

From-SVN: r227011
2015-08-19 15:01:21 +00:00
Marek Polacek 255520e020 re PR middle-end/67133 (ICE at -Os and above on x86_64-linux-gnu in gimple_op, at gimple.h:2274)
PR middle-end/67133
	* gimple-ssa-isolate-paths.c
	(insert_trap_and_remove_trailing_statements): Rename to ...
	(insert_trap): ... this.  Don't remove trailing statements; split
	block instead.
	(find_explicit_erroneous_behaviour): Don't remove all outgoing edges.

	* g++.dg/torture/pr67133.C: New test.

From-SVN: r227009
2015-08-19 14:22:26 +00:00
Mikael Morin d63c864834 Avoid signed left shift undefined behaviour in sext_hwi
gcc/
	PR other/67042
	* hwint.h (sext_hwi): Switch to unsigned for the left shift, and
	conditionalize the whole on __GNUC__.  Add fallback code
	depending neither on undefined nor implementation-defined behaviour.

From-SVN: r227008
2015-08-19 13:42:36 +00:00
Jiong Wang a3957742f3 [AArch64] Cleanup whitespace in aarch64.c
2015-08-19  Jiong Wang  <jiong.wang@arm.com>

gcc/
  * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Replace
  whitespaces with tab.

From-SVN: r227005
2015-08-19 13:02:19 +00:00
Florian Weimer 4a5dc5994e Make the stack non-executable in GNAT tools
Due to PR67205, the deeply nested instantiations require trampolines,
which in turn requires an executable stack for the GNAT tools on
architectures such as x86_64.

From-SVN: r227004
2015-08-19 15:00:24 +02:00
Uros Bizjak 3bbce100e9 * ChangeLog: Fix corrupted entry.
From-SVN: r227003
2015-08-19 11:19:08 +02:00
Kyrylo Tkachov eb9137dfe3 [ARM] Use %wd format for lane printing in bounds_check
* config/arm/arm.c (bounds_check): Use %wd print format
	for HOST_WIDE_INT arguments.

From-SVN: r227002
2015-08-19 08:26:43 +00:00