aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2019-06-29Daily bump.GCC Administrator1-1/+1
From-SVN: r272808
2019-06-28Update pc-relative support.Michael Meissner3-16/+55
2019-06-28 Michael Meissner <meissner@linux.ibm.com> * config/rs6000/predicates.md (pcrel_address): Use SYMBOL_REF_LOCAL_P to determine if a label is local. (pcrel_external_address): New predicate. (non_prefixed_mem_operand): Delete, predicate not used. * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use SYMBOL_REF_LOCAL_P to determine if we can use pc-relative addressing. (SYMBOL_REF_PCREL_P): Likewise. From-SVN: r272792
2019-06-28re PR target/91009 (Bug with future PowerPC patches with lfiwax/lfiwzx ↵Michael Meissner2-12/+21
(related to PR 90822)) Fix PR target/91009 2019-06-27 Michael Meissner <meissner@linux.ibm.com> PR target/91009 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX alternative. (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative. (floatunssi<mode>2_lfiwzx): Add non-VSX alternative. (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative. From-SVN: r272791
2019-06-28[Darwin, PPC] Install the same headers as other sub-targets.Iain Sandoe2-2/+5
This is primarily in order to improve testsuite coverage, we might elect to prune the list at some point. 2019-06-28 Iain Sandoe <iain@sandoe.co.uk> * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove override on extra_headers. From-SVN: r272790
2019-06-28[Darwin] Fix a couple of Wformat-diag build warnings.Iain Sandoe3-3/+10
2019-06-28 Iain Sandoe <iain@sandoe.co.uk> * config/darwin-c.c (pop_field_alignment): Quote #pragma options. * config/darwin-driver.c (darwin_default_min_version): Remove newline from warning. (darwin_driver_init): Likewise. From-SVN: r272789
2019-06-28x86: improve GFNI insnsJan Beulich2-23/+26
There's no need for three alternatives: "v" without TARGET_AVX512F is the same as "x". From-SVN: r272784
2019-06-28x86: fix vgf2p8affine*qb insnsJan Beulich4-4/+33
The affine transformations are not commutative (the two source operands have entirely different meaning). Also the nonimmediate_operand predicate can better be vector_operand. From-SVN: r272783
2019-06-28[ARC][COMMITTED] Fix slsr-13 regressions.Claudiu Zissulescu2-1/+6
A recent RTX cost commit has changed the costs for ARC700 leading to errors in slsr-13.c test. This commit fixes this issue by reverting the cost computation for short instructions. 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_rtx_costs): All short instructions are having a lower cost regardless of the speed option. From-SVN: r272782
2019-06-28add file missing from earlier commitJan Beulich1-0/+36
From-SVN: r272781
2019-06-28x86: fix CVT{,T}PD2PI insnsJan Beulich3-2/+11
With just an "m" constraint misaligned memory operands won't be forced into a register, and hence cause #GP. So far this was guaranteed only in the case that CVT{,T}PD2DQ were chosen (which looks to be the case on x86-64 only). Switch the second alternative to Bm and also replace nonimmediate_operand by vector_operand. From-SVN: r272780
2019-06-28[Arm] Remove constraint strings from define_expand constructs in the back endDennis Zhang8-618/+634
A number of Arm define_expand patterns have specified constraints for their operands. But the constraint strings are ignored at expand time and are therefore redundant/useless. We now avoid specifying constraints in new define_expands, but we should clean up the existing define_expand definitions. 2019-06-28 Dennis Zhang <dennis.zhang@arm.com> * config/arm/arm.md: Remove redundant constraints from define_expand but leave reload_inm and reload_outm patterns untouched since they need special constraints to work. * config/arm/arm-fixed.md: Remove redundant constraints from define_expand. * config/arm/iwmmxt.md: Likewise. * config/arm/neon.md: Likewise. * config/arm/sync.md: Likewise. * config/arm/thumb1.md: Likewise. * config/arm/vec-common.md: Likewise. From-SVN: r272779
2019-06-28Daily bump.GCC Administrator1-1/+1
From-SVN: r272774
2019-06-27Add --disable-tm-clone-registry libgcc configure option.Ilia Diachkov2-0/+9
This patch adds libgcc configuration option to disable TM clone registry. This option helps to reduce code size for embedded targets which do not need transactional memory support. gcc/ * doc/install.texi: Document --disable-tm-clone-registry. libgcc/ * Makefile.in (USE_TM_CLONE_REGISTRY): New. (CRTSTUFF_CFLAGS): Use USE_TM_CLONE_REGISTRY. * configure.ac: Add --disable-tm-clone-registry option. * configure: Regenerate. From-SVN: r272769
2019-06-27PR c++/55442 - memory-hog with highly recursive constexpr.Jason Merrill5-13/+47
This testcase in the PR is extremely recursive, and therefore uses a huge amount of memory on caching the results of individual calls. We no longer need to track all calls to catch infinite recursion, as we have other limits on maximum depth and operations count. So let's only cache a few calls at the top level: 8 seems to be a reasonable compromise. gcc/c-family/ * c.opt (fconstexpr-loop-limit): New. gcc/cp/ * constexpr.c (push_cx_call_context): Return depth. (cxx_eval_call_expression): Don't cache past constexpr_cache_depth. From-SVN: r272765
2019-06-27re PR c++/91024 (-Wimplicit-fallthrough is confused by likely/unlikely ↵Jakub Jelinek4-0/+31
attributes) PR c++/91024 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT statements. * g++.dg/warn/Wimplicit-fallthrough-4.C: New test. From-SVN: r272764
2019-06-27re PR tree-optimization/91010 (ICE: Segmentation fault (in location_wrapper_p))Jakub Jelinek4-1/+24
PR tree-optimization/91010 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2, return true. Otherwise, don't call operand_equal_p if offset1 or offset2 is NULL and just return false. * g++.dg/vect/simd-10.cc: New test. From-SVN: r272763
2019-06-27[Darwin, PPC] Allow the user to override the use of hard float in kexts.Iain Sandoe2-1/+9
The default for the kernel is soft-float, however a user writing a kernel extension might want to make use of hard float. This change makes " -mkernel -mhard-float " work as expected. 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour user-specified float mode choice for kernel mode code. From-SVN: r272760
2019-06-27[Darwin, PPC] Correct whitespace in specs.Iain Sandoe2-1/+6
A recent merge dropped whitespace in the endfile specs, which affects transactional memory cases. 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the spec. From-SVN: r272759
2019-06-27[Darwin, PPC] Do not use longcall for 64b code.Iain Sandoe2-0/+14
The linker [ld64] that supports 64Bit does not need the JBSR longcall optimisation, and will not work with the most generic case (where the symbol is undefined external, but there is no symbl stub). So switch the longcall option off. ld64 will generate branch islands as needed. 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not use longcall for 64b code. From-SVN: r272758
2019-06-27re PR fortran/90987 (Wrong error message with variables named "COMMON*")Steven G. Kargl5-5/+67
2019-06-27 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90987 * match.c (gfc_match_common): Adjust parsing of fixed and free form source code containing, e.g., COMMONI. 2019-06-27 Steven G. Kargl <kargl@gcc.gnu.org> PR fortran/90987 * gfortran.dg/common_1.f: new test. * gfortran.dg/common_26.f90: Ditto. From-SVN: r272756
2019-06-27builtins.c (get_memory_rtx): Fix comment.Aaron Sawdey75-244/+352
2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com> * builtins.c (get_memory_rtx): Fix comment. * optabs.def (movmem_optab): Change to cpymem_optab. * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem. (emit_block_move_hints): Change movmem to cpymem. * defaults.h: Change movmem to cpymem. * targhooks.c (get_move_ratio): Change movmem to cpymem. (default_use_by_pieces_infrastructure_p): Ditto. * config/aarch64/aarch64-protos.h: Change movmem to cpymem. * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem to cpymem. * config/aarch64/aarch64.h: Change movmem to cpymem. * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi. * config/alpha/alpha.h: Change movmem to cpymem in comment. * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change movmem to cpymem. * config/arc/arc-protos.h: Change movmem to cpymem. * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem. * config/arc/arc.h: Change movmem to cpymem in comment. * config/arc/arc.md (movmemsi): Change movmem to cpymem. * config/arm/arm-protos.h: Change movmem to cpymem in names. * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem. * config/arm/arm.md (movmemqi): Change movmem to cpymem. * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem. * config/avr/avr-protos.h: Change movmem to cpymem. * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, avr_out_movmem): Change movmem to cpymem. * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>): Change movmem to cpymem. * config/bfin/bfin-protos.h: Change movmem to cpymem. * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem): Change movmem to cpymem. * config/bfin/bfin.h: Change movmem to cpymem in comment. * config/bfin/bfin.md (movmemsi): Change name to cpymemsi. * config/c6x/c6x-protos.h: Change movmem to cpymem. * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem. * config/c6x/c6x.md (movmemsi): Change name to cpymemsi. * config/frv/frv.md (movmemsi): Change name to cpymemsi. * config/ft32/ft32.md (movmemsi): Change name to cpymemsi. * config/h8300/h8300.md (movmemsi): Change name to cpymemsi. * config/i386/i386-expand.c (expand_set_or_movmem_via_loop, expand_set_or_movmem_via_rep, expand_movmem_epilogue, expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue, expand_small_cpymem_or_setmem, expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, expand_set_or_cpymem_constant_prologue, ix86_expand_set_or_cpymem): Change movmem to cpymem. * config/i386/i386-protos.h: Change movmem to cpymem. * config/i386/i386.h: Change movmem to cpymem in comment. * config/i386/i386.md (movmem<mode>): Change name to cpymem. (setmem<mode>): Change expansion function name. * config/lm32/lm32.md (movmemsi): Change name to cpymemsi. * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op, movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem. * config/m32c/m32c-protos.h: Change movmem to cpymem. * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem. * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem. * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem to cpymem. * config/mcore/mcore.md (movmemsi): Change name to cpymemsi. * config/microblaze/microblaze.c: Change movmem to cpymem in comment. * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi. * config/mips/mips.c (mips_use_by_pieces_infrastructure_p): Change movmem to cpymem. * config/mips/mips.h: Change movmem to cpymem. * config/mips/mips.md (movmemsi): Change name to cpymemsi. * config/nds32/nds32-memory-manipulation.c (nds32_expand_movmemsi_loop_unknown_size, nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop, nds32_expand_movmemsi_unroll, nds32_expand_movmemsi): Change movmem to cpymem. * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi. * config/nds32/nds32-protos.h: Change movmem to cpymem. * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem. (pa_adjust_insn_length): Change call to compute_movmem_length. * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload, movmemdi, movmemdi_prereload, movmemdi_postreload): Change movmem to cpymem. * config/pdp11/pdp11.md (movmemhi, movmemhi1, movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem. * config/riscv/riscv.c: Change movmem to cpymem in comment. * config/riscv/riscv.h: Change movmem to cpymem. * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi. * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi. * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change movmem to cpymem. * config/s390/s390-protos.h: Change movmem to cpymem. * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem, s390_expand_insv): Change movmem to cpymem. * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short, movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem. * config/sh/sh.md (movmemsi): Change name to cpymemsi. * config/sparc/sparc.h: Change movmem to cpymem in comment. * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype for nonexistent function. * config/vax/vax.h: Change movmem to cpymem in comment. * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem. * config/visium/visium.h: Change movmem to cpymem in comment. * config/visium/visium.md (movmemsi): Change name to cpymemsi. * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi. * doc/md.texi: Change movmem to cpymem and update description to match. * doc/rtl.texi: Change movmem to cpymem. * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem. * doc/tm.texi: Regenerate. From-SVN: r272755
2019-06-27rs6000.c (rs6000_option_override_internal): Enable ↵Bill Schmidt3-0/+16
-fvariable-expansion-in-unroller by default. 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com> * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable -fvariable-expansion-in-unroller by default. * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new default for Power. From-SVN: r272754
2019-06-27revert: config.gcc (powerpc-ibm-aix*): Define target_gtfiles.David Edelsohn2-3/+9
Revert 2019-06-26 David Edelsohn <dje.gcc@gmail.com> * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. * config.gcc(rs6000-*-*): Define target_gtfiles. From-SVN: r272753
2019-06-27lto-common.c: tree-pretty-print.hJan Hubicka1-0/+9
* lto-common.c: tree-pretty-print.h (type_streaming_finished): New static var. (gimple_register_canonical_type_1): Return updated hash; handle ODR types. (iterative_hash_canonical_type): Update use of gimple_register_canonical_type_1. From-SVN: r272750
2019-06-27class.c (layout_class_type): Set TYPE_CXX_ODR_P for as-base type copy.Jan Hubicka10-7/+255
* class.c (layout_class_type): Set TYPE_CXX_ODR_P for as-base type copy. * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag. (add_type_duplicate): When odr hash is not allocated, to nothing. (odr_based_tbaa_p): New function. (set_type_canonical_for_odr_type): New function. * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p, set_type_canonical_for_odr_type): New. * tree.c (gimple_canonical_types_compatible_p): ODR types with ODR based TBAA are not equivalent to non-ODR types. * lto-common.c: Include demangle.h and tree-pretty-print.h (type_streaming_finished): New static var. (gimple_register_canonical_type_1): Return updated hash; handle ODR types. (iterative_hash_canonical_type): Update use of gimple_register_canonical_type_1. * g++.dg/lto/alias-2_0.C: New testcase. * g++.dg/lto/alias-2_1.C: New testcase. From-SVN: r272749
2019-06-27Fix various issues seen with clang-static-analyzer.Martin Liska6-16/+26
2019-06-27 Martin Liska <mliska@suse.cz> PR tree-optimization/90974 PR rtl-optimization/90975 PR rtl-optimization/90976 PR target/91016 PR tree-optimization/91017 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove unused tmp. * lra.c (lra_set_insn_recog_data): Remove a leftover from initial commit of IRA. * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead of op0 and op1. * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove unused mode1. * tree-vect-stmts.c (vectorizable_call): Remove dead assignment to new_stmt_info. From-SVN: r272746
2019-06-27re PR target/90991 (_mm_loadu_ps instrinsic translates to vmovaps in ↵Jakub Jelinek5-16/+167
combination with _mm512_insertf32x4) PR target/90991 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand instead of register_operand for operands[1], add m to its constraints if operands[2] uses "C" constraint. Ensure in condition that if operands[2] is not 0, then operands[1] is not a MEM. For last two alternatives, use unaligned loads instead of aligned if operands[1] is misaligned_operand. * gcc.target/i386/avx2-pr90991-1.c: New test. * gcc.target/i386/avx512dq-pr90991-2.c: New test. From-SVN: r272745
2019-06-27Remove quite obvious dead assignments.Martin Liska37-83/+77
2019-06-27 Martin Liska <mliska@suse.cz> * asan.c (asan_emit_allocas_unpoison): Remove obviously dead assignments. * bt-load.c (move_btr_def): Likewise. * builtins.c (expand_builtin_apply_args_1): Likewise. (expand_builtin_apply): Likewise. * cfgexpand.c (expand_asm_stmt): Likewise. (construct_init_block): Likewise. * cfghooks.c (verify_flow_info): Likewise. * cfgloopmanip.c (remove_path): Likewise. * cfgrtl.c (rtl_verify_bb_layout): Likewise. * cgraph.c (cgraph_node::set_pure_flag): Likewise. * combine.c (simplify_if_then_else): Likewise. * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. (choose_basereg): Likewise. (ix86_expand_prologue): Likewise. (ix86_preferred_output_reload_class): Likewise. * cselib.c (cselib_record_sets): Likewise. * df-scan.c (df_scan_alloc): Likewise. * dojump.c (do_jump_by_parts_greater_rtx): Likewise. * early-remat.c (early_remat::record_equiv_candidates): Likewise. * emit-rtl.c (try_split): Likewise. * graphite-scop-detection.c (assign_parameter_index_in_region): Likewise. * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise. * ira-color.c (setup_profitable_hard_regs): Likewise. * ira.c (rtx_moveable_p): Likewise. * lra-eliminations.c (eliminate_regs_in_insn): Likewise. * read-rtl.c (read_subst_mapping): Likewise. * regrename.c (scan_rtx): Likewise. * reorg.c (fill_slots_from_thread): Likewise. * tree-inline.c (tree_function_versioning): Likewise. * tree-ssa-reassoc.c (optimize_ops_list): Likewise. * tree-ssa-sink.c (statement_sink_location): Likewise. * tree-ssa-threadedge.c (thread_across_edge): Likewise. * tree-vect-loop.c (vect_get_loop_niters): Likewise. (vect_create_epilog_for_reduction): Likewise. * tree.c (build_nonstandard_integer_type): Likewise. 2019-06-27 Martin Liska <mliska@suse.cz> * class.c (adjust_clone_args): Remove obviously dead assignments. (dump_class_hierarchy_r): Likewise. * decl.c (check_initializer): Likewise. * parser.c (cp_parser_lambda_expression): Likewise. * pt.c (unify_bound_ttp_args): Likewise. (convert_template_argument): Likewise. * rtti.c (build_headof): Likewise. * typeck.c (convert_for_initialization): Likewise. 2019-06-27 Martin Liska <mliska@suse.cz> * libgcov-driver-system.c (gcov_exit_open_gcda_file): Remove obviously dead assignments. * libgcov-util.c: Likewise. From-SVN: r272744
2019-06-27ix86: pass correct options to compiler for gfni-4 testcaseJan Beulich2-1/+5
SSE2 is the required prereq of the builtins; as x86-64 has SSE2 enabled anyway, the test failure was noticable on 32-bit builds only. From-SVN: r272743
2019-06-27tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.Richard Biener4-1/+41
2019-06-27 Richard Biener <rguenther@suse.de> * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS. * gcc.dg/tree-ssa/ssa-fre-69.c: New testcase. From-SVN: r272742
2019-06-27re PR tree-optimization/89772 (memchr for a character not in constant ↵Jun Ma4-1/+60
nul-padded string not folded) PR tree-optimization/89772 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in out-of-bound accesses checking. gcc/testsuite * gcc.dg/builtin-memchr-4.c: New test. From-SVN: r272740
2019-06-27Fix ICE when __builtin_calloc has no LHS (PR tree-optimization/91014).Martin Liska4-2/+22
2019-06-27 Martin Liska <mliska@suse.cz> PR tree-optimization/91014 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out when LHS is NULL_TREE. 2019-06-27 Martin Liska <mliska@suse.cz> PR tree-optimization/91014 * gcc.target/s390/pr91014.c: New test. From-SVN: r272738
2019-06-27re PR testsuite/91004 (Excess errors in g++.dg/torture/pr34850.C starting ↵Richard Biener2-1/+7
with r272688) 2019-06-27 Richard Biener <rguenther@suse.de> PR testsuite/91004 * g++.dg/torture/pr34850.C: Fix overly reduced testcase. From-SVN: r272737
2019-06-27Fix warnings seen by clang in gcc/symbol-summary.h.Martin Liska2-7/+14
2019-06-27 Martin Liska <mliska@suse.cz> * symbol-summary.h (traverse): Pass argument a to the call of callback. (gt_ggc_mx): Mark arguments as unused. (gt_pch_nx): Likewise. From-SVN: r272734
2019-06-27Fix misc stuff seen by clang-static-analyzer.Martin Liska2-2/+25
2019-06-27 Martin Liska <mliska@suse.cz> * lto-dump.c (struct symbol_entry): Add default dtor. (struct variable_entry): Likewise. (struct function_entry): Likewise. (dump_list_functions): Release memory. (dump_list_variables): Likewise. 2019-06-27 Martin Liska <mliska@suse.cz> * libgcov-util.c (gcov_profile_merge): Release allocated memory. (calculate_overlap): Likewise. From-SVN: r272733
2019-06-27One line change onto r272731Kewen Lin1-1/+1
PR target/62147 * gcc/loop-iv.c (find_simple_exit) - if (single_exit (loop) && finite_loop_p (loop)) + if (desc->infinite && single_exit (loop) && finite_loop_p (loop)) From-SVN: r272732
2019-06-27Call finite_loop_p in RTL to get better finiteness information.Kewen Lin4-1/+50
gcc/ChangeLog 2019-06-27 Kewen Lin <linkw@gcc.gnu.org> PR target/62147 * gcc/loop-iv.c (find_simple_exit): Call finite_loop_p to update finiteness. gcc/testsuite/ChangeLog 2019-06-27 Kewen Lin <linkw@gcc.gnu.org> PR target/62147 * gcc.target/powerpc/pr62147.c: New test. From-SVN: r272731
2019-06-26re PR tree-optimization/90883 (Generated code is worse if returned struct is ↵Jeff Law1-4/+4
unnamed) PR tree-optimization/90883 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature. (delete_dead_or_redundant_assignment): Likewise. From-SVN: r272726
2019-06-26re PR tree-optimization/90883 (Generated code is worse if returned struct is ↵Jeff Law1-0/+4
unnamed) PR tree-optimization/90883 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature. (delete_dead_or_redundant_assignment): Likewise. From-SVN: r272725
2019-06-27Daily bump.GCC Administrator1-1/+1
From-SVN: r272723
2019-06-26re PR tree-optimization/90883 (Generated code is worse if returned struct is ↵Jeff Law6-15/+268
unnamed) PR tree-optimization/90883 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC. * tree-ssa-dse.c: Update various comments to distinguish between dead and redundant stores. (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC. (dse_optimize_redundant_stores): New function. (delete_dead_or_redundant_call): Renamed from delete_dead_call. Distinguish between dead and redundant calls in dump output. All callers updated. (delete_dead_or_redundant_assignment): Similarly for assignments. (dse_optimize_stmt): Handle _CHK variants. For statements which store 0 into multiple memory locations, try to prove a subsequent store is redundant. PR tree-optimization/90883 * g++.dg/tree-ssa/pr90883.C: New test. * gcc.dg/tree-ssa/ssa-dse-36.c: New test. From-SVN: r272717
2019-06-26re PR target/89021 (Implement mmintrin.h in SSE)Uros Bizjak4-3/+26
PR target/89021 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE. testsuite/ChangeLog: PR target/89021 * lib/target-supports.exp (available_vector_sizes) <[istarget i?86-*-*] || [istarget x86_64-*-*]>: Add 64-bit vectors for !ia32. From-SVN: r272711
2019-06-26[PATCH, PPC 2/2] Fix Darwin bootstrap after split of rs6000.c.Iain Sandoe4-98/+113
To fix this we need to make the branch islands (or code) visible between both files. This keeps the generation side in rs6000.c and moves the output routine to rs6000-logue.c, placing a reference to the islands vector in rs6000-internal.h. 2019-06-26 Iain Sandoe <iain@sandoe.co.uk> * config/rs6000/rs6000-internal.h (branch_island): New typedef. (branch_islands): New extern. * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from * config/rs6000/rs6000.c: .. here. From-SVN: r272710
2019-06-26[PATCH, PPC 1/2] Make sure the gt- files are built for all sub-targets.Iain Sandoe2-1/+6
The new gt-rs6000-logue.h is common to all sub-targets in the port, so it needs to be added for them. It seems better to place the common target_gtfiles in the powerpc*-*-* section, rather than duplicating them in sub-targets. This would make it less likely that a sub-target would be overlooked in any future file introductions. 2019-06-26 Iain Sandoe <iain@sandoe.co.uk> * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here.. (powerpc*-*-*) ... to here. From-SVN: r272708
2019-06-26tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of memcpy, ↵Jeff Law9-6/+31
memmove and memset builtins. * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of memcpy, memmove and memset builtins. (maybe_trim_memstar_call): Likewise. * gcc.c-torture/execute/builtins/builtins.exp: Add -fno-tree-dse as DSE compromises several of these tests. * gcc.dg/builtin-stringop-chk-1.c: Similarly. * gcc.dg/memcpy-2.c: Similarly. * gcc.dg/pr40340-1.c: Similarly. * gcc.dg/pr40340-2.c: Similarly. * gcc.dg/pr40340-5.c: Similarly. From-SVN: r272704
2019-06-26ChangeLog: Document revision 272698Steven G. Kargl2-0/+22
2016-06-26 Steven G. Kargl <kargl@gcc.gnu.org> * ChangeLog: Document revision 272698 2016-06-26 Steven G. Kargl <kargl@gcc.gnu.org> * testsuite/ChangeLog: Document revision 272698 From-SVN: r272699
2019-06-26* config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.David Edelsohn2-0/+9
From-SVN: r272694
2019-06-26* config.gcc (powerpc-ibm-aix*): Define target_gtfiles.David Edelsohn2-0/+7
From-SVN: r272693
2019-06-26[PR preprocessor/90927] Fixe dependency outputNathan Sidwell2-0/+10
https://gcc.gnu.org/ml/gcc-patches/2019-06/msg01664.html libcpp/ PR preprocessor/90927 * mkdeps.c (mkdeps::vec::operator[]): Add non-const variant. (deps_add_target): Deal with out of order unquoted targets. gcc/testsuite/ * c-c++-common/pr90927.c: New. From-SVN: r272692
2019-06-26rs6000: Fix rs6000_keep_leaf_when_profiledSegher Boessenkool4-4/+13
This function is called from elsewhere, so shouldn't be static. * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New declaration. * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove "static". * config/rs6000/rs6000.c (rs6000_keep_leaf_when_profiled): Delete declaration. --- gcc/config/rs6000/rs6000-internal.h | 1 + gcc/config/rs6000/rs6000-logue.c | 4 ++-- gcc/config/rs6000/rs6000.c | 1 - 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/config/rs6000/rs6000-internal.h b/gcc/config/rs6000/rs6000-internal.h index a1acb66..22ebd37 100644 --- a/gcc/config/rs6000/rs6000-internal.h +++ b/gcc/config/rs6000/rs6000-internal.h @@ -99,6 +99,7 @@ extern bool save_reg_p (int reg); extern const char * rs6000_machine_from_flags (void); extern void emit_asm_machine (void); extern bool rs6000_global_entry_point_prologue_needed_p (void); +extern bool rs6000_keep_leaf_when_profiled (void); /* Return true if the OFFSET is valid for the quad address instructions that use d-form (register + offset) addressing. */ diff --git a/gcc/config/rs6000/rs6000-logue.c b/gcc/config/rs6000/rs6000-logue.c index 9df4b5a..adc137b 100644 --- a/gcc/config/rs6000/rs6000-logue.c +++ b/gcc/config/rs6000/rs6000-logue.c @@ -4025,8 +4025,8 @@ rs6000_output_function_prologue (FILE *file) /* -mprofile-kernel code calls mcount before the function prolog, so a profiled leaf function should stay a leaf function. */ -static bool -rs6000_keep_leaf_when_profiled () +bool +rs6000_keep_leaf_when_profiled (void) { return TARGET_PROFILE_KERNEL; } diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 3fc4029..bcfc881 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -1338,7 +1338,6 @@ static bool rs6000_secondary_reload_move (enum rs6000_reg_type, secondary_reload_info *, bool); rtl_opt_pass *make_pass_analyze_swaps (gcc::context*); -static bool rs6000_keep_leaf_when_profiled () __attribute__ ((unused)); static tree rs6000_fold_builtin (tree, int, tree *, bool); /* Hash table stuff for keeping track of TOC entries. */ -- 1.8.3.1 From-SVN: r272691