aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-05-07configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation for powerpc64 ↵Anton Blanchard3-0/+12
little endian. * configure.ac (HAVE_LD_LARGE_TOC): Use correct linker emulation for powerpc64 little endian. * configure: Regenerate. From-SVN: r198662
2013-05-07Daily bump.GCC Administrator1-1/+1
From-SVN: r198661
2013-05-06expmed.c (init_expmed_rtl): Remove unused fields reg_fld...Graham Stott2-15/+22
2013-05-06 Graham Stott <grahams@btinternet.com> * expmed.c (init_expmed_rtl): Remove unused fields reg_fld, plus_fld, mult_fld, sdiv_fld1, udiv_fld1, sdiv_32_fld1, smod_32_fld1, wide_mult_fld1, wide_lshr_fld1, shift_fld1, shift_mult_fld1, shift_add_fld1, shift_sub0_fld1, shift_sub1_fld1. From-SVN: r198654
2013-05-06013-05-06 Graham Stott <grahams@btinternet.com>Graham Stott2-1/+7
* gensupport.c (add_predicate_code): Also exclude SCRATCH from rtx codes which allow non-lvalues. From-SVN: r198653
2013-05-06tree.c (integer_all_onesp): Test that both components are all 1s.Marc Glisse4-3/+31
2013-05-06 Marc Glisse <marc.glisse@inria.fr> * tree.c (integer_all_onesp) <COMPLEX_CST>: Test that both components are all 1s. (integer_minus_onep): New function. * tree.h (integer_minus_onep): Declare it. * fold-const.c (fold_binary_loc) <MULT_EXPR>: Test integer_minus_onep instead of integer_all_onesp. From-SVN: r198649
2013-05-06typeck.c (cp_build_binary_op): Call save_expr before build_vector_from_val.Marc Glisse4-0/+25
2013-05-06 Marc Glisse <marc.glisse@inria.fr> gcc/cp/ * typeck.c (cp_build_binary_op): Call save_expr before build_vector_from_val. gcc/testsuite/ * c-c++-common/vector-scalar-2.c: New testcase. From-SVN: r198648
2013-05-06re PR target/52933 (SH Target: Use div0s for integer sign comparisons)Oleg Endo2-0/+50
PR target/52933 * config/sh/sh.md (*cmp_div0s_0, *cmp_div0s_1, *movsicc_div0s): Add variations of these patterns. From-SVN: r198646
2013-05-06i386.md (isa): Add x64_sse4 member.Uros Bizjak3-86/+117
* config/i386/i386.md (isa): Add x64_sse4 member. (enabled): Handle x64_sse4. (*movdi_internal): Add *x->?r alternative to emit pextrq $0,%xmm,%reg instruction for 64bit SSE4_1 targets. Update insn attributes. (*movsi_internal): Add *x->?r alternative to emit pextrd $0,%xmm,%reg instruction for SSE4_1 targets. Update insn attributes. * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge with *sse4_1_pextrd and *sse4_1_pextrq having const_0 selector. (*vec_extractv2di_1): Merge with *sse4_1_pextrq having const_1 selector. (*vec_extractv4si): Rename from *sse4_1_pextrd. (*vec_extractv4si_zext): Rename from *sse4_1_pextrd_zext. (*vec_extract<ssevecmodelower>_0 splitters): Merge splitters together. From-SVN: r198643
2013-05-06re PR target/57108 ([4.7/4.8/4.9] SH internal compiler error: in ↵Oleg Endo2-2/+7
int_mode_for_mode, at stor-layout.c:395) PR target/57108 * config/sh/sh.md (tstsi_t_zero_extract_eq): Use QIHISIDI mode iterator. From-SVN: r198642
2013-05-06Support {, } and | in assembly outputMaxim Kuznetsov6-8/+66
gcc/ 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com> * final.c (do_assembler_dialects): Don't handle curly braces and vertical bar escaped by % as dialect delimiters. (output_asm_insn): Print curly braces and vertical bar if escaped by % and ASSEMBLER_DIALECT defined. * doc/tm.texi.in (ASSEMBLER_DIALECT): Document new standard escapes. * doc/tm.texi: Regenerated. gcc/testsuite/ 2013-05-06 Maxim Kuznetsov <maks.kuznetsov@gmail.com> * gcc.target/i386/asm-dialect-2.c: New testcase. From-SVN: r198641
2013-05-06mips.c: Include tree-pass.h.Steven Bosscher5-11/+57
* config/mips/mips.c: Include tree-pass.h. (mips_reorg): Split in pre- and post-dbr_schedule parts. (mips_machine_reorg2): Move mips_reorg post-dbr_schedule parts here. (pass_mips_machine_reorg2): New machine specific pass. (insert_pass_mips_machine_reorg2): New pass plugin definition. (mips_option_override): Register the new pass. * rtl.h (cleanup_barriers): Remove prototype. (dbr_schedule): Likewise. * jump.c (cleanup_barriers): Make static. * reorg.c (dbr_schedule): Likewise. From-SVN: r198640
2013-05-06re PR c++/57183 ([C++11] auto and -Wunused-variable)Paolo Carlini4-0/+20
/cp 2013-05-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57183 * decl.c (cp_finish_decl): After do_auto_deduction copy the qualifers with cp_apply_type_quals_to_decl. /testsuite 2013-05-06 Paolo Carlini <paolo.carlini@oracle.com> PR c++/57183 * g++.dg/cpp0x/auto38.C: New. From-SVN: r198636
2013-05-06ChangeLog: Add my last entry.Uros Bizjak2-0/+11
* ChangeLog: Add my last entry. * testsuite/ChangLog: Ditto. From-SVN: r198634
2013-05-06hashtab.c (hash_pointer): Remove conditional and avoid unexecuted shift ↵David Edelsohn2-11/+10
equal to wordsize. 2013-05-06 David Edelsohn <dje.gcc@gmail.com> Peter Bergner <bergner@vnet.ibm.com> Segher Boessenkool <segher@kernel.crashing.org> Jakub Jelinek <jakub@redhat.com> * hashtab.c (hash_pointer): Remove conditional and avoid unexecuted shift equal to wordsize. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> Co-Authored-By: Peter Bergner <bergner@vnet.ibm.com> Co-Authored-By: Segher Boessenkool <segher@kernel.crashing.org> From-SVN: r198633
2013-05-06re PR libgcj/57074 (libgcj regression on 32bit Power architecture)Jakub Jelinek2-3/+20
PR libgcj/57074 * class.c (emit_symbol_table): Use array type of the right size for the_syms_decl and its DECL_INITIAL, instead of symbols_array_type. Set TREE_TYPE (the_syms_decl) to it. (emit_assertion_table): Use array type of the right size for table_decl and its DECL_INITIAL. From-SVN: r198631
2013-05-06re PR tree-optimization/57185 (ICE: Segmentation fault in ↵Richard Biener4-3/+43
add_field_for_reduction with -ftree-parallelize-loops=2 -fipa-pta) 2013-05-06 Richard Biener <rguenther@suse.de> PR tree-optimization/57185 * tree-parloops.c (add_field_for_reduction): Handle anonymous SSA names properly. * gcc.dg/autopar/pr57185.c: New testcase. From-SVN: r198630
2013-05-06re PR target/57106 (-fcompare-debug failure with -O2 -fschedule-insns ↵Uros Bizjak2-2/+18
-funroll-all-loops) PR target/57106 * config/i386/i386.c (add_parameter_dependencies): Add dependence between "first_arg" and "insn", not "last" and "insn". testsuite/ChangeLog: PR target/57106 * gcc.target/i386/pr57106.c: New test. From-SVN: r198629
2013-05-06gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable.William Schmidt10-17/+18
gcc: 2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gimple-ssa-strength-reduction.c (slsr_process_phi): Re-enable. (find_candidates_in_block): Re-enable slsr_process_phi. (create_phi_basis): Fix double counting of candidate adjustment. gcc/testsuite: 2013-05-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.dg/tree-ssa/slsr-32.c: Re-enable. * 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. From-SVN: r198627
2013-05-06re PR bootstrap/57154 (Bootstrap broken for powerpc64-unknown-linux-gnu)Teresa Johnson2-0/+48
2013-05-03 Teresa Johnson <tejohnson@google.com> PR bootstrap/57154 * gcc.dg/pr57154.c: New test. From-SVN: r198626
2013-05-06re PR middle-end/57147 (setjmp call and if body wrongly elided (function ↵Richard Biener8-9/+90
runs off early end)) 2013-05-06 Richard Biener <rguenther@suse.de> PR middle-end/57147 * tree-cfg.c (gimple_purge_dead_abnormal_call_edges): If the edge is also fallthru, preserve it and just clear the abnormal flag. * tree-cfgcleanup.c (remove_fallthru_edge): If the edge is also complex, preserve that and just clear the fallthru flag. * tree-inline.c (update_ssa_across_abnormal_edges): Also update virtual operands. * gcc.dg/torture/pr57147-1.c: New testcase. * gcc.dg/torture/pr57147-2.c: Likewise. * gcc.dg/torture/pr57147-3.c: Likewise. From-SVN: r198625
2013-05-06fp-bit.c (unpack_d, pack_d): Properly preserve and restore a NaN's payload.Thomas Schwinge3-4/+16
libgcc/ * fp-bit.c (unpack_d, pack_d): Properly preserve and restore a NaN's payload. From-SVN: r198622
2013-05-06fp-bit.h [FLOAT] (QUIET_NAN): Correct value.Thomas Schwinge2-1/+5
libgcc/ * fp-bit.h [FLOAT] (QUIET_NAN): Correct value. From-SVN: r198621
2013-05-06linux.h (DEFAULT_ASM_ENDIAN): Define.Alan Modra5-11/+26
* config/rs6000/linux.h (DEFAULT_ASM_ENDIAN): Define. (LINK_OS_LINUX_EMUL): Use ENDIAN_SELECT. * config/rs6000/linux64.h (DEFAULT_ASM_ENDIAN): Define. * config/rs6000/sysv4le.h (DEFAULT_ASM_ENDIAN): Define. (LINK_TARGET_SPEC): Use ENDIAN_SELECT. * config/rs6000/sysv4.h (DEFAULT_ASM_ENDIAN): Define as -mbig. From-SVN: r198620
2013-05-06sysv4.h (ENDIAN_SELECT): Define, extracted fromAlan Modra3-39/+51
* config/rs6000/sysv4.h (ENDIAN_SELECT): Define, extracted from (ASM_SPEC): ..here. Emit DEFAULT_ASM_ENDIAN too. (DEFAULT_ASM_ENDIAN): Define. (CC1_SPEC, LINK_TARGET_SPEC): Use ENDIAN_SELECT. * config/rs6000/linux64.h (ASM_SPEC32): Remove endian options. Update -K PIC clause from sysv4.h. (ASM_SPEC_COMMON): Use ENDIAN_SELECT. (LINK_OS_LINUX_EMUL32, LINK_OS_LINUX_EMUL64): Likewise. From-SVN: r198619
2013-05-06rs6000.md (bswapdi 2nd splitter): Don't swap words twice for little-endian.Alan Modra2-11/+29
* config/rs6000/rs6000.md (bswapdi 2nd splitter): Don't swap words twice for little-endian. (ashrdi3_no_power, ashrdi3): Support little-endian. From-SVN: r198618
2013-05-06re PR target/55303 ([SH] Add support for clips / clipu instructions)Oleg Endo9-0/+336
PR target/55303 * config/sh/sh.c (sh_rtx_costs): Handle SMIN and SMAX cases. * config/sh/sh.md (*clips, uminsi3, *clipu, clipu_one): New insns and related expanders. * config/sh/iterators.md (SMIN_SMAX): New code iterator. * config/sh/predicates.md (arith_reg_or_0_or_1_operand, clips_min_const_int, clips_max_const_int, clipu_max_const_int): New predicates. PR target/55303 * gcc.target/sh/pr55303-1.c: New. * gcc.target/sh/pr55303-2.c: New. * gcc.target/sh/pr55303-3.c: New. From-SVN: r198617
2013-05-06Daily bump.GCC Administrator1-1/+1
From-SVN: r198616
2013-05-05libcaf.h (_gfortran_caf_critical): Add a prototype.David Edelsohn2-0/+8
* caf/libcaf.h (_gfortran_caf_critical): Add a prototype. (_gfortran_caf_end_critical): Same. From-SVN: r198613
2013-05-05config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default.Steven Bosscher10-211/+93
* config.gcc (hppa*-*-*): Remove MASK_BIG_SWITCH from CPU default. * config/pa/pa.opt: Make mbig-switch a no-op. * config/pa/pa.h (TARGET_DEFAULT): Remove MASK_BIG_SWITCH. (CASE_VECTOR_MODE): Always return SImode. (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove code for the !TARGET_BIG_SWITCH case. * config/pa/pa-linux.h: Likewise. * config/pa/pa-openbsd.h: Likewise. * config/pa/pa-hpux.h: Define TARGET_DEFAULT to 0. * config/pa/pa.md (short_jump): Remove define_insn. (casesi): Remove code for the !TARGET_BIG_SWITCH case. (casesi0): Remove define_insn. (type): Remove btable_branch. (pa_combine_type): Likewise. (in_nullified_branch_delay): Likewise. (in_call_delay): Likewise. (define_delay): Likewise. (define_insn_reservation "Z3"): Likewise. (define_insn_reservation "Z4"): Likewise. * config/pa/pa.c (pa_reorg): Remove code for !TARGET_BIG_SWITCH. (pa_adjust_insn_length): Remove adjustment for btable branches. * doc/invoke.texi (HPPA Options): Delete documentation for mbig-switch and mno-big-switch Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca> From-SVN: r198612
2013-05-05sse.md (*vec_extract<ssevecmodelower>_0): Merge from sse2_stored and ↵Uros Bizjak3-84/+88
*sse2_storeq_rex64 using SWI48 mode iterator. * config/i386/sse.md (*vec_extract<ssevecmodelower>_0): Merge from sse2_stored and *sse2_storeq_rex64 using SWI48 mode iterator. Add m->r,x alternatives. (*vec_extract<ssevecmodelower>_0 splitters): Merge V2DI and V4SI splitters using SWI48x mode iterator. (*vec_extract_v2di_0_sse): Rename from *sse2_storeq. Disable for TARGET_64BIT. Add m->x alternative. (*vec_extractv4si_mem): Rename from *vec_ext_v4si_mem. Add o->x alternative. Enable for TARGET_SSE. (sse_storeq): Remove expander. (*vec_extractv2di_1): Enable for TARGET_SSE. Split alternatives with memory input operand. (*vec_extractv2di_1 splitter): New. (*vec_extractv4sf_mem): Rename from *vec_extract_v4sf_mem. * config/i386/i386.md (ssevecmodelower): New mode attribute. From-SVN: r198611
2013-05-05resolve.c (conformable_arrays): Avoid segfault when ar.start[i] == NULL.Tobias Burnus4-0/+40
2013-05-05 Tobias Burnus <burnus@net-b.de> * resolve.c (conformable_arrays): Avoid segfault when ar.start[i] == NULL. 2013-05-05 Tobias Burnus <burnus@net-b.de> * gfortran.dg/allocate_with_source_3.f90: New. From-SVN: r198610
2013-05-05re PR fortran/57141 (Cannot change attributes of USE-associated intrinsic)Tobias Burnus5-1/+29
2013-05-05 Tobias Burnus <burnus@net-b.de> PR fortran/57141 * decl.c (gfc_match_null): Permit use-associated NULL intrinsic. 2013-05-05 Tobias Burnus <burnus@net-b.de> PR fortran/57141 * gfortran.dg/null_8.f90: New. From-SVN: r198609
2013-05-05pt.c (convert_nontype_argument): Add missing whitespace in error message.Paolo Carlini2-1/+6
2013-05-05 Paolo Carlini <paolo.carlini@oracle.com> * pt.c (convert_nontype_argument): Add missing whitespace in error message. From-SVN: r198608
2013-05-05re PR c++/53745 ([C++11] Poor diagnostic for ill-formed narrowing conversion ↵Paolo Carlini5-4/+19
in enumerator initializer) /cp 2013-05-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53745 * decl.c (build_enumerator): Improve error message. /testsuite 2013-05-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53745 * g++.dg/cpp0x/enum27.C: New. * g++.dg/cpp0x/enum_base.C: Adjust. From-SVN: r198607
2013-05-05Daily bump.GCC Administrator1-1/+1
From-SVN: r198606
2013-05-04environ.c: Include unistd.h.David Edelsohn7-0/+30
* runtime/environ.c: Include unistd.h. * runtime/pause.c: Test HAVE_UNISTD_H. * runtime/stop.c: Same. * io/open.c: Same. * io/unix.c: Same. * io/read.c (si_max): Protect declaration of value. From-SVN: r198603
2013-05-04rs6000.c (INT_P): Reformat.Segher Boessenkool2-19/+23
* config/rs6000/rs6000.c (INT_P): Reformat. Delete obsolete comment. (INT_LOWPART): Delete. (extract_MB): Adjust. (extract_ME): Adjust. (print_operand): Adjust. From-SVN: r198602
2013-05-04predicates.md (reg_or_add_cint_operand, [...]): Delete ↵Segher Boessenkool4-300/+63
"HOST_BITS_PER_WIDE_INT == 32" case. * config/rs6000/predicates.md (reg_or_add_cint_operand, reg_or_sub_cint_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. (reg_or_logical_cint_operand, easy_fp_constant, logical_const_operand): Delete "CONST_DOUBLE" case. * config/rs6000/rs6000.c (num_insns_constant_wide): Delete "HOST_BITS_PER_WIDE_INT == 64" test. (num_insns_constant): Ditto. Delete CONST_DOUBLE DImode/VOIDmode case. (build_mask64_2_operands): Delete "HOST_BITS_PER_WIDE_INT >= 64" test. (rs6000_emit_set_const): Delete CONST_DOUBLE case. (rs6000_emit_set_long_const): Delete "HOST_BITS_PER_WIDE_INT >= 64" test. (includes_rldic_lshift_p, includes_rldicr_lshift_p): Delete CONST_DOUBLE DImode/VOIDmode case. (INT_P, INT_LOWPART): Delete CONST_DOUBLE case. (print_operand): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete CONST_DOUBLE VOIDmode case. (output_toc): Delete "HOST_BITS_PER_WIDE_INT == 32" case. (rs6000_rtx_costs): Delete CONST_DOUBLE DImode/VOIDmode case. * config/rs6000/rs6000.md (iordi3, xordi3, splitter for these): Delete CONST_DOUBLE case. (splitters for mov FMOVE64 const_double): Delete "HOST_BITS_PER_WIDE_INT == 32" case. Delete "HOST_BITS_PER_WIDE_INT >= 64" test. (splitter for mov DI const_int): Delete "HOST_BITS_PER_WIDE_INT == 32" case. (mov DI const_double): Delete. From-SVN: r198601
2013-05-04re PR tree-optimization/56205 (stdarg pass confused by jump threading)Jakub Jelinek2-0/+6
PR tree-optimization/56205 * gcc.dg/tree-ssa/stdarg-6.c: Add cleanup-tree-dump "stdarg". From-SVN: r198599
2013-05-04decl.c (gfc_verify_c_interop_param): Permit allocatable and pointer with ↵Tobias Burnus6-13/+68
-std=f2008ts. 2013-05-04 Tobias Burnus <burnus@net-b.de> * decl.c (gfc_verify_c_interop_param): Permit allocatable and pointer with -std=f2008ts. 2013-05-04 Tobias Burnus <burnus@net-b.de> * gfortran.dg/bind_c_array_params.f03: Update dg-error. * gfortran.dg/bind_c_usage_27.f90: New. * gfortran.dg/bind_c_usage_28.f90: New. From-SVN: r198597
2013-05-04inclhack.def (aix_null): New.David Edelsohn4-20/+142
* inclhack.def (aix_null): New. (void_null): Update replacement definition of NULL. * fixincl.x: Regenerate. * tests/base/curses.h: Update for new fix. From-SVN: r198596
2013-05-04combine.c (combine_simplify_rtx): If nonzero_bits on op shows all bits zero ↵Jakub Jelinek2-0/+16
in mode of a lowpart subreg, return zero. * combine.c (combine_simplify_rtx) <case SUBREG>: If nonzero_bits on op shows all bits zero in mode of a lowpart subreg, return zero. From-SVN: r198595
2013-05-04re PR c++/51927 ([C++0x] Cannot access non-static members in initializer)Paolo Carlini2-0/+19
2013-05-04 Paolo Carlini <paolo.carlini@oracle.com> PR c++/51927 * g++.dg/cpp0x/lambda/lambda-nsdmi4.C: New. From-SVN: r198594
2013-05-04re PR target/57150 (GCC when targeting power7 spills long double using VSX ↵Michael Meissner5-6/+61
instructions.) [gcc] 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/57150 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Use DFmode to save TFmode registers and DImode to save TImode registers for caller save operations. (HARD_REGNO_CALL_PART_CLOBBERED): TFmode and TDmode do not need to mark being partially clobbered since they only use the first double word. * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): TFmode and TDmode only use the upper 64-bits of each VSX register. [gcc/testsuite] 2013-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> PR target/57150 * gcc.target/powerpc/pr57150.c: New file. From-SVN: r198593
2013-05-04gimple-ssa-strength-reduction.c (slsr_process_phi): Disable.Bill Schmidt10-1/+31
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. From-SVN: r198592
2013-05-04coverage.c (coverage_obj_init): Move the construction of gcov constructor toGuozhi Wei2-18/+34
* coverage.c (coverage_obj_init): Move the construction of gcov constructor to (build_init_ctor): here. From-SVN: r198591
2013-05-04Daily bump.GCC Administrator1-1/+1
From-SVN: r198590
2013-05-03Remove "\\" from scan-assembler-timesDominique d'Humieres2-1/+6
2013-05-03 Dominique d'Humieres <dominiq@lps.ens.fr> p * gcc.target/i386/sse2-init-v2di-2.c: Remove "\\" from scan-assembler-times. From-SVN: r198587
2013-05-03gimple-ssa-strength-reduction.c (cand_kind): Add CAND_PHI.Bill Schmidt10-210/+1279
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. From-SVN: r198586
2013-05-03AArch64 test cases for TST instructionIan Bolton3-0/+311
From-SVN: r198585