wschmidt [Sat, 4 May 2013 04:57:32 +0000 (04:57 +0000)]
gcc:
2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.
(find_candidates_in_block): Disable slsr_process_phi.
gcc/testsuite:
2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.dg/tree-ssa/slsr-32.c: Skip test for now.
* gcc.dg/tree-ssa/slsr-33.c: Likewise.
* gcc.dg/tree-ssa/slsr-34.c: Likewise.
* gcc.dg/tree-ssa/slsr-35.c: Likewise.
* gcc.dg/tree-ssa/slsr-36.c: Likewise.
* gcc.dg/tree-ssa/slsr-37.c: Likewise.
* gcc.dg/tree-ssa/slsr-38.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198592
138bc75d-0d04-0410-961f-
82ee72b054a4
carrot [Sat, 4 May 2013 01:26:52 +0000 (01:26 +0000)]
* coverage.c (coverage_obj_init): Move the construction of gcov
constructor to
(build_init_ctor): here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198591
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 4 May 2013 00:16:17 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198590
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Fri, 3 May 2013 20:08:19 +0000 (20:08 +0000)]
Remove "\\" from scan-assembler-times
2013-05-03 Dominique d'Humieres <dominiq@lps.ens.fr>
p
* gcc.target/i386/sse2-init-v2di-2.c: Remove "\\" from
scan-assembler-times.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198587
138bc75d-0d04-0410-961f-
82ee72b054a4
wschmidt [Fri, 3 May 2013 18:56:39 +0000 (18:56 +0000)]
gcc:
2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.
(slsr_cand_d): Redefine def_phi.
(stride_status, phi_adjust_status, count_phis_status): New enums.
(find_phi_def): New.
(find_basis_for_base_expr): New.
(find_basis_for_candidate): Handle hidden bases.
(alloc_cand_and_find_basis): Handle phi candidates.
(slsr_process_phi): New.
(create_mul_ssa_cand): Exclude phi base candidates; use integer_onep.
(create_mul_imm_cand): Likewise.
(create_add_ssa_cand): Exclude phi base candidates.
(create_add_imm_cand): Likewise.
(slsr_process_cast): Likewise.
(slsr_process_copy): Likewise.
(find_candidates_in_block): Handle phi candidates.
(dump_candidate): Likewise.
(unconditional_cands): Delete.
(unconditional_cands_with_known_stride_p): Delete.
(phi_dependent_cand_p): New.
(cand_increment): Handle phi-dependent candidates.
(replace_dependent): Delete.
(replace_mult_candidate): New.
(replace_unconditional_candidate): New.
(incr_vec_index): Move to avoid forward reference.
(create_add_on_incoming_edge): New.
(create_phi_basis): New.
(replace_dependents): Delete.
(replace_conditional_candidate): New.
(phi_add_costs): New.
(replace_uncond_cands_and_profitable_phis): New.
(record_increment): Handle phi adjustments.
(record_phi_increments): New.
(record_increments): Handle phi adjustments.
(phi_incr_cost): New.
(lowest_cost_path): Handle phis.
(total_savings): Likewise.
(analyze_increments): Likewise.
(ncd_with_phi): New.
(ncd_of_cand_and_phis): New.
(nearest_common_dominator_for_cands): Handle phi increments.
(all_phi_incrs_profitable): New.
(replace_profitable_candidates): Handle phi-dependent candidates.
(analyze_candidates_and_replace): Likewise.
gcc/testsuite:
2013-05-03 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
* gcc.dg/tree-ssa/slsr-32.c: New.
* gcc.dg/tree-ssa/slsr-33.c: New.
* gcc.dg/tree-ssa/slsr-34.c: New.
* gcc.dg/tree-ssa/slsr-35.c: New.
* gcc.dg/tree-ssa/slsr-36.c: New.
* gcc.dg/tree-ssa/slsr-37.c: New.
* gcc.dg/tree-ssa/slsr-38.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198586
138bc75d-0d04-0410-961f-
82ee72b054a4
ibolton [Fri, 3 May 2013 18:30:00 +0000 (18:30 +0000)]
AArch64 test cases for TST instruction
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198585
138bc75d-0d04-0410-961f-
82ee72b054a4
tejohnson [Fri, 3 May 2013 16:48:24 +0000 (16:48 +0000)]
2013-05-03 Teresa Johnson <tejohnson@google.com>
PR bootstrap/57154
* sched-rgn.c (compute_dom_prob_ps): Ensure accumulated probabilities
do not exceed REG_BR_PROB_BASE.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198584
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Fri, 3 May 2013 16:47:21 +0000 (16:47 +0000)]
Fix typos in ChangeLog entries
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198583
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Fri, 3 May 2013 16:35:04 +0000 (16:35 +0000)]
PR tree-optimization/57411
* tree-vrp.c (simplify_cond_using_ranges): Verify the constant
operand of the condition will bit into the new type when eliminating
a cast feeding a condition.
PR tree-optimization/57411
* gcc.c-torture/execute/pr57144.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198582
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 3 May 2013 12:56:12 +0000 (12:56 +0000)]
PR rtl-optimization/57130
* combine.c (make_compound_operation) <case SUBREG>: Pass
SET instead of COMPARE as in_code to the recursive call
if needed.
* gcc.c-torture/execute/pr57130.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198579
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Fri, 3 May 2013 12:03:29 +0000 (12:03 +0000)]
* config/i386/i386.md (isa): Add x64_sse4_noavx and x64_avx members.
(enabled): Handle new members.
* config/i386/sse.md (*vec_concatv2si): Merge from
*vec_concatv2si_sse2 and vec_concatv2si_sse.
(vec_concatv2di): Merge with *vec_concatv2di_rex64.
testsuite/ChangeLog:
* gcc.target/i386/sse2-init-v2di-2.c: Update scan assembler string.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198578
138bc75d-0d04-0410-961f-
82ee72b054a4
amylaar [Fri, 3 May 2013 11:18:37 +0000 (11:18 +0000)]
2013-05-03 Joern Rennecke <joern.rennecke@embecosm.com>
PR tree-optimization/57027
* tree-ssa-math-opts.c (convert_mult_to_fma): When checking for
fnms opportunity, check we got the prerequisite kind of tree / gimple
before using accessor functions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198577
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 3 May 2013 11:09:59 +0000 (11:09 +0000)]
2013-05-03 Richard Biener <rguenther@suse.de>
* double-int.h (lshift): New overload without precision
and arith argument.
(operator *=, operator +=, operator -=): Move ...
* double-int.c (operator *=, operator +=, operator -=): ... here
and implement more efficiently.
(mul_double_with_sign): Remove.
(lshift_double): Adjust to take unsinged shift argument, push
dispatching code to callers.
(mul_double_wide_with_sign): Add early out for callers that
are not interested in high parts or overflow.
(lshift): New function.
(lshift, rshift, alshift, arshift, llshift, lrshift): Add
dispatch code here.
(lrotate, rrotate): Use logical shifts.
* expr.c (get_inner_reference): Use lshift.
* fixed-value.c (do_fixed_divide): Likewise.
* tree-dfa.c (get_ref_base_and_extent): Likewise.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Likewise.
(indirect_refs_may_alias_p): Likewise.
(stmt_kills_ref_p_1): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198576
138bc75d-0d04-0410-961f-
82ee72b054a4
mshawcroft [Fri, 3 May 2013 10:21:16 +0000 (10:21 +0000)]
[AArch64] Correct simd_fabd comment text.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198575
138bc75d-0d04-0410-961f-
82ee72b054a4
mshawcroft [Fri, 3 May 2013 10:17:57 +0000 (10:17 +0000)]
[AArch64] Support scalar FABD
gcc/ChangeLog
2013-05-02 Vidya Praveen <vidyapraveen@arm.com>
* config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
scalar form of FABD instruction.
gcc/testsuite/ChangeLog
2013-05-02 Vidya Praveen <vidyapraveen@arm.com>
* gcc.target/aarch64/fabd.c: New file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198574
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Fri, 3 May 2013 09:35:42 +0000 (09:35 +0000)]
2013-05-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/54318
* g++.dg/cpp0x/pr54318.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198573
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Fri, 3 May 2013 09:02:15 +0000 (09:02 +0000)]
/cp
2013-05-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/14283
* parser.c (cp_parser_diagnose_invalid_type_name): Improve error
messages for template types and fix column numbers.
/testsuite
2013-05-03 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/14283
* g++.dg/parse/error51.C: New.
* g++.dg/parse/error15.C: Adjust column numbers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198572
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 3 May 2013 00:16:24 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198568
138bc75d-0d04-0410-961f-
82ee72b054a4
clyon [Thu, 2 May 2013 19:48:45 +0000 (19:48 +0000)]
Add ChangeLog entry for r197770 (in boehm-gc).
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198562
138bc75d-0d04-0410-961f-
82ee72b054a4
vmakarov [Thu, 2 May 2013 19:02:19 +0000 (19:02 +0000)]
2013-05-02 Vladimir Makarov <vmakarov@redhat.com>
* lra-constraints.c (process_alt_operands): Add checking alt
number to choose the best alternative.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198558
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 2 May 2013 17:24:26 +0000 (17:24 +0000)]
* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198552
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Thu, 2 May 2013 16:29:14 +0000 (16:29 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198549
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 2 May 2013 15:46:12 +0000 (15:46 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198548
138bc75d-0d04-0410-961f-
82ee72b054a4
gretay [Thu, 2 May 2013 15:45:10 +0000 (15:45 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198547
138bc75d-0d04-0410-961f-
82ee72b054a4
jamborm [Thu, 2 May 2013 14:03:02 +0000 (14:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198540
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 2 May 2013 13:59:38 +0000 (13:59 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198539
138bc75d-0d04-0410-961f-
82ee72b054a4
tejohnson [Thu, 2 May 2013 13:20:47 +0000 (13:20 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198532
138bc75d-0d04-0410-961f-
82ee72b054a4
ibolton [Thu, 2 May 2013 12:54:16 +0000 (12:54 +0000)]
AArch64 fix for LDR/STR from/to S and D regs
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198527
138bc75d-0d04-0410-961f-
82ee72b054a4
ibolton [Thu, 2 May 2013 12:52:22 +0000 (12:52 +0000)]
AArch64 Support for BICS in the backend
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198526
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Thu, 2 May 2013 12:23:20 +0000 (12:23 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198523
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 2 May 2013 12:03:30 +0000 (12:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198521
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 2 May 2013 11:32:11 +0000 (11:32 +0000)]
Move libitm ChangeLog entry to the right ChangeLog file.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198519
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 2 May 2013 11:00:26 +0000 (11:00 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198516
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 2 May 2013 09:48:07 +0000 (09:48 +0000)]
2013-05-02 Paolo Carlini <paolo.carlini@oracle.com>
* include/c_global/cstdio: Add comment about LWG 2249.
* include/c_std/cstdio: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198512
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 2 May 2013 06:00:46 +0000 (06:00 +0000)]
PR rtl-optimization/57131
* gcc.c-torture/execute/pr57131.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198511
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Thu, 2 May 2013 00:16:22 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198510
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 1 May 2013 19:19:44 +0000 (19:19 +0000)]
/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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198504
138bc75d-0d04-0410-961f-
82ee72b054a4
vmakarov [Wed, 1 May 2013 18:54:17 +0000 (18:54 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198503
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 15:37:52 +0000 (15:37 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198500
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 15:33:34 +0000 (15:33 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198499
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 15:18:18 +0000 (15:18 +0000)]
[AArch64] Fold max and min reduction builtins to tree.
gcc/
* config/aarch64/aarch64-builtins
(aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198498
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 15:16:14 +0000 (15:16 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198497
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 10:52:13 +0000 (10:52 +0000)]
[AArch64] Add testcases for FAC, FCM changes.
gcc/testsuite/
* gcc.target/aarch64/scalar-vca.c: New.
* gcc.target/aarch64/vect-vca.c: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198496
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 10:49:31 +0000 (10:49 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198495
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 10:46:00 +0000 (10:46 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198494
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 10:43:02 +0000 (10:43 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198493
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 10:40:23 +0000 (10:40 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198492
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 10:37:28 +0000 (10:37 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198491
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Wed, 1 May 2013 10:33:57 +0000 (10:33 +0000)]
[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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198490
138bc75d-0d04-0410-961f-
82ee72b054a4
gretay [Wed, 1 May 2013 10:25:28 +0000 (10:25 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198489
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Wed, 1 May 2013 09:21:30 +0000 (09:21 +0000)]
/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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198487
138bc75d-0d04-0410-961f-
82ee72b054a4
tkoenig [Wed, 1 May 2013 08:28:57 +0000 (08:28 +0000)]
2013-05-01 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes.c (optimize_power): Fix typo
in comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198486
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Wed, 1 May 2013 00:16:23 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198484
138bc75d-0d04-0410-961f-
82ee72b054a4
tkoenig [Tue, 30 Apr 2013 21:45:13 +0000 (21:45 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198476
138bc75d-0d04-0410-961f-
82ee72b054a4
brooks [Tue, 30 Apr 2013 18:31:46 +0000 (18:31 +0000)]
* MAINTAINERS: Update my email; move myself from Fortran
reviewer to Write After Approval.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198469
138bc75d-0d04-0410-961f-
82ee72b054a4
gretay [Tue, 30 Apr 2013 17:08:25 +0000 (17:08 +0000)]
2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/thumb2.md (thumb2_incscc, thumb2_decscc): Delete.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198465
138bc75d-0d04-0410-961f-
82ee72b054a4
gretay [Tue, 30 Apr 2013 16:50:12 +0000 (16:50 +0000)]
Committed as obvious.
2013-04-30 Greta Yorsh <Greta.Yorsh@arm.com>
* config/arm/thumb2.md: Remove trailing whitespaces.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198464
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Tue, 30 Apr 2013 16:15:55 +0000 (16:15 +0000)]
gcc/
* explow.c (plus_constant): Pass "mode" to immed_double_int_const.
Use gen_int_mode rather than GEN_INT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198462
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Tue, 30 Apr 2013 15:53:58 +0000 (15:53 +0000)]
Fix a typo in ChangeLog
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198458
138bc75d-0d04-0410-961f-
82ee72b054a4
hjl [Tue, 30 Apr 2013 15:53:03 +0000 (15:53 +0000)]
Remove the trayed debug_gimple_stmt
* value-prof.c (stream_in_histogram_value): Remove the trayed
debug_gimple_stmt.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198457
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 30 Apr 2013 15:03:58 +0000 (15:03 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198456
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 30 Apr 2013 13:54:14 +0000 (13:54 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198454
138bc75d-0d04-0410-961f-
82ee72b054a4
abel [Tue, 30 Apr 2013 10:55:52 +0000 (10:55 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198449
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Tue, 30 Apr 2013 08:52:39 +0000 (08:52 +0000)]
PR tree-optimization/57104
* tsan.c (instrument_expr): Don't instrument accesses to
DECL_HARD_REGISTER VAR_DECLs.
* gcc.dg/pr57104.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198445
138bc75d-0d04-0410-961f-
82ee72b054a4
sofiane [Tue, 30 Apr 2013 08:35:17 +0000 (08:35 +0000)]
config-list.mk (LIST): Add aarch64-elf and aarch64-linux-gnu.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198443
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Tue, 30 Apr 2013 08:14:09 +0000 (08:14 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198441
138bc75d-0d04-0410-961f-
82ee72b054a4
vapier [Tue, 30 Apr 2013 04:07:23 +0000 (04:07 +0000)]
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>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198438
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 30 Apr 2013 00:16:40 +0000 (00:16 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198437
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Mon, 29 Apr 2013 20:16:48 +0000 (20:16 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198433
138bc75d-0d04-0410-961f-
82ee72b054a4
vmakarov [Mon, 29 Apr 2013 19:42:20 +0000 (19:42 +0000)]
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198432
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Mon, 29 Apr 2013 18:20:58 +0000 (18:20 +0000)]
PR target/57098
* config/i386/i386.c (ix86_expand_vec_perm): Validize constant memory.
testsuite/ChangeLog:
PR target/57098
* gcc.target/i386/pr57098.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198430
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Mon, 29 Apr 2013 18:05:00 +0000 (18:05 +0000)]
2013-04-28 Tobias Burnus <burnus@net-b.de>
PR fortran/57114
* intrinsic.texi (RANK): Correct syntax description and
expected result.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198429
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Mon, 29 Apr 2013 16:23:50 +0000 (16:23 +0000)]
* gcc.c-torture/execute/pr55875.c
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198426
138bc75d-0d04-0410-961f-
82ee72b054a4
ibolton [Mon, 29 Apr 2013 16:13:16 +0000 (16:13 +0000)]
[AArch64] Support LDR/STR from/to S and D registers
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198425
138bc75d-0d04-0410-961f-
82ee72b054a4
ibolton [Mon, 29 Apr 2013 15:59:19 +0000 (15:59 +0000)]
Enable REE pass by default for AArch64 at O2 or higher
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198424
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 29 Apr 2013 15:06:18 +0000 (15:06 +0000)]
2013-04-29 Richard Biener <rguenther@suse.de>
PR middle-end/57075
* tree-inline.c (copy_edges_for_bb): Still split the bbs,
even if not adding abnormal edges for calls that can make
abnormal gotos.
* gcc.dg/torture/pr57075.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198423
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 29 Apr 2013 14:12:54 +0000 (14:12 +0000)]
2013-04-29 Richard Biener <rguenther@suse.de>
PR middle-end/57103
* tree-cfg.c (move_stmt_op): Fix condition under which to update
TREE_BLOCK.
(move_stmt_r): Remove redundant checking.
* gcc.dg/autopar/pr57103.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198418
138bc75d-0d04-0410-961f-
82ee72b054a4
jsm28 [Mon, 29 Apr 2013 13:28:44 +0000 (13:28 +0000)]
c-family:
2013-04-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* c-common.c (check_user_alignment): Emit error for negative values.
testsuite:
2013-04-03 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/c1x-align-3.c: Add test for negative power of 2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198417
138bc75d-0d04-0410-961f-
82ee72b054a4
tejohnson [Mon, 29 Apr 2013 13:22:46 +0000 (13:22 +0000)]
This patch fixes PR bootstrap/57077. Certain new uses of apply_probability
are actually scaling the counts up, and the scale factor should not
be treated as a probability as the value may exceed REG_BR_PROB_BASE.
One example (from the PR) is when scaling counts up in LTO when merging
profiles. Another example I found when preparing the patch to use
the rounding divide in more places is when inlining COMDAT functions.
Add new helper function apply_scale that does the scaling without
the probability range check. I audited the new uses of apply_probability
and changed the calls as appropriate.
2013-04-29 Teresa Johnson <tejohnson@google.com>
PR bootstrap/57077
* basic-block.h (apply_scale): New function.
(apply_probability): Use apply_scale.
* gimple-streamer-in.c (input_bb): Ditto.
* lto-streamer-in.c (input_cfg): Ditto.
* lto-cgraph.c (merge_profile_summaries): Ditto.
* tree-optimize.c (execute_fixup_cfg): Ditto.
* tree-inline.c (copy_bb): Update comment to use
apply_scale.
(copy_edges_for_bb): Ditto.
(copy_cfg_body): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198416
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Mon, 29 Apr 2013 13:08:24 +0000 (13:08 +0000)]
Preserve loops in tail-merge
2013-04-29 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c (find_same_succ_bb): Skip loop latch bbs.
(replace_block_by): Don't set LOOPS_NEED_FIXUP.
(tail_merge_optimize): Handle current_loops == NULL.
* gcc.dg/pr50763.c: Update test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198414
138bc75d-0d04-0410-961f-
82ee72b054a4
law [Mon, 29 Apr 2013 12:52:17 +0000 (12:52 +0000)]
* tree-vrp.c (range_fits_type_p): Move to earlier point in file.
(simplify_cond_using_ranges): Generalize code to simplify
COND_EXPRs where one argument is a constant and the other
is an SSA_NAME created by an integral type conversion.
* gcc.dg/tree-ssa/vrp88.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198413
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Mon, 29 Apr 2013 12:39:38 +0000 (12:39 +0000)]
2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/arm.md (store_minmaxsi): Use only when
optimize_insn_for_size_p.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198412
138bc75d-0d04-0410-961f-
82ee72b054a4
chrbr [Mon, 29 Apr 2013 12:12:55 +0000 (12:12 +0000)]
2013-04-29 Christian Bruel <christian.bruel@st.com>
PR target/57108
* sh.md (tstsi_t_zero_extract_eq): Set mode for operand 0.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198411
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 29 Apr 2013 11:31:33 +0000 (11:31 +0000)]
2013-04-29 Richard Biener <rguenther@suse.de>
PR middle-end/57089
* omp-low.c (expand_omp_taskreg): If the parent function had
a broken loop tree make sure to schedule a fixup for the child
as well.
(expand_omp_for_generic): Properly add loops.
(expand_omp_for_static_nochunk): Likewise.
(expand_omp_for_static_chunk): Likewise.
(expand_omp_for): For the degenerate case fixup loops.
(expand_omp_sections): Fix default bb placement in loops.
(expand_omp_atomic_pipeline): Properly add loops.
* gfortran.dg/gomp/pr57089.f90: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198409
138bc75d-0d04-0410-961f-
82ee72b054a4
ktkachov [Mon, 29 Apr 2013 11:27:30 +0000 (11:27 +0000)]
2013-04-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* predict.c: Fix typo in comment above #define PROB_VERY_UNLIKELY.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198408
138bc75d-0d04-0410-961f-
82ee72b054a4
vries [Mon, 29 Apr 2013 11:14:26 +0000 (11:14 +0000)]
Update tail-merge header comment.
2013-04-29 Tom de Vries <tom@codesourcery.com>
* tree-ssa-tail-merge.c: Update header comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198407
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 11:11:11 +0000 (11:11 +0000)]
[AArch64][Testsuite] Enable vect_uintfloat_cvt for AArch64.
gcc/testsuite/
* lib/target-supports.exp (vect_uintfloat_cvt): Enable for AArch64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198406
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 11:08:30 +0000 (11:08 +0000)]
[AArch64] fcvt instructions - arm_neon.h changes.
gcc/
* config/aarch64/arm_neon.h
(vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
(vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
(vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
(vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
(vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
gcc/testsuite/
* gcc.target/aarch64/vect-vcvt.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198404
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 11:04:56 +0000 (11:04 +0000)]
[AArch64] Add vector fix, fixuns, fix_trunc, fixuns_trunc standard patterns
gcc/
* config/aarch64/aarch64-simd.md
(<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
(<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
fix_trunc, fixuns_trunc.
(ftrunc<VDQF:mode>2): New.
* config/aarch64/iterators.md (optab): Add fix, fixuns.
(fix_trunc_optab): New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198403
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 11:02:15 +0000 (11:02 +0000)]
[AArch64] Vectorize over more math.h functions.
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Vectorize over ifloorf,
iceilf, lround, iroundf.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198402
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Mon, 29 Apr 2013 11:00:10 +0000 (11:00 +0000)]
PR target/54349
* config/i386/i386.h (enum ix86_tune_indices)
<X86_TUNE_INTER_UNIT_MOVES_TO_VEC, X86_TUNE_INTER_UNIT_MOVES_FROM_VEC>:
New, split from X86_TUNE_INTER_UNIT_MOVES.
<X86_TUNE_INTER_UNIT_MOVES>: Remove.
(TARGET_INTER_UNIT_MOVES_TO_VEC): New define.
(TARGET_INTER_UNIT_MOVES_FROM_VEC): Ditto.
(TARGET_INTER_UNIT_MOVES): Remove.
* config/i386/i386.c (initial_ix86_tune_features): Update.
Disable X86_TUNE_INTER_UNIT_MOVES_FROM_VEC for m_ATHLON_K8 only.
(ix86_expand_convert_uns_didf_sse): Use
TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
(ix86_expand_vector_init_one_nonzero): Ditto.
(ix86_expand_vector_init_interleave): Ditto.
(inline_secondary_memory_needed): Return true for moves from SSE class
registers for !TARGET_INTER_UNIT_MOVES_FROM_VEC targets and for moves
to SSE class registers for !TARGET_INTER_UNIT_MOVES_TO_VEC targets.
* config/i386/constraints.md (Yi, Ym): Depend on
TARGET_INTER_UNIT_MOVES_TO_VEC.
(Yj, Yn): New constraints.
* config/i386/i386.md (*movdi_internal): Change constraints of
operand 1 from Yi to Yj and from Ym to Yn.
(*movsi_internal): Ditto.
(*movdf_internal): Ditto.
(*movsf_internal): Ditto.
(*float<SWI48x:mode><X87MODEF:mode>2_1): Use
TARGET_INTER_UNIT_MOVES_TO_VEC instead of TARGET_INTER_UNIT_MOVES.
(*float<SWI48x:mode><X87MODEF:mode>2_1 splitters): Ditto.
(floatdi<X87MODEF:mode>2_i387_with_xmm): Ditto.
(floatdi<X87MODEF:mode>2_i387_with_xmm splitters): Ditto.
* config/i386/sse.md (movdi_to_sse): Ditto.
(sse2_stored): Change constraint of operand 1 from Yi to Yj.
Use TARGET_INTER_UNIT_MOVES_FROM_VEC instead of
TARGET_INTER_UNIT_MOVES.
(sse_storeq_rex64): Change constraint of operand 1 from Yi to Yj.
(sse_storeq_rex64 splitter): Use TARGET_INTER_UNIT_MOVES_FROM_VEC
instead of TARGET_INTER_UNIT_MOVES.
* config/i386/mmx.md (*mov<mode>_internal): Change constraint of
operand 1 from Yi to Yj and from Ym to Yn.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198401
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 10:57:59 +0000 (10:57 +0000)]
[AArch64] Implement vector float->double widening and double->float narrowing.
gcc/
* config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
(float_truncate_hi_): Likewise.
(float_extend_lo_): Likewise.
(float_truncate_lo_): Likewise.
* config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
(aarch64_float_extend_lo_v2df): Likewise.
(vec_unpacks_hi_v4sf): Likewise.
(aarch64_float_truncate_lo_v2sf): Likewise.
(aarch64_float_truncate_hi_v4sf): Likewise.
(vec_pack_trunc_v2df): Likewise.
(vec_pack_trunc_df): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198400
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 10:54:32 +0000 (10:54 +0000)]
[AArch64] Add vector int to float conversions.
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_fold_builtin): Fold float conversions.
* config/aarch64/aarch64-simd-builtins.def
(floatv2si, floatv4si, floatv2di): New.
(floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
* config/aarch64/aarch64-simd.md
(<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
* config/aarch64/iterators.md (FLOATUORS): New.
(optab): Add float, floatuns.
(su_optab): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198399
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 10:51:46 +0000 (10:51 +0000)]
[AArch64] Map fcvt intrinsics to builtin name directly.
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Use new names for
fcvt builtins.
* config/aarch64/aarch64-simd-builtins.def (fcvtzs): Split as...
(lbtruncv2sf, lbtruncv4sf, lbtruncv2df): ...This.
(fcvtzu): Split as...
(lbtruncuv2sf, lbtruncuv4sf, lbtruncuv2df): ...This.
(fcvtas): Split as...
(lroundv2sf, lroundv4sf, lroundv2df, lroundsf, lrounddf): ...This.
(fcvtau): Split as...
(lrounduv2sf, lrounduv4sf, lrounduv2df, lroundusf, lroundudf): ...This.
(fcvtps): Split as...
(lceilv2sf, lceilv4sf, lceilv2df): ...This.
(fcvtpu): Split as...
(lceiluv2sf, lceiluv4sf, lceiluv2df, lceilusf, lceiludf): ...This.
(fcvtms): Split as...
(lfloorv2sf, lfloorv4sf, lfloorv2df): ...This.
(fcvtmu): Split as...
(lflooruv2sf, lflooruv4sf, lflooruv2df, lfloorusf, lfloorudf): ...This.
(lfrintnv2sf, lfrintnv4sf, lfrintnv2df, lfrintnsf, lfrintndf): New.
(lfrintnuv2sf, lfrintnuv4sf, lfrintnuv2df): Likewise.
(lfrintnusf, lfrintnudf): Likewise.
* config/aarch64/aarch64-simd.md
(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Convert to
define_insn.
(aarch64_fcvt<frint_suffix><su><mode>): Remove.
* config/aarch64/iterators.md (FCVT): Include UNSPEC_FRINTN.
(fcvt_pattern): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198398
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 10:48:54 +0000 (10:48 +0000)]
[AArch64] Fix order of modes to lroundmn2 standard names.
gcc/
* config/aarch64/aarch64-simd.md
(l<fcvt_pattern><su_optab><fcvt_target><VDQF:mode>2): Rename to...
(l<fcvt_pattern><su_optab><VDQF:mode><fcvt_target>2): ... This.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198397
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 10:23:15 +0000 (10:23 +0000)]
[AArch64] Convert NEON frint implementations to use builtins.
gcc/
* config/aarch64/arm_neon.h (vrndq<a,m,n,p>_f<32, 64>): Rename to...
(vrnd<a,m,n,p>q_f<32, 64>): ...This, implement using builtin.
(vrnd<a,m,n,p>_f32): Implement using builtins.
(vrnd<i,x><q>_f<32, 64>): New.
gcc/testsuite/
* gcc.target/aarch64/vect-vrnd.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198396
138bc75d-0d04-0410-961f-
82ee72b054a4
jgreenhalgh [Mon, 29 Apr 2013 10:17:51 +0000 (10:17 +0000)]
[AArch64] Map frint intrinsics to standard pattern names directly.
gcc/
* config/aarch64/aarch64-builtins.c
(aarch64_builtin_vectorized_function): Fold to standard pattern names.
* config/aarch64/aarch64-simd-builtins.def (frintn): New.
(frintz): Rename to...
(btrunc): ...this.
(frintp): Rename to...
(ceil): ...this.
(frintm): Rename to...
(floor): ...this.
(frinti): Rename to...
(nearbyint): ...this.
(frintx): Rename to...
(rint): ...this.
(frinta): Rename to...
(round): ...this.
* config/aarch64/aarch64-simd.md
(aarch64_frint<frint_suffix><mode>): Delete.
(<frint_pattern><mode>2): Convert to insn.
* config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
* config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
(frint_pattern): Likewise.
(frint_suffix): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198394
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 29 Apr 2013 09:09:08 +0000 (09:09 +0000)]
2013-04-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/57081
* loop-init.c: Include tree-flow.h.
(loop_optimizer_finalize): Free number of iteration estimates.
* Makefile.in (loop-init.o): Add $(TREE_FLOW_H) dependency.
* gcc.dg/torture/pr57081.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198392
138bc75d-0d04-0410-961f-
82ee72b054a4
jb [Mon, 29 Apr 2013 08:43:18 +0000 (08:43 +0000)]
Simplify SYSTEM_CLOCK implementation.
2013-04-29 Janne Blomqvist <jb@gcc.gnu.org>
* intrinsics/system_clock (gf_gettime_mono): Use variable
resolution for fractional seconds argument.
(system_clock_4): Simplify, update for gf_gettime_mono change.
(system_clock_8): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198391
138bc75d-0d04-0410-961f-
82ee72b054a4
jb [Mon, 29 Apr 2013 08:42:00 +0000 (08:42 +0000)]
PR 56981 Improve unbuffered performance on special files.
2013-04-29 Janne Blomqvist <jb@gcc.gnu.org>
PR fortran/56981
* io/transfer.c (next_record_w_unf): First fix head marker, then
write tail.
(next_record): Call flush_if_unbuffered.
* io/unix.c (struct unix_stream): Add field unbuffered.
(flush_if_unbuffered): New function.
(fd_to_stream): New argument.
(open_external): Fix fd_to_stream call.
(input_stream): Likewise.
(output_stream): Likewise.
(error_stream): Likewise.
* io/unix.h (flush_if_unbuffered): New prototype.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@198390
138bc75d-0d04-0410-961f-
82ee72b054a4