0
0
mirror of https://gcc.gnu.org/git/gcc.git synced 2025-01-15 16:24:09 +08:00
Commit Graph

123312 Commits

Author SHA1 Message Date
Richard Biener
d90e76d4e1 tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts bitmap and its handling.
* tree-eh.c (cleanup_empty_eh_merge_phis): Remove rename_virts
	bitmap and its handling.
	(pass_cleanup_eh): Set todo_flags_finish to TODO_verify_ssa.

From-SVN: r198552
2013-05-02 19:24:26 +02:00
Tobias Burnus
1634e53f83 re PR fortran/57142 (SIZE/SHAPE overflow despite kind=8)
2013-05-02  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57142
        * simplify.c (gfc_simplify_size): Renamed from
        simplify_size; fix kind=8 handling.
        (gfc_simplify_size): New function.
        (gfc_simplify_shape): Add range check.
        * resolve.c (resolve_function): Fix handling
        for ISYM_SIZE.

2013-05-02  Tobias Burnus  <burnus@net-b.de>

        PR fortran/57142
        * gfortran.dg/size_kind_2.f90: New.
        * gfortran.dg/size_kind_3.f90: New.

From-SVN: r198549
2013-05-02 18:29:14 +02:00
Richard Biener
9f8e7a96c2 re PR middle-end/57140 (Segmentation fault in backtrace_dwarf_add)
2013-05-02  Richard Biener  <rguenther@suse.de>

	PR middle-end/57140
	* tree-inline.c (copy_loops): Properly handle removed loops.
	(copy_cfg_body): Mark destination loops for fixup if source
	loops needed fixup.

	* g++.dg/torture/pr57140.C: New testcase.

From-SVN: r198548
2013-05-02 15:46:12 +00:00
Greta Yorsh
f3a81b39c0 re PR rtl-optimization/56732 (ICE in advance_target_bb)
gcc/ChangeLog

2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>

	PR target/56732
	* config/arm/arm.c (arm_expand_epilogue): Check really_return before
	generating simple_return for naked functions.

gcc/testsuite/ChangeLog

2013-05-02  Greta Yorsh  <Greta.Yorsh@arm.com>

	PR target/56732
	* gcc.target/arm/pr56732-1.c: New test.

From-SVN: r198547
2013-05-02 16:45:10 +01:00
Martin Jambor
7b920a9ac3 re PR middle-end/56988 (ipa-cp incorrectly propagates a field of an aggregate)
2013-05-02  Martin Jambor  <mjambor@suse.cz>

	PR middle-end/56988
	* ipa-prop.h (ipa_agg_replacement_value): New flag by_ref.
	* ipa-cp.c (ipa_get_indirect_edge_target_1): Also check that by_ref
	flags match.
	(find_aggregate_values_for_callers_subset): Fill in the by_ref flag of
	ipa_agg_replacement_value structures.
	(known_aggs_to_agg_replacement_list): Likewise.
	* ipa-prop.c (write_agg_replacement_chain): Stream by_ref flag.
	(read_agg_replacement_chain): Likewise.
	(ipcp_transform_function): Also check that by_ref flags match.

testsuite/
	* gcc.dg/ipa/pr56988.c: New test.

From-SVN: r198540
2013-05-02 16:03:02 +02:00
Richard Biener
2c41c19d5d graphds.h (struct graph): Add obstack member.
2013-05-02  Richard Biener  <rguenther@suse.de>

	* graphds.h (struct graph): Add obstack member.
	* graphds.c (new_graph): Initialize obstack and allocate
	vertices from it.
	(add_edge): Allocate edge from the obstack.
	(free_graph): Free the obstack instead of all edges and
	vertices.

From-SVN: r198539
2013-05-02 13:59:38 +00:00
Teresa Johnson
8b47039cde Follow-on patch to r197595 to complete the replacement of truncating divides in...
Follow-on patch to r197595 to complete the replacement of truncating divides
in profile scaling code with rounding divide equivalents using helper routines
in basic-block.h. 

In addition to bootstrap and profiledbootstrap builds and tests (with and
without LTO), I built and tested performance of the SPEC cpu2006 benchmarks
with FDO on a Nehalem system. I didn't see any performance changes that
looked significant.

