Commit Graph

130665 Commits

Author SHA1 Message Date
Segher Boessenkool
37317a1fc0 rs6000: Merge the var_shift yes/no alternatives
All instructions that are "var_shift" for some alternative have the shift
amount as operands[2].

This patch introduces an attribute "maybe_var_shift".  If that is set to
"yes", the default value of "var_shift" is set based on the operands[2]
value.

With that, we can merge the var_shift yes/no cases everywhere.  Do so.

Also change some more "i" to "n".

From-SVN: r211880
2014-06-22 19:21:08 +02:00
Segher Boessenkool
85c1cb2250 rs6000: Merge ashrsi3 and ashrdi3
From-SVN: r211879
2014-06-22 19:18:05 +02:00
Segher Boessenkool
137b8eb295 rs6000: Merge rotlsi3 and rotldi3
This uses the rotl* extended mnemonics instead of the rlw*nm and rld*cl
mnemonics, because they are shorter and more importantly they look the
same for 32-bit and 64-bit.

From-SVN: r211878
2014-06-22 19:16:03 +02:00
Segher Boessenkool
d70be98ee1 Merge ashlsi3 and ashldi3
From-SVN: r211877
2014-06-22 19:14:02 +02:00
Segher Boessenkool
f39a447c2d rs6000: Merge lshrsi3 and lshrdi3
For this create a new mode_attr "hH".

Also change "i" constraints on the shift amount to "n", which better
describes what it really is (GCC takes the integer value of these
operands and does arithmetic on them; symbolic constants will not work
here).

Also merge the "dot" insns with the corresponding splitters.  To do
this, don't allow the dot insns for CBE non-microcode mode at all
(it previously would just split it back always).

From-SVN: r211876
2014-06-22 19:11:55 +02:00
Segher Boessenkool
1a2443af3a rs6000: Remove "O" alternative from lshrsi3
Nothing will ever generate RTL matching this alternative.  Maybe long
ago this was needed, but not anymore.

From-SVN: r211875
2014-06-22 19:09:24 +02:00
Richard Sandiford
82db17cbd4 mips.c (mips_move_to_gpr_cost): Remove mode argument.
gcc/
	* config/mips/mips.c (mips_move_to_gpr_cost): Remove mode argument.
	(mips_move_from_gpr_cost): Likewise.
	(mips_register_move_cost): Update accordingly.
	(mips_secondary_reload_class): Remove name of in_p.

From-SVN: r211874
2014-06-22 09:57:02 +00:00
Marc Glisse
43c5fcfc0e re PR target/61503 (RTL representation of i386 shrdl instruction is incorrect?)
2014-06-22  Marc Glisse  <marc.glisse@inria.fr>

	PR target/61503
	* config/i386/i386.md (x86_64_shrd, x86_shrd,
	ix86_rotr<dwi>3_doubleword): Replace ashiftrt with lshiftrt.

From-SVN: r211873
2014-06-22 09:16:35 +00:00
GCC Administrator
f7716f89b3 Daily bump.
From-SVN: r211872
2014-06-22 00:16:45 +00:00
Jan Hubicka
4da27d0fc7 localalias.c: Fix broken commit.
* gcc.dg/localalias.c: Fix broken commit.
	* gcc.dg/globalalias.c: Likewise.

From-SVN: r211869
2014-06-21 23:01:41 +00:00
Jan-Benedict Glaw
476571534d nios2.c: Include "builtins.h".
2014-06-21  Jan-Benedict Glaw  <jbglaw@lug-owl.de>

gcc/
	* config/nios2/nios2.c: Include "builtins.h".

From-SVN: r211868
2014-06-21 21:52:02 +00:00
Jan Hubicka
714c800f1f cgraph.h (tls_model_names): New variable.
* cgraph.h (tls_model_names): New variable.
	* print-tree.c (print_node): Simplify.
	* varpool.c (tls_model_names): New variable.
	(dump_varpool_node): Output tls model.

	* lto-symtab.c (lto_varpool_replace_node): Report TLS model conflicts.

From-SVN: r211865
2014-06-21 02:46:34 +00:00
Jan Hubicka
b48972129f localalias.c: New testcase.
* gcc.dg/localalias.c: New testcase.
	* gcc.dg/localalias-2.c: New testcase.
	* gcc.dg/globalalias.c: New testcase.
	* gcc.dg/globalalias-2.c: New testcase.
	* ipa-visibility.c (function_and_variable_visibility): Disable
	temporarily local aliases for some targets.

