- 02 May, 2016 2 commits
-
-
gcc/ PR target/52898 * config/sh/sh.c (sh_option_override): Remove TARGET_CBRANCHDI4, TARGET_CMPEQDI_T. (prepare_cbranch_operands): Don't use scratch register. Assume that function is used when pseudos can be created. (expand_cbranchdi4): Likewise. Remove unused TARGET_CMPEQDI_T paths. * config/sh/sh.md (cbranchsi4): Allow only when pseudos can be created. (cbranchdi4, cbranchdi4_i): Simplify to single cbranchdi4 define_expand. Allow it only when pseudos can be created. * config/sh/sh.opt (mcbranchdi, mcmpeqdi): Delete. From-SVN: r235698
Oleg Endo committed -
From-SVN: r235697
GCC Administrator committed
-
- 01 May, 2016 8 commits
-
-
* config/i386/constraints.md (BC): Only allow -1 operands. * config/i386/sse.md (mov<mode>_internal): Add (v,C) alternative. Add "enabled" attribute. Update XI mode attribute calculation. * config/i386/i386.md (*movxi_internal_avx512f): Add (v,C) alternative. (*movoi_internal_avx): Update XI mode attribute calculation. (*movti_internal): Ditto. testsuite/ChangeLog: * gcc.target/i386/avx256-unaligned-load-1.c: Update scan strings. * gcc.target/i386/avx256-unaligned-store-1.c: Ditto. * gcc.target/i386/avx256-unaligned-store-2.c: Ditto. * gcc.target/i386/avx256-unaligned-store-3.c: Ditto. * gcc.target/i386/avx256-unaligned-store-4.c: Ditto. From-SVN: r235693
Uros Bizjak committed -
PR bootstrap/70704 * configure.ac (--enable-stage1-checking): Add missing --enable-checking=. * configure: Regenerated. From-SVN: r235692
Jakub Jelinek committed -
gcc/ * config/sh/sh.md (push, pop, ic_invalidate_line, cstoresi4, cstoredi4, cstoresf4, cstoredf4, fix_truncsfsi2): Remove constraints. From-SVN: r235691
Oleg Endo committed -
* config/rs6000/rs6000.c (altivec_expand_lv_builtin): Do not use switch statement on instruction code. Remove trailing spaces. (altivec_expand_stv_builtin): Likewise. From-SVN: r235690
Eric Botcazou committed -
gcc/ * config/sh/sh.h (TARGET_SH4): Remove and use default implementation. (TARGET_FPU_DOUBLE): Simplify. (BASE_ARG_REG, DOUBLE_TYPE_SIZE, OPTIMIZE_MODE_SWITCHING): Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'. * config/sh/sh.c: Replace 'TARGET_SH4 || TARGET_SH2A_DOUBLE' conditions with 'TARGET_FPU_DOUBLE'. * config/sh/sh.md: Likewise. From-SVN: r235689
Oleg Endo committed -
gcc/ * config/sh/linux.h (SH_DIV_STRATEGY_DEFAULT, SH_DIV_STR_FOR_SIZE): Remove. * config/sh/netbsd-elf.h (SH_DIV_STRATEGY_DEFAULT, SH_DIV_STR_FOR_SIZE): Remove. From-SVN: r235688
Yoshinori Sato committed -
gcc/ * config/sh/predicates.md (any_register_operand, zero_extend_operand, logical_reg_operand): Delete. (arith_operand, arith_reg_dest, arith_or_int_operand, cmpsi_operand, arith_reg_or_0_operand, arith_reg_or_0_or_1_operand, logical_operand, logical_and_operand, movsrc_no_disp_mem_operand): Rewrite using match_operand and match_test. (sh_const_vec, sh_1el_vec): Remove redundant checks. Declare local variables on their first use. Return bool values. * config/sh/sh.h (LOAD_EXTEND_OP): Update comment. * config/sh/sh.md (andsi3, iorsi3): Use arith_reg_dest for result and arith_reg_operand for input operand. Remove empty constraints. (xorsi3): Delete. (*xorsi3_compact): Rename to xorsi3. (zero_extend<mode>si2): Use arith_reg_operand for input operand. (*zero_extend<mode>si2_disp_mem): Update comment. (mov_nop): Delete. From-SVN: r235687
Oleg Endo committed -
From-SVN: r235686
GCC Administrator committed
-
- 30 Apr, 2016 17 commits
-
-
From-SVN: r235681
Joseph Myers committed -
From-SVN: r235679
Joseph Myers committed -
ada/ * gcc-interface/Make-lang.in (ACATSCMD): New variable. (check-acats): Use it. (check_acats_targets): Likewise. testsuite/ * ada/acats/run_acats: Rename into... * ada/acats/run_acats.sh: ...this. Only export BASE variable. * ada/acats/run_all.sh: Remove redundant test. (target_run): Move around. (target_gnatchop): Use newly built executable. (target_gnatmake): Likewise. Check that the compilation of impbit succeeds. From-SVN: r235678
Eric Botcazou committed -
/ * config.guess: Revert r235676. * config.sub: Revert r235676. libjava/ * classpath/config.guess: Revert r235676. * classpath/config.sub: Revert r235676. From-SVN: r235677
Oleg Endo committed -
/ * config.guess: Remove SH5 support. * config.sub: Likewise. * configure: Likewise. * configure.ac: Likewise. config/ * picflag.m4: Remove SH5 support. gcc/ * config/sh/t-sh: Remove SH5 support. * config.gcc: Likewise. * configure: Likewise. contrib/ * compare-all-tests: Remove SH5 support. * config-list.mk: Likewise. libada/ * configure: Remove SH5 support. libgcc/ * config.host: Remove SH5 support. * configure: Likewise. libiberty/ * configure: Remove SH5 support. libjava/ * classpath/config.guess: Remove SH5 support. * classpath/config.sub: Likewise. From-SVN: r235676
Oleg Endo committed -
* config/darwin.h (LINK_COMMAND_SPEC_A): Handle -fcilkplus. From-SVN: r235675
Rainer Orth committed -
gcc/ * config/sh/sh.c (register_sh_passes, sh_option_override, sh_print_operand, prepare_move_operands, sh_can_follow_jump): Remove TARGET_SH1 checks. * config/sh/sh.h (TARGET_VARARGS_PRETEND_ARGS, VALID_REGISTER_P, PROMOTE_MODE): Likewise. * config/sh/sh.md (adddi3, addsi3, subdi3, subsi3, andsi3, movdi): Likewise. From-SVN: r235674
Oleg Endo committed -
testsuite/ * g++.old-deja/g++.jason/thunk3.C: Remove SH5 checks. * gcc.dg/20021029-1.c: Likewise. * gcc.target/sh/attr-isr-trap_exit.c: Likewise. * gcc.target/sh/attr-isr-trapa.c: Likewise. * gcc.target/sh/cmpstr.c: Likewise. * gcc.target/sh/cmpstrn.c: Likewise. * gcc.target/sh/memset.c: Likewise. * gcc.target/sh/pr21255-2-mb.c: Likewise. * gcc.target/sh/pr21255-2-ml.c: Likewise. * gcc.target/sh/pr39423-1.c: Likewise. * gcc.target/sh/pr49468-di.c: Likewise. * gcc.target/sh/pr49468-si.c: Likewise. * gcc.target/sh/pr49880-1.c: Likewise. * gcc.target/sh/pr49880-2.c: Likewise. * gcc.target/sh/pr49880-3.c: Likewise. * gcc.target/sh/pr50751-1.c: Likewise. * gcc.target/sh/pr50751-4.c: Likewise. * gcc.target/sh/pr50751-7.c: Likewise. * gcc.target/sh/pr51244-1.c: Likewise. * gcc.target/sh/pr51244-10.c: Likewise. * gcc.target/sh/pr51244-11.c: Likewise. * gcc.target/sh/pr51244-12.c: Likewise. * gcc.target/sh/pr51244-13.c: Likewise. * gcc.target/sh/pr51244-14.c: Likewise. * gcc.target/sh/pr51244-17.c: Likewise. * gcc.target/sh/pr51244-18.c: Likewise. * gcc.target/sh/pr51244-19.c: Likewise. * gcc.target/sh/pr51244-4.c: Likewise. * gcc.target/sh/pr51244-5.c: Likewise. * gcc.target/sh/pr51244-7.c: Likewise. * gcc.target/sh/pr51244-8.c: Likewise. * gcc.target/sh/pr51244-9.c: Likewise. * gcc.target/sh/pr51697.c: Likewise. * gcc.target/sh/pr52483-1.c: Likewise. * gcc.target/sh/pr52483-2.c: Likewise. * gcc.target/sh/pr52483-3.c: Likewise. * gcc.target/sh/pr52483-5.c: Likewise. * gcc.target/sh/pr52933-1.c: Likewise. * gcc.target/sh/pr52933-2.c: Likewise. * gcc.target/sh/pr52933-3.c: Likewise. * gcc.target/sh/pr53568-1.c: Likewise. * gcc.target/sh/pr53976-1.c: Likewise. * gcc.target/sh/pr53988-1.c: Likewise. * gcc.target/sh/pr53988.c: Likewise. * gcc.target/sh/pr54089-1.c: Likewise. * gcc.target/sh/pr54089-6.c: Likewise. * gcc.target/sh/pr54089-7.c: Likewise. * gcc.target/sh/pr54089-8.c: Likewise. * gcc.target/sh/pr54089-9.c: Likewise. * gcc.target/sh/pr54236-1.c: Likewise. * gcc.target/sh/pr54236-2.c: Likewise. * gcc.target/sh/pr54236-3.c: Likewise. * gcc.target/sh/pr54236-4.c: Likewise. * gcc.target/sh/pr54386.c: Likewise. * gcc.target/sh/pr54602-1.c: Likewise. * gcc.target/sh/pr54685.c: Likewise. * gcc.target/sh/pr54760-1.c: Likewise. * gcc.target/sh/pr54760-2.c: Likewise. * gcc.target/sh/pr54760-3.c: Likewise. * gcc.target/sh/pr54760-4.c: Likewise. * gcc.target/sh/pr54760-5.c: Likewise. * gcc.target/sh/pr54760-6.c: Likewise. * gcc.target/sh/pr55146.c: Likewise. * gcc.target/sh/pr55160.c: Likewise. * gcc.target/sh/pr59278.c: Likewise. * gcc.target/sh/pr59401-1.c: Likewise. * gcc.target/sh/pr59533-1.c: Likewise. * gcc.target/sh/pr63260.c: Likewise. * gcc.target/sh/pragma-isr-trap-exit.c: Likewise. * gcc.target/sh/pragma-isr-trapa.c: Likewise. * gcc.target/sh/strlen.c: Likewise. * gcc.target/sh/torture/pr30807.c: Likewise. * gcc.target/sh/torture/pr34777.c: Likewise. * gcc.target/sh/torture/pr64652.c: Likewise. * gcc.target/sh/torture/pr65505.c: Likewise. * gcc.target/sh/torture/pragma-isr.c: Likewise. * gcc.target/sh/torture/pragma-isr2.c: Likewise. From-SVN: r235673
Oleg Endo committed -
As I noted a long time ago in the comment on fixed_reg_p, the real problem with saving fixed/global regs is that exception frame unwinding might restore them. So don't emit eh_frame info for any such reg, and the unwinder won't restore them. Also, tidy rs6000_savres_strategy. Delaying some checks means we won't iterate over regs quite so often. * config/rs6000/rs6000.c (rs6000_savres_strategy): Force inline restoring when fixed_reg_p, but allow out-of-line or stmw save. Check for user regs later to avoid unnecessary looping over regs. Merge user reg check with non-saved reg check. Don't force inline VR restore when static chain used. (rs6000_frame_related): Omit eh_frame info for user regs when saving. (fixed_regs_p): Delete. From-SVN: r235672
Alan Modra committed -
No functional change here. A single bit becomes two bits, which always have the same value at the moment. * config/rs6000/rs6000.c (SAVRES_MULTIPLE): Replace with.. (SAVE_STRATEGY, REST_STRATEGY): ..this. Renumber and sort enum. Update all uses. From-SVN: r235671
Alan Modra committed -
Treat -ffixed-reg as we do for global asm regs. PR target/69645 * config/rs6000/rs6000.c (fixed_reg_p): New function. (fixed_regs_p): Rename from global_regs_p. Call fixed_reg_p. Update all uses. From-SVN: r235670
Alan Modra committed -
This makes the conditions look the same as other places that deal with RS6000_PIC_OFFSET_TABLE_REGNUM, eg. first_reg_to_save. No functional changes. * config/rs6000/rs6000.c (rs6000_conditional_register_usage): Remove redundant PIC_OFFSET_TABLE_REGNUM test. Replace with flag_pic test for Darwin. From-SVN: r235669
Alan Modra committed -
From-SVN: r235668
GCC Administrator committed -
* regs.h (struct reg_info_t): Delete freq_calls_crossed and throw_calls_crossed. (REG_FREQ_CALLS_CROSSED): Delete. (REG_N_THROWING_CALLS_CROSSED): Delete. * regstat.c (regstat_bb_compute_ri): Don't calculate REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED. (dump_reg_info): Don't print call cross frequency. * ira.c (combine_and_move_insns): Don't set REG_FREQ_CALLS_CROSSED and REG_N_THROWING_CALLS_CROSSED. From-SVN: r235664
Alan Modra committed -
* regs.h (struct reg_info_t): Delete live_length. (REG_LIVE_LENGTH): Delete macro. * regstat.c (regstat_bb_compute_ri): Delete artificial_uses, local_live, local_processed and local_live_last_luid params. Replace bb_index param with bb. Don't set REG_LIVE_LENGTH. Formatting fixes. (regstat_compute_ri): Adjust for above. Don't set REG_LIVE_LENGTH. (dump_reg_info): Don't print live length. * ira.c (update_equiv_regs): Replace test of REG_LIVE_LENGTH with test of setjmp_crosses. Don't set REG_LIVE_LENGTH. Localize loop_depth var. From-SVN: r235663
Alan Modra committed -
/cp 2016-04-29 Paolo Carlini <paolo.carlini@oracle.com> PR c++/66644 * class.c (check_field_decl): Remove final int* parameter, change the return type to bool; fix logic in order not to reject multiple initialized fields in anonymous struct. (check_field_decls): Adjust call. /testsuite 2016-04-29 Paolo Carlini <paolo.carlini@oracle.com> PR c++/66644 * g++.dg/cpp0x/nsdmi-anon-struct1.C: New. From-SVN: r235662
Paolo Carlini committed -
This function is used to validate REG_EQUIV notes generated by ira, and to validate potential insn combines performed by ira. The two conditions are not exactly the same, with reload being more restrictive. Separate them so more combines/moves can occur. For example, this sequence from cfgexpand.c:expand_gimple_cond callq _Z18update_bb_for_insnP15basic_block_def mov 0x10(%rbx),%rdi mov 0x0(%rip),%rbp # x_rtl+0x34 callq _Z9safe_as_aIP8rtx_insn7rtx_defET_PT0_ mov %r13,%rdx mov %rbp,%rsi mov %rax,%rdi callq _Z18create_basic_blockP7rtx_defS0_P15basic_block_def becomes callq _Z18update_bb_for_insnP15basic_block_def mov 0x10(%rbx),%rdi callq _Z9safe_as_aIP8rtx_insn7rtx_defET_PT0_ mov 0x0(%rip),%rsi # x_rtl+0x34 mov %r13,%rdx mov %rax,%rdi callq _Z18create_basic_blockP7rtx_defS0_P15basic_block_def * ira.c (enum valid_equiv): New. (validate_equiv_mem): Return enum. (update_equiv_mem): Create replacement in more cases. (add_store_equivs): Update validate_equiv_mem call. From-SVN: r235661
Alan Modra committed
-
- 29 Apr, 2016 13 commits
-
-
This patch actually improves generated code, because REG_DEAD notes used by the old insn scan are not always present. On x86_64, see gcc/wide-int-print.o:print_hex for an example of a function that is smaller and uses one less callee saved reg. * ira.c (combine_and_move_insns): Rather than scanning insns, use DF infrastucture to find use and def insns. From-SVN: r235660
Alan Modra committed -
Notes added by add_store_equivs are not used directly or indirectly by combine_and_move_insns. add_store_equivs can therefore run later without affecting the output of combine_and_move_insns, and thus add_store_equivs need not take into account potentially moved insns. Since not all potentially combined/moved insns are in fact combined or moved, this may allow add_store_equivs to add more REG_EQUIV notes. grow_reg_equivs isn't needed until the reload reg_equivs array is changed. ira.c (combine_and_move_insns): Move invariant conditions.. (ira.c): ..to here. Call combine_and_move_insns before add_store_equivs. Call grow_reg_equivs later. Allocate req_equiv later using max_reg_num() rather than global max_regno. (contains_replace_regs): Delete. (add_store_equivs): Remove contains_replace_regs test. From-SVN: r235659
Alan Modra committed -
* ira.c (struct equiv_mem_data): New. (equiv_mem, equiv_mem_modified): Delete static vars. (validate_equiv_mem_from_store): Use "data" param to communicate.. (validate_equiv_mem): ..from here. From-SVN: r235658
Alan Modra committed -
* ira.c (add_store_equivs, combine_and_move_insns): New functions, split out from.. (update_reg_equivs): ..here. Move allocation and freeing of reg_equiv, and calls to grow_reg_equivs, init_alias_analysis, end_alias_analysis to.. (ira): ..here. From-SVN: r235657
Alan Modra committed -
Where pdx_subregs[regno] is used, reg_equiv[regno] is also used. * ira.c (pdx_subregs): Delete. (struct equivalence): Add pdx_subregs field. (set_paradoxical_subreg): Remove pdx_subregs param. Update pdx_subregs access. (update_equiv_regs): Don't create or free pdx_subregs. Update pdx_subregs access. From-SVN: r235656
Alan Modra committed -
[gcc] 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * config/rs6000/altivec.h: Change definitions of vec_xl and vec_xst. * config/rs6000/rs6000-builtin.def (LD_ELEMREV_V2DF): New. (LD_ELEMREV_V2DI): New. (LD_ELEMREV_V4SF): New. (LD_ELEMREV_V4SI): New. (LD_ELEMREV_V8HI): New. (LD_ELEMREV_V16QI): New. (ST_ELEMREV_V2DF): New. (ST_ELEMREV_V2DI): New. (ST_ELEMREV_V4SF): New. (ST_ELEMREV_V4SI): New. (ST_ELEMREV_V8HI): New. (ST_ELEMREV_V16QI): New. (XL): New. (XST): New. * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add descriptions for VSX_BUILTIN_VEC_XL and VSX_BUILTIN_VEC_XST. * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Map from TARGET_P9_VECTOR to RS6000_BTM_P9_VECTOR. (altivec_expand_builtin): Add handling for VSX_BUILTIN_ST_ELEMREV_<MODE> and VSX_BUILTIN_LD_ELEMREV_<MODE>. (rs6000_invalid_builtin): Add error-checking for RS6000_BTM_P9_VECTOR. (altivec_init_builtins): Define builtins used to implement vec_xl and vec_xst. (rs6000_builtin_mask_names): Define power9-vector. * config/rs6000/rs6000.h (MASK_P9_VECTOR): Define. (RS6000_BTM_P9_VECTOR): Define. (RS6000_BTM_COMMON): Include RS6000_BTM_P9_VECTOR. * config/rs6000/vsx.md (vsx_ld_elemrev_v2di): New define_insn. (vsx_ld_elemrev_v2df): Likewise. (vsx_ld_elemrev_v4sf): Likewise. (vsx_ld_elemrev_v4si): Likewise. (vsx_ld_elemrev_v8hi): Likewise. (vsx_ld_elemrev_v16qi): Likewise. (vsx_st_elemrev_v2df): Likewise. (vsx_st_elemrev_v2di): Likewise. (vsx_st_elemrev_v4sf): Likewise. (vsx_st_elemrev_v4si): Likewise. (vsx_st_elemrev_v8hi): Likewise. (vsx_st_elemrev_v16qi): Likewise. * doc/extend.texi: Add prototypes for vec_xl and vec_xst. Correct grammar. [gcc/testsuite] 2016-04-29 Bill Schmidt <wschmidt@linux.vnet.ibm.com> * gcc.target/powerpc/vsx-elemrev-1.c: New. * gcc.target/powerpc/vsx-elemrev-2.c: New. * gcc.target/powerpc/vsx-elemrev-3.c: New. * gcc.target/powerpc/vsx-elemrev-4.c: New. From-SVN: r235654
Bill Schmidt committed -
2016-04-29 Patrick Palka <ppalka@gcc.gnu.org> * tree-ssa-threadedge.c (simplify_control_stmt_condition): Split out into ... (simplify_control_stmt_condition_1): ... here. Recurse into BIT_AND_EXPRs and BIT_IOR_EXPRs. * gcc.dg/tree-ssa/ssa-thread-14.c: New test. * gcc.dg/tree-ssa/ssa-thread-11.c: Update expected output. From-SVN: r235653
Patrick Palka committed -
gcc/c-family/ PR middle-end/70626 * c-common.h (c_oacc_split_loop_clauses): Add boolean argument. * c-omp.c (c_oacc_split_loop_clauses): Use it to duplicate reduction clauses in acc parallel loops. gcc/c/ PR middle-end/70626 * c-parser.c (c_parser_oacc_loop): Don't augment mask with OACC_LOOP_CLAUSE_MASK. (c_parser_oacc_kernels_parallel): Update call to c_oacc_split_loop_clauses. gcc/cp/ PR middle-end/70626 * parser.c (cp_parser_oacc_loop): Don't augment mask with OACC_LOOP_CLAUSE_MASK. (cp_parser_oacc_kernels_parallel): Update call to c_oacc_split_loop_clauses. gcc/fortran/ PR middle-end/70626 * trans-openmp.c (gfc_trans_oacc_combined_directive): Duplicate the reduction clause in both parallel and loop directives. gcc/testsuite/ PR middle-end/70626 * c-c++-common/goacc/combined-reduction.c: New test. * gfortran.dg/goacc/reduction-2.f95: Add check for kernels reductions. libgomp/ PR middle-end/70626 * testsuite/libgomp.oacc-c++/template-reduction.C: Adjust test. * testsuite/libgomp.oacc-c-c++-common/combined-reduction.c: New test. * testsuite/libgomp.oacc-fortran/combined-reduction.f90: New test. From-SVN: r235651
Cesar Philippidis committed -
* Make-lang.in (GO_OBJS): Remove go/dataflow.o, go/escape.o. Reviewed-on: https://go-review.googlesource.com/18261 From-SVN: r235649
Chris Manghane committed -
Since PIC leads to the *movdi_internal pattern, check for nonexistence of the *movdi_internal pattern in PR target/70155 tests only if PIC is off. * gcc.target/i386/pr70155-1.c: Check for nonexistence of the *movdi_internal pattern only if PIC off. * gcc.target/i386/pr70155-2.c: Likewise. * gcc.target/i386/pr70155-3.c: Likewise. * gcc.target/i386/pr70155-4.c: Likewise. * gcc.target/i386/pr70155-5.c: Likewise. * gcc.target/i386/pr70155-6.c: Likewise. * gcc.target/i386/pr70155-7.c: Likewise. * gcc.target/i386/pr70155-8.c: Likewise. * gcc.target/i386/pr70155-15.c: Likewise. * gcc.target/i386/pr70155-17.c: Likewise. * gcc.target/i386/pr70155-22.c: Likewise. From-SVN: r235647
H.J. Lu committed -
PR target/69810 * config/rs6000/rs6000.md (EXTQI): Don't allow extension to HImode. (zero_extendqi<mode>2_dot): Revert earlier conversion from define_insn_and_split to define_insn. (zero_extendqi<mode>2_dot2): Same. (extendqi<mode>2_dot): Same. (extendqi<mode>2_dot2): Same. From-SVN: r235646
David Edelsohn committed -
2016-04-29 Chris Gregory <czipperz@gmail.com> * config/*: Remove trailing whitespace. * src/*: Likewise. * testsuite/tr1/*: Likewise. * testsuite/util/*: Likewise. From-SVN: r235645
Chris Gregory committed -
gcc/testsuite/ChangeLog PR tree-optimization/70803 * gcc.dg/vect/pr56625.c: Require vect_int_mult. From-SVN: r235644
Bin Cheng committed
-