2013-05-02  Teresa Johnson  <tejohnson@google.com>

	* loop-unswitch.c (unswitch_loop): Use helper routines with rounding
        divides.
	* cfg.c (update_bb_profile_for_threading): Ditto.
	* tree-inline.c (copy_bb): Ditto.
	(copy_edges_for_bb): Ditto.
	(initialize_cfun): Ditto.
	(copy_cfg_body): Ditto.
	(expand_call_inline): Ditto.
	* ipa-inline-analysis.c (estimate_edge_size_and_time): Ditto.
	(estimate_node_size_and_time): Ditto.
	(inline_merge_summary): Ditto.
	* cgraphclones.c (cgraph_clone_edge): Ditto.
	(cgraph_clone_node): Ditto.
	* sched-rgn.c (compute_dom_prob_ps): Ditto.
	(compute_trg_info): Ditto.

From-SVN: r198532
2013-05-02 13:20:47 +00:00
Ian Bolton
da65928c1d AArch64 fix for LDR/STR from/to S and D regs
From-SVN: r198527
2013-05-02 12:54:16 +00:00
Ian Bolton
add3c9653f AArch64 Support for BICS in the backend
From-SVN: r198526
2013-05-02 12:52:22 +00:00
Richard Biener
fdd43ac4f7 tree-scalar-evolution.c (scev_info_hasher): Remove.
2013-05-02  Richard Biener  <rguenther@suse.de>

	* tree-scalar-evolution.c (scev_info_hasher): Remove.
	(struct instantiate_cache_entry): New type.
	(struct instantiate_cache_entry_hasher): New hashtable descriptor.
	(struct instantiate_cache_type): New type.
	(set_instantiated_value, get_instantiated_value): Remove.
	(get_instantiated_value_entry): New function.
	(instantiate_scev_name): Use the new cache and adjust.
	(instantiate_scev_poly): Adjust.
	(instantiate_scev_binary): Likewise.
	(instantiate_array_ref): Likewise.
	(instantiate_scev_convert): Likewise.
	(instantiate_scev_not): Likewise.
	(instantiate_scev_3): Likewise.
	(instantiate_scev_2): Likewise.
	(instantiate_scev_r): Likewise.
	(instantiate_scev): Likewise.
	(resolve_mixers): Likewise.

From-SVN: r198523
2013-05-02 12:23:20 +00:00
Paolo Carlini
b273e79b19 constexpr_data.cc: Move...
2013-05-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* testsuite/tr1/4_metaprogramming/integral_constant/requirements/
	constexpr_data.cc: Move...
	* testsuite/20_util/integral_constant/requirements/constexpr_data.cc:
	... here.
	* testsuite/20_util/integral_constant/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/integral_constant/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/integral_constant/static_definition.cc: Likewise.
	* testsuite/20_util/integral_constant/true_false_type_typedefs.cc:
	Likewise.
	* testsuite/20_util/integral_constant/true_false_value.cc: Likewise.
	* testsuite/20_util/integral_constant/operator_value_type.cc: Likewise.

From-SVN: r198521
2013-05-02 12:03:30 +00:00
Jakub Jelinek
f818478b8c Move libitm ChangeLog entry to the right ChangeLog file.
From-SVN: r198519
2013-05-02 13:32:11 +02:00
Paolo Carlini
aa940ab5d5 type_traits (is_null_pointer): Add.
2013-05-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/std/type_traits (is_null_pointer): Add.
	(__is_nullptr_t): Implement in terms of the latter.
	(is_fundamental, is_scalar): Adjust.
	* testsuite/20_util/is_null_pointer/requirements/
	explicit_instantiation.cc: New.
	* testsuite/20_util/is_null_pointer/requirements/typedefs.cc:
	Likewise.
	* testsuite/20_util/is_null_pointer/value.cc: Likewise.
	* testsuite/20_util/declval/requirements/1_neg.cc: Adjust dg-error
	line number.
	* testsuite/20_util/make_signed/requirements/typedefs_neg.cc:
	Likewise.
	* testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc:
	Likewise.

From-SVN: r198516
2013-05-02 11:00:26 +00:00
Paolo Carlini
ff84dbcb4e cstdio: Add comment about LWG 2249.
2013-05-02  Paolo Carlini  <paolo.carlini@oracle.com>

	* include/c_global/cstdio: Add comment about LWG 2249.
	* include/c_std/cstdio: Likewise.