From-SVN: r211864
2014-06-21 02:39:49 +00:00
GCC Administrator
d9ff14ea9b Daily bump.
From-SVN: r211863
2014-06-21 00:16:40 +00:00
Jakub Jelinek
7cda9e93e7 * gcc.target/arm/lto/lto.exp: Exit immediately if not arm*-*-* target.
From-SVN: r211860
2014-06-20 23:21:34 +02:00
Marek Polacek
0e37a2f33d asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
* asan.c (pass_sanopt::execute): Handle IFN_UBSAN_BOUNDS.
	* flag-types.h (enum sanitize_code): Add SANITIZE_BOUNDS and or it
	into SANITIZE_UNDEFINED.
	* doc/invoke.texi: Describe -fsanitize=bounds.
	* gimplify.c (gimplify_call_expr): Add gimplification of internal
	functions created in the FEs.
	* internal-fn.c: Move "internal-fn.h" after "tree.h".
	(expand_UBSAN_BOUNDS): New function.
	* internal-fn.def (UBSAN_BOUNDS): New internal function.
	* internal-fn.h: Don't define internal functions here.
	* opts.c (common_handle_option): Add -fsanitize=bounds.
	* sanitizer.def (BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS,
	BUILT_IN_UBSAN_HANDLE_OUT_OF_BOUNDS_ABORT): Add.
	* tree-core.h: Define internal functions here.
	(struct tree_base): Add ifn field.
	* tree-pretty-print.c: Include "internal-fn.h".
	(dump_generic_node): Handle functions without CALL_EXPR_FN.
	* tree.c (get_callee_fndecl): Likewise.
	(build_call_expr_internal_loc): New function.
	* tree.def (CALL_EXPR): Update description.
	* tree.h (CALL_EXPR_IFN): Define.
	(build_call_expr_internal_loc): Declare.
	* ubsan.c (get_ubsan_type_info_for_type): Return 0 for non-arithmetic
	types.
	(ubsan_type_descriptor): Change bool parameter to enum
	ubsan_print_style.  Adjust the code.  Add handling of
	UBSAN_PRINT_ARRAY.
	(ubsan_expand_bounds_ifn): New function.
	(ubsan_expand_null_ifn): Adjust ubsan_type_descriptor call.
	(ubsan_build_overflow_builtin): Likewise.
	(instrument_bool_enum_load): Likewise.
	(ubsan_instrument_float_cast): Likewise.
	* ubsan.h (enum ubsan_print_style): New enum.
	(ubsan_expand_bounds_ifn): Declare.
	(ubsan_type_descriptor): Adjust declaration.  Use a default parameter.
c-family/
	* c-gimplify.c: Include "c-ubsan.h" and "pointer-set.h".
	(ubsan_walk_array_refs_r): New function.
	(c_genericize): Instrument array bounds.
	* c-ubsan.c: Include "internal-fn.h".
	(ubsan_instrument_division): Mark instrumented arrays as having
	side effects.  Adjust ubsan_type_descriptor call.
	(ubsan_instrument_shift): Likewise.
	(ubsan_instrument_vla): Adjust ubsan_type_descriptor call.
	(ubsan_instrument_bounds): New function.
	(ubsan_array_ref_instrumented_p): New function.
	(ubsan_maybe_instrument_array_ref): New function.
	* c-ubsan.h (ubsan_instrument_bounds): Declare.
	(ubsan_array_ref_instrumented_p): Declare.
	(ubsan_maybe_instrument_array_ref): Declare.
testsuite/
	* c-c++-common/ubsan/bounds-1.c: New test.
	* c-c++-common/ubsan/bounds-2.c: New test.
	* c-c++-common/ubsan/bounds-3.c: New test.
	* c-c++-common/ubsan/bounds-4.c: New test.
	* c-c++-common/ubsan/bounds-5.c: New test.
	* c-c++-common/ubsan/bounds-6.c: New test.

From-SVN: r211859
2014-06-20 21:20:51 +00:00
Francois-Xavier Coudert
87681fb550 re PR fortran/33363 (gfortran is missing -fcase-preserve option)
PR fortran/33363
	* invoke.texi: Don't mention nonexisting -fcase-lower option.

