| 2021-12-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/103756 |
| * regrename.c (find_rename_reg): Test noop_move_p on the first |
| non-debug insn in the chain rather than on the first insn. |
| |
| 2021-12-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/103808 |
| * emit-rtl.c (gen_rtx_REG_offset): Use gen_raw_REG instead of |
| gen_rtx_REG. |
| |
| 2021-12-30 Martin Liska <mliska@suse.cz> |
| |
| * doc/cpp.texi: Add missing dash for argument. |
| |
| 2021-12-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/103012 |
| * config/i386/i386-c.c (ix86_pragma_target_parse): Perform |
| cpp_define/cpp_undef calls with forced token locations |
| BUILTINS_LOCATION. |
| * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. |
| * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Likewise. |
| * config/s390/s390-c.c (s390_pragma_target_parse): Likewise. |
| |
| 2021-12-30 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/103860 |
| * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is |
| called on pro even if nothing further is pushed into vec. |
| |
| 2021-12-30 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| * loop-invariant.c (find_invariants_bb): Check profile count |
| before motion. |
| (find_invariants_body): Add argument. |
| |
| 2021-12-29 Ian Lance Taylor <iant@golang.org> |
| |
| PR go/103847 |
| * godump.c (go_force_record_alignment): Name the alignment |
| field "_". |
| |
| 2021-12-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/103742 |
| * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): If any phi |
| argument is not CONSTANT_CLASS_P or SSA_NAME and any arguments are |
| equal, change second from hash value to lowest dest_idx from the |
| edges which have equal argument and resort to ensure -fcompare-debug |
| stability. |
| |
| 2021-12-29 Martin Liska <mliska@suse.cz> |
| |
| * collect2.c (main): Add ld.mold. |
| * common.opt: Add -fuse-ld=mold. |
| * doc/invoke.texi: Document it. |
| * gcc.c (driver_handle_option): Handle -fuse-ld=mold. |
| * opts.c (common_handle_option): Likewise. |
| |
| 2021-12-29 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/sse.md (vec_pack<floatprefix>_float_<mode>): |
| Perform gen_avx512dq_float<floatunssuffix>v2div2sf2 into a |
| pseudo and emit move insn into operands[0]. |
| (fix<fixunssuffix>_truncv2sfv2di2): Use lowpart_subreg |
| instead of simplify_gen_subreg. |
| (trunc<mode><pmov_dst_3_lower>2): Perform |
| gen_avx512vl_truncate<mode>v<ssescalarnum>qi2 into a |
| pseudo and emit move insn into operands[0]. |
| (trunc<mode><pmov_dst_4_lower>2): Perform |
| gen_avx512vl_truncate<mode>v<ssescalarnum>hi2 into a |
| pseudo and emit move insn into operands[0]. |
| (truncv2div2si2): Perform gen_avx512vl_truncatev2div2si2 into a |
| pseudo and emit move insn into operands[0]. |
| (truncv8div8qi2): Perform gen_avx512f_truncatev8div16qi2 into a |
| pseudo and emit move insn into operands[0]. |
| (<any_extend:insn>v8qiv8hi2): Use lowpart_subreg |
| instead of simplify_gen_subreg. |
| (<any_extend:insn>v8qiv8si2): Ditto. |
| (<any_extend:insn>v4qiv4si2): Ditto. |
| (<any_extend:insn>v4hiv4si2): Ditto. |
| (<any_extend:insn>v8qiv8di2): Ditto. |
| (<any_extend:insn>v4qiv4di2): Ditto. |
| (<any_extend:insn>v2qiv2di2): Ditto. |
| (<any_extend:insn>v4hiv4di2): Ditto. |
| (<any_extend:insn>v2hiv2di2): Ditto. |
| (<any_extend:insn>v2siv2di2): Ditto. |
| |
| 2021-12-29 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR tree-optimization/103793 |
| * tree-ssa-loop-split.c (fix_loop_bb_probability): New function. |
| (split_loop): Use multiply to scale loop1's exit probability. |
| (do_split_loop_on_cond): Call fix_loop_bb_probability. |
| |
| 2021-12-28 Jason Merrill <jason@redhat.com> |
| |
| PR c++/99968 |
| * tree.c (verify_type): Allow enumerator with BOOLEAN_TYPE. |
| |
| 2021-12-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/103813 |
| * fold-const.c (fold_truth_andor_1): Punt of const_binop LSHIFT_EXPR |
| or RSHIFT_EXPR returns NULL. Formatting fix. |
| |
| 2021-12-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/103837 |
| * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in |
| the decisions whether to return false or continue and right before |
| returning true reset those debug insns that previously caused |
| returning false. |
| |
| 2021-12-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/103838 |
| * optabs.c (expand_doubleword_mod, expand_doubleword_divmod): Only |
| check newly added insns for CALL_P, not the last insn of previous |
| code. |
| |
| 2021-12-28 Martin Liska <mliska@suse.cz> |
| |
| PR driver/103465 |
| * opts.c (finish_options): More part of diagnostics to ... |
| (diagnose_options): ... here. Call the function from both |
| finish_options and process_options. |
| * opts.h (diagnose_options): Declare. |
| * toplev.c (process_options): Call diagnose_options. |
| |
| 2021-12-28 Martin Liska <mliska@suse.cz> |
| |
| * doc/contrib.texi: Replace http:// with https. |
| * doc/contribute.texi: Likewise. |
| * doc/extend.texi: Likewise. |
| * doc/gccint.texi: Likewise. |
| * doc/gnu.texi: Likewise. |
| * doc/implement-c.texi: Likewise. |
| * doc/implement-cxx.texi: Likewise. |
| * doc/include/fdl.texi: Likewise. |
| * doc/include/gpl_v3.texi: Likewise. |
| * doc/install.texi: Likewise. |
| * doc/invoke.texi: Likewise. |
| * doc/passes.texi: Likewise. |
| * doc/service.texi: Likewise. |
| * doc/sourcebuild.texi: Likewise. |
| * doc/standards.texi: Likewise. |
| |
| 2021-12-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/103842 |
| * config/i386/mmx.md (divv2sf3): Use force_reg on op1. Always perform |
| divv4sf3 into a pseudo and emit_move_insn into operands[0]. |
| |
| 2021-12-27 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa-protos.h: Delete |
| pa_maybe_emit_compare_and_swap_exchange_loop() declaration. |
| * config/pa/pa.c (pa_expand_compare_and_swap_loop): Delete. |
| (pa_maybe_emit_compare_and_swap_exchange_loop): Delete. |
| * config/pa/pa.md (atomic_storeq): Use __sync_lock_test_and_set |
| instead of pa_maybe_emit_compare_and_swap_exchange_loop. |
| (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. |
| |
| 2021-12-27 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/103762 |
| * config/i386/constraints.md (BM): New constraint. |
| * config/i386/i386.md (m): New mode attribute. |
| Replace the 'm' constraint on <general_operand> with the '<m>' |
| constraint. |
| Replace the 'm' constraint on x86_64_general_operand with the |
| 'BM' constraint. |
| |
| 2021-12-26 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/103785 |
| * config/i386/i386.md: Swap operand order in comments and check |
| AX input in any_mul_highpart peepholes. |
| |
| 2021-12-24 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/95046 |
| PR target/103797 |
| * config/i386/mmx.md (divv2sf3): New instruction pattern. |
| |
| 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_override_options): Make a comment |
| more inclusive. |
| |
| 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable |
| values for the host. |
| * config/darwin.c (darwin_emit_common): Error for alignment |
| values > 32768. |
| * config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the |
| configured L2_MAX_OFILE_ALIGNMENT. |
| |
| 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_override_options): When checking for the |
| flag-reorder-and-partition case, also check that it is set on. |
| |
| 2021-12-24 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (OBJECT_FORMAT_MACHO): New. |
| |
| 2021-12-23 Roger Sayle <roger@nextmovesoftware.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/103773 |
| * config/i386/i386.md (*mov<mode>_and): New define_insn for |
| writing a zero to memory using AND. |
| (*mov<mode>_or): Extend to allow memory destination and HImode. |
| (*movdi_internal): Remove -Oz push/pop optimization from here. |
| (*movsi_internal): Likewise. |
| (peephole2): Perform -Oz push/pop optimization here, only for |
| register destinations, values other than zero, and in functions |
| that don't used the red zone. |
| (peephole2): With -Oz, convert writes of 0 or -1 to memory into |
| their clobber forms, i.e. *mov<mode>_and and *mov<mode>_or resp. |
| |
| 2021-12-23 konglin1 <lingling.kong@intel.com> |
| |
| * config/i386/avx512bf16intrin.h (_mm_cvtsbh_ss): Add new intrinsic. |
| (_mm512_cvtpbh_ps): Likewise. |
| (_mm512_maskz_cvtpbh_ps): Likewise. |
| (_mm512_mask_cvtpbh_ps): Likewise. |
| * config/i386/avx512bf16vlintrin.h (_mm_cvtness_sbh): Likewise. |
| (_mm_cvtpbh_ps): Likewise. |
| (_mm256_cvtpbh_ps): Likewise. |
| (_mm_maskz_cvtpbh_ps): Likewise. |
| (_mm256_maskz_cvtpbh_ps): Likewise. |
| (_mm_mask_cvtpbh_ps): Likewise. |
| (_mm256_mask_cvtpbh_ps): Likewise. |
| |
| 2021-12-23 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR ipa/103786 |
| * tree.c (verify_type): Fix typo. |
| |
| 2021-12-23 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103750 |
| * config/i386/sse.md |
| (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>): |
| New pre_reload define_insn_and_split. |
| (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>): |
| Ditto. |
| (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>): |
| Ditto. |
| (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>): |
| Ditto. |
| (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): |
| Ditto. |
| (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): |
| Ditto. |
| (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): |
| Ditto. |
| (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): |
| Ditto. |
| |
| 2021-12-22 Murray Steele <murray.steele@arm.com> |
| |
| * config.gcc (arm*-*-*): Add arm-mve-builtins.o to extra_objs. |
| * config/arm/arm-c.c (arm_pragma_arm): Handle "#pragma GCC arm". |
| (arm_register_target_pragmas): Register it. |
| * config/arm/arm-protos.h: (arm_mve::arm_handle_mve_types_h): New |
| prototype. |
| * config/arm/arm_mve_types.h: Replace MVE type definitions with |
| new pragma. |
| * config/arm/t-arm: (arm-mve-builtins.o): New target rule. |
| * config/arm/arm-mve-builtins.cc: New file. |
| * config/arm/arm-mve-builtins.def: New file. |
| * config/arm/arm-mve-builtins.h: New file. |
| |
| 2021-12-22 Murray Steele <murray.steele@arm.com> |
| |
| * config/arm/arm-builtins.c (enum arm_type_qualifiers): Move to |
| arm_builtins.h. |
| (enum arm_simd_type): Move to arm-builtins.h. |
| (struct arm_simd_type_info): Move to arm-builtins.h. |
| * config/arm/arm-builtins.h (enum arm_simd_type): Move from |
| arm-builtins.c. |
| (enum arm_type_qualifiers): Move from arm-builtins.c. |
| (struct arm_simd_type_info): Move from arm-builtins.c. |
| |
| 2021-12-22 Martin Liska <mliska@suse.cz> |
| |
| * doc/extend.texi: Unify all function declarations in examples |
| where some miss trailing ';'. |
| |
| 2021-12-22 Martin Liska <mliska@suse.cz> |
| |
| * doc/extend.texi: Unify all function declarations in examples |
| where some miss trailing ';'. |
| |
| 2021-12-22 Martin Liska <mliska@suse.cz> |
| |
| * doc/extend.texi: Unify all function declarations in examples |
| where some miss trailing ';'. |
| |
| 2021-12-22 Martin Liska <mliska@suse.cz> |
| |
| * doc/extend.texi: Use uppercase letters for SSEx. |
| |
| 2021-12-21 Jiang Haochen <haochen.jiang@intel.com> |
| |
| * config/i386/bmiintrin.h (_tzcnt_u16): New intrinsic. |
| (_andn_u32): Ditto. |
| (_andn_u64): Ditto. |
| |
| 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| * tree-ssa-loop-im.c (bb_colder_than_loop_preheader): New |
| function. |
| (get_coldest_out_loop): New function. |
| (determine_max_movement): Use get_coldest_out_loop. |
| (move_computations_worker): Adjust and fix iteration udpate. |
| (class ref_in_loop_hot_body): New functor. |
| (ref_in_loop_hot_body::operator): New. |
| (can_sm_ref_p): Use for_all_locs_in_loop. |
| (fill_coldest_and_hotter_out_loop): New. |
| (tree_ssa_lim_finalize): Free coldest_outermost_loop and |
| hotter_than_inner_loop. |
| (loop_invariant_motion_in_fun): Call fill_coldest_and_hotter_out_loop. |
| |
| 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| * tree-ssa-loop-split.c (split_loop): Fix incorrect |
| profile_count and probability. |
| (do_split_loop_on_cond): Likewise. |
| |
| 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR middle-end/103270 |
| * predict.c (predict_extra_loop_exits): Add loop parameter. |
| (predict_loops): Call with loop argument. |
| |
| 2021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (altivec_vaddu<VI_char>s): Replace |
| UNSPEC_VADDU with us_plus. |
| (altivec_vadds<VI_char>s): Replace UNSPEC_VADDS with ss_plus. |
| (altivec_vsubu<VI_char>s): Replace UNSPEC_VSUBU with us_minus. |
| (altivec_vsubs<VI_char>s): Replace UNSPEC_VSUBS with ss_minus. |
| (altivec_abss_<mode>): Likewise. |
| |
| 2021-12-20 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/103772 |
| * config/i386/sse.md (<sse2p4_1>_pinsr<ssemodesuffix>): Add |
| earlyclobber to (x,x,x,i) alternative. |
| (<sse2p4_1>_pinsr<ssemodesuffix> peephole2): Remove. |
| (<sse2p4_1>_pinsr<ssemodesuffix> splitter): Use output |
| operand as a temporary register. Split after reload_completed. |
| |
| 2021-12-20 Roger Sayle <roger@nextmovesoftware.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (any_mul_highpart): New code iterator. |
| (sgnprefix, s): Add attribute support for [su]mul_highpart. |
| (<s>mul<mode>3_highpart): Delete expander. |
| (<s>mul<mode>3_highpart, <s>mulsi32_highpart_zext): |
| New define_insn patterns. |
| (define_peephole2): Tweak the register allocation for the above |
| instructions after reload. |
| |
| 2021-12-20 Joel Sherrill <joel@rtems.org> |
| |
| * config.gcc: Obsolete m32c-*-rtems* target. |
| |
| 2021-12-20 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (default_options_optimization): Support -Oz in -Ox option hints. |
| |
| 2021-12-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103669 |
| * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Add deferred |
| parameter. |
| (modref_eaf_analysis::propagate): Use it. |
| |
| 2021-12-20 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/98468 |
| * config/i386/sse.md (*bit_and_float_vector_all_ones): New |
| pre-reload splitter. |
| |
| 2021-12-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103766 |
| * ipa-modref.c (modref_merge_call_site_flags): Fix early exit condition |
| |
| 2021-12-19 Patrick Palka <ppalka@redhat.com> |
| |
| * print-tree.c (print_node) <case tcc_declaration>: Dump |
| DECL_LANG_FLAG_8. |
| |
| 2021-12-19 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-ssa-phiopt.c (gimple_simplify_phiopt): Annotate the |
| new sequence with the location of the conditional statement. |
| |
| 2021-12-18 Roger Sayle <roger@nextmovesoftware.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/103611 |
| * config/i386/i386.md (any_or_plus): New code iterator. |
| (define_split): Split (HI<<32)|zext(LO) into piece-wise |
| move instructions on !TARGET_64BIT. |
| * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): |
| Restrict to TARGET_64BIT. |
| |
| 2021-12-18 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/32803 |
| * common.opt (Oz): New command line option. |
| * doc/invoke.texi: Document the new -Oz option. |
| * lto-wrapper.c (merge_and_complain, append_compiler_options): |
| Treat OPT_Oz as synonymous with OPT_Os. |
| * optc-save-gen.awk: Increase maximum value of optimize_size to 2. |
| * opts.c (default_options_optimization) [OPT_Oz]: Handle OPT_Oz |
| just like OPT_Os, except set opt->x_optimize_size to 2. |
| (common_handle_option): Skip OPT_Oz just like OPT_Os. |
| * config/i386/i386.md (*movdi_internal): Use a push/pop sequence |
| for suitable SImode TYPE_IMOV moves when optimize_size > 1. |
| (*movsi_internal): Likewise. |
| |
| 2021-12-18 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| PR tree-optimization/103759 |
| * tree-object-size.c (unknown, initval): Remove functions. |
| (size_unknown, size_initval, size_unknown_p): Operate directly |
| on trees. |
| |
| 2021-12-18 François-Xavier Coudert <fxcoudert@gcc.gnu.org> |
| |
| * config/darwin-driver.c: Make version code more future-proof. |
| * config.gcc: Homogeneize darwin versions. |
| * configure.ac: Homogeneize darwin versions. |
| * configure: Regenerate. |
| |
| 2021-12-17 Marek Polacek <polacek@redhat.com> |
| |
| PR c/103649 |
| * attribs.c (handle_ignored_attributes_option): Create the fake |
| attribute with max_length == -2. |
| (attribute_ignored_p): New overloads. |
| * attribs.h (attribute_ignored_p): Declare them. |
| * tree-core.h (struct attribute_spec): Document that max_length |
| can be -2. |
| |
| 2021-12-17 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/103624 |
| * config/rs6000/rs6000-builtins.def (__builtin_darn): Expand to |
| darn_64_di. Add {32bit} attribute. Return long. |
| (__builtin_darn_32): Expand to darn_32_di. Add {32bit} attribute. |
| Return long. |
| (__builtin_darn_raw): Expand to darn_raw_di. Add {32bit} attribute. |
| Return long. |
| * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Expand the darn |
| builtins to the _si variants for -m32. |
| * config/rs6000/rs6000.md (UNSPECV_DARN_32, UNSPECV_DARN_RAW): Delete. |
| (UNSPECV_DARN): Update comment. |
| (darn_32, darn_raw, darn): Delete. |
| (darn_32_<mode>, darn_64_<mode>, darn_raw_<mode> for GPR): New. |
| (@darn<mode> for GPR): New. |
| |
| 2021-12-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-overload.def (__builtin_vec_promote): Add second |
| argument. |
| |
| 2021-12-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/103744 |
| * tree-vect-stmts.c (vectorizable_load): Handle multi-vector |
| SLP gather loads. |
| |
| 2021-12-17 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Rename to -fstack-protector. |
| |
| 2021-12-17 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Fix spelling issues. |
| |
| 2021-12-17 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/103741 |
| * tree-vect-stmts.c (vectorizable_operation): Check for boolean. |
| |
| 2021-12-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-driver.c (darwin_driver_init): Exit from the |
| option handling early if the command line is definitely enpty. |
| * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Remove |
| setting for the default content of weak_reference_mismatches. |
| |
| 2021-12-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h: Drop trailing _x from the |
| builtin_decls array name. |
| |
| 2021-12-17 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/100738 |
| * config/i386/sse.md (*avx_cmp<mode>3_lt, *avx_cmp<mode>3_ltint): |
| Remove MEM_P restriction and add force_reg for operands[2]. |
| (*avx_cmp<mode>3_ltint_not): Add new define_insn_and_split. |
| |
| 2021-12-17 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * builtins.def (BUILT_IN_DYNAMIC_OBJECT_SIZE): New builtin. |
| * tree-object-size.h: Move object size type bits enum from |
| tree-object-size.c and add new value OST_DYNAMIC. |
| * builtins.c (expand_builtin, fold_builtin_2): Handle it. |
| (fold_builtin_object_size): Handle new builtin and adjust for |
| change to compute_builtin_object_size. |
| * tree-object-size.c: Include builtins.h. |
| (compute_builtin_object_size): Adjust. |
| (early_object_sizes_execute_one, |
| dynamic_object_sizes_execute_one): New functions. |
| (object_sizes_execute): Rename insert_min_max_p argument to |
| early. Handle BUILT_IN_DYNAMIC_OBJECT_SIZE and call the new |
| functions. |
| * doc/extend.texi (__builtin_dynamic_object_size): Document new |
| builtin. |
| |
| 2021-12-17 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * tree-object-size.h (compute_builtin_object_size): Return tree |
| instead of HOST_WIDE_INT. |
| * builtins.c (fold_builtin_object_size): Adjust. |
| * gimple-fold.c (gimple_fold_builtin_strncat): Likewise. |
| * ubsan.c (instrument_object_size): Likewise. |
| * tree-object-size.c (object_size): New structure. |
| (object_sizes): Change type to vec<object_size>. |
| (initval): New function. |
| (unknown): Use it. |
| (size_unknown_p, size_initval, size_unknown): New functions. |
| (object_sizes_unknown_p): Use it. |
| (object_sizes_get): Return tree. |
| (object_sizes_initialize): Rename from object_sizes_set_force |
| and set VAL parameter type as tree. Add new parameter WHOLEVAL. |
| (object_sizes_set): Set VAL parameter type as tree and adjust |
| implementation. Add new parameter WHOLEVAL. |
| (size_for_offset): New function. |
| (decl_init_size): Adjust comment. |
| (addr_object_size): Change PSIZE parameter to tree and adjust |
| implementation. Add new parameter PWHOLESIZE. |
| (alloc_object_size): Return tree. |
| (compute_builtin_object_size): Return tree in PSIZE. |
| (expr_object_size, call_object_size, unknown_object_size): |
| Adjust for object_sizes_set change. |
| (merge_object_sizes): Drop OFFSET parameter and adjust |
| implementation for tree change. |
| (plus_stmt_object_size): Call collect_object_sizes_for directly |
| instead of merge_object_size and call size_for_offset to get net |
| size. |
| (cond_expr_object_size, collect_object_sizes_for, |
| object_sizes_execute): Adjust for change of type from |
| HOST_WIDE_INT to tree. |
| (check_for_plus_in_loops_1): Likewise and skip non-positive |
| offsets. |
| |
| 2021-12-17 Jason Merrill <jason@redhat.com> |
| |
| PR c++/103681 |
| * common.opt (fabi-version): Add v17. |
| |
| 2021-12-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/103571 |
| * config/i386/i386.h (VALID_AVX256_REG_MODE): Add V16HFmode. |
| (VALID_AVX256_REG_OR_OI_VHF_MODE): Replace with ... |
| (VALID_AVX256_REG_OR_OI_MODE): ... this. Remove V16HFmode. |
| (VALID_AVX512F_SCALAR_MODE): Remove HImode and HFmode. |
| (VALID_AVX512FP16_SCALAR_MODE): New. |
| (VALID_AVX512F_REG_MODE): Add V32HFmode. |
| (VALID_SSE2_REG_MODE): Add V8HFmode, V4HFmode and V2HFmode. |
| (VALID_SSE2_REG_VHF_MODE): Remove. |
| (VALID_INT_MODE_P): Add V2HFmode. |
| * config/i386/i386.c (function_arg_advance_64): |
| Remove explicit mention of V16HFmode and V32HFmode. |
| (ix86_hard_regno_mode_ok): Remove explicit mention of XImode |
| and V32HFmode, use VALID_AVX512F_REG_OR_XI_MODE instead. |
| Use VALID_AVX512FP_SCALAR_MODE for TARGET_aVX512FP16. |
| Use VALID_AVX256_REG_OR_OI_MODE instead of |
| VALID_AVX256_REG_OR_OI_VHF_MODE and VALID_SSE2_REG_MODE instead |
| of VALID_SSE2_REG_VHF_MODE. |
| (ix86_set_reg_reg_cost): Remove usge of VALID_AVX512FP16_REG_MODE. |
| (ix86_vector_mode_supported): Ditto. |
| |
| 2021-12-16 Martin Liska <mliska@suse.cz> |
| |
| PR c++/103696 |
| * attribs.c (decl_attributes): Check if |
| target_option_current_node is changed. |
| |
| 2021-12-16 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Add missing dash. |
| |
| 2021-12-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (resolution): New enum. |
| (resolve_vec_mul): New function. |
| (resolve_vec_cmpne): Likewise. |
| (resolve_vec_adde_sube): Likewise. |
| (resolve_vec_addec_subec): Likewise. |
| (resolve_vec_splats): Likewise. |
| (resolve_vec_extract): Likewise. |
| (resolve_vec_insert): Likewise. |
| (resolve_vec_step): Likewise. |
| (find_instance): Likewise. |
| (altivec_resolve_overloaded_builtin): Many cleanups. Call factored-out |
| functions. Move variable declarations closer to uses. Add commentary. |
| Remove unnecessary levels of braces. Avoid use of gotos. Change |
| misleading variable names. Use switches over if-else-if chains. |
| |
| 2021-12-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| PR target/103729 |
| * config/aarch64/aarch64-simd.md (aarch64_movv8di): Allow big endian |
| targets to move V8DI. |
| |
| 2021-12-16 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR driver/103644 |
| * gcc.c (check_offload_target_name): Add 'default' and 'disable' |
| to the candidate list. |
| |
| 2021-12-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure: Regenerate. |
| |
| 2021-12-15 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/nvptx/nvptx-opts.h (ptx_isa): PTX_ISA_SM75 and PTX_ISA_SM80 |
| ISA levels. |
| * config/nvptx/nvptx.opt: Add sm_75 and sm_80 to -misa. |
| * config/nvptx/nvptx.h (TARGET_SM75, TARGET_SM80): |
| New helper macros to conditionalize functionality on target ISA. |
| * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ |
| support for the new ISA levels. |
| * config/nvptx/nvptx.c (nvptx_file_start): Add support for TARGET_SM75 |
| and TARGET_SM80. |
| * config/nvptx/nvptx.md (define_c_enum "unspec"): New UNSPEC_TANH. |
| (define_mode_iterator HSFM): New iterator for HFmode and SFmode. |
| (exp2hf2): New define_insn controlled by TARGET_SM75. |
| (tanh<mode>2): New define_insn controlled by TARGET_SM75. |
| (sminhf3, smaxhf3): New define_isnns controlled by TARGET_SM80. |
| |
| 2021-12-15 Tom de Vries <tdevries@suse.de> |
| |
| * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_7_0. |
| * config/nvptx/nvptx.c (nvptx_file_start): Handle TARGET_PTX_7_0. |
| * config/nvptx/nvptx.h (TARGET_PTX_7_0): New macro. |
| * config/nvptx/nvptx.opt (ptx_version): Add 7.0. |
| |
| 2021-12-15 Richard Sandiford <richard.sandiford@arm.com> |
| Tamar Christina <tamar.christina@arm.com> |
| |
| PR target/103094 |
| * config/aarch64/aarch64.c (aarch64_short_vector_p): Return false |
| for structure modes, rather than ignoring the type in that case. |
| |
| 2021-12-15 Tamar Christina <tamar.christina@arm.com> |
| |
| PR rtl-optimization/103350 |
| * ree.c (add_removable_extension): Don't stop at first definition but |
| inspect all. |
| |
| 2021-12-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/103619 |
| * dwarf2cfi.c (dwf_cfa_reg): Remove gcc_assert. |
| (operator==, operator!=): New overloaded operators. |
| (dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_offset, |
| dwarf2out_frame_debug_expr): Compare vars with cfa_reg type directly |
| with REG rtxes rather than with dwf_cfa_reg results on those REGs. |
| (create_cie_data): Use stack_pointer_rtx instead of |
| gen_rtx_REG (Pmode, STACK_POINTER_REGNUM). |
| (execute_dwarf2_frame): Use hard_frame_pointer_rtx instead of |
| gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM). |
| |
| 2021-12-15 Martin Liska <mliska@suse.cz> |
| |
| PR target/103661 |
| * config/i386/i386-builtins.c (fold_builtin_cpu): Compare to 0 |
| as API expects that non-zero values are returned (do that |
| it mask == 31). |
| For "avx512vbmi2" argument, we return now 1 << 31, which is a |
| negative integer value. |
| |
| 2021-12-15 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/101796 |
| * config/i386/predicates.md (const_vector_operand): |
| Add new predicate. |
| * config/i386/sse.md(<insn><mode>3<mask_name>): |
| Add new define_split below. |
| |
| 2021-12-15 Michael Meissner <meissner@the-meissners.org> |
| |
| * config/rs6000/rs6000.md (UNSPEC_XXSPLTIDP_CONST): New unspec. |
| (UNSPEC_XXSPLTIW_CONST): New unspec. |
| (movsf_hardfloat): Add support for generating XXSPLTIDP. |
| (mov<mode>_hardfloat32): Likewise. |
| (mov<mode>_hardfloat64): Likewise. |
| (xxspltidp_<mode>_internal): New insns. |
| (xxspltiw_<mode>_internal): New insns. |
| (splitters for SF/DFmode): Add new splitters for XXSPLTIDP. |
| |
| 2021-12-15 Michael Meissner <meissner@the-meissners.org> |
| |
| * config/rs6000/predicates.md (easy_fp_constant): Add support for |
| generating XXSPLTIDP. |
| (vsx_prefixed_constant): Likewise. |
| (easy_vector_constant): Likewise. |
| * config/rs6000/rs6000-protos.h (constant_generates_xxspltidp): |
| New declaration. |
| * config/rs6000/rs6000.c (output_vec_const_move): Add support for |
| generating XXSPLTIDP. |
| (prefixed_xxsplti_p): Likewise. |
| (constant_generates_xxspltidp): New function. |
| * config/rs6000/rs6000.opt (-msplat-float-constant): New debug option. |
| |
| 2021-12-15 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/constraints.md (eP): Update comment. |
| * config/rs6000/predicates.md (easy_fp_constant): Add support for |
| generating XXSPLTIW. |
| (vsx_prefixed_constant): New predicate. |
| (easy_vector_constant): Add support for |
| generating XXSPLTIW. |
| * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): New |
| declaration. |
| (constant_generates_xxspltiw): Likewise. |
| * config/rs6000/rs6000.c (xxspltib_constant_p): Generate XXSPLTIW |
| if possible instead of XXSPLTIB and sign extending the constant. |
| (output_vec_const_move): Add support for XXSPLTIW. |
| (prefixed_xxsplti_p): New function. |
| (constant_generates_xxspltiw): New function. |
| * config/rs6000/rs6000.md (prefixed attribute): Add support to |
| mark XXSPLTI* instructions as being prefixed. |
| * config/rs6000/rs6000.opt (-msplat-word-constant): New debug |
| switch. |
| * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add support for |
| generating XXSPLTIW or XXSPLTIDP. |
| (vsx_mov<mode>_32bit): Likewise. |
| * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the |
| eP constraint. |
| |
| 2021-12-15 Michael Meissner <meissner@the-meissners.org> |
| |
| * config/rs6000/constraints.md (eQ): New constraint. |
| * config/rs6000/predicates.md (easy_fp_constant): Add support for |
| generating the LXVKQ instruction. |
| (easy_vector_constant_ieee128): New predicate. |
| (easy_vector_constant): Add support for generating the LXVKQ |
| instruction. |
| * config/rs6000/rs6000-protos.h (constant_generates_lxvkq): New |
| declaration. |
| * config/rs6000/rs6000.c (output_vec_const_move): Add support for |
| generating LXVKQ. |
| (constant_generates_lxvkq): New function. |
| * config/rs6000/rs6000.opt (-mieee128-constant): New debug |
| option. |
| * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add support for |
| generating LXVKQ. |
| (vsx_mov<mode>_32bit): Likewise. |
| * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the |
| eQ constraint. |
| |
| 2021-12-15 Michael Meissner <meissner@the-meissners.org> |
| |
| * config/rs6000/rs6000-protos.h (VECTOR_128BIT_BITS): New macro. |
| (VECTOR_128BIT_BYTES): Likewise. |
| (VECTOR_128BIT_HALF_WORDS): Likewise. |
| (VECTOR_128BIT_WORDS): Likewise. |
| (VECTOR_128BIT_DOUBLE_WORDS): Likewise. |
| (vec_const_128bit_type): New structure type. |
| (vec_const_128bit_to_bytes): New declaration. |
| * config/rs6000/rs6000.c (constant_int_to_128bit_vector): New |
| helper function. |
| (constant_fp_to_128bit_vector): New helper function. |
| (vec_const_128bit_to_bytes): New function. |
| |
| 2021-12-15 Alexandre Oliva <oliva@adacore.com> |
| |
| PR target/100518 |
| * builtins.c (try_store_by_multiple_pieces): Drop address |
| conversion to ptr_mode. |
| |
| 2021-12-15 Alexandre Oliva <oliva@adacore.com> |
| |
| PR middle-end/100843 |
| * builtins.c (try_store_by_multiple_pieces): Fail if min_len |
| is greater than max_len. |
| |
| 2021-12-14 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103682 |
| * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check |
| is_gimple_assign before gimple_assign_rhs_code. |
| |
| 2021-12-14 Sören Tempel <soeren@soeren-tempel.net> |
| |
| * ginclude/stddef.h (__DEFINED_ptrdiff_t): Add support for musl |
| libc typedef macro guard. |
| (__DEFINED_size_t): Ditto. |
| (__DEFINED_wchar_t): Ditto. |
| |
| 2021-12-14 JoJo R <rjiejie@linux.alibaba.com> |
| |
| * regrename.c (find_rename_reg): Return satisfied regno |
| if instruction is noop move. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Rename |
| rs6000_builtin_decls_x to rs6000_builtin_decls. |
| (altivec_resolve_overloaded_builtin): Likewise. Also rename |
| rs6000_builtin_info_x to rs6000_builtin_info. |
| * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Rename |
| rs6000_builtin_info_x to rs6000_builtin_info. |
| (rs6000_builtin_is_supported): Likewise. |
| (rs6000_gimple_fold_mma_builtin): Likewise. Also rename |
| rs6000_builtin_decls_x to rs6000_builtin_decls. |
| (rs6000_gimple_fold_builtin): Rename rs6000_builtin_info_x to |
| rs6000_builtin_info. |
| (cpu_expand_builtin): Likewise. |
| (rs6000_expand_builtin): Likewise. |
| (rs6000_init_builtins): Likewise. Also rename rs6000_builtin_decls_x |
| to rs6000_builtin_decls. |
| (rs6000_builtin_decl): Rename rs6000_builtin_decls_x to |
| rs6000_builtin_decls. |
| * config/rs6000/rs6000-gen-builtins.c (write_decls): In generated code, |
| rename rs6000_builtin_decls_x to rs6000_builtin_decls, and rename |
| rs6000_builtin_info_x to rs6000_builtin_info. |
| (write_bif_static_init): In generated code, rename |
| rs6000_builtin_info_x to rs6000_builtin_info. |
| (write_init_bif_table): In generated code, rename |
| rs6000_builtin_decls_x to rs6000_builtin_decls, and rename |
| rs6000_builtin_info_x to rs6000_builtin_info. |
| (write_init_ovld_table): In generated code, rename |
| rs6000_builtin_decls_x to rs6000_builtin_decls. |
| (write_init_file): Likewise. |
| * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): |
| Likewise. |
| (rs6000_builtin_md_vectorized_function): Likewise. |
| (rs6000_builtin_reciprocal): Likewise. |
| (add_condition_to_bb): Likewise. |
| (rs6000_atomic_assign_expand_fenv): Likewise. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_resolve_new_overloaded_builtin): |
| Remove forward declaration. |
| (rs6000_new_builtin_type_compatible): Rename to |
| rs6000_builtin_type_compatible. |
| (rs6000_builtin_type_compatible): Remove. |
| (altivec_resolve_overloaded_builtin): Remove. |
| (altivec_build_new_resolved_builtin): Rename to |
| altivec_build_resolved_builtin. |
| (altivec_resolve_new_overloaded_builtin): Rename to |
| altivec_resolve_overloaded_builtin. Remove static keyword. Adjust |
| called function names. |
| * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Remove |
| forward declaration. |
| (rs6000_gimple_fold_new_builtin): Likewise. |
| (rs6000_invalid_new_builtin): Rename to rs6000_invalid_builtin. |
| (rs6000_gimple_fold_builtin): Remove. |
| (rs6000_new_builtin_valid_without_lhs): Rename to |
| rs6000_builtin_valid_without_lhs. |
| (rs6000_new_builtin_is_supported): Rename to |
| rs6000_builtin_is_supported. |
| (rs6000_gimple_fold_new_mma_builtin): Rename to |
| rs6000_gimple_fold_mma_builtin. |
| (rs6000_gimple_fold_new_builtin): Rename to |
| rs6000_gimple_fold_builtin. Remove static keyword. Adjust called |
| function names. |
| (rs6000_expand_builtin): Remove. |
| (new_cpu_expand_builtin): Rename to cpu_expand_builtin. |
| (new_mma_expand_builtin): Rename to mma_expand_builtin. |
| (new_htm_spr_num): Rename to htm_spr_num. |
| (new_htm_expand_builtin): Rename to htm_expand_builtin. Change name |
| of called function. |
| (rs6000_expand_new_builtin): Rename to rs6000_expand_builtin. Remove |
| static keyword. Adjust called function names. |
| (rs6000_new_builtin_decl): Rename to rs6000_builtin_decl. Remove |
| static keyword. |
| (rs6000_builtin_decl): Remove. |
| * config/rs6000/rs6000-gen-builtins.c (write_decls): In gnerated code, |
| rename rs6000_new_builtin_is_supported to rs6000_builtin_is_supported. |
| * config/rs6000/rs6000-internal.h (rs6000_invalid_new_builtin): Rename |
| to rs6000_invalid_builtin. |
| * config/rs6000/rs6000.c (rs6000_new_builtin_vectorized_function): |
| Rename to rs6000_builtin_vectorized_function. |
| (rs6000_new_builtin_md_vectorized_function): Rename to |
| rs6000_builtin_md_vectorized_function. |
| (rs6000_builtin_vectorized_function): Remove. |
| (rs6000_builtin_md_vectorized_function): Remove. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def: Delete. |
| * config/rs6000/rs6000-call.c (builtin_compatibility): Delete. |
| (builtin_description): Delete. |
| (builtin_hash_struct): Delete. |
| (builtin_hasher): Delete. |
| (builtin_hash_table): Delete. |
| (builtin_hasher::hash): Delete. |
| (builtin_hasher::equal): Delete. |
| (rs6000_builtin_info_type): Delete. |
| (rs6000_builtin_info): Delete. |
| (bdesc_compat): Delete. |
| (bdesc_3arg): Delete. |
| (bdesc_4arg): Delete. |
| (bdesc_dst): Delete. |
| (bdesc_2arg): Delete. |
| (bdesc_altivec_preds): Delete. |
| (bdesc_abs): Delete. |
| (bdesc_1arg): Delete. |
| (bdesc_0arg): Delete. |
| (bdesc_htm): Delete. |
| (bdesc_mma): Delete. |
| (rs6000_overloaded_builtin_p): Delete. |
| (rs6000_overloaded_builtin_name): Delete. |
| (htm_spr_num): Delete. |
| (rs6000_builtin_is_supported_p): Delete. |
| (rs6000_gimple_fold_mma_builtin): Delete. |
| (gt-rs6000-call.h): Remove include directive. |
| * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Delete. |
| (rs6000_builtin_is_supported_p): Delete. |
| (rs6000_overloaded_builtin_name): Delete. |
| * config/rs6000/rs6000.c (rs6000_builtin_decls): Delete. |
| (rs6000_debug_reg_global): Remove reference to RS6000_BUILTIN_COUNT. |
| * config/rs6000/rs6000.h (rs6000_builtins): Delete. |
| (altivec_builtin_types): Delete. |
| (rs6000_builtin_decls): Delete. |
| * config/rs6000/t-rs6000 (TM_H): Don't add rs6000-builtin.def. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Rename to... |
| * config/rs6000/rs6000-builtins.def: ...this. |
| * config/rs6000/rs6000-gen-builtins.c: Adjust header commentary. |
| * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Rename |
| rs6000-builtin-new.def to rs6000-builtins.def. |
| (rs6000-builtins.c): Likewise. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Remove. |
| * config/rs6000/rs6000.h (altivec_overloaded_builtins): Remove. |
| |
| 2021-12-14 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/103548 |
| * config/rs6000/mma.md (UNSPEC_MMA_ASSEMBLE): Rename unspec from this... |
| (UNSPEC_VSX_ASSEMBLE): ...to this. |
| (UNSPECV_MMA_ASSEMBLE): New unspecv. |
| (vsx_assemble_pair): Use UNSPEC_VSX_ASSEMBLE. |
| (*vsx_assemble_pair): Likewise. |
| (mma_assemble_acc): Use UNSPECV_MMA_ASSEMBLE. |
| (*mma_assemble_acc): Likewise. |
| * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle |
| UNSPEC_VOLATILE. Use UNSPEC_VSX_ASSEMBLE and UNSPECV_MMA_ASSEMBLE. |
| |
| 2021-12-14 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/103571 |
| * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate) |
| <case E_V8HFmode>: Implement for TARGET_SSE2. |
| <case E_V16HFmode>: Implement for TARGET_AVX. |
| <case E_V32HFmode>: Implement for TARGET_AVX512F. |
| (ix86_expand_vector_set_var): Handle V32HFmode |
| without TARGET_AVX512BW. |
| (ix86_expand_vector_extract) |
| <case E_V8HFmode>: Implement for TARGET_SSE2. |
| <case E_V16HFmode>: Implement for TARGET_AVX. |
| <case E_V32HFmode>: Implement for TARGET_AVX512BW. |
| (expand_vec_perm_broadcast_1) <case E_V8HFmode>: New. |
| * config/i386/sse.md (VI12HF_AVX512VL): Remove |
| TARGET_AVX512FP16 condition. |
| (V): Ditto. |
| (V_256_512): Ditto. |
| (avx_vbroadcastf128_<mode>): Use V_256H mode iterator. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Remove |
| test for new_builtins_are_live and simplify. |
| * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Remove |
| dead function. |
| (altivec_resolve_overloaded_builtin): Remove test for |
| new_builtins_are_live and simplify. |
| * config/rs6000/rs6000-call.c (altivec_init_builtins): Remove forward |
| declaration. |
| (builtin_function_type): Likewise. |
| (rs6000_common_init_builtins): Likewise. |
| (htm_init_builtins): Likewise. |
| (mma_init_builtins): Likewise. |
| (def_builtin): Remove dead function. |
| (rs6000_expand_zeroop_builtin): Likewise. |
| (rs6000_expand_mtfsf_builtin): Likewise. |
| (rs6000_expand_mtfsb_builtin): Likewise. |
| (rs6000_expand_set_fpscr_rn_builtin): Likewise. |
| (rs6000_expand_set_fpscr_drn_builtin): Likewise. |
| (rs6000_expand_unop_builtin): Likewise. |
| (altivec_expand_abs_builtin): Likewise. |
| (rs6000_expand_binop_builtin): Likewise. |
| (altivec_expand_lxvr_builtin): Likewise. |
| (altivec_expand_lv_builtin): Likewise. |
| (altivec_expand_stxvl_builtin): Likewise. |
| (altivec_expand_stv_builtin): Likewise. |
| (mma_expand_builtin): Likewise. |
| (htm_expand_builtin): Likewise. |
| (cpu_expand_builtin): Likewise. |
| (rs6000_expand_quaternop_builtin): Likewise. |
| (rs6000_expand_ternop_builtin): Likewise. |
| (altivec_expand_dst_builtin): Likewise. |
| (altivec_expand_vec_sel_builtin): Likewise. |
| (altivec_expand_builtin): Likewise. |
| (rs6000_invalid_builtin): Likewise. |
| (rs6000_builtin_valid_without_lhs): Likewise. |
| (rs6000_gimple_fold_builtin): Remove test for new_builtins_are_live and |
| simplify. |
| (rs6000_expand_builtin): Likewise. |
| (rs6000_init_builtins): Remove tests for new_builtins_are_live and |
| simplify. |
| (rs6000_builtin_decl): Likewise. |
| (altivec_init_builtins): Remove dead function. |
| (mma_init_builtins): Likewise. |
| (htm_init_builtins): Likewise. |
| (builtin_quaternary_function_type): Likewise. |
| (builtin_function_type): Likewise. |
| (rs6000_common_init_builtins): Likewise. |
| * config/rs6000/rs6000-gen-builtins.c (write_header_file): Don't |
| declare new_builtins_are_live. |
| (write_init_bif_table): In generated code, remove test for |
| new_builtins_are_live and simplify. |
| (write_init_ovld_table): Likewise. |
| (write_init_file): Don't initialize new_builtins_are_live. |
| * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove |
| test for new_builtins_are_live and simplify. |
| (rs6000_builtin_md_vectorized_function): Likewise. |
| (rs6000_builtin_reciprocal): Likewise. |
| (add_condition_to_bb): Likewise. |
| (rs6000_atomic_assign_expand_fenv): Likewise. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/103625 |
| * config/rs6000/rs6000-builtin-new.def (__builtin_altivec_vcmpequd): |
| Move to power8-vector stanza. |
| (__builtin_altivec_vcmpequd_p): Likewise. |
| (__builtin_altivec_vcmpgtsd): Likewise. |
| (__builtin_altivec_vcmpgtsd_p): Likewise. |
| (__builtin_altivec_vcmpgtud): Likewise. |
| (__builtin_altivec_vcmpgtud_p): Likewise. |
| |
| 2021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/103623 |
| * config/rs6000/rs6000-builtin-new.def (__builtin_pack_longdouble): Add |
| ibmld attribute. |
| (__builtin_unpack_longdouble): Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Add special |
| handling for ibmld attribute. |
| * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add isibmld. |
| (parse_bif_attrs): Handle ibmld. |
| (write_decls): Likewise. |
| (write_bif_static_init): Likewise. |
| |
| 2021-12-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103585 |
| * ipa-modref-tree.c (modref_access_node::range_info_useful_p): Handle |
| MODREF_GLOBAL_MEMORY_PARM. |
| (modref_access_node::dump): Likewise. |
| (modref_access_node::get_call_arg): Likewise. |
| * ipa-modref-tree.h (enum modref_special_parms): Add |
| MODREF_GLOBAL_MEMORY_PARM. |
| (modref_access_node::useful_for_kill): Handle |
| MODREF_GLOBAL_MEMORY_PARM. |
| (modref:tree::merge): Add promote_unknown_to_global. |
| * ipa-modref.c (verify_arg):New function. |
| (may_access_nonescaping_parm_p): New function. |
| (modref_access_analysis::record_global_memory_load): New member |
| function. |
| (modref_access_analysis::record_global_memory_store): Likewise. |
| (modref_access_analysis::process_fnspec): Distingush global and local |
| memory. |
| (modref_access_analysis::analyze_call): Likewise. |
| * tree-ssa-alias.c (ref_may_access_global_memory_p): New function. |
| (modref_may_conflict): Use it. |
| |
| 2021-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): |
| Define AARCH64_LS64_BUILTIN_LD64B, AARCH64_LS64_BUILTIN_ST64B, |
| AARCH64_LS64_BUILTIN_ST64BV, AARCH64_LS64_BUILTIN_ST64BV0. |
| (aarch64_init_ls64_builtin_decl): Helper function. |
| (aarch64_init_ls64_builtins): Helper function. |
| (aarch64_init_ls64_builtins_types): Helper function. |
| (aarch64_general_init_builtins): Init LS64 intrisics for |
| TARGET_LS64. |
| (aarch64_expand_builtin_ls64): LS64 intrinsics expander. |
| (aarch64_general_expand_builtin): Handle aarch64_expand_builtin_ls64. |
| (ls64_builtins_data): New helper struct. |
| (v8di_UP): New define. |
| * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define |
| __ARM_FEATURE_LS64. |
| * config/aarch64/aarch64.c (aarch64_classify_address): Enforce the |
| V8DI range (7-bit signed scaled) for both ends of the range. |
| * config/aarch64/aarch64-simd.md (movv8di): New pattern. |
| (aarch64_movv8di): New pattern. |
| * config/aarch64/aarch64.h (AARCH64_ISA_LS64): New define. |
| (TARGET_LS64): New define. |
| * config/aarch64/aarch64.md: Add UNSPEC_LD64B, UNSPEC_ST64B, |
| UNSPEC_ST64BV and UNSPEC_ST64BV0. |
| (ld64b): New define_insn. |
| (st64b): New define_insn. |
| (st64bv): New define_insn. |
| (st64bv0): New define_insn. |
| * config/aarch64/arm_acle.h (data512_t): New type derived from |
| __arm_data512_t. |
| (__arm_data512_t): New internal type. |
| (__arm_ld64b): New intrinsic. |
| (__arm_st64b): New intrinsic. |
| (__arm_st64bv): New intrinsic. |
| (__arm_st64bv0): New intrinsic. |
| * config/arm/types.md: Add new type ls64. |
| |
| 2021-12-14 Olivier Hainque <hainque@adacore.com> |
| |
| * config/i386/t-vxworks: Drop the fPIC multilibs. |
| |
| 2021-12-14 Fred Konrad <konrad@adacore.com> |
| |
| * config/rs6000/t-vxworks: Drop the fPIC multilib. |
| |
| 2021-12-13 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR target/99531 |
| * ira-costs.c (record_operand_costs): Do not take pseudo class |
| calculated on the 1st iteration into account when processing move |
| involving the pseudo and a hard register. |
| |
| 2021-12-13 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386.md (define_split any_or:SWI248 -> orb %?h): |
| Optimize the case where the integer constant operand is zero. |
| |
| 2021-12-13 Doug Rupp <rupp@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_LINK_OS_SPEC): New spec. |
| (VXWORKS_BASE_LINK_SPEC): New spec, using the former. |
| (VXWORKS_EXTRA_LINK_SPEC): New spec for old and new VxWorks. |
| (VXWORKS_LINK_SPEC): Combo of BASE and EXTRA specs. |
| * config/rs6000/vxworks.h (VXWORKS_LINK_OS_SPEC): Empty. |
| (LINK_OS_EXTRA_SPEC32): Use VXWORKS_LINK_SPEC. |
| (LINK_OS_EXTRA_SPEC64): Likewise. |
| |
| 2021-12-13 Fred Konrad <konrad@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_BASE_LIBS_RTP): Guard -lc_internal |
| on !shared+!non-static and document. |
| (VXWORKS_LIB_SPEC): Remove the bits intended to drag the |
| init/fini functions from libc_internal in the shared lib case. |
| (VX_CRTBEGIN_SPEC/VX_CRTEND_SPEC): Use vxcrtstuff objects also in |
| configurations with shared lib and INITFINI_ARRAY support. |
| |
| 2021-12-13 Fred Konrad <konrad@adacore.com> |
| Olivier Hainque <hainque@adacore.com> |
| |
| * config/vx-common.h: Define REAL_LIBGCC_SPEC since the |
| '-non-static' option is not standard. |
| * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Implement the LIBGCC_SPEC |
| since REAL_LIBGCC_SPEC is used now. |
| (STARTFILE_PREFIX_SPEC): Use the PIC VSB when building shared libraries |
| or non-static binaries. |
| |
| 2021-12-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * common.opt: Add -fipa-strict-aliasing. |
| * doc/invoke.texi: Document -fipa-strict-aliasing. |
| * ipa-modref.c (modref_access_analysis::record_access): Honor |
| -fipa-strict-aliasing. |
| (modref_access_analysis::record_access_lto): Likewise. |
| |
| 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (armv8.8-a): Define. |
| * config/aarch64/aarch64.h (AARCH64_FL_V8_8): Define. |
| (AARCH64_FL_FOR_ARCH8_8): Define. |
| * doc/invoke.texi: Document -march=armv8.8-a. |
| |
| 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_setmem_mops): Define. |
| (aarch64_expand_setmem): Adjust for TARGET_MOPS. |
| * config/aarch64/aarch64.h (CLEAR_RATIO): Adjust for TARGET_MOPS. |
| (SET_RATIO): Likewise. |
| * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_SETMEM. |
| (aarch64_setmemdi): Define. |
| (setmemdi): Adjust for TARGET_MOPS. |
| * config/aarch64/aarch64.opt (aarch64-mops-memset-size-threshold): |
| New param. |
| |
| 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (aarch64_movmemdi): Define. |
| (movmemdi): Define. |
| (unspec): Add UNSPEC_MOVMEM. |
| * config/aarch64/aarch64.opt (aarch64-mops-memmove-size-threshold): |
| New param. |
| |
| 2021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64-option-extensions.def (mops): Define. |
| * config/aarch64/aarch64.c (aarch64_expand_cpymem_mops): Define. |
| (aarch64_expand_cpymem): Define. |
| * config/aarch64/aarch64.h (AARCH64_FL_MOPS): Define. |
| (AARCH64_ISA_MOPS): Define. |
| (TARGET_MOPS): Define. |
| (MOVE_RATIO): Adjust for TARGET_MOPS. |
| * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_CPYMEM. |
| (aarch64_cpymemdi): New pattern. |
| (cpymemdi): Adjust for TARGET_MOPS. |
| * config/aarch64/aarch64.opt (aarch64-mops-memcpy-size-threshol): |
| New param. |
| * doc/invoke.texi (AArch64 Options): Document +mops. |
| |
| 2021-12-13 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/103636 |
| * ipa-inline.c (can_inline_edge_p): Move logic checking |
| no_profile_instrument_function logic to ... |
| (can_early_inline_edge_p): ... here. |
| |
| 2021-12-13 Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks/_yvals.h: #include yvals.h also if |
| defined(__RTP__). |
| |
| 2021-12-13 Olivier Hainque <hainque@adacore.com> |
| |
| * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Define |
| _C99 for C++. |
| |
| 2021-12-13 Olivier Hainque <hainque@adacore.com> |
| |
| * config/t-vxworks: Clear NATIVE_SYSTEM_HEADER_DIR. |
| * config/vxworks.h (SYSROOT_HEADERS_SUFFIX_SPEC): Define, for |
| VxWorks 7 and earlier. |
| (VXWORKS_ADDITIONAL_CPP_SPEC): Simplify accordingly. |
| (STARTFILE_PREFIX_SPEC): Adjust accordingly. |
| * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Adjust. |
| |
| 2021-12-13 Martin Liska <mliska@suse.cz> |
| |
| * doc/extend.texi: Use @item for the first @itemx entry. |
| |
| 2021-12-13 Jakub Jelinek <jakub@redhat.com> |
| |
| * machmode.h (gt_pch_nx): Use gt_pointer_operator as type of second |
| argument instead of equivalent void (*) (void *, void *, void *). |
| * poly-int.h (gt_pch_nx): Likewise. |
| * wide-int.h (gt_pch_nx): Likewise. |
| * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Likewise. |
| |
| 2021-12-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103513 |
| * ipa-fnsummary.c (evaluate_conditions_for_known_args): Do not ICE |
| on ternary expression. |
| |
| 2021-12-13 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR target/103515 |
| * attribs.c (decl_attributes): Check if target options change and |
| create one node if so. |
| |
| 2021-12-12 Jonathan Wakely <jwakely@redhat.com> |
| |
| * Makefile.in: Remove unique-ptr-tests.o. |
| * selftest-run-tests.c (selftest::run_tests): Remove |
| unique_ptr_tests_cc_tests. |
| * selftest.h (unique_ptr_tests_cc_tests): Remove. |
| * system.h: Check INCLUDE_MEMORY instead of INCLUDE_UNIQUE_PTR |
| and include <memory> instead of "unique-ptr.h". |
| * unique-ptr-tests.cc: Removed. |
| |
| 2021-12-12 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/nvptx/nvptx-opts.h (ptx_isa): Add PTX_ISA_SM53 ISA level |
| to enumeration. |
| * config/nvptx/nvptx.opt: Add sm_53 to -misa. |
| * config/nvptx/nvptx-modes.def: Add support for HFmode. |
| * config/nvptx/nvptx.h (TARGET_SM53): |
| New helper macro to conditionalize functionality on target ISA. |
| * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ |
| support for the new ISA levels. |
| * config/nvptx/nvptx.c (nvtx_ptx_type_from_mode): Support new HFmode |
| with the ".f16" suffix/qualifier. |
| (nvptx_file_start): Add support for TARGET_SM53. |
| (nvptx_omp_device_kind_arch_isa): Add support for TARGET_SM53 |
| and tweak TARGET_SM35. |
| (nvptx_scalar_mode_supported_p): Target hook with conditional |
| HFmode support on TARGET_SM53 and higher. |
| (nvptx_libgcc_floating_mode_supported_p): Likewise. |
| (TARGET_SCALAR_MODE_SUPPORTED_P): Use nvptx_scalar_mode_supported_p. |
| (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Likewise, use new hook. |
| * config/nvptx/nvptx.md (*movhf_insn): New define_insn. |
| (movhf): New define_expand for HFmode moves. |
| (addhf3, subhf3, mulhf, extendhf<mode>2, trunc<mode>hf2): New |
| instructions conditional on TARGET_SM53 (i.e. -misa=sm_53). |
| |
| 2021-12-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103665 |
| * ipa-modref.c (modref_access_analysis::analyze): Terminate BB |
| analysis on NULL memory access. |
| * ipa-pure-const.c (analyze_function): Likewise. |
| |
| 2021-12-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-profile.c (ipa_profile): Do not update hot bb threshold. |
| |
| 2021-12-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (get_modref_function_summary): Use ultimate_alias_target. |
| (ignore_edge): Likewise. |
| (compute_parm_map): Likewise. |
| (modref_propagate_in_scc): Likewise. |
| (modref_propagate_flags_in_scc): Likewise. |
| |
| 2021-12-10 Jason Merrill <jason@redhat.com> |
| |
| * symtab.c (symtab_node::equal_address_to): Fix comment typo. |
| |
| 2021-12-10 Doug Rupp <rupp@adacore.com> |
| |
| * config/vxworks.h (LINK_SPEC): Remove %(link_target). |
| Change %{v:-v} to %{v:-V}. |
| |
| 2021-12-10 Olivier Hainque <hainque@adacore.com> |
| |
| * config/t-vxworks: Remove assignment to STMP_FIXINC. |
| |
| 2021-12-10 Martin Liska <mliska@suse.cz> |
| |
| * params.opt: Add missing dot. |
| |
| 2021-12-10 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR ipa/103601 |
| * ipa-modref-tree.h (useful_for_kill_p): Zero width accesses aren't |
| useful for kill tracking. |
| |
| 2021-12-10 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/mkoffload.c (process_asm): Process the variable table |
| completely differently. |
| (process_obj): Encode the varaible data differently. |
| |
| 2021-12-10 Joel Hutton <joel.hutton@arm.com> |
| |
| PR tree-optimization/103523 |
| * tree-vect-loop.c (vectorizable_induction): Check for |
| PLUS_EXPR/MINUS_EXPR support. |
| |
| 2021-12-10 Cui,Lili <lili.cui@intel.com> |
| |
| * config/i386/i386.c (ix86_vector_costs::add_stmt_cost): Remove Tremont. |
| |
| 2021-12-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * doc/invoke.texi (max-inline-functions-called-once-loop-depth, |
| max-inline-functions-called-once-insns): New parameters. |
| * ipa-inline.c (check_callers): Handle |
| param_inline_functions_called_once_loop_depth and |
| param_inline_functions_called_once_insns. |
| (edge_badness): Fix linebreaks. |
| * params.opt (param=max-inline-functions-called-once-loop-depth, |
| param=max-inline-functions-called-once-insn): New params. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/103215 |
| * pointer-query.cc (access_ref::merge_ref): Extend the offset and |
| size of the merged object instead of using the larger. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101751 |
| * doc/extend.texi (attribute access): Adjust. |
| * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes): |
| Treat access mode none on a void* argument as expecting as few as |
| zero bytes. |
| |
| 2021-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR pch/71934 |
| * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Change type of |
| second argument from function with 2 pointer arguments to function |
| with 3 pointer arguments. |
| |
| 2021-12-09 Olivier Hainque <hainque@adacore.com> |
| |
| * config/aarch64/aarch64-vxworks.h (TARGET_OS_CPP_BUILTINS): |
| Use VX_CPU_PREFIX in CPU definitions. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| * pointer-query.cc (access_ref::dump): Define new function |
| (pointer_query::dump): Call it. |
| * pointer-query.h (access_ref::dump): Declare new function. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| * pointer-query.cc (compute_objsize_r): Add an argument. |
| (gimple_call_return_array): Pass a new argument to compute_objsize_r. |
| (access_ref::merge_ref): Same. |
| (access_ref::inform_access): Add an argument and use it. |
| (access_data::access_data): Initialize new member. |
| (handle_min_max_size): Pass a new argument to compute_objsize_r. |
| (handle_decl): New function. |
| (handle_array_ref): Pass a new argument to compute_objsize_r. |
| Avoid incrementing deref. |
| (set_component_ref_size): New function. |
| (handle_component_ref): New function. |
| (handle_mem_ref): Pass a new argument to compute_objsize_r. |
| Only increment deref after successfully computing object size. |
| (handle_ssa_name): New function. |
| (compute_objsize_r): Move code into helpers and call them. |
| (compute_objsize): Pass a new argument to compute_objsize_r. |
| * pointer-query.h (access_ref::inform_access): Add an argument. |
| (access_data::ostype): New member. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| * pointer-query.cc (access_ref::merge_ref): Define new function. |
| (access_ref::get_ref): Move code into merge_ref and call it. |
| * pointer-query.h (access_ref::merge_ref): Declare new function. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Pass |
| GIMPLE statement to compute_objsize. |
| * pointer-query.cc (compute_objsize): Add a statement argument. |
| * pointer-query.h (compute_objsize): Define a new overload. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-warn-access.cc (check_access): Adjust to member name |
| change. |
| (pass_waccess::check_strncmp): Same. |
| * pointer-query.cc (access_ref::access_ref): Remove arguments. |
| Simpilfy. |
| (access_data::access_data): Define new ctors. |
| (access_data::set_bound): Define new member function. |
| (compute_objsize_r): Remove unnecessary code. |
| * pointer-query.h (struct access_ref): Remove ctor arguments. |
| (struct access_data): Declare ctor overloads. |
| (access_data::dst_bndrng): New member. |
| (access_data::src_bndrng): New member. |
| |
| 2021-12-09 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/103143 |
| * pointer-query.cc (gimple_call_return_array): Call compute_objsize_r. |
| |
| 2021-12-09 Olivier Hainque <hainque@adacore.com> |
| Rasmus Villemoes <rv@rasmusvillemoes.dk> |
| |
| * Makefile.in (T_STDINT_GCC_H): New variable, path to |
| stdint-gcc.h that a target configuration may override when |
| use_gcc_stdint is "provide". |
| (stmp-int-hdrs): Depend on it and copy that for |
| USE_GCC_INT=provide. |
| * config.gcc (vxworks): Revert to use_gcc_stdint=provide. |
| * config/t-vxworks (T_STDINT_GCC_H): Define, as vxw-stdint-gcc.h. |
| (vxw-stdint-gcc.h): New target, produced from the original |
| stdint-gcc.h. |
| (vxw-glimits.h): Use an automatic variable to designate the |
| first and only prerequisite. |
| * config/vxworks/stdint.h: Remove. |
| |
| 2021-12-09 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR pch/71934 |
| * config/host-darwin.c (SAFE_ALLOC_SIZE): Remove. |
| (darwin_gt_pch_get_address): Rework for relocatable PCH. |
| (darwin_gt_pch_use_address): Likewise. |
| |
| 2021-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR pch/71934 |
| * config/host-darwin.c (darwin_gt_pch_use_address): When reading |
| manually the file into mapped area, update mapped_addr as |
| an automatic variable rather than addr which is a reference parameter. |
| * config/host-hpux.c (hpux_gt_pch_use_address): When reading |
| manually the file into mapped area, update addr as |
| an automatic variable rather than base which is a reference parameter. |
| |
| 2021-12-09 Jakub Jelinek <jakub@redhat.com> |
| |
| PR pch/71934 |
| * coretypes.h (gt_pointer_operator): Use 3 pointer arguments instead |
| of two. |
| * gengtype.c (struct walk_type_data): Add in_nested_ptr argument. |
| (walk_type): Temporarily set d->in_nested_ptr around nested_ptr |
| handling. |
| (write_types_local_user_process_field): Pass a new middle pointer |
| to gt_pointer_operator op calls, if d->in_nested_ptr pass there |
| address of d->prev_val[2], otherwise NULL. |
| (write_types_local_process_field): Likewise. |
| * ggc-common.c (relocate_ptrs): Add real_ptr_p argument. If equal |
| to ptr_p, do nothing, otherwise if NULL remember ptr_p's |
| or if non-NULL real_ptr_p's corresponding new address in |
| reloc_addrs_vec. |
| (reloc_addrs_vec): New variable. |
| (compare_ptr, read_uleb128, write_uleb128): New functions. |
| (gt_pch_save): When iterating over objects through relocate_ptrs, |
| save current i into state.ptrs_i. Sort reloc_addrs_vec and emit |
| it as uleb128 of differences between pointer addresses into the |
| PCH file. |
| (gt_pch_restore): Allow restoring of PCH to a different address |
| than the preferred one, in that case adjust global pointers by bias |
| and also adjust by bias addresses read from the relocation table |
| as uleb128 differences. Otherwise fseek over it. Perform |
| gt_pch_restore_stringpool only after adjusting callbacks and for |
| callback adjustments also take into account the bias. |
| (default_gt_pch_use_address): Change type of first argument from |
| void * to void *&. |
| (mmap_gt_pch_use_address): Likewise. |
| * ggc-tests.c (gt_pch_nx): Pass NULL as new middle argument to op. |
| * hash-map.h (hash_map::pch_nx_helper): Likewise. |
| (gt_pch_nx): Likewise. |
| * hash-set.h (gt_pch_nx): Likewise. |
| * hash-table.h (gt_pch_nx): Likewise. |
| * hash-traits.h (ggc_remove::pch_nx): Likewise. |
| * hosthooks-def.h (default_gt_pch_use_address): Change type of first |
| argument from void * to void *&. |
| (mmap_gt_pch_use_address): Likewise. |
| * hosthooks.h (struct host_hooks): Change type of first argument of |
| gt_pch_use_address hook from void * to void *&. |
| * machmode.h (gt_pch_nx): Expect a callback with 3 pointers instead of |
| two in the middle argument. |
| * poly-int.h (gt_pch_nx): Likewise. |
| * stringpool.c (gt_pch_nx): Pass NULL as new middle argument to op. |
| * tree-cfg.c (gt_pch_nx): Likewise, except for LOCATION_BLOCK pass |
| the same &(block) twice. |
| * value-range.h (gt_pch_nx): Pass NULL as new middle argument to op. |
| * vec.h (gt_pch_nx): Likewise. |
| * wide-int.h (gt_pch_nx): Likewise. |
| * config/host-darwin.c (darwin_gt_pch_use_address): Change type of |
| first argument from void * to void *&. |
| * config/host-darwin.h (darwin_gt_pch_use_address): Likewise. |
| * config/host-hpux.c (hpux_gt_pch_use_address): Likewise. |
| * config/host-linux.c (linux_gt_pch_use_address): Likewise. If |
| it couldn't succeed to mmap at the preferred location, set base |
| to the actual one. Update addr in the manual reading loop instead of |
| base. |
| * config/host-netbsd.c (netbsd_gt_pch_use_address): Change type of |
| first argument from void * to void *&. |
| * config/host-openbsd.c (openbsd_gt_pch_use_address): Likewise. |
| * config/host-solaris.c (sol_gt_pch_use_address): Likewise. |
| * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Likewise. |
| * config/rs6000/rs6000-gen-builtins.c (write_init_file): Pass NULL |
| as new middle argument to op in the generated code. |
| * doc/gty.texi: Adjust samples for the addition of middle pointer |
| to gt_pointer_operator callback. |
| |
| 2021-12-09 Alexandre Oliva <oliva@adacore.com> |
| |
| PR target/103097 |
| * reg-stack.c (convert_regs_1): Move any_malformed_asm |
| resetting... |
| (reg_to_stack): ... here. |
| |
| 2021-12-09 Alexandre Oliva <oliva@adacore.com> |
| |
| PR target/103302 |
| * expr.c (emit_move_multi_word): Skip clobber during lra. |
| |
| 2021-12-09 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/103024 |
| PR middle-end/103530 |
| * gimple-harden-conditionals.cc (non_eh_succ_edge): New. |
| (pass_harden_compares::execute): Accept 1-bit integral types, |
| and cope with throwing compares. |
| |
| 2021-12-08 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DARWIN_PIE_SPEC): Add -no_pie when |
| linking mdynamic-no-pic code on macOS > 10.7. |
| |
| 2021-12-08 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/pru.c (pru_section_type_flags): New function. |
| (TARGET_SECTION_TYPE_FLAGS): Wire it. |
| |
| 2021-12-08 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf.c (handle_attr_preserve): Avoid calling |
| is_gimple_assign with a NULL pointer. |
| |
| 2021-12-08 Martin Liska <mliska@suse.cz> |
| |
| * profile-count.c (profile_count::dump): Add function |
| that can dump to a provided buffer. |
| (profile_probability::dump): Likewise. |
| * profile-count.h: Likewise. |
| * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): |
| Use dump_printf_loc infrastructure. |
| (tree_unswitch_outer_loop): Likewise. |
| (find_loop_guard): Likewise. |
| (hoist_guard): Likewise. |
| |
| 2021-12-08 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * gimplify.c (extract_base_bit_offset): Add 'tree *offsetp' parameter, |
| accomodate case where 'offset' return of get_inner_reference is |
| non-NULL. |
| (is_or_contains_p): Further robustify conditions. |
| (omp_target_reorder_clauses): In alloc/to/from sorting phase, also |
| move following GOMP_MAP_ALWAYS_POINTER maps along. Add new sorting |
| phase where we make sure pointers with an attach/detach map are ordered |
| correctly. |
| (gimplify_scan_omp_clauses): Add modifications to avoid creating |
| GOMP_MAP_STRUCT and associated alloc map for attach/detach maps. |
| |
| 2021-12-08 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/nvptx/nvptx.md (*extend_trunc_<mode>2_qi, |
| *extend_trunc_<mode>2_hi, *extend_trunc_di2_si): New insns. |
| Use cvt to perform sign-extension of truncation in one step. |
| |
| 2021-12-08 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| PR middle-end/92120 |
| * gimplify.c ("tree-hash-traits.h"): Add include. |
| (gimplify_scan_omp_clauses): Change struct_map_to_clause to type |
| hash_map<tree_operand, tree> *. Adjust struct map handling to handle |
| cases of *A and A->B expressions. Under !DECL_P case of |
| GOMP_CLAUSE_MAP handling, add STRIP_NOPS for indir_p case, add to |
| struct_deref_set for map(*ptr_to_struct) cases. Add MEM_REF case when |
| handling component_ref_p case. Add unshare_expr and gimplification |
| when created GOMP_MAP_STRUCT is not a DECL. Add code to add |
| firstprivate pointer for *pointer-to-struct case. |
| (gimplify_adjust_omp_clauses): Move GOMP_MAP_STRUCT removal code for |
| exit data directives code to earlier position. |
| * omp-low.c (lower_omp_target): |
| Handle GOMP_MAP_ATTACH_ZERO_LENGTH_ARRAY_SECTION, and |
| GOMP_MAP_POINTER_TO_ZERO_LENGTH_ARRAY_SECTION map kinds. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| |
| 2021-12-08 Andrew Stubbs <ams@codesourcery.com> |
| Hafiz Abid Qadeer <abidh@codesourcery.com> |
| |
| * dwarf2cfi.c (dw_stack_pointer_regnum): Change type to struct cfa_reg. |
| (dw_frame_pointer_regnum): Likewise. |
| (new_cfi_row): Use set_by_dwreg. |
| (get_cfa_from_loc_descr): Use set_by_dwreg. Support register spans. |
| handle DW_OP_bregx with DW_OP_breg{0-31}. Support DW_OP_lit*, |
| DW_OP_const*, DW_OP_minus, DW_OP_shl and DW_OP_plus. |
| (lookup_cfa_1): Use set_by_dwreg. |
| (def_cfa_0): Update for cfa_reg and support register spans. |
| (reg_save): Change sreg parameter to struct cfa_reg. Support register |
| spans. |
| (dwf_cfa_reg): New function. |
| (dwarf2out_flush_queued_reg_saves): Use dwf_cfa_reg instead of |
| dwf_regno. |
| (dwarf2out_frame_debug_def_cfa): Likewise. |
| (dwarf2out_frame_debug_adjust_cfa): Likewise. |
| (dwarf2out_frame_debug_cfa_offset): Likewise. Update reg_save usage. |
| (dwarf2out_frame_debug_cfa_register): Likewise. |
| (dwarf2out_frame_debug_expr): Likewise. |
| (create_pseudo_cfg): Use set_by_dwreg. |
| (initial_return_save): Use set_by_dwreg and dwf_cfa_reg, |
| (create_cie_data): Use dwf_cfa_reg. |
| (execute_dwarf2_frame): Use dwf_cfa_reg. |
| (dump_cfi_row): Use set_by_dwreg. |
| * dwarf2out.c (build_span_loc, build_breg_loc): New function. |
| (build_cfa_loc): Support register spans. |
| (build_cfa_aligned_loc): Update cfa_reg usage. |
| (convert_cfa_to_fb_loc_list): Use set_by_dwreg. |
| * dwarf2out.h (struct cfa_reg): New type. |
| (struct dw_cfa_location): Use struct cfa_reg. |
| (build_span_loc): New prototype. |
| |
| 2021-12-08 Haochen Jiang <haochen.jiang@intel.com> |
| |
| PR target/100738 |
| * config/i386/sse.md |
| (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_not_ltint): |
| Add new define_insn_and_split. |
| |
| 2021-12-08 Alexandre Oliva <oliva@adacore.com> |
| |
| PR middle-end/103149 |
| * gimple-harden-conditionals.cc (detach_value): Use memory if |
| general regs won't do. |
| |
| 2021-12-07 Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/103438 |
| * config/s390/s390.c (s390_valid_target_attribute_inner_p): |
| Use new enum CLVC_INTEGER. |
| * opt-functions.awk: Use new CLVC_INTEGER. |
| * opts-common.c (set_option): Likewise. |
| (option_enabled): Return -1,0,1 for CLVC_INTEGER. |
| (get_option_state): Use new CLVC_INTEGER. |
| (control_warning_option): Likewise. |
| * opts.h (enum cl_var_type): Likewise. |
| |
| 2021-12-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/103594 |
| * config/i386/i386.c (ix86_call_use_plt_p): Check FUNCTION_DECL |
| before calling cgraph_node::get. |
| |
| 2021-12-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103596 |
| * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): |
| Note we are not propagating into a PHI argument to may_propagate_copy. |
| * tree-ssa-propagate.h (may_propagate_copy): Add |
| argument specifying whether we propagate into a PHI arg. |
| * tree-ssa-propagate.c (may_propagate_copy): Likewise. |
| When not doing so we can replace an abnormal with |
| something else. |
| (may_propagate_into_stmt): Update may_propagate_copy calls. |
| (replace_exp_1): Move propagation checking code to |
| propagate_value and rename to ... |
| (replace_exp): ... this and elide previous wrapper. |
| (propagate_value): Perform checking with adjusted |
| may_propagate_copy call and dispatch to replace_exp. |
| |
| 2021-12-07 Matthias Kretz <m.kretz@gsi.de> |
| |
| * hash-map.h (hash_map::traverse): Let both overloads behave the |
| same. |
| * predict.c (assert_is_empty): Return true, thus not changing |
| behavior. |
| |
| 2021-12-07 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.h (ISA_HAS_UNALIGNED_ACCESS, STRICT_ALIGNMENT): |
| R6 can unaligned access. |
| * config/mips/mips.md (movmisalign<mode>): Likewise. |
| * config/mips/mips.opt: add -m(no-)unaligned-access |
| * doc/invoke.texi: Likewise. |
| |
| 2021-12-07 Eugene Rozenfeld <erozen@microsoft.com> |
| |
| * auto-profile.c (afdo_propagate_edge): Improve count propagation algorithm. |
| |
| 2021-12-06 Paul A. Clarke <pc@us.ibm.com> |
| |
| PR target/103545 |
| * config/rs6000/xmmintrin.h (_mm_movemask_ps): Replace "vector" with |
| "__vector". |
| |
| 2021-12-06 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * config/bpf/bpf.c (bpf_handle_preserve_access_index_attribute): |
| Mark arguments `args' and flags' as unused. |
| (bpf_core_newdecl): Remove unused local `newdecl'. |
| (bpf_core_newdecl): Remove unused argument `loc'. |
| (ctfc_debuginfo_early_finish_p): Remove unused function. |
| (TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P): Remove definition. |
| (bpf_core_walk): Do not pass a location to bpf_core_newdecl. |
| |
| 2021-12-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-range-edge.cc (gimple_outgoing_range::edge_range_p): Add |
| a shortcut for blocks with single successors. |
| * gimple-range-gori.cc (gori_map::calculate_gori): Likewise. |
| |
| 2021-12-06 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * value-range.cc (irange::irange_union): Use quick_push rather |
| than safe_push. Use widest_int rather than wide_int. Avoid |
| assigning wi::to_* results to wide*_int temporaries. |
| |
| 2021-12-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::fill_block_cache): Check for |
| a range from dominators before filling the cache. |
| (ranger_cache::range_from_dom): New. |
| * gimple-range-cache.h (ranger_cache::range_from_dom): Add prototype. |
| |
| 2021-12-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-gori.h (class gori_compute):: Add prototypes. |
| * gimple-range-gori.cc (gori_compute::has_edge_range_p): Add alternate |
| API for basic block. Call for edge alterantive. |
| (gori_compute::may_recompute_p): Ditto. |
| |
| 2021-12-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103581 |
| * tree-vect-stmts.c (vect_build_gather_load_calls): Properly |
| guard all the AVX512 mask cases. |
| |
| 2021-12-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103544 |
| * tree-vect-slp.c (vect_analyze_slp): Only add a SLP reduction |
| opportunity if the stmt in question is the reduction root. |
| (dot_slp_tree): Add missing check for NULL child. |
| |
| 2021-12-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR pch/71934 |
| * config/avr/avr.c (avr_output_data_section_asm_op, |
| avr_output_bss_section_asm_op): Change argument type from const void * |
| to const char *. |
| |
| 2021-12-06 Tamar Christina <tamar.christina@arm.com> |
| |
| PR rtl-optimization/103404 |
| * cse.c (find_sets_in_insn): Don't select elements out of a V1 mode |
| subreg. |
| |
| 2021-12-06 Hongtao Liu <Hongtao.liu@intel.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/95740 |
| * config/i386/i386.c (ix86_preferred_reload_class): Allow |
| integer regs when moves between register units are cheap. |
| * config/i386/i386.h (INT_SSE_CLASS_P): New. |
| |
| 2021-12-05 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move |
| AIX math builtin initialization before new_builtins_are_live. |
| |
| 2021-12-04 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY): Fix |
| comment typo, Preffer -> prefer. |
| * ipa-modref-tree.c (modref_access_node::closer_pair_p): Likewise. |
| |
| 2021-12-04 Alexandre Oliva <oliva@adacore.com> |
| |
| PR rtl-optimization/103028 |
| * ifcvt.c (find_cond_trap): Validate new insns more strictly |
| after reload. |
| |
| 2021-12-03 Martin Liska <mliska@suse.cz> |
| Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/101324 |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Move the |
| disabling of shrink-wrapping when using -mrop-protect from here... |
| (rs6000_override_options_after_change): ...to here. |
| |
| 2021-12-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/103269 |
| * config/i386/i386-expand.c (ix86_expand_builtin): Pass PVW_NONE |
| and PVW_NONE to ix86_target_string. |
| * config/i386/i386-options.c (ix86_target_string): Add arguments |
| for move_max and store_max. |
| (ix86_target_string::add_vector_width): New lambda. |
| (ix86_debug_options): Pass ix86_move_max and ix86_store_max to |
| ix86_target_string. |
| (ix86_function_specific_print): Pass ptr->x_ix86_move_max and |
| ptr->x_ix86_store_max to ix86_target_string. |
| (ix86_valid_target_attribute_tree): Handle x_ix86_move_max and |
| x_ix86_store_max. |
| (ix86_option_override_internal): Set the default x_ix86_move_max |
| and x_ix86_store_max. |
| * config/i386/i386-options.h (ix86_target_string): Add |
| prefer_vector_width and prefer_vector_width. |
| * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): Removed. |
| (TARGET_AVX256_STORE_BY_PIECES): Likewise. |
| (MOVE_MAX): Use 64 if ix86_move_max or ix86_store_max == |
| PVW_AVX512. Use 32 if ix86_move_max or ix86_store_max >= |
| PVW_AVX256. |
| (STORE_MAX_PIECES): Use 64 if ix86_store_max == PVW_AVX512. |
| Use 32 if ix86_store_max >= PVW_AVX256. |
| * config/i386/i386.opt: Add -mmove-max=bits and -mstore-max=bits. |
| * config/i386/x86-tune.def (X86_TUNE_AVX512_MOVE_BY_PIECES): New. |
| (X86_TUNE_AVX512_STORE_BY_PIECES): Likewise. |
| * doc/invoke.texi: Document -mmove-max=bits and -mstore-max=bits. |
| |
| 2021-12-03 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Fix builtin |
| identifiers. |
| |
| 2021-12-03 SiYu Wu <siyu@isrc.iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.c (riscv_implied_info): |
| Add K-ext related entry. |
| (riscv_supported_std_ext): Add 'k'. |
| * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add 'k'. |
| (IMPLIED_EXT): Add K-ext related entry. |
| |
| 2021-12-03 SiYu Wu <siyu@isrc.iscas.ac.cn> |
| |
| * common/config/riscv/riscv-common.c (riscv_ext_version_table): |
| Add zbk* and zk*. |
| * config/riscv/riscv-opts.h (MASK_ZBKB): New. |
| (MASK_ZBKC): Ditto. |
| (MASK_ZBKX): Ditto. |
| (MASK_ZKNE): Ditto. |
| (MASK_ZKND): Ditto. |
| (MASK_ZKNH): Ditto. |
| (MASK_ZKR): Ditto. |
| (MASK_ZKSED): Ditto. |
| (MASK_ZKSH): Ditto. |
| (MASK_ZKT): Ditto. |
| (TARGET_ZBKB): Ditto. |
| (TARGET_ZBKC): Ditto. |
| (TARGET_ZBKX): Ditto. |
| (TARGET_ZKNE): Ditto. |
| (TARGET_ZKND): Ditto. |
| (TARGET_ZKNH): Ditto. |
| (TARGET_ZKR): Ditto. |
| (TARGET_ZKSED): Ditto. |
| (TARGET_ZKSH): Ditto. |
| (TARGET_ZKT): Ditto. |
| * config/riscv/riscv.opt (riscv_zk_subext): New. |
| |
| 2021-12-03 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-stmts.c (prepare_load_store_mask): Rename to... |
| (prepare_vec_mask): ...This and record operations that have already been |
| masked. |
| (vectorizable_call): Use it. |
| (vectorizable_operation): Likewise. |
| (vectorizable_store): Likewise. |
| (vectorizable_load): Likewise. |
| * tree-vectorizer.h (class _loop_vec_info): Add vec_cond_masked_set. |
| (vec_cond_masked_set_type, tree_cond_mask_hash): New. |
| |
| 2021-12-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/51469 |
| PR target/83782 |
| * target.def (ifunc_ref_local_ok): Add a target hook. |
| * varasm.c (default_binds_local_p_3): Force indirect function |
| resolver non-local only if targetm.ifunc_ref_local_ok returns |
| false. |
| * config/i386/i386-expand.c (ix86_expand_call): Call |
| ix86_call_use_plt_p to check if PLT should be used. |
| * config/i386/i386-protos.h (ix86_call_use_plt_p): New. |
| * config/i386/i386.c (output_pic_addr_const): Call |
| ix86_call_use_plt_p to check if "@PLT" is needed. |
| (ix86_call_use_plt_p): New. |
| (TARGET_IFUNC_REF_LOCAL_OK): New. |
| * doc/tm.texi.in: Add TARGET_IFUNC_REF_LOCAL_OK. |
| * doc/tm.texi: Regenerated. |
| |
| 2021-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * attribs.h (simple_cst_list_equal): Declare. |
| * attribs.c (simple_cst_list_equal): No longer static. |
| * config/i386/i386-options.c (target_attribute_cache): New variable. |
| (ix86_valid_target_attribute_p): Cache DECL_FUNCTION_SPECIFIC_TARGET |
| and DECL_FUNCTION_SPECIFIC_OPTIMIZATION based on args. |
| |
| 2021-12-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR pch/71934 |
| * ggc.h (gt_pch_note_callback): Declare. |
| * gengtype.h (enum typekind): Add TYPE_CALLBACK. |
| (callback_type): Declare. |
| * gengtype.c (dbgprint_count_type_at): Handle TYPE_CALLBACK. |
| (callback_type): New variable. |
| (process_gc_options): Add CALLBACK argument, handle callback |
| option. |
| (set_gc_used_type): Adjust process_gc_options caller, if callback, |
| set type to &callback_type. |
| (output_mangled_typename): Handle TYPE_CALLBACK. |
| (walk_type): Likewise. Handle callback option. |
| (write_types_process_field): Handle TYPE_CALLBACK. |
| (write_types_local_user_process_field): Likewise. |
| (write_types_local_process_field): Likewise. |
| (write_root): Likewise. |
| (dump_typekind): Likewise. |
| (dump_type): Likewise. |
| * gengtype-state.c (type_lineloc): Handle TYPE_CALLBACK. |
| (state_writer::write_state_callback_type): New method. |
| (state_writer::write_state_type): Handle TYPE_CALLBACK. |
| (read_state_callback_type): New function. |
| (read_state_type): Handle TYPE_CALLBACK. |
| * ggc-common.c (callback_vec): New variable. |
| (gt_pch_note_callback): New function. |
| (gt_pch_save): Stream out gt_pch_save function address and relocation |
| table. |
| (gt_pch_restore): Stream in saved gt_pch_save function address and |
| relocation table and apply relocations if needed. |
| * doc/gty.texi (callback): Document new GTY option. |
| * varasm.c (get_unnamed_section): Change callback argument's type and |
| last argument's type from const void * to const char *. |
| (output_section_asm_op): Change argument's type from const void * |
| to const char *, remove unnecessary cast. |
| * tree-core.h (struct tree_translation_unit_decl): Drop GTY((skip)) |
| from language member. |
| * output.h (unnamed_section_callback): Change argument type from |
| const void * to const char *. |
| (struct unnamed_section): Use GTY((callback)) instead of GTY((skip)) |
| for callback member. Change data member type from const void * |
| to const char *. |
| (struct noswitch_section): Use GTY((callback)) instead of GTY((skip)) |
| for callback member. |
| (get_unnamed_section): Change callback argument's type and |
| last argument's type from const void * to const char *. |
| (output_section_asm_op): Change argument's type from const void * |
| to const char *. |
| * config/avr/avr.c (avr_output_progmem_section_asm_op): Likewise. |
| Remove unneeded cast. |
| * config/darwin.c (output_objc_section_asm_op): Change argument's type |
| from const void * to const char *. |
| * config/pa/pa.c (som_output_text_section_asm_op): Likewise. |
| (som_output_comdat_data_section_asm_op): Likewise. |
| * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op): |
| Likewise. |
| (rs6000_xcoff_output_readonly_section_asm_op): Likewise. Instead |
| of dereferencing directive hardcode variable names and decide based on |
| whether directive is NULL or not. |
| (rs6000_xcoff_output_readwrite_section_asm_op): Change argument's type |
| from const void * to const char *. |
| (rs6000_xcoff_output_tls_section_asm_op): Likewise. Instead |
| of dereferencing directive hardcode variable names and decide based on |
| whether directive is NULL or not. |
| (rs6000_xcoff_output_toc_section_asm_op): Change argument's type |
| from const void * to const char *. |
| (rs6000_xcoff_asm_init_sections): Adjust get_unnamed_section callers. |
| |
| 2021-12-03 Richard Purdie <richard.purdie@linuxfoundation.org> |
| |
| * Makefile.in: Fix "argument list too long" from install-plugins. |
| |
| 2021-12-03 Matt Jacobson <mhjacobson@me.com> |
| |
| * config.gcc: For the AVR target, populate TM_MULTILIB_CONFIG. |
| * config/avr/genmultilib.awk: Add ability to filter generated multilib |
| list. |
| * config/avr/t-avr: Pass TM_MULTILIB_CONFIG to genmultilib.awk. |
| * configure.ac: Update help string for --with-multilib-list. |
| * configure: Regenerate. |
| |
| 2021-12-02 Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> |
| |
| * configure: Regenerate. |
| * configure.ac: Define TARGET_LIBC_GNUSTACK on musl. |
| |
| 2021-12-02 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/55610 |
| * config/host-darwin.c (TRY_EMPTY_VM_SPACE, |
| SAFE_ALLOC_SIZE): New. |
| (darwin_gt_pch_get_address): Rewrite to use nominated |
| memory segments rather than part of the compiler __DATA |
| segment. |
| (darwin_gt_pch_use_address): Likewise. |
| |
| 2021-12-02 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (*-*-freebsd*): Remove references to |
| FreeBSD 1 and FreeBSD 2. |
| |
| 2021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/103437 |
| * ira-color.c (setup_allocno_priorities): Switch off backup code |
| for overflow if compiler has __builtin_smul_overflow. Use < |
| for comparison with -INT_MAX. |
| |
| 2021-12-02 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/altivec.h: Delete a number of #defines that are now |
| superfluous. Alphabetize. Include rs6000-vecdefines.h. Include some |
| synonyms. |
| * config/rs6000/rs6000-builtin-new.def (CMPB): Flag as no32bit. |
| (BPERMD): Flag as 32bit (needing special handling for 32-bit). |
| (UNPACK_TD): Return unsigned long long instead of unsigned long. |
| (GET_TEXASR): Return unsigned long instead of unsigned long long. |
| (GET_TEXASRU): Likewise. |
| (GET_TFHAR): Likewise. |
| (GET_TFIAR): Likewise. |
| (SET_TEXASR): Pass unsigned long instead of unsigned long long. |
| (SET_TEXASRU): Likewise. |
| (SET_TFHAR): Likewise. |
| (SET_TFIAR): Likewise. |
| (TABORTDC): Likewise. |
| (TABORTDCI): Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Fix error |
| handling for no32bit. Add 32bit handling for RS6000_BIF_BPERMD. |
| * config/rs6000/rs6000-gen-builtins.c (write_init_file): Initialize |
| new_builtins_are_live to 1. |
| |
| 2021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/103437 |
| * ira-color.c (setup_allocno_priorities): Use long long |
| multiplication as backup for overflow processing. |
| |
| 2021-12-02 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (aarch64_gen_shareable_zero): New. |
| * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>, |
| aarch64_rshrn2<mode>): Generate rounding half-ing add when appropriate. |
| * config/aarch64/aarch64.c (aarch64_gen_shareable_zero): New. |
| |
| 2021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/103437 |
| * ira-color.c (setup_allocno_priorities): Process multiplication |
| overflow. |
| |
| 2021-12-02 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/96092 |
| * common.opt: New option. |
| * coverage.c (coverage_begin_function): Emit filename with |
| remap_profile_filename. |
| * doc/invoke.texi: Document the new option. |
| * file-prefix-map.c (add_profile_prefix_map): New. |
| (remap_profile_filename): Likewise. |
| * file-prefix-map.h (add_profile_prefix_map): Likewise. |
| (remap_profile_filename): Likewise. |
| * lto-opts.c (lto_write_options): Handle |
| OPT_fprofile_prefix_map_. |
| * opts-global.c (handle_common_deferred_options): Likewise. |
| * opts.c (common_handle_option): Likewise. |
| (gen_command_line_string): Likewise. |
| * profile.c (output_location): Emit filename with |
| remap_profile_filename. |
| |
| 2021-12-02 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/103271 |
| * internal-fn.c (expand_DEFERRED_INIT): When the base |
| of the LHS is a decl with matching constant size use |
| that as the initialization target instead of an |
| eventual VLA typed one. |
| |
| 2021-12-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103527 |
| * tree-vect-stmts.c (vect_build_gather_load_calls): Always |
| use a truth type for building the vector mask. |
| |
| 2021-12-02 Rasmus Villemoes <rasmus.villemoes@prevas.dk> |
| |
| * config/vxworks.h (LTO_PLUGIN_SPEC): Adapt to corrected |
| spelling of -linker-output-auto-nolto-rel. |
| |
| 2021-12-01 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/102811 |
| * config/i386/sse.md (VI2F): Remove mode iterator. |
| (VI2F_256_512): New mode iterator. |
| (vec_set<V8_128:mode>_0): New insn pattern. |
| (vec_set<VI2F_256_512:mode>_0>): Rename from vec_set<VI2F:mode>mode. |
| Use VI2F_256_512 mode iterator instead of VI2F. |
| (*axv512fp16_movsh): Remove. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Add (x,x,x) AVX2 alternative. |
| Do not disable V8HF mode insn on AVX2 targets. |
| (pinsrw -> pbroadcast + pblendw peephole2): New peephole. |
| (pinsrw -> pbroadcast + pblendw splitter): New post-reload splitter. |
| * config/i386/i386.md (extendhfsf): Call gen_vec_setv8hf_0. |
| * config/i386/i386-expand.c (ix86_expand_vector_set) |
| <case E_V8HFmode>: Use vec_merge path for TARGET_AVX2. |
| |
| 2021-12-01 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): |
| Check if simplify_using_initial_conditions allows us to |
| simplify the expression for may_be_zero. |
| * match.pd (X != C ? -X : -C -> -X): New transform. |
| (X != C ? ~X : ~C -> ~X): Likewise. |
| ((X+1) > Y ? -X : 1 -> X >= Y ? -X : 1): Likewise. |
| |
| 2021-12-01 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR middle-end/103127 |
| * gimplify.c (is_var_need_auto_init): Handle opaque types. |
| |
| 2021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * common.opt (static-libphobos): Add option. |
| * config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a |
| when linking statically. |
| * gcc.c (driver_handle_option): Set -static-libphobos as always valid. |
| |
| 2021-12-01 Jason Merrill <jason@redhat.com> |
| |
| PR c++/103310 |
| * fold-const.c (maybe_nonzero_address): Use get_create or get |
| depending on folding_initializer. |
| (fold_binary_initializer_loc): New. |
| * fold-const.h (fold_binary_initializer_loc): Declare. |
| * varasm.c (mark_weak): Don't use the decl location. |
| * doc/invoke.texi: Document -fconstexpr-fp-except. |
| |
| 2021-12-01 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/102347 |
| * config/rs6000/rs6000-c.c (rs6000-builtins.h): Stop including. |
| (rs6000-internal.h): Include. |
| (altivec_resolve_new_overloaded_builtin): Move call to |
| rs6000_invalid_new_builtin here from rs6000_new_builtin_decl. |
| * config/rs6000/rs6000-call.c (rs6000-builtins.h): Stop including. |
| (rs6000_invalid_new_builtin): Remove static qualifier. |
| (rs6000_new_builtin_decl): Remove test for supported builtin. |
| * config/rs6000/rs6000-internal.h (rs6000-builtins.h): Include. |
| (rs6000_invalid_new_builtin): Declare. |
| * config/rs6000/rs6000.c (rs6000-builtins.h): Don't include. |
| |
| 2021-12-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103409 |
| * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): |
| Do all the work with just one ssa_global_cache. |
| * gimple-range-path.h: Remove m_tmp_phi_cache. |
| |
| 2021-12-01 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/103517 |
| * tree-vect-slp.c (vect_build_slp_tree_1): When allowing two |
| different component references, check the codes of both them, |
| rather than just the first. |
| |
| 2021-12-01 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103464 |
| * gimple-range.cc (gimple_ranger::prefill_name): Process phis also. |
| (gimple_ranger::prefill_stmt_dependencies): Ditto. |
| |
| 2021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * doc/install.texi (Prerequisites): Add note that D front end now |
| requires GDC installed in order to bootstrap. |
| (Building): Add D compiler section, referencing prerequisites. |
| |
| 2021-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * config/i386/x86-tune.def (X86_TUNE_SCHEDULE, |
| X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY, |
| X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Formatting fixes. |
| (X86_TUNE_USE_GATHER): Put m_GENERIC last for consistency. |
| |
| 2021-12-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/102356 |
| * rtl.h (simplify_context): Add assoc_count member and |
| max_assoc_count static member. |
| * simplify-rtx.c (simplify_associative_operation): Don't reassociate |
| more than max_assoc_count times within one outermost simplify_* call. |
| * dwarf2out.c (mem_loc_descriptor): Optimize binary operation |
| with both operands the same using DW_OP_dup. |
| |
| 2021-12-01 Tamar Christina <tamar.christina@arm.com> |
| |
| * match.pd: Move below pattern that rewrites to EQ, NE. |
| * tree.c (bitmask_inv_cst_vector_p): Correct do .. while indentation. |
| |
| 2021-12-01 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| Martin Liška <mliska@suse.cz> |
| |
| PR tree-optimization/103456 |
| * tree-object-size.c (merge_object_sizes): Update osi->changed |
| only if object_sizes_set succeeded. |
| |
| 2021-11-30 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103463 |
| PR target/103484 |
| * config/i386/i386.md (*x86_64_shld_1): Set_attr |
| length_immediate to 1. |
| (*x86_shld_1): Ditto. |
| (*x86_64_shrd_1): Ditto. |
| (*x86_shrd_1): Ditto. |
| |
| 2021-11-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): |
| Clarify diagnostic. |
| (altivec_resolve_new_overloaded_builtin): Likewise. |
| |
| 2021-11-30 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/103267 |
| * ipa-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/103494 |
| * tree-vect-stmts.c (vect_get_gather_scatter_ops): Remove ncopies |
| argument and calculate ncopies from gs_info->offset_vectype |
| where necessary. |
| (vectorizable_store, vectorizable_load): Update accordingly. |
| |
| 2021-11-30 Iain Buclaw <ibuclaw@gdcproject.org> |
| |
| * Makefile.in (GDC): New variable. |
| (GDCFLAGS): New variable. |
| * configure: Regenerate. |
| * configure.ac: Add call to ACX_PROG_GDC. Substitute GDCFLAGS. |
| |
| 2021-11-30 Martin Liska <mliska@suse.cz> |
| Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/103449 |
| * ipa-param-manipulation.c |
| (ipa_param_body_adjustments::prepare_debug_expressions): Be |
| careful about hash_map reallocating itself. Simpify a return |
| which always returns true. |
| |
| 2021-11-30 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103440 |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Continue |
| normal param processing for equiv params. |
| |
| 2021-11-30 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386.c (ix86_shift_rotate_cost): Remove |
| unreachable return. |
| * tree-chrec.c (evolution_function_is_invariant_rec_p): |
| Likewise. |
| * tree-if-conv.c (if_convertible_stmt_p): Likewise. |
| * tree-ssa-pre.c (fully_constant_expression): Likewise. |
| * tree-vrp.c (operand_less_p): Likewise. |
| * reload.c (reg_overlap_mentioned_for_reload_p): Remove |
| unreachable gcc_unreachable (). |
| * sel-sched-ir.h (bb_next_bb): Likewise. |
| * varasm.c (compare_constant): Likewise. |
| |
| 2021-11-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103489 |
| * tree-vect-loop.c (vectorizable_phi): Verify argument |
| vector type compatibility to mitigate bool pattern recog |
| bug. |
| |
| 2021-11-30 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-offload.c (oacc_loop_auto_partitions): Remove erroneous |
| "Orphan reductions cannot have gang partitioning" handling. |
| |
| 2021-11-30 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-offload.c (oacc_loop_process): Implement "gang reduction on |
| an orphan loop" checking. |
| |
| 2021-11-30 Cesar Philippidis <cesar@codesourcery.com> |
| Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-general.h (enum oacc_loop_flags): Add OLF_REDUCTION enum. |
| * omp-low.c (lower_oacc_head_mark): Use it to mark OpenACC |
| reductions. |
| * omp-offload.c (oacc_loop_auto_partitions): Don't assign gang |
| level parallelism to orphan reductions. |
| |
| 2021-11-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103451 |
| * range-op.cc (operator_div::wi_fold): Remove |
| can_throw_non_call_exceptions special case. |
| * tree-ssa-sink.c (sink_code_in_bb): Same. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-slp.c (arg1_arg4_map): New variable. |
| (vect_get_operand_map): Handle IFN_MASK_GATHER_LOAD. |
| (vect_build_slp_tree_1): Likewise. |
| (vect_build_slp_tree_2): Likewise. |
| * tree-vect-stmts.c (vectorizable_load): Expect the mask to be |
| the last SLP child node rather than the first. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-if-conv.c: Include tree-eh.h. |
| (predicate_statements): Remove pe argument. Don't hoist |
| statements here. |
| (combine_blocks): Remove pe argument. |
| (ifcvt_available_on_edge_p, ifcvt_can_hoist): New functions. |
| (ifcvt_hoist_invariants): Likewise. |
| (tree_if_conversion): Update call to combine_blocks. Call |
| ifcvt_hoist_invariants after VN. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/102467 |
| * doc/sourcebuild.texi (vect_gather_load_ifn): Document. |
| * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): |
| Commonize safelen handling. Punt for anything involving |
| gathers and scatters unless safelen says otherwise. |
| * tree-vect-slp.c (arg1_map): New variable. |
| (vect_get_operand_map): Handle IFN_GATHER_LOAD. |
| (vect_build_slp_tree_1): Likewise. |
| (vect_build_slp_tree_2): Likewise. |
| (compatible_calls_p): If vect_get_operand_map returns nonnull, |
| check that any skipped arguments are equal. |
| (vect_slp_analyze_node_operations_1): Tighten reduction check. |
| * tree-vect-stmts.c (check_load_store_for_partial_vectors): Take |
| an ncopies argument. |
| (vect_get_gather_scatter_ops): Take slp_node and ncopies arguments. |
| Handle SLP nodes. |
| (vectorizable_store, vectorizable_load): Adjust accordingly. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple.h (gimple_num_args, gimple_arg, gimple_arg_ptr): New |
| functions. |
| * tree-vect-slp.c (cond_expr_maps, arg2_map): New variables. |
| (vect_get_operand_map): New function. |
| (vect_get_and_check_slp_defs): Fix outdated comment. |
| Use vect_get_operand_map and new gimple argument accessors. |
| (vect_build_slp_tree_2): Likewise. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-slp.c (vect_build_slp_tree_1): Use code_helper |
| to record the operations performed by statements, only using |
| CALL_EXPR for things that don't map to built-in or internal |
| functions. For shifts, require all shift amounts to be equal |
| if optab_vector is not supported but optab_scalar is. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-data-refs.c (vect_check_gather_scatter): Continue |
| processing conversions if the current offset is a pointer. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (vect_is_reduction): Use STMT_VINFO_REDUC_IDX. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genopinit.c (main): Turn supports_vec_gather_load and |
| supports_vec_scatter_store into signed char arrays and remove |
| supports_vec_gather_load_cached and supports_vec_scatter_store_cached. |
| * optabs-query.c (supports_vec_convert_optab_p): Add a mode parameter. |
| If the mode is not VOIDmode, test only for that mode. |
| (supports_vec_gather_load_p): Likewise. |
| (supports_vec_scatter_store_p): Likewise. |
| * optabs-query.h (supports_vec_gather_load_p): Likewise. |
| (supports_vec_scatter_store_p): Likewise. |
| * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the |
| vector mode to supports_vec_gather_load_p and |
| supports_vec_scatter_store_p. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.c (commutative_binary_fn_p): Handle IFN_ADD_OVERFLOW |
| and IFN_MUL_OVERFLOW. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.c (commutative_binary_fn_p): Handle IFN_UBSAN_CHECK_ADD |
| and IFN_UBSAN_CHECK_MUL. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.c (commutative_binary_fn_p): Handle IFN_COMPLEX_MUL. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-fold.c: Include internal-fn.h. |
| (fold_stmt_1): If a function maps to an internal one, use |
| first_commutative_argument to canonicalize the order of |
| commutative arguments. |
| * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3) |
| (gimple_resimplify4, gimple_resimplify5): Extend commutativity |
| checks to functions. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi (reduc_fmin_scal_@var{m}): Document. |
| (reduc_fmax_scal_@var{m}): Likewise. |
| * optabs.def (reduc_fmax_scal_optab): New optab. |
| (reduc_fmin_scal_optab): Likewise |
| * internal-fn.def (REDUC_FMAX, REDUC_FMIN): New functions. |
| * tree-vect-loop.c (reduction_fn_for_scalar_code): Handle |
| CASE_CFN_FMAX and CASE_CFN_FMIN. |
| (neutral_op_for_reduction): Likewise. |
| (needs_fold_left_reduction_p): Likewise. |
| * config/aarch64/iterators.md (FMAXMINV): New iterator. |
| (fmaxmin): Handle UNSPEC_FMAXNMV and UNSPEC_FMINNMV. |
| * config/aarch64/aarch64-simd.md (reduc_<optab>_scal_<mode>): Fix |
| unspec mode. |
| (reduc_<fmaxmin>_scal_<mode>): New pattern. |
| * config/aarch64/aarch64-sve.md (reduc_<fmaxmin>_scal_<mode>): |
| Likewise. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * builtins.h (associated_internal_fn): Declare overload that |
| takes a (combined_cfn, return type) pair. |
| * builtins.c (associated_internal_fn): Split new overload out |
| of original fndecl version. Also provide an overload that takes |
| a (combined_cfn, return type) pair. |
| * internal-fn.h (commutative_binary_fn_p): Declare. |
| (commutative_ternary_fn_p): Likewise. |
| (associative_binary_fn_p): Likewise. |
| * internal-fn.c (commutative_binary_fn_p, commutative_ternary_fn_p): |
| New functions, split out from... |
| (first_commutative_argument): ...here. |
| (associative_binary_fn_p): New function. |
| * gimple-match.h (code_helper): Add a constructor that takes |
| internal functions. |
| (commutative_binary_op_p): Declare. |
| (commutative_ternary_op_p): Likewise. |
| (first_commutative_argument): Likewise. |
| (associative_binary_op_p): Likewise. |
| (canonicalize_code): Likewise. |
| (directly_supported_p): Likewise. |
| (get_conditional_internal_fn): Likewise. |
| (gimple_build): New overloads that takes a code_helper. |
| * gimple-fold.c (gimple_build): Likewise. |
| * gimple-match-head.c (commutative_binary_op_p): New function. |
| (commutative_ternary_op_p): Likewise. |
| (first_commutative_argument): Likewise. |
| (associative_binary_op_p): Likewise. |
| (canonicalize_code): Likewise. |
| (directly_supported_p): Likewise. |
| (get_conditional_internal_fn): Likewise. |
| * tree-vectorizer.h: Include gimple-match.h. |
| (neutral_op_for_reduction): Take a code_helper instead of a tree_code. |
| (needs_fold_left_reduction_p): Likewise. |
| (reduction_fn_for_scalar_code): Likewise. |
| (vect_can_vectorize_without_simd_p): Declare a nNew overload that takes |
| a code_helper. |
| * tree-vect-loop.c: Include case-cfn-macros.h. |
| (fold_left_reduction_fn): Take a code_helper instead of a tree_code. |
| (reduction_fn_for_scalar_code): Likewise. |
| (neutral_op_for_reduction): Likewise. |
| (needs_fold_left_reduction_p): Likewise. |
| (use_mask_by_cond_expr_p): Likewise. |
| (build_vect_cond_expr): Likewise. |
| (vect_create_partial_epilog): Likewise. Use gimple_build rather |
| than gimple_build_assign. |
| (check_reduction_path): Handle calls and operate on code_helpers |
| rather than tree_codes. |
| (vect_is_simple_reduction): Likewise. |
| (vect_model_reduction_cost): Likewise. |
| (vect_find_reusable_accumulator): Likewise. |
| (vect_create_epilog_for_reduction): Likewise. |
| (vect_transform_cycle_phi): Likewise. |
| (vectorizable_reduction): Likewise. Make more use of |
| lane_reduc_code_p. |
| (vect_transform_reduction): Use gimple_extract_op but expect |
| a tree_code for now. |
| (vect_can_vectorize_without_simd_p): New overload that takes |
| a code_helper. |
| * tree-vect-stmts.c (vectorizable_call): Handle reductions in |
| fully-masked loops. |
| * tree-vect-patterns.c (vect_mark_pattern_stmts): Use |
| gimple_extract_op when updating STMT_VINFO_REDUC_IDX. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-match.h (code_helper): Provide == and != overloads. |
| (code_helper::operator tree_code): Make explicit. |
| (code_helper::operator combined_fn): Likewise. |
| * gimple-match-head.c (convert_conditional_op): Use explicit |
| conversions where necessary. |
| (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3): Likewise. |
| (maybe_push_res_to_seq, gimple_simplify): Likewise. |
| * gimple-fold.c (replace_stmt_with_simplification): Likewise. |
| |
| 2021-11-30 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-match.h (code_helper): Add functions for querying whether |
| the code represents an internal_fn or a built_in_function. |
| Provide explicit conversion operators for both cases. |
| (gimple_extract_op): Declare. |
| * gimple-match-head.c (gimple_extract): New function, extracted from... |
| (gimple_simplify): ...here. |
| (gimple_extract_op): New function. |
| |
| 2021-11-30 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/103274 |
| * config/i386/i386.c (ix86_output_call_insn): Beef up comment about |
| nops emitted with SEH. |
| * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to |
| the cold section, emit a nop before the directive if the previous |
| active instruction is a call. |
| |
| 2021-11-30 Roger Sayle <roger@nextmovesoftware.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/100711 |
| * config/i386/sse.md (define_split): New splitters to simplify |
| not;vec_duplicate;and as vec_duplicate;andn. |
| |
| 2021-11-30 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/103485 |
| * match.pd (-((int)x >> (prec - 1)) to (unsigned)x >> (prec - 1)): |
| Use VIEW_CONVERT_EXPR for vectors. |
| |
| 2021-11-30 Richard Biener <rguenther@suse.de> |
| |
| * cfgrtl.c (skip_insns_after_block): Refactor code to |
| be more easily readable. |
| * expr.c (op_by_pieces_d::run): Remove unreachable |
| assert. |
| * sched-deps.c (sched_analyze): Remove unreachable |
| gcc_unreachable. |
| * sel-sched-ir.c (in_same_ebb_p): Likewise. |
| * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): |
| Remove unreachable code. |
| * tree-vect-slp.c (vectorize_slp_instance_root_stmt): |
| Refactor to avoid unreachable loop iteration. |
| * tree.c (walk_tree_1): Remove unreachable break. |
| * vec-perm-indices.c (vec_perm_indices::series_p): Remove |
| unreachable return. |
| |
| 2021-11-30 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR target/102347 |
| * config/rs6000/rs6000-call.c (rs6000_builtin_decl): Remove builtin mask |
| check. |
| |
| 2021-11-30 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c |
| (rs6000_cost_data::update_target_cost_per_stmt): Adjust the way to |
| compute extra penalized cost. Remove useless parameter. |
| (rs6000_cost_data::rs6000_add_stmt_cost): Adjust the call to function |
| update_target_cost_per_stmt. |
| |
| 2021-11-30 Kewen Lin <linkw@linux.ibm.com> |
| |
| Revert: |
| 2021-11-17 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/visium/visium.md (*add<mode>3_insn, *addsi3_insn, *addi3_insn, |
| *sub<mode>3_insn, *subsi3_insn, *subdi3_insn, *neg<mode>2_insn, |
| *negdi2_insn, *and<mode>3_insn, *ior<mode>3_insn, *xor<mode>3_insn, |
| *one_cmpl<mode>2_insn, *ashl<mode>3_insn, *ashr<mode>3_insn, |
| *lshr<mode>3_insn, *trunchiqi2_insn, *truncsihi2_insn, |
| *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, |
| *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, |
| *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. |
| |
| 2021-11-30 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103467 |
| * gimple-range-gori.cc (range_def_chain::register_dependency): Don't |
| use an object reference after a potential resize. |
| |
| 2021-11-29 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/102811 |
| * config/i386/i386.md (*movhi_internal): Introduce (*v,C) alternative. |
| Do not allocate non-GPR registers. Optimize xmm->xmm moves when |
| optimizing for size. Fix vpinsrw insn template. |
| (*movhf_internal): Fix pinsrw and pextrw insn templates for |
| AVX targets. Use sselog1 type instead of sselog. Optimize GPR moves. |
| Optimize xmm->xmm moves for TARGET_SSE_PARTIAL_REG_DEPENDENCY |
| and TARGET_SSE_SPLIT_REGS targets. |
| |
| 2021-11-29 Eric Gallager <egallager@gcc.gnu.org> |
| |
| * configure: Re-regenerate. |
| |
| 2021-11-29 Eric Gallager <egallager@gcc.gnu.org> |
| |
| PR other/103021 |
| * Makefile.in: Substitute CTAGS, ETAGS, and CSCOPE |
| variables. Use ETAGS variable in TAGS target. |
| * configure: Regenerate. |
| * configure.ac: Allow CTAGS, ETAGS, and CSCOPE |
| variables to be overridden. |
| |
| 2021-11-29 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/xmmintrin.h (_mm_movemask_ps): Use vec_extractm |
| when _ARCH_PWR10. |
| * config/rs6000/emmintrin.h (_mm_movemask_pd): Likewise. |
| (_mm_movemask_epi8): Likewise. |
| |
| 2021-11-29 Richard Biener <rguenther@suse.de> |
| |
| * read-rtl-function.c (function_reader::read_rtx_operand): |
| Return only after resetting m_in_call_function_usage. |
| |
| 2021-11-29 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Perform the |
| conversion via V2DImode using vec_extractv2didi on TARGET_SSE2. |
| * config/i386/sse.md (rotlv1ti3, rotrv1ti3): Change constraint |
| on QImode shift amounts from const_int_operand to general_operand. |
| |
| 2021-11-29 Richard Biener <rguenther@suse.de> |
| |
| * tree.h (reverse_storage_order_for_component_p): Remove |
| spurious gcc_unreachable. |
| * cfganal.c (dfs_find_deadend): Likewise. |
| * fold-const-call.c (fold_const_logb): Likewise. |
| (fold_const_significand): Likewise. |
| * gimple-ssa-store-merging.c (lhs_valid_for_store_merging_p): |
| Likewise. |
| |
| 2021-11-29 Richard Biener <rguenther@suse.de> |
| |
| * vec.c (qsort_chk): Do not return the void return value |
| from the noreturn qsort_chk_error. |
| * ccmp.c (expand_ccmp_expr_1): Remove unreachable return. |
| * df-scan.c (df_ref_equal_p): Likewise. |
| * dwarf2out.c (is_base_type): Likewise. |
| (add_const_value_attribute): Likewise. |
| * fixed-value.c (fixed_arithmetic): Likewise. |
| * gimple-fold.c (gimple_fold_builtin_fputs): Likewise. |
| * gimple-ssa-strength-reduction.c (stmt_cost): Likewise. |
| * graphite-isl-ast-to-gimple.c |
| (gcc_expression_from_isl_expr_op): Likewise. |
| (gcc_expression_from_isl_expression): Likewise. |
| * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): |
| Likewise. |
| * lto-streamer-in.c (lto_input_mode_table): Likewise. |
| |
| 2021-11-29 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102811 |
| * config/i386/i386.c (inline_secondary_memory_needed): HImode |
| move between GPR and SSE registers is supported under |
| TARGET_SSE2 and above. |
| * config/i386/i386.md (extendhfsf2): Optimize expander. |
| (truncsfhf2): Ditto. |
| * config/i386/sse.md (sse2p4_1): Adjust attr for V8HFmode to |
| align with V8HImode. |
| |
| 2021-11-29 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102811 |
| PR target/103463 |
| * config/i386/i386.c (ix86_secondary_reload): Without |
| TARGET_SSE4_1, General register is needed to move HImode from |
| sse register to memory. |
| * config/i386/sse.md (*vec_extrachf): Use %vpextrw instead of |
| pextrw in output templates. |
| * config/i386/i386.md (movhi_internal): Ditto, also fix typo of |
| MEM_P (operands[1]) and adjust mode/prefix/type attribute for |
| alternatives related to sse register. |
| |
| 2021-11-29 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103458 |
| * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): Do not |
| create forwarders for blocks with abnormal predecessors. |
| |
| 2021-11-29 Richard Biener <rguenther@suse.de> |
| |
| * gimple-predicate-analysis.cc (can_be_invalidated_p): |
| Restore semantics to the one before the split from |
| tree-ssa-uninit.c. |
| |
| 2021-11-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * profile.c: Include sreal.h |
| (struct bb_stats): New. |
| (cmp_stats): New function. |
| (compute_branch_probabilities): Output bb stats. |
| |
| 2021-11-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cfghooks.c: Include sreal.h, profile.h. |
| (profile_record_check_consistency): Fix checking of count counsistency; |
| record also dynamic mismatches. |
| * cfgrtl.c (rtl_account_profile_record): Similarly. |
| * tree-cfg.c (gimple_account_profile_record): Likewise. |
| * cfghooks.h (struct profile_record): Remove num_mismatched_freq_in, |
| num_mismatched_freq_out, turn time to double, add |
| dyn_mismatched_prob_out, dyn_mismatched_count_in, |
| num_mismatched_prob_out; remove num_mismatched_count_out. |
| * passes.c (account_profile_1): New function. |
| (account_profile_in_list): New function. |
| (pass_manager::dump_profile_report): Rewrite. |
| (execute_one_ipa_transform_pass): Check profile consistency after |
| running all passes. |
| (execute_all_ipa_transforms): Remove cfun test; record all transform |
| methods. |
| (execute_one_pass): Fix collecting of profile stats. |
| |
| 2021-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/103431 |
| * config/i386/i386.md (x86_64_shld, x86_shld, x86_64_shrd, x86_shrd): |
| Change insn pattern to accurately describe the instructions. |
| (*x86_64_shld_1, *x86_shld_1, *x86_64_shrd_1, *x86_shrd_1): New |
| define_insn patterns. |
| (*x86_64_shld_2, *x86_shld_2, *x86_64_shrd_2, *x86_shrd_2): New |
| define_insn_and_split patterns. |
| (*ashl<dwi>3_doubleword_mask, *ashl<dwi>3_doubleword_mask_1, |
| *<insn><dwi>3_doubleword_mask, *<insn><dwi>3_doubleword_mask_1, |
| ix86_rotl<dwi>3_doubleword, ix86_rotr<dwi>3_doubleword): Adjust |
| splitters for x86_{,64_}sh{l,r}d pattern changes. |
| |
| 2021-11-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/103435 |
| * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if |
| n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that |
| case. |
| |
| 2021-11-27 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/103441 |
| * ipa-prop.c (ipcp_transform_function): Call |
| delete_unreachable_blocks_update_callgraph instead of returning |
| TODO_cleanup_cfg. |
| |
| 2021-11-26 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * tree-object-size.c (object_sizes_grow, object_sizes_release, |
| object_sizes_unknown_p, object_sizes_get, object_size_set_force, |
| object_sizes_set): New functions. |
| (addr_object_size, compute_builtin_object_size, |
| expr_object_size, call_object_size, unknown_object_size, |
| merge_object_sizes, plus_stmt_object_size, |
| cond_expr_object_size, collect_object_sizes_for, |
| check_for_plus_in_loops_1, init_object_sizes, |
| fini_object_sizes): Adjust. |
| |
| 2021-11-26 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * tree-object-size.c: New enum. |
| (object_sizes, computed, addr_object_size, |
| compute_builtin_object_size, expr_object_size, call_object_size, |
| merge_object_sizes, plus_stmt_object_size, |
| collect_object_sizes_for, init_object_sizes, fini_object_sizes, |
| object_sizes_execute): Replace magic numbers with enums. |
| |
| 2021-11-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-loop-ivopts.c (cand_value_at): Take a class |
| tree_niter_desc* argument instead of just a tree for NITER. |
| If we require the iv candidate value at the end of the final |
| loop iteration, try using the original loop bound as the |
| NITER for sufficiently simple loops. |
| (may_eliminate_iv): Update (only) call to cand_value_at. |
| |
| 2021-11-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (analyze_function): Drop parameter F and dump |
| cgraph node name rather than cfun name. |
| (modref_generate): Update. |
| (modref_summaries::insert):Update. |
| (modref_summaries_lto::insert):Update. |
| (pass_modref::execute):Update. |
| (ipa_merge_modref_summary_after_inlining): Improve combining of |
| ECF_FLAGS. |
| |
| 2021-11-26 Jan Hubicka <jh@suse.cz> |
| |
| PR ipa/102943 |
| * ipa-modref.c (update_escape_summary_1): Fix handling of min_flags. |
| |
| 2021-11-26 konglin1 <lingling.kong@intel.com> |
| |
| PR target/102811 |
| * config/i386/i386.c (ix86_can_change_mode_class): Allow 16 bit data in XMM register |
| for TARGET_SSE2. |
| * config/i386/i386.md (extendhfsf2): Add extenndhfsf2 for TARGET_F16C. |
| (extendhfdf2): Restrict extendhfdf for TARGET_AVX512FP16 only. |
| (*extendhf<mode>2): Rename from extendhf<mode>2. |
| (truncsfhf2): Likewise. |
| (truncdfhf2): Likewise. |
| (*trunc<mode>2): Likewise. |
| |
| 2021-11-26 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/103419 |
| * match.pd: Fix typo, use the type of second parameter, not |
| first one. |
| |
| 2021-11-25 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-cp.c (ipa_value_range_from_jfunc): Remove forgotten early return. |
| |
| 2021-11-25 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/103406 |
| * match.pd (minus @0 @0): Check tree_expr_maybe_infinite_p. |
| |
| 2021-11-25 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/103227 |
| * ipa-prop.h (ipa_get_param): New overload. Move bits of the existing |
| one to the new one. |
| * ipa-param-manipulation.h (ipa_param_adjustments): New member |
| function get_updated_index_or_split. |
| * ipa-param-manipulation.c |
| (ipa_param_adjustments::get_updated_index_or_split): New function. |
| * ipa-prop.c (adjust_agg_replacement_values): Reimplement, add |
| capability to identify scalarized parameters and perform substitution |
| on them. |
| (ipcp_transform_function): Create descriptors earlier, handle new |
| return values of adjust_agg_replacement_values. |
| |
| 2021-11-25 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::compute_ranges_defined): Remove. |
| (path_range_query::compute_ranges_in_block): Revert to bitmap order. |
| * gimple-range-path.h: Remove compute_ranges_defined. |
| |
| 2021-11-25 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR target/103396 |
| * config/gcn/gcn.c (move_callee_saved_registers): Ensure that the |
| number of spilled registers is counted correctly. |
| |
| 2021-11-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-prop.h (ipa_node_params::ipa_node_params): Initialize |
| node_is_self_scc. |
| |
| 2021-11-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103359 |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): If arg is |
| equivalent to def, don't initially include it's range. |
| |
| 2021-11-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not check |
| gimple_static_chain. |
| |
| 2021-11-25 Richard Biener <rguenther@suse.de> |
| |
| * cgraphunit.c (symbol_table::output_weakrefs): Remove |
| unreachable init. |
| (get_alias_symbol): Remove now unused function. |
| |
| 2021-11-25 Richard Biener <rguenther@suse.de> |
| |
| * cfgrtl.c (rtl_verify_fallthru): Do not stop verifying |
| with fatal_insn. |
| (skip_insns_after_block): Remove unreachable break and continue. |
| |
| 2021-11-25 Richard Biener <rguenther@suse.de> |
| |
| * cfgexpand.c (label_rtx_for_bb): Remove dead loop construct. |
| |
| 2021-11-25 Richard Biener <rguenther@suse.de> |
| |
| * regset.h (REG_SET_EMPTY_P): New macro. |
| * cfgcleanup.c (thread_jump): Use REG_SET_EMPTY_P. |
| |
| 2021-11-25 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Use @option for -Wuninitialized. |
| |
| 2021-11-25 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103254 |
| * gimple-range-path.cc (path_range_query::compute_ranges): Move |
| exported boolean code... |
| (path_range_query::compute_imports): ...here. |
| |
| 2021-11-25 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103254 |
| * gimple-range-path.cc (path_range_query::compute_ranges_defined): New |
| (path_range_query::compute_ranges_in_block): Move to |
| compute_ranges_defined. |
| * gimple-range-path.h (compute_ranges_defined): New. |
| |
| 2021-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/103417 |
| * match.pd ((X & Y) CMP 0): Only handle eq and ne. Commonalize |
| common tests. |
| |
| 2021-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/103376 |
| * gimple-ssa-store-merging.c (perform_symbolic_merge): For |
| BIT_IOR_EXPR, if masked1 && masked2 && masked1 != masked2, don't |
| punt, but set the corresponding result byte to MARKER_BYTE_UNKNOWN. |
| For BIT_XOR_EXPR similarly and if masked1 == masked2 and the |
| byte isn't MARKER_BYTE_UNKNOWN, set the corresponding result byte to |
| 0. |
| |
| 2021-11-25 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/102611 |
| * doc/invoke.texi (-Wcomma-subscript): Document that for |
| -std=c++20 the option isn't enabled by default with -Wno-deprecated |
| but for -std=c++23 it is. |
| |
| 2021-11-24 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (implicit_eaf_flags_for_edge_and_arg): Break out from... |
| (modref_merge_call_site_flags): ... here. |
| (ipa_merge_modref_summary_after_inlining): Use it. |
| |
| 2021-11-24 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * cfgloop.c (verify_loop_structure): Reduce scope of |
| 'class loop *loop' variable. |
| * ipa-fnsummary.c (analyze_function_body): Likewise. |
| * loop-init.c (fix_loop_structure): Likewise. |
| * loop-invariant.c (calculate_loop_reg_pressure): Likewise. |
| * predict.c (predict_loops): Likewise. |
| * tree-loop-distribution.c (loop_distribution::execute): Likewise. |
| * tree-vectorizer.c (pass_vectorize::execute): Likewise. |
| |
| 2021-11-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103231 |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Create stmt stack. |
| (gimple_ranger::gimple_ranger): Delete stmt stack. |
| (gimple_ranger::range_of_stmt): Process depenedencies if they have no |
| global cache entry. |
| (gimple_ranger::prefill_name): New. |
| (gimple_ranger::prefill_stmt_dependencies): New. |
| * gimple-range.h (class gimple_ranger): Add prototypes. |
| |
| 2021-11-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::get_global_range): Always |
| return a range, return if it came from the cache or not. |
| (get_non_stale_global_range): Rename to get_global_range, and return |
| the temporal state in a flag. |
| * gimple-range-cache.h (get_non_stale_global_range): Rename and adjust. |
| * gimple-range.cc (gimple_ranger::range_of_expr): No need to query |
| get_global_range. |
| (gimple_ranger::range_of_stmt): Adjust for global cache temporal state |
| returned in a flag. |
| |
| 2021-11-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range.cc (gimple_ranger::range_on_edge): Call trailer when |
| a constant is encountered to terminate the trace. |
| |
| 2021-11-24 Maciej W. Rozycki <macro@embecosm.com> |
| |
| PR middle-end/103059 |
| * reload.c (find_reloads_address_1): Also accept the ASHIFT form |
| of indexed addressing. |
| (find_reloads): Adjust accordingly. |
| |
| 2021-11-24 Richard Biener <rguenther@suse.de> |
| Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/103168 |
| * ipa-modref.h (struct modref_summary): Add load_accesses. |
| * ipa-modref.c (modref_summary::finalize): Initialize load_accesses. |
| * tree-ssa-sccvn.c (visit_reference_op_call): Use modref |
| info to walk the virtual use->def chain to CSE const/pure |
| function calls possibly reading from memory. |
| |
| 2021-11-24 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/103244 |
| * gimplify.c (gimplify_adjust_omp_clauses): Restore previous |
| OpenACC behavior. |
| |
| 2021-11-24 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/103193 |
| * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0) |
| with NaNs and -ftrapping-math. |
| |
| 2021-11-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/103384 |
| * omp-general.c (omp_context_selector_matches): For ACCEL_COMPILER, |
| return 0 for kind(host) and continue for kind(nohost). |
| |
| 2021-11-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/103365 |
| * attribs.h (lookup_attribute): Allow attr_name to start with |
| underscore, as long as canonicalize_attr_name returns false. |
| (lookup_attribute_by_prefix): Don't call get_attribute_name twice. |
| * attribs.c (extract_attribute_substring): Reimplement using |
| canonicalize_attr_name. |
| (register_scoped_attribute): Change gcc_assert into |
| gcc_checking_assert, verify !canonicalize_attr_name rather than |
| that str.str doesn't start with '_'. |
| |
| 2021-11-24 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/103376 |
| * gimple-ssa-store-merging.c (perform_symbolic_merge): Add CODE |
| argument. If CODE is not BIT_IOR_EXPR, ensure that one of masked1 |
| or masked2 is 0. |
| (find_bswap_or_nop_1, find_bswap_or_nop, |
| imm_store_chain_info::try_coalesce_bswap): Adjust |
| perform_symbolic_merge callers. |
| |
| 2021-11-24 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-ivopts.c (find_givs): Take loop body as |
| argument instead of re-computing it. |
| (find_interesting_uses): Likewise. |
| (find_induction_variables): Pass through loop body. |
| (tree_ssa_iv_optimize_loop): Pass down loop body. |
| |
| 2021-11-24 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-ssa-phiopt.c (spaceship_replacement): Handle new canonical |
| codegen. |
| |
| 2021-11-24 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree.c (bitmask_inv_cst_vector_p): New. |
| * tree.h (bitmask_inv_cst_vector_p): New. |
| * match.pd: Use it in new bitmask compare pattern. |
| |
| 2021-11-24 Jason Merrill <jason@redhat.com> |
| |
| * timevar.h (class auto_cond_timevar): New. |
| |
| 2021-11-24 Hongtao Liu <hongtao.liu@intel.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| |
| PR tree-optimization/103194 |
| * match.pd (gimple_nop_atomic_bit_test_and_p): Extended to |
| match truncation. |
| * tree-ssa-ccp.c (gimple_nop_convert): Declare. |
| (optimize_atomic_bit_test_and): Enhance |
| optimize_atomic_bit_test_and to handle truncation. |
| |
| 2021-11-23 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/88232 |
| * Makefile.in (OBJS): Add gimple-warn-recursion.o. |
| * common.opt: Add -Winfinite-recursion. |
| * doc/invoke.texi (-Winfinite-recursion): Document. |
| * passes.def (pass_warn_recursion): Schedule a new pass. |
| * tree-pass.h (make_pass_warn_recursion): Declare. |
| * gimple-warn-recursion.c: New file. |
| |
| 2021-11-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Change |
| error messages for ENB_P8V and ENB_P9V. |
| |
| 2021-11-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power6-64 stanza. Move |
| CMPB to power6-64 stanza. |
| * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Handle |
| ENB_P6_64 case. |
| (rs6000_new_builtin_is_supported): Likewise. |
| (rs6000_expand_new_builtin): Likewise. Clean up formatting. |
| (rs6000_init_builtins): Handle ENB_P6_64 case. |
| * config/rs6000/rs6000-gen-builtins.c (bif_stanza): Add BSTZ_P6_64. |
| (stanza_map): Add entry mapping power6-64 to BSTZ_P6_64. |
| (enable_string): Add "ENB_P6_64". |
| (write_decls): Add ENB_P6_64 to bif_enable enum. |
| |
| 2021-11-23 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-modref-tree.h (struct modref_tree): Remove max_bases, max_refs |
| and max_accesses. |
| (modref_tree::modref_tree): Remove parametr. |
| (modref_tree::insert_base): Add max_bases parameter. |
| (modref_tree::insert): Add max_bases, max_refs, max_accesses |
| parameters. |
| (modref_tree::insert): New member function. |
| (modref_tree::merge): Add max_bases, max_refs, max_accesses |
| parameters. |
| (modref_tree::insert): New member function. |
| * ipa-modref-tree.c (test_insert_search_collapse): Update. |
| (test_merge): Update. |
| * ipa-modref.c (dump_records): Don't dump max_refs and max_bases. |
| (dump_lto_records): Likewise. |
| (modref_summary::finalize): Fix whitespace. |
| (get_modref_function_summary): Likewise. |
| (modref_access_analysis::record_access): Update. |
| (modref_access_analysis::record_access_lto): Update. |
| (modref_access_analysis::process_fnspec): Update. |
| (analyze_function): Update. |
| (modref_summaries::duplicate): Update. |
| (modref_summaries_lto::duplicate): Update. |
| (write_modref_records): Update. |
| (read_modref_records): Update. |
| (read_section): Update. |
| (propagate_unknown_call): Update. |
| (modref_propagate_in_scc): Update. |
| (ipa_merge_modref_summary_after_inlining): Update. |
| |
| 2021-11-23 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Remove 2 more duplicite param descriptions. |
| |
| 2021-11-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103361 |
| * gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int |
| for the dependence distance. |
| * tree-data-ref.c (print_lambda_vector): Properly print a lambda_int. |
| |
| 2021-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-inline.h (struct copy_body_data): Remove |
| transform_lang_insert_block member. |
| * tree-inline.c (remap_block): Don't call |
| id->transform_lang_insert_block. |
| (optimize_inline_calls, copy_gimple_seq_and_replace_locals, |
| tree_function_versioning, maybe_inline_call_in_expr, |
| copy_fn): Don't initialize id.transform_lang_insert_block. |
| * gimplify.c (gimplify_omp_loop): Likewise. |
| |
| 2021-11-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/103335 |
| * tree-ssa-dse.c (valid_ao_ref_for_dse): Rename to ... |
| (valid_ao_ref_kill_for_dse): ... this; do not check that boundaries |
| are divisible by BITS_PER_UNIT. |
| (get_byte_aligned_range_containing_ref): New function. |
| (get_byte_aligned_range_contained_in_ref): New function. |
| (normalize_ref): Rename to ... |
| (get_byte_range): ... this one; handle accesses not aligned to byte |
| boundary; return range in bytes rater than updating ao_ref. |
| (clear_live_bytes_for_ref): Take write ref by reference; simplify using |
| get_byte_access. |
| (setup_live_bytes_from_ref): Likewise. |
| (clear_bytes_written_by): Update. |
| (live_bytes_read): Update. |
| (dse_classify_store): Simplify tech before live_bytes_read checks. |
| |
| 2021-11-23 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/102216 |
| * gimple-fold.c (fold_stmt_1): Add canonicalization |
| of "&MEM[ssa_n, CST]" to "ssa_n p+ CST", note this |
| can only be done if !in_place. |
| |
| 2021-11-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102431 |
| * gimplify.c (replace_reduction_placeholders): Remove. |
| (note_no_context_vars): New function. |
| (gimplify_omp_loop): For OMP_PARALLEL's BIND_EXPR create a new |
| BLOCK. Use copy_tree_body_r with walk_tree instead of unshare_expr |
| and replace_reduction_placeholders for duplication of |
| OMP_CLAUSE_REDUCTION_{INIT,MERGE} expressions. Ensure all mentioned |
| automatic vars have DECL_CONTEXT set to non-NULL before doing so |
| and reset it afterwards for those vars and their corresponding |
| vars. |
| |
| 2021-11-23 Haochen Gui <guihaoc@gcc.gnu.org> |
| |
| PR target/100868 |
| * config/rs6000/altivec.md (altivec_vreve<mode>2 for VEC_K): Use |
| xxbrq for v16qi, xxbrq + xxbrh for v8hi and xxbrq + xxbrw for v4si |
| or v4sf when p9_vector is set. |
| (altivec_vreve<mode>2 for VEC_64): Defined. Implemented by xxswapd. |
| |
| 2021-11-23 Navid Rahimi <navidrahimi@microsoft.com> |
| |
| PR tree-optimization/102232 |
| * match.pd (x * (1 + y / x) - y) -> (x - y % x): New optimization. |
| |
| 2021-11-23 Navid Rahimi <navidrahimi@microsoft.com> |
| |
| PR tree-optimization/96779 |
| * match.pd (-x == x) -> (x == 0): New optimization. |
| |
| 2021-11-22 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR tree-optimization/98953 |
| PR tree-optimization/103345 |
| * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Handle |
| BIT_XOR_EXPR and PLUS_EXPR the same as BIT_IOR_EXPR. |
| (pass_optimize_bswap::execute): Likewise. |
| |
| 2021-11-22 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Remove duplicate documentation for 3 params. |
| |
| 2021-11-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103351 |
| * tree-ssa-dce.c (sort_phi_args): Sort after e->dest_idx as |
| second key. |
| |
| 2021-11-22 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103275 |
| * config/i386/constraints.md (Bk): New |
| define_memory_constraint. |
| * config/i386/i386-protos.h (ix86_gpr_tls_address_pattern_p): |
| Declare. |
| * config/i386/i386.c (ix86_gpr_tls_address_pattern_p): New |
| function. |
| * config/i386/i386.md (*movsi_internal): Don't allow |
| mask/sse/mmx move in TLS code sequences. |
| (*movdi_internal): Ditto. |
| |
| 2021-11-22 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/xtensa/xtensa.md (movdi_internal, movdf_internal): Fix split |
| condition. |
| |
| 2021-11-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/101180 |
| * config/i386/i386-options.c (ix86_valid_target_attribute_p): If |
| fndecl already has DECL_FUNCTION_SPECIFIC_TARGET, use that as base |
| instead of target_option_default_node. |
| |
| 2021-11-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103227 |
| * ipa-modref.c (parm_map_for_arg): Rename to ... |
| (parm_map_for_ptr): .. this one; handle static chain and calls to |
| malloc functions. |
| (modref_access_analysis::get_access): Use parm_map_for_ptr. |
| (modref_access_analysis::process_fnspec): Update. |
| (modref_access_analysis::analyze_load): Update. |
| (modref_access_analysis::analyze_store): Update. |
| |
| 2021-11-21 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (ignore_nondeterminism_p): Move earlier in source |
| code. |
| (ignore_retval_p): Likewise. |
| (ignore_stores_p): Likewise. |
| (parm_map_for_arg): Likewise. |
| (class modref_access_analysis): New class. |
| (modref_access_analysis::set_side_effects): New member function. |
| (modref_access_analysis::set_nondeterministic): New member function. |
| (get_access): Turn to ... |
| (modref_access_analysis::get_access): ... this one. |
| (record_access): Turn to ... |
| (modref_access_analysis::record_access): ... this one. |
| (record_access_lto): Turn to ... |
| (modref_access_analysis::record_access_lto): ... This one. |
| (record_access_p): Turn to ... |
| (modref_access_analysis::record_access_p): ... This one |
| (modref_access_analysis::record_unknown_load): New member function. |
| (modref_access_analysis::record_unknown_store): New member function. |
| (get_access_for_fnspec): Turn to ... |
| (modref_access_analysis::get_access_for_fnspec): ... this one. |
| (merge_call_side_effects): Turn to ... |
| (moderf_access_analysis::merge_call_side_effects): Turn to ... |
| (collapse_loads): Move later in source code. |
| (collapse_stores): Move later in source code. |
| (process_fnspec): Turn to ... |
| (modref_access_analysis::process_fnspec): ... this one. |
| (analyze_call): Turn to ... |
| (modref_access_analysis::analyze_call): ... this one. |
| (struct summary_ptrs): Remove. |
| (analyze_load): Turn to ... |
| (modref_access_analysis::analyze_load): ... this one. |
| (analyze_store): Turn to ... |
| (modref_access_analysis::analyze_store): ... this one. |
| (analyze_stmt): Turn to ... |
| (modref_access_analysis::analyze_stmt): ... This one. |
| (remove_summary): Remove. |
| (modref_access_analysis::propagate): Break out from ... |
| (modref_access_analysis::analyze): Break out from ... |
| (analyze_function): ... here. |
| |
| 2021-11-21 Roger Sayle <roger@nextmovesoftware.com> |
| Robin Dapp <rdapp@linux.ibm.com> |
| |
| PR target/102117 |
| * tree-ssa-math-opts.c (convert_mult_to_widen): Recognize |
| signed WIDEN_MULT_EXPR if the target supports umul_widen_optab. |
| |
| 2021-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103052 |
| * ipa-modref.c (ignore_nondeterminism_p): Allow looping pure/cont. |
| (merge_call_side_effects): Improve debug output. |
| |
| 2021-11-20 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103052 |
| * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. |
| |
| 2021-11-20 Jeff Law <jeffreyalaw@gmail.com> |
| |
| PR tree-optimization/103226 |
| * config/bfin/bfin.md (doloop pattern, splitter and expander): Clobber |
| CC. |
| |
| 2021-11-20 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103220 |
| * match.pd ((type) X bitop CST): Don't check if CST |
| fits into the type if only the sign changes. |
| |
| 2021-11-20 Alexandre Oliva <oliva@adacore.com> |
| |
| PR tree-optimization/102988 |
| * gimple-harden-conditionals.cc (detach_value): Copy SSA_NAME |
| without decl sharing. |
| |
| 2021-11-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * doc/invoke.texi: Remove whitespace after an @option. |
| |
| 2021-11-19 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/emmintrin.h (_mm_sad_epu8): Use vec_absd when |
| _ARCH_PWR9, optimize vec_sum2s when LE. |
| |
| 2021-11-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/80556 |
| * config/darwin-driver.c (darwin_driver_init): Handle exported |
| symbols and symbol lists (suppress automatic export of the TLS |
| symbols). |
| * config/darwin.c (darwin_rename_builtins): Remove workaround. |
| * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. |
| (REAL_LIBGCC_SPEC): Handle revised library uses. |
| * config/darwin.opt (nodefaultexport): New. |
| * config/i386/darwin.h (PR80556_WORKAROUND): Remove. |
| * config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise. |
| * config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise. |
| |
| 2021-11-19 Martin Jambor <mjambor@suse.cz> |
| |
| * opts.c (default_options_table): Switch off |
| flag_semantic_interposition at Ofast. |
| * doc/invoke.texi (Optimize Options): Document that Ofast switches off |
| -fsemantic-interposition. |
| |
| 2021-11-19 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not guard modref |
| by !gimple_call_chain. |
| |
| 2021-11-19 Martin Sebor <msebor@redhat.com> |
| |
| PR c++/33925 |
| PR c/102867 |
| * doc/invoke.texi (-Waddress): Update. |
| |
| 2021-11-19 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103254 |
| * gimple-range-gori.cc (range_def_chain::get_def_chain): Limit the |
| depth for all statements with multple ssa names. |
| |
| 2021-11-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * config/s390/s390.md (define_peephole2): Variable insn points |
| to the first matched insn. Use peep2_next_insn(1) to refer to |
| the second matched insn. |
| |
| 2021-11-19 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/103311 |
| PR target/103330 |
| * tree-vect-slp-patterns.c (vect_validate_multiplication): Fix CONJ |
| test to new codegen. |
| (complex_mul_pattern::matches): Move check downwards. |
| |
| 2021-11-19 Martin Liska <mliska@suse.cz> |
| |
| Revert: |
| 2021-11-19 Martin Liska <mliska@suse.cz> |
| |
| * cfgexpand.c (pass_expand::execute): Use option directly. |
| * function.c (allocate_struct_function): Likewise. |
| * gimple-low.c (lower_function_body): Likewise. |
| (lower_stmt): Likewise. |
| * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. |
| * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. |
| * ipa-split.c (split_function): Likewise. |
| * lto-streamer-in.c (input_function): Likewise. |
| * sese.c (sese_insert_phis_for_liveouts): Likewise. |
| * ssa-iterators.h (num_imm_uses): Likewise. |
| * tree-cfg.c (make_blocks): Likewise. |
| (gimple_merge_blocks): Likewise. |
| * tree-inline.c (tree_function_versioning): Likewise. |
| * tree-loop-distribution.c (generate_loops_for_partition): Likewise. |
| * tree-sra.c (analyze_access_subtree): Likewise. |
| * tree-ssa-dce.c (remove_dead_stmt): Likewise. |
| * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. |
| * tree-ssa-phiopt.c (spaceship_replacement): Likewise. |
| * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. |
| * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. |
| * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. |
| * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. |
| (target_for_debug_bind): Likewise. |
| (insert_debug_temp_for_var_def): Likewise. |
| (insert_debug_temps_for_defs): Likewise. |
| (reset_debug_uses): Likewise. |
| * tree-ssanames.c (release_ssa_name_fn): Likewise. |
| * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. |
| (adjust_debug_stmts): Likewise. |
| (adjust_phi_and_debug_stmts): Likewise. |
| (vect_do_peeling): Likewise. |
| * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. |
| (vect_transform_loop): Likewise. |
| * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove |
| (MAY_HAVE_DEBUG_BIND_STMTS): Remove. |
| (MAY_HAVE_DEBUG_STMTS): Use options directly. |
| |
| 2021-11-19 Giuliano Belinassi <gbelinassi@suse.de> |
| |
| * gcc.c (process_command): Skip dumpdir override if file is a |
| not_actual_file_p. |
| * doc/invoke.texi: Update -dumpdir documentation. |
| |
| 2021-11-19 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103314 |
| * match.pd ((type) X op CST): Restrict the equal |
| TYPE_PRECISION case to GIMPLE only. |
| |
| 2021-11-19 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/103230 |
| * ipa-modref-tree.h (struct modref_parm_map): Add default |
| constructor. |
| * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Use it. |
| |
| 2021-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/103248 |
| * tree-eh.c (operation_could_trap_helper_p): Properly handle |
| fixed-point RDIV_EXPR. |
| |
| 2021-11-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102436 |
| * tree-ssa-loop-im.c (execute_sm_if_changed): Add mode |
| to just create the if structure and return the then block. |
| (execute_sm): Add flag to indicate the var will re-use |
| another flag var. |
| (hoist_memory_references): Support a single conditional |
| block with all stores as special case. |
| |
| 2021-11-19 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103317 |
| * tree-ssa-phiopt.c (minmax_replacement): For the non empty |
| middle bb case, check to make sure it has a single predecessor. |
| |
| 2021-11-19 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103257 |
| * match.pd |
| ((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): |
| Disable until !canonicalize_math_p (). |
| |
| 2021-11-19 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/19808 |
| PR c++/96121 |
| * doc/invoke.texi: Update documentation for -Wuninitialized. |
| * tree.c (stabilize_reference): Set location. |
| |
| 2021-11-19 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102543 |
| * config/i386/x86-tune-costs.h (skylake_cost): Reduce cost of |
| storing 256/512-bit SSE register to be equal to cost of |
| unaligned store to avoid odd alignment peeling. |
| (icelake_cost): Ditto. |
| |
| 2021-11-18 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/predicates.md (current_file_function_operand): |
| Add flag_semantic_interposition to call of decl_replaceable_p. |
| |
| 2021-11-18 Martin Liska <mliska@suse.cz> |
| |
| * ipa-modref.c (analyze_function): Do not execute the code |
| only if dump_file != NULL. |
| |
| 2021-11-18 Martin Liska <mliska@suse.cz> |
| |
| * ipa-modref.c (analyze_function): Use fnode instead of repeated |
| cgraph_node::get (current_function_decl). |
| |
| 2021-11-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (cgraph_node::get_availability): Update call of |
| decl_replaceable_p. |
| (cgraph_node::verify_node): Verify that semantic_interposition flag |
| is set correclty. |
| * cgraph.h: (symtab_node): Add semantic_interposition flag. |
| * cgraphclones.c (set_new_clone_decl_and_node_flags): Clear |
| semantic_interposition flag. |
| * cgraphunit.c (cgraph_node::finalize_function): Set |
| semantic_interposition flag. |
| (cgraph_node::add_new_function): Likewise. |
| (varpool_node::finalize_decl): Likewise. |
| (cgraph_node::create_wrapper): Likewise. |
| * common.opt (fsemantic-interposition): Turn to optimization node. |
| * lto-cgraph.c (lto_output_node): Stream semantic_interposition. |
| (lto_output_varpool_node): Likewise. |
| (input_overwrite_node): Likewise. |
| (input_varpool_node): Likewise. |
| * symtab.c (symtab_node::dump_base): Dump new flag. |
| * varasm.c (decl_replaceable_p): Add semantic_interposition_p |
| parameter. |
| * varasm.h (decl_replaceable_p): Update declaration. |
| * varpool.c (varpool_node::ctor_useable_for_folding_p): |
| Use semantic_interposition flag. |
| (varpool_node::get_availability): Likewise. |
| (varpool_node::create_alias): Copy semantic_interposition flag. |
| |
| 2021-11-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103266 |
| * ipa-modref.c (modref_eaf_analysis::merge_call_lhs_flags): Unused |
| parameter may still be returned. |
| (modref_eaf_analysis::analyze_ssa_name): Call merge_call_lhs_flags |
| even for unused function args. |
| |
| 2021-11-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/103311 |
| * tree-vect-slp-patterns.c (complex_mul_pattern::matches, |
| complex_fms_pattern::matches): Check for multiplications. |
| |
| 2021-11-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/102952 |
| * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): Emit |
| CS prefix for -mindirect-branch-cs-prefix. |
| (ix86_output_indirect_branch_via_reg): Likewise. |
| * config/i386/i386.opt: Add -mindirect-branch-cs-prefix. |
| * doc/invoke.texi: Document -mindirect-branch-cs-prefix. |
| |
| 2021-11-18 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/driver-rs6000.c (detect_processor_aix): Add |
| power10. |
| |
| 2021-11-18 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/103253 |
| * tree-ssa-math-opts.c (convert_mult_to_fma): Check for LHS. |
| |
| 2021-11-18 Matthias Kretz <m.kretz@gsi.de> |
| |
| * doc/extend.texi: Document __builtin_assoc_barrier. |
| |
| 2021-11-18 Martin Liska <mliska@suse.cz> |
| |
| * cfgexpand.c (pass_expand::execute): Use option directly. |
| * function.c (allocate_struct_function): Likewise. |
| * gimple-low.c (lower_function_body): Likewise. |
| (lower_stmt): Likewise. |
| * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. |
| * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. |
| * ipa-split.c (split_function): Likewise. |
| * lto-streamer-in.c (input_function): Likewise. |
| * sese.c (sese_insert_phis_for_liveouts): Likewise. |
| * ssa-iterators.h (num_imm_uses): Likewise. |
| * tree-cfg.c (make_blocks): Likewise. |
| (gimple_merge_blocks): Likewise. |
| * tree-inline.c (tree_function_versioning): Likewise. |
| * tree-loop-distribution.c (generate_loops_for_partition): Likewise. |
| * tree-sra.c (analyze_access_subtree): Likewise. |
| * tree-ssa-dce.c (remove_dead_stmt): Likewise. |
| * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. |
| * tree-ssa-phiopt.c (spaceship_replacement): Likewise. |
| * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. |
| * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. |
| * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. |
| * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. |
| (target_for_debug_bind): Likewise. |
| (insert_debug_temp_for_var_def): Likewise. |
| (insert_debug_temps_for_defs): Likewise. |
| (reset_debug_uses): Likewise. |
| * tree-ssanames.c (release_ssa_name_fn): Likewise. |
| * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. |
| (adjust_debug_stmts): Likewise. |
| (adjust_phi_and_debug_stmts): Likewise. |
| (vect_do_peeling): Likewise. |
| * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. |
| (vect_transform_loop): Likewise. |
| * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove |
| (MAY_HAVE_DEBUG_BIND_STMTS): Remove. |
| (MAY_HAVE_DEBUG_STMTS): Use options directly. |
| |
| 2021-11-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103277 |
| * tree-ssa-dse.c (need_ab_cleanup): New. |
| (dse_optimize_redundant_stores): Adjust. |
| (delete_dead_or_redundant_assignment): Get extra |
| need_ab_cleanup argument and set when abnormal cleanup is |
| needed. |
| (dse_optimize_call): Adjust. |
| (dse_optimize_stmt): Likewise. |
| (pass_dse::execute): Allocate and deallocate need_ab_cleanup. |
| Perform abnormal cleanup. |
| * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust. |
| |
| 2021-11-18 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): |
| Adjust generated cfg to avoid infinite loop. |
| |
| 2021-11-18 konglin1 <lingling.kong@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_mul_pch): Add alias for _mm512_fmul_pch. |
| (_mm512_mask_mul_pch): Likewise. |
| (_mm512_maskz_mul_pch): Likewise. |
| (_mm512_mul_round_pch): Likewise. |
| (_mm512_mask_mul_round_pch): Likewise. |
| (_mm512_maskz_mul_round_pch): Likewise. |
| (_mm512_cmul_pch): Likewise. |
| (_mm512_mask_cmul_pch): Likewise. |
| (_mm512_maskz_cmul_pch): Likewise. |
| (_mm512_cmul_round_pch): Likewise. |
| (_mm512_mask_cmul_round_pch): Likewise. |
| (_mm512_maskz_cmul_round_pch): Likewise. |
| (_mm_mul_sch): Likewise. |
| (_mm_mask_mul_sch): Likewise. |
| (_mm_maskz_mul_sch): Likewise. |
| (_mm_mul_round_sch): Likewise. |
| (_mm_mask_mul_round_sch): Likewise. |
| (_mm_maskz_mul_round_sch): Likewise. |
| (_mm_cmul_sch): Likewise. |
| (_mm_mask_cmul_sch): Likewise. |
| (_mm_maskz_cmul_sch): Likewise. |
| (_mm_cmul_round_sch): Likewise. |
| (_mm_mask_cmul_round_sch): Likewise. |
| (_mm_maskz_cmul_round_sch): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_mul_pch): Likewise. |
| (_mm_mask_mul_pch): Likewise. |
| (_mm_maskz_mul_pch): Likewise. |
| (_mm256_mul_pch): Likewise. |
| (_mm256_mask_mul_pch): Likewise. |
| (_mm256_maskz_mul_pch): Likewise. |
| (_mm_cmul_pch): Likewise. |
| (_mm_mask_cmul_pch): Likewise. |
| (_mm_maskz_cmul_pch): Likewise. |
| (_mm256_cmul_pch): Likewise. |
| (_mm256_mask_cmul_pch): Likewise. |
| (_mm256_maskz_cmul_pch): Likewise. |
| |
| 2021-11-17 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103228 |
| PR tree-optimization/55177 |
| * match.pd ((type) X bitop CST): Also do this |
| transformation for nop conversions. |
| |
| 2021-11-17 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/102759 |
| * gimple-array-bounds.cc (build_printable_array_type): Move... |
| * gimple-ssa-warn-access.cc (build_printable_array_type): Avoid |
| pathological function redeclarations that remove a previously |
| declared prototype. |
| Improve formatting of function arguments in informational notes. |
| * pointer-query.cc (build_printable_array_type): ...to here. |
| * pointer-query.h (build_printable_array_type): Declared. |
| |
| 2021-11-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/102952 |
| * config/i386/i386-opts.h (harden_sls): New enum. |
| * config/i386/i386.c (output_indirect_thunk): Mitigate against |
| SLS for function return. |
| (ix86_output_function_return): Likewise. |
| (ix86_output_jmp_thunk_or_indirect): Mitigate against indirect |
| branch. |
| (ix86_output_indirect_jmp): Likewise. |
| (ix86_output_call_insn): Likewise. |
| * config/i386/i386.opt: Add -mharden-sls=. |
| * doc/invoke.texi: Document -mharden-sls=. |
| |
| 2021-11-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/103307 |
| * config/i386/i386.c (ix86_code_end): Remove "%!" before ret. |
| (ix86_output_function_return): Likewise. |
| * config/i386/i386.md (simple_return_pop_internal): Likewise. |
| |
| 2021-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103246 |
| * ipa-modref.c (read_modref_records): Fix streaminig in of every_access |
| flag. |
| |
| 2021-11-17 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.c (indirect_thunks_used): Redefine as HARD_REG_SET. |
| (ix86_code_end): Use TEST_HARD_REG_BIT on indirect_thunks_used. |
| (ix86_output_indirect_branch_via_reg): Use SET_HARD_REG_BIT |
| on indirect_thunks_used. |
| (ix86_output_indirect_function_return): Ditto. |
| |
| 2021-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.c: Include cgraph.h and tree-streamer.h. |
| (modref_access_node::stream_out): New member function. |
| (modref_access_node::stream_in): New member function. |
| * ipa-modref-tree.h (modref_access_node::stream_out, |
| modref_access_node::stream_in): Declare. |
| * ipa-modref.c (modref_summary_lto::useful_p): Free useless kills. |
| (modref_summary_lto::dump): Dump kills. |
| (analyze_store): Record kills for LTO |
| (analyze_stmt): Likewise. |
| (modref_summaries_lto::duplicate): Duplicate kills. |
| (write_modref_records): Use new stream_out member function. |
| (read_modref_records): Likewise. |
| (modref_write): Stream out kills. |
| (read_section): Stream in kills |
| (remap_kills): New function. |
| (update_signature): Use it. |
| |
| 2021-11-17 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.h (LEGACY_SSE_REGNO_P): New predicate. |
| (SSE_REGNO_P): Use LEGACY_SSE_REGNO_P predicate. |
| * config/i386/i386.c (zero_all_vector_registers): |
| Use LEGACY_SSE_REGNO_P predicate. |
| (ix86_register_priority): Use REX_INT_REGNO_P, REX_SSE_REGNO_P |
| and EXT_REG_SSE_REGNO_P predicates. |
| (ix86_hard_regno_call_part_clobbered): Use REX_SSE_REGNO_P |
| and LEGACY_SSE_REGNO_P predicates. |
| |
| 2021-11-17 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi (C++ Dialect Options): Document |
| -fimplicit-constexpr. |
| |
| 2021-11-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-modes.def (VECTOR_MODE): New V8DI mode. |
| * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Handle |
| V8DImode. |
| * config/aarch64/iterators.md (define_mode_attr nunits): Add entry |
| for V8DI. |
| |
| 2021-11-17 Martin Uecker <uecker@gcc.gnu.org> |
| |
| PR c/91038 |
| PR c/29970 |
| * gimplify.c (gimplify_var_or_parm_decl): Update comment. |
| (gimplify_compound_lval): Gimplify base expression first. |
| (gimplify_target_expr): Add comment. |
| |
| 2021-11-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/103192 |
| * tree-ssa-loop-im.c (move_computations_worker): Use |
| reset_flow_sensitive_info instead of manually clearing |
| SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones |
| with integral types. |
| |
| 2021-11-17 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/103255 |
| * gimple-range-fold.cc (fold_using_range::range_of_address): Return |
| range_nonzero rather than unadjusted base's range. Formatting fixes. |
| |
| 2021-11-17 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/md.texi (cond_fmin@var{mode}, cond_fmax@var{mode}): Document. |
| * optabs.def (cond_fmin_optab, cond_fmax_optab): New optabs. |
| * internal-fn.def (COND_FMIN, COND_FMAX): New functions. |
| * internal-fn.c (first_commutative_argument): Handle them. |
| (FOR_EACH_COND_FN_PAIR): Likewise. |
| * match.pd (UNCOND_BINARY, COND_BINARY): Likewise. |
| * config/aarch64/aarch64-sve.md (cond_<fmaxmin><mode>): New |
| pattern. |
| |
| 2021-11-17 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/i386/i386.md (*add<dwi>3_doubleword, *addv<dwi>4_doubleword, |
| *addv<dwi>4_doubleword_1, *sub<dwi>3_doubleword, |
| *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1, |
| *add<dwi>3_doubleword_cc_overflow_1, *divmodsi4_const, |
| *neg<dwi>2_doubleword, *tls_dynamic_gnu2_combine_64_<mode>): Fix split |
| condition. |
| |
| 2021-11-17 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103288 |
| * tree-ssa-phiopt.c (value_replacement): Return early if middle |
| block has more than one pred. |
| |
| 2021-11-17 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/visium/visium.md (*add<mode>3_insn, *addsi3_insn, *addi3_insn, |
| *sub<mode>3_insn, *subsi3_insn, *subdi3_insn, *neg<mode>2_insn, |
| *negdi2_insn, *and<mode>3_insn, *ior<mode>3_insn, *xor<mode>3_insn, |
| *one_cmpl<mode>2_insn, *ashl<mode>3_insn, *ashr<mode>3_insn, |
| *lshr<mode>3_insn, *trunchiqi2_insn, *truncsihi2_insn, |
| *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, |
| *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, |
| *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. |
| |
| 2021-11-17 Marek Polacek <polacek@redhat.com> |
| |
| PR preprocessor/103026 |
| * doc/invoke.texi: Document -Wbidi-chars. |
| |
| 2021-11-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103246 |
| * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix clearing |
| of to_info_lto |
| |
| 2021-11-16 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-modref.c (get_modref_function_summary): Declare. |
| * ipa-modref.h (get_modref_function_summary): New function. |
| * tree-ssa-dse.c (clear_live_bytes_for_ref): Break out from ... |
| (clear_bytes_written_by): ... here; also clear memory killed by |
| calls. |
| |
| 2021-11-16 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * ggc-common.c (gt_pch_save): If we cannot find a suitable |
| memory segment for save, then error-out, do not try to |
| continue. |
| (gt_pch_restore): Save the existing line table, and when |
| the replacement is being read, use that when constructing |
| diagnostics. |
| |
| 2021-11-16 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/102976 |
| * config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for |
| output operand. |
| (*mma_assemble_acc): Likewise. |
| |
| 2021-11-16 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/102960 |
| * gimple-fold.c (get_range_strlen): Take bitmap as an argument rather |
| than a pointer to it. |
| (get_range_strlen_tree): Same. Remove bitmap allocation. Use |
| an auto_bitmap. |
| (get_maxval_strlen): Use an auto_bitmap. |
| * tree-ssa-strlen.c (get_range_strlen_dynamic): Factor out PHI |
| handling... |
| (get_range_strlen_phi): ...into this function. |
| Avoid assuming maximum string length is constant |
| (printf_strlen_execute): Dump pointer query cache contents when |
| details are requisted. |
| |
| 2021-11-16 Jason Merrill <jason@redhat.com> |
| |
| * langhooks.h (struct lang_hooks): Adjust comment. |
| * print-tree.c (print_node): Also call print_xnode hook for |
| tcc_constant class. |
| |
| 2021-11-16 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103218 |
| * match.pd: New pattern for "((type)(a<0)) << SIGNBITOFA". |
| |
| 2021-11-16 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (maddhisi4): Use a single move to accumulator. |
| (umaddhisi4): Likewise. |
| (machi): Update pattern. |
| (umachi): Likewise. |
| |
| 2021-11-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102880 |
| * tree-ssa-dce.c (sort_phi_args): New function. |
| (make_forwarders_with_degenerate_phis): Likewise. |
| (perform_tree_ssa_dce): Call |
| make_forwarders_with_degenerate_phis. |
| |
| 2021-11-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102880 |
| * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Push |
| single_pred (bb1) condition to places that really need it. |
| (match_simplify_replacement): Likewise. |
| (value_replacement): Likewise. |
| (replace_phi_edge_with_variable): Deal with extra edges |
| into the middle BB. |
| |
| 2021-11-16 Martin Jambor <mjambor@suse.cz> |
| |
| * cfgexpand.c (expand_gimple_basic_block): Use build_debug_expr_decl, |
| add a fixme note about the mode assignment perhaps being unnecessary. |
| * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): |
| Likewise. |
| (ipa_param_body_adjustments::mark_dead_statements): Likewise. |
| (ipa_param_body_adjustments::reset_debug_stmts): Likewise. |
| * tree-inline.c (remap_ssa_name): Likewise. |
| (tree_function_versioning): Likewise. |
| * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise. |
| * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. |
| * tree-ssa.c (insert_debug_temp_for_var_def): Likewise. |
| |
| 2021-11-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/103208 |
| * omp-expand.c (expand_omp_build_cond): New function. |
| (expand_omp_for_init_counts, expand_omp_for_init_vars, |
| expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Use it. |
| |
| 2021-11-16 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102009 |
| * gimple-ssa-warn-access.cc (pass_waccess::check_alloc_size_call): |
| Punt if any of alloc_size arguments is out of bounds vs. number of |
| call arguments. |
| |
| 2021-11-16 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386.md (*bmi2_rorx<mode3>_1): Make conditional |
| on !optimize_function_for_size_p. |
| (*<any_rotate><mode>3_1): Add preferred_for_size attribute. |
| (define_splits): Conditionalize on !optimize_function_for_size_p. |
| (*bmi2_rorxsi3_1_zext): Likewise. |
| (*<any_rotate>si2_1_zext): Add preferred_for_size attribute. |
| (define_splits): Conditionalize on !optimize_function_for_size_p. |
| |
| 2021-11-16 Jan Hubicka <jh@suse.cz> |
| |
| PR ipa/103262 |
| * ipa-modref.c (merge_call_side_effects): Fix uninitialized |
| access. |
| |
| 2021-11-16 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/103245 |
| * match.pd: Combine the abs pattern matching using multiplication. |
| Adding optional nop_convert too. |
| |
| 2021-11-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/103268 |
| * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Add a missing |
| return. |
| |
| 2021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * gimple-fold.c (gimple_fold_builtin_strncat): Use ranges to |
| determine if it is safe to transform to strcat. |
| (gimple_fold_builtin_snprintf): Likewise. |
| |
| 2021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * gimple-fold.c (known_lower): New function. |
| (gimple_fold_builtin_strncat_chk, |
| gimple_fold_builtin_memory_chk, gimple_fold_builtin_stxcpy_chk, |
| gimple_fold_builtin_stxncpy_chk, |
| gimple_fold_builtin_snprintf_chk, |
| gimple_fold_builtin_sprintf_chk): Use it. |
| |
| 2021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * gimple-fold.c (dump_transformation): New function. |
| (gimple_fold_builtin_stxcpy_chk, |
| gimple_fold_builtin_stxncpy_chk): Use it. Simplify to |
| BUILT_IN_STRNCPY if return value is not used. |
| |
| 2021-11-15 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/103184 |
| * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check optab |
| before transforming equivalent, but slighly different cases to |
| their canonical forms. |
| |
| 2021-11-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR fortran/102992 |
| * config/darwin.h (TARGET_DTORS_FROM_CXA_ATEXIT): New. |
| * doc/tm.texi: Regenerated. |
| * doc/tm.texi.in: Add TARGET_DTORS_FROM_CXA_ATEXIT hook. |
| * ipa.c (cgraph_build_static_cdtor_1): Return the built |
| function decl. |
| (build_cxa_atexit_decl): New. |
| (build_dso_handle_decl): New. |
| (build_cxa_dtor_registrations): New. |
| (compare_cdtor_tu_order): New. |
| (build_cxa_atexit_fns): New. |
| (ipa_cdtor_merge): If dtors_from_cxa_atexit is set, |
| process the DTORs/CTORs accordingly. |
| (pass_ipa_cdtor_merge::gate): Also run if |
| dtors_from_cxa_atexit is set. |
| * target.def (dtors_from_cxa_atexit): New hook. |
| |
| 2021-11-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| * configure.ac: Test ld64 for -platform-version support. |
| |
| 2021-11-15 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * diagnostic-spec.h (typedef xint_hash_t) |
| (typedef xint_hash_map_t): Replace with... |
| (typedef nowarn_map_t): ... this. |
| (nowarn_map): Adjust. |
| * diagnostic-spec.c (nowarn_map, suppress_warning_at): Likewise. |
| |
| 2021-11-15 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * profile.c (branch_prob): Use 'location_hash' for |
| 'seen_locations'. |
| |
| 2021-11-15 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103207 |
| * value-range.cc (irange::set): Drop overflow. |
| |
| 2021-11-15 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (optimize_target_teams): Only add OMP_CLAUSE_THREAD_LIMIT |
| to OMP_TARGET_CLAUSES if it isn't there already. |
| |
| 2021-11-15 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::internal_range_of_expr): |
| Remove useless code. |
| (path_range_query::ssa_defined_in_bb): New. |
| (path_range_query::ssa_range_in_phi): Avoid fold_range call that |
| could trigger additional lookups. |
| Do not use the cache for ARGs defined in this block. |
| (path_range_query::compute_ranges_in_block): Use ssa_defined_in_bb. |
| (path_range_query::maybe_register_phi_relation): Same. |
| (path_range_query::range_of_stmt): Adjust comment. |
| * gimple-range-path.h (ssa_defined_in_bb): New. |
| |
| 2021-11-15 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::internal_range_of_expr): |
| Default to global range if nothing found. |
| |
| 2021-11-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103237 |
| * tree-vect-loop.c (vect_is_simple_reduction): Fail for |
| double reductions with multiple inner loop LC PHI nodes. |
| |
| 2021-11-15 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/103069 |
| * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): |
| New expand function. |
| * config/i386/i386-options.c (ix86_target_string): Add |
| -mrelax-cmpxchg-loop flag. |
| (ix86_valid_target_attribute_inner_p): Likewise. |
| * config/i386/i386-protos.h (ix86_expand_atomic_fetch_op_loop): |
| New expand function prototype. |
| * config/i386/i386.opt: Add -mrelax-cmpxchg-loop. |
| * config/i386/sync.md (atomic_fetch_<logic><mode>): New expander |
| for SI,HI,QI modes. |
| (atomic_<logic>_fetch<mode>): Likewise. |
| (atomic_fetch_nand<mode>): Likewise. |
| (atomic_nand_fetch<mode>): Likewise. |
| (atomic_fetch_<logic><mode>): New expander for DI,TI modes. |
| (atomic_<logic>_fetch<mode>): Likewise. |
| (atomic_fetch_nand<mode>): Likewise. |
| (atomic_nand_fetch<mode>): Likewise. |
| * doc/invoke.texi: Document -mrelax-cmpxchg-loop. |
| |
| 2021-11-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103219 |
| * gimple-loop-jam.c (tree_loop_unroll_and_jam): Use single_exit |
| to determine the exit for the VN region. |
| |
| 2021-11-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * tree-ssa-loop.c (pass_vectorize): Move to tree-vectorizer.c. |
| (pass_data_vectorize): Likewise. |
| (make_pass_vectorize): Likewise. |
| * tree-vectorizer.c (vectorize_loops): Merge with |
| pass_vectorize::execute and replace cfun occurences with fun param. |
| (adjust_simduid_builtins): Add fun param, replace cfun occurences with |
| fun, and adjust callers approrpiately. |
| (note_simd_array_uses): Likewise. |
| (vect_loop_dist_alias_call): Likewise. |
| (set_uid_loop_bbs): Likewise. |
| (vect_transform_loops): Likewise. |
| (try_vectorize_loop_1): Likewise. |
| (try_vectorize_loop): Likewise. |
| |
| 2021-11-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/103205 |
| * config/i386/sync.md (atomic_bit_test_and_set<mode>, |
| atomic_bit_test_and_complement<mode>, |
| atomic_bit_test_and_reset<mode>): Use OPTAB_WIDEN instead of |
| OPTAB_DIRECT. |
| |
| 2021-11-15 Maciej W. Rozycki <macro@embecosm.com> |
| |
| * config/vax/vax.c (vax_lra_p): New prototype and function. |
| (TARGET_LRA_P): Wire it. |
| * config/vax/vax.opt (mlra): New option. |
| * doc/invoke.texi (Option Summary, VAX Options): Document the |
| new option. |
| |
| 2021-11-14 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-modref.h (struct modref_summary): Add nondeterministic |
| and calls_interposable flags. |
| * ipa-modref.c (modref_summary::modref_summary): Initialize new flags. |
| (modref_summary::useful_p): Check new flags. |
| (struct modref_summary_lto): Add nondeterministic and |
| calls_interposable flags. |
| (modref_summary_lto::modref_summary_lto): Initialize new flags. |
| (modref_summary_lto::useful_p): Check new flags. |
| (modref_summary::dump): Dump new flags. |
| (modref_summary_lto::dump): Dump new flags. |
| (ignore_nondeterminism_p): New function. |
| (merge_call_side_effects): Merge new flags. |
| (process_fnspec): Likewise. |
| (analyze_load): Volatile access is nondeterministic. |
| (analyze_store): Liekwise. |
| (analyze_stmt): Volatile ASM is nondeterministic. |
| (analyze_function): Clear new flags. |
| (modref_summaries::duplicate): Duplicate new flags. |
| (modref_summaries_lto::duplicate): Duplicate new flags. |
| (modref_write): Stream new flags. |
| (read_section): Stream new flags. |
| (propagate_unknown_call): Update new flags. |
| (modref_propagate_in_scc): Propagate new flags. |
| * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check |
| calls_interposable. |
| * tree-ssa-structalias.c (determine_global_memory_access): |
| Likewise. |
| |
| 2021-11-14 Maciej W. Rozycki <macro@embecosm.com> |
| |
| * config/vax/vax.h (SET_RATIO): New macro. |
| * config/vax/vax.md (UNSPEC_SETMEM_FILL): New constant. |
| (setmemhi): New expander. |
| (setmemhi1): New insn and splitter. |
| (*setmemhi1): New insn. |
| |
| 2021-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.c (modref_access_node::update_for_kills): New |
| member function. |
| (modref_access_node::merge_for_kills): Likewise. |
| (modref_access_node::insert_kill): Likewise. |
| * ipa-modref-tree.h (modref_access_node::update_for_kills, |
| modref_access_node::merge_for_kills, modref_access_node::insert_kill): |
| Declare. |
|