From-SVN: r198512
2013-05-02 09:48:07 +00:00
Jakub Jelinek
203550bff1 re PR rtl-optimization/57131 (Wrong register assignment?)
PR rtl-optimization/57131
	* gcc.c-torture/execute/pr57131.c: New test.

From-SVN: r198511
2013-05-02 08:00:46 +02:00
GCC Administrator
6129486250 Daily bump.
From-SVN: r198510
2013-05-02 00:16:22 +00:00
Paolo Carlini
1a989b6179 re PR c++/57132 (spurious warning: division by zero [-Wdiv-by-zero] in if (m) res %=m;)
/cp
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57132
	* pt.c (tsubst_copy_and_build, MODOP_EXPR): Increase / decrease
	c_inhibit_evaluation_warnings around build_x_modify_expr call.

/testsuite
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57132
	* g++.dg/warn/Wdiv-by-zero-bogus-2.C: New.

From-SVN: r198504
2013-05-01 19:19:44 +00:00
Vladimir Makarov
36ff9dfbbe re PR target/57091 (ICE: in assign_by_spills, at lra-assigns.c:1268 with -mcmodel=large and indirect call)
2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57091
	* lra-constraints.c (best_small_class_operands_num): Remove.
	(process_alt_operands): Remove small_class_operands_num.  Take
	small classes operands into losers and only if the operand is not
	matched.  Modify debugging output.
	(curr_insn_transform): Remove best_small_class_operands_num.
	Print insn name.

2013-05-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57091
	* gcc.target/i386/pr57091.c: New test.