From-SVN: r211858
2014-06-20 20:11:30 +00:00
Maciej W. Rozycki
9674047260 rs6000.md: Append DONE' to preparation statements of bswap' pattern splitters.
* config/rs6000/rs6000.md: Append `DONE' to preparation
	statements of `bswap' pattern splitters.

From-SVN: r211857
2014-06-20 19:42:22 +00:00
Jason Merrill
caa40bc0fc re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)
PR c++/59296
	* call.c (add_function_candidate): Avoid special 'this' handling
	if we have a ref-qualifier.

From-SVN: r211854
2014-06-20 14:32:35 -04:00
Jason Merrill
e2498d54f0 re PR c++/61556 ([c++11][4.9/4.10 Regression] ‘*(const ValueType*)this’ is not a constant expression with valid code)
PR c++/61556
	* call.c (build_over_call): Call build_this in template path.

From-SVN: r211853
2014-06-20 14:31:53 -04:00
Tom de Vries
73b3e61bca Update definition of call_fusage_contains_non_callee_clobbers
2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* target.def (call_fusage_contains_non_callee_clobbers): Update
	definition.
	* doc/tm.texi: Regenerate.

From-SVN: r211852
2014-06-20 18:28:12 +00:00
Yufeng Zhang
676d89dd0f Make the tests big-endian friendly.
gcc/testsuite/

	Make the tests big-endian friendly.

	* gcc.target/aarch64/aapcs64/test_25.c: Update.
	* gcc.target/aarch64/aapcs64/va_arg-1.c: Ditto.
	* gcc.target/aarch64/aapcs64/va_arg-12.c: Ditto.
	* gcc.target/aarch64/aapcs64/va_arg-2.c: Ditto.
	* gcc.target/aarch64/aapcs64/va_arg-3.c: Ditto.
	* gcc.target/aarch64/aapcs64/va_arg-4.c: Ditto.
	* gcc.target/aarch64/aapcs64/va_arg-5.c: Ditto.
	* gcc.target/aarch64/aapcs64/va_arg-6.c: Ditto.
	* gcc.target/aarch64/aapcs64/va_arg-7.c: Ditto.

From-SVN: r211851
2014-06-20 16:52:29 +00:00
Yury Gribov
0cbf438b11 asan.c (instrument_strlen_call): Fixed instrumentation of trailing byte.
2014-06-18  Yury Gribov  <y.gribov@samsung.com>

gcc/
	* asan.c (instrument_strlen_call): Fixed instrumentation of
	trailing byte.

gcc/testsuite/
	* c-c++-common/asan/strlen-overflow-1.c: New test.

Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com>

From-SVN: r211849
2014-06-20 16:33:28 +03:00
Martin Jambor
bec81025ed re PR ipa/61540 (internal compiler error in try_make_edge_direct_virtual_call)
2014-06-20  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61540
	* ipa-prop.c (impossible_devirt_target): New function.
	(try_make_edge_direct_virtual_call): Use it, also instead of
	asserting.

testsuite/
        * g++.dg/ipa/pr61540.C: New test.

From-SVN: r211847
2014-06-20 13:19:46 +02:00
Yury Gribov
bf613c022e re PR sanitizer/61530 (segfault with asan)
2014-06-18  Yury Gribov  <y.gribov@samsung.com>

gcc/
	PR sanitizer/61530
	* asan.c (build_check_stmt): Add condition.

gcc/testsuite/
	* c-c++-common/asan/pr61530.c: New test.
	

Co-Authored-By: Max Ostapenko <m.ostapenko@partner.samsung.com>

From-SVN: r211846
2014-06-20 13:26:55 +03:00
Martin Jambor
803d0ab0e8 re PR ipa/61211 (ICE: verify_cgraph_node failed: edge points to wrong declaration with -O3 -fno-inline)
2014-06-20  Martin Jambor  <mjambor@suse.cz>

	PR ipa/61211
	* cgraph.c (clone_of_p): Allow skipped_branch to deal with
	expanded clones.