From-SVN: r198503
2013-05-01 18:54:17 +00:00
James Greenhalgh
36054fabf5 [AArch64] Refactor reduc_<su>plus patterns.
gcc/
	* config/aarch64/aarch64-builtins.c
	(aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
	* config/aarch64/aarch64-simd-builtins.def
	(reduc_splus_): Add new modes.
	(reduc_uplus_): New.
	* config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
	(reduc_uplus_v4sf): Likewise.
	(reduc_splus_v4sf): Likewise.
	(aarch64_addv<mode>): Likewise.
	(reduc_uplus_<mode>): Likewise.
	(reduc_splus_<mode>): Likewise.
	(aarch64_addvv2di): Likewise.
	(reduc_uplus_v2di): Likewise.
	(reduc_splus_v2di): Likewise.
	(aarch64_addvv2si): Likewise.
	(reduc_uplus_v2si): Likewise.
	(reduc_splus_v2si): Likewise.
	(reduc_<sur>plus_<mode>): New.
	(reduc_<sur>plus_v2di): Likewise.
	(reduc_<sur>plus_v2si): Likewise.
	(reduc_<sur>plus_v4sf): Likewise.
	(aarch64_addpv4sf): Likewise.
	* config/aarch64/arm_neon.h
	(vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
	* config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
	add UNSPEC_SADDV, UNSPEC_UADDV.
	(SUADDV): New.
	(sur): Add UNSPEC_SADDV, UNSPEC_UADDV.

gcc/testsuite/
	* gcc.target/aarch64/vect-vaddv.c: New.

From-SVN: r198500
2013-05-01 15:37:52 +00:00
James Greenhalgh
6dce23a8ae [AArch64] Rewrite v<max,min><nm><q><v>_<sfu><8, 16, 32, 64> intrinsics using builtins.
gcc/
	* config/aarch64/arm_neon.h
	(v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.

gcc/testsuite/
	* gcc.target/aarch64/vect-vmaxv.c: New.
	* gcc.target/aarch64/vect-vfmaxv.c: Likewise.

From-SVN: r198499
2013-05-01 15:33:34 +00:00
James Greenhalgh
1598945b00 [AArch64] Fold max and min reduction builtins to tree.
gcc/
	* config/aarch64/aarch64-builtins
	(aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.

From-SVN: r198498
2013-05-01 15:18:18 +00:00
James Greenhalgh
998eaf975b [AArch64] Refactor vector max and min RTL and builtins.
gcc/
	* config/aarch64/aarch64-simd-builtins.def
	(reduc_smax_): New.
	(reduc_smin_): Likewise.
	(reduc_umax_): Likewise.
	(reduc_umin_): Likewise.
	(reduc_smax_nan_): Likewise.
	(reduc_smin_nan_): Likewise.
	(fmax): Remove.
	(fmin): Likewise.
	(smax): Update for V2SF, V4SF and V2DF modes.
	(smin): Likewise.
	(smax_nan): New.
	(smin_nan): Likewise.
	* config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
	(<su><maxmin><mode>3): ...This, refactor.
	(s<maxmin><mode>3): New.
	(<maxmin_uns><mode>3): Likewise.
	(reduc_<maxmin_uns>_<mode>): Refactor.
	(reduc_<maxmin_uns>_v4sf): Likewise.
	(reduc_<maxmin_uns>_v2si): Likewise.
	(aarch64_<fmaxmin><mode>: Remove.
	* config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
	new builtin names.
	(vmin<q>_f<32,64>): Likewise.
	* config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
	(FMAXMIN): New.
	(su): Add mappings for smax, smin, umax, umin.
	(maxmin): New.
	(FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
	(FMAXMIN): Rename as...
	(FMAXMIN_UNS): ...This.
	(maxminv): Remove.
	(fmaxminv): Likewise.
	(fmaxmin): Likewise.
	(maxmin_uns): New.
	(maxmin_uns_op): Likewise.

From-SVN: r198497
2013-05-01 15:16:14 +00:00
James Greenhalgh
92d9038e4f [AArch64] Add testcases for FAC, FCM changes.
gcc/testsuite/
	* gcc.target/aarch64/scalar-vca.c: New.
	* gcc.target/aarch64/vect-vca.c: Likewise.

From-SVN: r198496
2013-05-01 10:52:13 +00:00
James Greenhalgh
bd11644e62 [AArch64] Rewrite vca<ge, gt, le, lt> Neon patterns in C.
gcc/
	* config/aarch64/arm_neon.h
	(vac<ge, gt><sd>_f<32, 64>): Rename to...
	(vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
	(vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.

From-SVN: r198495
2013-05-01 10:49:31 +00:00
James Greenhalgh
75dd5aceb2 [AArch64] Add combiner patterns for FAC instructions
gcc/
	* config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
	* config/aarch64/iterators.md (FAC_COMPARISONS): New.

From-SVN: r198494
2013-05-01 10:46:00 +00:00
James Greenhalgh
ad755ff16d [AArch64 Testsuite] Fix fallout from FCM changes.
gcc/testsuite/
	* gcc.target/aarch64/scalar_intrinsics.c (force_simd): New.
	(test_vceqd_s64): Force arguments to SIMD registers.
	(test_vceqzd_s64): Likewise.
	(test_vcged_s64): Likewise.
	(test_vcled_s64): Likewise.
	(test_vcgezd_s64): Likewise.
	(test_vcged_u64): Likewise.
	(test_vcgtd_s64): Likewise.
	(test_vcltd_s64): Likewise.
	(test_vcgtzd_s64): Likewise.
	(test_vcgtd_u64): Likewise.
	(test_vclezd_s64): Likewise.
	(test_vcltzd_s64): Likewise.
	(test_vtst_s64): Likewise.
	(test_vtst_u64): Likewise.

From-SVN: r198493
2013-05-01 10:43:02 +00:00
James Greenhalgh
7c19979f0f [AArch64] Add special case when expanding vcond with arms {-1, -1}, {0, 0}.
gcc/
	* config/aarch64/aarch64-simd.md
	(vcond<mode>_internal): Handle special cases for constant masks.
	(vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
	(vcondu<mode><mode>): Likewise.
	(vcond<v_cmp_result><mode>): New.

From-SVN: r198492
2013-05-01 10:40:23 +00:00
James Greenhalgh
bb60efd9bf [AArch64] Remap neon vcmp functions to C/TREE
gcc/
	* config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
	(aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
	* config/aarch64/aarch64-simd-builtins.def
	(cmeq): Update to BUILTIN_VALLDI.
	(cmgt): Likewise.
	(cmge): Likewise.
	(cmle): Likewise.
	(cmlt): Likewise.
	* config/aarch64/arm_neon.h
	(vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
	to builtins or C as appropriate.

From-SVN: r198491
2013-05-01 10:37:28 +00:00
James Greenhalgh
889b941239 [AArch64] Improve description of <F>CM instructions in RTL
gcc/
	* config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
	(cmgeu): ...This.
	(cmhi): Rename to...
	(cmgtu): ...This.
	* config/aarch64/aarch64-simd.md
	(simd_mode): Add SF.
	(aarch64_vcond_internal): Use new names for unsigned comparison insns.
	(aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
	* config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
	(cstore<mode>_neg): ...This.
	* config/aarch64/iterators.md
	(VALLF): new.
	(unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
	(COMPARISONS): New.
	(UCOMPARISONS): Likewise.
	(optab): Add missing comparisons.
	(n_optab): New.
	(cmp_1): Likewise.
	(cmp_2): Likewise.
	(CMP): Likewise.
	(cmp): Remove.
	(VCMP_S): Likewise.
	(VCMP_U): Likewise.
	(V_cmp_result): Add DF, SF modes.
	(v_cmp_result): Likewise.
	(v): Likewise.
	(vmtype): Likewise.
	* config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.

From-SVN: r198490
2013-05-01 10:33:57 +00:00
Greta Yorsh
0a7dbb7661 thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert define_insn to define_insn_and_split.
2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
	define_insn to define_insn_and_split.
	(thumb32_umaxsi3,thumb2_uminsi3): Likewise.
	(thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
	(thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
	(thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
	(thumb2_negscc): Likewise.

From-SVN: r198489
2013-05-01 11:25:28 +01:00
Paolo Carlini
57c16a5eb6 re PR c++/57092 (Using decltype of function pointer type to define a data member causes compiler crash)
/cp
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57092
	* semantics.c (finish_decltype_type): Handle instantiated template
	non-type arguments.

/testsuite
2013-05-01  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/57092
	* g++.dg/cpp0x/decltype53.C: New.

From-SVN: r198487
2013-05-01 09:21:30 +00:00
Thomas Koenig
e1e14947cf frontend-passes.c (optimize_power): Fix typo in comment.
2013-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>

	* frontend-passes.c (optimize_power):  Fix typo
	in comment.

From-SVN: r198486
2013-05-01 08:28:57 +00:00
GCC Administrator
dceb165352 Daily bump.
From-SVN: r198484
2013-05-01 00:16:23 +00:00
Thomas Koenig
068b04fe4c re PR fortran/57071 (Optimize (-1)**k to 1 - 2 * mod(K, 2))
2013-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57071
	* frontend-passes.c (optimize_power):  Simplify
	1**k to 1.

2013-04-30  Thomas Koenig  <tkoenig@gcc.gnu.org>

	PR fortran/57071
	* gfortran.dg/power_5.f90:  New test.

From-SVN: r198476
2013-04-30 21:45:13 +00:00
Brooks Moses
dc4ea06f6a MAINTAINERS: Update my email; move myself from Fortran reviewer to Write After Approval.
* MAINTAINERS: Update my email; move myself from Fortran
reviewer to Write After Approval.

From-SVN: r198469
2013-04-30 11:31:46 -07:00
Greta Yorsh
fb614ca68b thumb2.md (thumb2_incscc, [...]): Delete.
2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.

From-SVN: r198465
2013-04-30 18:08:25 +01:00
Greta Yorsh
9e64a0bf20 Committed as obvious.
2013-04-30  Greta Yorsh  <Greta.Yorsh@arm.com>

	* config/arm/thumb2.md: Remove trailing whitespaces.

From-SVN: r198464
2013-04-30 17:50:12 +01:00
Richard Sandiford
d6b2815614 explow.c (plus_constant): Pass "mode" to immed_double_int_const.
gcc/
	* explow.c (plus_constant): Pass "mode" to immed_double_int_const.
	Use gen_int_mode rather than GEN_INT.

From-SVN: r198462
2013-04-30 16:15:55 +00:00
H.J. Lu
b0dec60747 Fix a typo in ChangeLog
From-SVN: r198458
2013-04-30 08:53:58 -07:00
H.J. Lu
f91674c330 Remove the trayed debug_gimple_stmt
* value-prof.c (stream_in_histogram_value): Remove the trayed
	debug_gimple_stmt.

From-SVN: r198457
2013-04-30 08:53:03 -07:00
Richard Biener
3551257c5d re PR tree-optimization/57122 (ICE in verify_loop_structure, at cfgloop.c:1647 (loop n’s latch does not have an edge to its header !))
2013-04-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/57122
	* cfghooks.c (split_edge): Properly check for the loop
	latch edge.

	* gcc.dg/torture/pr57122.c: New testcase.

From-SVN: r198456
2013-04-30 15:03:58 +00:00
Richard Biener
4c1aff1ce4 re PR middle-end/57107 (tree check fail in unlink_stmt_vdef)
2013-04-30  Richard Biener  <rguenther@suse.de>

	PR middle-end/57107
	* tree-eh.c (sink_clobbers): Preserve virtual SSA form.

	* g++.dg/torture/pr57107.C: New testcase.

From-SVN: r198454
2013-04-30 13:54:14 +00:00
Andrey Belevantsev
54b8379a26 re PR rtl-optimization/56957 (ICE in add_insn_after, at emit-rtl.c:3783)
PR rtl-optimization/56957
        PR rtl-optimization/57105

        * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted
        variable.  Use just INSN_UID for determining whether an insn
        should be only disconnected from the insn stream.
        * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove.

	* gcc.dg/pr57105.c: New test.

From-SVN: r198449
2013-04-30 14:55:52 +04:00
Jakub Jelinek
abc27962b8 re PR sanitizer/57104 (ICE: in expand_expr_addr_expr_1, at expr.c:7594 with -fsanitize=thread and hardreg variable)
PR tree-optimization/57104
	* tsan.c (instrument_expr): Don't instrument accesses to
	DECL_HARD_REGISTER VAR_DECLs.

	* gcc.dg/pr57104.c: New test.

From-SVN: r198445
2013-04-30 10:52:39 +02:00
Sofiane Naci
a46d0aff5e config-list.mk (LIST): Add aarch64-elf and aarch64-linux-gnu.
From-SVN: r198443
2013-04-30 08:35:17 +00:00
Richard Biener
0fc822d0f9 function.h (loops_for_fn): New inline function.
2013-04-30  Richard Biener  <rguenther@suse.de>

	* function.h (loops_for_fn): New inline function.
	(set_loops_for_fn): Likewise.
	* cfgloop.h (place_new_loop): Add struct function parameter.
	(get_loop): Likewise.
	(get_loops): Likewise.
	(number_of_loops): Likewise.
	(fel_next): Adjust.
	(fel_init): Likewise.
	* cfg.c (get_loop_copy): Adjust.
	* cfgloop.c (flow_loops_dump): Likewise.
	(record_loop_exits): Likewise.
	(verify_loop_structure): Likewise.
	* cfgloopanal.c (mark_irreducible_loops): Likewise.
	(estimate_reg_pressure_cost): Likewise.
	(mark_loop_exit_edges): Likewise.
	* cfgloopmanip.c (place_new_loop): Likewise.
	(add_loop): Likewise.
	(duplicate_loop): Likewise.
	* graph.c (draw_cfg_nodes): Likewise.
	* graphite-clast-to-gimple.c (translate_clast_user): Likewise.
	* graphite-sese-to-poly.c (build_scop_scattering): Likewise.
	(extract_affine_chrec): Likewise.
	(build_scop_iteration_domain): Likewise.
	* graphite.c (graphite_initialize): Likewise.
	* ira-build.c (create_loop_tree_nodes): Likewise.
	(more_one_region_p): Likewise.
	(rebuild_regno_allocno_maps): Likewise.
	(mark_loops_for_removal): Likewise.
	(mark_all_loops_for_removal): Likewise.
	(remove_unnecessary_regions): Likewise.
	(ira_build): Likewise.
	* ira-emit.c (setup_entered_from_non_parent_p): Likewise.
	* loop-init.c (fix_loop_structure): Likewise.
	(gate_rtl_move_loop_invariants): Likewise.
	(gate_rtl_unswitch): Likewise.
	(gate_rtl_unroll_and_peel_loops): Likewise.
	(rtl_doloop): Likewise.
	* lto-streamer-in.c (input_cfg): Likewise.
	* lto-streamer-out.c (output_cfg): Likewise.
	* modulo-sched.c (sms_schedule): Likewise.
	* predict.c (tree_estimate_probability): Likewise.
	(tree_estimate_probability_driver): Likewise.
	(estimate_loops): Likewise.
	* tree-cfg.c (fixup_loop_arrays_after_move): Likewise.
	(move_sese_region_to_fn): Likewise.
	(debug_loop_num): Likewise.
	* tree-chrec.c (chrec_evaluate): Likewise.
	(hide_evolution_in_other_loops_than_loop): Likewise.
	(chrec_component_in_loop_num): Likewise.
	(reset_evolution_in_loop): Likewise.
	(evolution_function_is_invariant_rec_p): Likewise.
	* tree-if-conv.c (main_tree_if_conversion): Likewise.
	* tree-inline.c (copy_loops): Likewise.
	(copy_cfg_body): Likewise.
	(tree_function_versioning): Likewise.
	* tree-loop-distribution.c (rdg_flag_loop_exits): Likewise.
	* tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
	Likewise.
	(add_to_evolution_1): Likewise.
	(scev_const_prop): Likewise.
	* tree-scalar-evolution.h (get_chrec_loop): Likewise.
	* tree-ssa-loop-ch.c (copy_loop_headers): Likewise.
	* tree-ssa-loop-im.c (analyze_memory_references): Likewise.
	(tree_ssa_lim_initialize): Likewise.
	* tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa): Likewise.
	(verify_loop_closed_ssa): Likewise.
	* tree-ssa-loop.c  (tree_ssa_loop_init): Likewise.
	(tree_ssa_loop_im): Likewise.
	(tree_ssa_loop_unswitch): Likewise.
	(tree_vectorize): Likewise.
	(check_data_deps): Likewise.
	(tree_ssa_loop_ivcanon): Likewise.
	(tree_ssa_loop_bounds): Likewise.
	(tree_complete_unroll): Likewise.
	(tree_complete_unroll_inner): Likewise.
	(tree_parallelize_loops): Likewise.
	(tree_ssa_loop_prefetch): Likewise.
	(tree_ssa_loop_ivopts): Likewise.
	* tree-ssa.c (execute_update_addresses_taken): Liekwise.
	* tree-vectorizer.c (vectorize_loops): Likewise.

From-SVN: r198441
2013-04-30 08:14:09 +00:00
Mike Frysinger
37953bd308 gcc: arm: linux-eabi: fix handling of armv4 bx fixups when linking
The bpabi.h header already sets up defines to automatically use the
--fix-v4bx flag with the assembler & linker as needed, and creates a
default assembly & linker spec which uses those.  Unfortunately, the
linux-eabi.h header clobbers the LINK_SPEC define and doesn't include
the v4bx define when setting up its own.  So while the assembler spec
is retained and works fine to generate the right relocs, building for
armv4 targets doesn't invoke the linker correctly so all the relocs
get processed as if we had an armv4t target.

You can see this with -dumpspecs when configuring gcc for an armv4
target and using --with-arch=armv4:
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx
*subtarget_extra_asm_spec:
.... %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx} ...

With this fix in place, we also get the link spec:
$ armv4l-unknown-linux-gnueabi-gcc -dumpspecs |& grep -B 1 fix-v4bx
*link:
...  %{mcpu=arm8|mcpu=arm810|mcpu=strongarm*|march=armv4|mcpu=fa526|mcpu=fa626:--fix-v4bx} ...

And all my hello world tests / glibc builds automatically turn the
bx insn into the 'mov pc, lr' insn and all is right in the world.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>

From-SVN: r198438
2013-04-30 04:07:23 +00:00
GCC Administrator
5eb8b03c89 Daily bump.
From-SVN: r198437
2013-04-30 00:16:40 +00:00
Uros Bizjak
f9ed28db0c re PR target/44578 (GCC generates MMX instructions but fails to generate "emms")
PR target/44578
	* config/i386/i386.md (*zero_extendsidi2): Add "!" to m->?*y
	alternative.

testsuite/ChangeLog:

	PR target/44578
	* gcc.target/i386/pr44578.c: New test.

From-SVN: r198433
2013-04-29 22:16:48 +02:00
Vladimir Makarov
deca73f5de re PR target/57097 (ICE: in find_hard_regno_for, at lra-assigns.c:561 with -O2 -fPIC -m32)
2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57097
        * lra-constraints.c (process_alt_operands): Discourage a bit more
	using memory for pseudos.  Print cost dump for alternatives.
	Modify cost values for conflicts with early clobbers.
	(curr_insn_transform): Spill pseudos reassigned to NO_REGS.

2013-04-29  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/57097
	* gcc.target/i386/pr57097.c: New test.

From-SVN: r198432
2013-04-29 19:42:20 +00:00