From-SVN: r211844
2014-06-20 11:54:39 +02:00
Kyrylo Tkachov
278821f265 [AArch64] Fix some saturating math NEON intrinsics types.
[gcc/]
	* config/aarch64/iterators.md (VCOND): Handle SI and HI modes.
	Update comments.
	(VCONQ): Make comment more helpful.
	(VCON): Delete.
	* config/aarch64/aarch64-simd.md
	(aarch64_sqdmulh_lane<mode>):
	Use VCOND for operands 2.  Update lane checking and flipping logic.
	(aarch64_sqrdmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>_internal): Likewise.
	(aarch64_sqdmull2<mode>): Remove VCON, use VQ_HSI mode iterator.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, VD_HSI): Change mode
	attribute of operand 3 to VCOND.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
	(aarch64_sqdmull_lane<mode>_internal, VD_HSI): Likewise.
	(aarch64_sqdmull_lane<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdmull2_lane<mode>_internal): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, VD_HSI: New
	define_insn.
	(aarch64_sqdml<SBINQOPS:as>l_laneq<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Likewise.
	(aarch64_sqdmull_laneq<mode>_internal, VD_HSI): Likewise.
	(aarch64_sqdmull_laneq<mode>_internal, SD_HSI): Likewise.
	(aarch64_sqdmull2_laneq<mode>_internal): Likewise.
	(aarch64_sqdmlal_lane<mode>): Change mode attribute of penultimate
	operand to VCOND.  Update lane flipping and bounds checking logic.
	(aarch64_sqdmlal2_lane<mode>): Likewise.
	(aarch64_sqdmlsl_lane<mode>): Likewise.
	(aarch64_sqdmull_lane<mode>): Likewise.
	(aarch64_sqdmull2_lane<mode>): Likewise.
	(aarch64_sqdmlal_laneq<mode>):
	Replace VCON usage with VCONQ.
	Emit aarch64_sqdmlal_laneq<mode>_internal insn.
	(aarch64_sqdmlal2_laneq<mode>): Emit
	aarch64_sqdmlal2_laneq<mode>_internal insn.
	Replace VCON with VCONQ.
	(aarch64_sqdmlsl2_lane<mode>): Replace VCON with VCONQ.
	(aarch64_sqdmlsl2_laneq<mode>): Likewise.
	(aarch64_sqdmull_laneq<mode>): Emit
	aarch64_sqdmull_laneq<mode>_internal insn.
	Replace VCON with VCONQ.
	(aarch64_sqdmull2_laneq<mode>): Emit
	aarch64_sqdmull2_laneq<mode>_internal insn.
	(aarch64_sqdmlsl_laneq<mode>): Replace VCON usage with VCONQ.
	* config/aarch64/arm_neon.h (vqdmlal_high_lane_s16): Change type
	of 3rd argument to int16x4_t.
	(vqdmlalh_lane_s16): Likewise.
	(vqdmlslh_lane_s16): Likewise.
	(vqdmull_high_lane_s16): Likewise.
	(vqdmullh_lane_s16): Change type of 2nd argument to int16x4_t.
	(vqdmlal_lane_s16): Don't create temporary int16x8_t value.
	(vqdmlsl_lane_s16): Likewise.
	(vqdmull_lane_s16): Don't create temporary int16x8_t value.
	(vqdmlal_high_lane_s32): Change type 3rd argument to int32x2_t.
	(vqdmlals_lane_s32): Likewise.
	(vqdmlsls_lane_s32): Likewise.
	(vqdmull_high_lane_s32): Change type 2nd argument to int32x2_t.
	(vqdmulls_lane_s32): Likewise.
	(vqdmlal_lane_s32): Don't create temporary int32x4_t value.
	(vqdmlsl_lane_s32): Likewise.
	(vqdmull_lane_s32): Don't create temporary int32x4_t value.
	(vqdmulhh_lane_s16): Change type of second argument to int16x4_t.
	(vqrdmulhh_lane_s16): Likewise.
	(vqdmlsl_high_lane_s16): Likewise.
	(vqdmulhs_lane_s32): Change type of second argument to int32x2_t.
	(vqdmlsl_high_lane_s32): Likewise.
	(vqrdmulhs_lane_s32): Likewise.

[gcc/testsuite]
	* gcc.target/aarch64/simd/vqdmulhh_lane_s16.c: New test.
	* gcc.target/aarch64/simd/vqdmulhs_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqrdmulhh_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqrdmulhs_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlal_high_lane_s16.c: New test.
	* gcc.target/aarch64/simd/vqdmlal_high_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlal_high_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlal_high_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlal_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlal_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlal_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlal_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsl_high_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsl_high_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsl_high_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsl_high_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsl_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsl_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsl_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmulh_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmulh_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmulhq_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmulhq_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_high_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_high_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_high_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_high_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmull_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqrdmulh_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqrdmulh_laneq_s32.c: Likewise.
	* gcc.target/aarch64/simd/vqrdmulhq_laneq_s16.c: Likewise.
	* gcc.target/aarch64/simd/vqrdmulhq_laneq_s32.c: Likewise.
	* gcc.target/aarch64/vector_intrinsics.c: Simplify arm_neon.h include.
	(test_vqdmlal_high_lane_s16): Fix parameter type.
	(test_vqdmlal_high_lane_s32): Likewise.
	(test_vqdmull_high_lane_s16): Likewise.
	(test_vqdmull_high_lane_s32): Likewise.
	(test_vqdmlsl_high_lane_s32): Likewise.
	(test_vqdmlsl_high_lane_s16): Likewise.
	* gcc.target/aarch64/scalar_intrinsics.c (test_vqdmlalh_lane_s16):
	Fix argument type.
	(test_vqdmlals_lane_s32): Likewise.
	(test_vqdmlslh_lane_s16): Likewise.
	(test_vqdmlsls_lane_s32): Likewise.
	(test_vqdmulhh_lane_s16): Likewise.
	(test_vqdmulhs_lane_s32): Likewise.
	(test_vqdmullh_lane_s16): Likewise.
	(test_vqdmulls_lane_s32): Likewise.
	(test_vqrdmulhh_lane_s16): Likewise.
	(test_vqrdmulhs_lane_s32): Likewise.

From-SVN: r211842
2014-06-20 08:51:34 +00:00
Tom de Vries
6621ab6860 Fix finding reg-sets of call insn
2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* final.c (collect_fn_hard_reg_usage): Add separate IOR_HARD_REG_SET for
	get_call_reg_set_usage.

From-SVN: r211841
2014-06-20 08:02:02 +00:00
Tom de Vries
5fea818693 Don't save function_used_regs if it contains all call_used_regs
2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* final.c (collect_fn_hard_reg_usage): Don't save function_used_regs if
	it contains all call_used_regs.

From-SVN: r211840
2014-06-20 08:01:52 +00:00
Tom de Vries
53f2f6c1c4 Use function_used_regs variable in collect_fn_hard_reg_usage
2014-06-20  Tom de Vries  <tom@codesourcery.com>

	* final.c (collect_fn_hard_reg_usage): Add and use variable
	function_used_regs.

From-SVN: r211839
2014-06-20 08:01:41 +00:00
Jan Hubicka
569b1784fe cgraph.h (struct symtab_node): Add field in_init_priority_hash (set_init_priority...
* cgraph.h (struct symtab_node): Add field in_init_priority_hash
	(set_init_priority, get_init_priority, set_fini_priority,
	get_fini_priority): New methods.
	* tree.c (init_priority_for_decl): Remove.
	(init_ttree): Do not initialize init priority.
	(decl_init_priority_lookup, decl_fini_priority_lookup): Rewrite.
	(decl_priority_info): Remove.
	(decl_init_priority_insert): Rewrite.
	(decl_fini_priority_insert): Rewrite.
	* tree.h (tree_priority_map_eq, tree_priority_map_hash,
	tree_priority_map_marked_p): Remove.
	* lto-cgraph.c (lto_output_node, input_node): Stream init priorities.
	* lto-streamer-out.c (hash_tree): Do not hash priorities.
	* tree-streamer-out.c (pack_ts_decl_with_vis_value_fields): Do
	not output priorities.
	(pack_ts_function_decl_value_fields): Likewise.
	* tree-streamer-in.c (unpack_ts_decl_with_vis_value_fields): Do
	not input priorities.
	(unpack_ts_function_decl_value_fields): Likewise.
	* symtab.c (symbol_priority_map): Declare.
	(init_priority_hash): Declare.
	(symtab_unregister_node): Unregister from priority hash, too.
	(symtab_node::get_init_priority, cgraph_node::get_fini_priority):
	New methods.
	(symbol_priority_map_eq, symbol_priority_map_hash): New functions.
	(symbol_priority_info): New function.
	(symtab_node::set_init_priority, cgraph_node::set_fini_priority):
	New methods.
	* tree-core.h (tree_priority_map): Remove.

	* lto.c (compare_tree_sccs_1): Do not compare priorities.

From-SVN: r211838
2014-06-20 07:09:27 +00:00
Jakub Jelinek
88f5cfcd2b tree-ssa-math-opts.c (do_shift_rotate, [...]): Cast 0xff to uint64_t before shifting it up.
* tree-ssa-math-opts.c (do_shift_rotate, find_bswap_or_nop_1): Cast
	0xff to uint64_t before shifting it up.

From-SVN: r211837
2014-06-20 08:30:19 +02:00
Julian Brown
6d45574aa2 arm.c (arm_output_mi_thunk): Fix offset for TARGET_THUMB1_ONLY.
2014-06-20  Julian Brown  <julian@codesourcery.com>
	    Chung-Lin Tang  <cltang@codesourcery.com>

	* config/arm/arm.c (arm_output_mi_thunk): Fix offset for
	TARGET_THUMB1_ONLY. Add comments.


Co-Authored-By: Chung-Lin Tang <cltang@codesourcery.com>

From-SVN: r211834
2014-06-20 05:38:40 +00:00
Tobias Burnus
27a4e2d0fe re PR testsuite/61567 (gfortran.dg/coarray_collectives_{5,6}.f90 failure)
2014-06-20  Tobias Burnus  <burnus@net-b.de>

        PR testsuite/61567
        * gfortran.dg/coarray_collectives_5.f90: Update
        dg-final scan-tree-dump-times.
        * gfortran.dg/coarray_collectives_6.f90: Ditto.

From-SVN: r211833
2014-06-20 07:24:09 +02:00
Hale Wang
dd6fe7d4a2 re PR lto/61123 (With LTO, -fno-short-enums is ignored, resulting in ABI mis-matching in linking.)
c-family/ChangeLog
2014-06-20 Hale Wang <hale.wang@arm.com>

	PR lto/61123
	* c.opt (fshort-enums): Add to LTO.
	* c.opt (fshort-wchar): Likewise.

testsuite/ChangeLog
2014-06-20 Hale Wang <hale.wang@arm.com>

	* gcc.target/arm/lto/: New folder to verify the LTO option.
	* gcc.target/arm/lto/pr61123-enum-size_0.c: New test case.
	* gcc.target/arm/lto/pr61123-enum-size_1.c: Likewise.
	* gcc.target/arm/lto/lto.exp: New exp file used to test LTO option.
	* lib/lto.exp (object-readelf): New procedure.

From-SVN: r211832
2014-06-20 04:52:11 +00:00
GCC Administrator
9981da24c0 Daily bump.
From-SVN: r211831
2014-06-20 00:16:54 +00:00
Tom de Vries
d07a3fed35 Fix aarch64_emit_call_insn return type
2014-06-19  Tom de Vries  <tom@codesourcery.com>

	* config/aarch64/aarch64-protos.h (aarch64_emit_call_insn): Change
	return type to void.
	* config/aarch64/aarch64.c (aarch64_emit_call_insn): Same.

From-SVN: r211823
2014-06-19 12:21:13 +00:00
Francois-Xavier Coudert
c8d599e1dd re PR fortran/61454 (ICE in simplification of initialization expression with array)
PR fortran/61454
	* expr.c (scalarize_intrinsic_call): Take care of optional
	arguments.
	* gfortran.dg/pr61454.f90: New file.

From-SVN: r211822
2014-06-19 11:58:55 +00:00
Jason Merrill
c7744b8eea re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)
PR c++/59296
	* call.c (add_function_candidate): Also set LOOKUP_NO_TEMP_BIND.

From-SVN: r211821
2014-06-19 05:36:09 -04:00
Zhenqiang Chen
61fc05c74a loop-invariant.c (get_inv_cost): Skip invariants, which are marked as "move", from depends_on.
2014-06-19  Zhenqiang Chen  <zhenqiang.chen@linaro.org>

	* loop-invariant.c (get_inv_cost): Skip invariants, which are marked
	as "move", from depends_on.

From-SVN: r211818
2014-06-19 09:04:58 +00:00
Terry Guo
dbb73879ff thumb1.md (define_split): Split 64bit constant in earlier stage.
gcc/ChangeLog:

2014-06-19  Terry Guo  <terry.guo@arm.com>

	* config/arm/thumb1.md (define_split): Split 64bit constant in earlier
	stage.

gcc/testsuite/ChangeLog:

2014-06-19  Terry Guo  <terry.guo@arm.com>

	* gcc.target/arm/thumb1-load-64bit-constant-1.c: New test.
	* gcc.target/arm/thumb1-load-64bit-constant-2.c: Ditto.
	* gcc.target/arm/thumb1-load-64bit-constant-3.c: Ditto.

From-SVN: r211817
2014-06-19 07:50:48 +00:00
Tobias Burnus
7f6c4159bf trans-intrinsic.c (conv_co_minmaxsum): Fix argument passing.
gcc/fortran/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * trans-intrinsic.c (conv_co_minmaxsum): Fix argument
        passing.

gcc/testsuite/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/coarray/collectives_2.f90: Extend
        and make valid.

libgfortran/
2014-06-19  Tobias Burnus  <burnus@net-b.de>

        * caf/single.c (_gfortran_caf_co_sum, _gfortran_caf_co_max,
        _gfortran_caf_co_min): Fix stat setting.

From-SVN: r211816
2014-06-19 09:16:34 +02:00
Richard Henderson
29d0a43c96 Ignore gcc_update output
From-SVN: r211815
2014-06-18 17:47:18 -07:00
GCC Administrator
684bcf090f Daily bump.
From-SVN: r211814
2014-06-19 00:16:43 +00:00
Segher Boessenkool
36bd0c3e42 rs6000: Make cr5 allocatable
A comment in rs6000.h says "cr5 is not supposed to be used".  I checked
all ABIs, going as far back as PowerOpen (1994), and found no mention
of this.

Also document cr6 is used by some vector instructions.

From-SVN: r211811
2014-06-19 01:13:40 +02:00
Jason Merrill
74f4bbb732 re PR c++/59296 ([c++11] ref-qualified member function is ambiguous)
PR c++/59296
	* call.c (add_function_candidate): Set LOOKUP_NO_RVAL_BIND for
	ref-qualifier handling.

From-SVN: r211809
2014-06-18 18:13:51 -04:00
Jason Merrill
e3dc80be5e re PR c++/61507 (GCC does not compile function with parameter pack.)
PR c++/61507
	* pt.c (resolve_overloaded_unification): Preserve
	ARGUMENT_PACK_EXPLICIT_ARGS.

From-SVN: r211808
2014-06-18 18:13:40 -04:00
Kaz Kojima
be6b0becc0 re PR target/61550 ([SH] build failure with ICE in gen_reg_rtx, at emit-rtl.c:943)
PR target/61550
	* config/sh/sh.c (prepare_move_operands): Don't process TLS
	addresses here if reload in progress or completed.

From-SVN: r211807
2014-06-18 22:11:55 +00:00
Tobias Burnus
0b4cb601c1 gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
2014-06-18  Tobias Burnus  <burnus@net-b.de>

        * gfortran.texi (OpenMP): Update refs to OpenMP 4.0.
        * intrinsic.texi (OpenMP Modules): Ditto.

From-SVN: r211806
2014-06-18 22:57:19 +02:00
Robert Suchanek
a78cc31452 Enable LRA for MIPS
gcc/

	* config/mips/constraints.md ("d"): BASE_REG_CLASS replaced by
	"TARGET_MIPS16 ? M16_REGS : GR_REGS".
	* config/mips/mips.c (mips_regno_to_class): Update for M16_SP_REGS.
	(mips_regno_mode_ok_for_base_p): Remove use of !strict_p for MIPS16.
	(mips_register_priority): New function that implements the target
	hook TARGET_REGISTER_PRIORITY.
	(mips_spill_class): Likewise for TARGET_SPILL_CLASS.
	(mips_lra_p): Likewise for TARGET_LRA_P.
	(TARGET_REGISTER_PRIORITY): Define macro.
	(TARGET_SPILL_CLASS): Likewise.
	(TARGET_LRA_P): Likewise.
	* config/mips/mips.h (reg_class): Add M16_SP_REGS and SPILL_REGS
	classes.
	(REG_CLASS_NAMES): Likewise.
	(REG_CLASS_CONTENTS): Likewise.
	(BASE_REG_CLASS): Use M16_SP_REGS.
	* config/mips/mips.md (*mul_acc_si): Add alternative tuned for LRA.
	New set attribute to enable alternatives depending on the register
	allocator used.
	(*mul_acc_si_r3900, *mul_sub_si): Likewise.
	(*lea64): Disable pattern for MIPS16.
	* config/mips/mips.opt (mlra): New option.

From-SVN: r211805
2014-06-18 20:40:34 +00:00