| 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. |
| (modref_access_node::useful_for_kill): New member function. |
| * ipa-modref.c (modref_summary::useful_p): Release useless kills. |
| (lto_modref_summary): Add kills. |
| (modref_summary::dump): Dump kills. |
| (record_access): Add mdoref_access_node parameter. |
| (record_access_lto): Likewise. |
| (merge_call_side_effects): Merge kills. |
| (analyze_call): Add ALWAYS_EXECUTED param and pass it around. |
| (struct summary_ptrs): Add always_executed filed. |
| (analyze_load): Update. |
| (analyze_store): Update; record kills. |
| (analyze_stmt): Add always_executed; record kills in clobbers. |
| (analyze_function): Track always_executed. |
| (modref_summaries::duplicate): Duplicate kills. |
| (update_signature): Release kills. |
| * ipa-modref.h (struct modref_summary): Add kills. |
| * tree-ssa-alias.c (alias_stats): Add kill stats. |
| (dump_alias_stats): Dump kill stats. |
| (store_kills_ref_p): Break out from ... |
| (stmt_kills_ref_p): Use it; handle modref info based kills. |
| |
| 2021-11-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103229 |
| * gimple-range-cache.cc (ssa_global_cache::clear): Do not pass |
| null value to memset. |
| |
| 2021-11-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.c (modref_access_node::get_call_arg): New member |
| function. |
| (modref_access_node::get_ao_ref): Likewise. |
| * ipa-modref-tree.h (modref_access_node::get_call_arg): Declare. |
| (modref_access_node::get_ao_ref): Declare. |
| * tree-ssa-alias.c (modref_may_conflict): Use new accessors. |
| * tree-ssa-dse.c (dse_optimize_call): Use new accessors. |
| |
| 2021-11-13 Jan Hubicka <jh@suse.cz> |
| |
| PR lto/103211 |
| * dbgcnt.def (ipa_attr): New counters. |
| * ipa-pure-const.c: Include dbgcnt.c |
| (ipa_make_function_const): Use debug counter. |
| (ipa_make_function_pure): Likewise. |
| (propagate_pure_const): Fix bug in my previous change. |
| |
| 2021-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.c (modref_access_node::range_info_useful_p): |
| Offline from ipa-modref-tree.h. |
| (modref_access_node::dump): Move from ipa-modref.c; make member |
| function. |
| * ipa-modref-tree.h (modref_access_node::range_info_useful_p. |
| modref_access_node::dump): Declare. |
| * ipa-modref.c (dump_access): Remove. |
| (dump_records): Update. |
| (dump_lto_records): Update. |
| (record_access): Update. |
| (record_access_lto): Update. |
| |
| 2021-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (modref_summary::modref_summary): Clear new flags. |
| (modref_summary::dump): Dump try_dse. |
| (modref_summary::finalize): Add FUN attribute; compute try-dse. |
| (analyze_function): Update. |
| (read_section): Update. |
| (update_signature): Update. |
| (pass_ipa_modref::execute): Update. |
| * ipa-modref.h (struct modref_summary): |
| * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Export. |
| * tree-ssa-alias.h (ao_ref_init_from_ptr_and_range): Declare. |
| * tree-ssa-dse.c (dse_optimize_call): New function. |
| (dse_optimize_stmt): Use it. |
| |
| 2021-11-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.c: Move #if CHECKING_P to proper place. |
| |
| 2021-11-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-modref-tree.h |
| (struct modref_access_node): Move longer member functions to |
| ipa-modref-tree.c |
| (modref_ref_node::try_merge_with): Turn into modreef_acces_node member |
| function. |
| * ipa-modref-tree.c (modref_access_node::contains): Move here |
| from ipa-modref-tree.h. |
| (modref_access_node::update): Likewise. |
| (modref_access_node::merge): Likewise. |
| (modref_access_node::closer_pair_p): Likewise. |
| (modref_access_node::forced_merge): Likewise. |
| (modref_access_node::update2): Likewise. |
| (modref_access_node::combined_offsets): Likewise. |
| (modref_access_node::try_merge_with): Likewise. |
| (modref_access_node::insert): Likewise. |
| |
| 2021-11-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-modref.c (modref_summary::global_memory_read_p): Remove. |
| (modref_summary::global_memory_written_p): Remove. |
| (modref_summary::dump): Dump new flags. |
| (modref_summary::finalize): New member function. |
| (analyze_function): Call it. |
| (read_section): Call it. |
| (update_signature): Call it. |
| (pass_ipa_modref::execute): Call it. |
| * ipa-modref.h (struct modref_summary): Remove |
| global_memory_read_p and global_memory_written_p. |
| Add global_memory_read, global_memory_written. |
| * tree-ssa-structalias.c (determine_global_memory_access): |
| Update. |
| |
| 2021-11-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-fnsummary.c (compute_fn_summary): Use type_attribut_allowed_p |
| * ipa-param-manipulation.c |
| (ipa_param_adjustments::type_attribute_allowed_p): |
| New member function. |
| (drop_type_attribute_if_params_changed_p): New function. |
| (build_adjusted_function_type): Use it. |
| * ipa-param-manipulation.h: Add type_attribute_allowed_p. |
| |
| 2021-11-13 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/invoke.texi (Static Analyzer Options): Add |
| -Wno-analyzer-tainted-allocation-size, |
| -Wno-analyzer-tainted-divisor, -Wno-analyzer-tainted-offset, and |
| -Wno-analyzer-tainted-size to list. Add |
| -Wanalyzer-tainted-allocation-size, -Wanalyzer-tainted-divisor, |
| -Wanalyzer-tainted-offset, and -Wanalyzer-tainted-size to list |
| of options effectively enabled by -fanalyzer. |
| (-Wanalyzer-tainted-allocation-size): New. |
| (-Wanalyzer-tainted-array-index): Tweak wording; add link to CWE. |
| (-Wanalyzer-tainted-divisor): New. |
| (-Wanalyzer-tainted-offset): New. |
| (-Wanalyzer-tainted-size): New. |
| |
| 2021-11-13 Jan Hubicka <jh@suse.cz> |
| |
| * attr-fnspec.h (attr_fnspec::arg_eaf_flags): Break out from ... |
| * gimple.c (gimple_call_arg_flags): ... here. |
| * ipa-modref.c (analyze_parms): Record flags known from fnspec. |
| (modref_merge_call_site_flags): Use arg_eaf_flags. |
| |
| 2021-11-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103222 |
| * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): |
| New. |
| (path_range_query::compute_ranges_in_block): Call |
| compute_ranges_in_phis. |
| * gimple-range-path.h (path_range_query::compute_ranges_in_phis): |
| New. |
| |
| 2021-11-13 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-fnsummary.c (compute_fn_summary): Do not give up on signature |
| changes on "fn spec" attribute; give up on varadic types. |
| * ipa-param-manipulation.c: Include attribs.h. |
| (build_adjusted_function_type): New parameter ARG_MODIFIED; if it is |
| true remove "fn spec" attribute. |
| (ipa_param_adjustments::build_new_function_type): Update. |
| (ipa_param_body_adjustments::modify_formal_parameters): update. |
| * ipa-sra.c: Include attribs.h. |
| (ipa_sra_preliminary_function_checks): Do not check for TYPE_ATTRIBUTES. |
| |
| 2021-11-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::path_range_query): Merge |
| ctors. |
| (path_range_query::import_p): Move from header file. |
| (path_range_query::~path_range_query): Adjust for combined ctors. |
| * gimple-range-path.h: Merge ctors. |
| (path_range_query::import_p): Move to .cc file. |
| |
| 2021-11-13 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/103182 |
| * ipa-modref.c (callee_to_caller_flags): Fix merging of flags. |
| (modref_eaf_analysis::analyze_ssa_name): Fix merging of flags. |
| |
| 2021-11-12 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/or1k-protos.h (or1k_profile_hook): New function. |
| * config/or1k/or1k.h (PROFILE_HOOK): Change macro to reference |
| new function or1k_profile_hook. |
| * config/or1k/or1k.c (struct machine_function): Add new field |
| set_mcount_arg_insn. |
| (or1k_profile_hook): New function. |
| (or1k_init_pic_reg): Update to inject pic rtx after _mcount arg |
| when profiling. |
| (or1k_frame_pointer_required): Frame pointer no longer needed |
| when profiling. |
| |
| 2021-11-12 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/103209 |
| * tree-ssa-structalias.c (find_func_aliases_for_call): Fix |
| use of handle_rhs_call |
| |
| 2021-11-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103202 |
| * gimple-range-path.cc |
| (path_range_query::compute_ranges_in_block): Solve PHI imports first. |
| |
| 2021-11-12 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-pure-const.c (propagate_pure_const): Remove redundant check; |
| fix call of ipa_make_function_const and ipa_make_function_pure. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_vector_op::n_advsimd_ops): Delete. |
| (aarch64_vector_op::m_seen_loads): Likewise. |
| (aarch64_vector_costs::aarch64_vector_costs): Don't push to |
| m_advsimd_ops. |
| (aarch64_vector_op::count_ops): Remove vectype and factor parameters. |
| Remove code that tries to predict different vec_flags from the |
| current loop's. |
| (aarch64_vector_costs::add_stmt_cost): Update accordingly. |
| Remove m_advsimd_ops handling. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_vector_costs::m_saw_sve_only_op) |
| (aarch64_sve_only_stmt_p): Delete. |
| (aarch64_vector_costs::prefer_unrolled_loop): New function, |
| extracted from adjust_body_cost. |
| (aarch64_vector_costs::better_main_loop_than_p): New function, |
| using heuristics extracted from adjust_body_cost and |
| adjust_body_cost_sve. |
| (aarch64_vector_costs::adjust_body_cost_sve): Remove |
| advsimd_cycles_per_iter and could_use_advsimd parameters. |
| Update after changes above. |
| (aarch64_vector_costs::adjust_body_cost): Update after changes above. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_vec_op_count::m_vf_factor): |
| New member variable. |
| (aarch64_vec_op_count::aarch64_vec_op_count): Add a parameter for it. |
| (aarch64_vec_op_count::vf_factor): New function. |
| (aarch64_vector_costs::aarch64_vector_costs): When costing for |
| neoverse-512tvb, pass a vf_factor of 2 for the Neoverse V1 version |
| of an SVE loop. |
| (aarch64_vector_costs::adjust_body_cost): Read the vf factor |
| instead of hard-coding 2. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c |
| (aarch64_vec_op_count::rename_cycles_per_iter): New function. |
| (aarch64_vec_op_count::min_nonpred_cycles_per_iter): Likewise. |
| (aarch64_vec_op_count::min_pred_cycles_per_iter): Likewise. |
| (aarch64_vec_op_count::min_cycles_per_iter): Likewise. |
| (aarch64_vec_op_count::dump): Move earlier in file. Dump the |
| above properties too. |
| (aarch64_estimate_min_cycles_per_iter): Delete. |
| (adjust_body_cost): Use aarch64_vec_op_count::min_cycles_per_iter |
| instead of aarch64_estimate_min_cycles_per_iter. Rely on the dump |
| routine to print CPI estimates. |
| (adjust_body_cost_sve): Likewise. Use the other functions above |
| instead of doing the work inline. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_vec_op_count): Allow default |
| initialization. |
| (aarch64_vec_op_count::base_issue_info): Remove handling of null |
| issue_infos. |
| (aarch64_vec_op_count::simd_issue_info): Likewise. |
| (aarch64_vec_op_count::sve_issue_info): Likewise. |
| (aarch64_vector_costs::m_ops): Turn into a vector. |
| (aarch64_vector_costs::m_advsimd_ops): Likewise. |
| (aarch64_vector_costs::aarch64_vector_costs): Add entries to |
| the vectors based on aarch64_tune_params. |
| (aarch64_vector_costs::analyze_loop_vinfo): Update the pred_ops |
| of all entries in m_ops. |
| (aarch64_vector_costs::add_stmt_cost): Call count_ops for all |
| entries in m_ops. |
| (aarch64_estimate_min_cycles_per_iter): Remove issue_info |
| parameter and get the information from the ops instead. |
| (aarch64_vector_costs::adjust_body_cost_sve): Take a |
| aarch64_vec_issue_info instead of a aarch64_vec_op_count. |
| (aarch64_vector_costs::adjust_body_cost): Update call accordingly. |
| Exit earlier if m_ops is empty for either cost structure. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_vector_costs::m_scalar_ops) |
| (aarch64_vector_costs::m_sve_ops): Replace with... |
| (aarch64_vector_costs::m_ops): ...this. |
| (aarch64_vector_costs::analyze_loop_vinfo): Update accordingly. |
| (aarch64_vector_costs::adjust_body_cost_sve): Likewise. |
| (aarch64_vector_costs::aarch64_vector_costs): Likewise. |
| Initialize m_vec_flags here rather than in add_stmt_cost. |
| (aarch64_vector_costs::count_ops): Test for scalar reductions too. |
| Allow vectype to be null. |
| (aarch64_vector_costs::add_stmt_cost): Call count_ops for scalar |
| code too. Don't require vectype to be nonnull. |
| (aarch64_vector_costs::adjust_body_cost): Take the loop_vec_info |
| and scalar costs as parameters. Use the scalar costs to determine |
| the cycles per iteration of the scalar loop, then multiply it |
| by the estimated VF. |
| (aarch64_vector_costs::finish_cost): Update call accordingly. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_dr_type): New function. |
| (aarch64_vector_costs::count_ops): Use it rather than the |
| vectype to determine floatness. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_sve_in_loop_reduction_latency): |
| Remove vectype parameter and get floatness from the type of the |
| stmt lhs instead. |
| (arch64_in_loop_reduction_latency): Likewise. |
| (aarch64_detect_vector_stmt_subtype): Update caller. |
| (aarch64_vector_costs::count_ops): Likewise. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_sve_op_count): Fold into... |
| (aarch64_vec_op_count): ...this. Add a constructor. |
| (aarch64_vec_op_count::vec_flags): New function. |
| (aarch64_vec_op_count::base_issue_info): Likewise. |
| (aarch64_vec_op_count::simd_issue_info): Likewise. |
| (aarch64_vec_op_count::sve_issue_info): Likewise. |
| (aarch64_vec_op_count::m_issue_info): New member variable. |
| (aarch64_vec_op_count::m_vec_flags): Likewise. |
| (aarch64_vector_costs): Add a constructor. |
| (aarch64_vector_costs::m_sve_ops): Change type to aarch64_vec_op_count. |
| (aarch64_vector_costs::aarch64_vector_costs): New function. |
| Initialize m_scalar_ops, m_advsimd_ops and m_sve_ops. |
| (aarch64_vector_costs::count_ops): Remove vec_flags and |
| issue_info parameters, using the new aarch64_vec_op_count |
| functions instead. |
| (aarch64_vector_costs::add_stmt_cost): Update call accordingly. |
| (aarch64_sve_op_count::dump): Fold into... |
| (aarch64_vec_op_count::dump): ..here. |
| |
| 2021-11-12 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c: Include tree-dfa.h. |
| (aarch64_check_consecutive_mems): New function that takes MEM_EXPR |
| and MEM_OFFSET into account. |
| (aarch64_swap_ldrstr_operands): Use it. |
| (aarch64_operands_ok_for_ldpstp): Likewise. Check that the |
| address of the second memory doesn't depend on the result of |
| the first load. |
| |
| 2021-11-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-pure-const.c (ipa_make_function_pure): Fix exit condition. |
| |
| 2021-11-12 Jan Hubicka <jh@suse.cz> |
| |
| PR tree-optimization/103175 |
| * ipa-modref.c (modref_lattice::merge): Add sanity check. |
| (callee_to_caller_flags): Make flags adjustment sane. |
| (modref_eaf_analysis::analyze_ssa_name): Likewise. |
| |
| 2021-11-12 Jan Hubicka <jh@suse.cz> |
| |
| PR ipa/103200 |
| * ipa-modref.c (analyze_function, modref_propagate_in_scc): Do |
| not mark pure/const function if there are side-effects. |
| |
| 2021-11-12 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * tree.h (OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P): New access macro for |
| 'implicit' bit, using 'base.deprecated_flag' field of tree_node. |
| * tree-pretty-print.c (dump_omp_clause): Add support for printing |
| implicit attribute in tree dumping. |
| * gimplify.c (gimplify_adjust_omp_clauses_1): |
| Set OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P to 1 if map clause is implicitly |
| created. |
| (gimplify_adjust_omp_clauses): Adjust place of adding implicitly created |
| clauses, from simple append, to starting of list, after non-map clauses. |
| * omp-low.c (lower_omp_target): Add GOMP_MAP_IMPLICIT bits into kind |
| values passed to libgomp for implicit maps. |
| |
| 2021-11-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_TEAMS): Remove. |
| (BUILT_IN_GOMP_TEAMS4): New. |
| * builtin-types.def (BT_FN_VOID_UINT_UINT): Remove. |
| (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New. |
| * omp-low.c (lower_omp_teams): Use GOMP_teams4 instead of |
| GOMP_teams, pass to it also num_teams lower-bound expression |
| or a dup of upper-bound if it is missing and a flag whether |
| it is the first call or not. |
| |
| 2021-11-12 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/102497 |
| * gimple-predicate-analysis.cc (add_pred): Remove unused |
| function: |
| |
| 2021-11-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103204 |
| * tree-ssa-sccvn.c (valueize_refs_1): Re-valueize the |
| top operand after folding in an address. |
| |
| 2021-11-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::path_range_query): New |
| ctor without a ranger. |
| (path_range_query::~path_range_query): Free ranger if necessary. |
| (path_range_query::range_on_path_entry): Adjust m_ranger for pointer. |
| (path_range_query::ssa_range_in_phi): Same. |
| (path_range_query::compute_ranges_in_block): Same. |
| (path_range_query::compute_imports): Same. |
| (path_range_query::compute_ranges): Same. |
| (path_range_query::range_of_stmt): Same. |
| (path_range_query::compute_outgoing_relations): Same. |
| * gimple-range-path.h (class path_range_query): New ctor. |
| * tree-ssa-loop-ch.c (ch_base::copy_headers): Remove gimple_ranger |
| as path_range_query allocates one. |
| * tree-ssa-threadbackward.c (class back_threader): Remove m_ranger. |
| (back_threader::~back_threader): Same. |
| |
| 2021-11-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Remove loop |
| crossing restriction. |
| |
| 2021-11-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (analyze_function): Do pure/const discovery, return |
| true on success. |
| (pass_modref::execute): If pure/const is discovered fixup cfg. |
| (ignore_edge): Do not ignore pure/const edges. |
| (modref_propagate_in_scc): Do pure/const discovery, return true if |
| cdtor was promoted pure/const. |
| (pass_ipa_modref::execute): If needed remove unreachable functions. |
| * ipa-pure-const.c (warn_function_noreturn): Fix whitespace. |
| (warn_function_cold): Likewise. |
| (skip_function_for_local_pure_const): Move earlier. |
| (ipa_make_function_const): Break out from ... |
| (ipa_make_function_pure): Break out from ... |
| (propagate_pure_const): ... here. |
| (pass_local_pure_const::execute): Use it. |
| * ipa-utils.h (ipa_make_function_const): Declare. |
| (ipa_make_function_pure): Declare. |
| * passes.def: Move early modref after pure-const. |
| |
| 2021-11-11 David Malcolm <dmalcolm@redhat.com> |
| |
| PR other/103129 |
| * diagnostic-show-locus.c (def_policy): Use def_tabstop. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (TYPES_COMBINE): Delete. |
| (TYPES_COMBINEP): Delete. |
| * config/aarch64/aarch64-simd-builtins.def: Declare type- |
| qualified builtins for vcombine_* intrinsics. |
| * config/aarch64/arm_neon.h (vcombine_s8): Remove unnecessary |
| cast. |
| (vcombine_s16): Likewise. |
| (vcombine_s32): Likewise. |
| (vcombine_f32): Likewise. |
| (vcombine_u8): Use type-qualified builtin and remove casts. |
| (vcombine_u16): Likewise. |
| (vcombine_u32): Likewise. |
| (vcombine_u64): Likewise. |
| (vcombine_p8): Likewise. |
| (vcombine_p16): Likewise. |
| (vcombine_p64): Likewise. |
| (vcombine_bf16): Remove unnecessary cast. |
| * config/aarch64/iterators.md (VD_I): New mode iterator. |
| (VDC_P): New mode iterator. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (TYPES_LOAD1_U): Define. |
| (TYPES_LOAD1_P): Define. |
| (TYPES_STORE1_U): Define. |
| (TYPES_STORE1P): Rename to... |
| (TYPES_STORE1_P): This. |
| (get_mem_type_for_load_store): Add unsigned and poly types. |
| (aarch64_general_gimple_fold_builtin): Add unsigned and poly |
| type-qualified builtin declarations. |
| * config/aarch64/aarch64-simd-builtins.def: Declare type- |
| qualified builtins for LD1/ST1. |
| * config/aarch64/arm_neon.h (vld1_p8): Use type-qualified |
| builtin and remove cast. |
| (vld1_p16): Likewise. |
| (vld1_u8): Likewise. |
| (vld1_u16): Likewise. |
| (vld1_u32): Likewise. |
| (vld1q_p8): Likewise. |
| (vld1q_p16): Likewise. |
| (vld1q_p64): Likewise. |
| (vld1q_u8): Likewise. |
| (vld1q_u16): Likewise. |
| (vld1q_u32): Likewise. |
| (vld1q_u64): Likewise. |
| (vst1_p8): Likewise. |
| (vst1_p16): Likewise. |
| (vst1_u8): Likewise. |
| (vst1_u16): Likewise. |
| (vst1_u32): Likewise. |
| (vst1q_p8): Likewise. |
| (vst1q_p16): Likewise. |
| (vst1q_p64): Likewise. |
| (vst1q_u8): Likewise. |
| (vst1q_u16): Likewise. |
| (vst1q_u32): Likewise. |
| (vst1q_u64): Likewise. |
| * config/aarch64/iterators.md (VALLP_NO_DI): New iterator. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Declare unsigned |
| builtins for vector reduction. |
| * config/aarch64/arm_neon.h (vaddv_u8): Use type-qualified |
| builtin and remove casts. |
| (vaddv_u16): Likewise. |
| (vaddv_u32): Likewise. |
| (vaddvq_u8): Likewise. |
| (vaddvq_u16): Likewise. |
| (vaddvq_u32): Likewise. |
| (vaddvq_u64): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: |
| * config/aarch64/arm_neon.h (vpaddq_u8): Use type-qualified |
| builtin and remove casts. |
| (vpaddq_u16): Likewise. |
| (vpaddq_u32): Likewise. |
| (vpaddq_u64): Likewise. |
| (vpadd_u8): Likewise. |
| (vpadd_u16): Likewise. |
| (vpadd_u32): Likewise. |
| (vpaddd_u64): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Declare unsigned |
| builtins for [r]subhn[2]. |
| * config/aarch64/arm_neon.h (vsubhn_s16): Remove unnecessary |
| cast. |
| (vsubhn_s32): Likewise. |
| (vsubhn_s64): Likewise. |
| (vsubhn_u16): Use type-qualified builtin and remove casts. |
| (vsubhn_u32): Likewise. |
| (vsubhn_u64): Likewise. |
| (vrsubhn_s16): Remove unnecessary cast. |
| (vrsubhn_s32): Likewise. |
| (vrsubhn_s64): Likewise. |
| (vrsubhn_u16): Use type-qualified builtin and remove casts. |
| (vrsubhn_u32): Likewise. |
| (vrsubhn_u64): Likewise. |
| (vrsubhn_high_s16): Remove unnecessary cast. |
| (vrsubhn_high_s32): Likewise. |
| (vrsubhn_high_s64): Likewise. |
| (vrsubhn_high_u16): Use type-qualified builtin and remove |
| casts. |
| (vrsubhn_high_u32): Likewise. |
| (vrsubhn_high_u64): Likewise. |
| (vsubhn_high_s16): Remove unnecessary cast. |
| (vsubhn_high_s32): Likewise. |
| (vsubhn_high_s64): Likewise. |
| (vsubhn_high_u16): Use type-qualified builtin and remove |
| casts. |
| (vsubhn_high_u32): Likewise. |
| (vsubhn_high_u64): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Declare unsigned |
| builtins for [r]addhn[2]. |
| * config/aarch64/arm_neon.h (vaddhn_s16): Remove unnecessary |
| cast. |
| (vaddhn_s32): Likewise. |
| (vaddhn_s64): Likewise. |
| (vaddhn_u16): Use type-qualified builtin and remove casts. |
| (vaddhn_u32): Likewise. |
| (vaddhn_u64): Likewise. |
| (vraddhn_s16): Remove unnecessary cast. |
| (vraddhn_s32): Likewise. |
| (vraddhn_s64): Likewise. |
| (vraddhn_u16): Use type-qualified builtin and remove casts. |
| (vraddhn_u32): Likewise. |
| (vraddhn_u64): Likewise. |
| (vaddhn_high_s16): Remove unnecessary cast. |
| (vaddhn_high_s32): Likewise. |
| (vaddhn_high_s64): Likewise. |
| (vaddhn_high_u16): Use type-qualified builtin and remove |
| casts. |
| (vaddhn_high_u32): Likewise. |
| (vaddhn_high_u64): Likewise. |
| (vraddhn_high_s16): Remove unnecessary cast. |
| (vraddhn_high_s32): Likewise. |
| (vraddhn_high_s64): Likewise. |
| (vraddhn_high_u16): Use type-qualified builtin and remove |
| casts. |
| (vraddhn_high_u32): Likewise. |
| (vraddhn_high_u64): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type |
| qualifiers in generator macros for uhsub builtins. |
| * config/aarch64/arm_neon.h (vhsub_s8): Remove unnecessary |
| cast. |
| (vhsub_s16): Likewise. |
| (vhsub_s32): Likewise. |
| (vhsub_u8): Use type-qualified builtin and remove casts. |
| (vhsub_u16): Likewise. |
| (vhsub_u32): Likewise. |
| (vhsubq_s8): Remove unnecessary cast. |
| (vhsubq_s16): Likewise. |
| (vhsubq_s32): Likewise. |
| (vhsubq_u8): Use type-qualified builtin and remove casts. |
| (vhsubq_u16): Likewise. |
| (vhsubq_u32): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type |
| qualifiers in generator macros for u[r]hadd builtins. |
| * config/aarch64/arm_neon.h (vhadd_s8): Remove unnecessary |
| cast. |
| (vhadd_s16): Likewise. |
| (vhadd_s32): Likewise. |
| (vhadd_u8): Use type-qualified builtin and remove casts. |
| (vhadd_u16): Likewise. |
| (vhadd_u32): Likewise. |
| (vhaddq_s8): Remove unnecessary cast. |
| (vhaddq_s16): Likewise. |
| (vhaddq_s32): Likewise. |
| (vhaddq_u8): Use type-qualified builtin and remove casts. |
| (vhaddq_u16): Likewise. |
| (vhaddq_u32): Likewise. |
| (vrhadd_s8): Remove unnecessary cast. |
| (vrhadd_s16): Likewise. |
| (vrhadd_s32): Likewise. |
| (vrhadd_u8): Use type-qualified builtin and remove casts. |
| (vrhadd_u16): Likewise. |
| (vrhadd_u32): Likewise. |
| (vrhaddq_s8): Remove unnecessary cast. |
| (vrhaddq_s16): Likewise. |
| (vrhaddq_s32): Likewise. |
| (vrhaddq_u8): Use type-wualified builtin and remove casts. |
| (vrhaddq_u16): Likewise. |
| (vrhaddq_u32): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type |
| qualifiers in generator macros for usub[lw][2] builtins. |
| * config/aarch64/arm_neon.h (vsubl_s8): Remove unnecessary |
| cast. |
| (vsubl_s16): Likewise. |
| (vsubl_s32): Likewise. |
| (vsubl_u8): Use type-qualified builtin and remove casts. |
| (vsubl_u16): Likewise. |
| (vsubl_u32): Likewise. |
| (vsubl_high_s8): Remove unnecessary cast. |
| (vsubl_high_s16): Likewise. |
| (vsubl_high_s32): Likewise. |
| (vsubl_high_u8): Use type-qualified builtin and remove casts. |
| (vsubl_high_u16): Likewise. |
| (vsubl_high_u32): Likewise. |
| (vsubw_s8): Remove unnecessary casts. |
| (vsubw_s16): Likewise. |
| (vsubw_s32): Likewise. |
| (vsubw_u8): Use type-qualified builtin and remove casts. |
| (vsubw_u16): Likewise. |
| (vsubw_u32): Likewise. |
| (vsubw_high_s8): Remove unnecessary cast. |
| (vsubw_high_s16): Likewise. |
| (vsubw_high_s32): Likewise. |
| (vsubw_high_u8): Use type-qualified builtin and remove casts. |
| (vsubw_high_u16): Likewise. |
| (vsubw_high_u32): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type |
| qualifiers in generator macros for uadd[lw][2] builtins. |
| * config/aarch64/arm_neon.h (vaddl_s8): Remove unnecessary |
| cast. |
| (vaddl_s16): Likewise. |
| (vaddl_s32): Likewise. |
| (vaddl_u8): Use type-qualified builtin and remove casts. |
| (vaddl_u16): Likewise. |
| (vaddl_u32): Likewise. |
| (vaddl_high_s8): Remove unnecessary cast. |
| (vaddl_high_s16): Likewise. |
| (vaddl_high_s32): Likewise. |
| (vaddl_high_u8): Use type-qualified builtin and remove casts. |
| (vaddl_high_u16): Likewise. |
| (vaddl_high_u32): Likewise. |
| (vaddw_s8): Remove unnecessary cast. |
| (vaddw_s16): Likewise. |
| (vaddw_s32): Likewise. |
| (vaddw_u8): Use type-qualified builtin and remove casts. |
| (vaddw_u16): Likewise. |
| (vaddw_u32): Likewise. |
| (vaddw_high_s8): Remove unnecessary cast. |
| (vaddw_high_s16): Likewise. |
| (vaddw_high_s32): Likewise. |
| (vaddw_high_u8): Use type-qualified builtin and remove casts. |
| (vaddw_high_u16): Likewise. |
| (vaddw_high_u32): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Declare type- |
| qualified builtins for [R]SHRN[2]. |
| * config/aarch64/arm_neon.h (vshrn_n_u16): Use type-qualified |
| builtin and remove casts. |
| (vshrn_n_u32): Likewise. |
| (vshrn_n_u64): Likewise. |
| (vrshrn_high_n_u16): Likewise. |
| (vrshrn_high_n_u32): Likewise. |
| (vrshrn_high_n_u64): Likewise. |
| (vrshrn_n_u16): Likewise. |
| (vrshrn_n_u32): Likewise. |
| (vrshrn_n_u64): Likewise. |
| (vshrn_high_n_u16): Likewise. |
| (vshrn_high_n_u32): Likewise. |
| (vshrn_high_n_u64): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Declare unsigned |
| type-qualified builtins for XTN[2]. |
| * config/aarch64/arm_neon.h (vmovn_high_u16): Use type- |
| qualified builtin and remove casts. |
| (vmovn_high_u32): Likewise. |
| (vmovn_high_u64): Likewise. |
| (vmovn_u16): Likewise. |
| (vmovn_u32): Likewise. |
| (vmovn_u64): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Use poly type |
| qualifier in builtin generator macros. |
| * config/aarch64/arm_neon.h (vmul_p8): Use type-qualified |
| builtin and remove casts. |
| (vmulq_p8): Likewise. |
| (vmull_high_p8): Likewise. |
| (vmull_p8): Likewise. |
| |
| 2021-11-11 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Declare type- |
| qualified builtin generators for unsigned MLA/MLS intrinsics. |
| * config/aarch64/arm_neon.h (vmla_n_u16): Use type-qualified |
| builtin. |
| (vmla_n_u32): Likewise. |
| (vmla_u8): Likewise. |
| (vmla_u16): Likewise. |
| (vmla_u32): Likewise. |
| (vmlaq_n_u16): Likewise. |
| (vmlaq_n_u32): Likewise. |
| (vmlaq_u8): Likewise. |
| (vmlaq_u16): Likewise. |
| (vmlaq_u32): Likewise. |
| (vmls_n_u16): Likewise. |
| (vmls_n_u32): Likewise. |
| (vmls_u8): Likewise. |
| (vmls_u16): Likewise. |
| (vmls_u32): Likewise. |
| (vmlsq_n_u16): Likewise. |
| (vmlsq_n_u32): Likewise. |
| (vmlsq_u8): Likewise. |
| (vmlsq_u16): Likewise. |
| (vmlsq_u32): Likewise. |
| |
| 2021-11-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (modref_summary::useful_p): Check also for side-effects |
| with looping const/pure. |
| (modref_summary_lto::useful_p): Likewise. |
| (merge_call_side_effects): Merge side effects before early exit |
| for pure/const. |
| (process_fnspec): Also handle pure functions. |
| (analyze_call): Do not early exit on looping pure const. |
| (propagate_unknown_call): Also handle nontrivial SCC as side-effect. |
| (modref_propagate_in_scc): Update. |
| |
| 2021-11-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103190 |
| * tree-ssa-reassoc.c (insert_stmt_after): Only assert on asm goto. |
| |
| 2021-11-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::add_copies_to_imports): |
| Rename to... |
| (path_range_query::compute_imports): ...this. Adapt it so it can |
| be passed the imports bitmap instead of working on m_imports. |
| (path_range_query::compute_ranges): Call compute_imports in all |
| cases unless an imports bitmap is passed. |
| * gimple-range-path.h (path_range_query::compute_imports): New. |
| (path_range_query::add_copies_to_imports): Remove. |
| * tree-ssa-threadbackward.c (back_threader::resolve_def): Remove. |
| (back_threader::find_paths_to_names): Inline resolve_def. |
| (back_threader::find_paths): Call compute_imports. |
| (back_threader::resolve_phi): Adjust comment. |
| |
| 2021-11-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103188 |
| * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): |
| Remove query parameter, split out check for size |
| optimization. |
| (ch_base::m_ranger, cb_base::m_query): Remove. |
| (ch_base::copy_headers): Split processing loop into |
| analysis around which we allocate and use ranger and |
| transform where we do not. |
| (pass_ch::execute): Do not allocate/free ranger here. |
| (pass_ch_vect::execute): Likewise. |
| |
| 2021-11-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-pure-const.c (propagate_pure_const): Self recursion is |
| a side effects. |
| |
| 2021-11-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.c (set_noreturn_flag_1): New function. |
| (cgraph_node::set_noreturn_flag): New member function |
| * cgraph.h (cgraph_node::set_noreturn_flags): Declare. |
| * ipa-pure-const.c (pass_local_pure_const::execute): Use it. |
| |
| 2021-11-11 Aldy Hernandez <aldyh@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-ch.c (entry_loop_condition_is_static): Resolve |
| statically to the edge remaining in the loop. |
| |
| 2021-11-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/103181 |
| * tree-eh.c (operation_could_trap_helper_p): Properly |
| check vector constants for a zero element for integer |
| division. Separate floating point and integer division code. |
| |
| 2021-11-11 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/101378 |
| * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS |
| handling only for DECL_BIT_FIELD_TYPE decls. |
| |
| 2021-11-11 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/102376 |
| * config/aarch64/aarch64.c (aarch64_process_target_attr): Check if |
| token is arch extension without leading '+' and emit appropriate |
| diagnostic for the same. |
| |
| 2021-11-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_NUM_TEAMS_EXPR): Rename to ... |
| (OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR): ... this. |
| (OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR): Define. |
| * tree.c (omp_clause_num_ops): Increase num ops for |
| OMP_CLAUSE_NUM_TEAMS to 2. |
| * tree-pretty-print.c (dump_omp_clause): Print optional lower bound |
| for OMP_CLAUSE_NUM_TEAMS. |
| * gimplify.c (gimplify_scan_omp_clauses): Gimplify |
| OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR if non-NULL. |
| (optimize_target_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead |
| of OMP_CLAUSE_NUM_TEAMS_EXPR. Handle OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR. |
| * omp-low.c (lower_omp_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR |
| instead of OMP_CLAUSE_NUM_TEAMS_EXPR. |
| * omp-expand.c (expand_teams_call, get_target_arguments): Likewise. |
| |
| 2021-11-11 Richard Biener <rguenther@suse.de> |
| |
| * cfganal.c (find_pdom): Remove. |
| (control_dependences::find_control_dependence): Remove |
| special-casing of entry block, call get_immediate_dominator |
| directly. |
| * gimple-predicate-analysis.cc (find_pdom): Remove. |
| (find_dom): Likewise. |
| (find_control_equiv_block): Call get_immediate_dominator |
| directly. |
| (compute_control_dep_chain): Likewise. |
| (predicate::init_from_phi_def): Likewise. |
| |
| 2021-11-11 Richard Biener <rguenther@suse.de> |
| |
| * cfganal.h (control_dependences::control_dependence_map): |
| Embed bitmap_head. |
| (control_dependences::m_bitmaps): New. |
| * cfganal.c (control_dependences::set_control_dependence_map_bit): |
| Adjust. |
| (control_dependences::clear_control_dependence_bitmap): |
| Likewise. |
| (control_dependences::find_control_dependence): Do not |
| find_edge for the abnormal edge test. |
| (control_dependences::control_dependences): Instead do not |
| add abnormal edges to the edge list. Adjust. |
| (control_dependences::~control_dependences): Likewise. |
| (control_dependences::get_edges_dependent_on): Likewise. |
| * function-tests.c: Include bitmap.h. |
| |
| 2021-11-11 Kewen Lin <linkw@linux.ibm.com> |
| |
| * doc/invoke.texi: Change references to "future cpu" to "power10", |
| "-mcpu=future" to "-mcpu=power10". Adjust words for float128. |
| |
| 2021-11-11 Cui,Lili <lili.cui@intel.com> |
| |
| * config/i386/i386-options.c (m_CORE_AVX2): Remove Alderlake |
| from m_CORE_AVX2. |
| (processor_cost_table): Use alderlake_cost for Alderlake. |
| * config/i386/i386.c (ix86_sched_init_global): Handle Alderlake. |
| * config/i386/x86-tune-costs.h (struct processor_costs): Add alderlake |
| cost. |
| * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Alderlake |
| issue rate to 4. |
| (ix86_adjust_cost): Handle Alderlake. |
| * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Enable for Alderlake. |
| (X86_TUNE_PARTIAL_REG_DEPENDENCY): Likewise. |
| (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Likewise. |
| (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Likewise. |
| (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. |
| (X86_TUNE_MEMORY_MISMATCH_STALL): Likewise. |
| (X86_TUNE_USE_LEAVE): Likewise. |
| (X86_TUNE_PUSH_MEMORY): Likewise. |
| (X86_TUNE_USE_INCDEC): Likewise. |
| (X86_TUNE_INTEGER_DFMODE_MOVES): Likewise. |
| (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. |
| (X86_TUNE_USE_SAHF): Likewise. |
| (X86_TUNE_USE_BT): Likewise. |
| (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. |
| (X86_TUNE_ONE_IF_CONV_INSN): Likewise. |
| (X86_TUNE_AVOID_MFENCE): Likewise. |
| (X86_TUNE_USE_SIMODE_FIOP): Likewise. |
| (X86_TUNE_EXT_80387_CONSTANTS): Likewise. |
| (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Likewise. |
| (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise. |
| (X86_TUNE_SSE_TYPELESS_STORES): Likewise. |
| (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. |
| (X86_TUNE_AVOID_4BYTE_PREFIXES): Likewise. |
| (X86_TUNE_USE_GATHER): Disable for Alderlake. |
| (X86_TUNE_AVX256_MOVE_BY_PIECES): Likewise. |
| (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. |
| |
| 2021-11-11 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/103151 |
| * config/i386/sse.md (V_128_256): Extend to V8HF/V16HF. |
| (avxsizesuffix): Ditto. |
| |
| 2021-11-11 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.c (riscv_subset_list::to_string): Fix |
| wrong marco checking. |
| |
| 2021-11-10 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102906 |
| * tree-ssa-loop-ch.c (entry_loop_condition_is_static): New. |
| (should_duplicate_loop_header_p): Call entry_loop_condition_is_static. |
| (class ch_base): Add m_ranger and m_query. |
| (ch_base::copy_headers): Pass m_query to |
| entry_loop_condition_is_static. |
| (pass_ch::execute): Allocate and deallocate m_ranger and |
| m_query. |
| (pass_ch_vect::execute): Same. |
| |
| 2021-11-10 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/103170 |
| * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>): |
| Use vwcore iterator for the r constraint output string. |
| |
| 2021-11-10 qing zhao <qing.zhao@oracle.com> |
| |
| * internal-fn.c (expand_DEFERRED_INIT): Apply pattern initialization |
| only when have_insn_for return true for the mode. Fix a memory leak. |
| |
| 2021-11-10 Christophe Lyon <christophe.lyon@foss.st.com> |
| |
| * config/arm/arm.c (cortexa9_extra_costs, cortexa8_extra_costs, |
| cortexa5_extra_costs, cortexa7_extra_costs, |
| cortexa12_extra_costs, cortexa15_extra_costs, v7m_extra_costs): |
| Initialize movi, dup and extract costing fields. |
| |
| 2021-11-10 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::path_range_query): Do |
| not init m_path. |
| (path_range_query::dump): Change m_path uses to non-pointer. |
| (path_range_query::defined_outside_path): Same. |
| (path_range_query::set_path): Same. |
| (path_range_query::add_copies_to_imports): Same. |
| (path_range_query::range_of_stmt): Same. |
| (path_range_query::compute_outgoing_relations): Same. |
| (path_range_query::compute_ranges): Imports are now optional. |
| Implement overload that takes an edge. |
| * gimple-range-path.h (class path_range_query): Make imports |
| optional for compute_ranges. Add compute_ranges(edge) overload. |
| Make m_path an auto_vec instead of a pointer and adjust |
| accordingly. |
| |
| 2021-11-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vectorizer.h (struct scalar_cond_masked_key): Add inverted_p. |
| (default_hash_traits<scalar_conf_masked_key>): Likewise. |
| * tree-vect-stmts.c (vectorizable_condition): Check if inverse of mask |
| is live. |
| * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree): |
| Register mask inverses. |
| |
| 2021-11-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vectorizer.c (vectorize_loops): Do local CSE through RPVN upon |
| successful vectorization. |
| |
| 2021-11-10 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (sbr_vector::grow): New. |
| (sbr_vector::set_bb_range): Call grow. |
| (sbr_vector::get_bb_range): Same. |
| (sbr_vector::bb_range_p): Remove assert. |
| |
| 2021-11-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_topbits_shuffle<mode>_le |
| ,*aarch64_topbits_shuffle<mode>_be): Remove. |
| |
| 2021-11-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-modref.c: Include tree-eh.h |
| (modref_summary::modref_summary): Initialize side_effects. |
| (struct modref_summary_lto): New bool field side_effects. |
| (modref_summary_lto::modref_summary_lto): Initialize side_effects. |
| (modref_summary::dump): Dump side_effects. |
| (modref_summary_lto::dump): Dump side_effects. |
| (merge_call_side_effects): Merge side effects. |
| (process_fnspec): Calls to non-const/pure or looping |
| function is a side effect. |
| (analyze_call): Self-recursion is a side-effect; handle |
| special builtins. |
| (analyze_load): Watch for volatile and throwing memory. |
| (analyze_store): Likewise. |
| (analyze_stmt): Watch for volatitle asm. |
| (analyze_function): Handle side_effects. |
| (modref_summaries::duplicate): Duplicate side_effects. |
| (modref_summaries_lto::duplicate): Likewise. |
| (modref_write): Stream side_effects. |
| (read_section): Likewise. |
| (update_signature): Update. |
| (propagate_unknown_call): Handle side_effects. |
| (modref_propagate_in_scc): Likewise. |
| * ipa-modref.h (struct modref_summary): Add side_effects. |
| * ipa-pure-const.c (special_builtin_state): Rename to ... |
| (builtin_safe_for_const_function_p): ... this one. |
| (check_call): Update. |
| (finite_function_p): Break out from ... |
| (propagate_pure_const): ... here |
| * ipa-utils.h (finite_function): Declare. |
| |
| 2021-11-10 Lucas A. M. Magalhães <lamm@linux.ibm.com> |
| |
| * config.gcc (powerpc*-*-*): Remove -rpath from |
| --with-advance-toolchain. |
| |
| 2021-11-10 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/101940 |
| * attribs.c (struct scoped_attributes): Add a bool member. |
| (lookup_scoped_attribute_spec): Forward declare. |
| (register_scoped_attributes): New bool parameter, defaulted to |
| false. Use it. |
| (handle_ignored_attributes_option): New function. |
| (free_attr_data): New function. |
| (init_attributes): Call handle_ignored_attributes_option. |
| (attr_namespace_ignored_p): New function. |
| (decl_attributes): Check attr_namespace_ignored_p before |
| warning. |
| * attribs.h (free_attr_data): Declare. |
| (register_scoped_attributes): Adjust declaration. |
| (handle_ignored_attributes_option): Declare. |
| (canonicalize_attr_name): New function template. |
| (canonicalize_attr_name): Use it. |
| * common.opt (Wattributes=): New option with a variable. |
| * doc/extend.texi: Document #pragma GCC diagnostic ignored_attributes. |
| * doc/invoke.texi: Document -Wno-attributes=. |
| * opts.c (common_handle_option) <case OPT_Wattributes_>: Handle. |
| * plugin.h (register_scoped_attributes): Adjust declaration. |
| * toplev.c (compile_file): Call free_attr_data. |
| |
| 2021-11-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/arm/arm-cpus.in (cortex-a710): New CPU. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_general_gimple_fold_builtin): Mark argument as unused. |
| |
| 2021-11-10 Martin Liska <mliska@suse.cz> |
| |
| * lto-wrapper.c (merge_and_complain): Make the first argument |
| a reference type. |
| |
| 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/iterators.md (optab): Use fmax_nan instead of |
| smax_nan and fmin_nan instead of smin_nan. |
| (maxmin_uns): Rename to... |
| (fmaxmin): ...this and make the same changes. Remove entries |
| unrelated to fmax* and fmin*. |
| * config/aarch64/aarch64.md (<maxmin_uns><mode>3): Rename to... |
| (<fmaxmin><mode>3): ...this. |
| * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): |
| Rename to... |
| (aarch64_<optab>p<mode>): ...this. |
| (<maxmin_uns><mode>3): Rename to... |
| (<fmaxmin><mode>3): ...this. |
| (reduc_<maxmin_uns>_scal_<mode>): Rename to... |
| (reduc_<optab>_scal_<mode>): ...this and update gen* call. |
| (aarch64_reduc_<maxmin_uns>_internal<mode>): Rename to... |
| (aarch64_reduc_<optab>_internal<mode>): ...this. |
| (aarch64_reduc_<maxmin_uns>_internalv2si): Rename to... |
| (aarch64_reduc_<optab>_internalv2si): ...this. |
| * config/aarch64/aarch64-sve.md (<maxmin_uns><mode>3): Rename to... |
| (<fmaxmin><mode>3): ...this. |
| * config/aarch64/aarch64-simd-builtins.def (smax_nan, smin_nan) |
| Rename to... |
| (fmax_nan, fmin_nan): ...this. |
| * config/aarch64/arm_neon.h (vmax_f32, vmax_f64, vmaxq_f32, vmaxq_f64) |
| (vmin_f32, vmin_f64, vminq_f32, vminq_f64, vmax_f16, vmaxq_f16) |
| (vmin_f16, vminq_f16): Update accordingly. |
| |
| 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (vector_costs::finish_cost): Take the |
| corresponding scalar costs as a parameter. |
| (finish_cost): Likewise. |
| * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) |
| (vect_estimate_min_profitable_iters): Update accordingly. |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Likewise. |
| * tree-vectorizer.c (vector_costs::finish_cost): Likewise. |
| * config/aarch64/aarch64.c (aarch64_vector_costs::finish_cost): |
| Likewise. |
| * config/rs6000/rs6000.c (rs6000_cost_data::finish_cost): Likewise. |
| |
| 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (_loop_vec_info::scalar_costs): New member |
| variable. |
| (_loop_vec_info::single_scalar_iteration_cost): Delete. |
| (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Delete. |
| (vector_costs::total_cost): New function. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update |
| after above changes. |
| (_loop_vec_info::~_loop_vec_info): Delete scalar_costs. |
| (vect_compute_single_scalar_iteration_cost): Store the costs |
| in loop_vinfo->scalar_costs. |
| (vect_estimate_min_profitable_iters): Get the scalar cost from |
| loop_vinfo->scalar_costs. |
| |
| 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (vector_costs::better_main_loop_than_p) |
| (vector_costs::better_epilogue_loop_than_p) |
| (vector_costs::compare_inside_loop_cost) |
| (vector_costs::compare_outside_loop_cost): Likewise. |
| * tree-vectorizer.c (vector_costs::better_main_loop_than_p) |
| (vector_costs::better_epilogue_loop_than_p) |
| (vector_costs::compare_inside_loop_cost) |
| (vector_costs::compare_outside_loop_cost): New functions, |
| containing code moved from... |
| * tree-vect-loop.c (vect_better_loop_vinfo_p): ...here. |
| |
| 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (_loop_vec_info): Remove vec_outside_cost |
| and vec_inside_cost. |
| (vector_costs::outside_cost): New function. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update |
| after above. |
| (vect_estimate_min_profitable_iters): Likewise. |
| (vect_better_loop_vinfo_p): Get the inside and outside costs |
| from the loop_vec_infos' vector_costs. |
| |
| 2021-11-10 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (vec_info::target_cost_data): Replace with... |
| (_loop_vec_info::vector_costs): ...this. |
| (LOOP_VINFO_TARGET_COST_DATA): Delete. |
| * tree-vectorizer.c (vec_info::vec_info): Remove target_cost_data |
| initialization. |
| (vec_info::~vec_info): Remove corresponding delete. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize |
| vector_costs to null. |
| (_loop_vec_info::~_loop_vec_info): Delete vector_costs. |
| (vect_analyze_loop_operations): Update after above changes. |
| (vect_analyze_loop_2): Likewise. |
| (vect_estimate_min_profitable_iters): Likewise. |
| * tree-vect-slp.c (vect_slp_analyze_operations): Likewise. |
| |
| 2021-11-10 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-core.h (EAF_DIRECT): Remove. |
| (EAF_NOCLOBBER): Remove. |
| (EAF_UNUSED): Remove. |
| (EAF_NOESCAPE): Remove. |
| (EAF_NO_DIRECT_CLOBBER): New. |
| (EAF_NO_INDIRECT_CLOBBER): New. |
| (EAF_NODIRECTESCAPE): Remove. |
| (EAF_NO_DIRECT_ESCAPE): New. |
| (EAF_NO_INDIRECT_ESCAPE): New. |
| (EAF_NOT_RETURNED): Remove. |
| (EAF_NOT_RETURNED_INDIRECTLY): New. |
| (EAF_NOREAD): Remove. |
| (EAF_NO_DIRECT_READ): New. |
| (EAF_NO_INDIRECT_READ): New. |
| * gimple.c (gimple_call_arg_flags): Update for new flags. |
| (gimple_call_retslot_flags): Update for new flags. |
| * ipa-modref.c (dump_eaf_flags): Likewise. |
| (remove_useless_eaf_flags): Likewise. |
| (deref_flags): Likewise. |
| (modref_lattice::init): Likewise. |
| (modref_lattice::merge): Likewise. |
| (modref_lattice::merge_direct_load): Likewise. |
| (modref_lattice::merge_direct_store): Likewise. |
| (modref_eaf_analysis::merge_call_lhs_flags): Likewise. |
| (callee_to_caller_flags): Likewise. |
| (modref_eaf_analysis::analyze_ssa_name): Likewise. |
| (modref_eaf_analysis::propagate): Likewise. |
| (modref_merge_call_site_flags): Likewise. |
| * ipa-modref.h (interposable_eaf_flags): Likewise. |
| * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1) Likewise. |
| * tree-ssa-structalias.c (handle_call_arg): Likewise. |
| (handle_rhs_call): Likewise. |
| * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Likewise. |
| |
| 2021-11-10 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-slp-patterns.c (complex_mul_pattern::matches): Remove l1node. |
| |
| 2021-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_general_gimple_fold_builtin): Change pointer alignment and |
| alias. |
| |
| 2021-11-10 Jan Hubicka <jh@suse.cz> |
| |
| * ipa-modref-tree.h (modref_tree::remap_params): Fix off-by-one error. |
| |
| 2021-11-10 H.J. Lu <hongjiu.lu@intel.com> |
| Hongtao Liu <hongtao.liu@intel.com> |
| |
| PR middle-end/102566 |
| * match.pd (nop_atomic_bit_test_and_p): New match. |
| * tree-ssa-ccp.c (convert_atomic_bit_not): New function. |
| (gimple_nop_atomic_bit_test_and_p): New prototype. |
| (optimize_atomic_bit_test_and): Transform equivalent, but slighly |
| different cases to their canonical forms. |
| |
| 2021-11-10 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/103126 |
| * tree-vect-loop.c (neutral_op_for_reduction): Remove static. |
| * tree-vectorizer.h (neutral_op_for_reduction): Declare. |
| * tree-if-conv.c : Include tree-vectorizer.h. |
| (is_cond_scalar_reduction): Handle |
| BIT_XOR_EXPR/BIT_IOR_EXPR/BIT_AND_EXPR. |
| (convert_scalar_cond_reduction): Ditto. |
| |
| 2021-11-10 konglin1 <lingling.kong@intel.com> |
| |
| * config/i386/sse.md (cmul<conj_op><mode>3): add new define_expand. |
| (cmla<conj_op><mode>4): Likewise |
| |
| 2021-11-10 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c: Do not include |
| gimple-ssa-evrp-analyze.h. |
| * value-pointer-equiv.cc: Same. |
| |
| 2021-11-10 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader::maybe_register_path_dump): Abstract path dumping... |
| (dump_path): ...here. |
| (back_threader::resolve_phi): Call dump_path. |
| (debug): Same. |
| |
| 2021-11-10 konglin1 <lingling.kong@intel.com> |
| |
| * config/i386/sse.md (fma_<complexpairopname>_<mode>_pair): |
| Add new define_insn. |
| (fma_<mode>_fmaddc_bcst): Add new define_insn_and_split. |
| (fma_<mode>_fcmaddc_bcst): Likewise |
| |
| 2021-11-10 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102464 |
| * match.pd: Simplify (trunc)fmax/fmin((extend)a, (extend)b) to |
| MAX/MIN(a,b) |
| |
| 2021-11-10 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/101529 |
| * config/aarch64/aarch64.c (aarch64_evpc_ins): Don't use target |
| as an input, use original one. |
| |
| 2021-11-10 Sandra Loosemore <sandra@codesourcery.com> |
| |
| * config/nios2/nios2.c (nios2_can_inline_p): New. |
| (TARGET_CAN_INLINE_P): Define. |
| |
| 2021-11-09 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): |
| Disable gimple fold for RS6000_BIF_{XVMINDP,XVMINSP,VMINFP} and |
| RS6000_BIF_{XVMAXDP,XVMAXSP,VMAXFP} when fast-math is not set. |
| (lxvrse_expand_builtin): Modify the expansion for sign extension. |
| All extensions are done within VSX registers. |
| |
| 2021-11-09 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/10352 |
| * match.pd: Remove check of TYPE_PRECISION for |
| the a?0:pow2 case. |
| |
| 2021-11-09 Andrew MacLeod <amacleod@redhat.com> |
| |
| * function.c (allocate_struct_function): Don't set x_range_query. |
| * function.h (get_range_query): Move to value-query.h. |
| * gimple-range.cc (enable_ranger): Check that query is currently NULL. |
| (disable_ranger): Clear function current query field. |
| * value-query.cc (get_global_range_query): Relocate to: |
| * value-query.h (get_global_range_query): Here and inline. |
| (get_range_query): Relocate here from function.h. |
| |
| 2021-11-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader::maybe_register_path_dump): New. |
| (back_threader::maybe_register_path): Call maybe_register_path_dump. |
| |
| 2021-11-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::maybe_register_path): |
| Return NULL when unprofitable. |
| |
| 2021-11-09 Martin Jambor <mjambor@suse.cz> |
| |
| * tree.h (build_debug_expr_decl): Declare. |
| * tree.c (build_debug_expr_decl): New function. |
| * cfgexpand.c (avoid_deep_ter_for_debug): Use build_debug_expr_decl |
| instead of building a DEBUG_EXPR_DECL. |
| * ipa-param-manipulation.c |
| (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. |
| * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise. |
| * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. |
| * tree-ssa-phiopt.c (spaceship_replacement): Likewise. |
| * tree-ssa-reassoc.c (make_new_ssa_for_def): Likewise. |
| |
| 2021-11-09 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_type_string): New function. |
| (def_builtin): Change debug formatting for easier parsing and |
| include more information. |
| (rs6000_init_builtins): Add dump of autogenerated builtins. |
| (altivec_init_builtins): Dump __builtin_altivec_mask_for_load for |
| completeness. |
| |
| 2021-11-09 Marek Polacek <polacek@redhat.com> |
| |
| * ipa-modref.c (analyze_parms): Fix a typo. |
| |
| 2021-11-09 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/102957 |
| * common/config/riscv/riscv-common.c (multi_letter_subset_rank): Remove |
| assertion for Z*-ext. |
| |
| 2021-11-09 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (analyze_parms): Add past_flags, past_retslot_flags |
| and past_static_chain; merge past summary with current one. |
| (analyze_function): Update. |
| |
| 2021-11-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * doc/invoke.texi (Invoking GCC): Document --param=threader-debug. |
| |
| 2021-11-09 Martin Liska <mliska@suse.cz> |
| |
| * print-rtl.c (rtx_writer::rtx_writer): Make the compilation |
| conditional based on |
| * print-rtl.h (class rtx_writer): Likewise. |
| |
| 2021-11-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * input.h (location_hash): Use 'BUILTINS_LOCATION' as spare value |
| for 'Deleted'. Turn into a '#define'. |
| |
| 2021-11-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::dump): Clean up. |
| (path_range_query::compute_ranges): Same. |
| * value-relation.cc (path_oracle::dump): Same. |
| |
| 2021-11-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dumpfile.c (dump_options): Remove TDF_THREADING entry. |
| * dumpfile.h (enum dump_flag): Remove TDF_THREADING and adjust |
| remaining entries. |
| * flag-types.h (enum threader_debug): New. |
| * gimple-range-path.cc (DEBUG_SOLVER): Use param_threader_debug. |
| * params.opt: Add entry for --param=threader-debug=. |
| |
| 2021-11-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR middle-end/101204 |
| PR other/103157 |
| * diagnostic-spec.h (typedef xint_hash_t): Turn into... |
| (struct xint_hash_t): ... this. |
| * doc/gty.texi: Update. |
| |
| 2021-11-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/arm/arm-cpus.in (armv9): New define. |
| (ARMv9a): New group. |
| (armv9-a): New arch definition. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm.h (BASE_ARCH_9A): New arch enum value. |
| * config/arm/t-aprofile: Added armv9-a and armv9+simd. |
| * config/arm/t-arm-elf: Added arm9-a, v9_fps and all_v9_archs |
| to MULTILIB_MATCHES. |
| * config/arm/t-multilib: Added v9_a_nosimd_variants and |
| v9_a_simd_variants to MULTILIB_MATCHES. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-11-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/103132 |
| * ipa-param-manipulation.c (replace_with_mapped_expr): Early |
| return with error_mark_mode when part of expression is mapped to |
| NULL. |
| (ipa_param_body_adjustments::remap_with_debug_expressions): Set |
| mapped value to NULL if walk_tree returns error_mark_mode. |
| |
| 2021-11-09 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-strlen.c (compare_nonzero_chars): Pass statement |
| context to ranger. |
| (get_addr_stridx): Same. |
| (get_stridx): Same. |
| (get_range_strlen_dynamic): Same. |
| (handle_builtin_strlen): Same. |
| (handle_builtin_strchr): Same. |
| (handle_builtin_strcpy): Same. |
| (maybe_diag_stxncpy_trunc): Same. |
| (handle_builtin_stxncpy_strncat): Same. |
| (handle_builtin_memcpy): Same. |
| (handle_builtin_strcat): Same. |
| (handle_alloc_call): Same. |
| (handle_builtin_memset): Same. |
| (handle_builtin_string_cmp): Same. |
| (handle_pointer_plus): Same. |
| (count_nonzero_bytes_addr): Same. |
| (count_nonzero_bytes): Same. |
| (handle_store): Same. |
| (fold_strstr_to_strncmp): Same. |
| (handle_integral_assign): Same. |
| (check_and_optimize_stmt): Same. |
| (class strlen_dom_walker): Replace evrp with ranger. |
| (strlen_dom_walker::before_dom_children): Remove evrp. |
| (strlen_dom_walker::after_dom_children): Remove evrp. |
| * gimple-ssa-warn-access.cc (maybe_check_access_sizes): |
| Restrict sprintf output. |
| |
| 2021-11-09 Martin Liska <mliska@suse.cz> |
| |
| * genconditions.c (write_one_condition): Add const qualifier |
| to pointer casting. |
| |
| 2021-11-09 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * match.pd: New pattern to simplify (1 << n) & M ==/!= 0 for M |
| being a power of 2. |
| |
| 2021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def (VEC_INIT_V16QI): Use |
| escape-newline support. |
| (VEC_INIT_V4SI): Likewise. |
| (VEC_INIT_V8HI): Likewise. |
| (PACK_V1TI): Likewise. |
| (DIVDEU): Likewise. |
| (VFIRSTMISMATCHOREOSINDEX_V16QI): Likewise. |
| (VFIRSTMISMATCHOREOSINDEX_V8HI): Likewise. |
| (VFIRSTMISMATCHOREOSINDEX_V4SI): Likewise. |
| (CMPRB2): Likewise. |
| (VSTDCP): Likewise. |
| (VSIEDP): Likewise. |
| (FMAF128_ODD): Likewise. |
| (VSCEQPUO): Likewise. |
| (VSIEQP): Likewise. |
| (VSIEQPF): Likewise. |
| (VSTDCQP): Likewise. |
| (PACK_TD): Likewise. |
| (TABORTDC): Likewise. |
| (TABORTDCI): Likewise. |
| (SE_LXVRBX): Likewise. |
| (SE_LXVRHX): Likewise. |
| (SE_LXVRWX): Likewise. |
| (SE_LXVRDX): Likewise. |
| (VREPLACE_UN_UV2DI): Likewise. |
| (VREPLACE_UN_UV4SI): Likewise. |
| (VREPLACE_UN_V2DI): Likewise. |
| (VREPLACE_ELT_UV2DI): Likewise. |
| (VREPLACE_ELT_V2DI): Likewise. |
| (ZE_LXVRBX): Likewise. |
| (ZE_LXVRHX): Likewise. |
| (ZE_LXVRWX): Likewise. |
| (ZE_LXVRDX): Likewise. |
| (CFUGED): Likewise. |
| (CNTLZDM): Likewise. |
| (CNTTZDM): Likewise. |
| (PDEPD): Likewise. |
| (PEXTD): Likewise. |
| (PMXVBF16GER2): Likewise. |
| (PMXVBF16GER2_INTERNAL): Likewise. |
| (PMXVBF16GER2NN): Likewise. |
| (PMXVBF16GER2NN_INTERNAL): Likewise. |
| (PMXVBF16GER2NP): Likewise. |
| (PMXVBF16GER2NP_INTERNAL): Likewise. |
| (PMXVBF16GER2PN): Likewise. |
| (PMXVBF16GER2PN_INTERNAL): Likewise. |
| (PMXVBF16GER2PP): Likewise. |
| (PMXVBF16GER2PP_INTERNAL): Likewise. |
| (PMXVF16GER2): Likewise. |
| (PMXVF16GER2_INTERNAL): Likewise. |
| (PMXVF16GER2NN): Likewise. |
| (PMXVF16GER2NN_INTERNAL): Likewise. |
| (PMXVF16GER2NP): Likewise. |
| (PMXVF16GER2NP_INTERNAL): Likewise. |
| (PMXVF16GER2PN): Likewise. |
| (PMXVF16GER2PN_INTERNAL): Likewise. |
| (PMXVF16GER2PP): Likewise. |
| (PMXVF16GER2PP_INTERNAL): Likewise. |
| (PMXVF32GER_INTERNAL): Likewise. |
| (PMXVF32GERNN): Likewise. |
| (PMXVF32GERNN_INTERNAL): Likewise. |
| (PMXVF32GERNP): Likewise. |
| (PMXVF32GERNP_INTERNAL): Likewise. |
| (PMXVF32GERPN): Likewise. |
| (PMXVF32GERPN_INTERNAL): Likewise. |
| (PMXVF32GERPP): Likewise. |
| (PMXVF32GERPP_INTERNAL): Likewise. |
| (PMXVF64GER): Likewise. |
| (PMXVF64GER_INTERNAL): Likewise. |
| (PMXVF64GERNN): Likewise. |
| (PMXVF64GERNN_INTERNAL): Likewise. |
| (PMXVF64GERNP): Likewise. |
| (PMXVF64GERNP_INTERNAL): Likewise. |
| (PMXVF64GERPN): Likewise. |
| (PMXVF64GERPN_INTERNAL): Likewise. |
| (PMXVF64GERPP): Likewise. |
| (PMXVF64GERPP_INTERNAL): Likewise. |
| (PMXVI16GER2): Likewise. |
| (PMXVI16GER2_INTERNAL): Likewise. |
| (PMXVI16GER2PP): Likewise. |
| (PMXVI16GER2PP_INTERNAL): Likewise. |
| (PMXVI16GER2S): Likewise. |
| (PMXVI16GER2S_INTERNAL): Likewise. |
| (PMXVI16GER2SPP): Likewise. |
| (PMXVI16GER2SPP_INTERNAL): Likewise. |
| (PMXVI4GER8): Likewise. |
| (PMXVI4GER8_INTERNAL): Likewise. |
| (PMXVI4GER8PP): Likewise. |
| (PMXVI4GER8PP_INTERNAL): Likewise. |
| (PMXVI8GER4): Likewise. |
| (PMXVI8GER4_INTERNAL): Likewise. |
| (PMXVI8GER4PP): Likewise. |
| (PMXVI8GER4PP_INTERNAL): Likewise. |
| (PMXVI8GER4SPP): Likewise. |
| (PMXVI8GER4SPP_INTERNAL): Likewise. |
| * config/rs6000/rs6000-gen-builtins.c (MAXLINES): New macro. |
| (linebuf): Increase size. |
| (lines): New variable. |
| (lastline): Likewise. |
| (real_line_pos): New function. |
| (diag): Change signature. |
| (bif_diag): Change signature; support escape-newline handling. |
| (ovld_diag): Likewise. |
| (fatal): Move earlier. |
| (consume_whitespace): Adjust diag call. |
| (advance_line): Add escape-newline handling; call fatal. |
| (safe_inc_pos): Adjust diag call. |
| (match_identifier): Likewise. |
| (match_integer): Likewise. |
| (match_to_right_bracket): Call fatal instead of diag; adjust diag |
| call. |
| (match_basetype): Adjust diag calls. |
| (match_bracketed_pair): Likewise. |
| (match_const_restriction): Likewise. |
| (match_type): Likewise. |
| (parse_args): Likewise. |
| (parse_bif_attrs): Likewise. |
| (complete_vector_type): Likewise. |
| (complete_base_type): Likewise. |
| (parse_prototype): Likewise. |
| (parse_bif_entry): Likewise. |
| (parse_bif_stanza): Likewise. |
| (parse_ovld_entry): Likewise. |
| (parse_ovld_stanza): Likewise. |
| (main): Allocate buffers for lines[]. |
| |
| 2021-11-08 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/i386/i386.c (legitimize_pic_address): Adjust comment and |
| use the REG argument on the CM_LARGE_PIC code path as well. |
| * config/i386/predicates.md (gotoff_operand): Do not treat VxWorks |
| specially with the large code models. |
| |
| 2021-11-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * gimple.c (gimple_call_static_chain_flags): Revert the workaround |
| allowing interposition since issues with binds_to_local_def were |
| hopefully solved. |
| |
| 2021-11-08 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103122 |
| * gimple-range.cc (gimple_ranger::range_of_expr): Request the cache |
| entry with "calulate new values" set to false. |
| |
| 2021-11-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * builtins.c (is_simple_builtin): Add builitin_dwarf_cfa |
| and builtin_return_address. |
| (builtin_fnspec): Annotate builtin_return, |
| bulitin_eh_pointer, builtin_eh_filter, builtin_unwind_resume, |
| builtin_cxa_end_cleanup, builtin_eh_copy_values, |
| builtin_frame_address, builtin_apply_args, |
| builtin_asan_before_dynamic_init, builtin_asan_after_dynamic_init, |
| builtin_prefetch, builtin_dwarf_cfa, builtin_return_addrss |
| as ".c" |
| * ipa-pure-const.c (special_builtin_state): Add builtin_dwarf_cfa |
| and builtin_return_address. |
| |
| 2021-11-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/103177 |
| * passes.def: Move uncprop after pure/const and modref. |
| |
| 2021-11-08 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/103099 |
| PR ipa/103107 |
| * tree-inline.c (remap_gimple_stmt): Unshare the expression without |
| location before invoking remap_with_debug_expressions on it. |
| * ipa-param-manipulation.c |
| (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. |
| |
| 2021-11-08 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/vsx.md (vsx_splat_v4si_di): Revert "wa" |
| constraint to "we". |
| |
| 2021-11-08 Richard Biener <rguenther@suse.de> |
| |
| * cfgloop.c (verify_loop_structure): Use a temporary BB flag |
| instead of an sbitmap to cache irreducible state. |
| |
| 2021-11-08 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103120 |
| * gimple-range-path.cc (path_range_query::range_defined_in_block): |
| Bail if there's a cache entry. |
| |
| 2021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use |
| rs6000_builtin_decls_x when appropriate. |
| (add_condition_to_bb): Likewise. |
| (rs6000_atomic_assign_expand_fenv): Likewise. |
| |
| 2021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. |
| (rs6000_builtin_decl): Call it. |
| |
| 2021-11-08 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Dump it from decl. |
| |
| 2021-11-08 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/100520 |
| * coverage.c (coverage_compute_profile_id): Strip .gk when |
| compare debug is used. |
| * system.h (endswith): New function. |
| |
| 2021-11-08 Martin Liska <mliska@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Dump static_chain_decl. |
| |
| 2021-11-08 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/rs6000/rbtree.c: Fix 'Copyright (C) 2020-21' into '2020-2021' |
| * config/rs6000/rbtree.h: Likewise. |
| * config/rs6000/rs6000-builtin-new.def: Likewise. |
| * config/rs6000/rs6000-gen-builtins.c: Likewise. |
| * config/rs6000/rs6000-overload.def: Likewise. |
| |
| 2021-11-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_ldn_stn_vectors): New function. |
| (aarch64_address_cost): Use it instead of testing for CImode and |
| XImode directly. |
| |
| 2021-11-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * genmodes.c (emit_insn_modes_h): Define NUM_MODE_* macros. |
| * expmed.h (NUM_MODE_INT): Delete in favor of genmodes definitions. |
| (NUM_MODE_PARTIAL_INT, NUM_MODE_VECTOR_INT): Likewise. |
| * real.h (real_format_for_mode): Use NUM_MODE_FLOAT and |
| NUM_MODE_DECIMAL_FLOAT. |
| (REAL_MODE_FORMAT): Likewise. |
| |
| 2021-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * tree-vect-loop.c (vect_better_loop_vinfo_p): Change how epilogue loop |
| costs are compared. |
| |
| 2021-11-08 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_create_loop_vinfo): Add main_loop_info |
| parameter. |
| * tree-vect-loop.c (vect_create_loop_vinfo): Likewise. Set |
| LOOP_VINFO_ORIG_LOOP_INFO and conditionalize set of |
| LOOP_VINFO_NITERS_ASSUMPTIONS. |
| (vect_analyze_loop_1): Adjust. |
| (vect_analyze_loop): Move loop constraint setting and |
| SCEV/niter reset here from vect_create_loop_vinfo to perform |
| it only once. |
| (vect_analyze_loop_form): Move dumping of symbolic niters |
| here from vect_create_loop_vinfo. |
| |
| 2021-11-08 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (enum modref_special_parms): New enum. |
| (struct modref_access_node): update for special parms. |
| (struct modref_ref_node): Likewise. |
| (struct modref_parm_map): Likewise. |
| (struct modref_tree): Likewise. |
| * ipa-modref.c (dump_access): Likewise. |
| (get_access): Detect static chain. |
| (parm_map_for_arg): Take tree as arg instead of |
| stmt and index. |
| (merge_call_side_effects): Compute map for static chain. |
| (process_fnspec): Update. |
| (struct escape_point): Remove retslot_arg and static_chain_arg. |
| (analyze_parms): Update. |
| (compute_parm_map): Update. |
| (propagate_unknown_call): Update. |
| (modref_propagate_in_scc): Update. |
| (modref_merge_call_site_flags): Update. |
| (ipa_merge_modref_summary_after_inlining): Update. |
| * tree-ssa-alias.c (modref_may_conflict): Handle static chain. |
| * ipa-modref-tree.c (test_merge): Update. |
| |
| 2021-11-08 Haochen Gui <guihaoc@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Disable |
| gimple fold for VSX_BUILTIN_XVMINDP, ALTIVEC_BUILTIN_VMINFP, |
| VSX_BUILTIN_XVMAXDP, ALTIVEC_BUILTIN_VMAXFP when fast-math is not |
| set. |
| |
| 2021-11-08 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/103077 |
| * doc/invoke.texi (Options That Control Optimization): |
| Update documentation for -ftree-loop-vectorize and |
| -ftree-slp-vectorize which are enabled by default at -02. |
| |
| 2021-11-08 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102464 |
| * match.pd (Simplifcation (trunc)copysign((extend)a, (extend)b) |
| to .COPYSIGN (a, b)): Add !HONOR_SNANS. |
| |
| 2021-11-08 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102464 |
| * match.pd: Simplify |
| (trunc)fma ((extend)a, (extend)b, (extend)c) to IFN_FMA (a, b, |
| c) under flag_unsafe_math_optimizations. |
| |
| 2021-11-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103055 |
| * params.opt (modref-max-depth): Add range. |
| (modref-max-adjustments): Fix range. |
| |
| 2021-11-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-pass.h (make_pass_vrp_threader): Remove. |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Remove |
| ASSERT_EXPR references. |
| * tree-ssa-threadedge.c (jt_state::register_equivs_stmt): Same. |
| * tree-vrp.c (vrp_folder::simplify_casted_conds): Same. |
| (execute_vrp): Same. |
| (class hybrid_threader): Remove. |
| (hybrid_threader::hybrid_threader): Remove. |
| (hybrid_threader::~hybrid_threader): Remove. |
| (hybrid_threader::before_dom_children): Remove. |
| (hybrid_threader::after_dom_children): Remove. |
| (execute_vrp_threader): Remove. |
| (class pass_vrp_threader): Remove. |
| (make_pass_vrp_threader): Remove. |
| |
| 2021-11-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * gimple.c (gimple_call_arg_flags): Use interposable_eaf_flags. |
| (gimple_call_retslot_flags): Likewise. |
| (gimple_call_static_chain_flags): Likewise. |
| * ipa-modref.c (remove_useless_eaf_flags): Do not remove everything for |
| NOVOPS. |
| (modref_summary::useful_p): Likewise. |
| (modref_summary_lto::useful_p): Likewise. |
| (analyze_parms): Do not give up on NOVOPS. |
| (analyze_function): When dumping report chnages in EAF flags |
| between IPA and local pass. |
| (modref_merge_call_site_flags): Compute implicit eaf flags |
| based on callee ecf_flags and fnspec; if the function does not |
| bind to current defs use interposable_eaf_flags. |
| (modref_propagate_flags_in_scc): Update. |
| * ipa-modref.h (interposable_eaf_flags): New function. |
| |
| 2021-11-07 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New |
| forward decl. |
| (rs6000_invalid_new_builtin): New function. |
| (rs6000_expand_builtin): Call rs6000_expand_new_builtin. |
| (rs6000_expand_ldst_mask): New function. |
| (new_cpu_expand_builtin): Likewise. |
| (elemrev_icode): Likewise. |
| (ldv_expand_builtin): Likewise. |
| (lxvrse_expand_builtin): Likewise. |
| (lxvrze_expand_builtin): Likewise. |
| (stv_expand_builtin): Likewise. |
| (new_mma_expand_builtin): Likewise. |
| (new_htm_spr_num): Likewise. |
| (new_htm_expand_builtin): Likewise. |
| (rs6000_expand_new_builtin): Likewise. |
| (rs6000_init_builtins): Initialize altivec_builtin_mask_for_load. |
| |
| 2021-11-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (modref_lattice): Add do_dataflow, |
| changed and propagate_to fields. |
| (modref_lattice::release): Free propagate_to |
| (modref_lattice::merge): Do not give up early on unknown |
| lattice values. |
| (modref_lattice::merge_deref): Likewise. |
| (modref_eaf_analysis): Update toplevel comment. |
| (modref_eaf_analysis::analyze_ssa_name): Record postponned ssa names; |
| do optimistic dataflow initialization. |
| (modref_eaf_analysis::merge_with_ssa_name): Build dataflow graph. |
| (modref_eaf_analysis::propagate): New member function. |
| (analyze_parms): Update to new API of modref_eaf_analysis. |
| |
| 2021-11-06 Jan Hubicka <hubicka@ucw.cz> |
| |
| * cgraph.h (cgraph_node::can_be_discarded_p): Do not |
| return true on functions from other partition. |
| |
| 2021-11-06 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/vsx.md (vsx_splat_v4si): Change constraints to "wa". |
| (vsx_splat_v4si_di): Change constraint to "wa". |
| |
| 2021-11-06 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103061 |
| * value-relation.cc (path_oracle::path_oracle): Initialize |
| m_killed_defs. |
| (path_oracle::killing_def): Set m_killed_defs. |
| (path_oracle::query_relation): Do not look at the root oracle for |
| killed defs. |
| * value-relation.h (class path_oracle): Add m_killed_defs. |
| |
| 2021-11-06 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): |
| Remove gotos and other cleanups. |
| |
| 2021-11-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103073 |
| * ipa-modref-tree.h (modref_tree::insert): Do nothing for |
| paradoxical and zero sized accesses. |
| |
| 2021-11-05 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103082 |
| * ipa-modref-tree.h (struct modref_access_node): Avoid left shift |
| of negative value |
| |
| 2021-11-05 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add LTRAMP |
| to the list of symbol prefixes that must be made linker- |
| visible. |
| |
| 2021-11-05 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.host: Add support for aarch64-*-darwin. |
| * config/aarch64/host-aarch64-darwin.c: New file. |
| * config/aarch64/x-darwin: New file. |
| |
| 2021-11-05 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103093 |
| * gimple-range-gori.cc (range_def_chain::get_imports): Remove assert. |
| |
| 2021-11-05 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/102943 |
| * gimple-range-cache.cc (class update_list): New. |
| (update_list::add): Replace add_to_update. |
| (update_list::pop): New. |
| (ranger_cache::ranger_cache): Adjust. |
| (ranger_cache::~ranger_cache): Adjust. |
| (ranger_cache::add_to_update): Delete. |
| (ranger_cache::propagate_cache): Adjust to new class. |
| (ranger_cache::propagate_updated_value): Ditto. |
| (ranger_cache::fill_block_cache): Ditto. |
| * gimple-range-cache.h (class ranger_cache): Adjust to update class. |
| |
| 2021-11-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_analyze_loop): Remove obsolete |
| comment and expand on another one. Combine nested if. |
| |
| 2021-11-05 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR libgomp/96661 |
| * config/pa/pa-modes.def: Add OImode integer type. |
| * config/pa/pa.c (pa_scalar_mode_supported_p): Allow TImode |
| for TARGET_64BIT. |
| * config/pa/pa.h (MIN_UNITS_PER_WORD) Define to MIN_UNITS_PER_WORD |
| to UNITS_PER_WORD if IN_LIBGCC2. |
| * config/pa/pa.md (addti3, addvti3, subti3, subvti3, negti2, |
| negvti2, ashlti3, shrpd_internal): New patterns. |
| Change some multi instruction types to multi. |
| |
| 2021-11-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR bootstrap/100246 |
| * config/i386/i386.h |
| (stringop_algs::stringop_strategy::stringop_strategy): Make the ctor |
| constexpr. |
| |
| 2021-11-05 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/103085 |
| * config/aarch64/aarch64.c (aarch64_mov_operand_p): Strip the salt |
| first. |
| * config/aarch64/constraints.md: Support const in Usw. |
| |
| 2021-11-05 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2_DEBUG. |
| * config/pa/pa64-hpux.h (PREFERRED_DEBUGGING_TYPE): Remove define. |
| |
| 2021-11-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vec_info_shared::n_stmts): Add. |
| (LOOP_VINFO_N_STMTS): Likewise. |
| (vec_info_for_bb): Remove unused function. |
| * tree-vectorizer.c (vec_info_shared::vec_info_shared): |
| Initialize n_stmts member. |
| * tree-vect-loop.c: Remove INCLUDE_FUNCTIONAL. |
| (vect_create_loop_vinfo): Do not set loop->aux. |
| (vect_analyze_loop_2): Do not get n_stmts as argument, |
| instead use LOOP_VINFO_N_STMTS. Set LOOP_VINFO_VECTORIZABLE_P |
| here. |
| (vect_analyze_loop_1): Remove callback, get the mode iterator |
| and autodetected_vector_mode as argument, advancing the |
| iterator and initializing autodetected_vector_mode here. |
| (vect_analyze_loop): Split analysis loop into two, first |
| processing main loops only and then epilogues. |
| |
| 2021-11-05 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-prop.c (compute_complex_assign_jump_func): Remove |
| unnecessary check for RECORD_TYPE. |
| |
| 2021-11-05 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi2html: Do not generate old.html any longer. |
| |
| 2021-11-05 Martin Liska <mliska@suse.cz> |
| |
| PR debug/102955 |
| * opts.c (finish_options): Reset flag_gtoggle when it is used. |
| |
| 2021-11-05 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/103046 |
| * dwarf2out.c (add_const_value_attribute): Add MODE argument, use it |
| in CONST_WIDE_INT handling. Adjust recursive calls. |
| (add_location_or_const_value_attribute): Pass DECL_MODE (decl) to |
| new add_const_value_attribute argument. |
| (tree_add_const_value_attribute): Pass TYPE_MODE (type) to new |
| add_const_value_attribute argument. |
| |
| 2021-11-05 Rasmus Villemoes <rasmus.villemoes@prevas.dk> |
| |
| * config/vx-common.h: Test value of TARGET_VXWORKS7 rather |
| than definedness. |
| |
| 2021-11-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (struct vect_loop_form_info): New. |
| (vect_analyze_loop_form): Adjust. |
| (vect_create_loop_vinfo): New. |
| * tree-parloops.c (gather_scalar_reductions): Adjust for |
| vect_analyze_loop_form API change. |
| * tree-vect-loop.c: Include <functional>. |
| (vect_analyze_loop_form_1): Rename to vect_analyze_loop_form, |
| take struct vect_loop_form_info as output parameter and adjust. |
| (vect_analyze_loop_form): Rename to vect_create_loop_vinfo and |
| split out call to the original vect_analyze_loop_form_1. |
| (vect_reanalyze_as_main_loop): Rename to... |
| (vect_analyze_loop_1): ... this, factor out the call to |
| vect_analyze_loop_form and generalize to be able to use it twice ... |
| (vect_analyze_loop): ... here. Perform vect_analyze_loop_form |
| once only and here. |
| |
| 2021-11-05 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR target/102991 |
| * config/rs6000/fusion.md: Regenerate. |
| * config/rs6000/genfusion.pl: Fix incorrect clobber constraint. |
| |
| 2021-11-04 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.h (STACK_CHECK_MOVING_SP): New macro |
| definition. |
| |
| 2021-11-04 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_general_gimple_fold_builtin): Add ashl, sshl, ushl, ashr, |
| ashr_simd, lshr, lshr_simd. |
| * config/aarch64/aarch64-simd-builtins.def (lshr): Use USHIFTIMM. |
| * config/aarch64/arm_neon.h (vshr_n_u8, vshr_n_u16, vshr_n_u32, |
| vshrq_n_u8, vshrq_n_u16, vshrq_n_u32, vshrq_n_u64): Fix type hack. |
| |
| 2021-11-04 Tamar Christina <tamar.christina@arm.com> |
| |
| * match.pd: New negate+shift pattern. |
| |
| 2021-11-04 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103079 |
| * gimple-range-gori.cc (gimple_range_calc_op1): Treat undefined as |
| varying. |
| (gimple_range_calc_op2): Ditto. |
| |
| 2021-11-04 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/93385 |
| * ipa-param-manipulation.h (class ipa_param_body_adjustments): New |
| members remap_with_debug_expressions, m_dead_ssa_debug_equiv, |
| m_dead_stmt_debug_equiv and prepare_debug_expressions. Added |
| parameter to mark_dead_statements. |
| * ipa-param-manipulation.c: Include tree-phinodes.h and cfgexpand.h. |
| (ipa_param_body_adjustments::mark_dead_statements): New parameter |
| debugstack, push into it all SSA names used in debug statements, |
| produce m_dead_ssa_debug_equiv mapping for the removed param. |
| (replace_with_mapped_expr): New function. |
| (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise. |
| (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. |
| (ipa_param_body_adjustments::common_initialization): Gather and |
| procecc SSA which will be removed but are in debug statements. Simplify. |
| (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize |
| new members. |
| * tree-inline.c (remap_gimple_stmt): Create a debug bind when possible |
| when avoiding a copy of an unnecessary statement. Remap removed SSA |
| names in existing debug statements. |
| (tree_function_versioning): Do not create DEBUG_EXPR_DECL for removed |
| parameters if we have already done so. |
| |
| 2021-11-04 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103058 |
| * gimple.c (gimple_call_static_chain_flags): Handle case when |
| nested function does not bind locally. |
| |
| 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_function_value): Generate |
| a register rtx for Neon vector-tuple modes. |
| (aarch64_layout_arg): Likewise. |
| |
| 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * lower-subreg.c (simple_move): Prevent decomposition if |
| modes are not tieable. |
| |
| 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> |
| Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (v2x8qi_UP): Define. |
| (v2x4hi_UP): Likewise. |
| (v2x4hf_UP): Likewise. |
| (v2x4bf_UP): Likewise. |
| (v2x2si_UP): Likewise. |
| (v2x2sf_UP): Likewise. |
| (v2x1di_UP): Likewise. |
| (v2x1df_UP): Likewise. |
| (v2x16qi_UP): Likewise. |
| (v2x8hi_UP): Likewise. |
| (v2x8hf_UP): Likewise. |
| (v2x8bf_UP): Likewise. |
| (v2x4si_UP): Likewise. |
| (v2x4sf_UP): Likewise. |
| (v2x2di_UP): Likewise. |
| (v2x2df_UP): Likewise. |
| (v3x8qi_UP): Likewise. |
| (v3x4hi_UP): Likewise. |
| (v3x4hf_UP): Likewise. |
| (v3x4bf_UP): Likewise. |
| (v3x2si_UP): Likewise. |
| (v3x2sf_UP): Likewise. |
| (v3x1di_UP): Likewise. |
| (v3x1df_UP): Likewise. |
| (v3x16qi_UP): Likewise. |
| (v3x8hi_UP): Likewise. |
| (v3x8hf_UP): Likewise. |
| (v3x8bf_UP): Likewise. |
| (v3x4si_UP): Likewise. |
| (v3x4sf_UP): Likewise. |
| (v3x2di_UP): Likewise. |
| (v3x2df_UP): Likewise. |
| (v4x8qi_UP): Likewise. |
| (v4x4hi_UP): Likewise. |
| (v4x4hf_UP): Likewise. |
| (v4x4bf_UP): Likewise. |
| (v4x2si_UP): Likewise. |
| (v4x2sf_UP): Likewise. |
| (v4x1di_UP): Likewise. |
| (v4x1df_UP): Likewise. |
| (v4x16qi_UP): Likewise. |
| (v4x8hi_UP): Likewise. |
| (v4x8hf_UP): Likewise. |
| (v4x8bf_UP): Likewise. |
| (v4x4si_UP): Likewise. |
| (v4x4sf_UP): Likewise. |
| (v4x2di_UP): Likewise. |
| (v4x2df_UP): Likewise. |
| (TYPES_GETREGP): Delete. |
| (TYPES_SETREGP): Likewise. |
| (TYPES_LOADSTRUCT_U): Define. |
| (TYPES_LOADSTRUCT_P): Likewise. |
| (TYPES_LOADSTRUCT_LANE_U): Likewise. |
| (TYPES_LOADSTRUCT_LANE_P): Likewise. |
| (TYPES_STORE1P): Move for consistency. |
| (TYPES_STORESTRUCT_U): Define. |
| (TYPES_STORESTRUCT_P): Likewise. |
| (TYPES_STORESTRUCT_LANE_U): Likewise. |
| (TYPES_STORESTRUCT_LANE_P): Likewise. |
| (aarch64_simd_tuple_types): Define. |
| (aarch64_lookup_simd_builtin_type): Handle tuple type lookup. |
| (aarch64_init_simd_builtin_functions): Update frontend lookup |
| for builtin functions after handling arm_neon.h pragma. |
| (register_tuple_type): Manually set modes of single-integer |
| tuple types. Record tuple types. |
| * config/aarch64/aarch64-modes.def |
| (ADV_SIMD_D_REG_STRUCT_MODES): Define D-register tuple modes. |
| (ADV_SIMD_Q_REG_STRUCT_MODES): Define Q-register tuple modes. |
| (SVE_MODES): Give single-vector modes priority over vector- |
| tuple modes. |
| (VECTOR_MODES_WITH_PREFIX): Set partial-vector mode order to |
| be after all single-vector modes. |
| * config/aarch64/aarch64-simd-builtins.def: Update builtin |
| generator macros to reflect modifications to the backend |
| patterns. |
| * config/aarch64/aarch64-simd.md (aarch64_simd_ld2<mode>): |
| Use vector-tuple mode iterator and rename to... |
| (aarch64_simd_ld2<vstruct_elt>): This. |
| (aarch64_simd_ld2r<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_ld2r<vstruct_elt>): This. |
| (aarch64_vec_load_lanesoi_lane<mode>): Use vector-tuple mode |
| iterator and rename to... |
| (aarch64_vec_load_lanes<mode>_lane<vstruct_elt>): This. |
| (vec_load_lanesoi<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (vec_load_lanes<mode><vstruct_elt>): This. |
| (aarch64_simd_st2<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_st2<vstruct_elt>): This. |
| (aarch64_vec_store_lanesoi_lane<mode>): Use vector-tuple mode |
| iterator and rename to... |
| (aarch64_vec_store_lanes<mode>_lane<vstruct_elt>): This. |
| (vec_store_lanesoi<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (vec_store_lanes<mode><vstruct_elt>): This. |
| (aarch64_simd_ld3<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_ld3<vstruct_elt>): This. |
| (aarch64_simd_ld3r<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_ld3r<vstruct_elt>): This. |
| (aarch64_vec_load_lanesci_lane<mode>): Use vector-tuple mode |
| iterator and rename to... |
| (vec_load_lanesci<mode>): This. |
| (aarch64_simd_st3<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_st3<vstruct_elt>): This. |
| (aarch64_vec_store_lanesci_lane<mode>): Use vector-tuple mode |
| iterator and rename to... |
| (vec_store_lanesci<mode>): This. |
| (aarch64_simd_ld4<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_ld4<vstruct_elt>): This. |
| (aarch64_simd_ld4r<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_ld4r<vstruct_elt>): This. |
| (aarch64_vec_load_lanesxi_lane<mode>): Use vector-tuple mode |
| iterator and rename to... |
| (vec_load_lanesxi<mode>): This. |
| (aarch64_simd_st4<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_simd_st4<vstruct_elt>): This. |
| (aarch64_vec_store_lanesxi_lane<mode>): Use vector-tuple mode |
| iterator and rename to... |
| (vec_store_lanesxi<mode>): This. |
| (mov<mode>): Define for Neon vector-tuple modes. |
| (aarch64_ld1x3<VALLDIF:mode>): Use vector-tuple mode iterator |
| and rename to... |
| (aarch64_ld1x3<vstruct_elt>): This. |
| (aarch64_ld1_x3_<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_ld1_x3_<vstruct_elt>): This. |
| (aarch64_ld1x4<VALLDIF:mode>): Use vector-tuple mode iterator |
| and rename to... |
| (aarch64_ld1x4<vstruct_elt>): This. |
| (aarch64_ld1_x4_<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_ld1_x4_<vstruct_elt>): This. |
| (aarch64_st1x2<VALLDIF:mode>): Use vector-tuple mode iterator |
| and rename to... |
| (aarch64_st1x2<vstruct_elt>): This. |
| (aarch64_st1_x2_<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_st1_x2_<vstruct_elt>): This. |
| (aarch64_st1x3<VALLDIF:mode>): Use vector-tuple mode iterator |
| and rename to... |
| (aarch64_st1x3<vstruct_elt>): This. |
| (aarch64_st1_x3_<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_st1_x3_<vstruct_elt>): This. |
| (aarch64_st1x4<VALLDIF:mode>): Use vector-tuple mode iterator |
| and rename to... |
| (aarch64_st1x4<vstruct_elt>): This. |
| (aarch64_st1_x4_<mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_st1_x4_<vstruct_elt>): This. |
| (*aarch64_mov<mode>): Define for vector-tuple modes. |
| (*aarch64_be_mov<mode>): Likewise. |
| (aarch64_ld<VSTRUCT:nregs>r<VALLDIF:mode>): Use vector-tuple |
| mode iterator and rename to... |
| (aarch64_ld<nregs>r<vstruct_elt>): This. |
| (aarch64_ld2<mode>_dreg): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_ld2<vstruct_elt>_dreg): This. |
| (aarch64_ld3<mode>_dreg): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_ld3<vstruct_elt>_dreg): This. |
| (aarch64_ld4<mode>_dreg): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_ld4<vstruct_elt>_dreg): This. |
| (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Use vector-tuple mode |
| iterator and rename to... |
| (aarch64_ld<nregs><vstruct_elt>): Use vector-tuple mode |
| iterator and rename to... |
| (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Use vector-tuple mode |
| (aarch64_ld1x2<VQ:mode>): Delete. |
| (aarch64_ld1x2<VDC:mode>): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_ld1x2<vstruct_elt>): This. |
| (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use vector- |
| tuple mode iterator and rename to... |
| (aarch64_ld<nregs>_lane<vstruct_elt>): This. |
| (aarch64_get_dreg<VSTRUCT:mode><VDC:mode>): Delete. |
| (aarch64_get_qreg<VSTRUCT:mode><VQ:mode>): Likewise. |
| (aarch64_st2<mode>_dreg): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_st2<vstruct_elt>_dreg): This. |
| (aarch64_st3<mode>_dreg): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_st3<vstruct_elt>_dreg): This. |
| (aarch64_st4<mode>_dreg): Use vector-tuple mode iterator and |
| rename to... |
| (aarch64_st4<vstruct_elt>_dreg): This. |
| (aarch64_st<VSTRUCT:nregs><VDC:mode>): Use vector-tuple mode |
| iterator and rename to... |
| (aarch64_st<nregs><vstruct_elt>): This. |
| (aarch64_st<VSTRUCT:nregs><VQ:mode>): Use vector-tuple mode |
| iterator and rename to aarch64_st<nregs><vstruct_elt>. |
| (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use vector- |
| tuple mode iterator and rename to... |
| (aarch64_st<nregs>_lane<vstruct_elt>): This. |
| (aarch64_set_qreg<VSTRUCT:mode><VQ:mode>): Delete. |
| (aarch64_simd_ld1<mode>_x2): Use vector-tuple mode iterator |
| and rename to... |
| (aarch64_simd_ld1<vstruct_elt>_x2): This. |
| * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): |
| Refactor to include new vector-tuple modes. |
| (aarch64_classify_vector_mode): Add cases for new vector- |
| tuple modes. |
| (aarch64_advsimd_partial_struct_mode_p): Define. |
| (aarch64_advsimd_full_struct_mode_p): Likewise. |
| (aarch64_advsimd_vector_array_mode): Likewise. |
| (aarch64_sve_data_mode): Change location in file. |
| (aarch64_array_mode): Handle case of Neon vector-tuple modes. |
| (aarch64_hard_regno_nregs): Handle case of partial Neon |
| vector structures. |
| (aarch64_classify_address): Refactor to include handling of |
| Neon vector-tuple modes. |
| (aarch64_print_operand): Print "d" for "%R" for a partial |
| Neon vector structure. |
| (aarch64_expand_vec_perm_1): Use new vector-tuple mode. |
| (aarch64_modes_tieable_p): Prevent tieing Neon partial struct |
| modes with scalar machines modes larger than 8 bytes. |
| (aarch64_can_change_mode_class): Don't allow changes between |
| partial and full Neon vector-structure modes. |
| * config/aarch64/arm_neon.h (vst2_lane_f16): Use updated |
| builtin and remove boiler-plate code for opaque mode. |
| (vst2_lane_f32): Likewise. |
| (vst2_lane_f64): Likewise. |
| (vst2_lane_p8): Likewise. |
| (vst2_lane_p16): Likewise. |
| (vst2_lane_p64): Likewise. |
| (vst2_lane_s8): Likewise. |
| (vst2_lane_s16): Likewise. |
| (vst2_lane_s32): Likewise. |
| (vst2_lane_s64): Likewise. |
| (vst2_lane_u8): Likewise. |
| (vst2_lane_u16): Likewise. |
| (vst2_lane_u32): Likewise. |
| (vst2_lane_u64): Likewise. |
| (vst2q_lane_f16): Likewise. |
| (vst2q_lane_f32): Likewise. |
| (vst2q_lane_f64): Likewise. |
| (vst2q_lane_p8): Likewise. |
| (vst2q_lane_p16): Likewise. |
| (vst2q_lane_p64): Likewise. |
| (vst2q_lane_s8): Likewise. |
| (vst2q_lane_s16): Likewise. |
| (vst2q_lane_s32): Likewise. |
| (vst2q_lane_s64): Likewise. |
| (vst2q_lane_u8): Likewise. |
| (vst2q_lane_u16): Likewise. |
| (vst2q_lane_u32): Likewise. |
| (vst2q_lane_u64): Likewise. |
| (vst3_lane_f16): Likewise. |
| (vst3_lane_f32): Likewise. |
| (vst3_lane_f64): Likewise. |
| (vst3_lane_p8): Likewise. |
| (vst3_lane_p16): Likewise. |
| (vst3_lane_p64): Likewise. |
| (vst3_lane_s8): Likewise. |
| (vst3_lane_s16): Likewise. |
| (vst3_lane_s32): Likewise. |
| (vst3_lane_s64): Likewise. |
| (vst3_lane_u8): Likewise. |
| (vst3_lane_u16): Likewise. |
| (vst3_lane_u32): Likewise. |
| (vst3_lane_u64): Likewise. |
| (vst3q_lane_f16): Likewise. |
| (vst3q_lane_f32): Likewise. |
| (vst3q_lane_f64): Likewise. |
| (vst3q_lane_p8): Likewise. |
| (vst3q_lane_p16): Likewise. |
| (vst3q_lane_p64): Likewise. |
| (vst3q_lane_s8): Likewise. |
| (vst3q_lane_s16): Likewise. |
| (vst3q_lane_s32): Likewise. |
| (vst3q_lane_s64): Likewise. |
| (vst3q_lane_u8): Likewise. |
| (vst3q_lane_u16): Likewise. |
| (vst3q_lane_u32): Likewise. |
| (vst3q_lane_u64): Likewise. |
| (vst4_lane_f16): Likewise. |
| (vst4_lane_f32): Likewise. |
| (vst4_lane_f64): Likewise. |
| (vst4_lane_p8): Likewise. |
| (vst4_lane_p16): Likewise. |
| (vst4_lane_p64): Likewise. |
| (vst4_lane_s8): Likewise. |
| (vst4_lane_s16): Likewise. |
| (vst4_lane_s32): Likewise. |
| (vst4_lane_s64): Likewise. |
| (vst4_lane_u8): Likewise. |
| (vst4_lane_u16): Likewise. |
| (vst4_lane_u32): Likewise. |
| (vst4_lane_u64): Likewise. |
| (vst4q_lane_f16): Likewise. |
| (vst4q_lane_f32): Likewise. |
| (vst4q_lane_f64): Likewise. |
| (vst4q_lane_p8): Likewise. |
| (vst4q_lane_p16): Likewise. |
| (vst4q_lane_p64): Likewise. |
| (vst4q_lane_s8): Likewise. |
| (vst4q_lane_s16): Likewise. |
| (vst4q_lane_s32): Likewise. |
| (vst4q_lane_s64): Likewise. |
| (vst4q_lane_u8): Likewise. |
| (vst4q_lane_u16): Likewise. |
| (vst4q_lane_u32): Likewise. |
| (vst4q_lane_u64): Likewise. |
| (vtbl3_s8): Likewise. |
| (vtbl3_u8): Likewise. |
| (vtbl3_p8): Likewise. |
| (vtbl4_s8): Likewise. |
| (vtbl4_u8): Likewise. |
| (vtbl4_p8): Likewise. |
| (vld1_u8_x3): Likewise. |
| (vld1_s8_x3): Likewise. |
| (vld1_u16_x3): Likewise. |
| (vld1_s16_x3): Likewise. |
| (vld1_u32_x3): Likewise. |
| (vld1_s32_x3): Likewise. |
| (vld1_u64_x3): Likewise. |
| (vld1_s64_x3): Likewise. |
| (vld1_f16_x3): Likewise. |
| (vld1_f32_x3): Likewise. |
| (vld1_f64_x3): Likewise. |
| (vld1_p8_x3): Likewise. |
| (vld1_p16_x3): Likewise. |
| (vld1_p64_x3): Likewise. |
| (vld1q_u8_x3): Likewise. |
| (vld1q_s8_x3): Likewise. |
| (vld1q_u16_x3): Likewise. |
| (vld1q_s16_x3): Likewise. |
| (vld1q_u32_x3): Likewise. |
| (vld1q_s32_x3): Likewise. |
| (vld1q_u64_x3): Likewise. |
| (vld1q_s64_x3): Likewise. |
| (vld1q_f16_x3): Likewise. |
| (vld1q_f32_x3): Likewise. |
| (vld1q_f64_x3): Likewise. |
| (vld1q_p8_x3): Likewise. |
| (vld1q_p16_x3): Likewise. |
| (vld1q_p64_x3): Likewise. |
| (vld1_u8_x2): Likewise. |
| (vld1_s8_x2): Likewise. |
| (vld1_u16_x2): Likewise. |
| (vld1_s16_x2): Likewise. |
| (vld1_u32_x2): Likewise. |
| (vld1_s32_x2): Likewise. |
| (vld1_u64_x2): Likewise. |
| (vld1_s64_x2): Likewise. |
| (vld1_f16_x2): Likewise. |
| (vld1_f32_x2): Likewise. |
| (vld1_f64_x2): Likewise. |
| (vld1_p8_x2): Likewise. |
| (vld1_p16_x2): Likewise. |
| (vld1_p64_x2): Likewise. |
| (vld1q_u8_x2): Likewise. |
| (vld1q_s8_x2): Likewise. |
| (vld1q_u16_x2): Likewise. |
| (vld1q_s16_x2): Likewise. |
| (vld1q_u32_x2): Likewise. |
| (vld1q_s32_x2): Likewise. |
| (vld1q_u64_x2): Likewise. |
| (vld1q_s64_x2): Likewise. |
| (vld1q_f16_x2): Likewise. |
| (vld1q_f32_x2): Likewise. |
| (vld1q_f64_x2): Likewise. |
| (vld1q_p8_x2): Likewise. |
| (vld1q_p16_x2): Likewise. |
| (vld1q_p64_x2): Likewise. |
| (vld1_s8_x4): Likewise. |
| (vld1q_s8_x4): Likewise. |
| (vld1_s16_x4): Likewise. |
| (vld1q_s16_x4): Likewise. |
| (vld1_s32_x4): Likewise. |
| (vld1q_s32_x4): Likewise. |
| (vld1_u8_x4): Likewise. |
| (vld1q_u8_x4): Likewise. |
| (vld1_u16_x4): Likewise. |
| (vld1q_u16_x4): Likewise. |
| (vld1_u32_x4): Likewise. |
| (vld1q_u32_x4): Likewise. |
| (vld1_f16_x4): Likewise. |
| (vld1q_f16_x4): Likewise. |
| (vld1_f32_x4): Likewise. |
| (vld1q_f32_x4): Likewise. |
| (vld1_p8_x4): Likewise. |
| (vld1q_p8_x4): Likewise. |
| (vld1_p16_x4): Likewise. |
| (vld1q_p16_x4): Likewise. |
| (vld1_s64_x4): Likewise. |
| (vld1_u64_x4): Likewise. |
| (vld1_p64_x4): Likewise. |
| (vld1q_s64_x4): Likewise. |
| (vld1q_u64_x4): Likewise. |
| (vld1q_p64_x4): Likewise. |
| (vld1_f64_x4): Likewise. |
| (vld1q_f64_x4): Likewise. |
| (vld2_s64): Likewise. |
| (vld2_u64): Likewise. |
| (vld2_f64): Likewise. |
| (vld2_s8): Likewise. |
| (vld2_p8): Likewise. |
| (vld2_p64): Likewise. |
| (vld2_s16): Likewise. |
| (vld2_p16): Likewise. |
| (vld2_s32): Likewise. |
| (vld2_u8): Likewise. |
| (vld2_u16): Likewise. |
| (vld2_u32): Likewise. |
| (vld2_f16): Likewise. |
| (vld2_f32): Likewise. |
| (vld2q_s8): Likewise. |
| (vld2q_p8): Likewise. |
| (vld2q_s16): Likewise. |
| (vld2q_p16): Likewise. |
| (vld2q_p64): Likewise. |
| (vld2q_s32): Likewise. |
| (vld2q_s64): Likewise. |
| (vld2q_u8): Likewise. |
| (vld2q_u16): Likewise. |
| (vld2q_u32): Likewise. |
| (vld2q_u64): Likewise. |
| (vld2q_f16): Likewise. |
| (vld2q_f32): Likewise. |
| (vld2q_f64): Likewise. |
| (vld3_s64): Likewise. |
| (vld3_u64): Likewise. |
| (vld3_f64): Likewise. |
| (vld3_s8): Likewise. |
| (vld3_p8): Likewise. |
| (vld3_s16): Likewise. |
| (vld3_p16): Likewise. |
| (vld3_s32): Likewise. |
| (vld3_u8): Likewise. |
| (vld3_u16): Likewise. |
| (vld3_u32): Likewise. |
| (vld3_f16): Likewise. |
| (vld3_f32): Likewise. |
| (vld3_p64): Likewise. |
| (vld3q_s8): Likewise. |
| (vld3q_p8): Likewise. |
| (vld3q_s16): Likewise. |
| (vld3q_p16): Likewise. |
| (vld3q_s32): Likewise. |
| (vld3q_s64): Likewise. |
| (vld3q_u8): Likewise. |
| (vld3q_u16): Likewise. |
| (vld3q_u32): Likewise. |
| (vld3q_u64): Likewise. |
| (vld3q_f16): Likewise. |
| (vld3q_f32): Likewise. |
| (vld3q_f64): Likewise. |
| (vld3q_p64): Likewise. |
| (vld4_s64): Likewise. |
| (vld4_u64): Likewise. |
| (vld4_f64): Likewise. |
| (vld4_s8): Likewise. |
| (vld4_p8): Likewise. |
| (vld4_s16): Likewise. |
| (vld4_p16): Likewise. |
| (vld4_s32): Likewise. |
| (vld4_u8): Likewise. |
| (vld4_u16): Likewise. |
| (vld4_u32): Likewise. |
| (vld4_f16): Likewise. |
| (vld4_f32): Likewise. |
| (vld4_p64): Likewise. |
| (vld4q_s8): Likewise. |
| (vld4q_p8): Likewise. |
| (vld4q_s16): Likewise. |
| (vld4q_p16): Likewise. |
| (vld4q_s32): Likewise. |
| (vld4q_s64): Likewise. |
| (vld4q_u8): Likewise. |
| (vld4q_u16): Likewise. |
| (vld4q_u32): Likewise. |
| (vld4q_u64): Likewise. |
| (vld4q_f16): Likewise. |
| (vld4q_f32): Likewise. |
| (vld4q_f64): Likewise. |
| (vld4q_p64): Likewise. |
| (vld2_dup_s8): Likewise. |
| (vld2_dup_s16): Likewise. |
| (vld2_dup_s32): Likewise. |
| (vld2_dup_f16): Likewise. |
| (vld2_dup_f32): Likewise. |
| (vld2_dup_f64): Likewise. |
| (vld2_dup_u8): Likewise. |
| (vld2_dup_u16): Likewise. |
| (vld2_dup_u32): Likewise. |
| (vld2_dup_p8): Likewise. |
| (vld2_dup_p16): Likewise. |
| (vld2_dup_p64): Likewise. |
| (vld2_dup_s64): Likewise. |
| (vld2_dup_u64): Likewise. |
| (vld2q_dup_s8): Likewise. |
| (vld2q_dup_p8): Likewise. |
| (vld2q_dup_s16): Likewise. |
| (vld2q_dup_p16): Likewise. |
| (vld2q_dup_s32): Likewise. |
| (vld2q_dup_s64): Likewise. |
| (vld2q_dup_u8): Likewise. |
| (vld2q_dup_u16): Likewise. |
| (vld2q_dup_u32): Likewise. |
| (vld2q_dup_u64): Likewise. |
| (vld2q_dup_f16): Likewise. |
| (vld2q_dup_f32): Likewise. |
| (vld2q_dup_f64): Likewise. |
| (vld2q_dup_p64): Likewise. |
| (vld3_dup_s64): Likewise. |
| (vld3_dup_u64): Likewise. |
| (vld3_dup_f64): Likewise. |
| (vld3_dup_s8): Likewise. |
| (vld3_dup_p8): Likewise. |
| (vld3_dup_s16): Likewise. |
| (vld3_dup_p16): Likewise. |
| (vld3_dup_s32): Likewise. |
| (vld3_dup_u8): Likewise. |
| (vld3_dup_u16): Likewise. |
| (vld3_dup_u32): Likewise. |
| (vld3_dup_f16): Likewise. |
| (vld3_dup_f32): Likewise. |
| (vld3_dup_p64): Likewise. |
| (vld3q_dup_s8): Likewise. |
| (vld3q_dup_p8): Likewise. |
| (vld3q_dup_s16): Likewise. |
| (vld3q_dup_p16): Likewise. |
| (vld3q_dup_s32): Likewise. |
| (vld3q_dup_s64): Likewise. |
| (vld3q_dup_u8): Likewise. |
| (vld3q_dup_u16): Likewise. |
| (vld3q_dup_u32): Likewise. |
| (vld3q_dup_u64): Likewise. |
| (vld3q_dup_f16): Likewise. |
| (vld3q_dup_f32): Likewise. |
| (vld3q_dup_f64): Likewise. |
| (vld3q_dup_p64): Likewise. |
| (vld4_dup_s64): Likewise. |
| (vld4_dup_u64): Likewise. |
| (vld4_dup_f64): Likewise. |
| (vld4_dup_s8): Likewise. |
| (vld4_dup_p8): Likewise. |
| (vld4_dup_s16): Likewise. |
| (vld4_dup_p16): Likewise. |
| (vld4_dup_s32): Likewise. |
| (vld4_dup_u8): Likewise. |
| (vld4_dup_u16): Likewise. |
| (vld4_dup_u32): Likewise. |
| (vld4_dup_f16): Likewise. |
| (vld4_dup_f32): Likewise. |
| (vld4_dup_p64): Likewise. |
| (vld4q_dup_s8): Likewise. |
| (vld4q_dup_p8): Likewise. |
| (vld4q_dup_s16): Likewise. |
| (vld4q_dup_p16): Likewise. |
| (vld4q_dup_s32): Likewise. |
| (vld4q_dup_s64): Likewise. |
| (vld4q_dup_u8): Likewise. |
| (vld4q_dup_u16): Likewise. |
| (vld4q_dup_u32): Likewise. |
| (vld4q_dup_u64): Likewise. |
| (vld4q_dup_f16): Likewise. |
| (vld4q_dup_f32): Likewise. |
| (vld4q_dup_f64): Likewise. |
| (vld4q_dup_p64): Likewise. |
| (vld2_lane_u8): Likewise. |
| (vld2_lane_u16): Likewise. |
| (vld2_lane_u32): Likewise. |
| (vld2_lane_u64): Likewise. |
| (vld2_lane_s8): Likewise. |
| (vld2_lane_s16): Likewise. |
| (vld2_lane_s32): Likewise. |
| (vld2_lane_s64): Likewise. |
| (vld2_lane_f16): Likewise. |
| (vld2_lane_f32): Likewise. |
| (vld2_lane_f64): Likewise. |
| (vld2_lane_p8): Likewise. |
| (vld2_lane_p16): Likewise. |
| (vld2_lane_p64): Likewise. |
| (vld2q_lane_u8): Likewise. |
| (vld2q_lane_u16): Likewise. |
| (vld2q_lane_u32): Likewise. |
| (vld2q_lane_u64): Likewise. |
| (vld2q_lane_s8): Likewise. |
| (vld2q_lane_s16): Likewise. |
| (vld2q_lane_s32): Likewise. |
| (vld2q_lane_s64): Likewise. |
| (vld2q_lane_f16): Likewise. |
| (vld2q_lane_f32): Likewise. |
| (vld2q_lane_f64): Likewise. |
| (vld2q_lane_p8): Likewise. |
| (vld2q_lane_p16): Likewise. |
| (vld2q_lane_p64): Likewise. |
| (vld3_lane_u8): Likewise. |
| (vld3_lane_u16): Likewise. |
| (vld3_lane_u32): Likewise. |
| (vld3_lane_u64): Likewise. |
| (vld3_lane_s8): Likewise. |
| (vld3_lane_s16): Likewise. |
| (vld3_lane_s32): Likewise. |
| (vld3_lane_s64): Likewise. |
| (vld3_lane_f16): Likewise. |
| (vld3_lane_f32): Likewise. |
| (vld3_lane_f64): Likewise. |
| (vld3_lane_p8): Likewise. |
| (vld3_lane_p16): Likewise. |
| (vld3_lane_p64): Likewise. |
| (vld3q_lane_u8): Likewise. |
| (vld3q_lane_u16): Likewise. |
| (vld3q_lane_u32): Likewise. |
| (vld3q_lane_u64): Likewise. |
| (vld3q_lane_s8): Likewise. |
| (vld3q_lane_s16): Likewise. |
| (vld3q_lane_s32): Likewise. |
| (vld3q_lane_s64): Likewise. |
| (vld3q_lane_f16): Likewise. |
| (vld3q_lane_f32): Likewise. |
| (vld3q_lane_f64): Likewise. |
| (vld3q_lane_p8): Likewise. |
| (vld3q_lane_p16): Likewise. |
| (vld3q_lane_p64): Likewise. |
| (vld4_lane_u8): Likewise. |
| (vld4_lane_u16): Likewise. |
| (vld4_lane_u32): Likewise. |
| (vld4_lane_u64): Likewise. |
| (vld4_lane_s8): Likewise. |
| (vld4_lane_s16): Likewise. |
| (vld4_lane_s32): Likewise. |
| (vld4_lane_s64): Likewise. |
| (vld4_lane_f16): Likewise. |
| (vld4_lane_f32): Likewise. |
| (vld4_lane_f64): Likewise. |
| (vld4_lane_p8): Likewise. |
| (vld4_lane_p16): Likewise. |
| (vld4_lane_p64): Likewise. |
| (vld4q_lane_u8): Likewise. |
| (vld4q_lane_u16): Likewise. |
| (vld4q_lane_u32): Likewise. |
| (vld4q_lane_u64): Likewise. |
| (vld4q_lane_s8): Likewise. |
| (vld4q_lane_s16): Likewise. |
| (vld4q_lane_s32): Likewise. |
| (vld4q_lane_s64): Likewise. |
| (vld4q_lane_f16): Likewise. |
| (vld4q_lane_f32): Likewise. |
| (vld4q_lane_f64): Likewise. |
| (vld4q_lane_p8): Likewise. |
| (vld4q_lane_p16): Likewise. |
| (vld4q_lane_p64): Likewise. |
| (vqtbl2_s8): Likewise. |
| (vqtbl2_u8): Likewise. |
| (vqtbl2_p8): Likewise. |
| (vqtbl2q_s8): Likewise. |
| (vqtbl2q_u8): Likewise. |
| (vqtbl2q_p8): Likewise. |
| (vqtbl3_s8): Likewise. |
| (vqtbl3_u8): Likewise. |
| (vqtbl3_p8): Likewise. |
| (vqtbl3q_s8): Likewise. |
| (vqtbl3q_u8): Likewise. |
| (vqtbl3q_p8): Likewise. |
| (vqtbl4_s8): Likewise. |
| (vqtbl4_u8): Likewise. |
| (vqtbl4_p8): Likewise. |
| (vqtbl4q_s8): Likewise. |
| (vqtbl4q_u8): Likewise. |
| (vqtbl4q_p8): Likewise. |
| (vqtbx2_s8): Likewise. |
| (vqtbx2_u8): Likewise. |
| (vqtbx2_p8): Likewise. |
| (vqtbx2q_s8): Likewise. |
| (vqtbx2q_u8): Likewise. |
| (vqtbx2q_p8): Likewise. |
| (vqtbx3_s8): Likewise. |
| (vqtbx3_u8): Likewise. |
| (vqtbx3_p8): Likewise. |
| (vqtbx3q_s8): Likewise. |
| (vqtbx3q_u8): Likewise. |
| (vqtbx3q_p8): Likewise. |
| (vqtbx4_s8): Likewise. |
| (vqtbx4_u8): Likewise. |
| (vqtbx4_p8): Likewise. |
| (vqtbx4q_s8): Likewise. |
| (vqtbx4q_u8): Likewise. |
| (vqtbx4q_p8): Likewise. |
| (vst1_s64_x2): Likewise. |
| (vst1_u64_x2): Likewise. |
| (vst1_f64_x2): Likewise. |
| (vst1_s8_x2): Likewise. |
| (vst1_p8_x2): Likewise. |
| (vst1_s16_x2): Likewise. |
| (vst1_p16_x2): Likewise. |
| (vst1_s32_x2): Likewise. |
| (vst1_u8_x2): Likewise. |
| (vst1_u16_x2): Likewise. |
| (vst1_u32_x2): Likewise. |
| (vst1_f16_x2): Likewise. |
| (vst1_f32_x2): Likewise. |
| (vst1_p64_x2): Likewise. |
| (vst1q_s8_x2): Likewise. |
| (vst1q_p8_x2): Likewise. |
| (vst1q_s16_x2): Likewise. |
| (vst1q_p16_x2): Likewise. |
| (vst1q_s32_x2): Likewise. |
| (vst1q_s64_x2): Likewise. |
| (vst1q_u8_x2): Likewise. |
| (vst1q_u16_x2): Likewise. |
| (vst1q_u32_x2): Likewise. |
| (vst1q_u64_x2): Likewise. |
| (vst1q_f16_x2): Likewise. |
| (vst1q_f32_x2): Likewise. |
| (vst1q_f64_x2): Likewise. |
| (vst1q_p64_x2): Likewise. |
| (vst1_s64_x3): Likewise. |
| (vst1_u64_x3): Likewise. |
| (vst1_f64_x3): Likewise. |
| (vst1_s8_x3): Likewise. |
| (vst1_p8_x3): Likewise. |
| (vst1_s16_x3): Likewise. |
| (vst1_p16_x3): Likewise. |
| (vst1_s32_x3): Likewise. |
| (vst1_u8_x3): Likewise. |
| (vst1_u16_x3): Likewise. |
| (vst1_u32_x3): Likewise. |
| (vst1_f16_x3): Likewise. |
| (vst1_f32_x3): Likewise. |
| (vst1_p64_x3): Likewise. |
| (vst1q_s8_x3): Likewise. |
| (vst1q_p8_x3): Likewise. |
| (vst1q_s16_x3): Likewise. |
| (vst1q_p16_x3): Likewise. |
| (vst1q_s32_x3): Likewise. |
| (vst1q_s64_x3): Likewise. |
| (vst1q_u8_x3): Likewise. |
| (vst1q_u16_x3): Likewise. |
| (vst1q_u32_x3): Likewise. |
| (vst1q_u64_x3): Likewise. |
| (vst1q_f16_x3): Likewise. |
| (vst1q_f32_x3): Likewise. |
| (vst1q_f64_x3): Likewise. |
| (vst1q_p64_x3): Likewise. |
| (vst1_s8_x4): Likewise. |
| (vst1q_s8_x4): Likewise. |
| (vst1_s16_x4): Likewise. |
| (vst1q_s16_x4): Likewise. |
| (vst1_s32_x4): Likewise. |
| (vst1q_s32_x4): Likewise. |
| (vst1_u8_x4): Likewise. |
| (vst1q_u8_x4): Likewise. |
| (vst1_u16_x4): Likewise. |
| (vst1q_u16_x4): Likewise. |
| (vst1_u32_x4): Likewise. |
| (vst1q_u32_x4): Likewise. |
| (vst1_f16_x4): Likewise. |
| (vst1q_f16_x4): Likewise. |
| (vst1_f32_x4): Likewise. |
| (vst1q_f32_x4): Likewise. |
| (vst1_p8_x4): Likewise. |
| (vst1q_p8_x4): Likewise. |
| (vst1_p16_x4): Likewise. |
| (vst1q_p16_x4): Likewise. |
| (vst1_s64_x4): Likewise. |
| (vst1_u64_x4): Likewise. |
| (vst1_p64_x4): Likewise. |
| (vst1q_s64_x4): Likewise. |
| (vst1q_u64_x4): Likewise. |
| (vst1q_p64_x4): Likewise. |
| (vst1_f64_x4): Likewise. |
| (vst1q_f64_x4): Likewise. |
| (vst2_s64): Likewise. |
| (vst2_u64): Likewise. |
| (vst2_f64): Likewise. |
| (vst2_s8): Likewise. |
| (vst2_p8): Likewise. |
| (vst2_s16): Likewise. |
| (vst2_p16): Likewise. |
| (vst2_s32): Likewise. |
| (vst2_u8): Likewise. |
| (vst2_u16): Likewise. |
| (vst2_u32): Likewise. |
| (vst2_f16): Likewise. |
| (vst2_f32): Likewise. |
| (vst2_p64): Likewise. |
| (vst2q_s8): Likewise. |
| (vst2q_p8): Likewise. |
| (vst2q_s16): Likewise. |
| (vst2q_p16): Likewise. |
| (vst2q_s32): Likewise. |
| (vst2q_s64): Likewise. |
| (vst2q_u8): Likewise. |
| (vst2q_u16): Likewise. |
| (vst2q_u32): Likewise. |
| (vst2q_u64): Likewise. |
| (vst2q_f16): Likewise. |
| (vst2q_f32): Likewise. |
| (vst2q_f64): Likewise. |
| (vst2q_p64): Likewise. |
| (vst3_s64): Likewise. |
| (vst3_u64): Likewise. |
| (vst3_f64): Likewise. |
| (vst3_s8): Likewise. |
| (vst3_p8): Likewise. |
| (vst3_s16): Likewise. |
| (vst3_p16): Likewise. |
| (vst3_s32): Likewise. |
| (vst3_u8): Likewise. |
| (vst3_u16): Likewise. |
| (vst3_u32): Likewise. |
| (vst3_f16): Likewise. |
| (vst3_f32): Likewise. |
| (vst3_p64): Likewise. |
| (vst3q_s8): Likewise. |
| (vst3q_p8): Likewise. |
| (vst3q_s16): Likewise. |
| (vst3q_p16): Likewise. |
| (vst3q_s32): Likewise. |
| (vst3q_s64): Likewise. |
| (vst3q_u8): Likewise. |
| (vst3q_u16): Likewise. |
| (vst3q_u32): Likewise. |
| (vst3q_u64): Likewise. |
| (vst3q_f16): Likewise. |
| (vst3q_f32): Likewise. |
| (vst3q_f64): Likewise. |
| (vst3q_p64): Likewise. |
| (vst4_s64): Likewise. |
| (vst4_u64): Likewise. |
| (vst4_f64): Likewise. |
| (vst4_s8): Likewise. |
| (vst4_p8): Likewise. |
| (vst4_s16): Likewise. |
| (vst4_p16): Likewise. |
| (vst4_s32): Likewise. |
| (vst4_u8): Likewise. |
| (vst4_u16): Likewise. |
| (vst4_u32): Likewise. |
| (vst4_f16): Likewise. |
| (vst4_f32): Likewise. |
| (vst4_p64): Likewise. |
| (vst4q_s8): Likewise. |
| (vst4q_p8): Likewise. |
| (vst4q_s16): Likewise. |
| (vst4q_p16): Likewise. |
| (vst4q_s32): Likewise. |
| (vst4q_s64): Likewise. |
| (vst4q_u8): Likewise. |
| (vst4q_u16): Likewise. |
| (vst4q_u32): Likewise. |
| (vst4q_u64): Likewise. |
| (vst4q_f16): Likewise. |
| (vst4q_f32): Likewise. |
| (vst4q_f64): Likewise. |
| (vst4q_p64): Likewise. |
| (vtbx4_s8): Likewise. |
| (vtbx4_u8): Likewise. |
| (vtbx4_p8): Likewise. |
| (vld1_bf16_x2): Likewise. |
| (vld1q_bf16_x2): Likewise. |
| (vld1_bf16_x3): Likewise. |
| (vld1q_bf16_x3): Likewise. |
| (vld1_bf16_x4): Likewise. |
| (vld1q_bf16_x4): Likewise. |
| (vld2_bf16): Likewise. |
| (vld2q_bf16): Likewise. |
| (vld2_dup_bf16): Likewise. |
| (vld2q_dup_bf16): Likewise. |
| (vld3_bf16): Likewise. |
| (vld3q_bf16): Likewise. |
| (vld3_dup_bf16): Likewise. |
| (vld3q_dup_bf16): Likewise. |
| (vld4_bf16): Likewise. |
| (vld4q_bf16): Likewise. |
| (vld4_dup_bf16): Likewise. |
| (vld4q_dup_bf16): Likewise. |
| (vst1_bf16_x2): Likewise. |
| (vst1q_bf16_x2): Likewise. |
| (vst1_bf16_x3): Likewise. |
| (vst1q_bf16_x3): Likewise. |
| (vst1_bf16_x4): Likewise. |
| (vst1q_bf16_x4): Likewise. |
| (vst2_bf16): Likewise. |
| (vst2q_bf16): Likewise. |
| (vst3_bf16): Likewise. |
| (vst3q_bf16): Likewise. |
| (vst4_bf16): Likewise. |
| (vst4q_bf16): Likewise. |
| (vld2_lane_bf16): Likewise. |
| (vld2q_lane_bf16): Likewise. |
| (vld3_lane_bf16): Likewise. |
| (vld3q_lane_bf16): Likewise. |
| (vld4_lane_bf16): Likewise. |
| (vld4q_lane_bf16): Likewise. |
| (vst2_lane_bf16): Likewise. |
| (vst2q_lane_bf16): Likewise. |
| (vst3_lane_bf16): Likewise. |
| (vst3q_lane_bf16): Likewise. |
| (vst4_lane_bf16): Likewise. |
| (vst4q_lane_bf16): Likewise. |
| * config/aarch64/geniterators.sh: Modify iterator regex to |
| match new vector-tuple modes. |
| * config/aarch64/iterators.md (insn_count): Extend mode |
| attribute with vector-tuple type information. |
| (nregs): Likewise. |
| (Vendreg): Likewise. |
| (Vetype): Likewise. |
| (Vtype): Likewise. |
| (VSTRUCT_2D): New mode iterator. |
| (VSTRUCT_2DNX): Likewise. |
| (VSTRUCT_2DX): Likewise. |
| (VSTRUCT_2Q): Likewise. |
| (VSTRUCT_2QD): Likewise. |
| (VSTRUCT_3D): Likewise. |
| (VSTRUCT_3DNX): Likewise. |
| (VSTRUCT_3DX): Likewise. |
| (VSTRUCT_3Q): Likewise. |
| (VSTRUCT_3QD): Likewise. |
| (VSTRUCT_4D): Likewise. |
| (VSTRUCT_4DNX): Likewise. |
| (VSTRUCT_4DX): Likewise. |
| (VSTRUCT_4Q): Likewise. |
| (VSTRUCT_4QD): Likewise. |
| (VSTRUCT_D): Likewise. |
| (VSTRUCT_Q): Likewise. |
| (VSTRUCT_QD): Likewise. |
| (VSTRUCT_ELT): New mode attribute. |
| (vstruct_elt): Likewise. |
| * genmodes.c (VECTOR_MODE): Add default prefix and order |
| parameters. |
| (VECTOR_MODE_WITH_PREFIX): Define. |
| (make_vector_mode): Add mode prefix and order parameters. |
| |
| 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * expmed.c (extract_bit_field_1): Ensure modes are tieable. |
| |
| 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * expr.c (emit_group_load_1): Remove historic workaround. |
| |
| 2021-11-04 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): |
| Factor out main loop to... |
| (aarch64_init_simd_builtin_functions): This new function. |
| (register_tuple_type): Define. |
| (aarch64_scalar_builtin_type_p): Define. |
| (handle_arm_neon_h): Define. |
| * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): Handle |
| pragma for arm_neon.h. |
| * config/aarch64/aarch64-protos.h (aarch64_advsimd_struct_mode_p): |
| Declare. |
| (handle_arm_neon_h): Likewise. |
| * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): |
| Remove static modifier. |
| * config/aarch64/arm_neon.h (target): Remove Neon vector |
| structure type definitions. |
| |
| 2021-11-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102943 |
| * gimple-range-path.cc (path_range_query::range_on_path_entry): |
| Prefer range_of_expr unless there are no statements in the BB. |
| |
| 2021-11-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102943 |
| * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): |
| Avoid duplicate calculation of paths. |
| |
| 2021-11-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102943 |
| * gimple-range-path.cc (path_range_query::compute_phi_relations): |
| Only compute relations for SSA names in the import list. |
| (path_range_query::compute_outgoing_relations): Same. |
| * gimple-range-path.h (path_range_query::import_p): New. |
| |
| 2021-11-04 Richard Biener <rguenther@suse.de> |
| |
| PR rtl-optimization/103075 |
| * simplify-rtx.c (exact_int_to_float_conversion_p): Return |
| false for a VOIDmode operand. |
| |
| 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_vector_costs): Make member |
| variables private and add "m_" to their names. Remove is_loop. |
| (aarch64_record_potential_advsimd_unrolling): Replace with... |
| (aarch64_vector_costs::record_potential_advsimd_unrolling): ...this. |
| (aarch64_analyze_loop_vinfo): Replace with... |
| (aarch64_vector_costs::analyze_loop_vinfo): ...this. |
| Move initialization of (m_)vec_flags to add_stmt_cost. |
| (aarch64_analyze_bb_vinfo): Delete. |
| (aarch64_count_ops): Replace with... |
| (aarch64_vector_costs::count_ops): ...this. |
| (aarch64_vector_costs::add_stmt_cost): Set m_vec_flags, |
| using m_costing_for_scalar to test whether we're costing |
| scalar or vector code. |
| (aarch64_adjust_body_cost_sve): Replace with... |
| (aarch64_vector_costs::adjust_body_cost_sve): ...this. |
| (aarch64_adjust_body_cost): Replace with... |
| (aarch64_vector_costs::adjust_body_cost): ...this. |
| (aarch64_vector_costs::finish_cost): Use m_vinfo instead of is_loop. |
| |
| 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * target.def (targetm.vectorize.init_cost): Replace with... |
| (targetm.vectorize.create_costs): ...this. |
| (targetm.vectorize.add_stmt_cost): Delete. |
| (targetm.vectorize.finish_cost): Likewise. |
| (targetm.vectorize.destroy_cost_data): Likewise. |
| * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): Replace with... |
| (TARGET_VECTORIZE_CREATE_COSTS): ...this. |
| (TARGET_VECTORIZE_ADD_STMT_COST): Delete. |
| (TARGET_VECTORIZE_FINISH_COST): Likewise. |
| (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. |
| * doc/tm.texi: Regenerate. |
| * tree-vectorizer.h (vec_info::vec_info): Remove target_cost_data |
| parameter. |
| (vec_info::target_cost_data): Change from a void * to a vector_costs *. |
| (vector_costs): New class. |
| (init_cost): Take a vec_info and return a vector_costs. |
| (dump_stmt_cost): Remove data parameter. |
| (add_stmt_cost): Replace vinfo and data parameters with a vector_costs. |
| (add_stmt_costs): Likewise. |
| (finish_cost): Replace data parameter with a vector_costs. |
| (destroy_cost_data): Delete. |
| * tree-vectorizer.c (dump_stmt_cost): Remove data argument and |
| don't print it. |
| (vec_info::vec_info): Remove the target_cost_data parameter and |
| initialize the member variable to null instead. |
| (vec_info::~vec_info): Delete target_cost_data instead of calling |
| destroy_cost_data. |
| (vector_costs::add_stmt_cost): New function. |
| (vector_costs::finish_cost): Likewise. |
| (vector_costs::record_stmt_cost): Likewise. |
| (vector_costs::adjust_cost_for_freq): Likewise. |
| * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update |
| call to vec_info::vec_info. |
| (vect_compute_single_scalar_iteration_cost): Update after above |
| changes to costing interface. |
| (vect_analyze_loop_operations): Likewise. |
| (vect_estimate_min_profitable_iters): Likewise. |
| (vect_analyze_loop_2): Initialize LOOP_VINFO_TARGET_COST_DATA |
| at the start_over point, where it needs to be recreated after |
| trying without slp. Update retry code accordingly. |
| * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Update call |
| to vec_info::vec_info. |
| (vect_slp_analyze_operation): Update after above changes to costing |
| interface. |
| (vect_bb_vectorization_profitable_p): Likewise. |
| * targhooks.h (default_init_cost): Replace with... |
| (default_vectorize_create_costs): ...this. |
| (default_add_stmt_cost): Delete. |
| (default_finish_cost, default_destroy_cost_data): Likewise. |
| * targhooks.c (default_init_cost): Replace with... |
| (default_vectorize_create_costs): ...this. |
| (default_add_stmt_cost): Delete, moving logic to vector_costs instead. |
| (default_finish_cost, default_destroy_cost_data): Delete. |
| * config/aarch64/aarch64.c (aarch64_vector_costs): Inherit from |
| vector_costs. Add a constructor. |
| (aarch64_init_cost): Replace with... |
| (aarch64_vectorize_create_costs): ...this. |
| (aarch64_add_stmt_cost): Replace with... |
| (aarch64_vector_costs::add_stmt_cost): ...this. Use record_stmt_cost |
| to adjust the cost for inner loops. |
| (aarch64_finish_cost): Replace with... |
| (aarch64_vector_costs::finish_cost): ...this. |
| (aarch64_destroy_cost_data): Delete. |
| (TARGET_VECTORIZE_INIT_COST): Replace with... |
| (TARGET_VECTORIZE_CREATE_COSTS): ...this. |
| (TARGET_VECTORIZE_ADD_STMT_COST): Delete. |
| (TARGET_VECTORIZE_FINISH_COST): Likewise. |
| (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. |
| * config/i386/i386.c (ix86_vector_costs): New structure. |
| (ix86_init_cost): Replace with... |
| (ix86_vectorize_create_costs): ...this. |
| (ix86_add_stmt_cost): Replace with... |
| (ix86_vector_costs::add_stmt_cost): ...this. Use adjust_cost_for_freq |
| to adjust the cost for inner loops. |
| (ix86_finish_cost, ix86_destroy_cost_data): Delete. |
| (TARGET_VECTORIZE_INIT_COST): Replace with... |
| (TARGET_VECTORIZE_CREATE_COSTS): ...this. |
| (TARGET_VECTORIZE_ADD_STMT_COST): Delete. |
| (TARGET_VECTORIZE_FINISH_COST): Likewise. |
| (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. |
| * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): Replace with... |
| (TARGET_VECTORIZE_CREATE_COSTS): ...this. |
| (TARGET_VECTORIZE_ADD_STMT_COST): Delete. |
| (TARGET_VECTORIZE_FINISH_COST): Likewise. |
| (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. |
| (rs6000_cost_data): Inherit from vector_costs. |
| Add a constructor. Drop loop_info, cost and costing_for_scalar |
| in favor of the corresponding vector_costs member variables. |
| Add "m_" to the names of the remaining member variables and |
| initialize them. |
| (rs6000_density_test): Replace with... |
| (rs6000_cost_data::density_test): ...this. |
| (rs6000_init_cost): Replace with... |
| (rs6000_vectorize_create_costs): ...this. |
| (rs6000_update_target_cost_per_stmt): Replace with... |
| (rs6000_cost_data::update_target_cost_per_stmt): ...this. |
| (rs6000_add_stmt_cost): Replace with... |
| (rs6000_cost_data::add_stmt_cost): ...this. Use adjust_cost_for_freq |
| to adjust the cost for inner loops. |
| (rs6000_adjust_vect_cost_per_loop): Replace with... |
| (rs6000_cost_data::adjust_vect_cost_per_loop): ...this. |
| (rs6000_finish_cost): Replace with... |
| (rs6000_cost_data::finish_cost): ...this. Group loop code |
| into a single if statement and pass the loop_vinfo down to |
| subroutines. |
| (rs6000_destroy_cost_data): Delete. |
| |
| 2021-11-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/103062 |
| PR tree-optimization/103062 |
| * value-pointer-equiv.cc (ssa_equiv_stack::ssa_equiv_stack): |
| Increase size of allocation by 1. |
| (ssa_equiv_stack::push_replacement): Grow as needed. |
| (ssa_equiv_stack::get_replacement): Same. |
| (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::~pointer_equiv_analyzer): Remove delete. |
| (pointer_equiv_analyzer::set_global_equiv): Grow as needed. |
| (pointer_equiv_analyzer::get_equiv): Same. |
| (pointer_equiv_analyzer::get_equiv_expr): Remove const. |
| * value-pointer-equiv.h (class pointer_equiv_analyzer): Remove |
| const markers. Use auto_vec instead of tree *. |
| |
| 2021-11-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_nary_op_insert_into): Remove always |
| true parameter and inline valueization. |
| (vn_nary_op_lookup_1): Inline valueization from ... |
| (vn_nary_op_compute_hash): ... here and remove it here. |
| * tree-ssa-pre.c (phi_translate_1): Do not valueize |
| before vn_nary_lookup_pieces. |
| (get_representative_for): Mark created SSA representatives |
| as visited. |
| |
| 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * simplify-rtx.c (simplify_context::simplify_gen_vec_select): Assert |
| that the operand has a vector mode. Use subreg_lowpart_offset |
| to test whether an index corresponds to the low part. |
| |
| 2021-11-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * read-rtl.c: Remove dead !GENERATOR_FILE block. |
| * read-rtl-function.c (function_reader::consolidate_singletons): |
| Generate canonical CONST_VECTORs. |
| |
| 2021-11-04 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101989 |
| * config/i386/predicates.md (reg_or_notreg_operand): Rename to .. |
| (regmem_or_bitnot_regmem_operand): .. and extend to handle |
| memory_operand. |
| * config/i386/sse.md (*<avx512>_vpternlog<mode>_1): Force_reg |
| the operands which are required to be register_operand. |
| (*<avx512>_vpternlog<mode>_2): Ditto. |
| (*<avx512>_vpternlog<mode>_3): Ditto. |
| (*<avx512>_vternlog<mode>_all): Disallow embeded broadcast for |
| vector HFmodes since it's not a real AVX512FP16 instruction. |
| |
| 2021-11-04 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102464 |
| * match.pd: simplify (trunc)copysign((extend)a, (extend)b) to |
| .COPYSIGN (a,b) when a and b are same type as the truncation |
| type and has less precision than extend type. |
| |
| 2021-11-04 Richard Biener <rguenther@suse.de> |
| |
| * doc/generic.texi: Update TARGET_MEM_REF and MEM_REF |
| documentation. |
| |
| 2021-11-04 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (VI2_AVX512VNNIBW): New mode iterator. |
| (VI1_AVX512VNNI): Likewise. |
| (SDOT_VPDP_SUF): New mode_attr. |
| (VI1SI): Likewise. |
| (vi1si): Likewise. |
| (sdot_prod<mode>): Use VI2_AVX512F iterator, expand to |
| vpdpwssd when VNNI targets available. |
| (usdot_prod<mode>): New expander for vector QImode. |
| |
| 2021-11-04 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/amxtileintrin.h (_tile_loadd_internal): Add |
| parentheses to base and stride. |
| (_tile_stream_loadd_internal): Likewise. |
| (_tile_stored_internal): Likewise. |
| |
| 2021-11-03 Maciej W. Rozycki <macro@embecosm.com> |
| |
| * config/riscv/riscv.c (riscv_class_max_nregs): Swap the |
| arguments to `reg_class_subset_p'. |
| |
| 2021-11-03 Joseph Myers <joseph@codesourcery.com> |
| |
| PR c/103031 |
| * fold-const.c (fold_init): New function. |
| * fold-const.h (fold_init): New prototype. |
| |
| 2021-11-03 Andrew MacLeod <amacleod@redhat.com> |
| |
| * params.opt (param_vrp2_mode): Make ranger the default for VRP2. |
| |
| 2021-11-03 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Don't import |
| a range from edge if arg == phidef. |
| |
| 2021-11-03 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Test |
| for constant before any other processing. |
| |
| 2021-11-03 Andrew MacLeod <amacleod@redhat.com> |
| |
| * flag-types.h (RANGER_DEBUG_ALL): Fix values. |
| |
| 2021-11-03 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Initialize current_bb. |
| (gimple_ranger::range_of_expr): Pick up range_on_entry when there is |
| no explcit context and current_bb is set. |
| (gimple_ranger::fold_stmt): New. |
| * gimple-range.h (current_bb, fold_stmt): New. |
| * tree-vrp.c (rvrp_folder::fold_stmt): Call ranger's fold_stmt. |
| |
| 2021-11-03 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102970 |
| * tree-ssa-pre.c (phi_translate_1): Drop clique and base |
| when translating a MEM_REF over a backedge. |
| |
| 2021-11-03 Philipp Tomsich <philipp.tomsich@vrull.eu> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New Ampere-1 core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * config/aarch64/aarch64-cost-tables.h: Add extra costs for Ampere-1. |
| * config/aarch64/aarch64.c: Add tuning structures for Ampere-1. |
| * doc/invoke.texi: Add documentation for Ampere-1 core. |
| |
| 2021-11-03 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.md (movsi): Add alternative for GOT accesses. |
| (movdi): Likewise. |
| (ldr_got_small_<mode>): Remove pattern. |
| (ldr_got_small_sidi): Likewise. |
| * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Keep |
| GOT accesses as moves. |
| (aarch64_print_operand): Correctly print got_lo12 in L specifier. |
| (aarch64_mov_operand_p): Make GOT accesses valid move operands. |
| * config/aarch64/constraints.md: Add new constraint Usw for GOT access. |
| |
| 2021-11-03 Martin Liska <mliska@suse.cz> |
| |
| * gcov.c (read_line): Remove dead variable. |
| |
| 2021-11-03 Martin Liska <mliska@suse.cz> |
| |
| PR bootstrap/102828 |
| * ipa-fnsummary.c (edge_predicate_pool): Rename predicate class to ipa_predicate. |
| (ipa_fn_summary::account_size_time): Likewise. |
| (edge_set_predicate): Likewise. |
| (set_hint_predicate): Likewise. |
| (add_freqcounting_predicate): Likewise. |
| (evaluate_conditions_for_known_args): Likewise. |
| (evaluate_properties_for_edge): Likewise. |
| (remap_freqcounting_preds_after_dup): Likewise. |
| (ipa_fn_summary_t::duplicate): Likewise. |
| (set_cond_stmt_execution_predicate): Likewise. |
| (set_switch_stmt_execution_predicate): Likewise. |
| (compute_bb_predicates): Likewise. |
| (will_be_nonconstant_expr_predicate): Likewise. |
| (will_be_nonconstant_predicate): Likewise. |
| (phi_result_unknown_predicate): Likewise. |
| (predicate_for_phi_result): Likewise. |
| (analyze_function_body): Likewise. |
| (compute_fn_summary): Likewise. |
| (summarize_calls_size_and_time): Likewise. |
| (estimate_calls_size_and_time): Likewise. |
| (ipa_call_context::estimate_size_and_time): Likewise. |
| (remap_edge_summaries): Likewise. |
| (remap_freqcounting_predicate): Likewise. |
| (ipa_merge_fn_summary_after_inlining): Likewise. |
| (ipa_update_overall_fn_summary): Likewise. |
| (read_ipa_call_summary): Likewise. |
| (inline_read_section): Likewise. |
| * ipa-fnsummary.h (struct ipa_freqcounting_predicate): Likewise. |
| * ipa-predicate.c (predicate::add_clause): Likewise. |
| (ipa_predicate::add_clause): Likewise. |
| (predicate::or_with): Likewise. |
| (ipa_predicate::or_with): Likewise. |
| (predicate::evaluate): Likewise. |
| (ipa_predicate::evaluate): Likewise. |
| (predicate::probability): Likewise. |
| (ipa_predicate::probability): Likewise. |
| (dump_condition): Likewise. |
| (dump_clause): Likewise. |
| (predicate::dump): Likewise. |
| (ipa_predicate::dump): Likewise. |
| (predicate::debug): Likewise. |
| (ipa_predicate::debug): Likewise. |
| (predicate::remap_after_duplication): Likewise. |
| (ipa_predicate::remap_after_duplication): Likewise. |
| (predicate::remap_after_inlining): Likewise. |
| (ipa_predicate::remap_after_inlining): Likewise. |
| (predicate::stream_in): Likewise. |
| (ipa_predicate::stream_in): Likewise. |
| (predicate::stream_out): Likewise. |
| (ipa_predicate::stream_out): Likewise. |
| (add_condition): Likewise. |
| * ipa-predicate.h (class predicate): Likewise. |
| (class ipa_predicate): Likewise. |
| (add_condition): Likewise. |
| |
| 2021-11-03 Richard Biener <rguenther@suse.de> |
| |
| * bitmap.h (bitmap_bit_p): Change the return type to bool. |
| * bitmap.c (bitmap_bit_p): Likewise. |
| * sbitmap.h (bitmap_bit_p): Likewise. |
| (bitmap_set_bit): Return whether the bit changed. |
| (bitmap_clear_bit): Likewise. |
| * tree-ssa.c (verify_vssa): Make use of the changed state |
| from bitmap_set_bit. |
| |
| 2021-11-03 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/103033 |
| * internal-fn.c (expand_DEFERRED_INIT): Elide the |
| native_interpret_expr path in favor of folding the |
| VIEW_CONVERT_EXPR generated when punning the RHS. |
| |
| 2021-11-03 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * config/s390/s390.c (s390_loop_unroll_adjust): In case of early |
| exit free bbs. |
| |
| 2021-11-03 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/103040 |
| * ipa-modref.c (callee_to_caller_flags): New function. |
| (modref_eaf_analysis::analyze_ssa_name): Use it. |
| (ipa_merge_modref_summary_after_inlining): Fix whitespace. |
| |
| 2021-11-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Revert |
| accidental commit. |
| |
| 2021-11-02 Roger Sayle <roger@nextmovesoftware.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (<any_rotate>ti3): Provide expansion for |
| rotations by non-constant amounts. |
| |
| 2021-11-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c: Fix anonymous namespace placement. |
| (class modref_eaf_analysis): New class. |
| (analyze_ssa_name_flags): Turn to ... |
| (modref_eaf_analysis::analyze_ssa_name): ... this one. |
| (merge_call_lhs_flags): Turn to ... |
| (modref_eaf_analysis::merge_call_lhs_flags): .. this one |
| (modref_eaf_analysis::merge_with_ssa_name): New member function. |
| (record_escape_points): Turn to ... |
| (modref_eaf_analysis::record_escape_points): ... this one. |
| (analyze_parms): Updat |
| (ipa_merge_modref_summary_after_inlining): Move to the end of file. |
| |
| 2021-11-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * gimple.c (gimple_call_static_chain_flags): New function. |
| * gimple.h (gimple_call_static_chain_flags): Declare |
| * ipa-modref.c (modref_summary::modref_summary): Initialize |
| static_chain_flags. |
| (modref_summary_lto::modref_summary_lto): Likewise. |
| (modref_summary::useful_p): Test static_chain_flags. |
| (modref_summary_lto::useful_p): Likewise. |
| (struct modref_summary_lto): Add static_chain_flags. |
| (modref_summary::dump): Dump static_chain_flags. |
| (modref_summary_lto::dump): Likewise. |
| (struct escape_point): Add static_cahin_arg. |
| (analyze_ssa_name_flags): Use gimple_call_static_chain_flags. |
| (analyze_parms): Handle static chains. |
| (modref_summaries::duplicate): Duplicate static_chain_flags. |
| (modref_summaries_lto::duplicate): Likewise. |
| (modref_write): Stream static_chain_flags. |
| (read_section): Likewise. |
| (modref_merge_call_site_flags): Handle static_chain_flags. |
| * ipa-modref.h (struct modref_summary): Add static_chain_flags. |
| * tree-ssa-structalias.c (handle_rhs_call): Use |
| gimple_static_chain_flags. |
| |
| 2021-11-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/103029 |
| * tree-vect-loop-manip.c (vect_loop_versioning): Ensure |
| the PHI nodes in the loop maintain their original operand |
| order. |
| |
| 2021-11-02 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-core.h (EAF_NOT_RETURNED_DIRECTLY): New flag. |
| (EAF_NOREAD): Renumber. |
| * ipa-modref.c (dump_eaf_flags): Dump EAF_NOT_RETURNED_DIRECTLY. |
| (remove_useless_eaf_flags): Handle EAF_NOT_RETURNED_DIRECTLY |
| (deref_flags): Likewise. |
| (modref_lattice::init): Likewise. |
| (modref_lattice::merge): Likewise. |
| (merge_call_lhs_flags): Likewise. |
| (analyze_ssa_name_flags): Likewise. |
| (modref_merge_call_site_flags): Likewise. |
| * tree-ssa-structalias.c (handle_call_arg): Likewise. |
| |
| 2021-11-02 Maciej W. Rozycki <macro@embecosm.com> |
| |
| * config/riscv/riscv.c (riscv_rtx_costs): Correct a CONST_INT_P |
| check and remove an unused local variable with shNadd/shNadd.uw |
| pattern handling. |
| |
| 2021-11-02 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/103007 |
| * tree-vect-slp-patterns.c (complex_fms_pattern::matches): Add elem |
| check. |
| |
| 2021-11-02 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/103038 |
| * fold-const.c (native_interpret_expr): Handle OFFSET_TYPE. |
| (can_native_interpret_type_p): Likewise. |
| * internal-fn.c (expand_DEFERRED_INIT): View-convert the |
| RHS if the LHS is an SSA name. |
| |
| 2021-11-02 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * langhooks.h (lang_hooks_for_types::simulate_record_decl): New hook. |
| * langhooks-def.h (lhd_simulate_record_decl): Declare. |
| (LANG_HOOKS_SIMULATE_RECORD_DECL): Define. |
| (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it. |
| * langhooks.c (lhd_simulate_record_decl): New function. |
| |
| 2021-11-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/103020 |
| * config/i386/i386.c (ix86_vector_mode_supported_p): Reject vector |
| modes with TImode inner mode if 32-bit. |
| |
| 2021-11-02 liuhongt <hongtao.liu@intel.com> |
| |
| * doc/sourcebuild.texi (vect_slp_v4qi_store_unalign, |
| vect_slp_v2hi_store_unalign, vect_slp_v4hi_store_unalign, |
| vect_slp_v4si_store_unalign): Document efficient target. |
| (vect_slp_v4qi_store_unalign_1, vect_slp_v8qi_store_unalign_1, |
| vect_slp_v16qi_store_unalign_1): Ditto. |
| (vect_slp_v2hi_store_align,vect_slp_v2qi_store_align, |
| vect_slp_v2si_store_align, vect_slp_v4qi_store_align): Ditto. |
| (struct_4char_block_move, struct_8char_block_move, |
| struct_16char_block_move): Ditto. |
| |
| 2021-11-02 Roger Sayle <roger@nextmovesoftware.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102986 |
| * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti, |
| ix86_expand_ti_to_v1ti): New helper functions. |
| (ix86_expand_v1ti_shift): Check if the amount operand is an |
| integer constant, and expand as a TImode shift if it isn't. |
| (ix86_expand_v1ti_rotate): Check if the amount operand is an |
| integer constant, and expand as a TImode rotate if it isn't. |
| (ix86_expand_v1ti_ashiftrt): New function to expand arithmetic |
| right shifts of V1TImode quantities. |
| * config/i386/i386-protos.h (ix86_expand_v1ti_ashift): Prototype. |
| * config/i386/sse.md (ashlv1ti3, lshrv1ti3): Change constraints |
| to QImode general_operand, and let the helper functions lower |
| shifts by non-constant operands, as TImode shifts. Make |
| conditional on TARGET_64BIT. |
| (ashrv1ti3): New expander calling ix86_expand_v1ti_ashiftrt. |
| (rotlv1ti3, rotrv1ti3): Change shift operand to QImode. |
| Make conditional on TARGET_64BIT. |
| |
| 2021-11-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * config/s390/s390.md ("*cc_to_int", "tabort", "*tabort_1", |
| "*tabort_1_plus"): Remove operands non-null check. |
| |
| 2021-11-01 Martin Liska <mliska@suse.cz> |
| |
| * opt-functions.awk: Add new sanity checking. |
| * optc-gen.awk: Add new argument to integer_range_info. |
| * params.opt: Update 2 params which have negative IntegerRange. |
| |
| 2021-11-01 qing zhao <qing.zhao@oracle.com> |
| |
| * gimplify.c (gimplify_decl_expr): Do not add call to |
| __builtin_clear_padding when a variable is a gimple register |
| or it might not have padding. |
| (gimplify_init_constructor): Likewise. |
| |
| 2021-11-01 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/aarch-common-protos.h (struct vector_cost_table): Add |
| movi, dup and extract costing fields. |
| * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs, |
| thunderx_extra_costs, thunderx2t99_extra_costs, |
| thunderx3t110_extra_costs, tsv110_extra_costs, a64fx_extra_costs): Use |
| them. |
| * config/arm/aarch-cost-tables.h (generic_extra_costs, |
| cortexa53_extra_costs, cortexa57_extra_costs, cortexa76_extra_costs, |
| exynosm1_extra_costs, xgene1_extra_costs): Likewise |
| * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>): Add r->w dup. |
| * config/aarch64/aarch64.c (aarch64_rtx_costs): Add extra costs. |
| |
| 2021-11-01 Tamar Christina <tamar.christina@arm.com> |
| |
| * cse.c (add_to_set): New. |
| (find_sets_in_insn): Register constants in sets. |
| (canonicalize_insn): Use auto_vec instead. |
| (cse_insn): Try materializing using vec_dup. |
| * rtl.h (simplify_context::simplify_gen_vec_select, |
| simplify_gen_vec_select): New. |
| * simplify-rtx.c (simplify_context::simplify_gen_vec_select): New. |
| |
| 2021-11-01 David Malcolm <dmalcolm@redhat.com> |
| |
| * common.opt (fdiagnostics-escape-format=): New. |
| (diagnostics_escape_format): New enum. |
| (DIAGNOSTICS_ESCAPE_FORMAT_UNICODE): New enum value. |
| (DIAGNOSTICS_ESCAPE_FORMAT_BYTES): Likewise. |
| * diagnostic-format-json.cc (json_end_diagnostic): Add |
| "escape-source" attribute. |
| * diagnostic-show-locus.c |
| (exploc_with_display_col::exploc_with_display_col): Replace |
| "tabstop" param with a cpp_char_column_policy and add an "aspect" |
| param. Use these to compute m_display_col accordingly. |
| (struct char_display_policy): New struct. |
| (layout::m_policy): New field. |
| (layout::m_escape_on_output): New field. |
| (def_policy): New function. |
| (make_range): Update for changes to exploc_with_display_col ctor. |
| (default_print_decoded_ch): New. |
| (width_per_escaped_byte): New. |
| (escape_as_bytes_width): New. |
| (escape_as_bytes_print): New. |
| (escape_as_unicode_width): New. |
| (escape_as_unicode_print): New. |
| (make_policy): New. |
| (layout::layout): Initialize new fields. Update m_exploc ctor |
| call for above change to ctor. |
| (layout::maybe_add_location_range): Update for changes to |
| exploc_with_display_col ctor. |
| (layout::calculate_x_offset_display): Update for change to |
| cpp_display_width. |
| (layout::print_source_line): Pass policy |
| to cpp_display_width_computation. Capture cpp_decoded_char when |
| calling process_next_codepoint. Move printing of source code to |
| m_policy.m_print_cb. |
| (line_label::line_label): Pass in policy rather than context. |
| (layout::print_any_labels): Update for change to line_label ctor. |
| (get_affected_range): Pass in policy rather than context, updating |
| calls to location_compute_display_column accordingly. |
| (get_printed_columns): Likewise, also for cpp_display_width. |
| (correction::correction): Pass in policy rather than tabstop. |
| (correction::compute_display_cols): Pass m_policy rather than |
| m_tabstop to cpp_display_width. |
| (correction::m_tabstop): Replace with... |
| (correction::m_policy): ...this. |
| (line_corrections::line_corrections): Pass in policy rather than |
| context. |
| (line_corrections::m_context): Replace with... |
| (line_corrections::m_policy): ...this. |
| (line_corrections::add_hint): Update to use m_policy rather than |
| m_context. |
| (line_corrections::add_hint): Likewise. |
| (layout::print_trailing_fixits): Likewise. |
| (selftest::test_display_widths): New. |
| (selftest::test_layout_x_offset_display_utf8): Update to use |
| policy rather than tabstop. |
| (selftest::test_one_liner_labels_utf8): Add test of escaping |
| source lines. |
| (selftest::test_diagnostic_show_locus_one_liner_utf8): Update to |
| use policy rather than tabstop. |
| (selftest::test_overlapped_fixit_printing): Likewise. |
| (selftest::test_overlapped_fixit_printing_utf8): Likewise. |
| (selftest::test_overlapped_fixit_printing_2): Likewise. |
| (selftest::test_tab_expansion): Likewise. |
| (selftest::test_escaping_bytes_1): New. |
| (selftest::test_escaping_bytes_2): New. |
| (selftest::diagnostic_show_locus_c_tests): Call the new tests. |
| * diagnostic.c (diagnostic_initialize): Initialize |
| context->escape_format. |
| (convert_column_unit): Update to use default character width policy. |
| (selftest::test_diagnostic_get_location_text): Likewise. |
| * diagnostic.h (enum diagnostics_escape_format): New enum. |
| (diagnostic_context::escape_format): New field. |
| * doc/invoke.texi (-fdiagnostics-escape-format=): New option. |
| (-fdiagnostics-format=): Add "escape-source" attribute to examples |
| of JSON output, and document it. |
| * input.c (location_compute_display_column): Pass in "policy" |
| rather than "tabstop", passing to |
| cpp_byte_column_to_display_column. |
| (selftest::test_cpp_utf8): Update to use cpp_char_column_policy. |
| * input.h (class cpp_char_column_policy): New forward decl. |
| (location_compute_display_column): Pass in "policy" rather than |
| "tabstop". |
| * opts.c (common_handle_option): Handle |
| OPT_fdiagnostics_escape_format_. |
| * selftest.c (temp_source_file::temp_source_file): New ctor |
| overload taking a size_t. |
| * selftest.h (temp_source_file::temp_source_file): Likewise. |
| |
| 2021-11-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dbgcnt.def: Add debug counter for back_thread[12] and |
| back_threadfull[12]. |
| * passes.def: Pass "first" argument to each back threading pass. |
| * tree-ssa-threadbackward.c (back_threader::back_threader): Add |
| first argument. |
| (back_threader::debug_counter): New. |
| (back_threader::maybe_register_path): Call debug_counter. |
| |
| 2021-11-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (BT_NONE): New. |
| (BT_SPEED): New. |
| (BT_RESOLVE): New. |
| (back_threader::back_threader): Add flags. |
| Move loop initialization here. |
| (back_threader::~back_threader): New. |
| (back_threader::find_taken_edge_switch): Change solver and ranger |
| to pointers. |
| (back_threader::find_taken_edge_cond): Same. |
| (back_threader::find_paths_to_names): Same. |
| (back_threader::find_paths): Same. |
| (back_threader::dump): Same. |
| (try_thread_blocks): Merge into thread_blocks. |
| (back_threader::thread_blocks): New. |
| (do_early_thread_jumps): Merge into thread_blocks. |
| (do_thread_jumps): Merge into thread_blocks. |
| (back_threader::thread_through_all_blocks): Remove. |
| |
| 2021-11-01 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/103003 |
| * value-relation.cc (dom_oracle::register_relation): If the 2 |
| ssa names are the same, don't register any relation. |
| |
| 2021-11-01 Dan Li <ashimida@linux.alibaba.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_epilogue): Remove |
| redundant check for calls_eh_return. |
| * config/aarch64/aarch64.md (*do_return): Likewise. |
| |
| 2021-11-01 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Rename |
| duplicate_loop_to_header_edge to |
| duplicate_loop_body_to_header_edge. |
| (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. |
| * cfghooks.h (struct cfg_hooks): Likewise. |
| (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. |
| * cfgloopmanip.c (duplicate_loop_body_to_header_edge): Likewise. |
| (clone_loop_to_header_edge): Likewise. |
| * cfgloopmanip.h (duplicate_loop_body_to_header_edge): Likewise. |
| * cfgrtl.c (struct cfg_hooks): Likewise. |
| * doc/loop.texi: Likewise. |
| * loop-unroll.c (unroll_loop_constant_iterations): Likewise. |
| (unroll_loop_runtime_iterations): Likewise. |
| (unroll_loop_stupid): Likewise. |
| (apply_opt_in_copies): Likewise. |
| * tree-cfg.c (struct cfg_hooks): Likewise. |
| * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. |
| (try_peel_loop): Likewise. |
| * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise. |
| (gimple_duplicate_loop_body_to_header_edge): Likewise. |
| (tree_transform_and_unroll_loop): Likewise. |
| * tree-ssa-loop-manip.h (gimple_duplicate_loop_body_to_header_edge): |
| Likewise. |
| |
| 2021-11-01 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| * cfgloopmanip.c (loop_version): Refactor loopify to |
| loop_version. Move condition generation after loopify. |
| (loopify): Delete. |
| * cfgloopmanip.h (loopify): Delete. |
| |
| 2021-10-31 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-fnsummary.c: Include tree-dfa.h. |
| (points_to_local_or_readonly_memory_p): Return true on return |
| slot writes. |
| * ipa-modref.c (analyze_ssa_name_flags): Fix handling of copy |
| statement. |
| |
| 2021-10-30 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR middle-end/102972 |
| * omp-low.c (omp_runtime_api_call): Use DECL_ASSEMBLER_NAME to get |
| internal Fortran name; new permit_num_teams arg to permit |
| omp_get_num_teams and omp_get_team_num. |
| (scan_omp_1_stmt): Update call to it, add missing call for |
| reverse offload, and check for strictly nested API calls in teams. |
| |
| 2021-10-30 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (gimplify_omp_for): Diagnose threadprivate iterators. |
| |
| 2021-10-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * selftest.c (assert_streq): Add newlines when emitting non-equal |
| non-NULL strings. |
| |
| 2021-10-29 David Malcolm <dmalcolm@redhat.com> |
| |
| * Makefile.in: Fix syntax for reference to LIBDEPS in |
| gengtype link rule. |
| |
| 2021-10-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
| |
| * doc/install.texi: Bump required minimum DejaGnu version. |
| |
| 2021-10-29 Aldy Hernandez <aldyh@redhat.com> |
| Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (path_oracle::killing_def): Add a |
| self-equivalence so we don't look to the root oracle. |
| |
| 2021-10-29 Aldy Hernandez <aldyh@redhat.com> |
| |
| * passes.def: Replace the pass_thread_jumps before VRP* with |
| pass_thread_jumps_full. Remove all pass_vrp_threader instances. |
| * tree-ssa-threadbackward.c (pass_data_thread_jumps_full): |
| Remove hyphen from "thread-full" name. |
| |
| 2021-10-29 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/102983 |
| * gimple-range-cache.h (propagate_updated_value): Make public. |
| * gimple-range.cc (gimple_ranger::range_of_stmt): Propagate exports |
| when processing gcond stmts. |
| |
| 2021-10-29 Jan Hubicka <hubicka@ucw.cz> |
| |
| * gimple.c (gimple_call_retslot_flags): New function. |
| * gimple.h (gimple_call_retslot_flags): Declare. |
| * ipa-modref.c: Include tree-cfg.h. |
| (struct escape_entry): Turn parm_index to signed. |
| (modref_summary_lto::modref_summary_lto): Add retslot_flags. |
| (modref_summary::modref_summary): Initialize retslot_flags. |
| (struct modref_summary_lto): Likewise. |
| (modref_summary::useful_p): Check retslot_flags. |
| (modref_summary_lto::useful_p): Likewise. |
| (modref_summary::dump): Dump retslot_flags. |
| (modref_summary_lto::dump): Likewise. |
| (struct escape_point): Add hidden_args enum. |
| (analyze_ssa_name_flags): Ignore return slot return; |
| use gimple_call_retslot_flags. |
| (record_escape_points): Break out from ... |
| (analyze_parms): ... here; handle retslot_flags. |
| (modref_summaries::duplicate): Duplicate retslot_flags. |
| (modref_summaries_lto::duplicate): Likewise. |
| (modref_write_escape_summary): Stream parm_index as signed. |
| (modref_read_escape_summary): Likewise. |
| (modref_write): Stream retslot_flags. |
| (read_section): Likewise. |
| (struct escape_map): Fix typo in comment. |
| (update_escape_summary_1): Fix whitespace. |
| (ipa_merge_modref_summary_after_inlining): Drop retslot_flags. |
| (modref_merge_call_site_flags): Merge retslot_flags. |
| * ipa-modref.h (struct modref_summary): Add retslot_flags. |
| * tree-ssa-structalias.c (handle_rhs_call): Handle retslot_flags. |
| |
| 2021-10-29 Tamar Christina <tamar.christina@arm.com> |
| |
| PR tree-optimization/102977 |
| * tree-vect-slp-patterns.c (vect_match_call_p): Remove. |
| (vect_detect_pair_op): Add crosslane check. |
| (vect_match_call_complex_mla): Remove. |
| (class complex_mul_pattern): Update comment. |
| (complex_mul_pattern::matches): Update detection. |
| (class complex_fma_pattern): Remove. |
| (complex_fma_pattern::matches): Remove. |
| (complex_fma_pattern::recognize): Remove. |
| (complex_fma_pattern::build): Remove. |
| (class complex_fms_pattern): Update comment. |
| (complex_fms_pattern::matches): Remove. |
| (complex_operations_pattern::recognize): Remove complex_fma_pattern |
| |
| 2021-10-29 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-fold.c (gimple_fold_builtin_memset): Copy over location from |
| call to store. |
| |
| 2021-10-29 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR target/102868 |
| * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Add |
| patterns match and emit for VSX xxpermdi. |
| |
| 2021-10-29 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102464 |
| * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF): New |
| function type. |
| (V16HF_FTYPE_V16HF): Ditto. |
| (V32HF_FTYPE_V32HF): Ditto. |
| (V8HF_FTYPE_V8HF_ROUND): Ditto. |
| (V16HF_FTYPE_V16HF_ROUND): Ditto. |
| (V32HF_FTYPE_V32HF_ROUND): Ditto. |
| * config/i386/i386-builtin.def ( IX86_BUILTIN_FLOORPH, |
| IX86_BUILTIN_CEILPH, IX86_BUILTIN_TRUNCPH, |
| IX86_BUILTIN_FLOORPH256, IX86_BUILTIN_CEILPH256, |
| IX86_BUILTIN_TRUNCPH256, IX86_BUILTIN_FLOORPH512, |
| IX86_BUILTIN_CEILPH512, IX86_BUILTIN_TRUNCPH512): New builtin. |
| * config/i386/i386-builtins.c |
| (ix86_builtin_vectorized_function): Enable vectorization for |
| HFmode FLOOR/CEIL/TRUNC operation. |
| * config/i386/i386-expand.c (ix86_expand_args_builtin): Handle |
| new builtins. |
| * config/i386/sse.md (rint<mode>2, nearbyint<mode>2): Extend |
| to vector HFmodes. |
| |
| 2021-10-28 Aldy Hernandez <aldyh@redhat.com> |
| Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (path_oracle::killing_def): Walk the |
| equivalency list and remove SSA from any equivalencies. |
| |
| 2021-10-28 Stafford Horne <shorne@gmail.com> |
| |
| * config/or1k/or1k.h (PROFILE_HOOK): Add return address argument |
| to _mcount. |
| |
| 2021-10-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102951 |
| * fold-const.h (address_compare): Declare. |
| * fold-const.c (address_compare): New function. |
| * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Use |
| address_compare helper. |
| (minmax cmp (convert1?@2 addr@0) (convert2?@3 addr@1)): New |
| simplification. |
| |
| 2021-10-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * vr-values.c (simplify_using_ranges::fold_cond): Change fold message. |
| |
| 2021-10-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/102940 |
| * tree-vrp.c (execute_ranger_vrp): Reset scev. |
| |
| 2021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org> |
| |
| * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add musl linker |
| |
| 2021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org> |
| |
| * configure: Regenerate. |
| * configure.ac: Use CPPFLAGS_FOR_BUILD for GMPINC |
| |
| 2021-10-28 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * doc/invoke.texi (%X): Remove obsolete reference to -Wl. |
| |
| 2021-10-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/84407 |
| * fold-const.c (fold_convert_const): Avoid int to float |
| constant folding with -frounding-math and inexact result. |
| * simplify-rtx.c (simplify_const_unary_operation): Likewise |
| for both float and unsigned_float. |
| |
| 2021-10-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader::find_taken_edge_switch): Use find_case_label_range |
| instead of find_taken_edge. |
| |
| 2021-10-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (class back_threader_registry): |
| Inherit from back_jt_path_registry. |
| (back_threader_registry::thread_through_all_blocks): Remove. |
| (back_threader_registry::register_path): Remove |
| m_lowlevel_registry prefix. |
| |
| 2021-10-28 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/57245 |
| * fold-const.c (fold_convert_const_real_from_real): Honor |
| -frounding-math if the conversion is not exact. |
| * simplify-rtx.c (simplify_const_unary_operation): Do not |
| simplify FLOAT_TRUNCATE with sign dependent rounding. |
| |
| 2021-10-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102949 |
| * tree-vect-stmts.c (ensure_base_align): Look at the |
| dr_info of a group leader and assert we are looking at |
| one with analyzed alignment. |
| |
| 2021-10-28 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR target/102767 |
| * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Consider |
| V1T1 mode for unaligned load and store. |
| |
| 2021-10-28 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.md (zero_extendsidi2_internal): Allow ZBB |
| use this pattern. |
| |
| 2021-10-28 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add `i` to |
| CANONICAL_ORDER. |
| |
| 2021-10-28 Alexandre Oliva <oliva@adacore.com> |
| |
| * common.opt (fharden-compares): New. |
| (fharden-conditional-branches): New. |
| * doc/invoke.texi: Document new options. |
| * gimple-harden-conditionals.cc: New. |
| * Makefile.in (OBJS): Build it. |
| * passes.def: Add new passes. |
| * tree-pass.h (make_pass_harden_compares): Declare. |
| (make_pass_harden_conditional_branches): Declare. |
| |
| 2021-10-28 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR target/94613 |
| * config/rs6000/altivec.md: Add vsx register constraints. |
| * config/rs6000/vsx.md (vsx_xxsel<mode>): Delete. |
| (vsx_xxsel<mode>2): Likewise. |
| (vsx_xxsel<mode>3): Likewise. |
| (vsx_xxsel<mode>4): Likewise. |
| |
| 2021-10-28 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR target/94613 |
| * config/rs6000/altivec.md (*altivec_vsel<mode>): Change to ... |
| (altivec_vsel<mode>): ... this and update define. |
| (*altivec_vsel<mode>_uns): Delete. |
| (altivec_vsel<mode>2): New define_insn. |
| (altivec_vsel<mode>3): Likewise. |
| (altivec_vsel<mode>4): Likewise. |
| * config/rs6000/rs6000-call.c (altivec_expand_vec_sel_builtin): New. |
| (altivec_expand_builtin): Call altivec_expand_vec_sel_builtin to expand |
| vel_sel. |
| * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use bit-wise |
| selection instead of per element. |
| * config/rs6000/vector.md: |
| * config/rs6000/vsx.md (*vsx_xxsel<mode>): Change to ... |
| (vsx_xxsel<mode>): ... this and update define. |
| (*vsx_xxsel<mode>_uns): Delete. |
| (vsx_xxsel<mode>2): New define_insn. |
| (vsx_xxsel<mode>3): Likewise. |
| (vsx_xxsel<mode>4): Likewise. |
| |
| 2021-10-28 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.c (use_rsqrt_p): Add mode parameter, enable |
| HFmode rsqrt without TARGET_SSE_MATH. |
| (ix86_optab_supported_p): Refactor rint, adjust floor, ceil, |
| btrunc condition to be restricted by -ftrapping-math, adjust |
| use_rsqrt_p function call. |
| * config/i386/i386.md (rcphf2): New define_insn. |
| (rsqrthf2): Likewise. |
| * config/i386/sse.md (div<mode>3): Change VF2H to VF2. |
| (div<mode>3): New expander for HF mode. |
| (rsqrt<mode>2): Likewise. |
| (*avx512fp16_vmrcpv8hf2): New define_insn for rpad pass. |
| (*avx512fp16_vmrsqrtv8hf2): Likewise. |
| |
| 2021-10-27 Saagar Jha <saagar@saagarjha.com> |
| |
| * config.gcc: Adjust for Darwin21. |
| * config/darwin-c.c (macosx_version_as_macro): Likewise. |
| * config/darwin-driver.c (validate_macosx_version_min): |
| Likewise. |
| (darwin_find_version_from_kernel): Likewise. |
| |
| 2021-10-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc |
| (path_range_query::range_defined_in_block): Call killing_def. |
| |
| 2021-10-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_range_op): Dump |
| operands as well as relation. |
| * gimple-range-path.cc |
| (path_range_query::compute_ranges_in_block): Compute PHI relations |
| first. Compute outgoing relations at the end. |
| (path_range_query::compute_ranges): Remove call to compute_relations. |
| (path_range_query::compute_relations): Remove. |
| (path_range_query::maybe_register_phi_relation): New. |
| (path_range_query::compute_phi_relations): Abstract out |
| registering one PHI relation to... |
| (path_range_query::compute_outgoing_relations): ...here. |
| * gimple-range-path.h (class path_range_query): Remove |
| compute_relations. |
| Add maybe_register_phi_relation. |
| |
| 2021-10-27 Aldy Hernandez <aldyh@redhat.com> |
| Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (path_oracle::killing_def): Kill second |
| order relations. |
| |
| 2021-10-27 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.c (good_cloning_opportunity_p): Decide whether to use |
| profile feedback depending on their local availability. |
| |
| 2021-10-27 Martin Jambor <mjambor@suse.cz> |
| |
| * params.opt (param_ipa_cp_profile_count_base): New parameter. |
| * doc/invoke.texi (Optimize Options): Add entry for |
| ipa-cp-profile-count-base. |
| * ipa-cp.c (max_count): Replace with base_count, replace all |
| occurrences too, unless otherwise stated. |
| (ipcp_cloning_candidate_p): identify mostly-directly called |
| functions based on their counts, not max_count. |
| (compare_edge_profile_counts): New function. |
| (ipcp_propagate_stage): Instead of setting max_count, find the |
| appropriate edge count in a sorted vector of counts of eligible |
| edges and make it the base_count. |
| |
| 2021-10-27 Martin Jambor <mjambor@suse.cz> |
| |
| * ipa-cp.c (struct caller_statistics): New fields rec_count_sum, |
| n_nonrec_calls and itself, document all fields. |
| (init_caller_stats): Initialize the above new fields. |
| (gather_caller_stats): Gather self-recursive counts and calls number. |
| (get_info_about_necessary_edges): Gather counts of self-recursive and |
| other edges bringing in the requested value separately. |
| (dump_profile_updates): Rework to dump info about a single node only. |
| (lenient_count_portion_handling): New function. |
| (struct gather_other_count_struct): New type. |
| (gather_count_of_non_rec_edges): New function. |
| (struct desc_incoming_count_struct): New type. |
| (analyze_clone_icoming_counts): New function. |
| (adjust_clone_incoming_counts): Likewise. |
| (update_counts_for_self_gen_clones): Likewise. |
| (update_profiling_info): Rewritten. |
| (update_specialized_profile): Adjust call to dump_profile_updates. |
| (create_specialized_node): Do not update profiling info. |
| (decide_about_value): New parameter self_gen_clones, either push new |
| clones into it or updat their profile counts. For self-recursively |
| generated values, use a portion of the node count instead of count |
| from self-recursive edges to estimate goodness. |
| (decide_whether_version_node): Gather clones for self-generated values |
| in a new vector, update their profiles at once at the end. |
| |
| 2021-10-27 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.c (vect_transform_loops): New function, |
| split out from ... |
| (try_vectorize_loop_1): ... here. Simplify as epilogues |
| are now fully handled in the split part. |
| |
| 2021-10-27 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular |
| iterators with pointer types. |
| (expand_omp_for_init_vars, extract_omp_for_update_vars): Likewise. |
| |
| 2021-10-26 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/102238 |
| PR tree-optimization/102919 |
| * gimple-ssa-sprintf.c (get_string_length): Add an argument. |
| (array_elt_at_offset): Move to pointer-query. |
| (set_aggregate_size_and_offset): New function. |
| (field_at_offset): Move to pointer-query. |
| (get_origin_and_offset): Rename... |
| (get_origin_and_offset_r): this. Add an argument. Make aggregate |
| handling more robust. |
| (get_origin_and_offset): New. |
| (alias_offset): Add an argument. |
| (format_string): Use subobject size determined by get_origin_and_offset. |
| * pointer-query.cc (field_at_offset): Move from gimple-ssa-sprintf.c. |
| Improve/correct handling of aggregates. |
| (array_elt_at_offset): Same. |
| * pointer-query.h (field_at_offset): Declare. |
| (array_elt_at_offset): Declare. |
| |
| 2021-10-26 Martin Sebor <msebor@redhat.com> |
| |
| * builtins.c (check_strncat_sizes): Pass access_data ctor additional |
| arguments. |
| (expand_builtin_memcmp): Move code to gimple-ssa-warn-access.cc. |
| (expand_builtin_fork_or_exec): Same. |
| * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Pass |
| compute_objsize additional arguments. |
| (inbounds_memaccess_p): Same. |
| (array_bounds_checker::check_array_bounds): Add an assert. Stash |
| statement in a member. |
| (check_array_bounds_dom_walker::before_dom_children): Same. |
| * gimple-array-bounds.h (array_bounds_checker::m_stmt): New member. |
| * gimple-ssa-sprintf.c (get_destination_size): Add an argument. |
| (handle_printf_call): Pass a new argument. |
| * gimple-ssa-warn-access.cc (get_size_range): Add an argument. |
| (check_access): Add an argument and pass it along to callees. |
| (check_read_access): Make a member function. |
| (pass_waccess::check_strcat): Pass access_data ctor additional |
| arguments. |
| (pass_waccess::check_strncat): Same. |
| (pass_waccess::check_stxcpy): Same. |
| (pass_waccess::check_stxncpy): Same. |
| (pass_waccess::check_strncmp): Same. |
| (pass_waccess::check_read_access): Same. |
| (pass_waccess::check_builtin): Same. |
| (pass_waccess::maybe_check_access_sizes): Same. |
| (pass_waccess::maybe_check_dealloc_call): Same. |
| * gimple-ssa-warn-access.h (check_read_access): Declare a new |
| member function. |
| * pointer-query.cc (compute_objsize_r): Add an argument. |
| (gimple_call_return_array): Same. |
| (gimple_call_alloc_size): Same. |
| (access_ref::access_ref): Same. |
| (access_ref::get_ref): Same. |
| (pointer_query::get_ref): Same. |
| (handle_min_max_size): Pass an arguments to callees. |
| (handle_array_ref): Add an argument. |
| (handle_mem_ref): Same. |
| (compute_objsize): Same. |
| * pointer-query.h (struct access_ref): Adjust signatures. |
| (struct access_data): Same. |
| (gimple_call_alloc_size): Add an argument. |
| (gimple_parm_array_size): Same. |
| (compute_objsize): Same. |
| * tree-ssa-strlen.c (strlen_pass::adjust_last_stmt): Pass an additional |
| argument to compute_objsize. |
| (strlen_pass::maybe_warn_overflow): Same. |
| (maybe_diag_stxncpy_trunc): Same. |
| |
| 2021-10-26 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102453 |
| * gimple-ssa-warn-access.cc (pass_waccess::check_atomic_builtin): New. |
| (pass_waccess::check_atomic_builtin): Call it. |
| |
| 2021-10-26 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/102842 |
| * lra-constraints.c (match_reload): Ignore out in checking values |
| of outs. |
| (curr_insn_transform): Collect outputs before doing reloads of operands. |
| |
| 2021-10-26 Paul A. Clarke <pc@us.ibm.com> |
| |
| PR target/102719 |
| * config/rs6000/x86intrin.h: Move some included headers to new |
| headers. Include new immintrin.h instead of those headers. |
| * config/rs6000/immintrin.h: New. |
| * config/rs6000/x86gprintrin.h: New. |
| * config.gcc (powerpc*-*-*): Add new headers to extra_headers. |
| |
| 2021-10-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_create_addr_base_for_vector_ref): |
| Remove byte_offset parameter. |
| (vect_create_data_ref_ptr): Likewise. |
| * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): |
| Likewise. |
| (vect_create_data_ref_ptr): Likewise. |
| * tree-vect-stmts.c (vectorizable_store): Adjust. |
| (vectorizable_load): Likewise. |
| |
| 2021-10-26 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/96109 |
| * tree-vectorizer.h (dr_misalignment): Add optional offset |
| parameter. |
| * tree-vect-data-refs.c (dr_misalignment): Likewise. Remove |
| offset applied for negative stride accesses. |
| (vect_enhance_data_refs_alignment): Compute negative stride |
| access offset and pass it to dr_misalignment. |
| * tree-vect-stmts.c (get_negative_load_store_type): Pass |
| negative offset to dr_misalignment. |
| (get_group_load_store_type): Likewise. |
| (get_load_store_type): Likewise. |
| (vectorizable_store): Remove asserts about alignment. |
| (vectorizable_load): Likewise. |
| |
| 2021-10-26 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR tree-optimization/102897 |
| * tree-ssa-forwprop.c (simplify_permutation): Remove a wrong assertion. |
| |
| 2021-10-26 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): |
| Take offset in bytes. |
| (vect_create_data_ref_ptr): Likewise. |
| * tree-vect-loop-manip.c (get_misalign_in_elems): Multiply |
| offset by element size. |
| (vect_create_cond_for_align_checks): Likewise. |
| * tree-vect-stmts.c (get_negative_load_store_type): Likewise. |
| (vectorizable_load): Remove duplicate leftover from merge |
| conflict. |
| |
| 2021-10-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_v1ti_shift): New helper |
| function to expand V1TI mode logical shifts by integer constants. |
| (ix86_expand_v1ti_rotate): New helper function to expand V1TI |
| mode rotations by integer constants. |
| * config/i386/i386-protos.h (ix86_expand_v1ti_shift, |
| ix86_expand_v1ti_rotate): Prototype new functions here. |
| * config/i386/sse.md (ashlv1ti3, lshrv1ti3, rotlv1ti3, rotrv1ti3): |
| New TARGET_SSE2 expanders to implement V1TI shifts and rotations. |
| |
| 2021-10-26 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::maybe_register_path): |
| Avoid threading circular paths. |
| |
| 2021-10-26 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::resolve_phi): |
| Attempt to resolve all incoming paths to a PHI. |
| (back_threader::resolve_def): Always return true for PHIs. |
| |
| 2021-10-26 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): |
| Always try to resolve path without looking back. |
| * tree-ssa-threadupdate.c (dump_jump_thread): Indidicate whether |
| edge is a back edge. |
| |
| 2021-10-26 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR tree-optimization/102789 |
| * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not |
| update inits of simd_lane_access. |
| |
| 2021-10-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-vrp.c (vrp_simplify_cond_using_ranges): Add return type and |
| move to vr-values.c. |
| (simplify_casted_conds): Move to vrp_folder class. |
| (execute_vrp): Call via vrp_folder now. |
| * vr-values.c (simplify_cond_using_ranges_1): Call simplify_casted_cond. |
| (simplify_using_ranges::simplify_casted_cond): Relocate from tree-vrp.c. |
| * vr-values.h (simplify_casted_cond): Add prototype. |
| |
| 2021-10-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| * tree-vrp.c (rvrp_folder::fold_stmt): If simplification fails, try |
| to fold anyway. |
| |
| 2021-10-25 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_testz_si128): Add "extern" to |
| function signature. |
| (_mm_testc_si128): Likewise. |
| (_mm_testnzc_si128): Likewise. |
| (_mm_blend_ps): Likewise. |
| (_mm_blendv_ps): Likewise. |
| (_mm_blend_pd): Likewise. |
| (_mm_blendv_pd): Likewise. |
| (_mm_ceil_pd): Likewise. |
| (_mm_ceil_sd): Likewise. |
| (_mm_ceil_ps): Likewise. |
| (_mm_ceil_ss): Likewise. |
| (_mm_floor_pd): Likewise. |
| (_mm_floor_sd): Likewise. |
| (_mm_floor_ps): Likewise. |
| (_mm_floor_ss): Likewise. |
| (_mm_minpos_epu16): Likewise. |
| (_mm_mul_epi32): Likewise. |
| (_mm_cvtepi8_epi16): Likewise. |
| (_mm_packus_epi32): Likewise. |
| (_mm_cmpgt_epi64): Likewise. |
| |
| 2021-10-25 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.c (simplify_binary_operation_1) [SS_ASHIFT]: Simplify |
| shifts of the mode's smin_value and smax_value when the bit count |
| operand doesn't have side-effects. |
| [US_ASHIFT]: Likewise, simplify shifts of the mode's umax_value |
| when the bit count operand doesn't have side-effects. |
| (simplify_const_binary_operation) [SS_ASHIFT, US_ASHIFT]: Perform |
| compile-time evaluation of saturating left shifts with constant |
| arguments. |
| |
| 2021-10-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range.cc (gimple_ranger::export_global_ranges): Remove check |
| for TDF_DETAILS. |
| |
| 2021-10-25 Andrew MacLeod <amacleod@redhat.com> |
| |
| * flag-types.h (enum ranger_debug): Adjust values. |
| * params.opt (ranger_debug): Ditto. |
| |
| 2021-10-25 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/102886 |
| * tree-sra.c (totally_scalarize_subtree): Fix the out of |
| access-condition. |
| |
| 2021-10-25 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-ssa-dce.c (simple_dce_from_worklist): |
| Check stmt_unremovable_because_of_non_call_eh_p also |
| before removing the statement. |
| |
| 2021-10-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102905 |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): |
| Use vect_supportable_dr_alignment again to determine whether |
| an access is supported when not aligned. |
| |
| 2021-10-25 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_rtx_costs): Handle cost model |
| for zbs extension. |
| |
| 2021-10-25 Jim Wilson <jimw@sifive.com> |
| Kito Cheng <kito.cheng@sifive.com> |
| Jia-Wei Chen <jiawei@iscas.ac.cn> |
| Shi-Hua Liao <shihua@iscas.ac.cn> |
| |
| * config/riscv/bitmanip.md (shiftm1): New. |
| (*bset<mode>): Ditto. |
| (*bset<mode>_mask): Ditto. |
| (*bset<mode>_1): Ditto. |
| (*bset<mode>_1_mask): Ditto. |
| (*bseti<mode>): Ditto. |
| (*bclr<mode>): Ditto. |
| (*bclri<mode>): Ditto. |
| (*binv<mode>): Ditto. |
| (*binvi<mode>): Ditto. |
| (*bext<mode>): Ditto. |
| (*bexti): Ditto. |
| * config/riscv/predicates.md (splittable_const_int_operand): |
| Handle bseti. |
| (single_bit_mask_operand): New. |
| (not_single_bit_mask_operand): Ditto. |
| (const31_operand): Ditto. |
| (const63_operand): Ditto. |
| * config/riscv/riscv.c (riscv_build_integer_1): Handle bseti. |
| (riscv_output_move): Ditto. |
| (riscv_print_operand): Handle new operand type: T and S. |
| * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): New. |
| |
| 2021-10-25 Jim Wilson <jimw@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_build_integer_1): Build integer |
| with rotate. |
| |
| 2021-10-25 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_extend_cost): Handle cost model |
| for zbb extension. |
| (riscv_rtx_costs): Ditto. |
| |
| 2021-10-25 Jim Wilson <jimw@sifive.com> |
| Kito Cheng <kito.cheng@sifive.com> |
| Jia-Wei Chen <jiawei@iscas.ac.cn> |
| |
| * config/riscv/bitmanip.md (bitmanip_bitwise): New. |
| (bitmanip_minmax): New. |
| (clz_ctz_pcnt): New. |
| (bitmanip_optab): New. |
| (bitmanip_insn): New. |
| (*<optab>_not<mode>): New. |
| (*xor_not<mode>): New. |
| (<bitmanip_optab>si2): New. |
| (*<bitmanip_optab>disi2): New. |
| (<bitmanip_optab>di2): New. |
| (*zero_extendhi<GPR:mode>2_bitmanip): New. |
| (*extend<SHORT:mode><SUPERQI:mode>2_zbb): New. |
| (*zero_extendhi<GPR:mode>2_zbb): New. |
| (rotrsi3): New. |
| (rotrdi3): New. |
| (rotrsi3_sext): New. |
| (rotlsi3): New. |
| (rotldi3): New. |
| (rotlsi3_sext): New. |
| (bswap<mode>2): New. |
| (<bitmanip_optab><mode>3): New. |
| * config/riscv/riscv.md (type): Add rotate. |
| (zero_extendhi<GPR:mode>2): Change to define_expand pattern. |
| (*zero_extendhi<GPR:mode>2): New. |
| (extend<SHORT:mode><SUPERQI:mode>2): Change to define_expand pattern. |
| (*extend<SHORT:mode><SUPERQI:mode>2): New. |
| |
| 2021-10-25 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/riscv.c (riscv_extend_cost): Handle cost model |
| for zba extension. |
| (riscv_rtx_costs): Ditto. |
| |
| 2021-10-25 Jim Wilson <jimw@sifive.com> |
| Kito Cheng <kito.cheng@sifive.com> |
| Jia-Wei Chen <jiawei@iscas.ac.cn> |
| |
| * config/riscv/bitmanip.md (*zero_extendsidi2_bitmanip): New. |
| (*shNadd): Ditto. |
| (*shNadduw): Ditto. |
| (*add.uw): Ditto. |
| (*slliuw): Ditto. |
| (riscv_rtx_costs): Ditto. |
| * config/riscv/riscv.md: Include bitmanip.md |
| (type): Add bitmanip bype. |
| (zero_extendsidi2): Change to define_expand pattern. |
| (*zero_extendsidi2_internal): New. |
| (zero_extendsidi2_shifted): Disable for ZBA. |
| |
| 2021-10-25 Kito Cheng <kito.cheng@sifive.com> |
| |
| * common/config/riscv/riscv-common.c (riscv_ext_version_table): |
| Add zba, zbb, zbc and zbs. |
| (riscv_ext_flag_table): Ditto. |
| * config/riscv/riscv-opts.h (MASK_ZBA): New. |
| (MASK_ZBB): Ditto. |
| (MASK_ZBC): Ditto. |
| (MASK_ZBS): Ditto. |
| (TARGET_ZBA): Ditto. |
| (TARGET_ZBB): Ditto. |
| (TARGET_ZBC): Ditto. |
| (TARGET_ZBS): Ditto. |
| * config/riscv/riscv.opt (riscv_zb_subext): New. |
| |
| 2021-10-25 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102464 |
| * match.pd: Simplify (_Float16) sqrtf((float) a) to .SQRT(a) |
| when direct_internal_fn_supported_p, similar for sqrt/sqrtl. |
| |
| 2021-10-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102920 |
| * tree-ssa-sccvn.h (expressions_equal_p): Add argument |
| controlling VN_TOP matching behavior. |
| * tree-ssa-sccvn.c (expressions_equal_p): Likewise. |
| (vn_phi_eq): Do not optimistically match VN_TOP. |
| |
| 2021-10-25 konglin1 <lingling.kong@intel.com> |
| |
| * config/i386/sse.md (fma_<mode>_fadd_fmul): Add new |
| define_insn_and_split. |
| (fma_<mode>_fadd_fcmul):Likewise |
| (fma_<complexopname>_<mode>_fma_zero):Likewise |
| |
| 2021-10-24 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check |
| TARGET_DISABLE_FPREGS. |
| * config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of |
| MASK_DISABLE_FPREGS. |
| (hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS. Adjust |
| cost of hardware integer multiplication. |
| (pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS. |
| * config/pa/pa.h (INT14_OK_STRICT): Likewise. |
| * config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check |
| TARGET_SOFT_FLOAT in patterns that use xmpyu instruction. |
| * config/pa/pa.opt (mdisable-fpregs): Change target mask to |
| SOFT_FLOAT. Revise comment. |
| (msoft-float): New option. |
| |
| 2021-10-24 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. |
| |
| 2021-10-24 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Specific): Remove obsolete details |
| around GNU/Linux on Itanium. |
| (Specific): Remove reference to Windows for Itanium. |
| |
| 2021-10-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> |
| |
| * config/i386/x86-tune-sched-bd.c (dispatch_group): Commentary |
| typo fix. |
| |
| 2021-10-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-structalias.c (compute_points_to_sets): Cleanup. |
| |
| 2021-10-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/sse.md (<any_logic>v1ti3): New define_insn to |
| implement V1TImode AND, IOR and XOR on TARGET_SSE2 (and above). |
| (one_cmplv1ti2): New define expand. |
| |
| 2021-10-22 Eric Gallager <egallager@gcc.gnu.org> |
| |
| PR other/102663 |
| * Makefile.in: Handle dvidir and install-dvi target. |
| * configure: Regenerate. |
| * configure.ac: Add install-dvi to target_list. |
| |
| 2021-10-22 Gerald Pfeifer <gerald@pfeifer.com> |
| |
| * doc/install.texi (Binaries): Convert mingw-w64.org to https. |
| (Specific): Ditto. |
| |
| 2021-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102893 |
| * tree-ssa-dce.c (find_obviously_necessary_stmts): Fix the |
| test for an exit edge. |
| |
| 2021-10-22 Aldy Hernandez <aldyh@redhat.com> |
| Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::compute_phi_relations): |
| Kill any global relations we may know before registering a new |
| one. |
| * value-relation.cc (path_oracle::killing_def): New. |
| * value-relation.h (path_oracle::killing_def): New. |
| |
| 2021-10-22 Richard Biener <rguenther@suse.de> |
| |
| PR bootstrap/102681 |
| * tree-ssa-sccvn.c (vn_phi_insert): For undefined SSA args |
| record VN_TOP. |
| (vn_phi_lookup): Likewise. |
| |
| 2021-10-21 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/98667 |
| * doc/invoke.texi: Document -fcf-protection requires i686 or |
| new. |
| |
| 2021-10-21 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/102764 |
| * cfgexpand.c (expand_gimple_basic_block): Robustify latest change. |
| |
| 2021-10-21 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__STRUCTN): Delete function |
| macro and all invocations. |
| |
| 2021-10-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| * doc/invoke.texi (ranger-debug): Document. |
| * flag-types.h (enum ranger_debug): New. |
| (enum evrp_mode): Remove debug values. |
| * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Use new debug flag. |
| * gimple-range-gori.cc (gori_compute::gori_compute): Ditto. |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Ditto. |
| * gimple-ssa-evrp.c (hybrid_folder::choose_value): Ditto. |
| (execute_early_vrp): Use evrp-mode directly. |
| * params.opt (enum evrp_mode): Remove debug values. |
| (ranger-debug): New. |
| (ranger-logical-depth): Relocate to be in alphabetical order. |
| |
| 2021-10-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| * doc/invoke.texi: (vrp1-mode, vrp2-mode): Document. |
| * flag-types.h: (enum vrp_mode): New. |
| * params.opt: (vrp1-mode, vrp2-mode): New. |
| * tree-vrp.c (vrp_pass_num): New. |
| (pass_vrp::pass_vrp): Set pass number. |
| (pass_vrp::execute): Choose which VRP mode to execute. |
| |
| 2021-10-21 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-ssa-evrp.c (class rvrp_folder): Move to tree-vrp.c. |
| (execute_early_vrp): For ranger only mode, invoke ranger_vrp. |
| * tree-vrp.c (class rvrp_folder): Relocate here. |
| (execute_ranger_vrp): New. |
| * tree-vrp.h (execute_ranger_vrp): Export. |
| |
| 2021-10-21 Martin Liska <mliska@suse.cz> |
| |
| PR debug/102585 |
| PR bootstrap/102766 |
| * opts.c (finish_options): Process flag_var_tracking* options |
| here as they can be adjusted by optimize attribute. |
| Process also flag_syntax_only and flag_gtoggle. |
| * toplev.c (process_options): Remove it here. |
| * common.opt: Make debug_nonbind_markers_p as PerFunction |
| attribute as it depends on optimization level. |
| |
| 2021-10-21 Martin Jambor <mjambor@suse.cz> |
| |
| PR tree-optimization/102505 |
| * tree-sra.c (totally_scalarize_subtree): Check that the |
| encountered field fits within the acces we would like to put it |
| in. |
| |
| 2021-10-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader::maybe_register_path): Remove circular paths check. |
| |
| 2021-10-21 Richard Biener <rguenther@suse.de> |
| |
| * toplev.c (process_options): Move the initial debug_hooks |
| setting ... |
| (toplev::main): ... before the call of the post_options |
| langhook. |
| |
| 2021-10-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102847 |
| * tree-vect-stmts.c (vect_model_load_cost): Add the scalar |
| load cost in the prologue for VMAT_INVARIANT. |
| |
| 2021-10-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102847 |
| * tree-vect-stmts.c (vect_model_load_cost): Explicitely |
| handle VMAT_INVARIANT as a splat in the prologue. |
| |
| 2021-10-21 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/102812 |
| * config/i386/i386.c (ix86_get_ssemov): Adjust HFmode vector |
| move to use the same logic as HImode. |
| |
| 2021-10-21 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_build_slp_tree_1): Remove |
| superfluous gimple_call_nothrow_p check. |
| |
| 2021-10-21 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-cfg.c (maybe_remove_writeonly_store): Add dce_ssa_names argument. |
| Mark the ssa-name of the rhs as one to be removed. |
| (execute_fixup_cfg): Update call to maybe_remove_writeonly_store. |
| Call simple_dce_from_worklist at the end to a simple dce. |
| |
| 2021-10-21 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-cfg.c (maybe_remove_writeonly_store): New function |
| factored out from ... |
| (execute_fixup_cfg): Here. Call maybe_remove_writeonly_store. |
| |
| 2021-10-21 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-cfg.c (execute_fixup_cfg): Remove comment |
| about standalone pass. |
| |
| 2021-10-21 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-cfg.c (execute_fixup_cfg): Output when the statement |
| is removed when it is a write only var. |
| |
| 2021-10-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::maybe_register_path): |
| Avoid threading circular paths. |
| |
| 2021-10-20 Alex Coplan <alex.coplan@arm.com> |
| |
| * calls.c (initialize_argument_information): Remove some dead |
| code, remove handling for function_arg returning const_int. |
| * doc/tm.texi: Delete documentation for unused target hooks. |
| * doc/tm.texi.in: Likewise. |
| * target.def (load_bounds_for_arg): Delete. |
| (store_bounds_for_arg): Delete. |
| (load_returned_bounds): Delete. |
| (store_returned_bounds): Delete. |
| * targhooks.c (default_load_bounds_for_arg): Delete. |
| (default_store_bounds_for_arg): Delete. |
| (default_load_returned_bounds): Delete. |
| (default_store_returned_bounds): Delete. |
| * targhooks.h (default_load_bounds_for_arg): Delete. |
| (default_store_bounds_for_arg): Delete. |
| (default_load_returned_bounds): Delete. |
| (default_store_returned_bounds): Delete. |
| |
| 2021-10-20 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Basic Asm): Clarify that asm is not an |
| extension in C++. |
| * doc/invoke.texi (-fno-asm): Fix description for C++. |
| |
| 2021-10-20 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/install.texi: Remove link to old.html |
| |
| 2021-10-20 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_cmtst_same_<mode>): New. |
| |
| 2021-10-20 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_narrow_trunc<mode>): New. |
| |
| 2021-10-20 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_simd_ashr<mode>): Add case cmp |
| case. |
| * config/aarch64/constraints.md (D1): New. |
| |
| 2021-10-20 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md |
| (*aarch64_<srn_op>topbits_shuffle<mode>_le): New. |
| (*aarch64_topbits_shuffle<mode>_le): New. |
| (*aarch64_<srn_op>topbits_shuffle<mode>_be): New. |
| (*aarch64_topbits_shuffle<mode>_be): New. |
| * config/aarch64/predicates.md |
| (aarch64_simd_shift_imm_vec_exact_top): New. |
| |
| 2021-10-20 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (*aarch64_<srn_op>shrn<mode>_vect, |
| *aarch64_<srn_op>shrn<mode>2_vect_le, |
| *aarch64_<srn_op>shrn<mode>2_vect_be): New. |
| * config/aarch64/iterators.md (srn_op): New. |
| |
| 2021-10-20 Chung-Lin Tang <cltang@codesourcery.com> |
| |
| * omp-low.c (omp_copy_decl_2): For !ctx, use record_vars to add new copy |
| as local variable. |
| (scan_sharing_clauses): Place copy of OMP_CLAUSE_IN_REDUCTION decl in |
| ctx->outer instead of ctx. |
| |
| 2021-10-20 Martin Liska <mliska@suse.cz> |
| |
| Revert: |
| 2021-10-19 Martin Liska <mliska@suse.cz> |
| |
| PR target/102374 |
| * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. |
| * system.h (strip_whilespaces): New function. |
| |
| 2021-10-20 Martin Liska <mliska@suse.cz> |
| |
| Revert: |
| 2021-10-19 Martin Liska <mliska@suse.cz> |
| |
| PR target/102375 |
| * config/aarch64/aarch64.c (aarch64_process_one_target_attr): |
| Strip whitespaces. |
| |
| 2021-10-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_case_values_threshold): |
| Change to 8 with -Os, 11 otherwise. |
| |
| 2021-10-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| * config/aarch64/aarch64.c (neoversev1_tunings): |
| Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. |
| (neoversen2_tunings): Likewise. |
| |
| 2021-10-20 Wilco Dijkstra <wdijkstr@arm.com> |
| |
| PR target/100966 |
| * config/aarch64/aarch64.md (frint_pattern): Update comment. |
| * config/aarch64/aarch64-simd-builtins.def: Change frintn to roundeven. |
| * config/aarch64/arm_fp16.h: Change frintn to roundeven. |
| * config/aarch64/arm_neon.h: Likewise. |
| * config/aarch64/iterators.md (frint_pattern): Use roundeven for FRINTN. |
| |
| 2021-10-20 Martin Liska <mliska@suse.cz> |
| |
| * config/arm/arm.c (arm_unwind_emit_sequence): Do not declare |
| already declared global variable. |
| (arm_unwind_emit_set): Use out_file as function argument. |
| (arm_unwind_emit): Likewise. |
| * config/darwin.c (machopic_output_data_section_indirection): Likewise. |
| (machopic_output_stub_indirection): Likewise. |
| (machopic_output_indirection): Likewise. |
| (machopic_finish): Likewise. |
| * config/i386/i386.c (ix86_asm_output_function_label): Likewise. |
| * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise. |
| * config/ia64/ia64.c (process_epilogue): Likewise. |
| (process_cfa_adjust_cfa): Likewise. |
| (process_cfa_register): Likewise. |
| (process_cfa_offset): Likewise. |
| (ia64_asm_unwind_emit): Likewise. |
| * config/s390/s390.c (s390_asm_output_function_label): Likewise. |
| |
| 2021-10-20 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c |
| (aarch64_general_gimple_fold_builtin): |
| lower vld1 and vst1 variants of the neon builtins |
| * config/aarch64/aarch64-protos.h: |
| (aarch64_general_gimple_fold_builtin): Add gsi parameter. |
| * config/aarch64/aarch64.c (aarch64_general_gimple_fold_builtin): |
| Likwise. |
| |
| 2021-10-20 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * match.pd: Generate IFN_TRUNC. |
| |
| 2021-10-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102853 |
| * tree-data-ref.c (split_constant_offset_1): Bail out |
| immediately if the expression traps on overflow. |
| |
| 2021-10-20 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::~back_threader): Remove. |
| |
| 2021-10-20 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (back_jt_path_registry::adjust_paths_after_duplication): |
| Remove superflous debugging message. |
| (back_jt_path_registry::duplicate_thread_path): Same. |
| |
| 2021-10-20 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader_registry::back_threader_registry): |
| Remove. |
| (back_threader_registry::register_path): Remove m_threaded_paths. |
| |
| 2021-10-20 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102814 |
| * doc/invoke.texi: Document --param=max-fsm-thread-length. |
| * params.opt: Add --param=max-fsm-thread-length. |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Fail on paths |
| longer than max-fsm-thread-length. |
| |
| 2021-10-20 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR middle-end/102764 |
| * cfgexpand.c (expand_gimple_basic_block): Disregard a final debug |
| statement to reset the current location for the outgoing edges. |
| |
| 2021-10-20 Aldy Hernandez <aldyh@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-threadupdate.c (cancel_thread): Dump threading reason |
| on the same line as the threading cancellation. |
| (jt_path_registry::cancel_invalid_paths): Avoid rotating loops. |
| Avoid threading through loop headers where the path remains in the |
| loop. |
| |
| 2021-10-20 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * tree-object-size.c (unknown): Make into a function. Adjust |
| all uses. |
| (unknown_object_size): Simplify implementation. |
| |
| 2021-10-20 Hongtao Liu <hongtao.liu@intel.com> |
| Kewen Lin <linkw@linux.ibm.com> |
| |
| * doc/sourcebuild.texi (Effective-Target Keywords): Document |
| vect_slp_v2qi_store, vect_slp_v4qi_store, vect_slp_v8qi_store, |
| vect_slp_v16qi_store, vect_slp_v2hi_store, |
| vect_slp_v4hi_store, vect_slp_v2si_store, vect_slp_v4si_store. |
| |
| 2021-10-19 Jonathan Wakely <jwakely@redhat.com> |
| |
| * doc/extend.texi (Basic PowerPC Built-in Functions): Fix typo. |
| |
| 2021-10-19 Paul A. Clarke <pc@us.ibm.com> |
| |
| PR target/101893 |
| PR target/102719 |
| * config/rs6000/emmintrin.h: Guard POWER8 intrinsics. |
| * config/rs6000/pmmintrin.h: Same. |
| * config/rs6000/smmintrin.h: Same. |
| * config/rs6000/tmmintrin.h: Same. |
| |
| 2021-10-19 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config.gcc (extra_headers): Add nmmintrin.h. |
| |
| 2021-10-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_supportable_dr_alignment): Add |
| misalignment parameter. |
| * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): |
| Do not change DR_MISALIGNMENT in place, instead pass the |
| adjusted misalignment to vect_supportable_dr_alignment. |
| (vect_peeling_supportable): Likewise. |
| (vect_peeling_hash_get_lowest_cost): Adjust. |
| (vect_enhance_data_refs_alignment): Likewise. |
| (vect_vfa_access_size): Likewise. |
| (vect_supportable_dr_alignment): Add misalignment |
| parameter and simplify. |
| * tree-vect-stmts.c (get_negative_load_store_type): Adjust. |
| (get_group_load_store_type): Likewise. |
| (get_load_store_type): Likewise. |
| |
| 2021-10-19 Clément Chigot <clement.chigot@atos.net> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_file_end): Move |
| __tls_get_addr reference to .text csect. |
| |
| 2021-10-19 Martin Liska <mliska@suse.cz> |
| |
| PR target/102375 |
| * config/aarch64/aarch64.c (aarch64_process_one_target_attr): |
| Strip whitespaces. |
| |
| 2021-10-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_get_store_cost): Adjust signature. |
| (vect_get_load_cost): Likewise. |
| * tree-vect-data-refs.c (vect_get_data_access_cost): Get |
| alignment support scheme and misalignment as arguments |
| and pass them down. |
| (vect_get_peeling_costs_all_drs): Compute that info here |
| and note that we shouldn't need to. |
| * tree-vect-stmts.c (vect_model_store_cost): Get |
| alignment support scheme and misalignment as arguments. |
| (vect_get_store_cost): Likewise. |
| (vect_model_load_cost): Likewise. |
| (vect_get_load_cost): Likewise. |
| (vectorizable_store): Pass down alignment support scheme |
| and misalignment to costing. |
| (vectorizable_load): Likewise. |
| |
| 2021-10-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (get_negative_load_store_type): Add |
| offset output parameter and initialize it. |
| (get_group_load_store_type): Likewise. |
| (get_load_store_type): Likewise. |
| (vectorizable_store): Use offset as computed by |
| get_load_store_type. |
| (vectorizable_load): Likewise. |
| |
| 2021-10-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102827 |
| * tree-if-conv.c (predicate_statements): Add pe parameter |
| and use that edge to insert invariant stmts on. |
| (combine_blocks): Pass through pe. |
| (tree_if_conversion): Compute the edge to insert invariant |
| stmts on and pass it along. |
| |
| 2021-10-19 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR target/102785 |
| * config/bfin/bfin.md (addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, |
| sssubaddv2hi3): Swap the order of operators in vec_concat. |
| |
| 2021-10-19 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (*altivec_vmrghb_internal): Delete. |
| (altivec_vmrghb_direct): New. |
| (*altivec_vmrghh_internal): Delete. |
| (altivec_vmrghh_direct): New. |
| (*altivec_vmrghw_internal): Delete. |
| (altivec_vmrghw_direct_<mode>): New. |
| (altivec_vmrghw_direct): Delete. |
| (*altivec_vmrglb_internal): Delete. |
| (altivec_vmrglb_direct): New. |
| (*altivec_vmrglh_internal): Delete. |
| (altivec_vmrglh_direct): New. |
| (*altivec_vmrglw_internal): Delete. |
| (altivec_vmrglw_direct_<mode>): New. |
| (altivec_vmrglw_direct): Delete. |
| * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. |
| * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): |
| Adjust. |
| * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust. |
| (vsx_xxmrglw_<mode>): Adjust. |
| |
| 2021-10-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| * passes.def: Change threading comment before pass_ccp pass. |
| |
| 2021-10-19 Haochen Gui <guihaoc@gcc.gnu.org> |
| |
| * config/rs6000/rs6000-call.c (altivec_expand_lxvr_builtin): |
| Modify the expansion for sign extension. All extensions are done |
| within VSX registers. |
| |
| 2021-10-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (get_group_load_store_type): Add |
| misalignment output parameter and initialize it. |
| (get_group_load_store_type): Likewise. |
| (vectorizable_store): Remove now redundant queries. |
| (vectorizable_load): Likewise. |
| |
| 2021-10-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_supportable_dr_alignment): Remove |
| check_aligned argument. |
| * tree-vect-data-refs.c (vect_supportable_dr_alignment): |
| Likewise. |
| (vect_peeling_hash_insert): Add supportable_if_not_aligned |
| argument and do not call vect_supportable_dr_alignment here. |
| (vect_peeling_supportable): Adjust. |
| (vect_enhance_data_refs_alignment): Compute whether the |
| access is supported with different alignment here and |
| pass that down to vect_peeling_hash_insert. |
| (vect_vfa_access_size): Adjust. |
| * tree-vect-stmts.c (vect_get_store_cost): Likewise. |
| (vect_get_load_cost): Likewise. |
| (get_negative_load_store_type): Likewise. |
| (get_group_load_store_type): Likewise. |
| (get_load_store_type): Likewise. |
| |
| 2021-10-19 Martin Liska <mliska@suse.cz> |
| |
| PR target/102374 |
| * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. |
| * system.h (strip_whilespaces): New function. |
| |
| 2021-10-19 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: |
| (_mm512_set1_pch): New intrinsic. |
| * config/i386/avx512fp16vlintrin.h: |
| (_mm256_set1_pch): New intrinsic. |
| (_mm_set1_pch): Ditto. |
| |
| 2021-10-18 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/102796 |
| * gimple-range.cc (gimple_ranger::range_on_edge): Process EH edges |
| normally. Return get_tree_range for non gimple_range_ssa_p names. |
| (gimple_ranger::range_of_stmt): Use get_tree_range for non |
| gimple_range_ssa_p names. |
| |
| 2021-10-18 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/102761 |
| * config/i386/i386.c (ix86_print_operand_address): |
| Error out for non-address_operand asm operands. |
| |
| 2021-10-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_peeling_hash_insert): Do |
| not auto-convert dr_alignment_support to bool. |
| (vect_peeling_supportable): Likewise. |
| (vect_enhance_data_refs_alignment): Likewise. |
| (vect_supportable_dr_alignment): Commonize read/write case. |
| * tree-vect-stmts.c (vect_get_store_cost): Use |
| dr_alignment_support, not int, for the vect_supportable_dr_alignment |
| result. |
| (vect_get_load_cost): Likewise. |
| |
| 2021-10-18 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * tree-object-size.c (object_sizes_execute): Consolidate LHS |
| null check and do it early. |
| |
| 2021-10-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_store): Use the |
| computed alignment scheme instead of querying |
| aligned_access_p. |
| |
| 2021-10-18 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_store): Do not recompute |
| alignment scheme already determined by get_load_store_type. |
| |
| 2021-10-18 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (class pass_thread_jumps_full): |
| Clone corresponding pass. |
| |
| 2021-10-18 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * combine.c (recog_for_combine): For an unrecognized move/set of |
| a constant, try force_const_mem to place it in the constant pool. |
| * cse.c (constant_pool_entries_cost, constant_pool_entries_regcost): |
| Delete global variables (that are no longer assigned a cost value). |
| (cse_insn): Simplify logic for deciding whether to place a folded |
| constant in the constant pool using force_const_mem. |
| (cse_main): Remove zero initialization of constant_pool_entries_cost |
| and constant_pool_entries_regcost. |
| * config/i386/i386.c (ix86_rtx_costs): Make memory accesses |
| fractionally more expensive, when optimizing for speed. |
| |
| 2021-10-18 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/102746 |
| PR gcov-profile/102747 |
| * gcov.c (main): Return return_code. |
| (output_gcov_file): Mark return_code when error happens. |
| (generate_results): Likewise. |
| (read_graph_file): Likewise. |
| (read_count_file): Likewise. |
| |
| 2021-10-18 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/bfin/bfin.md (define_constants): Remove UNSPEC_ONES. |
| (define_insn "ones"): Replace UNSPEC_ONES with a truncate of |
| a popcount, allowing compile-time evaluation/simplification. |
| (popcountsi2, popcounthi2): New expanders using a "ones" insn. |
| |
| 2021-10-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102788 |
| * tree-vect-patterns.c (vect_init_pattern_stmt): Allow |
| a NULL vectype. |
| (vect_pattern_recog_1): Likewise. |
| (vect_recog_bool_pattern): Continue matching the pattern |
| even if we do not have a vector type for a conversion |
| result. |
| |
| 2021-10-18 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.c (simplify_const_unary_operation) [SS_NEG, SS_ABS]: |
| Evalute SS_NEG and SS_ABS of a constant argument. |
| |
| 2021-10-18 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/93183 |
| * gimple-match-head.c (try_conditional_simplification): Add case for single operand. |
| * internal-fn.def: Add entry for COND_NEG internal function. |
| * internal-fn.c (FOR_EACH_CODE_MAPPING): Add entry for |
| NEGATE_EXPR, COND_NEG mapping. |
| * optabs.def: Add entry for cond_neg_optab. |
| * match.pd (UNCOND_UNARY, COND_UNARY): New operator lists. |
| (vec_cond COND (foo A) B) -> (IFN_COND_FOO COND A B): New pattern. |
| (vec_cond COND B (foo A)) -> (IFN_COND_FOO ~COND A B): Likewise. |
| |
| 2021-10-18 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-strlen.c (class strlen_pass): Rename from |
| strlen_dom_walker. |
| (handle_builtin_stxncpy_strncat): Move to strlen_pass. |
| (handle_assign): Same. |
| (adjust_last_stmt): Same. |
| (maybe_warn_overflow): Same. |
| (handle_builtin_strlen): Same. |
| (handle_builtin_strchr): Same. |
| (handle_builtin_strcpy): Same. |
| (handle_builtin_strncat): Same. |
| (handle_builtin_stxncpy_strncat): Same. |
| (handle_builtin_memcpy): Same. |
| (handle_builtin_strcat): Same. |
| (handle_alloc_call): Same. |
| (handle_builtin_memset): Same. |
| (handle_builtin_memcmp): Same. |
| (get_len_or_size): Same. |
| (strxcmp_eqz_result): Same. |
| (handle_builtin_string_cmp): Same. |
| (handle_pointer_plus): Same. |
| (count_nonzero_bytes_addr): Same. |
| (count_nonzero_bytes): Same. |
| (handle_store): Same. |
| (strlen_check_and_optimize_call): Same. |
| (handle_integral_assign): Same. |
| (check_and_optimize_stmt): Same. |
| (printf_strlen_execute): Rename strlen_dom_walker to strlen_pass. |
| |
| 2021-10-18 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102798 |
| * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): |
| Only copy points-to info to newly generated SSA names. |
| |
| 2021-10-18 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.c (dbg_cnt_process_opt): Remove unused but set variable. |
| * gcov.c (get_cycles_count): Likewise. |
| * lto-compress.c (lto_compression_zlib): Likewise. |
| (lto_uncompression_zlib): Likewise. |
| * targhooks.c (default_pch_valid_p): Likewise. |
| |
| 2021-10-17 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-pass.h (make_pass_thread_jumps_full): New. |
| * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Inline. |
| (try_thread_blocks): Add resolve and speed arguments. |
| (pass_thread_jumps::execute): Inline. |
| (do_early_thread_jumps): New. |
| (do_thread_jumps): New. |
| (make_pass_thread_jumps): Move. |
| (pass_early_thread_jumps::gate): Inline. |
| (pass_early_thread_jumps::execute): Inline. |
| (class pass_thread_jumps_full): New. |
| |
| 2021-10-16 Piotr Kubaj <pkubaj@FreeBSD.org> |
| |
| * configure.ac: Treat powerpc64*-*-freebsd* the same as |
| powerpc64-*-freebsd*. |
| * configure: Regenerate. |
| |
| 2021-10-16 H.J. Lu <hjl.tools@gmail.com> |
| |
| * value-query.cc (get_ssa_name_ptr_info_nonnull): Change |
| set_ptr_nonull to set_ptr_nonnull in comments. |
| |
| 2021-10-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR tree-optimization/102720 |
| * tree-ssa-structalias.c (compute_points_to_sets): Fix producing |
| of call used and clobbered sets. |
| |
| 2021-10-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (LINK_COMMAND_SPEC_A): Update 'r' handling to |
| skip gomp and itm when r or nodefaultlibs is given. |
| (DSYMUTIL_SPEC): Do not call dsymutil for '-r' link lines. |
| Update ordering of exclusions, remove duplicate 'v' addition |
| (collect2 will add this from the main command line). |
| |
| 2021-10-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-driver.c (darwin_driver_init): Revise comments, handle |
| filelist and framework options in specs instead of code. |
| * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link |
| specs that are really driver ones. |
| (DARWIN_CC1_SPEC): Likewise. |
| (CPP_SPEC): Likewise. |
| (SYSROOT_SPEC): Append space. |
| (LINK_SYSROOT_SPEC): Remove most driver link specs. |
| (STANDARD_STARTFILE_PREFIX_2): Update link-related specs. |
| (STARTFILE_SPEC): Likewise. |
| (ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap. |
| (ASM_SPEC): Update driver-related specs. |
| (ASM_FINAL_SPEC): Likewise. |
| * config/darwin.opt: Remove now unused option aliases. |
| * config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt. |
| (ASM_SPEC): Update driver-related specs. |
| |
| 2021-10-15 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386.c (ix86_hardreg_mov_ok): For vector modes, |
| allow standard_sse_constant_p immediate constants. |
| |
| 2021-10-15 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.gcc: Add tm-dwarf2.h to tm_d-file. |
| |
| 2021-10-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.h (gimple_range_ssa_p): Don't process names |
| that occur in abnormal phis. |
| * gimple-range.cc (gimple_ranger::range_on_edge): Return false for |
| abnormal and EH edges. |
| * gimple-ssa-evrp.c (rvrp_folder::value_of_expr): Ditto. |
| (rvrp_folder::value_on_edge): Ditto. |
| (rvrp_folder::value_of_stmt): Ditto. |
| (hybrid_folder::value_of_expr): Ditto for ranger queries. |
| (hybrid_folder::value_on_edge): Ditto. |
| (hybrid_folder::value_of_stmt): Ditto. |
| * value-query.cc (gimple_range_global): Always return a range if |
| the type is supported. |
| |
| 2021-10-15 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.md: Consistently use "rG" constraint for copy |
| instruction in move patterns. |
| |
| 2021-10-15 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-hsa.h (S_FIJI): Set unconditionally. |
| (S_900): Likewise. |
| (S_906): Likewise. |
| * config/gcn/gcn.c: Hard code SRAM ECC settings for old architectures. |
| * config/gcn/mkoffload.c (ELFABIVERSION_AMDGPU_HSA): Rename to ... |
| (ELFABIVERSION_AMDGPU_HSA_V3): ... this. |
| (ELFABIVERSION_AMDGPU_HSA_V4): New. |
| (SET_SRAM_ECC_UNSUPPORTED): New. |
| (copy_early_debug_info): Create elf flags to match the other objects. |
| (main): Just let the attribute flags pass through. |
| |
| 2021-10-15 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * tree-loop-distribution.c (reduction_var_overflows_first): |
| Pass the type of reduction_var as first argument as it is also |
| done for the load type. |
| (loop_distribution::transform_reduction_loop): Add missing |
| TREE_TYPE while determining precission of reduction_var. |
| |
| 2021-10-15 Richard Biener <rguenther@suse.de> |
| |
| * defaults.h (PREFERRED_DEBUGGING_TYPE): Choose DWARF2_DEBUG |
| when not set. |
| * toplev.c (process_options): Warn when STABS debugging is |
| enabled but not the preferred format. |
| * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Define to |
| DBX_DEBUG. |
| * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Likewise. |
| |
| 2021-10-15 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/102762 |
| * tree-inline.c (copy_bb): Avoid underflowing nargs. |
| |
| 2021-10-15 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_vec_perm): Convert |
| HFmode input operand to HImode. |
| (ix86_vectorize_vec_perm_const): Likewise. |
| * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1_hf): |
| New define_insn. |
| (*avx512f_permvar_truncv8siv8hi_1_hf): |
| Likewise. |
| |
| 2021-10-15 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102682 |
| * expmed.c (store_bit_field_1): Ensure a LHS subreg would |
| not create a paradoxical subreg. |
| |
| 2021-10-15 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_vector_init): |
| For half_vector concat for HFmode, handle them like HImode. |
| |
| 2021-10-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (class back_threader): Add m_resolve. |
| (back_threader::back_threader): Same. |
| (back_threader::resolve_phi): Try to solve without looking back if |
| possible. |
| (back_threader::find_paths_to_names): Same. |
| (try_thread_blocks): Pass resolve argument to back threader. |
| (pass_early_thread_jumps::execute): Same. |
| |
| 2021-10-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| * doc/invoke.texi: Remove max-fsm-thread-length, |
| max-fsm-thread-paths, and fsm-maximum-phi-arguments. |
| * params.opt: Same. |
| * tree-ssa-threadbackward.c (back_threader::back_threader): Remove |
| argument. |
| (back_threader_registry::back_threader_registry): Same. |
| (back_threader_profitability::profitable_path_p): Remove |
| param_max_fsm_thread-length. |
| (back_threader_registry::register_path): Remove |
| m_max_allowable_paths. |
| |
| 2021-10-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (class back_threader): Make m_imports |
| an auto_bitmap. |
| (back_threader::~back_threader): Do not release m_path. |
| |
| 2021-10-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/102738 |
| * vr-values.c (simplify_using_ranges::simplify): Handle RSHIFT_EXPR. |
| |
| 2021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com> |
| |
| * omp-general.c (omp_check_context_selector): Move from c-omp.c. |
| (omp_mark_declare_variant): Move from c-omp.c. |
| (omp_context_name_list_prop): Update for Fortran strings. |
| * omp-general.h (omp_check_context_selector): New prototype. |
| (omp_mark_declare_variant): New prototype. |
| |
| 2021-10-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_density_test): Move early |
| exit test further up the function. |
| |
| 2021-10-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/arm/arm.c (arm_add_stmt_cost): Delete. |
| (TARGET_VECTORIZE_ADD_STMT_COST): Delete. |
| |
| 2021-10-14 Martin Jambor <mjambor@suse.cz> |
| |
| * doc/invoke.texi (Optimize Options): Add entry for |
| ipa-cp-recursive-freq-factor. |
| |
| 2021-10-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * match.pd: New rule. |
| |
| 2021-10-14 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/102557 |
| * ipa-modref-tree.h (modref_access_node::update2): |
| Also check that parm_offset is unchanged. |
| (modref_ref_node::insert_access): Fix updating of |
| parameter. |
| |
| 2021-10-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::resolve_phi): Add |
| FIXME note. |
| |
| 2021-10-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102659 |
| * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Also |
| rewrite pointer typed undefined overflow operations. |
| (predicate_statements): Likewise. Make sure to emit invariant |
| conversions in the preheader. |
| * tree-vectorizer.c (vect_loop_vectorized_call): Look through |
| non-empty preheaders. |
| * tree-data-ref.c (dr_analyze_indices): Strip useless |
| conversions to the MEM_REF base type. |
| |
| 2021-10-14 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Stop using AUTODETECT_VALUE |
| and use EnabledBy where possible. |
| * opts.c: Enable OPT_fvar_tracking with optimize >= 1. |
| * toplev.c (AUTODETECT_VALUE): Remove macro. |
| (process_options): Simplify by using EnabledBy and |
| OPT_fvar_tracking. Use OPTION_SET_P macro instead of |
| AUTODETECT_VALUE. |
| |
| 2021-10-14 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vld1_s8_x3): Use signed type for |
| pointer parameter. |
| (vld1_s32_x3): Likewise. |
| |
| 2021-10-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102736 |
| PR tree-optimization/102736 |
| * gimple-range-path.cc (path_range_query::range_on_path_entry): |
| Assert that the requested range is defined outside the path. |
| (path_range_query::ssa_range_in_phi): Do not call |
| range_on_path_entry for SSA names that are defined within the |
| path. |
| |
| 2021-10-14 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin-driver.c (darwin_find_version_from_kernel): |
| Quote internal identifiers and avoid contractions in |
| warnings. |
| (darwin_default_min_version): Likewise. |
| (darwin_driver_init): Likewise. |
| |
| 2021-10-14 Martin Jambor <mjambor@suse.cz> |
| |
| * params.opt (ipa-cp-recursive-freq-factor): New. |
| * ipa-cp.c (ipcp_value): Switch to inline initialization. New members |
| scc_no, self_recursion_generated_level, same_scc and |
| self_recursion_generated_p. |
| (ipcp_lattice::add_value): Replaced parameter unlimited with |
| same_lat_gen_level, usit it determine limit of values and store it to |
| the value. |
| (ipcp_lattice<valtype>::print): Dump the new fileds. |
| (allocate_and_init_ipcp_value): Take same_lat_gen_level as a new |
| parameter and store it to the new value. |
| (self_recursively_generated_p): Removed. |
| (propagate_vals_across_arith_jfunc): Use self_recursion_generated_p |
| instead of self_recursively_generated_p, store self generation level |
| to such values. |
| (value_topo_info<valtype>::add_val): Set scc_no. |
| (value_topo_info<valtype>::propagate_effects): Multiply frequencies of |
| recursively feeding values and self generated values by appropriate |
| new factors. |
| |
| 2021-10-14 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Remove |
| redundant test for flag_vect_cost_model. |
| |
| 2021-10-14 Aldy Hernandez <aldyh@redhat.com> |
| |
| * bitmap.c (debug): New overloaded function for auto_bitmaps. |
| * bitmap.h (debug): Same. |
| |
| 2021-10-14 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_mask_fcmadd_pch): |
| Adjust builtin call. |
| (_mm512_mask3_fcmadd_pch): Likewise. |
| (_mm512_mask_fmadd_pch): Likewise |
| (_mm512_mask3_fmadd_pch): Likewise |
| (_mm512_mask_fcmadd_round_pch): Likewise |
| (_mm512_mask3_fcmadd_round_pch): Likewise |
| (_mm512_mask_fmadd_round_pch): Likewise |
| (_mm512_mask3_fmadd_round_pch): Likewise |
| (_mm_mask_fcmadd_sch): Likewise |
| (_mm_mask3_fcmadd_sch): Likewise |
| (_mm_mask_fmadd_sch): Likewise |
| (_mm_mask3_fmadd_sch): Likewise |
| (_mm_mask_fcmadd_round_sch): Likewise |
| (_mm_mask3_fcmadd_round_sch): Likewise |
| (_mm_mask_fmadd_round_sch): Likewise |
| (_mm_mask3_fmadd_round_sch): Likewise |
| (_mm_fcmadd_round_sch): Likewise |
| * config/i386/avx512fp16vlintrin.h (_mm_mask_fmadd_pch): |
| Adjust builtin call. |
| (_mm_mask3_fmadd_pch): Likewise |
| (_mm256_mask_fmadd_pch): Likewise |
| (_mm256_mask3_fmadd_pch): Likewise |
| (_mm_mask_fcmadd_pch): Likewise |
| (_mm_mask3_fcmadd_pch): Likewise |
| (_mm256_mask_fcmadd_pch): Likewise |
| (_mm256_mask3_fcmadd_pch): Likewise |
| * config/i386/i386-builtin.def: Add mask3 builtin for complex |
| fma, and adjust mask_builtin to corresponding expander. |
| * config/i386/i386-expand.c (ix86_expand_round_builtin): |
| Skip eraseing embedded rounding for expanders that emits |
| multiple insns. |
| * config/i386/sse.md (complexmove): New mode_attr. |
| (<avx512>_fmaddc_<mode>_mask1<round_expand_name>): New expander. |
| (<avx512>_fcmaddc_<mode>_mask1<round_expand_name>): Likewise. |
| (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name>): Likewise. |
| (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>): Likewise. |
| (avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>): Likewise. |
| (avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>): Likewise. |
| * config/i386/subst.md (round_embedded_complex): New subst. |
| |
| 2021-10-14 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. |
| (cbranchdf4): Likewise. |
| Add missing move patterns for TARGET_SOFT_FLOAT. |
| |
| 2021-10-13 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_vector_move): Use a |
| pseudo intermediate when moving a SUBREG into a hard register, |
| by checking ix86_hardreg_mov_ok. |
| (ix86_expand_vector_extract): Store zero-extended SImode |
| intermediate in a pseudo, then set target using a SUBREG_PROMOTED |
| annotated subreg. |
| * config/i386/sse.md (mov<VMOVE>_internal): Prevent CSE creating |
| complex (SUBREG) sets of (vector) hard registers before reload, by |
| checking ix86_hardreg_mov_ok. |
| |
| 2021-10-13 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * ctfc.h (enum ctf_dtu_d_union_enum): Remove redundant comma. |
| |
| 2021-10-13 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * dwarf2ctf.c (gen_ctf_array_type): Fix typo in comment. |
| |
| 2021-10-13 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102630 |
| * pointer-query.cc (compute_objsize_r): Handle named address spaces. |
| |
| 2021-10-13 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * collect2.c (is_lto_object_file): Release simple-object |
| resources, close files. |
| |
| 2021-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com> |
| |
| * config/arm/arm.c (thumb2_legitimate_address_p): Use VALID_MVE_MODE |
| when checking mve addressing modes. |
| (mve_vector_mem_operand): Fix the way we handle pre, post and offset |
| addressing modes. |
| (arm_print_operand): Fix printing of POST_ and PRE_MODIFY. |
| * config/arm/mve.md: Use mve_memory_operand predicate everywhere where |
| there is a single Ux constraint. |
| |
| 2021-10-13 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.md (muldi3): Add support for inlining 64-bit |
| multiplication on 32-bit PA 1.1 and 2.0 targets. |
| |
| 2021-10-13 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/90364 |
| * coverage.c (build_info): Emit checksum to the global variable. |
| (build_info_type): Add new field for checksum. |
| (coverage_obj_finish): Pass object_checksum. |
| (coverage_init): Use 0 as checksum for .gcno files. |
| * gcov-dump.c (dump_gcov_file): Dump also new checksum field. |
| * gcov.c (read_graph_file): Read also checksum. |
| * doc/invoke.texi: Document the behaviour change. |
| |
| 2021-10-13 Richard Biener <rguenther@suse.de> |
| |
| * gimple-iterator.h (gsi_iterator_update): Add GSI_LAST_NEW_STMT, |
| start at integer value 2. |
| * gimple-iterator.c (gsi_insert_seq_nodes_before): Update |
| the iterator for GSI_LAST_NEW_STMT. |
| (gsi_insert_seq_nodes_after): Likewise. |
| * tree-if-conv.c (predicate_statements): Use GSI_LAST_NEW_STMT. |
| * tree-ssa.c (execute_update_addresses_taken): Correct bogus |
| arguments to gsi_replace. |
| |
| 2021-10-13 Martin Liska <mliska@suse.cz> |
| |
| PR target/102688 |
| * common.opt: Use EnabledBy instead of detection in |
| finish_options and process_options. |
| * opts.c (finish_options): Remove handling of |
| x_flag_unroll_all_loops. |
| * toplev.c (process_options): Likewise for flag_web and |
| flag_rename_registers. |
| |
| 2021-10-13 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102659 |
| * tree-if-conv.c (need_to_rewrite_undefined): New flag. |
| (if_convertible_gimple_assign_stmt_p): Mark the loop for |
| rewrite when stmts with undefined behavior on integer |
| overflow appear. |
| (combine_blocks): Predicate also when we need to rewrite stmts. |
| (predicate_statements): Rewrite affected stmts to something |
| with well-defined behavior on overflow. |
| (tree_if_conversion): Initialize need_to_rewrite_undefined. |
| |
| 2021-10-13 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/102714 |
| * ipa-sra.c (ptr_parm_has_nonarg_uses): Fix volatileness |
| check. |
| |
| 2021-10-13 Jose E. Marchesi <jose.marchesi@oracle.com> |
| |
| * dwarf2ctf.c: Fix typo in comment. |
| |
| 2021-10-12 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/101985 |
| * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. |
| * config/rs6000/rs6000-overload.def (VEC_COPYSIGN): Use SKIP to |
| avoid generating an automatic #define of vec_cpsgn. Use the |
| correct built-in for V4SFmode that doesn't depend on VSX. |
| |
| 2021-10-12 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/85730 |
| PR target/82524 |
| * config/i386/i386.md (*add<mode>_1_slp): Rewrite as |
| define_insn_and_split pattern. Add alternative 1 and split it |
| post reload to insert operand 1 into the low part of operand 0. |
| (*sub<mode>_1_slp): Ditto. |
| (*and<mode>_1_slp): Ditto. |
| (*<any_or:code><mode>_1_slp): Ditto. |
| (*ashl<mode>3_1_slp): Ditto. |
| (*<any_shiftrt:insn><mode>3_1_slp): Ditto. |
| (*<any_rotate:insn><mode>3_1_slp): Ditto. |
| (*neg<mode>_1_slp): New insn_and_split pattern. |
| (*one_cmpl<mode>_1_slp): Ditto. |
| |
| 2021-10-12 David Edelsohn <dje.gcc@gmail.com> |
| |
| * doc/install.texi: Update MinGW and mingw-64 Binaries |
| download links. |
| |
| 2021-10-12 Daniel Le Duc Khoi Nguyen <greenrecyclebin@gmail.com> |
| |
| * doc/extend.texi (Common Variable Attributes): Fix typos in |
| alloc_size documentation. |
| |
| 2021-10-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102696 |
| * tree-vect-slp.c (vect_build_slp_tree_2): Properly mark |
| the tree fatally failed when we reject a BIT_FIELD_REF. |
| |
| 2021-10-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102572 |
| * tree-vect-stmts.c (vect_build_gather_load_calls): When |
| gathering the vectorized defs for the mask pass in the |
| desired mask vector type so invariants will be handled |
| correctly. |
| |
| 2021-10-12 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-sve.md (*fcm<cmp_op><mode>_bic_combine, |
| *fcm<cmp_op><mode>_nor_combine, *fcmuo<mode>_bic_combine, |
| *fcmuo<mode>_nor_combine): New. |
| |
| 2021-10-12 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/102588 |
| * config/sparc/sparc-modes.def (OI): New integer mode. |
| |
| 2021-10-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimple-fold.h (clear_padding_type_may_have_padding_p): Declare. |
| * gimple-fold.c (clear_padding_type_may_have_padding_p): No longer |
| static. |
| |
| 2021-10-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-vectorizer.h (loop_cost_model): New function. |
| (unlimited_cost_model): Use it. |
| * tree-vect-loop.c (vect_analyze_loop_costing): Use loop_cost_model |
| call instead of flag_vect_cost_model. |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. |
| (vect_prune_runtime_alias_test_list): Likewise. Also use it instead |
| of flag_simd_cost_model. |
| |
| 2021-10-12 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102483 |
| * config/i386/i386-expand.c (emit_reduc_half): Handle |
| V4QImode. |
| * config/i386/mmx.md (reduc_<code>_scal_v4qi): New expander. |
| (reduc_plus_scal_v4qi): Ditto. |
| |
| 2021-10-12 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64, |
| _mm_mullo_epi32, _mm_mul_epi32, _mm_packus_epi32): New. |
| * config/rs6000/nmmintrin.h: Copy from i386, tweak to suit. |
| |
| 2021-10-12 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_cvtepi8_epi16, _mm_cvtepi8_epi32, |
| _mm_cvtepi8_epi64, _mm_cvtepi16_epi32, _mm_cvtepi16_epi64, |
| _mm_cvtepi32_epi64, _mm_cvtepu8_epi16, _mm_cvtepu8_epi32, |
| _mm_cvtepu8_epi64, _mm_cvtepu16_epi32, _mm_cvtepu16_epi64, |
| _mm_cvtepu32_epi64): New. |
| |
| 2021-10-12 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_test_all_zeros, |
| _mm_test_all_ones, _mm_test_mix_ones_zeros): Rewrite as macro. |
| |
| 2021-10-12 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_min_epi8, _mm_min_epu16, |
| _mm_min_epi32, _mm_min_epu32, _mm_max_epi8, _mm_max_epu16, |
| _mm_max_epi32, _mm_max_epu32): New. |
| |
| 2021-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (struct modref_access_node): Revert |
| accidental change. |
| (struct modref_ref_node): Likewise. |
| |
| 2021-10-11 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_tree::global_access_p): New member |
| function. |
| * ipa-modref.c: |
| (implicint_const_eaf_flags,implicit_pure_eaf_flags, |
| ignore_stores_eaf_flags): Move to ipa-modref.h |
| (remove_useless_eaf_flags): Remove early exit on NOCLOBBER. |
| (modref_summary::global_memory_read_p): New member function. |
| (modref_summary::global_memory_written_p): New member function. |
| * ipa-modref.h (modref_summary::global_memory_read_p, |
| modref_summary::global_memory_written_p): Declare. |
| (implicint_const_eaf_flags,implicit_pure_eaf_flags, |
| ignore_stores_eaf_flags): move here. |
| * tree-ssa-structalias.c: Include ipa-modref-tree.h, ipa-modref.h |
| and attr-fnspec.h. |
| (handle_rhs_call): Rewrite. |
| (handle_call_arg): New function. |
| (determine_global_memory_access): New function. |
| (handle_const_call): Remove |
| (handle_pure_call): Remove |
| (find_func_aliases_for_call): Update use of handle_rhs_call. |
| (compute_points_to_sets): Handle global memory acccesses |
| selectively |
| |
| 2021-10-11 Diane Meirowitz <diane.meirowitz@oracle.com> |
| |
| * doc/invoke.texi: Add link to UndefinedBehaviorSanitizer |
| documentation, mention UBSAN_OPTIONS, similar to what is done |
| for AddressSanitizer. |
| |
| 2021-10-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102683 |
| * internal-fn.c (expand_DEFERRED_INIT): Check for mode |
| availability before building an integer type for storage |
| purposes. |
| |
| 2021-10-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/101480 |
| * gimple.c (gimple_call_fnspec): Do not mark operator new/delete |
| as const. |
| |
| 2021-10-11 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Remove Init(2) for some options. |
| * toplev.c (process_options): Do not use AUTODETECT_VALUE, but |
| use rather OPTION_SET_P. |
| |
| 2021-10-11 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Remove usage of IRA_REGION_AUTODETECT. |
| * flag-types.h (enum ira_region): Likewise. |
| * toplev.c (process_options): Use OPTION_SET_P instead of |
| IRA_REGION_AUTODETECT. |
| |
| 2021-10-11 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-low.c (omp_runtime_api_call): Handle omp_get_max_teams, |
| omp_[sg]et_teams_thread_limit and omp_set_num_teams. |
| |
| 2021-10-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * config/s390/s390-protos.h (s390_rawmemchr): Add prototype. |
| * config/s390/s390.c (s390_rawmemchr): New function. |
| * config/s390/s390.md (rawmemchr<SINT:mode>): New expander. |
| * config/s390/vector.md (@vec_vfees<mode>): Basically a copy of |
| the pattern vfees<mode> from vx-builtins.md. |
| * config/s390/vx-builtins.md (*vfees<mode>): Remove. |
| |
| 2021-10-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> |
| |
| * builtins.c (get_memory_rtx): Change to external linkage. |
| * builtins.h (get_memory_rtx): Add function prototype. |
| * doc/md.texi (rawmemchr<mode>): Document. |
| * internal-fn.c (expand_RAWMEMCHR): Define. |
| * internal-fn.def (RAWMEMCHR): Add. |
| * optabs.def (rawmemchr_optab): Add. |
| * tree-loop-distribution.c (find_single_drs): Change return code |
| behaviour by also returning true if no single store was found |
| but a single load. |
| (loop_distribution::classify_partition): Respect the new return |
| code behaviour of function find_single_drs. |
| (loop_distribution::execute): Call new function |
| transform_reduction_loop in order to replace rawmemchr or strlen |
| like loops by calls into builtins. |
| (generate_reduction_builtin_1): New function. |
| (generate_rawmemchr_builtin): New function. |
| (generate_strlen_builtin_1): New function. |
| (generate_strlen_builtin): New function. |
| (generate_strlen_builtin_using_rawmemchr): New function. |
| (reduction_var_overflows_first): New function. |
| (determine_reduction_stmt_1): New function. |
| (determine_reduction_stmt): New function. |
| (loop_distribution::transform_reduction_loop): New function. |
| |
| 2021-10-11 Martin Liska <mliska@suse.cz> |
| |
| * tree.c (cl_option_hasher::hash): Use cl_optimization_hash |
| and remove legacy hashing code. |
| |
| 2021-10-11 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/100316 |
| * builtins.c (maybe_emit_call_builtin___clear_cache): Allow |
| CONST_INT for BEGIN and END, and use gcc_assert rather than |
| error. |
| |
| 2021-10-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/102441 |
| * var-tracking.c (add_stores): For cselib_sp_derived_value_p values |
| use MO_VAL_SET if loc is not sp. |
| |
| 2021-10-10 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/102622 |
| * match.pd: Swap the order of a?pow2cst:0 and a?-1:0 transformations. |
| Swap the order of a?0:pow2cst and a?0:-1 transformations. |
| |
| 2021-10-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102639 |
| * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Handle |
| HFmode. |
| (ix86_use_mask_cmp_p): Ditto. |
| (ix86_expand_sse_movcc): Ditto. |
| * config/i386/i386.md (setcc_hf_mask): New define_insn. |
| (movhf_mask): Ditto. |
| (UNSPEC_MOVCC_MASK): New unspec. |
| * config/i386/sse.md (UNSPEC_PCMP): Move to i386.md. |
| |
| 2021-10-08 Vladimir N. Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/102627 |
| * lra-constraints.c (split_reg): Use at least natural mode of hard reg. |
| |
| 2021-10-08 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Grow |
| bitmap if needed. |
| |
| 2021-10-08 Aldy Hernandez <aldyh@redhat.com> |
| |
| * value-range.cc (irange::debug): New. |
| * value-range.h (irange::debug): New. |
| |
| 2021-10-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR tree-optimization/102385 |
| * predict.h (change_edge_frequency): Declare. |
| * predict.c (change_edge_frequency): New function. |
| * tree-ssa-loop-manip.h (tree_transform_and_unroll_loop): Remove |
| edge argument. |
| (tree_unroll_loop): Likewise. |
| * gimple-loop-jam.c (tree_loop_unroll_and_jam): Update accordingly. |
| * tree-predcom.c (pcom_worker::tree_predictive_commoning_loop): |
| Likewise. |
| * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Likewise. |
| * tree-ssa-loop-manip.c (tree_unroll_loop): Likewise. |
| (tree_transform_and_unroll_loop): Likewise. Use single_dom_exit |
| to retrieve the exit edges. Make all the old profile update code |
| conditional on !single_loop_p -- the case it was written for -- |
| and use a different approach for the single-loop case. |
| |
| 2021-10-08 Martin Liska <mliska@suse.cz> |
| |
| * config/alpha/alpha.c (alpha_option_override): Use new macro |
| OPTION_SET_P. |
| * config/arc/arc.c (arc_override_options): Likewise. |
| * config/arm/arm.c (arm_option_override): Likewise. |
| * config/bfin/bfin.c (bfin_load_pic_reg): Likewise. |
| * config/c6x/c6x.c (c6x_option_override): Likewise. |
| * config/csky/csky.c: Likewise. |
| * config/darwin.c (darwin_override_options): Likewise. |
| * config/frv/frv.c (frv_option_override): Likewise. |
| * config/i386/djgpp.h: Likewise. |
| * config/i386/i386.c (ix86_stack_protect_guard): Likewise. |
| (ix86_max_noce_ifcvt_seq_cost): Likewise. |
| * config/ia64/ia64.c (ia64_option_override): Likewise. |
| (ia64_override_options_after_change): Likewise. |
| * config/m32c/m32c.c (m32c_option_override): Likewise. |
| * config/m32r/m32r.c (m32r_init): Likewise. |
| * config/m68k/m68k.c (m68k_option_override): Likewise. |
| * config/microblaze/microblaze.c (microblaze_option_override): Likewise. |
| * config/mips/mips.c (mips_option_override): Likewise. |
| * config/nios2/nios2.c (nios2_option_override): Likewise. |
| * config/nvptx/nvptx.c (nvptx_option_override): Likewise. |
| * config/pa/pa.c (pa_option_override): Likewise. |
| * config/riscv/riscv.c (riscv_option_override): Likewise. |
| * config/rs6000/aix71.h: Likewise. |
| * config/rs6000/aix72.h: Likewise. |
| * config/rs6000/aix73.h: Likewise. |
| * config/rs6000/rs6000.c (darwin_rs6000_override_options): Likewise. |
| (rs6000_override_options_after_change): Likewise. |
| (rs6000_linux64_override_options): Likewise. |
| (glibc_supports_ieee_128bit): Likewise. |
| (rs6000_option_override_internal): Likewise. |
| (rs6000_file_start): Likewise. |
| (rs6000_darwin_file_start): Likewise. |
| * config/rs6000/rtems.h: Likewise. |
| * config/rs6000/sysv4.h: Likewise. |
| * config/rs6000/vxworks.h (SUB3TARGET_OVERRIDE_OPTIONS): Likewise. |
| * config/s390/s390.c (s390_option_override): Likewise. |
| * config/sh/linux.h: Likewise. |
| * config/sh/netbsd-elf.h (while): Likewise. |
| * config/sh/sh.c (sh_option_override): Likewise. |
| * config/sol2.c (solaris_override_options): Likewise. |
| * config/sparc/sparc.c (sparc_option_override): Likewise. |
| * config/tilegx/tilegx.c (tilegx_option_override): Likewise. |
| * config/visium/visium.c (visium_option_override): Likewise. |
| * config/vxworks.c (vxworks_override_options): Likewise. |
| * lto-opts.c (lto_write_options): Likewise. |
| * omp-expand.c (expand_omp_simd): Likewise. |
| * omp-general.c (omp_max_vf): Likewise. |
| * omp-offload.c (oacc_xform_loop): Likewise. |
| * opts.h (OPTION_SET_P): Likewise. |
| * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise. |
| * toplev.c (process_options): Likewise. |
| * tree-predcom.c: Likewise. |
| * tree-sra.c (analyze_all_variable_accesses): Likewise. |
| |
| 2021-10-08 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102464 |
| * config/i386/i386.c (ix86_optab_supported_p): |
| Return true for HFmode. |
| * match.pd: Simplify (_Float16) ceil ((double) x) to |
| __builtin_ceilf16 (a) when a is _Float16 type and |
| direct_internal_fn_supported_p. |
| |
| 2021-10-08 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102494 |
| * config/i386/i386-expand.c (emit_reduc_half): Hanlde V4HImode. |
| * config/i386/mmx.md (reduc_plus_scal_v4hi): New. |
| (reduc_<code>_scal_v4hi): New. |
| |
| 2021-10-08 liuhongt <hongtao.liu@intel.com> |
| |
| * common.opt (ftree-vectorize): Add Var(flag_tree_vectorize). |
| * doc/invoke.texi (Options That Control Optimization): Update |
| documents. |
| * opts.c (default_options_table): Enable auto-vectorization at |
| O2 with very-cheap cost model. |
| (finish_options): Use cheap cost model for |
| explicit -ftree{,-loop}-vectorize. |
| |
| 2021-10-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * ctfc.c (ctfc_delete_container): Free hash table contents. |
| |
| 2021-10-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * toplev.c (process_options): Do not warn for GNU GIMPLE. |
| |
| 2021-10-07 Siddhesh Poyarekar <siddhesh@gotplt.org> |
| |
| * tree-object-size.c (addr_object_size, |
| compute_builtin_object_size): Drop PDECL and POFF arguments. |
| (addr_object_size): Adjust calls. |
| * tree-object-size.h (compute_builtin_object_size): Drop PDECL |
| and POFF arguments. |
| |
| 2021-10-07 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * rtl.def (SMUL_HIGHPART, UMUL_HIGHPART): New RTX codes for |
| representing signed and unsigned high-part multiplication resp. |
| * simplify-rtx.c (simplify_binary_operation_1) [SMUL_HIGHPART, |
| UMUL_HIGHPART]: Simplify high-part multiplications by zero. |
| [SS_PLUS, US_PLUS, SS_MINUS, US_MINUS, SS_MULT, US_MULT, |
| SS_DIV, US_DIV]: Similar simplifications for saturating |
| arithmetic. |
| (simplify_const_binary_operation) [SS_PLUS, US_PLUS, SS_MINUS, |
| US_MINUS, SS_MULT, US_MULT, SMUL_HIGHPART, UMUL_HIGHPART]: |
| Implement compile-time evaluation for constant operands. |
| * dwarf2out.c (mem_loc_descriptor): Skip SMUL_HIGHPART and |
| UMUL_HIGHPART. |
| * doc/rtl.texi (smul_highpart, umul_highpart): Document RTX codes. |
| * doc/md.texi (smul@var{m}3_highpart, umul@var{m3}_highpart): |
| Mention the new smul_highpart and umul_highpart RTX codes. |
| * doc/invoke.texi: Silence @xref "compilation" warnings. |
| |
| 2021-10-07 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/102388 |
| * ipa-prop.c (ipa_edge_args_sum_t::duplicate): Also handle the |
| case when the source reference description corresponds to a |
| referance taken in a function src->caller is inlined to. |
| |
| 2021-10-07 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR ipa/102581 |
| * ipa-modref-tree.h (modref_access_node::contains_p): Handle offsets |
| better. |
| (modref_access_node::try_merge_with): Add sanity check that there |
| are no redundant entries in the list. |
| |
| 2021-10-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102608 |
| * tree-ssa-sccvn.c (visit_stmt): Drop .DEFERRED_INIT to |
| varying. |
| |
| 2021-10-07 Martin Liska <mliska@suse.cz> |
| |
| * toplev.c (toplev::main): Make |
| save_opt_decoded_options a pointer type |
| * toplev.h: Likewise. |
| |
| 2021-10-07 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-valu.md (gather<mode>_insn_2offsets<exec>): Apply |
| HAVE_GCN_ASM_GLOBAL_LOAD_FIXED. |
| (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. |
| |
| 2021-10-07 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config/gcn/gcn-hsa.h (SRAMOPT): Include the whole option string. |
| Adjust for new -msram-ecc=any behaviour. |
| (ASM_SPEC): Adjust -mxnack and -msram-ecc usage. |
| * config/gcn/gcn.c (output_file_start): Implement -msram-ecc=any. |
| * config/gcn/mkoffload.c (EF_AMDGPU_XNACK): Rename to ... |
| (EF_AMDGPU_XNACK_V3): ... this. |
| (EF_AMDGPU_SRAM_ECC): Rename to ... |
| (EF_AMDGPU_SRAM_ECC_V3): ... this. |
| (EF_AMDGPU_FEATURE_XNACK_V4): New. |
| (EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4): New. |
| (EF_AMDGPU_FEATURE_XNACK_ANY_V4): New. |
| (EF_AMDGPU_FEATURE_XNACK_OFF_V4): New. |
| (EF_AMDGPU_FEATURE_XNACK_ON_V4): New. |
| (EF_AMDGPU_FEATURE_SRAMECC_V4): New. |
| (EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4): New. |
| (EF_AMDGPU_FEATURE_SRAMECC_ANY_V4): New. |
| (EF_AMDGPU_FEATURE_SRAMECC_OFF_V4): New. |
| (EF_AMDGPU_FEATURE_SRAMECC_ON_V4): New. |
| (SET_XNACK_ON): New. |
| (SET_XNACK_OFF): New. |
| (TEST_XNACK): New. |
| (SET_SRAM_ECC_ON): New. |
| (SET_SRAM_ECC_ANY): New. |
| (SET_SRAM_ECC_OFF): New. |
| (TEST_SRAM_ECC_ANY): New. |
| (TEST_SRAM_ECC_ON): New. |
| (main): Implement HSACOv4 and -msram-ecc=any. |
| |
| 2021-10-07 Andrew Stubbs <ams@codesourcery.com> |
| |
| * config.in: Regenerate. |
| * config/gcn/gcn-hsa.h (X_FIJI): New macro. |
| (X_900): New macro. |
| (X_906): New macro. |
| (X_908): New macro. |
| (A_FIJI): Rename to ... |
| (S_FIJI): ... this. |
| (A_900): Rename to ... |
| (S_900): ... this. |
| (A_906): Rename to ... |
| (S_906): ... this. |
| (A_908): Rename to ... |
| (S_908): ... this. |
| (SRAMOPT): New macro. |
| (ASM_SPEC): Adjust xnack option usage. |
| * config/gcn/gcn.c (output_file_start): Adjust amdgcn_target usage. |
| * configure: Regenerate. |
| * configure.ac: Detect LLVM assembler dialect. |
| |
| 2021-10-07 Richard Biener <rguenther@suse.de> |
| |
| * tree-pretty-print.c (dump_generic_node): Do not elide |
| printing '&' when dumping with -gimple. |
| |
| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::adjust_range): Call new |
| intersect routine. |
| * gimple-range-fold.cc (adjust_pointer_diff_expr): Ditto. |
| (adjust_imagpart_expr): Ditto. |
| * value-range.cc (irange::irange_intersect): Call new routine if |
| RHS is a single pair. |
| (irange::intersect): New wide_int version. |
| * value-range.h (class irange): New prototype. |
| |
| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range): |
| Add parameter to limit size when recognizing switches. |
| (gimple_outgoing_range::edge_range_p): Check size limit. |
| * gimple-range-edge.h (gimple_outgoing_range): Add size field. |
| * gimple-range-gori.cc (gori_map::calculate_gori): Ignore switches |
| that exceed the size limit. |
| (gori_compute::gori_compute): Add initializer. |
| * params.opt (evrp-switch-limit): New. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-range.h (irange::set_varying): Use TYPE_MIN_VALUE and |
| TYPE_MAX_VALUE instead of creating new trees when possible. |
| |
| 2021-10-06 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::adjust_range): Check for |
| zero and non-zero more efficently. |
| |
| 2021-10-06 Richard Biener <rguenther@suse.de> |
| |
| PR c/102605 |
| * dumpfile.h (TDF_GIMPLE_VAL): New. |
| (dump_flag): Re-order and adjust TDF_* flags. Make |
| the enum uint32_t. Use std::underlying_type in the |
| operator overloads. |
| (optgroup_flag): Likewise for the operator overloads. |
| * tree-pretty-print.c (dump_generic_node): Wrap ADDR_EXPR |
| in _Literal if TDF_GIMPLE_VAL. |
| * gimple-pretty-print.c (dump_gimple_assign): Add |
| TDF_GIMPLE_VAL to flags when dumping operands where only |
| is_gimple_val are allowed. |
| (dump_gimple_cond): Likewise. |
| |
| 2021-10-06 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove redundant if |
| condition. |
| |
| 2021-10-05 qing zhao <qing.zhao@oracle.com> |
| |
| PR middle-end/102359 |
| * gimplify.c (gimplify_decl_expr): Not add initialization for an |
| auto variable when it has been initialized by frontend. |
| |
| 2021-10-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): |
| Loosen restrictions |
| |
| 2021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * common/config/avr/avr-common.c (avr_handle_option): Mark |
| argument as ATTRIBUTE_UNUSED. |
| |
| 2021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> |
| |
| * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): |
| Undefine before redefinition. |
| |
| 2021-10-05 Richard Biener <rguenther@suse.de> |
| |
| * toplev.c (no_backend): Remove global var. |
| (process_options): Pass in no_backend, move post_options |
| langhook call to toplev::main. |
| (do_compile): Pass in no_backend, move process_options call |
| to toplev::main. |
| (toplev::run_self_tests): Check no_backend at the caller. |
| (toplev::main): Call post_options and process_options |
| split out from do_compile, do self-tests only if |
| no_backend is initialized. |
| |
| 2021-10-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-cfg.c (dump_function_to_file): Dump the UID of the |
| function as part of the name when requested. |
| * tree-pretty-print.c (dump_function_name): Dump the UID when |
| requested and the langhook produced the actual name. |
| |
| 2021-10-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102587 |
| PR middle-end/102285 |
| * internal-fn.c (expand_DEFERRED_INIT): Fall back to |
| zero-initialization as last resort, use the constant |
| size as given by the DEFERRED_INIT argument to build |
| the initializer. |
| |
| 2021-10-04 Marek Polacek <polacek@redhat.com> |
| |
| PR c++/97573 |
| * doc/invoke.texi: Document -Warray-compare. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| * gimplify.c (is_var_need_auto_init): DECL_HARD_REGISTER |
| variables are not to be initialized. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| * expr.h (non_mem_decl_p): Declare. |
| (mem_ref_refers_to_non_mem_p): Likewise. |
| * expr.c (non_mem_decl_p): Export. |
| (mem_ref_refers_to_non_mem_p): Likewise. |
| * internal-fn.c (expand_DEFERRED_INIT): Do not expand the LHS |
| but check the base with mem_ref_refers_to_non_mem_p |
| and non_mem_decl_p. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102570 |
| * tree-ssa-sccvn.h (vn_reference_op_struct): Document |
| we are using clique for the internal function code. |
| * tree-ssa-sccvn.c (vn_reference_op_eq): Compare the |
| internal function code. |
| (print_vn_reference_ops): Print the internal function code. |
| (vn_reference_op_compute_hash): Hash it. |
| (copy_reference_ops_from_call): Record it. |
| (visit_stmt): Remove the restriction around internal function |
| calls. |
| (fully_constant_vn_reference_p): Use fold_const_call and handle |
| internal functions. |
| (vn_reference_eq): Compare call return types. |
| * tree-ssa-pre.c (create_expression_by_pieces): Handle |
| generating calls to internal functions. |
| (compute_avail): Remove the restriction around internal function |
| calls. |
| |
| 2021-10-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102560 |
| * gimple-ssa-warn-alloca.c (alloca_call_type): Remove static |
| marker for invalid_range. |
| |
| 2021-10-04 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102587 |
| * internal-fn.c (expand_DEFERRED_INIT): Guard register |
| initialization path an avoid initializing VLA registers |
| with it. |
| |
| 2021-10-04 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/rs6000/vxworks.h (TARGET_INIT_LIBFUNCS): Delete. |
| |
| 2021-10-03 Martin Liska <mliska@suse.cz> |
| |
| * toplev.c (toplev::main): Check opt_index if it is a part |
| of cl_options. |
| |
| 2021-10-02 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102563 |
| * range-op.cc (operator_lshift::op1_range): Do not clobber |
| range. |
| |
| 2021-10-02 Martin Liska <mliska@suse.cz> |
| |
| * toplev.c (toplev::main): save_decoded_options[0] is program |
| name and so it should be skipped. |
| |
| 2021-10-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102546 |
| * range-op.cc (operator_lshift::op1_range): Teach range-ops that |
| X << Y is non-zero implies X is also non-zero. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New |
| Cortex-X2 core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New |
| Cortex-A710 core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-cores.def (AARCH64_CORE): New |
| Cortex-A510 core. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Martin Sebor <msebor@redhat.com> |
| |
| PR c/102103 |
| * doc/invoke.texi (-Waddress): Update. |
| * gengtype.c (write_types): Avoid -Waddress. |
| * poly-int.h (POLY_SET_COEFF): Avoid using null. |
| |
| 2021-10-01 John David Anglin <danglin@gcc.gnu.org> |
| |
| PR debug/102373 |
| * config/pa/pa.c (pa_option_override): Default to dwarf version 4 |
| on hppa64-hpux. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_FL_V9): Update value. |
| |
| 2021-10-01 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::compute_ranges): Use |
| get_path_oracle. |
| * gimple-range-path.h (class path_range_query): Remove shadowed |
| m_oracle field. |
| (path_range_query::get_path_oracle): New. |
| |
| 2021-10-01 Jakub Jelinek <jakub@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR sanitizer/102515 |
| * doc/invoke.texi (-fsanitize=integer-divide-by-zero): Remove |
| INT_MIN / -1 division detection from here ... |
| (-fsanitize=signed-integer-overflow): ... and add it here. |
| |
| 2021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Added |
| armv9-a. |
| * config/aarch64/aarch64.h (AARCH64_FL_V9): New. |
| (AARCH64_FL_FOR_ARCH9): New flags for Armv9-A. |
| (AARCH64_ISA_V9): New ISA flag. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-10-01 Martin Liska <mliska@suse.cz> |
| |
| * toplev.c (toplev::main): Save decoded optimization options. |
| * toplev.h (save_opt_decoded_options): New. |
| * doc/extend.texi: Be more clear about optimize and target |
| attributes. |
| |
| 2021-10-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * explow.c: Include langhooks.h. |
| (set_stack_check_libfunc): Build a proper function type. |
| |
| 2021-10-01 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR c++/64697 |
| * config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do |
| not return true for external weak function symbols in medium model. |
| |
| 2021-10-01 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_ORDER_REPRODUCIBLE): Define. |
| * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_ORDER>: Print |
| reproducible: for OMP_CLAUSE_ORDER_REPRODUCIBLE. |
| * omp-general.c (omp_extract_for_data): If OMP_CLAUSE_ORDER is seen |
| without OMP_CLAUSE_ORDER_UNCONSTRAINED, overwrite sched_kind to |
| OMP_CLAUSE_SCHEDULE_STATIC. |
| |
| 2021-10-01 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102518 |
| * tree-inline.c (setup_one_parameter): Avoid substituting |
| an invariant into contexts where a GIMPLE register is not valid. |
| |
| 2021-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> |
| |
| * config/arm/arm-cpus.in: Add Cortex-R52+ CPU. |
| * config/arm/arm-tables.opt: Regenerate. |
| * config/arm/arm-tune.md: Regenerate. |
| * doc/invoke.texi: Update docs. |
| |
| 2021-09-30 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/89954 |
| * config/i386/i386.md |
| (sign_extend:WIDE (any_logic:NARROW (memory, immediate)) splitters): |
| New splitters. |
| |
| 2021-09-30 Tobias Burnus <tobias@codesourcery.com> |
| |
| * omp-low.c (omp_runtime_api_call): Add omp_aligned_{,c}alloc and |
| omp_{c,re}alloc, fix omp_alloc/omp_free. |
| |
| 2021-09-30 Martin Liska <mliska@suse.cz> |
| |
| * defaults.h (ASM_OUTPUT_ASCII): Do not hide global variable |
| asm_out_file and stream directly to MYFILE. |
| |
| 2021-09-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_update_misalignment_for_peel): |
| Restore and fix condition under which we apply npeel to |
| the DRs misalignment value. |
| |
| 2021-09-30 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_update_misalignment_for_peel): |
| Fix npeel check for variable amount of peeling. |
| |
| 2021-09-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| * lto-wrapper.c (run_gcc): Plug snprintf overflow. |
| |
| 2021-09-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range.cc (gimple_ranger::debug): New. |
| * gimple-range.h (class gimple_ranger): Add debug. |
| |
| 2021-09-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR middle-end/102519 |
| * tree-vrp.c (hybrid_threader::~hybrid_threader): Free m_query. |
| |
| 2021-09-29 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| PR debug/102507 |
| * btfout.c (GTY): Add GTY (()) albeit for cosmetic only purpose. |
| (btf_finalize): Empty the hash_map btf_var_ids. |
| |
| 2021-09-29 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (thread_through_all_blocks): Return bool. |
| (execute_vrp_threader): Return TODO_* flags. |
| (pass_data_vrp_threader): Set todo_flags_finish to 0. |
| |
| 2021-09-29 Aldy Hernandez <aldyh@redhat.com> |
| |
| * timevar.def (TV_TREE_VRP_THREADER): New. |
| * tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass. |
| |
| 2021-09-29 David Faust <david.faust@oracle.com> |
| |
| * config.gcc (bpf-*-*): Do not overwrite extra_headers. |
| |
| 2021-09-29 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (TYPES_BINOP_PPU): Define |
| new type qualifier enum. |
| (TYPES_TERNOP_SSSU): Likewise. |
| (TYPES_TERNOP_PPPU): Likewise. |
| * config/aarch64/aarch64-simd-builtins.def: Define PPU, SSU, |
| PPPU and SSSU builtin generator macros for qtbl1 and qtbx1 |
| Neon builtins. |
| * config/aarch64/arm_neon.h (vqtbl1_p8): Use type-qualified |
| builtin and remove casts. |
| (vqtbl1_s8): Likewise. |
| (vqtbl1q_p8): Likewise. |
| (vqtbl1q_s8): Likewise. |
| (vqtbx1_s8): Likewise. |
| (vqtbx1_p8): Likewise. |
| (vqtbx1q_s8): Likewise. |
| (vqtbx1q_p8): Likewise. |
| (vtbl1_p8): Likewise. |
| (vtbl2_p8): Likewise. |
| (vtbx2_p8): Likewise. |
| |
| 2021-09-29 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_dr_misalign_for_aligned_access): |
| New helper. |
| (vect_update_misalignment_for_peel): Use it to update |
| misaligned to the value necessary for an aligned access. |
| (vect_get_peeling_costs_all_drs): Likewise. |
| (vect_enhance_data_refs_alignment): Likewise. |
| |
| 2021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_cpymem): Count number of |
| emitted operations and adjust heuristic for code size. |
| |
| 2021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_expand_setmem): Count number of |
| emitted operations and adjust heuristic for code size. |
| |
| 2021-09-29 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102504 |
| * gimplify.c (gimplify_scan_omp_clauses): Use omp_check_private even |
| in OMP_SCOPE clauses, not just on worksharing construct clauses. |
| |
| 2021-09-28 Geng Qi <gengqi@linux.alibaba.com> |
| |
| * config/riscv/riscv.md (mulv<mode>4): Call gen_smul<mode>3_highpart. |
| (<u>mulditi3): Call <su>muldi3_highpart. |
| (<u>muldi3_highpart): Rename to <su>muldi3_highpart. |
| (<u>mulsidi3): Call <su>mulsi3_highpart. |
| (<u>mulsi3_highpart): Rename to <su>mulsi3_highpart. |
| |
| 2021-09-28 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (DSYMUTIL_SPEC): Recognize D sources. |
| |
| 2021-09-28 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/rs6000/darwin.h (FIXED_R13): Add for PPC64. |
| (FIRST_SAVED_GP_REGNO): Save from R13 even when it is one |
| of the fixed regs. |
| |
| 2021-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.h (AARCH64_FL_LS64): Define |
| (AARCH64_FL_V8_7): Likewise. |
| (AARCH64_FL_FOR_ARCH8_7): Likewise. |
| * config/aarch64/aarch64-arches.def (armv8.7-a): Define. |
| * config/aarch64/aarch64-option-extensions.def (ls64): Define. |
| * doc/invoke.texi: Document the above. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * dbgcnt.c (dbg_cnt_counter): New. |
| * dbgcnt.h (dbg_cnt_counter): New. |
| * dumpfile.c (dump_options): Add entry for TDF_THREADING. |
| * dumpfile.h (enum dump_flag): Add TDF_THREADING. |
| * gimple-range-path.cc (DEBUG_SOLVER): Use TDF_THREADING. |
| * tree-ssa-threadupdate.c (dump_jump_thread_path): Dump out |
| debug counter. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * cfgcleanup.c (pass_jump::execute): Check |
| flag_expensive_optimizations. |
| (pass_jump_after_combine::gate): Same. |
| * doc/invoke.texi (-fthread-jumps): Enable for -O1. |
| * opts.c (default_options_table): Enable -fthread-jumps at -O1. |
| * tree-ssa-threadupdate.c |
| (fwd_jt_path_registry::remove_jump_threads_including): Bail unless |
| flag_thread_jumps. |
| |
| 2021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * tree-ssa-reassoc.c (biased_names): New global. |
| (propagate_bias_p): New function. |
| (loop_carried_phi): Remove. |
| (propagate_rank): Propagate bias along single uses. |
| (get_rank): Update biased_names when needed. |
| |
| 2021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * passes.def (pass_reassoc): Rename parameter to early_p. |
| * tree-ssa-reassoc.c (reassoc_bias_loop_carried_phi_ranks_p): |
| New variable. |
| (phi_rank): Don't bias loop-carried phi ranks |
| before vectorization pass. |
| (execute_reassoc): Add bias_loop_carried_phi_ranks_p parameter. |
| (pass_reassoc::pass_reassoc): Add bias_loop_carried_phi_ranks_p |
| initializer. |
| (pass_reassoc::set_param): Set bias_loop_carried_phi_ranks_p |
| value. |
| (pass_reassoc::execute): Pass bias_loop_carried_phi_ranks_p to |
| execute_reassoc. |
| (pass_reassoc::bias_loop_carried_phi_ranks_p): New member. |
| |
| 2021-09-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102498 |
| * config/i386/i386.c (standard_80387_constant_p): Don't recognize |
| special 80387 instruction XFmode constants if flag_rounding_math. |
| |
| 2021-09-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/100112 |
| * tree-ssa-sccvn.c (visit_reference_op_load): Record the |
| referece into the hashtable twice in case last_vuse is |
| different from the original vuse on the stmt. |
| |
| 2021-09-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102492 |
| * gimplify.c (gimplify_adjust_omp_clauses_1): Don't call the |
| omp_finish_clause langhook on implicitly added OMP_CLAUSE_PRIVATE |
| clauses on SIMD constructs. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/102511 |
| * gimple-range-path.cc (path_range_query::range_on_path_entry): |
| Return VARYING when nothing found. |
| |
| 2021-09-28 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/102230 |
| * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Add |
| V2HF mode check. |
| (VALID_SSE2_REG_VHF_MODE): Add V4HFmode and V2HFmode. |
| (VALID_MMX_REG_MODE): Add V4HFmode. |
| (SSE_REG_MODE_P): Replace VALID_AVX512FP16_REG_MODE with |
| vector mode condition. |
| * config/i386/i386.c (classify_argument): Parse V4HF/V2HF |
| via sse regs. |
| (function_arg_32): Add V4HFmode. |
| (function_arg_advance_32): Likewise. |
| * config/i386/i386.md (mode): Add V4HF/V2HF. |
| (MODE_SIZE): Likewise. |
| * config/i386/mmx.md (MMXMODE): Add V4HF mode. |
| (V_32): Add V2HF mode. |
| (VHF_32_64): New mode iterator. |
| (*mov<mode>_internal): Adjust sse alternatives to support |
| V4HF mode move. |
| (*mov<mode>_internal): Adjust sse alternatives to support |
| V2HF mode move. |
| (<insn><mode>3): New define_insn for add/sub/mul/div. |
| |
| 2021-09-28 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Check |
| flag_thread_jumps. |
| (pass_early_thread_jumps::gate): Same. |
| * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): |
| Return if !flag_thread_jumps. |
| * tree-ssa-threadupdate.c |
| (jt_path_registry::register_jump_thread): Assert that |
| flag_thread_jumps is true. |
| |
| 2021-09-28 liuhongt <hongtao.liu@intel.com> |
| |
| * simplify-rtx.c |
| (simplify_context::simplify_binary_operation_1): Relax |
| condition of simplifying (vec_concat:M (vec_select op0 |
| index0)(vec_select op1 index1)) to allow different modes |
| between op0 and M, but have same inner mode. |
| |
| 2021-09-28 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.c (emit_reduc_half): Handle |
| V8HF/V16HF/V32HFmode. |
| * config/i386/sse.md (REDUC_SSE_PLUS_MODE): Add V8HF. |
| (REDUC_SSE_SMINMAX_MODE): Ditto. |
| (REDUC_PLUS_MODE): Add V16HF and V32HF. |
| (REDUC_SMINMAX_MODE): Ditto. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc |
| (path_range_query::precompute_ranges_in_block): Rename to... |
| (path_range_query::compute_ranges_in_block): ...this. |
| (path_range_query::precompute_ranges): Rename to... |
| (path_range_query::compute_ranges): ...this. |
| (path_range_query::precompute_relations): Rename to... |
| (path_range_query::compute_relations): ...this. |
| (path_range_query::precompute_phi_relations): Rename to... |
| (path_range_query::compute_phi_relations): ...this. |
| * gimple-range-path.h: Rename precompute* to compute*. |
| * tree-ssa-threadbackward.c |
| (back_threader::find_taken_edge_switch): Same. |
| (back_threader::find_taken_edge_cond): Same. |
| * tree-ssa-threadedge.c |
| (hybrid_jt_simplifier::compute_ranges_from_state): Same. |
| (hybrid_jt_state::register_equivs_stmt): Inline... |
| * tree-ssa-threadedge.h: ...here. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (lhs_of_dominating_assert): Remove. |
| (class vrp_jt_state): Remove. |
| (class vrp_jt_simplifier): Remove. |
| (vrp_jt_simplifier::simplify): Remove. |
| (class vrp_jump_threader): Remove. |
| (vrp_jump_threader::vrp_jump_threader): Remove. |
| (vrp_jump_threader::~vrp_jump_threader): Remove. |
| (vrp_jump_threader::before_dom_children): Remove. |
| (vrp_jump_threader::after_dom_children): Remove. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * passes.def (pass_vrp_threader): New. |
| * tree-pass.h (make_pass_vrp_threader): Add make_pass_vrp_threader. |
| * tree-ssa-threadedge.c (hybrid_jt_state::register_equivs_stmt): New. |
| (hybrid_jt_simplifier::hybrid_jt_simplifier): New. |
| (hybrid_jt_simplifier::simplify): New. |
| (hybrid_jt_simplifier::compute_ranges_from_state): New. |
| * tree-ssa-threadedge.h (class hybrid_jt_state): New. |
| (class hybrid_jt_simplifier): New. |
| * tree-vrp.c (execute_vrp): Remove ASSERT_EXPR based jump |
| threader. |
| (class hybrid_threader): New. |
| (hybrid_threader::hybrid_threader): New. |
| (hybrid_threader::~hybrid_threader): New. |
| (hybrid_threader::before_dom_children): New. |
| (hybrid_threader::after_dom_children): New. |
| (execute_vrp_threader): New. |
| (class pass_vrp_threader): New. |
| (make_pass_vrp_threader): New. |
| |
| 2021-09-27 Martin Liska <mliska@suse.cz> |
| |
| * output.h (enum section_flag): New. |
| (SECTION_FORGET): Remove. |
| (SECTION_ENTSIZE): Make it (1UL << 8) - 1. |
| (SECTION_STYLE_MASK): Define it based on other enum |
| values. |
| * varasm.c (switch_to_section): Remove unused handling of |
| SECTION_FORGET. |
| |
| 2021-09-27 Martin Liska <mliska@suse.cz> |
| |
| * common.opt: Add new variable flag_default_complex_method. |
| * opts.c (finish_options): Handle flags related to |
| x_flag_complex_method. |
| * toplev.c (process_options): Remove option handling related |
| to flag_complex_method. |
| |
| 2021-09-27 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102450 |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid using |
| type_for_size, instead use int_mode_for_size. |
| |
| 2021-09-27 Andrew Pinski <apinski@marvell.com> |
| |
| PR c/94726 |
| * gimplify.c (gimplify_save_expr): Return early |
| if the type of val is error_mark_node. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssanames.c (ssa_name_has_boolean_range): Use |
| get_range_query. |
| |
| 2021-09-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove |
| vrp_visit_cond_stmt. |
| * tree-ssa-dom.c (cprop_operand): Convert to range_query API. |
| (cprop_into_stmt): Same. |
| (dom_opt_dom_walker::optimize_stmt): Same. |
| |
| 2021-09-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/97351 |
| PR tree-optimization/97352 |
| PR tree-optimization/82426 |
| * tree-vectorizer.h (dr_misalignment): Add vector type |
| argument. |
| (aligned_access_p): Likewise. |
| (known_alignment_for_access_p): Likewise. |
| (vect_supportable_dr_alignment): Likewise. |
| (vect_known_alignment_in_bytes): Likewise. Refactor. |
| (DR_MISALIGNMENT): Remove. |
| (vect_update_shared_vectype): Likewise. |
| * tree-vect-data-refs.c (dr_misalignment): Refactor, handle |
| a vector type with larger alignment requirement and apply |
| the negative step adjustment here. |
| (vect_calculate_target_alignment): Remove. |
| (vect_compute_data_ref_alignment): Get explicit vector type |
| argument, do not apply a negative step alignment adjustment |
| here. |
| (vect_slp_analyze_node_alignment): Re-analyze alignment |
| when we re-visit the DR with a bigger desired alignment but |
| keep more precise results from smaller alignments. |
| * tree-vect-slp.c (vect_update_shared_vectype): Remove. |
| (vect_slp_analyze_node_operations_1): Do not update the |
| shared vector type on stmts. |
| * tree-vect-stmts.c (vect_analyze_stmt): Push/pop the |
| vector type of an SLP node to the representative stmt-info. |
| (vect_transform_stmt): Likewise. |
| |
| 2021-09-27 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101059 |
| * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. |
| (reduc_plus_scal_v4sf): .. this, New define_expand. |
| (reduc_plus_scal_v2df): .. and this, New define_expand. |
| |
| 2021-09-26 liuhongt <hongtao.liu@intel.com> |
| |
| * doc/extend.texi (Half-Precision): Remove storage only |
| description for _Float16 w/o avx512fp16. |
| |
| 2021-09-25 Dimitar Dimitrov <dimitar@dinux.eu> |
| |
| * config/pru/constraints.md (Rrio): New constraint. |
| * config/pru/predicates.md (regio_operand): New predicate. |
| * config/pru/pru-pragma.c (pru_register_pragmas): Register |
| the __regio_symbol address space. |
| * config/pru/pru-protos.h (pru_symref2ioregno): Declaration. |
| * config/pru/pru.c (pru_symref2ioregno): New helper function. |
| (pru_legitimate_address_p): Remove. |
| (pru_addr_space_legitimate_address_p): Use the address space |
| aware hook variant. |
| (pru_nongeneric_pointer_addrspace): New helper function. |
| (pru_insert_attributes): New function to validate __regio_symbol |
| usage. |
| (TARGET_INSERT_ATTRIBUTES): New macro. |
| (TARGET_LEGITIMATE_ADDRESS_P): Remove. |
| (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): New macro. |
| * config/pru/pru.h (enum reg_class): Add REGIO_REGS class. |
| * config/pru/pru.md (*regio_readsi): New pattern to read I/O |
| registers. |
| (*regio_nozext_writesi): New pattern to write to I/O registers. |
| (*regio_zext_write_r30<EQS0:mode>): Ditto. |
| * doc/extend.texi: Document the new PRU Named Address Space. |
| |
| 2021-09-24 Patrick Palka <ppalka@redhat.com> |
| |
| PR c++/98216 |
| PR c++/91292 |
| * real.c (encode_ieee_double): Avoid unwanted sign extension. |
| (encode_ieee_quad): Likewise. |
| |
| 2021-09-24 Vladimir Makarov <vmakarov@redhat.com> |
| |
| PR rtl-optimization/102147 |
| * ira-build.c (ira_conflict_vector_profitable_p): Make |
| profitability calculation independent of host compiler pointer and |
| IRA_INT_BITS sizes. |
| |
| 2021-09-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::path_range_query): |
| Move debugging header... |
| (path_range_query::precompute_ranges): ...here. |
| (path_range_query::internal_range_of_expr): Do not call |
| range_on_path_entry if NAME is defined in the current block. |
| |
| 2021-09-24 Richard Biener <rguenther@suse.de> |
| |
| * cfghooks.c (verify_flow_info): Verify unallocated BB and |
| edge flags are not set. |
| |
| 2021-09-24 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): |
| New. |
| (jt_path_registry::register_jump_thread): Call |
| cancel_invalid_paths. |
| * tree-ssa-threadupdate.h (class jt_path_registry): Add |
| cancel_invalid_paths. |
| |
| 2021-09-24 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR tree-optimization/102400 |
| * tree-ssa-sccvn.c (vn_reference_insert_pieces): Initialize |
| result_vdef to zero value. |
| |
| 2021-09-24 Feng Xue <fxue@os.amperecomputing.com> |
| |
| PR tree-optimization/102451 |
| * tree-ssa-dse.c (delete_dead_or_redundant_call): Record bb of stmt |
| before removal. |
| |
| 2021-09-24 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (cond_<insn><mode>): Extend to support |
| vector HFmodes. |
| (cond_mul<mode>): Likewise. |
| (cond_div<mode>): Likewise. |
| (cond_<code><mode>): Likewise. |
| (cond_fma<mode>): Likewise. |
| (cond_fms<mode>): Likewise. |
| (cond_fnma<mode>): Likewise. |
| (cond_fnms<mode>): Likewise. |
| |
| 2021-09-23 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/102463 |
| * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): If |
| there is no range-ops handler, don't look for a relation. |
| |
| 2021-09-23 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::ranger_cache): Take |
| non-executable_edge flag as parameter. |
| * gimple-range-cache.h (ranger_cache): Adjust prototype. |
| * gimple-range-gori.cc (gori_compute::gori_compute): Take |
| non-executable_edge flag as parameter. |
| (gori_compute::outgoing_edge_range_p): Check new flag. |
| * gimple-range-gori.h (gori_compute): Adjust prototype. |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Create new flag. |
| (gimple_ranger::range_on_edge): Check new flag. |
| * gimple-range.h (gimple_ranger::non_executable_edge_flag): New. |
| * gimple-ssa-evrp.c (rvrp_folder): Pass ranger flag to simplifer. |
| (hybrid_folder::hybrid_folder): Set ranger non-executable flag value. |
| (hybrid_folder::fold_stmt): Set flag value in the simplifer. |
| * vr-values.c (simplify_using_ranges::set_and_propagate_unexecutable): |
| Use not_executable flag if provided inmstead of EDGE_EXECUTABLE. |
| (simplify_using_ranges::simplify_switch_using_ranges): Clear |
| EDGE_EXECUTABLE like it originally did. |
| (simplify_using_ranges::cleanup_edges_and_switches): Clear any |
| NON_EXECUTABLE flags. |
| (simplify_using_ranges::simplify_using_ranges): Adjust. |
| * vr-values.h (class simplify_using_ranges): Adjust. |
| (simplify_using_ranges::set_range_query): Add non-executable flag param. |
| |
| 2021-09-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/102024 |
| * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Detect |
| zero-width bit fields and return indicator. |
| (rs6000_discover_homogeneous_aggregate): Diagnose when the |
| presence of a zero-width bit field changes parameter passing in |
| GCC 12. |
| |
| 2021-09-23 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): |
| Remove dominator check. |
| |
| 2021-09-23 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::precompute_relations): |
| Hoist edge calculations before using EDGE_SUCC. |
| |
| 2021-09-23 Jonathan Wakely <jwakely@redhat.com> |
| |
| * configure.ac: Fix --with-multilib-list description. |
| * configure: Regenerate. |
| |
| 2021-09-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102448 |
| * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): |
| Clear alignment info copied from DR_PTR_INFO. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_use_mask_cmp_p): Enable |
| HFmode mask_cmp. |
| * config/i386/sse.md (sseintvecmodelower): Add HF vector modes. |
| (<avx512>_store<mode>_mask): Extend to support HF vector modes. |
| (vec_cmp<mode><avx512fmaskmodelower>): Likewise. |
| (vcond_mask_<mode><avx512fmaskmodelower>): Likewise. |
| (vcond<mode><mode>): New expander. |
| (vcond<mode><sseintvecmodelower>): Likewise. |
| (vcond<sseintvecmodelower><mode>): Likewise. |
| (vcondu<mode><sseintvecmodelower>): Likewise. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (extend<ssePHmodelower><mode>2): |
| New expander. |
| (extendv4hf<mode>2): Likewise. |
| (extendv2hfv2df2): Likewise. |
| (trunc<mode><ssePHmodelower>2): Likewise. |
| (avx512fp16_vcvt<castmode>2ph_<mode>): Rename to ... |
| (trunc<mode>v4hf2): ... this, and drop constraints. |
| (avx512fp16_vcvtpd2ph_v2df): Rename to ... |
| (truncv2dfv2hf2): ... this, and likewise. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/sse.md (float<floatunssuffix><mode><ssePHmodelower>2): |
| New expander. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): |
| Rename to ... |
| (float<floatunssuffix><mode>v4hf2): ... this, and drop constraints. |
| (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Rename to ... |
| (float<floatunssuffix>v2div2hf2): ... this, and likewise. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.md (fix<fixunssuffix>_trunchf<mode>2): New expander. |
| (fixuns_trunchfhi2): Likewise. |
| (*fixuns_trunchfsi2zext): New define_insn. |
| * config/i386/sse.md (ssePHmodelower): New mode_attr. |
| (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): |
| New expander for same element vector fix_truncate. |
| (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): |
| Likewise for V4HF to V4SI/V4DI fix_truncate. |
| (fix<fixunssuffix>_truncv2hfv2di2): |
| Likeise for V2HF to V2DI fix_truncate. |
| |
| 2021-09-23 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/i386.md (<code>hf3): New expander. |
| |
| 2021-09-23 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (FMAMODEM): extend to handle FP16. |
| (VFH_SF_AVX512VL): Extend to handle HFmode. |
| (VF_SF_AVX512VL): Deleted. |
| |
| 2021-09-23 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (rinthf2): New expander. |
| (nearbyinthf2): New expander. |
| |
| 2021-09-23 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-dom.c (class dom_jump_threader_simplifier): Rename... |
| (class dom_jt_state): ...this and provide virtual overrides. |
| (dom_jt_state::register_equiv): New. |
| (class dom_jt_simplifier): Rename from |
| dom_jump_threader_simplifier. |
| (dom_jump_threader_simplifier::simplify): Rename... |
| (dom_jt_simplifier::simplify): ...to this. |
| (pass_dominator::execute): Use dom_jt_simplifier and |
| dom_jt_state. |
| * tree-ssa-threadedge.c (jump_threader::jump_threader): |
| Clean-up. |
| (jt_state::register_equivs_stmt): Abstract out... |
| (jump_threader::record_temporary_equivalences_from_stmts_at_dest): |
| ...from here. |
| (jump_threader::thread_around_empty_blocks): Update state. |
| (jump_threader::thread_through_normal_block): Same. |
| (jt_state::jt_state): Remove. |
| (jt_state::push): Remove pass specific bits. Keep block vector |
| updated. |
| (jt_state::append_path): New. |
| (jt_state::pop): Remove pass specific bits. |
| (jt_state::register_equiv): Same. |
| (jt_state::record_ranges_from_stmt): Same. |
| (jt_state::register_equivs_on_edge): Same. Rename... |
| (jt_state::register_equivs_edge): ...to this. |
| (jt_state::dump): New. |
| (jt_state::debug): New. |
| (jump_threader_simplifier::simplify): Remove. |
| (jt_state::get_path): New. |
| * tree-ssa-threadedge.h (class jt_simplifier): Make into a base |
| class. Expose common functionality as virtual methods. |
| (class jump_threader_simplifier): Same. Rename... |
| (class jt_simplifier): ...to this. |
| * tree-vrp.c (class vrp_jump_threader_simplifier): Rename... |
| (class vrp_jt_simplifier): ...to this. Provide pass specific |
| overrides. |
| (class vrp_jt_state): New. |
| (vrp_jump_threader_simplifier::simplify): Rename... |
| (vrp_jt_simplifier::simplify): ...to this. Inline code from |
| what used to be the base class. |
| (vrp_jump_threader::vrp_jump_threader): Use vrp_jt_state and |
| vrp_jt_simplifier. |
| |
| 2021-09-22 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR fortran/55534 |
| * doc/invoke.texi (-Wno-missing-include-dirs.): Document Fortran |
| behavior. |
| |
| 2021-09-22 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * match.pd (negation simplifications): Implement some negation |
| folding transformations from fold-const.c's fold_negate_expr. |
| * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Add a SIMPLIFY |
| argument, to control whether the op should be simplified prior |
| to looking up/assigning a value number. |
| (vn_nary_build_or_lookup): Update call to vn_nary_build_or_lookup_1. |
| (vn_nary_simplify): Likewise. |
| (visit_nary_op): Likewise, but when constructing a NEGATE_EXPR |
| now call vn_nary_build_or_lookup_1 disabling simplification. |
| |
| 2021-09-22 Jiufu Guo <guojiufu@linux.ibm.com> |
| |
| PR tree-optimization/102087 |
| * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): |
| Update bound/cmp/control for niter. |
| |
| 2021-09-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_range_op): |
| Move check for non-empty BB here. |
| (fur_source::register_outgoing_edges): ...from here. |
| |
| 2021-09-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::internal_range_of_expr): |
| Remove call to improve_range_with_equivs. |
| (path_range_query::improve_range_with_equivs): Remove |
| * gimple-range-path.h: Remove improve_range_with_equivs. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: |
| (_mm512_mask_blend_ph): New intrinsic. |
| (_mm512_permutex2var_ph): Ditto. |
| (_mm512_permutexvar_ph): Ditto. |
| * config/i386/avx512fp16vlintrin.h: |
| (_mm256_mask_blend_ph): New intrinsic. |
| (_mm256_permutex2var_ph): Ditto. |
| (_mm256_permutexvar_ph): Ditto. |
| (_mm_mask_blend_ph): Ditto. |
| (_mm_permutex2var_ph): Ditto. |
| (_mm_permutexvar_ph): Ditto. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: Add new intrinsics. |
| (_mm512_conj_pch): New intrinsic. |
| (_mm512_mask_conj_pch): Ditto. |
| (_mm512_maskz_conj_pch): Ditto. |
| * config/i386/avx512fp16vlintrin.h: Add new intrinsics. |
| (_mm256_conj_pch): New intrinsic. |
| (_mm256_mask_conj_pch): Ditto. |
| (_mm256_maskz_conj_pch): Ditto. |
| (_mm_conj_pch): Ditto. |
| (_mm_mask_conj_pch): Ditto. |
| (_mm_maskz_conj_pch): Ditto. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_MM512_REDUCE_OP): New macro |
| (_mm512_reduce_add_ph): New intrinsic. |
| (_mm512_reduce_mul_ph): Ditto. |
| (_mm512_reduce_min_ph): Ditto. |
| (_mm512_reduce_max_ph): Ditto. |
| * config/i386/avx512fp16vlintrin.h |
| (_MM256_REDUCE_OP/_MM_REDUCE_OP): New macro. |
| (_mm256_reduce_add_ph): New intrinsic. |
| (_mm256_reduce_mul_ph): Ditto. |
| (_mm256_reduce_min_ph): Ditto. |
| (_mm256_reduce_max_ph): Ditto. |
| (_mm_reduce_add_ph): Ditto. |
| (_mm_reduce_mul_ph): Ditto. |
| (_mm_reduce_min_ph): Ditto. |
| (_mm_reduce_max_ph): Ditto. |
| |
| 2021-09-22 dianhong xu <dianhong.xu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (__m512h_u, __m256h_u, |
| __m128h_u): New typedef. |
| (_mm512_load_ph): New intrinsic. |
| (_mm256_load_ph): Ditto. |
| (_mm_load_ph): Ditto. |
| (_mm512_loadu_ph): Ditto. |
| (_mm256_loadu_ph): Ditto. |
| (_mm_loadu_ph): Ditto. |
| (_mm512_store_ph): Ditto. |
| (_mm256_store_ph): Ditto. |
| (_mm_store_ph): Ditto. |
| (_mm512_storeu_ph): Ditto. |
| (_mm256_storeu_ph): Ditto. |
| (_mm_storeu_ph): Ditto. |
| (_mm512_abs_ph): Ditto. |
| * config/i386/avx512fp16vlintrin.h |
| (_mm_abs_ph): Ditto. |
| (_mm256_abs_ph): Ditto. |
| |
| 2021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/tpf.md (prologue_tpf, epilogue_tpf): Add cc clobber. |
| |
| 2021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| PR target/102222 |
| * config/s390/s390.c (s390_expand_insv): Emit a normal move if it |
| is actually a full copy of the source operand into the target. |
| Don't emit a strict low part move if source and target mode match. |
| |
| 2021-09-22 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102415 |
| * omp-expand.c (expand_omp_single): If region->exit is NULL, |
| assert region->entry is GIMPLE_OMP_SCOPE region and return. |
| |
| 2021-09-22 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_ALLOCATE_ALIGN): Define. |
| * tree.c (omp_clause_num_ops): Change number of OMP_CLAUSE_ALLOCATE |
| arguments from 2 to 3. |
| * tree-pretty-print.c (dump_omp_clause): Print allocator() around |
| allocate clause allocator and print align if present. |
| * omp-low.c (scan_sharing_clauses): Force allocate_map entry even |
| for omp_default_mem_alloc if align modifier is present. If align |
| modifier is present, use TREE_LIST to encode both allocator and |
| align. |
| (lower_private_allocate, lower_rec_input_clauses, create_task_copyfn): |
| Handle align modifier on allocator clause if present. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (define_attr "isa"): Add |
| fma_or_avx512vl. |
| (define_attr "enabled"): Correspond fma_or_avx512vl to |
| TARGET_FMA || TARGET_AVX512VL. |
| * config/i386/mmx.md (fmav2sf4): Extend to AVX512 fma. |
| (fmsv2sf4): Ditto. |
| (fnmav2sf4): Ditto. |
| (fnmsv2sf4): Ditto. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (cstorehf3): New define_expand. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md (<rounding_insn>hf2): New expander. |
| (sse4_1_round<mode>2): Extend from MODEF to MODEFH. |
| * config/i386/sse.md (*sse4_1_round<ssescalarmodesuffix>): |
| Extend from VF_128 to VFH_128. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-features.c (i386-features.c): Handle |
| E_HFmode. |
| * config/i386/i386.md (sqrthf2): New expander. |
| (*sqrthf2): New define_insn. |
| * config/i386/sse.md |
| (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): |
| Extend to VFH_128. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_mask_fcmadd_sch): |
| New intrinsic. |
| (_mm_mask3_fcmadd_sch): Likewise. |
| (_mm_maskz_fcmadd_sch): Likewise. |
| (_mm_fcmadd_sch): Likewise. |
| (_mm_mask_fmadd_sch): Likewise. |
| (_mm_mask3_fmadd_sch): Likewise. |
| (_mm_maskz_fmadd_sch): Likewise. |
| (_mm_fmadd_sch): Likewise. |
| (_mm_mask_fcmadd_round_sch): Likewise. |
| (_mm_mask3_fcmadd_round_sch): Likewise. |
| (_mm_maskz_fcmadd_round_sch): Likewise. |
| (_mm_fcmadd_round_sch): Likewise. |
| (_mm_mask_fmadd_round_sch): Likewise. |
| (_mm_mask3_fmadd_round_sch): Likewise. |
| (_mm_maskz_fmadd_round_sch): Likewise. |
| (_mm_fmadd_round_sch): Likewise. |
| (_mm_fcmul_sch): Likewise. |
| (_mm_mask_fcmul_sch): Likewise. |
| (_mm_maskz_fcmul_sch): Likewise. |
| (_mm_fmul_sch): Likewise. |
| (_mm_mask_fmul_sch): Likewise. |
| (_mm_maskz_fmul_sch): Likewise. |
| (_mm_fcmul_round_sch): Likewise. |
| (_mm_mask_fcmul_round_sch): Likewise. |
| (_mm_maskz_fcmul_round_sch): Likewise. |
| (_mm_fmul_round_sch): Likewise. |
| (_mm_mask_fmul_round_sch): Likewise. |
| (_mm_maskz_fmul_round_sch): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md |
| (avx512fp16_fmaddcsh_v8hf_maskz<round_expand_name>): New expander. |
| (avx512fp16_fcmaddcsh_v8hf_maskz<round_expand_name>): Ditto. |
| (avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>): |
| New define insn. |
| (avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Ditto. |
| (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>): |
| Ditto. |
| * config/i386/subst.md (mask_scalarcz_name): New. |
| (mask_scalarc_name): Ditto. |
| (mask_scalarc_operand3): Ditto. |
| (mask_scalarcz_operand4): Ditto. |
| (round_scalarcz_name): Ditto. |
| (round_scalarc_mask_operand3): Ditto. |
| (round_scalarcz_mask_operand4): Ditto. |
| (round_scalarc_mask_op3): Ditto. |
| (round_scalarcz_mask_op4): Ditto. |
| (round_scalarcz_constraint): Ditto. |
| (round_scalarcz_nimm_predicate): Ditto. |
| (mask_scalarcz): Ditto. |
| (mask_scalarc): Ditto. |
| (round_scalarcz): Ditto. |
| |
| 2021-09-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_fcmadd_pch): |
| New intrinsic. |
| (_mm512_mask_fcmadd_pch): Likewise. |
| (_mm512_mask3_fcmadd_pch): Likewise. |
| (_mm512_maskz_fcmadd_pch): Likewise. |
| (_mm512_fmadd_pch): Likewise. |
| (_mm512_mask_fmadd_pch): Likewise. |
| (_mm512_mask3_fmadd_pch): Likewise. |
| (_mm512_maskz_fmadd_pch): Likewise. |
| (_mm512_fcmadd_round_pch): Likewise. |
| (_mm512_mask_fcmadd_round_pch): Likewise. |
| (_mm512_mask3_fcmadd_round_pch): Likewise. |
| (_mm512_maskz_fcmadd_round_pch): Likewise. |
| (_mm512_fmadd_round_pch): Likewise. |
| (_mm512_mask_fmadd_round_pch): Likewise. |
| (_mm512_mask3_fmadd_round_pch): Likewise. |
| (_mm512_maskz_fmadd_round_pch): Likewise. |
| (_mm512_fcmul_pch): Likewise. |
| (_mm512_mask_fcmul_pch): Likewise. |
| (_mm512_maskz_fcmul_pch): Likewise. |
| (_mm512_fmul_pch): Likewise. |
| (_mm512_mask_fmul_pch): Likewise. |
| (_mm512_maskz_fmul_pch): Likewise. |
| (_mm512_fcmul_round_pch): Likewise. |
| (_mm512_mask_fcmul_round_pch): Likewise. |
| (_mm512_maskz_fcmul_round_pch): Likewise. |
| (_mm512_fmul_round_pch): Likewise. |
| (_mm512_mask_fmul_round_pch): Likewise. |
| (_mm512_maskz_fmul_round_pch): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_fmadd_pch): |
| New intrinsic. |
| (_mm_mask_fmadd_pch): Likewise. |
| (_mm_mask3_fmadd_pch): Likewise. |
| (_mm_maskz_fmadd_pch): Likewise. |
| (_mm256_fmadd_pch): Likewise. |
| (_mm256_mask_fmadd_pch): Likewise. |
| (_mm256_mask3_fmadd_pch): Likewise. |
| (_mm256_maskz_fmadd_pch): Likewise. |
| (_mm_fcmadd_pch): Likewise. |
| (_mm_mask_fcmadd_pch): Likewise. |
| (_mm_mask3_fcmadd_pch): Likewise. |
| (_mm_maskz_fcmadd_pch): Likewise. |
| (_mm256_fcmadd_pch): Likewise. |
| (_mm256_mask_fcmadd_pch): Likewise. |
| (_mm256_mask3_fcmadd_pch): Likewise. |
| (_mm256_maskz_fcmadd_pch): Likewise. |
| (_mm_fmul_pch): Likewise. |
| (_mm_mask_fmul_pch): Likewise. |
| (_mm_maskz_fmul_pch): Likewise. |
| (_mm256_fmul_pch): Likewise. |
| (_mm256_mask_fmul_pch): Likewise. |
| (_mm256_maskz_fmul_pch): Likewise. |
| (_mm_fcmul_pch): Likewise. |
| (_mm_mask_fcmul_pch): Likewise. |
| (_mm_maskz_fcmul_pch): Likewise. |
| (_mm256_fcmul_pch): Likewise. |
| (_mm256_mask_fcmul_pch): Likewise. |
| (_mm256_maskz_fcmul_pch): Likewise. |
| * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF_V8HF_V8HF, |
| V8HF_FTYPE_V16HF_V16HF_V16HF, V16HF_FTYPE_V16HF_V16HF_V16HF_UQI, |
| V32HF_FTYPE_V32HF_V32HF_V32HF_INT, |
| V32HF_FTYPE_V32HF_V32HF_V32HF_UHI_INT): Add new builtin types. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-expand.c: Handle new builtin types. |
| * config/i386/subst.md (SUBST_CV): New. |
| (maskc_name): Ditto. |
| (maskc_operand3): Ditto. |
| (maskc): Ditto. |
| (sdc_maskz_name): Ditto. |
| (sdc_mask_op4): Ditto. |
| (sdc_mask_op5): Ditto. |
| (sdc_mask_mode512bit_condition): Ditto. |
| (sdc): Ditto. |
| (round_maskc_operand3): Ditto. |
| (round_sdc_mask_operand4): Ditto. |
| (round_maskc_op3): Ditto. |
| (round_sdc_mask_op4): Ditto. |
| (round_saeonly_sdc_mask_operand5): Ditto. |
| * config/i386/sse.md (unspec): Add complex fma unspecs. |
| (avx512fmaskcmode): New. |
| (UNSPEC_COMPLEX_F_C_MA): Ditto. |
| (UNSPEC_COMPLEX_F_C_MUL): Ditto. |
| (complexopname): Ditto. |
| (<avx512>_fmaddc_<mode>_maskz<round_expand_name>): New expander. |
| (<avx512>_fcmaddc_<mode>_maskz<round_expand_name>): Ditto. |
| (fma_<complexopname>_<mode><sdc_maskz_name><round_name>): New |
| define insn. |
| (<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto. |
| (<avx512>_<complexopname>_<mode><maskc_name><round_name>): Ditto. |
| |
| 2021-09-22 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.opt (rs6000-density-pct-threshold, |
| rs6000-density-size-threshold, rs6000-density-penalty, |
| rs6000-density-load-pct-threshold, |
| rs6000-density-load-num-threshold): New parameter. |
| * config/rs6000/rs6000.c (rs6000_density_test): Adjust with |
| corresponding parameters. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::defined_outside_path): |
| New. |
| (path_range_query::range_on_path_entry): New. |
| (path_range_query::internal_range_of_expr): Resolve unknowns |
| with ranger. |
| (path_range_query::improve_range_with_equivs): New. |
| (path_range_query::ssa_range_in_phi): Resolve unknowns with |
| ranger. |
| * gimple-range-path.h (class path_range_query): Add |
| defined_outside_path, range_on_path_entry, and |
| improve_range_with_equivs. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::add_to_imports): New. |
| (path_range_query::add_copies_to_imports): New. |
| (path_range_query::precompute_ranges): Call |
| add_copies_to_imports. |
| * gimple-range-path.h (class path_range_query): Add prototypes |
| for add_copies_to_imports and add_to_imports. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_defined_in_block): |
| Remove useless code. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.h (class fur_source): Make oracle protected. |
| * gimple-range-path.cc (path_range_query::path_range_query): Add |
| resolve argument. Initialize oracle. |
| (path_range_query::~path_range_query): Delete oracle. |
| (path_range_query::range_of_stmt): Adapt to use relations. |
| (path_range_query::precompute_ranges): Pre-compute relations. |
| (class jt_fur_source): New |
| (jt_fur_source::jt_fur_source): New. |
| (jt_fur_source::register_relation): New. |
| (jt_fur_source::query_relation): New. |
| (path_range_query::precompute_relations): New. |
| (path_range_query::precompute_phi_relations): New. |
| * gimple-range-path.h (path_range_query): Add resolve argument. |
| Add oracle, precompute_relations, precompute_phi_relations. |
| * tree-ssa-threadbackward.c (back_threader::back_threader): Pass |
| resolve argument to solver. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_range_op): |
| Rename postfold_gcond_edges to register_outgoing_edges and |
| adapt. |
| (fold_using_range::postfold_gcond_edges): Rename... |
| (fur_source::register_outgoing_edges): ...to this. |
| * gimple-range-fold.h (postfold_gcond_edges): Rename to |
| register_outgoing_edges and move to fur_source. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Check |
| dom_info_available_p. |
| |
| 2021-09-21 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::non_null_ref): Use create |
| and quick_grow_cleared instead of safe_grow_cleared. |
| |
| 2021-09-21 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR other/102408 |
| * omp-oacc-neuter-broadcast.cc (oacc_do_neutering): Evaluate |
| 'random ()' to '0'. |
| |
| 2021-09-21 Richard Earnshaw <rearnsha@arm.com> |
| |
| * configure.ac: Detect when the assembler supports new-style |
| architecture extensions. |
| * common/config/arm/arm-common.c (arm_rewrite_mcpu): Return |
| the full CPU string if the assembler can grok it. |
| (arm_rewrite_march): Likewise but for the architecture. |
| * config.in: Regenerate. |
| * configure: Regenerate. |
| |
| 2021-09-21 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102421 |
| * tree-vect-loop.c (vect_dissolve_slp_only_groups): Copy and |
| adjust alignment info. |
| |
| 2021-09-21 Kewen Lin <linkw@linux.ibm.com> |
| |
| * ipa-fnsummary.c (ipa_fn_summary_write): Remove inconsistent |
| bitfield stream out. |
| |
| 2021-09-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_phi): Ignore |
| undefined edges, apply an equivalence if appropriate. |
| * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Return |
| UNDEFINED if EDGE_EXECUTABLE is not set. |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Set all edges |
| as EXECUTABLE upon startup. |
| (gimple_ranger::range_on_edge): Return UNDEFINED for edges without |
| EDGE_EXECUTABLE set. |
| * vr-values.c (set_and_propagate_unexecutable): New. |
| (simplify_using_ranges::fold_cond): Call set_and_propagate. |
| (simplify_using_ranges::simplify_switch_using_ranges): Ditto. |
| * vr-values.h: Add prototype. |
| |
| 2021-09-20 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (equiv_oracle::register_initial_def): New. |
| (equiv_oracle::register_relation): Call register_initial_def. |
| (equiv_oracle::add_equiv_to_block): New. Split register_relation. |
| (relation_oracle::register_stmt): Check def block of PHI arguments. |
| * value-relation.h (equiv_oracle): Add new prototypes. |
| |
| 2021-09-20 Matthias Kretz <m.kretz@gsi.de> |
| |
| * cppbuiltin.c (define_builtin_macros_for_compilation_flags): |
| Define __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__, |
| __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and |
| __ROUNDING_MATH__ according to their corresponding flags. |
| * doc/cpp.texi: Document __RECIPROCAL_MATH__, |
| __NO_SIGNED_ZEROS__, __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, |
| and __ROUNDING_MATH__. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_load): Use the vectype |
| from the SLP node. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): |
| Do not compute alignment of the vectorized access here. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): |
| Store -1 for runtime alias peeling iterations. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Obsolete hppa[12]*-*-hpux10* and hppa[12]*-*-hpux11*. |
| |
| 2021-09-20 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * input.c (string_concat_db::record_string_concatenation) |
| (string_concat_db::get_string_concatenation): Skip for |
| 'RESERVED_LOCATION_P'. |
| |
| 2021-09-20 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/65206 |
| * tree-data-ref.h (struct data_reference): Add alt_indices, |
| order it last. |
| * tree-data-ref.c (free_data_ref): Release alt_indices. |
| (dr_analyze_indices): Work on struct indices and get DR_REF as tree. |
| (create_data_ref): Adjust. |
| (initialize_data_dependence_relation): Split into head |
| and tail. When the base objects fail to match up try |
| again with pointer-based analysis of indices. |
| * tree-vectorizer.c (vec_info_shared::check_datarefs): Do |
| not compare the lazily computed alternate set of indices. |
| |
| 2021-09-20 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * gcc.c: Test for execute OK when we find the |
| programs for assembler linker and dsymutil and those |
| were specified at configure-time. |
| |
| 2021-09-19 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102403 |
| * gimple-predicate-analysis.cc (predicate::init_from_control_deps): |
| Correct a function pre/postcondition. |
| |
| 2021-09-19 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102243 |
| * tree-ssa-strlen.c (get_range): Handle null cfun. |
| |
| 2021-09-19 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 |
| unwinder shim as a convenience library. |
| |
| 2021-09-19 Andrew Pinski <apinski@marvell.com> |
| |
| * doc/install.texi: Add note about |
| binutils 2.35 is required for LTO usage. |
| |
| 2021-09-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader_registry::register_path): Use push_edge. |
| * tree-ssa-threadedge.c |
| (jump_threader::thread_around_empty_blocks): Same. |
| (jump_threader::thread_through_normal_block): Same. |
| (jump_threader::thread_across_edge): Same. Also, use auto_bitmap. |
| Tidy up code. |
| * tree-ssa-threadupdate.c |
| (jt_path_registry::allocate_thread_edge): Remove. |
| (jt_path_registry::push_edge): New. |
| (dump_jump_thread_path): Make static. |
| * tree-ssa-threadupdate.h (allocate_thread_edge): Remove. |
| (push_edge): New. |
| |
| 2021-09-19 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::path_range_query): Add |
| header. |
| (path_range_query::dump): Remove extern declaration of dump_ranger. |
| * gimple-range-trace.cc (dump_ranger): Add DEBUG_FUNCTION marker. |
| * gimple-range-trace.h (dump_ranger): Add prototype. |
| |
| 2021-09-19 John Ericson <git@JohnEricson.me> |
| |
| * gcc.c (find_a_program): New function, factored out of... |
| (find_a_file): Here. |
| (execute): Use find_a_program when looking for programs rather |
| than find_a_file. |
| |
| 2021-09-19 Matwey V. Kornilov <matwey.kornilov@gmail.com> |
| |
| * config/avr/avr-mcus.def: Add atmega324pb. |
| * doc/avr-mmcu.texi: Corresponding changes. |
| |
| 2021-09-19 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/88173 |
| * match.pd (cmp @0 REAL_CST@1): When @0 is also REAL_CST, apply |
| the same transformations as to @1. For comparisons against NaN, |
| don't check HONOR_SNANS but confirm that neither operand is a |
| signaling NaN. |
| |
| 2021-09-19 Benjamin Peterson <benjamin@locrian.net> |
| |
| * attribs.c (make_unique_name): Delete. |
| * attribs.h (make_unique_name): Delete. |
| |
| 2021-09-19 Andrew Pinski <apinski@marvell.com> |
| |
| * lra-constraints.c (check_and_process_move): Assert |
| that dclass and sclass are greater than or equal to NO_REGS. |
| |
| 2021-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_ORDER_UNCONSTRAINED): Define. |
| * tree-pretty-print.c (dump_omp_clause): Print unconstrained: |
| for OMP_CLAUSE_ORDER_UNCONSTRAINED. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-features.c (remove_partial_avx_dependency): |
| Restrict TARGET_USE_VECTOR_FP_CONVERTS and |
| TARGET_USE_VECTOR_CONVERTS to conversion instructions only. |
| |
| 2021-09-18 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (omp_default_clause): For C/C++ default({,first}private), |
| if file/namespace scope variable doesn't have predetermined sharing, |
| treat it as if there was default(none). |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_fmadd_sh): |
| New intrinsic. |
| (_mm_mask_fmadd_sh): Likewise. |
| (_mm_mask3_fmadd_sh): Likewise. |
| (_mm_maskz_fmadd_sh): Likewise. |
| (_mm_fmadd_round_sh): Likewise. |
| (_mm_mask_fmadd_round_sh): Likewise. |
| (_mm_mask3_fmadd_round_sh): Likewise. |
| (_mm_maskz_fmadd_round_sh): Likewise. |
| (_mm_fnmadd_sh): Likewise. |
| (_mm_mask_fnmadd_sh): Likewise. |
| (_mm_mask3_fnmadd_sh): Likewise. |
| (_mm_maskz_fnmadd_sh): Likewise. |
| (_mm_fnmadd_round_sh): Likewise. |
| (_mm_mask_fnmadd_round_sh): Likewise. |
| (_mm_mask3_fnmadd_round_sh): Likewise. |
| (_mm_maskz_fnmadd_round_sh): Likewise. |
| (_mm_fmsub_sh): Likewise. |
| (_mm_mask_fmsub_sh): Likewise. |
| (_mm_mask3_fmsub_sh): Likewise. |
| (_mm_maskz_fmsub_sh): Likewise. |
| (_mm_fmsub_round_sh): Likewise. |
| (_mm_mask_fmsub_round_sh): Likewise. |
| (_mm_mask3_fmsub_round_sh): Likewise. |
| (_mm_maskz_fmsub_round_sh): Likewise. |
| (_mm_fnmsub_sh): Likewise. |
| (_mm_mask_fnmsub_sh): Likewise. |
| (_mm_mask3_fnmsub_sh): Likewise. |
| (_mm_maskz_fnmsub_sh): Likewise. |
| (_mm_fnmsub_round_sh): Likewise. |
| (_mm_mask_fnmsub_round_sh): Likewise. |
| (_mm_mask3_fnmsub_round_sh): Likewise. |
| (_mm_maskz_fnmsub_round_sh): Likewise. |
| * config/i386/i386-builtin-types.def |
| (V8HF_FTYPE_V8HF_V8HF_V8HF_UQI_INT): New builtin type. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-expand.c: Handle new builtin type. |
| * config/i386/sse.md (fmai_vmfmadd_<mode><round_name>): |
| Ajdust to support FP16. |
| (fmai_vmfmsub_<mode><round_name>): Ditto. |
| (fmai_vmfnmadd_<mode><round_name>): Ditto. |
| (fmai_vmfnmsub_<mode><round_name>): Ditto. |
| (*fmai_fmadd_<mode>): Ditto. |
| (*fmai_fmsub_<mode>): Ditto. |
| (*fmai_fnmadd_<mode><round_name>): Ditto. |
| (*fmai_fnmsub_<mode><round_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_mask<round_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_mask3<round_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): Ditto. |
| (avx512f_vmfmadd_<mode>_maskz_1<round_name>): Ditto. |
| (*avx512f_vmfmsub_<mode>_mask<round_name>): Ditto. |
| (avx512f_vmfmsub_<mode>_mask3<round_name>): Ditto. |
| (*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Ditto. |
| (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. |
| (*avx512f_vmfnmsub_<mode>_mask3<round_name>): Ditto. |
| (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. |
| (*avx512f_vmfnmadd_<mode>_mask<round_name>): Renamed to ... |
| (avx512f_vmfnmadd_<mode>_mask<round_name>) ... this, and |
| adjust to support FP16. |
| (avx512f_vmfnmadd_<mode>_mask3<round_name>): Ditto. |
| (avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Ditto. |
| (avx512f_vmfnmadd_<mode>_maskz<round_expand_name>): New |
| expander. |
| |
| 2021-09-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/sse.md (avx512fmaskmodelower): Extend to support |
| HF modes. |
| (maskload<mode><avx512fmaskmodelower>): Ditto. |
| (maskstore<mode><avx512fmaskmodelower>): Ditto. |
| |
| 2021-09-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): |
| Handle HFmode. |
| (ix86_expand_copysign): Ditto. |
| (ix86_expand_xorsign): Ditto. |
| * config/i386/i386.c (ix86_build_const_vector): Handle HF vector |
| modes. |
| (ix86_build_signbit_mask): Ditto. |
| (ix86_can_change_mode_class): Ditto. |
| * config/i386/i386.md |
| (SSEMODEF): Add HFmode. |
| (ssevecmodef): Ditto. |
| (<code>hf2): New define_expand. |
| (*<code>hf2_1): New define_insn_and_split. |
| (copysign<mode>): Extend to support HFmode under AVX512FP16. |
| (xorsign<mode>): Ditto. |
| * config/i386/sse.md (VFB): New mode iterator. |
| (VFB_128_256): Ditto. |
| (VFB_512): Ditto. |
| (sseintvecmode2): Support HF vector mode. |
| (<code><mode>2): Use new mode iterator. |
| (*<code><mode>2): Ditto. |
| (copysign<mode>3): Ditto. |
| (xorsign<mode>3): Ditto. |
| (<code><mode>3<mask_name>): Ditto. |
| (<code><mode>3<mask_name>): Ditto. |
| (<sse>_andnot<mode>3<mask_name>): Adjust for HF vector mode. |
| (<sse>_andnot<mode>3<mask_name>): Ditto. |
| (*<code><mode>3<mask_name>): Ditto. |
| (*<code><mode>3<mask_name>): Ditto. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_mask_fmadd_ph): |
| New intrinsic. |
| (_mm512_mask3_fmadd_ph): Likewise. |
| (_mm512_maskz_fmadd_ph): Likewise. |
| (_mm512_fmadd_round_ph): Likewise. |
| (_mm512_mask_fmadd_round_ph): Likewise. |
| (_mm512_mask3_fmadd_round_ph): Likewise. |
| (_mm512_maskz_fmadd_round_ph): Likewise. |
| (_mm512_fnmadd_ph): Likewise. |
| (_mm512_mask_fnmadd_ph): Likewise. |
| (_mm512_mask3_fnmadd_ph): Likewise. |
| (_mm512_maskz_fnmadd_ph): Likewise. |
| (_mm512_fnmadd_round_ph): Likewise. |
| (_mm512_mask_fnmadd_round_ph): Likewise. |
| (_mm512_mask3_fnmadd_round_ph): Likewise. |
| (_mm512_maskz_fnmadd_round_ph): Likewise. |
| (_mm512_fmsub_ph): Likewise. |
| (_mm512_mask_fmsub_ph): Likewise. |
| (_mm512_mask3_fmsub_ph): Likewise. |
| (_mm512_maskz_fmsub_ph): Likewise. |
| (_mm512_fmsub_round_ph): Likewise. |
| (_mm512_mask_fmsub_round_ph): Likewise. |
| (_mm512_mask3_fmsub_round_ph): Likewise. |
| (_mm512_maskz_fmsub_round_ph): Likewise. |
| (_mm512_fnmsub_ph): Likewise. |
| (_mm512_mask_fnmsub_ph): Likewise. |
| (_mm512_mask3_fnmsub_ph): Likewise. |
| (_mm512_maskz_fnmsub_ph): Likewise. |
| (_mm512_fnmsub_round_ph): Likewise. |
| (_mm512_mask_fnmsub_round_ph): Likewise. |
| (_mm512_mask3_fnmsub_round_ph): Likewise. |
| (_mm512_maskz_fnmsub_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm256_fmadd_ph): |
| New intrinsic. |
| (_mm256_mask_fmadd_ph): Likewise. |
| (_mm256_mask3_fmadd_ph): Likewise. |
| (_mm256_maskz_fmadd_ph): Likewise. |
| (_mm_fmadd_ph): Likewise. |
| (_mm_mask_fmadd_ph): Likewise. |
| (_mm_mask3_fmadd_ph): Likewise. |
| (_mm_maskz_fmadd_ph): Likewise. |
| (_mm256_fnmadd_ph): Likewise. |
| (_mm256_mask_fnmadd_ph): Likewise. |
| (_mm256_mask3_fnmadd_ph): Likewise. |
| (_mm256_maskz_fnmadd_ph): Likewise. |
| (_mm_fnmadd_ph): Likewise. |
| (_mm_mask_fnmadd_ph): Likewise. |
| (_mm_mask3_fnmadd_ph): Likewise. |
| (_mm_maskz_fnmadd_ph): Likewise. |
| (_mm256_fmsub_ph): Likewise. |
| (_mm256_mask_fmsub_ph): Likewise. |
| (_mm256_mask3_fmsub_ph): Likewise. |
| (_mm256_maskz_fmsub_ph): Likewise. |
| (_mm_fmsub_ph): Likewise. |
| (_mm_mask_fmsub_ph): Likewise. |
| (_mm_mask3_fmsub_ph): Likewise. |
| (_mm_maskz_fmsub_ph): Likewise. |
| (_mm256_fnmsub_ph): Likewise. |
| (_mm256_mask_fnmsub_ph): Likewise. |
| (_mm256_mask3_fnmsub_ph): Likewise. |
| (_mm256_maskz_fnmsub_ph): Likewise. |
| (_mm_fnmsub_ph): Likewise. |
| (_mm_mask_fnmsub_ph): Likewise. |
| (_mm_mask3_fnmsub_ph): Likewise. |
| (_mm_maskz_fnmsub_ph): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md |
| (<avx512>_fmadd_<mode>_maskz<round_expand_name>): Adjust to |
| support HF vector modes. |
| (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fmadd_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fmadd_<mode>_mask3<round_name>): Ditto. |
| (<avx512>_fmsub_<mode>_maskz<round_expand_name>): Ditto. |
| (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fmsub_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fmsub_<mode>_mask3<round_name>): Ditto. |
| (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fnmadd_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fnmadd_<mode>_mask3<round_name>): Ditto. |
| (<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Ditto. |
| (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Ditto. |
| (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): Ditto. |
| (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): Ditto. |
| (<avx512>_fnmsub_<mode>_mask<round_name>): Ditto. |
| (<avx512>_fnmsub_<mode>_mask3<round_name>): Ditto. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_fmaddsub_ph): |
| New intrinsic. |
| (_mm512_mask_fmaddsub_ph): Likewise. |
| (_mm512_mask3_fmaddsub_ph): Likewise. |
| (_mm512_maskz_fmaddsub_ph): Likewise. |
| (_mm512_fmaddsub_round_ph): Likewise. |
| (_mm512_mask_fmaddsub_round_ph): Likewise. |
| (_mm512_mask3_fmaddsub_round_ph): Likewise. |
| (_mm512_maskz_fmaddsub_round_ph): Likewise. |
| (_mm512_mask_fmsubadd_ph): Likewise. |
| (_mm512_mask3_fmsubadd_ph): Likewise. |
| (_mm512_maskz_fmsubadd_ph): Likewise. |
| (_mm512_fmsubadd_round_ph): Likewise. |
| (_mm512_mask_fmsubadd_round_ph): Likewise. |
| (_mm512_mask3_fmsubadd_round_ph): Likewise. |
| (_mm512_maskz_fmsubadd_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm256_fmaddsub_ph): |
| New intrinsic. |
| (_mm256_mask_fmaddsub_ph): Likewise. |
| (_mm256_mask3_fmaddsub_ph): Likewise. |
| (_mm256_maskz_fmaddsub_ph): Likewise. |
| (_mm_fmaddsub_ph): Likewise. |
| (_mm_mask_fmaddsub_ph): Likewise. |
| (_mm_mask3_fmaddsub_ph): Likewise. |
| (_mm_maskz_fmaddsub_ph): Likewise. |
| (_mm256_fmsubadd_ph): Likewise. |
| (_mm256_mask_fmsubadd_ph): Likewise. |
| (_mm256_mask3_fmsubadd_ph): Likewise. |
| (_mm256_maskz_fmsubadd_ph): Likewise. |
| (_mm_fmsubadd_ph): Likewise. |
| (_mm_mask_fmsubadd_ph): Likewise. |
| (_mm_mask3_fmsubadd_ph): Likewise. |
| (_mm_maskz_fmsubadd_ph): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md (VFH_SF_AVX512VL): New mode iterator. |
| * (<avx512>_fmsubadd_<mode>_maskz<round_expand_name>): New expander. |
| * (<avx512>_fmaddsub_<mode>_maskz<round_expand_name>): Use |
| VFH_SF_AVX512VL. |
| * (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| * (<avx512>_fmaddsub_<mode>_mask<round_name>): Ditto. |
| * (<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto. |
| * (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>): |
| Ditto. |
| * (<avx512>_fmsubadd_<mode>_mask<round_name>): Ditto. |
| * (<avx512>_fmsubadd_<mode>_mask3<round_name>): Ditto. |
| |
| 2021-09-18 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/87767 |
| * config/i386/i386.c (ix86_print_operand): Handle |
| V8HF/V16HF/V32HFmode. |
| * config/i386/i386.h (VALID_BCST_MODE_P): Add HFmode. |
| * config/i386/sse.md (avx512bcst): Remove. |
| |
| 2021-09-17 Martin Sebor <msebor@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-predicate-analysis.o. |
| * tree-ssa-uninit.c (max_phi_args): Move to gimple-predicate-analysis. |
| (MASK_SET_BIT, MASK_TEST_BIT, MASK_EMPTY): Same. |
| (check_defs): Add comment. |
| (can_skip_redundant_opnd): Update comment. |
| (compute_uninit_opnds_pos): Adjust to namespace change. |
| (find_pdom): Move to gimple-predicate-analysis.cc. |
| (find_dom): Same. |
| (struct uninit_undef_val_t): New. |
| (is_non_loop_exit_postdominating): Move to gimple-predicate-analysis.cc. |
| (find_control_equiv_block): Same. |
| (MAX_NUM_CHAINS, MAX_CHAIN_LEN, MAX_POSTDOM_CHECK): Same. |
| (MAX_SWITCH_CASES): Same. |
| (compute_control_dep_chain): Same. |
| (find_uninit_use): Use predicate analyzer. |
| (struct pred_info): Move to gimple-predicate-analysis. |
| (convert_control_dep_chain_into_preds): Same. |
| (find_predicates): Same. |
| (collect_phi_def_edges): Same. |
| (warn_uninitialized_phi): Use predicate analyzer. |
| (find_def_preds): Move to gimple-predicate-analysis. |
| (dump_pred_info): Same. |
| (dump_pred_chain): Same. |
| (dump_predicates): Same. |
| (destroy_predicate_vecs): Remove. |
| (execute_late_warn_uninitialized): New. |
| (get_cmp_code): Move to gimple-predicate-analysis. |
| (is_value_included_in): Same. |
| (value_sat_pred_p): Same. |
| (find_matching_predicate_in_rest_chains): Same. |
| (is_use_properly_guarded): Same. |
| (prune_uninit_phi_opnds): Same. |
| (find_var_cmp_const): Same. |
| (use_pred_not_overlap_with_undef_path_pred): Same. |
| (pred_equal_p): Same. |
| (is_neq_relop_p): Same. |
| (is_neq_zero_form_p): Same. |
| (pred_expr_equal_p): Same. |
| (is_pred_expr_subset_of): Same. |
| (is_pred_chain_subset_of): Same. |
| (is_included_in): Same. |
| (is_superset_of): Same. |
| (pred_neg_p): Same. |
| (simplify_pred): Same. |
| (simplify_preds_2): Same. |
| (simplify_preds_3): Same. |
| (simplify_preds_4): Same. |
| (simplify_preds): Same. |
| (push_pred): Same. |
| (push_to_worklist): Same. |
| (get_pred_info_from_cmp): Same. |
| (is_degenerated_phi): Same. |
| (normalize_one_pred_1): Same. |
| (normalize_one_pred): Same. |
| (normalize_one_pred_chain): Same. |
| (normalize_preds): Same. |
| (can_one_predicate_be_invalidated_p): Same. |
| (can_chain_union_be_invalidated_p): Same. |
| (uninit_uses_cannot_happen): Same. |
| (pass_late_warn_uninitialized::execute): Define. |
| * gimple-predicate-analysis.cc: New file. |
| * gimple-predicate-analysis.h: New file. |
| |
| 2021-09-17 Julian Brown <julian@codesourcery.com> |
| |
| * config/gcn/gcn.c (gimple.h): Include. |
| (gcn_fork_join): Emit barrier for worker-level joins. |
| * omp-oacc-neuter-broadcast.cc (find_local_vars_to_propagate): Add |
| writes_gang_private bitmap parameter. Set bit for blocks |
| containing gang-private variable writes. |
| (worker_single_simple): Don't emit barrier after predicated block. |
| (worker_single_copy): Don't emit barrier if we're not broadcasting |
| anything and the block contains no gang-private writes. |
| (neuter_worker_single): Don't predicate blocks that only contain |
| NOPs or internal marker functions. Pass has_gang_private_write |
| argument to worker_single_copy. |
| (oacc_do_neutering): Add writes_gang_private bitmap handling. |
| |
| 2021-09-17 Julian Brown <julian@codesourcery.com> |
| |
| * config/gcn/gcn-protos.h |
| (gcn_goacc_create_worker_broadcast_record): Update prototype. |
| * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Use |
| preallocated block of LDS memory. Do not cache/share decls for |
| reduction temporaries between invocations. |
| (gcn_goacc_reduction_teardown): Unshare VAR on second use. |
| (gcn_goacc_create_worker_broadcast_record): Add OFFSET parameter |
| and return temporary LDS space at that offset. Return pointer in |
| "sender" case. |
| * config/gcn/gcn.c (acc_lds_size, gang_private_hwm, lds_allocs): |
| New global vars. |
| (ACC_LDS_SIZE): Define as acc_lds_size. |
| (gcn_init_machine_status): Don't initialise lds_allocated, |
| lds_allocs, reduc_decls fields of machine function struct. |
| (gcn_option_override): Handle default size for gang-private |
| variables and -mgang-private-size option. |
| (gcn_expand_prologue): Use LDS_SIZE instead of LDS_SIZE-1 when |
| initialising M0_REG. |
| (gcn_shared_mem_layout): New function. |
| (gcn_print_lds_decl): Update comment. Use global lds_allocs map and |
| gang_private_hwm variable. |
| (TARGET_GOACC_SHARED_MEM_LAYOUT): Define target hook. |
| * config/gcn/gcn.h (machine_function): Remove lds_allocated, |
| lds_allocs, reduc_decls. Add reduction_base, reduction_limit. |
| * config/gcn/gcn.opt (gang_private_size_opt): New global. |
| (mgang-private-size=): New option. |
| * doc/tm.texi.in (TARGET_GOACC_SHARED_MEM_LAYOUT): Place |
| documentation hook. |
| * doc/tm.texi: Regenerate. |
| * omp-oacc-neuter-broadcast.cc (targhooks.h, diagnostic-core.h): |
| Add includes. |
| (build_sender_ref): Handle sender_decl being pointer. |
| (worker_single_copy): Add PLACEMENT and ISOLATE_BROADCASTS |
| parameters. Pass placement argument to |
| create_worker_broadcast_record hook invocations. Handle |
| sender_decl being pointer and isolate_broadcasts inserting extra |
| barriers. |
| (blk_offset_map_t): Add typedef. |
| (neuter_worker_single): Add BLK_OFFSET_MAP parameter. Pass |
| preallocated range to worker_single_copy call. |
| (dfs_broadcast_reachable_1): New function. |
| (idx_decl_pair_t, used_range_vec_t): New typedefs. |
| (sort_size_descending): New function. |
| (addr_range): New class. |
| (splay_tree_compare_addr_range, splay_tree_free_key) |
| (first_fit_range, merge_ranges_1, merge_ranges): New functions. |
| (execute_omp_oacc_neuter_broadcast): Rename to... |
| (oacc_do_neutering): ... this. Add BOUNDS_LO, BOUNDS_HI |
| parameters. Arrange layout of shared memory for broadcast |
| operations. |
| (execute_omp_oacc_neuter_broadcast): New function. |
| (pass_omp_oacc_neuter_broadcast::gate): Remove num_workers==1 |
| handling from here. Enable pass for all OpenACC routines in order |
| to call shared memory-layout hook. |
| * target.def (create_worker_broadcast_record): Add OFFSET |
| parameter. |
| (shared_mem_layout): New hook. |
| |
| 2021-09-17 Julian Brown <julian@codesourcery.com> |
| Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc |
| (pass_omp_oacc_neuter_broadcast::gate): Disable if num_workers is |
| 1. |
| (execute_omp_oacc_neuter_broadcast): Adjust. |
| |
| 2021-09-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (class equiv_chain): Move to header file. |
| (path_oracle::path_oracle): New. |
| (path_oracle::~path_oracle): New. |
| (path_oracle::register_relation): New. |
| (path_oracle::query_relation): New. |
| (path_oracle::reset_path): New. |
| (path_oracle::dump): New. |
| * value-relation.h (class equiv_chain): Move to here. |
| (class path_oracle): New. |
| |
| 2021-09-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a DOM |
| based oracle. |
| * gimple-range-fold.cc (fur_depend::register_relation): Use |
| register_stmt/edge routines. |
| * value-relation.cc (equiv_chain::find): Relocate from equiv_oracle. |
| (equiv_oracle::equiv_oracle): Create self equivalence cache. |
| (equiv_oracle::~equiv_oracle): Release same. |
| (equiv_oracle::equiv_set): Return entry from self equiv cache if there |
| are no equivalences. |
| (equiv_oracle::find_equiv_block): Move list find to equiv_chain. |
| (equiv_oracle::register_relation): Rename from register_equiv. |
| (relation_chain_head::find_relation): Relocate from dom_oracle. |
| (relation_oracle::register_stmt): New. |
| (relation_oracle::register_edge): New. |
| (dom_oracle::*): Rename from relation_oracle. |
| (dom_oracle::register_relation): Adjust to call equiv_oracle. |
| (dom_oracle::set_one_relation): Split from register_relation. |
| (dom_oracle::register_transitives): Consolidate 2 methods. |
| (dom_oracle::find_relation_block): Move core to relation_chain. |
| (dom_oracle::query_relation): Rename from find_relation_dom and adjust. |
| * value-relation.h (class relation_oracle): New pure virtual base. |
| (class equiv_oracle): Inherit from relation_oracle and adjust. |
| (class dom_oracle): Rename from old relation_oracle and adjust. |
| |
| 2021-09-17 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/102200 |
| * pointer-query.cc (access_ref::inform_access): Handle MIN/MAX_EXPR. |
| (handle_min_max_size): Change argument. Store original SSA_NAME for |
| operands to potentially distinct (sub)objects. |
| (compute_objsize_r): Adjust call to the above. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000-builtins.h): New include. |
| (rs6000_new_builtin_vectorized_function): New function. |
| (rs6000_new_builtin_md_vectorized_function): Likewise. |
| (rs6000_builtin_vectorized_function): Call |
| rs6000_new_builtin_vectorized_function. |
| (rs6000_builtin_md_vectorized_function): Call |
| rs6000_new_builtin_md_vectorized_function. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def (ASSEMBLE_ACC): Add mmaint flag. |
| (ASSEMBLE_PAIR): Likewise. |
| (BUILD_ACC): Likewise. |
| (DISASSEMBLE_ACC): Likewise. |
| (DISASSEMBLE_PAIR): Likewise. |
| (PMXVBF16GER2): Likewise. |
| (PMXVBF16GER2NN): Likewise. |
| (PMXVBF16GER2NP): Likewise. |
| (PMXVBF16GER2PN): Likewise. |
| (PMXVBF16GER2PP): Likewise. |
| (PMXVF16GER2): Likewise. |
| (PMXVF16GER2NN): Likewise. |
| (PMXVF16GER2NP): Likewise. |
| (PMXVF16GER2PN): Likewise. |
| (PMXVF16GER2PP): Likewise. |
| (PMXVF32GER): Likewise. |
| (PMXVF32GERNN): Likewise. |
| (PMXVF32GERNP): Likewise. |
| (PMXVF32GERPN): Likewise. |
| (PMXVF32GERPP): Likewise. |
| (PMXVF64GER): Likewise. |
| (PMXVF64GERNN): Likewise. |
| (PMXVF64GERNP): Likewise. |
| (PMXVF64GERPN): Likewise. |
| (PMXVF64GERPP): Likewise. |
| (PMXVI16GER2): Likewise. |
| (PMXVI16GER2PP): Likewise. |
| (PMXVI16GER2S): Likewise. |
| (PMXVI16GER2SPP): Likewise. |
| (PMXVI4GER8): Likewise. |
| (PMXVI4GER8PP): Likewise. |
| (PMXVI8GER4): Likewise. |
| (PMXVI8GER4PP): Likewise. |
| (PMXVI8GER4SPP): Likewise. |
| (XVBF16GER2): Likewise. |
| (XVBF16GER2NN): Likewise. |
| (XVBF16GER2NP): Likewise. |
| (XVBF16GER2PN): Likewise. |
| (XVBF16GER2PP): Likewise. |
| (XVF16GER2): Likewise. |
| (XVF16GER2NN): Likewise. |
| (XVF16GER2NP): Likewise. |
| (XVF16GER2PN): Likewise. |
| (XVF16GER2PP): Likewise. |
| (XVF32GER): Likewise. |
| (XVF32GERNN): Likewise. |
| (XVF32GERNP): Likewise. |
| (XVF32GERPN): Likewise. |
| (XVF32GERPP): Likewise. |
| (XVF64GER): Likewise. |
| (XVF64GERNN): Likewise. |
| (XVF64GERNP): Likewise. |
| (XVF64GERPN): Likewise. |
| (XVF64GERPP): Likewise. |
| (XVI16GER2): Likewise. |
| (XVI16GER2PP): Likewise. |
| (XVI16GER2S): Likewise. |
| (XVI16GER2SPP): Likewise. |
| (XVI4GER8): Likewise. |
| (XVI4GER8PP): Likewise. |
| (XVI8GER4): Likewise. |
| (XVI8GER4PP): Likewise. |
| (XVI8GER4SPP): Likewise. |
| (XXMFACC): Likewise. |
| (XXMTACC): Likewise. |
| (XXSETACCZ): Likewise. |
| (ASSEMBLE_PAIR_V): Likewise. |
| (BUILD_PAIR): Likewise. |
| (DISASSEMBLE_PAIR_V): Likewise. |
| (LXVP): New. |
| (STXVP): New. |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_mma_builtin): |
| Handle RS6000_BIF_LXVP and RS6000_BIF_STXVP. |
| * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add ismmaint. |
| (parse_bif_attrs): Handle ismmaint. |
| (write_decls): Add bif_mmaint_bit and bif_is_mmaint. |
| (write_bif_static_init): Handle ismmaint. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): New |
| forward decl. |
| (rs6000_gimple_fold_builtin): Call rs6000_gimple_fold_new_builtin. |
| (rs6000_new_builtin_valid_without_lhs): New function. |
| (rs6000_gimple_fold_new_mma_builtin): Likewise. |
| (rs6000_gimple_fold_new_builtin): Likewise. |
| |
| 2021-09-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * hash-table.h (hash_table<Descriptor, Lazy, Allocator>::expand): |
| Destruct stale Value objects. |
| * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): |
| Update. |
| |
| 2021-09-17 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR c/102245 |
| * match.pd (shift optimizations): Disable recent sign-changing |
| optimization for shifts by zero, these will be folded later. |
| |
| 2021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def (__builtin_mffsl): Move from |
| [power9] to [always]. |
| |
| 2021-09-17 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-stmts.c (vectorizable_load): Do not frob |
| stmt_info for SLP. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-features.c (remove_partial_avx_dependency): |
| Also check TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY and |
| and TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY before generating |
| vxorps. |
| * config/i386/i386.h (TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): |
| New. |
| (TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. |
| * config/i386/i386.md (SSE FP to FP splitters): Replace |
| TARGET_SSE_PARTIAL_REG_DEPENDENCY with |
| TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY. |
| (SSE INT to FP splitter): Replace TARGET_SSE_PARTIAL_REG_DEPENDENCY |
| with TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY. |
| * config/i386/x86-tune.def |
| (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): New. |
| (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101900 |
| * config/i386/i386-features.c (remove_partial_avx_dependency): |
| Check TARGET_USE_VECTOR_FP_CONVERTS and TARGET_USE_VECTOR_CONVERTS |
| before generating vxorps. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-options.c (processor_cost_table): Use |
| tremont_cost for Tremont. |
| * config/i386/x86-tune-costs.h (tremont_memcpy): New. |
| (tremont_memset): Likewise. |
| (tremont_cost): Likewise. |
| * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): |
| Enable for Tremont. |
| |
| 2021-09-17 H.J. Lu <hjl.tools@gmail.com> |
| |
| * common/config/i386/i386-common.c: Use Haswell scheduling model |
| for Tremont. |
| * config/i386/i386.c (ix86_sched_init_global): Prepare for Tremont |
| scheduling pass. |
| * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Tremont |
| issue rate to 4. |
| (ix86_adjust_cost): Handle Tremont. |
| * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): |
| Enable for Tremont. |
| (X86_TUNE_USE_LEAVE): Likewise. |
| (X86_TUNE_PUSH_MEMORY): Likewise. |
| (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. |
| (X86_TUNE_USE_CLTD): Likewise. |
| (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. |
| (X86_TUNE_AVOID_MFENCE): Likewise. |
| (X86_TUNE_SSE_TYPELESS_STORES): Likewise. |
| (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. |
| (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Disable for Tremont. |
| (X86_TUNE_FOUR_JUMP_LIMIT): Likewise. |
| (X86_TUNE_OPT_AGU): Likewise. |
| (X86_TUNE_AVOID_LEA_FOR_ADDR): Likewise. |
| (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Likewise. |
| (X86_TUNE_EXPAND_ABS): Likewise. |
| (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Likewise. |
| (X86_TUNE_SLOW_PSHUFB): Likewise. |
| |
| 2021-09-17 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR rtl-optimization/102306 |
| * combine.c (try_combine): Abort the combination if we are about to |
| duplicate volatile references. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_undefined_ph): |
| New intrinsic. |
| (_mm256_undefined_ph): Likewise. |
| (_mm512_undefined_ph): Likewise. |
| (_mm_cvtsh_h): Likewise. |
| (_mm256_cvtsh_h): Likewise. |
| (_mm512_cvtsh_h): Likewise. |
| (_mm512_castph_ps): Likewise. |
| (_mm512_castph_pd): Likewise. |
| (_mm512_castph_si512): Likewise. |
| (_mm512_castph512_ph128): Likewise. |
| (_mm512_castph512_ph256): Likewise. |
| (_mm512_castph128_ph512): Likewise. |
| (_mm512_castph256_ph512): Likewise. |
| (_mm512_zextph128_ph512): Likewise. |
| (_mm512_zextph256_ph512): Likewise. |
| (_mm512_castps_ph): Likewise. |
| (_mm512_castpd_ph): Likewise. |
| (_mm512_castsi512_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_castph_ps): |
| New intrinsic. |
| (_mm256_castph_ps): Likewise. |
| (_mm_castph_pd): Likewise. |
| (_mm256_castph_pd): Likewise. |
| (_mm_castph_si128): Likewise. |
| (_mm256_castph_si256): Likewise. |
| (_mm_castps_ph): Likewise. |
| (_mm256_castps_ph): Likewise. |
| (_mm_castpd_ph): Likewise. |
| (_mm256_castpd_ph): Likewise. |
| (_mm_castsi128_ph): Likewise. |
| (_mm256_castsi256_ph): Likewise. |
| (_mm256_castph256_ph128): Likewise. |
| (_mm256_castph128_ph256): Likewise. |
| (_mm256_zextph128_ph256): Likewise. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_cvtsh_ss): |
| New intrinsic. |
| (_mm_mask_cvtsh_ss): Likewise. |
| (_mm_maskz_cvtsh_ss): Likewise. |
| (_mm_cvtsh_sd): Likewise. |
| (_mm_mask_cvtsh_sd): Likewise. |
| (_mm_maskz_cvtsh_sd): Likewise. |
| (_mm_cvt_roundsh_ss): Likewise. |
| (_mm_mask_cvt_roundsh_ss): Likewise. |
| (_mm_maskz_cvt_roundsh_ss): Likewise. |
| (_mm_cvt_roundsh_sd): Likewise. |
| (_mm_mask_cvt_roundsh_sd): Likewise. |
| (_mm_maskz_cvt_roundsh_sd): Likewise. |
| (_mm_cvtss_sh): Likewise. |
| (_mm_mask_cvtss_sh): Likewise. |
| (_mm_maskz_cvtss_sh): Likewise. |
| (_mm_cvtsd_sh): Likewise. |
| (_mm_mask_cvtsd_sh): Likewise. |
| (_mm_maskz_cvtsd_sh): Likewise. |
| (_mm_cvt_roundss_sh): Likewise. |
| (_mm_mask_cvt_roundss_sh): Likewise. |
| (_mm_maskz_cvt_roundss_sh): Likewise. |
| (_mm_cvt_roundsd_sh): Likewise. |
| (_mm_mask_cvt_roundsd_sh): Likewise. |
| (_mm_maskz_cvt_roundsd_sh): Likewise. |
| * config/i386/i386-builtin-types.def |
| (V8HF_FTYPE_V2DF_V8HF_V8HF_UQI_INT, |
| V8HF_FTYPE_V4SF_V8HF_V8HF_UQI_INT, |
| V2DF_FTYPE_V8HF_V2DF_V2DF_UQI_INT, |
| V4SF_FTYPE_V8HF_V4SF_V4SF_UQI_INT): Add new builtin types. |
| * config/i386/i386-builtin.def: Add corrresponding new builtins. |
| * config/i386/i386-expand.c: Handle new builtin types. |
| * config/i386/sse.md (VF48_128): New mode iterator. |
| (avx512fp16_vcvtsh2<ssescalarmodesuffix><mask_scalar_name><round_saeonly_scalar_name>): |
| New. |
| (avx512fp16_vcvt<ssescalarmodesuffix>2sh<mask_scalar_name><round_scalar_name>): |
| Ditto. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvtph_pd): |
| New intrinsic. |
| (_mm512_mask_cvtph_pd): Likewise. |
| (_mm512_maskz_cvtph_pd): Likewise. |
| (_mm512_cvt_roundph_pd): Likewise. |
| (_mm512_mask_cvt_roundph_pd): Likewise. |
| (_mm512_maskz_cvt_roundph_pd): Likewise. |
| (_mm512_cvtxph_ps): Likewise. |
| (_mm512_mask_cvtxph_ps): Likewise. |
| (_mm512_maskz_cvtxph_ps): Likewise. |
| (_mm512_cvtx_roundph_ps): Likewise. |
| (_mm512_mask_cvtx_roundph_ps): Likewise. |
| (_mm512_maskz_cvtx_roundph_ps): Likewise. |
| (_mm512_cvtxps_ph): Likewise. |
| (_mm512_mask_cvtxps_ph): Likewise. |
| (_mm512_maskz_cvtxps_ph): Likewise. |
| (_mm512_cvtx_roundps_ph): Likewise. |
| (_mm512_mask_cvtx_roundps_ph): Likewise. |
| (_mm512_maskz_cvtx_roundps_ph): Likewise. |
| (_mm512_cvtpd_ph): Likewise. |
| (_mm512_mask_cvtpd_ph): Likewise. |
| (_mm512_maskz_cvtpd_ph): Likewise. |
| (_mm512_cvt_roundpd_ph): Likewise. |
| (_mm512_mask_cvt_roundpd_ph): Likewise. |
| (_mm512_maskz_cvt_roundpd_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvtph_pd): |
| New intrinsic. |
| (_mm_mask_cvtph_pd): Likewise. |
| (_mm_maskz_cvtph_pd): Likewise. |
| (_mm256_cvtph_pd): Likewise. |
| (_mm256_mask_cvtph_pd): Likewise. |
| (_mm256_maskz_cvtph_pd): Likewise. |
| (_mm_cvtxph_ps): Likewise. |
| (_mm_mask_cvtxph_ps): Likewise. |
| (_mm_maskz_cvtxph_ps): Likewise. |
| (_mm256_cvtxph_ps): Likewise. |
| (_mm256_mask_cvtxph_ps): Likewise. |
| (_mm256_maskz_cvtxph_ps): Likewise. |
| (_mm_cvtxps_ph): Likewise. |
| (_mm_mask_cvtxps_ph): Likewise. |
| (_mm_maskz_cvtxps_ph): Likewise. |
| (_mm256_cvtxps_ph): Likewise. |
| (_mm256_mask_cvtxps_ph): Likewise. |
| (_mm256_maskz_cvtxps_ph): Likewise. |
| (_mm_cvtpd_ph): Likewise. |
| (_mm_mask_cvtpd_ph): Likewise. |
| (_mm_maskz_cvtpd_ph): Likewise. |
| (_mm256_cvtpd_ph): Likewise. |
| (_mm256_mask_cvtpd_ph): Likewise. |
| (_mm256_maskz_cvtpd_ph): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-expand.c: Handle new builtin types. |
| * config/i386/sse.md |
| (VF4_128_8_256): New. |
| (VF48H_AVX512VL): Ditto. |
| (ssePHmode): Add HF vector modes. |
| (castmode): Add new convertable modes. |
| (qq2phsuff): Ditto. |
| (ph2pssuffix): New. |
| (avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>): Ditto. |
| (avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. |
| (*avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. |
| (avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<castmode>2ph_<mode>_mask_1): Ditto. |
| (avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>): |
| Ditto. |
| (avx512fp16_float_extend_ph<mode>2<mask_name>): Ditto. |
| (*avx512fp16_float_extend_ph<mode>2_load<mask_name>): Ditto. |
| (avx512fp16_float_extend_phv2df2<mask_name>): Ditto. |
| (*avx512fp16_float_extend_phv2df2_load<mask_name>): Ditto. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_cvttsh_i32): |
| New intrinsic. |
| (_mm_cvttsh_u32): Likewise. |
| (_mm_cvtt_roundsh_i32): Likewise. |
| (_mm_cvtt_roundsh_u32): Likewise. |
| (_mm_cvttsh_i64): Likewise. |
| (_mm_cvttsh_u64): Likewise. |
| (_mm_cvtt_roundsh_i64): Likewise. |
| (_mm_cvtt_roundsh_u64): Likewise. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/sse.md |
| (avx512fp16_fix<fixunssuffix>_trunc<mode>2<round_saeonly_name>): |
| New. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvttph_epi32): |
| New intrinsic. |
| (_mm512_mask_cvttph_epi32): Likewise. |
| (_mm512_maskz_cvttph_epi32): Likewise. |
| (_mm512_cvtt_roundph_epi32): Likewise. |
| (_mm512_mask_cvtt_roundph_epi32): Likewise. |
| (_mm512_maskz_cvtt_roundph_epi32): Likewise. |
| (_mm512_cvttph_epu32): Likewise. |
| (_mm512_mask_cvttph_epu32): Likewise. |
| (_mm512_maskz_cvttph_epu32): Likewise. |
| (_mm512_cvtt_roundph_epu32): Likewise. |
| (_mm512_mask_cvtt_roundph_epu32): Likewise. |
| (_mm512_maskz_cvtt_roundph_epu32): Likewise. |
| (_mm512_cvttph_epi64): Likewise. |
| (_mm512_mask_cvttph_epi64): Likewise. |
| (_mm512_maskz_cvttph_epi64): Likewise. |
| (_mm512_cvtt_roundph_epi64): Likewise. |
| (_mm512_mask_cvtt_roundph_epi64): Likewise. |
| (_mm512_maskz_cvtt_roundph_epi64): Likewise. |
| (_mm512_cvttph_epu64): Likewise. |
| (_mm512_mask_cvttph_epu64): Likewise. |
| (_mm512_maskz_cvttph_epu64): Likewise. |
| (_mm512_cvtt_roundph_epu64): Likewise. |
| (_mm512_mask_cvtt_roundph_epu64): Likewise. |
| (_mm512_maskz_cvtt_roundph_epu64): Likewise. |
| (_mm512_cvttph_epi16): Likewise. |
| (_mm512_mask_cvttph_epi16): Likewise. |
| (_mm512_maskz_cvttph_epi16): Likewise. |
| (_mm512_cvtt_roundph_epi16): Likewise. |
| (_mm512_mask_cvtt_roundph_epi16): Likewise. |
| (_mm512_maskz_cvtt_roundph_epi16): Likewise. |
| (_mm512_cvttph_epu16): Likewise. |
| (_mm512_mask_cvttph_epu16): Likewise. |
| (_mm512_maskz_cvttph_epu16): Likewise. |
| (_mm512_cvtt_roundph_epu16): Likewise. |
| (_mm512_mask_cvtt_roundph_epu16): Likewise. |
| (_mm512_maskz_cvtt_roundph_epu16): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvttph_epi32): |
| New intirnsic. |
| (_mm_mask_cvttph_epi32): Likewise. |
| (_mm_maskz_cvttph_epi32): Likewise. |
| (_mm256_cvttph_epi32): Likewise. |
| (_mm256_mask_cvttph_epi32): Likewise. |
| (_mm256_maskz_cvttph_epi32): Likewise. |
| (_mm_cvttph_epu32): Likewise. |
| (_mm_mask_cvttph_epu32): Likewise. |
| (_mm_maskz_cvttph_epu32): Likewise. |
| (_mm256_cvttph_epu32): Likewise. |
| (_mm256_mask_cvttph_epu32): Likewise. |
| (_mm256_maskz_cvttph_epu32): Likewise. |
| (_mm_cvttph_epi64): Likewise. |
| (_mm_mask_cvttph_epi64): Likewise. |
| (_mm_maskz_cvttph_epi64): Likewise. |
| (_mm256_cvttph_epi64): Likewise. |
| (_mm256_mask_cvttph_epi64): Likewise. |
| (_mm256_maskz_cvttph_epi64): Likewise. |
| (_mm_cvttph_epu64): Likewise. |
| (_mm_mask_cvttph_epu64): Likewise. |
| (_mm_maskz_cvttph_epu64): Likewise. |
| (_mm256_cvttph_epu64): Likewise. |
| (_mm256_mask_cvttph_epu64): Likewise. |
| (_mm256_maskz_cvttph_epu64): Likewise. |
| (_mm_cvttph_epi16): Likewise. |
| (_mm_mask_cvttph_epi16): Likewise. |
| (_mm_maskz_cvttph_epi16): Likewise. |
| (_mm256_cvttph_epi16): Likewise. |
| (_mm256_mask_cvttph_epi16): Likewise. |
| (_mm256_maskz_cvttph_epi16): Likewise. |
| (_mm_cvttph_epu16): Likewise. |
| (_mm_mask_cvttph_epu16): Likewise. |
| (_mm_maskz_cvttph_epu16): Likewise. |
| (_mm256_cvttph_epu16): Likewise. |
| (_mm256_mask_cvttph_epu16): Likewise. |
| (_mm256_maskz_cvttph_epu16): Likewise. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/sse.md |
| (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>): |
| New. |
| (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>): Ditto. |
| (*avx512fp16_fix<fixunssuffix>_trunc<mode>2_load<mask_name>): Ditto. |
| (avx512fp16_fix<fixunssuffix>_truncv2di2<mask_name>): Ditto. |
| (avx512fp16_fix<fixunssuffix>_truncv2di2_load<mask_name>): Ditto. |
| |
| 2021-09-17 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_cvtsh_i32): New intrinsic. |
| (_mm_cvtsh_u32): Likewise. |
| (_mm_cvt_roundsh_i32): Likewise. |
| (_mm_cvt_roundsh_u32): Likewise. |
| (_mm_cvtsh_i64): Likewise. |
| (_mm_cvtsh_u64): Likewise. |
| (_mm_cvt_roundsh_i64): Likewise. |
| (_mm_cvt_roundsh_u64): Likewise. |
| (_mm_cvti32_sh): Likewise. |
| (_mm_cvtu32_sh): Likewise. |
| (_mm_cvt_roundi32_sh): Likewise. |
| (_mm_cvt_roundu32_sh): Likewise. |
| (_mm_cvti64_sh): Likewise. |
| (_mm_cvtu64_sh): Likewise. |
| (_mm_cvt_roundi64_sh): Likewise. |
| (_mm_cvt_roundu64_sh): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c (ix86_expand_round_builtin): |
| Handle new builtin types. |
| * config/i386/sse.md |
| (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix><round_name>): |
| New define_insn. |
| (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix>_2): Likewise. |
| (avx512fp16_vcvt<floatsuffix>si2sh<rex64namesuffix><round_name>): Likewise. |
| |
| 2021-09-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-c.c (rs6000-builtins.h): New include. |
| (altivec_resolve_new_overloaded_builtin): New forward decl. |
| (rs6000_new_builtin_type_compatible): New function. |
| (altivec_resolve_overloaded_builtin): Call |
| altivec_resolve_new_overloaded_builtin. |
| (altivec_build_new_resolved_builtin): New function. |
| (altivec_resolve_new_overloaded_builtin): Likewise. |
| * config/rs6000/rs6000-call.c (rs6000_new_builtin_is_supported): |
| Likewise. |
| * config/rs6000/rs6000-gen-builtins.c (write_decls): Remove _p from |
| name of rs6000_new_builtin_is_supported. |
| |
| 2021-09-16 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-protos.h (ix86_decompose_address): |
| Change return type to bool. |
| * config/i386/i386.c (ix86_decompose_address): Ditto. |
| |
| 2021-09-16 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR target/102353 |
| * config/rs6000/t-rs6000 (build/rs6000-gen-builtins.o, build/rbtree.o): |
| Added 'build/' to target, use build/%.o rule. |
| (build/rs6000-gen-builtins$(build_exeext)): Add 'build/' and |
| '$(build_exeext)' to target and 'build/' for the *.o files. |
| (rs6000-builtins.c): Update for those changes; run rs6000-gen-builtins |
| with $(RUN_GEN). |
| |
| 2021-09-16 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.c (cgraph_node::dump): Do not check caller count sums if |
| the body has been removed. Remove trailing whitespace. |
| |
| 2021-09-16 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102360 |
| * internal-fn.c (expand_DEFERRED_INIT): Make pattern-init |
| of non-memory more robust. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5 |
| * config/sparc/sparc.c (struct processor_costs): Add LEON5 costs |
| (leon5_adjust_cost): Increase cost of store with data dependency |
| on ALU instruction and FPU anti-dependencies. |
| (sparc_option_override): Add LEON5 costs |
| (sparc_adjust_cost): Add LEON5 cost adjustments |
| * config/sparc/sparc.h: Add LEON5 |
| * config/sparc/sparc.md: Include LEON5 scheduling information |
| * config/sparc/sparc.opt: Add LEON5 |
| * doc/invoke.texi: Add LEON5 |
| * config/sparc/leon5.md: New file. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.md (stack_protect_set32): Add NOP to prevent |
| sensitive sequence for B2BST errata workaround. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin |
| functions with atomic instruction in the UT700 errata workaround. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (next_active_non_empty_insn): New function |
| that returns next active non empty assembly instruction. |
| (sparc_do_work_around_errata): Use new function. |
| |
| 2021-09-16 Daniel Cederman <cederman@gaisler.com> |
| |
| * config/sparc/sparc.c (store_insn_p): Add predicate for store |
| attributes. |
| (load_insn_p): Add predicate for load attributes. |
| (sparc_do_work_around_errata): Use new predicates. |
| |
| 2021-09-16 Andreas Larsson <andreas@gaisler.com> |
| |
| * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for |
| LEON and LEON3. |
| |
| 2021-09-16 Martin Liska <mliska@suse.cz> |
| |
| * config/mips/netbsd.h: Fix typo in name of a macro. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/102080 |
| * match.pd: Check mask type when doing cond_op related gimple |
| simplification. |
| * tree.c (is_truth_type_for): New function. |
| * tree.h (is_truth_type_for): New declaration. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvtepi32_ph): New |
| intrinsic. |
| (_mm512_mask_cvtepi32_ph): Likewise. |
| (_mm512_maskz_cvtepi32_ph): Likewise. |
| (_mm512_cvt_roundepi32_ph): Likewise. |
| (_mm512_mask_cvt_roundepi32_ph): Likewise. |
| (_mm512_maskz_cvt_roundepi32_ph): Likewise. |
| (_mm512_cvtepu32_ph): Likewise. |
| (_mm512_mask_cvtepu32_ph): Likewise. |
| (_mm512_maskz_cvtepu32_ph): Likewise. |
| (_mm512_cvt_roundepu32_ph): Likewise. |
| (_mm512_mask_cvt_roundepu32_ph): Likewise. |
| (_mm512_maskz_cvt_roundepu32_ph): Likewise. |
| (_mm512_cvtepi64_ph): Likewise. |
| (_mm512_mask_cvtepi64_ph): Likewise. |
| (_mm512_maskz_cvtepi64_ph): Likewise. |
| (_mm512_cvt_roundepi64_ph): Likewise. |
| (_mm512_mask_cvt_roundepi64_ph): Likewise. |
| (_mm512_maskz_cvt_roundepi64_ph): Likewise. |
| (_mm512_cvtepu64_ph): Likewise. |
| (_mm512_mask_cvtepu64_ph): Likewise. |
| (_mm512_maskz_cvtepu64_ph): Likewise. |
| (_mm512_cvt_roundepu64_ph): Likewise. |
| (_mm512_mask_cvt_roundepu64_ph): Likewise. |
| (_mm512_maskz_cvt_roundepu64_ph): Likewise. |
| (_mm512_cvtepi16_ph): Likewise. |
| (_mm512_mask_cvtepi16_ph): Likewise. |
| (_mm512_maskz_cvtepi16_ph): Likewise. |
| (_mm512_cvt_roundepi16_ph): Likewise. |
| (_mm512_mask_cvt_roundepi16_ph): Likewise. |
| (_mm512_maskz_cvt_roundepi16_ph): Likewise. |
| (_mm512_cvtepu16_ph): Likewise. |
| (_mm512_mask_cvtepu16_ph): Likewise. |
| (_mm512_maskz_cvtepu16_ph): Likewise. |
| (_mm512_cvt_roundepu16_ph): Likewise. |
| (_mm512_mask_cvt_roundepu16_ph): Likewise. |
| (_mm512_maskz_cvt_roundepu16_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvtepi32_ph): New |
| intrinsic. |
| (_mm_mask_cvtepi32_ph): Likewise. |
| (_mm_maskz_cvtepi32_ph): Likewise. |
| (_mm256_cvtepi32_ph): Likewise. |
| (_mm256_mask_cvtepi32_ph): Likewise. |
| (_mm256_maskz_cvtepi32_ph): Likewise. |
| (_mm_cvtepu32_ph): Likewise. |
| (_mm_mask_cvtepu32_ph): Likewise. |
| (_mm_maskz_cvtepu32_ph): Likewise. |
| (_mm256_cvtepu32_ph): Likewise. |
| (_mm256_mask_cvtepu32_ph): Likewise. |
| (_mm256_maskz_cvtepu32_ph): Likewise. |
| (_mm_cvtepi64_ph): Likewise. |
| (_mm_mask_cvtepi64_ph): Likewise. |
| (_mm_maskz_cvtepi64_ph): Likewise. |
| (_mm256_cvtepi64_ph): Likewise. |
| (_mm256_mask_cvtepi64_ph): Likewise. |
| (_mm256_maskz_cvtepi64_ph): Likewise. |
| (_mm_cvtepu64_ph): Likewise. |
| (_mm_mask_cvtepu64_ph): Likewise. |
| (_mm_maskz_cvtepu64_ph): Likewise. |
| (_mm256_cvtepu64_ph): Likewise. |
| (_mm256_mask_cvtepu64_ph): Likewise. |
| (_mm256_maskz_cvtepu64_ph): Likewise. |
| (_mm_cvtepi16_ph): Likewise. |
| (_mm_mask_cvtepi16_ph): Likewise. |
| (_mm_maskz_cvtepi16_ph): Likewise. |
| (_mm256_cvtepi16_ph): Likewise. |
| (_mm256_mask_cvtepi16_ph): Likewise. |
| (_mm256_maskz_cvtepi16_ph): Likewise. |
| (_mm_cvtepu16_ph): Likewise. |
| (_mm_mask_cvtepu16_ph): Likewise. |
| (_mm_maskz_cvtepu16_ph): Likewise. |
| (_mm256_cvtepu16_ph): Likewise. |
| (_mm256_mask_cvtepu16_ph): Likewise. |
| (_mm256_maskz_cvtepu16_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/i386-modes.def: Declare V2HF and V6HF. |
| * config/i386/sse.md (VI2H_AVX512VL): New. |
| (qq2phsuff): Ditto. |
| (sseintvecmode): Add HF vector modes. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>): |
| New. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. |
| (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. |
| (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask_1): Ditto. |
| (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. |
| (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. |
| (avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. |
| (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask_1): Ditto. |
| * config/i386/subst.md (round_qq2phsuff): New subst_attr. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_cvtph_epi32): |
| New intrinsic/ |
| (_mm512_mask_cvtph_epi32): Likewise. |
| (_mm512_maskz_cvtph_epi32): Likewise. |
| (_mm512_cvt_roundph_epi32): Likewise. |
| (_mm512_mask_cvt_roundph_epi32): Likewise. |
| (_mm512_maskz_cvt_roundph_epi32): Likewise. |
| (_mm512_cvtph_epu32): Likewise. |
| (_mm512_mask_cvtph_epu32): Likewise. |
| (_mm512_maskz_cvtph_epu32): Likewise. |
| (_mm512_cvt_roundph_epu32): Likewise. |
| (_mm512_mask_cvt_roundph_epu32): Likewise. |
| (_mm512_maskz_cvt_roundph_epu32): Likewise. |
| (_mm512_cvtph_epi64): Likewise. |
| (_mm512_mask_cvtph_epi64): Likewise. |
| (_mm512_maskz_cvtph_epi64): Likewise. |
| (_mm512_cvt_roundph_epi64): Likewise. |
| (_mm512_mask_cvt_roundph_epi64): Likewise. |
| (_mm512_maskz_cvt_roundph_epi64): Likewise. |
| (_mm512_cvtph_epu64): Likewise. |
| (_mm512_mask_cvtph_epu64): Likewise. |
| (_mm512_maskz_cvtph_epu64): Likewise. |
| (_mm512_cvt_roundph_epu64): Likewise. |
| (_mm512_mask_cvt_roundph_epu64): Likewise. |
| (_mm512_maskz_cvt_roundph_epu64): Likewise. |
| (_mm512_cvtph_epi16): Likewise. |
| (_mm512_mask_cvtph_epi16): Likewise. |
| (_mm512_maskz_cvtph_epi16): Likewise. |
| (_mm512_cvt_roundph_epi16): Likewise. |
| (_mm512_mask_cvt_roundph_epi16): Likewise. |
| (_mm512_maskz_cvt_roundph_epi16): Likewise. |
| (_mm512_cvtph_epu16): Likewise. |
| (_mm512_mask_cvtph_epu16): Likewise. |
| (_mm512_maskz_cvtph_epu16): Likewise. |
| (_mm512_cvt_roundph_epu16): Likewise. |
| (_mm512_mask_cvt_roundph_epu16): Likewise. |
| (_mm512_maskz_cvt_roundph_epu16): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cvtph_epi32): |
| New intrinsic. |
| (_mm_mask_cvtph_epi32): Likewise. |
| (_mm_maskz_cvtph_epi32): Likewise. |
| (_mm256_cvtph_epi32): Likewise. |
| (_mm256_mask_cvtph_epi32): Likewise. |
| (_mm256_maskz_cvtph_epi32): Likewise. |
| (_mm_cvtph_epu32): Likewise. |
| (_mm_mask_cvtph_epu32): Likewise. |
| (_mm_maskz_cvtph_epu32): Likewise. |
| (_mm256_cvtph_epu32): Likewise. |
| (_mm256_mask_cvtph_epu32): Likewise. |
| (_mm256_maskz_cvtph_epu32): Likewise. |
| (_mm_cvtph_epi64): Likewise. |
| (_mm_mask_cvtph_epi64): Likewise. |
| (_mm_maskz_cvtph_epi64): Likewise. |
| (_mm256_cvtph_epi64): Likewise. |
| (_mm256_mask_cvtph_epi64): Likewise. |
| (_mm256_maskz_cvtph_epi64): Likewise. |
| (_mm_cvtph_epu64): Likewise. |
| (_mm_mask_cvtph_epu64): Likewise. |
| (_mm_maskz_cvtph_epu64): Likewise. |
| (_mm256_cvtph_epu64): Likewise. |
| (_mm256_mask_cvtph_epu64): Likewise. |
| (_mm256_maskz_cvtph_epu64): Likewise. |
| (_mm_cvtph_epi16): Likewise. |
| (_mm_mask_cvtph_epi16): Likewise. |
| (_mm_maskz_cvtph_epi16): Likewise. |
| (_mm256_cvtph_epi16): Likewise. |
| (_mm256_mask_cvtph_epi16): Likewise. |
| (_mm256_maskz_cvtph_epi16): Likewise. |
| (_mm_cvtph_epu16): Likewise. |
| (_mm_mask_cvtph_epu16): Likewise. |
| (_mm_maskz_cvtph_epu16): Likewise. |
| (_mm256_cvtph_epu16): Likewise. |
| (_mm256_mask_cvtph_epu16): Likewise. |
| (_mm256_maskz_cvtph_epu16): Likewise. |
| * config/i386/i386-builtin-types.def: Add new builtin types. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (sseintconvert): New. |
| (ssePHmode): Ditto. |
| (UNSPEC_US_FIX_NOTRUNC): Ditto. |
| (sseintconvertsignprefix): Ditto. |
| (avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode><mask_name><round_name>): |
| Ditto. |
| |
| 2021-09-16 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm_cvtsi16_si128): |
| New intrinsic. |
| (_mm_cvtsi128_si16): Likewise. |
| (_mm_mask_load_sh): Likewise. |
| (_mm_maskz_load_sh): Likewise. |
| (_mm_mask_store_sh): Likewise. |
| (_mm_move_sh): Likewise. |
| (_mm_mask_move_sh): Likewise. |
| (_mm_maskz_move_sh): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_special_args_builtin): Handle new builtin types. |
| (ix86_expand_vector_init_one_nonzero): Adjust for FP16 target. |
| * config/i386/sse.md (VI2F): New mode iterator. |
| (vec_set<mode>_0): Use new mode iterator. |
| (avx512f_mov<ssescalarmodelower>_mask): Adjust for HF vector mode. |
| (avx512f_store<mode>_mask): Ditto. |
| |
| 2021-09-16 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.opt (-mtoc-fusion): Remove. |
| |
| 2021-09-15 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): |
| Proceed if no symbol summary or the symbol alias flag is false. |
| |
| 2021-09-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR c++/88578 |
| PR c++/102295 |
| * varasm.c (output_constructor_regular_field): Instead of assertion |
| that array_size_for_constructor result is equal to size of |
| TREE_TYPE (local->val) in bytes, assert that the type size is greater |
| or equal to array_size_for_constructor result and use type size as |
| fieldsize. |
| |
| 2021-09-15 Martin Liska <mliska@suse.cz> |
| |
| PR target/102351 |
| * config/i386/vxworks.h: Use new macro TARGET_CPU_P. |
| |
| 2021-09-15 Martin Liska <mliska@suse.cz> |
| |
| PR target/102349 |
| * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): |
| Check that we have a symbol summary for a symbol. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR target/102348 |
| * config/rs6000/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE |
| to inherit from elfos.h |
| |
| 2021-09-15 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102327 |
| * config/i386/i386-expand.c |
| (ix86_expand_vector_init_interleave): Use puncklwd to pack 2 |
| HFmodes. |
| (ix86_expand_vector_set): Use blendw instead of pinsrw. |
| * config/i386/i386.c (ix86_can_change_mode_class): Adjust for |
| AVX512FP16 which supports 16bit vector load. |
| * config/i386/sse.md (avx512bw_interleave_highv32hi<mask_name>): |
| Rename to .. |
| (avx512bw_interleave_high<mode><mask_name>): .. this, and |
| extend to V32HFmode. |
| (avx2_interleave_highv16hi<mask_name>): Rename to .. |
| (avx2_interleave_high<mode><mask_name>): .. this, and extend |
| to V16HFmode. |
| (vec_interleave_highv8hi<mask_name>): Rename to .. |
| (vec_interleave_high<mode><mask_name>): .. this, and extend to V8HFmode. |
| (<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>): |
| Rename to .. |
| (<mask_codefor>avx512bw_interleave_low<mode><mask_name>): |
| this, and extend to V32HFmode. |
| (avx2_interleave_lowv16hi<mask_name>): Rename to .. |
| (avx2_interleave_low<mode><mask_name>): .. this, and extend to V16HFmode. |
| (vec_interleave_lowv8hi<mask_name>): Rename to .. |
| (vec_interleave_low<mode><mask_name>): .. this, and extend to V8HFmode. |
| (sse4_1_pblendw): Rename to .. |
| (sse4_1_pblend<blendsuf>): .. this, and extend to V8HFmode. |
| (avx2_pblendph): New define_expand. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Refactor, use |
| sseintmodesuffix instead of ssemodesuffix. |
| (blendsuf): New mode attr. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (dr_misalignment): Move out of line. |
| (dr_target_alignment): New. |
| (DR_TARGET_ALIGNMENT): Wrap dr_target_alignment. |
| (set_dr_target_alignment): New. |
| (SET_DR_TARGET_ALIGNMENT): Wrap set_dr_target_alignment. |
| * tree-vect-data-refs.c (dr_misalignment): Compute and |
| return the group members misalignment. |
| (vect_compute_data_ref_alignment): Use SET_DR_TARGET_ALIGNMENT. |
| (vect_analyze_data_refs_alignment): Compute alignment only |
| for the first element of a DR group. |
| (vect_slp_analyze_node_alignment): Likewise. |
| |
| 2021-09-15 Hongyu Wang <hongyu.wang@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: Adjust all builtin calls. |
| * config/i386/avx512fp16vlintrin.h: Likewise. |
| * config/i386/i386-builtin.def: Adjust builtin name and |
| enumeration to match AVX512F style. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102318 |
| * tree-vect-loop.c (vect_transform_cycle_phi): Revert |
| previous change and do the mode conversion separately from |
| the sign conversion. |
| |
| 2021-09-15 Hongtao Liu <hongtao.liu@intel.com> |
| Peter Cordes <peter@cordes.ca> |
| |
| PR target/91103 |
| * config/i386/sse.md (extract_suf): Add V8SF/V8SI/V4DF/V4DI. |
| (*vec_extract<mode><ssescalarmodelower>_valign): Output |
| vextract{i,f}{32x4,64x2} instruction when byte_offset % 16 == |
| 0. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Remove vax-*-openbsd* configuration. |
| |
| 2021-09-15 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Remove m68k-openbsd. |
| |
| 2021-09-15 Max Filippov <jcmvbkbc@gmail.com> |
| |
| PR target/102336 |
| * config/xtensa/t-xtensa (TM_H): Add include/xtensa-config.h. |
| |
| 2021-09-14 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_XXSETACCZ. |
| (unspecv): Add UNSPECV_MMA_XXSETACCZ. |
| (*mma_xxsetaccz): Delete. |
| (mma_xxsetaccz): Change to define_insn. Remove operand 1. |
| Use UNSPECV_MMA_XXSETACCZ. Update comment. |
| * config/rs6000/rs6000.c (rs6000_rtx_costs): Use UNSPECV_MMA_XXSETACCZ. |
| |
| 2021-09-14 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * Makefile.in: Remove variables related to applying no-PIE |
| to the exes on $build. |
| * configure: Regenerate. |
| * configure.ac: Remove configuration related to applying |
| no-PIE to the exes on $build. |
| |
| 2021-09-14 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * config/arc/arc.md (doloop_end): Add missing mode. |
| (loop_end): Likewise. |
| |
| 2021-09-14 Jakub Jelinek <jakub@redhat.com> |
| |
| * gimplify.c (goa_stabilize_expr): Add depth argument, propagate |
| it to recursive calls, for depth above 7 just gimplify or return. |
| Perform a test even for MODIFY_EXPR, ADDR_EXPR, COMPOUND_EXPR with |
| __builtin_clear_padding and TARGET_EXPR. |
| (gimplify_omp_atomic): Adjust goa_stabilize_expr callers. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_fpclass_sh_mask): |
| New intrinsic. |
| (_mm_mask_fpclass_sh_mask): Likewise. |
| (_mm512_mask_fpclass_ph_mask): Likewise. |
| (_mm512_fpclass_ph_mask): Likewise. |
| (_mm_getexp_sh): Likewise. |
| (_mm_mask_getexp_sh): Likewise. |
| (_mm_maskz_getexp_sh): Likewise. |
| (_mm512_getexp_ph): Likewise. |
| (_mm512_mask_getexp_ph): Likewise. |
| (_mm512_maskz_getexp_ph): Likewise. |
| (_mm_getexp_round_sh): Likewise. |
| (_mm_mask_getexp_round_sh): Likewise. |
| (_mm_maskz_getexp_round_sh): Likewise. |
| (_mm512_getexp_round_ph): Likewise. |
| (_mm512_mask_getexp_round_ph): Likewise. |
| (_mm512_maskz_getexp_round_ph): Likewise. |
| (_mm_getmant_sh): Likewise. |
| (_mm_mask_getmant_sh): Likewise. |
| (_mm_maskz_getmant_sh): Likewise. |
| (_mm512_getmant_ph): Likewise. |
| (_mm512_mask_getmant_ph): Likewise. |
| (_mm512_maskz_getmant_ph): Likewise. |
| (_mm_getmant_round_sh): Likewise. |
| (_mm_mask_getmant_round_sh): Likewise. |
| (_mm_maskz_getmant_round_sh): Likewise. |
| (_mm512_getmant_round_ph): Likewise. |
| (_mm512_mask_getmant_round_ph): Likewise. |
| (_mm512_maskz_getmant_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_mask_fpclass_ph_mask): |
| New intrinsic. |
| (_mm_fpclass_ph_mask): Likewise. |
| (_mm256_mask_fpclass_ph_mask): Likewise. |
| (_mm256_fpclass_ph_mask): Likewise. |
| (_mm256_getexp_ph): Likewise. |
| (_mm256_mask_getexp_ph): Likewise. |
| (_mm256_maskz_getexp_ph): Likewise. |
| (_mm_getexp_ph): Likewise. |
| (_mm_mask_getexp_ph): Likewise. |
| (_mm_maskz_getexp_ph): Likewise. |
| (_mm256_getmant_ph): Likewise. |
| (_mm256_mask_getmant_ph): Likewise. |
| (_mm256_maskz_getmant_ph): Likewise. |
| (_mm_getmant_ph): Likewise. |
| (_mm_mask_getmant_ph): Likewise. |
| (_mm_maskz_getmant_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (vecmemsuffix): Add HF vector modes. |
| (<avx512>_getexp<mode><mask_name><round_saeonly_name>): Adjust |
| to support HF vector modes. |
| (avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name): |
| Ditto. |
| (avx512dq_fpclass<mode><mask_scalar_merge_name>): Ditto. |
| (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Ditto. |
| (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Ditto. |
| (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): |
| Ditto. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm512_reduce_ph): |
| New intrinsic. |
| (_mm512_mask_reduce_ph): Likewise. |
| (_mm512_maskz_reduce_ph): Likewise. |
| (_mm512_reduce_round_ph): Likewise. |
| (_mm512_mask_reduce_round_ph): Likewise. |
| (_mm512_maskz_reduce_round_ph): Likewise. |
| (_mm_reduce_sh): Likewise. |
| (_mm_mask_reduce_sh): Likewise. |
| (_mm_maskz_reduce_sh): Likewise. |
| (_mm_reduce_round_sh): Likewise. |
| (_mm_mask_reduce_round_sh): Likewise. |
| (_mm_maskz_reduce_round_sh): Likewise. |
| (_mm512_roundscale_ph): Likewise. |
| (_mm512_mask_roundscale_ph): Likewise. |
| (_mm512_maskz_roundscale_ph): Likewise. |
| (_mm512_roundscale_round_ph): Likewise. |
| (_mm512_mask_roundscale_round_ph): Likewise. |
| (_mm512_maskz_roundscale_round_ph): Likewise. |
| (_mm_roundscale_sh): Likewise. |
| (_mm_mask_roundscale_sh): Likewise. |
| (_mm_maskz_roundscale_sh): Likewise. |
| (_mm_roundscale_round_sh): Likewise. |
| (_mm_mask_roundscale_round_sh): Likewise. |
| (_mm_maskz_roundscale_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h: (_mm_reduce_ph): |
| New intrinsic. |
| (_mm_mask_reduce_ph): Likewise. |
| (_mm_maskz_reduce_ph): Likewise. |
| (_mm256_reduce_ph): Likewise. |
| (_mm256_mask_reduce_ph): Likewise. |
| (_mm256_maskz_reduce_ph): Likewise. |
| (_mm_roundscale_ph): Likewise. |
| (_mm_mask_roundscale_ph): Likewise. |
| (_mm_maskz_roundscale_ph): Likewise. |
| (_mm256_roundscale_ph): Likewise. |
| (_mm256_mask_roundscale_ph): Likewise. |
| (_mm256_maskz_roundscale_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (<mask_codefor>reducep<mode><mask_name>): |
| Renamed to ... |
| (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): |
| ... this, and adjust for round operands. |
| (reduces<mode><mask_scalar_name>): Likewise, with ... |
| (reduces<mode><mask_scalar_name><round_saeonly_scalar_name): |
| ... this. |
| (<avx512>_rndscale<mode><mask_name><round_saeonly_name>): |
| Adjust for HF vector modes. |
| (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>): |
| Ditto. |
| (*avx512f_rndscale<mode><round_saeonly_name>): Ditto. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_rcp_ph): |
| New intrinsic. |
| (_mm512_mask_rcp_ph): Likewise. |
| (_mm512_maskz_rcp_ph): Likewise. |
| (_mm_rcp_sh): Likewise. |
| (_mm_mask_rcp_sh): Likewise. |
| (_mm_maskz_rcp_sh): Likewise. |
| (_mm512_scalef_ph): Likewise. |
| (_mm512_mask_scalef_ph): Likewise. |
| (_mm512_maskz_scalef_ph): Likewise. |
| (_mm512_scalef_round_ph): Likewise. |
| (_mm512_mask_scalef_round_ph): Likewise. |
| (_mm512_maskz_scalef_round_ph): Likewise. |
| (_mm_scalef_sh): Likewise. |
| (_mm_mask_scalef_sh): Likewise. |
| (_mm_maskz_scalef_sh): Likewise. |
| (_mm_scalef_round_sh): Likewise. |
| (_mm_mask_scalef_round_sh): Likewise. |
| (_mm_maskz_scalef_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_rcp_ph): |
| New intrinsic. |
| (_mm256_rcp_ph): Likewise. |
| (_mm_mask_rcp_ph): Likewise. |
| (_mm256_mask_rcp_ph): Likewise. |
| (_mm_maskz_rcp_ph): Likewise. |
| (_mm256_maskz_rcp_ph): Likewise. |
| (_mm_scalef_ph): Likewise. |
| (_mm256_scalef_ph): Likewise. |
| (_mm_mask_scalef_ph): Likewise. |
| (_mm256_mask_scalef_ph): Likewise. |
| (_mm_maskz_scalef_ph): Likewise. |
| (_mm256_maskz_scalef_ph): Likewise. |
| * config/i386/i386-builtin.def: Add new builtins. |
| * config/i386/sse.md (VFH_AVX512VL): New. |
| (avx512fp16_rcp<mode>2<mask_name>): Ditto. |
| (avx512fp16_vmrcpv8hf2<mask_scalar_name>): Ditto. |
| (avx512f_vmscalef<mode><mask_scalar_name><round_scalar_name>): |
| Adjust to support HF vector modes. |
| (<avx512>_scalef<mode><mask_name><round_name>): Ditto. |
| |
| 2021-09-14 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_sqrt_ph): |
| New intrinsic. |
| (_mm512_mask_sqrt_ph): Likewise. |
| (_mm512_maskz_sqrt_ph): Likewise. |
| (_mm512_sqrt_round_ph): Likewise. |
| (_mm512_mask_sqrt_round_ph): Likewise. |
| (_mm512_maskz_sqrt_round_ph): Likewise. |
| (_mm512_rsqrt_ph): Likewise. |
| (_mm512_mask_rsqrt_ph): Likewise. |
| (_mm512_maskz_rsqrt_ph): Likewise. |
| (_mm_rsqrt_sh): Likewise. |
| (_mm_mask_rsqrt_sh): Likewise. |
| (_mm_maskz_rsqrt_sh): Likewise. |
| (_mm_sqrt_sh): Likewise. |
| (_mm_mask_sqrt_sh): Likewise. |
| (_mm_maskz_sqrt_sh): Likewise. |
| (_mm_sqrt_round_sh): Likewise. |
| (_mm_mask_sqrt_round_sh): Likewise. |
| (_mm_maskz_sqrt_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_sqrt_ph): New intrinsic. |
| (_mm256_sqrt_ph): Likewise. |
| (_mm_mask_sqrt_ph): Likewise. |
| (_mm256_mask_sqrt_ph): Likewise. |
| (_mm_maskz_sqrt_ph): Likewise. |
| (_mm256_maskz_sqrt_ph): Likewise. |
| (_mm_rsqrt_ph): Likewise. |
| (_mm256_rsqrt_ph): Likewise. |
| (_mm_mask_rsqrt_ph): Likewise. |
| (_mm256_mask_rsqrt_ph): Likewise. |
| (_mm_maskz_rsqrt_ph): Likewise. |
| (_mm256_maskz_rsqrt_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtins. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/sse.md (VF_AVX512FP16VL): New. |
| (sqrt<mode>2): Adjust for HF vector modes. |
| (<sse>_sqrt<mode>2<mask_name><round_name>): Likewise. |
| (<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): |
| Likewise. |
| (<sse>_rsqrt<mode>2<mask_name>): New. |
| (avx512fp16_vmrsqrtv8hf2<mask_scalar_name>): Likewise. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR bootstrap/101574 |
| * diagnostic-spec.c (warning_suppressed_at, copy_warning): Handle |
| 'RESERVED_LOCATION_P' locations. |
| * warning-control.cc (get_nowarn_spec, suppress_warning) |
| (copy_warning): Likewise. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * diagnostic-spec.h (typedef xint_hash_t): Use 'location_t' instead of... |
| (typedef key_type_t): ... this. Remove. |
| (nowarn_map): Document. |
| * diagnostic-spec.c (nowarn_map): Likewise. |
| * warning-control.cc (convert_to_key): Evolve functions into... |
| (get_location): ... these. Adjust all users. |
| |
| 2021-09-13 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * warning-control.cc (copy_warning): Remove 'nowarn_map' setup. |
| |
| 2021-09-13 Jason Merrill <jason@redhat.com> |
| |
| * params.opt: Add destructive-interference-size and |
| constructive-interference-size. |
| * doc/invoke.texi: Document them. |
| * config/aarch64/aarch64.c (aarch64_override_options_internal): |
| Set them. |
| * config/arm/arm.c (arm_option_override): Set them. |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Set them. |
| |
| 2021-09-13 Martin Liska <mliska@suse.cz> |
| H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101696 |
| * common/config/i386/cpuinfo.h (cpu_indicator_init): Add support |
| for x86-64 micro levels for __builtin_cpu_supports. |
| * common/config/i386/i386-cpuinfo.h (enum feature_priority): |
| Add priorities for the micro-arch levels. |
| (enum processor_features): Add new features. |
| * common/config/i386/i386-isas.h: Add micro-arch features. |
| * config/i386/i386-builtins.c (get_builtin_code_for_version): |
| Support the micro-arch levels by callsing |
| __builtin_cpu_supports. |
| * doc/extend.texi: Document that the levels are support by |
| __builtin_cpu_supports. |
| |
| 2021-09-13 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/95969 |
| * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin_lane_check): |
| New function. |
| (aarch64_general_fold_builtin): Handle AARCH64_SIMD_BUILTIN_LANE_CHECK. |
| (aarch64_general_gimple_fold_builtin): Likewise. |
| |
| 2021-09-13 Andrew Pinski <apinski@marvell.com> |
| |
| * config.gcc: Add m32r-*-linux* and m32rle-*-linux* |
| to the Unsupported targets list. |
| Remove support for m32r-*-linux* and m32rle-*-linux*. |
| * config/m32r/linux.h: Removed. |
| * config/m32r/t-linux: Removed. |
| |
| 2021-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| PR target/102252 |
| * config/aarch64/aarch64.c (aarch64_classify_address): Don't allow |
| register index for SVE predicate modes. |
| |
| 2021-09-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Remove FSM |
| references. |
| (back_threader_registry::register_path): Same. |
| * tree-ssa-threadedge.c |
| (jump_threader::simplify_control_stmt_condition): Same. |
| * tree-ssa-threadupdate.c (jt_path_registry::jt_path_registry): |
| Add backedge_threads argument. |
| (fwd_jt_path_registry::fwd_jt_path_registry): Pass |
| backedge_threads argument. |
| (back_jt_path_registry::back_jt_path_registry): Same. |
| (dump_jump_thread_path): Adjust for FSM removal. |
| (back_jt_path_registry::rewire_first_differing_edge): Same. |
| (back_jt_path_registry::adjust_paths_after_duplication): Same. |
| (back_jt_path_registry::update_cfg): Same. |
| (jt_path_registry::register_jump_thread): Same. |
| * tree-ssa-threadupdate.h (enum jump_thread_edge_type): Remove |
| EDGE_FSM_THREAD. |
| (class back_jt_path_registry): Add backedge_threads to |
| constructor. |
| |
| 2021-09-13 Martin Liska <mliska@suse.cz> |
| |
| PR c++/101331 |
| * asan.h (sanitize_coverage_p): Handle when fn == NULL. |
| |
| 2021-09-13 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101935 |
| * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): New. |
| (TARGET_AVX256_STORE_BY_PIECES): Likewise. |
| (MOVE_MAX): Check TARGET_AVX256_MOVE_BY_PIECES and |
| TARGET_AVX256_STORE_BY_PIECES instead of |
| TARGET_AVX256_SPLIT_UNALIGNED_LOAD and |
| TARGET_AVX256_SPLIT_UNALIGNED_STORE. |
| (STORE_MAX_PIECES): Check TARGET_AVX256_STORE_BY_PIECES instead |
| of TARGET_AVX256_SPLIT_UNALIGNED_STORE. |
| * config/i386/x86-tune.def (X86_TUNE_AVX256_MOVE_BY_PIECES): New. |
| (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. |
| |
| 2021-09-13 liuhongt <hongtao.liu@intel.com> |
| |
| PR bootstrap/102302 |
| * expmed.c (extract_bit_field_using_extv): Use |
| gen_lowpart_if_possible instead of gen_lowpart to avoid ICE. |
| |
| 2021-09-13 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (OBJS): Add value-pointer-equiv.o. |
| * gimple-ssa-evrp.c (class ssa_equiv_stack): Move to |
| value-pointer-equiv.*. |
| (ssa_equiv_stack::ssa_equiv_stack): Same. |
| (ssa_equiv_stack::enter): Same. |
| (ssa_equiv_stack::leave): Same. |
| (ssa_equiv_stack::push_replacement): Same. |
| (ssa_equiv_stack::get_replacement): Same. |
| (is_pointer_ssa): Same. |
| (class pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::~pointer_equiv_analyzer): Same. |
| (pointer_equiv_analyzer::set_global_equiv): Same. |
| (pointer_equiv_analyzer::set_cond_equiv): Same. |
| (pointer_equiv_analyzer::get_equiv): Same. |
| (pointer_equiv_analyzer::enter): Same. |
| (pointer_equiv_analyzer::leave): Same. |
| (pointer_equiv_analyzer::get_equiv_expr): Same. |
| (pta_valueize): Same. |
| (pointer_equiv_analyzer::visit_stmt): Same. |
| (pointer_equiv_analyzer::visit_edge): Same. |
| (hybrid_folder::value_of_expr): Same. |
| (hybrid_folder::value_on_edge): Same. |
| * value-pointer-equiv.cc: New file. |
| * value-pointer-equiv.h: New file. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding |
| memcpy if the size is not more than MOVE_MAX * MOVE_RATIO. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * config/arm/arm.md (movmisaligndi): New define_expand. |
| * config/arm/vec-common.md (movmisalign<mode>): Iterate over VDQ mode. |
| |
| 2021-09-13 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102125 |
| * emit-rtl.c (gen_highpart): Use adjust_address to handle |
| MEM rather than calling simplify_gen_subreg. |
| |
| 2021-09-13 Jan-Benedict Glaw <jbglaw@ług-owl.de> |
| |
| * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment |
| define into a block. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/darwin.h (DARWIN_PREFER_DWARF): Do not define. |
| * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Do not |
| change based on DARWIN_PREFER_DWARF not being defined. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE |
| to inherit from elfos.h |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config.gcc: Add cr16-*-* to the list of obsoleted targets. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/avr/elf.h (PREFERRED_DEBUGGING_TYPE): Remove |
| override, pick up DWARF2_DEBUG define from elfos.h |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/rx/rx.h (PREFERRED_DEBUGGING_TYPE): Always define to |
| DWARF2_DEBUG. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/alpha/vms.h (PREFERRED_DEBUGGING_TYPE): Define to |
| DWARF2_DEBUG. |
| |
| 2021-09-13 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/cygming.h: Always default to DWARF2 debugging. |
| Do not define DBX_DEBUGGING_INFO, that's done via dbxcoff.h |
| already. |
| * doc/install.texi: Document binutils 2.16 as minimum |
| requirement for mingw. |
| |
| 2021-09-13 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (struct rs6000_cost_data): New members |
| nstmts, nloads and extra_ctor_cost. |
| (rs6000_density_test): Add load density related heuristics. Do |
| extra costing on vector construction statements if need. |
| (rs6000_init_cost): Init new members. |
| (rs6000_update_target_cost_per_stmt): New function. |
| (rs6000_add_stmt_cost): Factor vect_nonmem hunk out to function |
| rs6000_update_target_cost_per_stmt and call it. |
| |
| 2021-09-13 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (struct rs6000_cost_data): Remove typedef. |
| (rs6000_init_cost): Adjust. |
| |
| 2021-09-13 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386.md: (UNSPEC_COPYSIGN): Remove. |
| (UNSPEC_XORSIGN): Ditto. |
| |
| 2021-09-12 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.c (convert_move): Preserve SUBREG_PROMOTED_VAR_P when |
| creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P |
| subreg. |
| |
| 2021-09-11 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (class back_threader_registry): Use |
| back_jt_path_registry. |
| * tree-ssa-threadedge.c (jump_threader::jump_threader): Use |
| fwd_jt_path_registry. |
| * tree-ssa-threadedge.h (class jump_threader): Same.. |
| * tree-ssa-threadupdate.c |
| (jump_thread_path_registry::jump_thread_path_registry): Rename... |
| (jt_path_registry::jt_path_registry): ...to this. |
| (jump_thread_path_registry::~jump_thread_path_registry): Rename... |
| (jt_path_registry::~jt_path_registry): ...this. |
| (fwd_jt_path_registry::fwd_jt_path_registry): New. |
| (fwd_jt_path_registry::~fwd_jt_path_registry): New. |
| (jump_thread_path_registry::allocate_thread_edge): Rename... |
| (jt_path_registry::allocate_thread_edge): ...to this. |
| (jump_thread_path_registry::allocate_thread_path): Rename... |
| (jt_path_registry::allocate_thread_path): ...to this. |
| (jump_thread_path_registry::lookup_redirection_data): Rename... |
| (fwd_jt_path_registry::lookup_redirection_data): ...to this. |
| (jump_thread_path_registry::thread_block_1): Rename... |
| (fwd_jt_path_registry::thread_block_1): ...to this. |
| (jump_thread_path_registry::thread_block): Rename... |
| (fwd_jt_path_registry::thread_block): ...to this. |
| (jt_path_registry::thread_through_loop_header): Rename... |
| (fwd_jt_path_registry::thread_through_loop_header): ...to this. |
| (jump_thread_path_registry::mark_threaded_blocks): Rename... |
| (fwd_jt_path_registry::mark_threaded_blocks): ...to this. |
| (jump_thread_path_registry::debug_path): Rename... |
| (jt_path_registry::debug_path): ...to this. |
| (jump_thread_path_registry::dump): Rename... |
| (jt_path_registry::debug): ...to this. |
| (jump_thread_path_registry::rewire_first_differing_edge): Rename... |
| (back_jt_path_registry::rewire_first_differing_edge): ...to this. |
| (jump_thread_path_registry::adjust_paths_after_duplication): Rename... |
| (back_jt_path_registry::adjust_paths_after_duplication): ...to this. |
| (jump_thread_path_registry::duplicate_thread_path): Rename... |
| (back_jt_path_registry::duplicate_thread_path): ...to this. Also, |
| drop ill-formed candidates. |
| (jump_thread_path_registry::remove_jump_threads_including): Rename... |
| (fwd_jt_path_registry::remove_jump_threads_including): ...to this. |
| (jt_path_registry::thread_through_all_blocks): New. |
| (back_jt_path_registry::update_cfg): New. |
| (fwd_jt_path_registry::update_cfg): New. |
| (jump_thread_path_registry::register_jump_thread): Rename... |
| (jt_path_registry::register_jump_thread): ...to this. |
| * tree-ssa-threadupdate.h (class jump_thread_path_registry): |
| Abstract to... |
| (class jt_path_registry): ...here. |
| (class fwd_jt_path_registry): New. |
| (class back_jt_path_registry): New. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| * emit-rtl.c (validate_subreg): Get rid of all float-int |
| special cases. |
| |
| 2021-09-10 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree-core.h (enum omp_memory_order): Add OMP_MEMORY_ORDER_MASK, |
| OMP_FAIL_MEMORY_ORDER_UNSPECIFIED, OMP_FAIL_MEMORY_ORDER_RELAXED, |
| OMP_FAIL_MEMORY_ORDER_ACQUIRE, OMP_FAIL_MEMORY_ORDER_RELEASE, |
| OMP_FAIL_MEMORY_ORDER_ACQ_REL, OMP_FAIL_MEMORY_ORDER_SEQ_CST and |
| OMP_FAIL_MEMORY_ORDER_MASK enumerators. |
| (OMP_FAIL_MEMORY_ORDER_SHIFT): Define. |
| * gimple-pretty-print.c (dump_gimple_omp_atomic_load, |
| dump_gimple_omp_atomic_store): Print [weak] for weak atomic |
| load/store. |
| * gimple.h (enum gf_mask): Change GF_OMP_ATOMIC_MEMORY_ORDER |
| to 6-bit mask, adjust GF_OMP_ATOMIC_NEED_VALUE value and add |
| GF_OMP_ATOMIC_WEAK. |
| (gimple_omp_atomic_weak_p, gimple_omp_atomic_set_weak): New inline |
| functions. |
| * tree.h (OMP_ATOMIC_WEAK): Define. |
| * tree-pretty-print.c (dump_omp_atomic_memory_order): Adjust for |
| fail memory order being encoded in the same enum and also print |
| fail clause if present. |
| (dump_generic_node): Print weak clause if OMP_ATOMIC_WEAK. |
| * gimplify.c (goa_stabilize_expr): Add target_expr and rhs arguments, |
| handle pre_p == NULL case as a test mode that only returns value |
| but doesn't change gimplify nor change anything otherwise, adjust |
| recursive calls, add MODIFY_EXPR, ADDR_EXPR, COND_EXPR, TARGET_EXPR |
| and CALL_EXPR handling, adjust COMPOUND_EXPR handling for |
| __builtin_clear_padding calls, for !rhs gimplify as lvalue rather |
| than rvalue. |
| (gimplify_omp_atomic): Adjust goa_stabilize_expr caller. Handle |
| COND_EXPR rhs. Set weak flag on gimple load/store for |
| OMP_ATOMIC_WEAK. |
| * omp-expand.c (omp_memory_order_to_fail_memmodel): New function. |
| (omp_memory_order_to_memmodel): Adjust for fail clause encoded |
| in the same enum. |
| (expand_omp_atomic_cas): New function. |
| (expand_omp_atomic_pipeline): Use omp_memory_order_to_fail_memmodel |
| function. |
| (expand_omp_atomic): Attempt to optimize atomic compare and exchange |
| using expand_omp_atomic_cas. |
| |
| 2021-09-10 Aldy Hernandez <aldyh@redhat.com> |
| Michael Matz <matz@suse.de> |
| |
| * tree-pass.h (PROP_loop_opts_done): New. |
| * gimple-range-path.cc (path_range_query::internal_range_of_expr): |
| Intersect with global range. |
| * tree-ssa-loop.c (tree_ssa_loop_done): Set PROP_loop_opts_done. |
| * tree-ssa-threadbackward.c |
| (back_threader_profitability::profitable_path_p): Disable |
| threading through latches until after loop optimizations have run. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * doc/invoke.texi: Document BPF -mcpu, -mjmpext, -mjmp32 and -malu32 |
| options. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf-opts.h (bpf_isa_version): New enum. |
| * config/bpf/bpf-protos.h (bpf_expand_cbranch): New. |
| * config/bpf/bpf.c (bpf_option_override): Handle -mcpu option. |
| (bpf_expand_cbranch): New function. |
| * config/bpf/bpf.md (AM mode iterator): Conditionalize support for SI |
| mode. |
| (zero_extendsidi2): Only use mov32 instruction if it is available. |
| (SIM mode iterator): Conditionalize support for SI mode. |
| (JM mode iterator): New. |
| (cbranchdi4): Update name, use new JM iterator. Use bpf_expand_cbranch. |
| (*branch_on_di): Update name, use new JM iterator. |
| * config/bpf/bpf.opt: (mjmpext): New option. |
| (malu32): Likewise. |
| (mjmp32): Likewise. |
| (mcpu): Likewise. |
| (bpf_isa): New enum. |
| |
| 2021-09-10 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf.md (zero_extendhidi2): Add new output template |
| for register-to-register extensions. |
| (zero_extendqidi2): Likewise. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102273 |
| * internal-fn.c (expand_DEFERRED_INIT): Always expand non-SSA vars. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102269 |
| * gimplify.c (is_var_need_auto_init): Empty types do not need |
| initialization. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| * configure.ac (--with-stabs): Remove. |
| * configure: Regenerate. |
| * doc/install.texi: Remove --with-stabs documentation. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_cmp_ph_mask): |
| New intrinsic. |
| (_mm512_mask_cmp_ph_mask): Likewise. |
| (_mm512_cmp_round_ph_mask): Likewise. |
| (_mm512_mask_cmp_round_ph_mask): Likewise. |
| (_mm_cmp_sh_mask): Likewise. |
| (_mm_mask_cmp_sh_mask): Likewise. |
| (_mm_cmp_round_sh_mask): Likewise. |
| (_mm_mask_cmp_round_sh_mask): Likewise. |
| (_mm_comieq_sh): Likewise. |
| (_mm_comilt_sh): Likewise. |
| (_mm_comile_sh): Likewise. |
| (_mm_comigt_sh): Likewise. |
| (_mm_comige_sh): Likewise. |
| (_mm_comineq_sh): Likewise. |
| (_mm_ucomieq_sh): Likewise. |
| (_mm_ucomilt_sh): Likewise. |
| (_mm_ucomile_sh): Likewise. |
| (_mm_ucomigt_sh): Likewise. |
| (_mm_ucomige_sh): Likewise. |
| (_mm_ucomineq_sh): Likewise. |
| (_mm_comi_round_sh): Likewise. |
| (_mm_comi_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_cmp_ph_mask): New intrinsic. |
| (_mm_mask_cmp_ph_mask): Likewise. |
| (_mm256_cmp_ph_mask): Likewise. |
| (_mm256_mask_cmp_ph_mask): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Ditto. |
| * config/i386/i386.md (ssevecmode): Add HF mode. |
| (MODEFH): New mode iterator. |
| * config/i386/sse.md |
| (V48H_AVX512VL): New mode iterator to support HF vector modes. |
| Ajdust corresponding description. |
| (ssecmpintprefix): New. |
| (VI12_AVX512VL): Adjust to support HF vector modes. |
| (cmp_imm_predicate): Likewise. |
| (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): |
| Likewise. |
| (avx512f_vmcmp<mode>3<round_saeonly_name>): Likewise. |
| (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Likewise. |
| (<sse>_<unord>comi<round_saeonly_name>): Likewise. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h: (_mm512_max_ph): New intrinsic. |
| (_mm512_mask_max_ph): Likewise. |
| (_mm512_maskz_max_ph): Likewise. |
| (_mm512_min_ph): Likewise. |
| (_mm512_mask_min_ph): Likewise. |
| (_mm512_maskz_min_ph): Likewise. |
| (_mm512_max_round_ph): Likewise. |
| (_mm512_mask_max_round_ph): Likewise. |
| (_mm512_maskz_max_round_ph): Likewise. |
| (_mm512_min_round_ph): Likewise. |
| (_mm512_mask_min_round_ph): Likewise. |
| (_mm512_maskz_min_round_ph): Likewise. |
| (_mm_max_sh): Likewise. |
| (_mm_mask_max_sh): Likewise. |
| (_mm_maskz_max_sh): Likewise. |
| (_mm_min_sh): Likewise. |
| (_mm_mask_min_sh): Likewise. |
| (_mm_maskz_min_sh): Likewise. |
| (_mm_max_round_sh): Likewise. |
| (_mm_mask_max_round_sh): Likewise. |
| (_mm_maskz_max_round_sh): Likewise. |
| (_mm_min_round_sh): Likewise. |
| (_mm_mask_min_round_sh): Likewise. |
| (_mm_maskz_min_round_sh): Likewise. |
| * config/i386/avx512fp16vlintrin.h (_mm_max_ph): New intrinsic. |
| (_mm256_max_ph): Likewise. |
| (_mm_mask_max_ph): Likewise. |
| (_mm256_mask_max_ph): Likewise. |
| (_mm_maskz_max_ph): Likewise. |
| (_mm256_maskz_max_ph): Likewise. |
| (_mm_min_ph): Likewise. |
| (_mm256_min_ph): Likewise. |
| (_mm_mask_min_ph): Likewise. |
| (_mm256_mask_min_ph): Likewise. |
| (_mm_maskz_min_ph): Likewise. |
| (_mm256_maskz_min_ph): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| * config/i386/sse.md |
| (<code><mode>3<mask_name><round_saeonly_name>): Adjust to |
| support HF vector modes. |
| (*<code><mode>3<mask_name><round_saeonly_name>): Likewise. |
| (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): |
| Likewise. |
| (<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>): |
| Likewise. |
| * config/i386/subst.md (round_saeonly_mode512bit_condition): |
| Adjust for HF vector modes. |
| |
| 2021-09-10 Liu, Hongtao <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_add_sh): New intrinsic. |
| (_mm_mask_add_sh): Likewise. |
| (_mm_maskz_add_sh): Likewise. |
| (_mm_sub_sh): Likewise. |
| (_mm_mask_sub_sh): Likewise. |
| (_mm_maskz_sub_sh): Likewise. |
| (_mm_mul_sh): Likewise. |
| (_mm_mask_mul_sh): Likewise. |
| (_mm_maskz_mul_sh): Likewise. |
| (_mm_div_sh): Likewise. |
| (_mm_mask_div_sh): Likewise. |
| (_mm_maskz_div_sh): Likewise. |
| (_mm_add_round_sh): Likewise. |
| (_mm_mask_add_round_sh): Likewise. |
| (_mm_maskz_add_round_sh): Likewise. |
| (_mm_sub_round_sh): Likewise. |
| (_mm_mask_sub_round_sh): Likewise. |
| (_mm_maskz_sub_round_sh): Likewise. |
| (_mm_mul_round_sh): Likewise. |
| (_mm_mask_mul_round_sh): Likewise. |
| (_mm_maskz_mul_round_sh): Likewise. |
| (_mm_div_round_sh): Likewise. |
| (_mm_mask_div_round_sh): Likewise. |
| (_mm_maskz_div_round_sh): Likewise. |
| * config/i386/i386-builtin-types.def: Add corresponding builtin types. |
| * config/i386/i386-builtin.def: Add corresponding new builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_round_builtin): Handle new builtins. |
| * config/i386/sse.md (VF_128): Change description. |
| (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>): |
| Adjust to support HF vector modes. |
| (<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>): |
| Likewise. |
| |
| 2021-09-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.c |
| (ix86_avx256_split_vector_move_misalign): Handle V16HF mode. |
| * config/i386/i386.c |
| (ix86_preferred_simd_mode): Handle HF mode. |
| * config/i386/sse.md (V_256H): New mode iterator. |
| (avx_vextractf128<mode>): Use it. |
| (VEC_INIT_MODE): Align vector HFmode condition to vector |
| HImodes since there're no real HF instruction used. |
| (VEC_INIT_HALF_MODE): Ditto. |
| (VIHF): Ditto. |
| (VIHF_AVX512BW): Ditto. |
| (*vec_extracthf): Ditto. |
| (VEC_EXTRACT_MODE): Ditto. |
| |
| 2021-09-10 Richard Biener <rguenther@suse.de> |
| |
| PR target/102255 |
| * config/dbx.h: Remove. |
| * config/dbxcoff.h: Do not define PREFERRED_DEBUGGING_TYPE. |
| * config/lynx.h: Likewise. |
| |
| 2021-09-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_copysign): Expand |
| right into ANDNOT + AND + IOR, using paradoxical subregs. |
| (ix86_split_copysign_const): Remove. |
| (ix86_split_copysign_var): Ditto. |
| * config/i386/i386-protos.h (ix86_split_copysign_const): Dotto. |
| (ix86_split_copysign_var): Ditto. |
| * config/i386/i386.md (@copysign<mode>3_const): Ditto. |
| (@copysign<mode>3_var): Ditto. |
| |
| 2021-09-09 qing zhao <qing.zhao@oracle.com> |
| |
| * builtins.c (expand_builtin_memset): Make external visible. |
| * builtins.h (expand_builtin_memset): Declare extern. |
| * common.opt (ftrivial-auto-var-init=): New option. |
| * doc/extend.texi: Document the uninitialized attribute. |
| * doc/invoke.texi: Document -ftrivial-auto-var-init. |
| * flag-types.h (enum auto_init_type): New enumerated type |
| auto_init_type. |
| * gimple-fold.c (clear_padding_type): Add one new parameter. |
| (clear_padding_union): Likewise. |
| (clear_padding_emit_loop): Likewise. |
| (clear_type_padding_in_mask): Likewise. |
| (gimple_fold_builtin_clear_padding): Handle this new parameter. |
| * gimplify.c (gimple_add_init_for_auto_var): New function. |
| (gimple_add_padding_init_for_auto_var): New function. |
| (is_var_need_auto_init): New function. |
| (gimplify_decl_expr): Add initialization to automatic variables per |
| users' requests. |
| (gimplify_call_expr): Add one new parameter for call to |
| __builtin_clear_padding. |
| (gimplify_init_constructor): Add padding initialization in the end. |
| * internal-fn.c (INIT_PATTERN_VALUE): New macro. |
| (expand_DEFERRED_INIT): New function. |
| * internal-fn.def (DEFERRED_INIT): New internal function. |
| * tree-cfg.c (verify_gimple_call): Verify calls to .DEFERRED_INIT. |
| * tree-sra.c (generate_subtree_deferred_init): New function. |
| (scan_function): Avoid setting cannot_scalarize_away_bitmap for |
| calls to .DEFERRED_INIT. |
| (sra_modify_deferred_init): New function. |
| (sra_modify_function_body): Handle calls to DEFERRED_INIT specially. |
| * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. |
| * tree-ssa-uninit.c (warn_uninit): Handle calls to DEFERRED_INIT |
| specially. |
| (check_defs): Likewise. |
| (warn_uninitialized_vars): Likewise. |
| * tree-ssa.c (ssa_undefined_value_p): Likewise. |
| * tree.c (build_common_builtin_nodes): Build tree node for |
| BUILT_IN_CLEAR_PADDING when needed. |
| |
| 2021-09-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Walk |
| into all subloops. |
| |
| 2021-09-09 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Integrate |
| DOM walk from get_loop_body_in_dom_order using a worklist |
| approach. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| * config.gcc: Add avx512fp16vlintrin.h. |
| * config/i386/avx512fp16intrin.h: (_mm512_add_ph): New intrinsic. |
| (_mm512_mask_add_ph): Likewise. |
| (_mm512_maskz_add_ph): Likewise. |
| (_mm512_sub_ph): Likewise. |
| (_mm512_mask_sub_ph): Likewise. |
| (_mm512_maskz_sub_ph): Likewise. |
| (_mm512_mul_ph): Likewise. |
| (_mm512_mask_mul_ph): Likewise. |
| (_mm512_maskz_mul_ph): Likewise. |
| (_mm512_div_ph): Likewise. |
| (_mm512_mask_div_ph): Likewise. |
| (_mm512_maskz_div_ph): Likewise. |
| (_mm512_add_round_ph): Likewise. |
| (_mm512_mask_add_round_ph): Likewise. |
| (_mm512_maskz_add_round_ph): Likewise. |
| (_mm512_sub_round_ph): Likewise. |
| (_mm512_mask_sub_round_ph): Likewise. |
| (_mm512_maskz_sub_round_ph): Likewise. |
| (_mm512_mul_round_ph): Likewise. |
| (_mm512_mask_mul_round_ph): Likewise. |
| (_mm512_maskz_mul_round_ph): Likewise. |
| (_mm512_div_round_ph): Likewise. |
| (_mm512_mask_div_round_ph): Likewise. |
| (_mm512_maskz_div_round_ph): Likewise. |
| * config/i386/avx512fp16vlintrin.h: New header. |
| * config/i386/i386-builtin-types.def (V16HF, V8HF, V32HF): |
| Add new builtin types. |
| * config/i386/i386-builtin.def: Add corresponding builtins. |
| * config/i386/i386-expand.c |
| (ix86_expand_args_builtin): Handle new builtin types. |
| (ix86_expand_round_builtin): Likewise. |
| * config/i386/immintrin.h: Include avx512fp16vlintrin.h |
| * config/i386/sse.md (VFH): New mode_iterator. |
| (VF2H): Likewise. |
| (avx512fmaskmode): Add HF vector modes. |
| (avx512fmaskhalfmode): Likewise. |
| (<plusminus_insn><mode>3<mask_name><round_name>): Adjust to for |
| HF vector modes. |
| (*<plusminus_insn><mode>3<mask_name><round_name>): Likewise. |
| (mul<mode>3<mask_name><round_name>): Likewise. |
| (*mul<mode>3<mask_name><round_name>): Likewise. |
| (div<mode>3): Likewise. |
| (<sse>_div<mode>3<mask_name><round_name>): Likewise. |
| * config/i386/subst.md (SUBST_V): Add HF vector modes. |
| (SUBST_A): Likewise. |
| (round_mode512bit_condition): Adjust for V32HFmode. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101059 |
| * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. |
| (reduc_plus_scal_v4sf): .. this, New define_expand. |
| (reduc_plus_scal_v2df): .. and this, New define_expand. |
| |
| 2021-09-09 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/91103 |
| * config/i386/sse.md (*vec_extract<mode><ssescalarmodelower>_valign): |
| New define_insn. |
| |
| 2021-09-08 Jonathan Wakely <jwakely@redhat.com> |
| |
| PR c++/60318 |
| * doc/trouble.texi (Copy Assignment): Fix description of |
| behaviour and fix code in example. |
| |
| 2021-09-08 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/102107 |
| * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use |
| r11 instead of r12 for restoring CR. |
| |
| 2021-09-08 Jakub Jelinek <jakub@redhat.com> |
| liuhongt <hongtao.liu@intel.com> |
| |
| PR target/89984 |
| * config/i386/i386.md (@xorsign<mode>3_1): Remove. |
| * config/i386/i386-expand.c (ix86_expand_xorsign): Expand right away |
| into AND with mask and XOR, using paradoxical subregs. |
| (ix86_split_xorsign): Remove. |
| * config/i386/i386-protos.h (ix86_split_xorsign): Remove. |
| |
| 2021-09-08 Di Zhao <dizhao@os.amperecomputing.com> |
| |
| * tree-ssa-sccvn.c (vn_nary_op_insert_into): fix result compare |
| |
| 2021-09-08 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102224 |
| * config/i386/i386.md (xorsign<mode>3): If operands[1] is equal to |
| operands[2], emit abs<mode>2 instead. |
| (@xorsign<mode>3_1): Add early-clobbers for output operand, enable |
| first alternative even for avx, add another alternative with |
| =&Yv <- 0, Yv, Yvm constraints. |
| * config/i386/i386-expand.c (ix86_split_xorsign): If op0 is equal |
| to op1, emit vpandn instead. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/avx512fp16intrin.h (_mm_set_ph): New intrinsic. |
| (_mm256_set_ph): Likewise. |
| (_mm512_set_ph): Likewise. |
| (_mm_setr_ph): Likewise. |
| (_mm256_setr_ph): Likewise. |
| (_mm512_setr_ph): Likewise. |
| (_mm_set1_ph): Likewise. |
| (_mm256_set1_ph): Likewise. |
| (_mm512_set1_ph): Likewise. |
| (_mm_setzero_ph): Likewise. |
| (_mm256_setzero_ph): Likewise. |
| (_mm512_setzero_ph): Likewise. |
| (_mm_set_sh): Likewise. |
| (_mm_load_sh): Likewise. |
| (_mm_store_sh): Likewise. |
| * config/i386/i386-builtin-types.def (V8HF): New type. |
| (DEF_FUNCTION_TYPE (V8HF, V8HI)): New builtin function type |
| * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): |
| Support vector HFmodes. |
| (ix86_expand_vector_init_one_nonzero): Likewise. |
| (ix86_expand_vector_init_one_var): Likewise. |
| (ix86_expand_vector_init_interleave): Likewise. |
| (ix86_expand_vector_init_general): Likewise. |
| (ix86_expand_vector_set): Likewise. |
| (ix86_expand_vector_extract): Likewise. |
| (ix86_expand_vector_init_concat): Likewise. |
| (ix86_expand_sse_movcc): Handle vector HFmodes. |
| (ix86_expand_vector_set_var): Ditto. |
| * config/i386/i386-modes.def: Add HF vector modes in comment. |
| * config/i386/i386.c (classify_argument): Add HF vector modes. |
| (ix86_hard_regno_mode_ok): Allow HF vector modes for AVX512FP16. |
| (ix86_vector_mode_supported_p): Likewise. |
| (ix86_set_reg_reg_cost): Handle vector HFmode. |
| (ix86_get_ssemov): Handle vector HFmode. |
| (function_arg_advance_64): Pass unamed V16HFmode and V32HFmode |
| by stack. |
| (function_arg_advance_32): Pass V8HF/V16HF/V32HF by sse reg for 32bit |
| mode. |
| (function_arg_advance_32): Ditto. |
| * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): New. |
| (VALID_AVX256_REG_OR_OI_MODE): Rename to .. |
| (VALID_AVX256_REG_OR_OI_VHF_MODE): .. this, and add V16HF. |
| (VALID_SSE2_REG_VHF_MODE): New. |
| (VALID_AVX512VL_128_REG_MODE): Add V8HF and TImode. |
| (SSE_REG_MODE_P): Add vector HFmode. |
| * config/i386/i386.md (mode): Add HF vector modes. |
| (MODE_SIZE): Likewise. |
| (ssemodesuffix): Add ph suffix for HF vector modes. |
| * config/i386/sse.md (VFH_128): New mode iterator. |
| (VMOVE): Adjust for HF vector modes. |
| (V): Likewise. |
| (V_256_512): Likewise. |
| (avx512): Likewise. |
| (avx512fmaskmode): Likewise. |
| (shuffletype): Likewise. |
| (sseinsnmode): Likewise. |
| (ssedoublevecmode): Likewise. |
| (ssehalfvecmode): Likewise. |
| (ssehalfvecmodelower): Likewise. |
| (ssePScmode): Likewise. |
| (ssescalarmode): Likewise. |
| (ssescalarmodelower): Likewise. |
| (sseintprefix): Likewise. |
| (i128): Likewise. |
| (bcstscalarsuff): Likewise. |
| (xtg_mode): Likewise. |
| (VI12HF_AVX512VL): New mode_iterator. |
| (VF_AVX512FP16): Likewise. |
| (VIHF): Likewise. |
| (VIHF_256): Likewise. |
| (VIHF_AVX512BW): Likewise. |
| (V16_256): Likewise. |
| (V32_512): Likewise. |
| (sseintmodesuffix): New mode_attr. |
| (sse): Add scalar and vector HFmodes. |
| (ssescalarmode): Add vector HFmode mapping. |
| (ssescalarmodesuffix): Add sh suffix for HFmode. |
| (*<sse>_vm<insn><mode>3): Use VFH_128. |
| (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. |
| (*ieee_<ieee_maxmin><mode>3): Likewise. |
| (<avx512>_blendm<mode>): New define_insn. |
| (vec_setv8hf): New define_expand. |
| (vec_set<mode>_0): New define_insn for HF vector set. |
| (*avx512fp16_movsh): Likewise. |
| (avx512fp16_movsh): Likewise. |
| (vec_extract_lo_v32hi): Rename to ... |
| (vec_extract_lo_<mode>): ... this, and adjust to allow HF |
| vector modes. |
| (vec_extract_hi_v32hi): Likewise. |
| (vec_extract_hi_<mode>): Likewise. |
| (vec_extract_lo_v16hi): Likewise. |
| (vec_extract_lo_<mode>): Likewise. |
| (vec_extract_hi_v16hi): Likewise. |
| (vec_extract_hi_<mode>): Likewise. |
| (vec_set_hi_v16hi): Likewise. |
| (vec_set_hi_<mode>): Likewise. |
| (vec_set_lo_v16hi): Likewise. |
| (vec_set_lo_<mode>): Likewise. |
| (*vec_extract<mode>_0): New define_insn_and_split for HF |
| vector extract. |
| (*vec_extracthf): New define_insn. |
| (VEC_EXTRACT_MODE): Add HF vector modes. |
| (PINSR_MODE): Add V8HF. |
| (sse2p4_1): Likewise. |
| (pinsr_evex_isa): Likewise. |
| (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support |
| insert for V8HFmode. |
| (pbroadcast_evex_isa): Add HF vector modes. |
| (AVX2_VEC_DUP_MODE): Likewise. |
| (VEC_INIT_MODE): Likewise. |
| (VEC_INIT_HALF_MODE): Likewise. |
| (avx2_pbroadcast<mode>): Adjust to support HF vector mode |
| broadcast. |
| (avx2_pbroadcast<mode>_1): Likewise. |
| (<avx512>_vec_dup<mode>_1): Likewise. |
| (<avx512>_vec_dup<mode><mask_name>): Likewise. |
| (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): |
| Likewise. |
| |
| 2021-09-08 Guo, Xuepeng <xuepeng.guo@intel.com> |
| H.J. Lu <hongjiu.lu@intel.com> |
| Liu Hongtao <hongtao.liu@intel.com> |
| Wang Hongyu <hongyu.wang@intel.com> |
| Xu Dianhong <dianhong.xu@intel.com> |
| |
| * common/config/i386/cpuinfo.h (get_available_features): |
| Detect FEATURE_AVX512FP16. |
| * common/config/i386/i386-common.c |
| (OPTION_MASK_ISA_AVX512FP16_SET, |
| OPTION_MASK_ISA_AVX512FP16_UNSET, |
| OPTION_MASK_ISA2_AVX512FP16_SET, |
| OPTION_MASK_ISA2_AVX512FP16_UNSET): New. |
| (OPTION_MASK_ISA2_AVX512BW_UNSET, |
| OPTION_MASK_ISA2_AVX512BF16_UNSET): Add AVX512FP16. |
| (ix86_handle_option): Handle -mavx512fp16. |
| * common/config/i386/i386-cpuinfo.h (enum processor_features): |
| Add FEATURE_AVX512FP16. |
| * common/config/i386/i386-isas.h: Add entry for AVX512FP16. |
| * config.gcc: Add avx512fp16intrin.h. |
| * config/i386/avx512fp16intrin.h: New intrinsic header. |
| * config/i386/cpuid.h: Add bit_AVX512FP16. |
| * config/i386/i386-builtin-types.def: (FLOAT16): New primitive type. |
| * config/i386/i386-builtins.c: Support _Float16 type for i386 |
| backend. |
| (ix86_register_float16_builtin_type): New function. |
| (ix86_float16_type_node): New. |
| * config/i386/i386-c.c (ix86_target_macros_internal): Define |
| __AVX512FP16__. |
| * config/i386/i386-expand.c (ix86_expand_branch): Support |
| HFmode. |
| (ix86_prepare_fp_compare_args): Adjust TARGET_SSE_MATH && |
| SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. |
| (ix86_expand_fp_movcc): Ditto. |
| * config/i386/i386-isa.def: Add PTA define for AVX512FP16. |
| * config/i386/i386-options.c (isa2_opts): Add -mavx512fp16. |
| (ix86_valid_target_attribute_inner_p): Add avx512fp16 attribute. |
| * config/i386/i386.c (ix86_get_ssemov): Use |
| vmovdqu16/vmovw/vmovsh for HFmode/HImode scalar or vector. |
| (ix86_get_excess_precision): Use |
| FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when TARGET_AVX512FP16 |
| existed. |
| (sse_store_index): Use SFmode cost for HFmode cost. |
| (inline_memory_move_cost): Add HFmode, and perfer SSE cost over |
| GPR cost for HFmode. |
| (ix86_hard_regno_mode_ok): Allow HImode in sse register. |
| (ix86_mangle_type): Add manlging for _Float16 type. |
| (inline_secondary_memory_needed): No memory is needed for |
| 16bit movement between gpr and sse reg under |
| TARGET_AVX512FP16. |
| (ix86_multiplication_cost): Adjust TARGET_SSE_MATH && |
| SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. |
| (ix86_division_cost): Ditto. |
| (ix86_rtx_costs): Ditto. |
| (ix86_add_stmt_cost): Ditto. |
| (ix86_optab_supported_p): Ditto. |
| * config/i386/i386.h (VALID_AVX512F_SCALAR_MODE): Add HFmode. |
| (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Add HFmode. |
| (PTA_SAPPHIRERAPIDS): Add PTA_AVX512FP16. |
| * config/i386/i386.md (mode): Add HFmode. |
| (MODE_SIZE): Add HFmode. |
| (isa): Add avx512fp16. |
| (enabled): Handle avx512fp16. |
| (ssemodesuffix): Add sh suffix for HFmode. |
| (comm): Add mult, div. |
| (plusminusmultdiv): New code iterator. |
| (insn): Add mult, div. |
| (*movhf_internal): Adjust for avx512fp16 instruction. |
| (*movhi_internal): Ditto. |
| (*cmpi<unord>hf): New define_insn for HFmode. |
| (*ieee_s<ieee_maxmin>hf3): Likewise. |
| (extendhf<mode>2): Likewise. |
| (trunc<mode>hf2): Likewise. |
| (float<floatunssuffix><mode>hf2): Likewise. |
| (*<insn>hf): Likewise. |
| (cbranchhf4): New expander. |
| (movhfcc): Likewise. |
| (<insn>hf3): Likewise. |
| (mulhf3): Likewise. |
| (divhf3): Likewise. |
| * config/i386/i386.opt: Add mavx512fp16. |
| * config/i386/immintrin.h: Include avx512fp16intrin.h. |
| * doc/invoke.texi: Add mavx512fp16. |
| * doc/extend.texi: Add avx512fp16 Usage Notes. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * common.opt: Support -fexcess-precision=16. |
| * config/aarch64/aarch64.c (aarch64_excess_precision): Return |
| FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when |
| EXCESS_PRECISION_TYPE_FLOAT16. |
| * config/arm/arm.c (arm_excess_precision): Ditto. |
| * config/i386/i386.c (ix86_get_excess_precision): Ditto. |
| * config/m68k/m68k.c (m68k_excess_precision): Issue an error |
| when EXCESS_PRECISION_TYPE_FLOAT16. |
| * config/s390/s390.c (s390_excess_precision): Ditto. |
| * coretypes.h (enum excess_precision_type): Add |
| EXCESS_PRECISION_TYPE_FLOAT16. |
| * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Update documents. |
| * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): Ditto. |
| * doc/extend.texi (Half-Precision): Document |
| -fexcess-precision=16. |
| * flag-types.h (enum excess_precision): Add |
| EXCESS_PRECISION_FLOAT16. |
| * target.def (excess_precision): Update document. |
| * tree.c (excess_precision_type): Set excess_precision_type to |
| EXCESS_PRECISION_FLOAT16 when -fexcess-precision=16. |
| |
| 2021-09-08 liuhongt <hongtao.liu@intel.com> |
| |
| * doc/extend.texi: (@node Floating Types): Adjust the wording. |
| (@node Half-Precision): Ditto. |
| |
| 2021-09-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> |
| |
| PR target/102115 |
| * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Add |
| 'CONST_INT_P (src)' to the condition of the block that tries to |
| eliminate literal when loading integer contant. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * doc/extend.texi (BPF Type Attributes) New node. |
| Document new preserve_access_index attribute. |
| Document new preserve_access_index builtin. |
| * doc/invoke.texi: Document -mco-re and -mno-co-re options. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * config/bpf/bpf.c: Adjust includes. |
| (bpf_handle_preserve_access_index_attribute): New function. |
| (bpf_attribute_table): Use it here. |
| (bpf_builtins): Add BPF_BUILTIN_PRESERVE_ACCESS_INDEX. |
| (bpf_option_override): Handle "-mco-re" option. |
| (bpf_asm_init_sections): New. |
| (TARGET_ASM_INIT_SECTIONS): Redefine. |
| (bpf_file_end): New. |
| (TARGET_ASM_FILE_END): Redefine. |
| (bpf_init_builtins): Add "__builtin_preserve_access_index". |
| (bpf_core_compute, bpf_core_get_index): New. |
| (is_attr_preserve_access): New. |
| (bpf_expand_builtin): Handle new builtins. |
| (bpf_core_newdecl, bpf_core_is_maybe_aggregate_access): New. |
| (bpf_core_walk): New. |
| (bpf_resolve_overloaded_builtin): New. |
| (TARGET_RESOLVE_OVERLOADED_BUILTIN): Redefine. |
| (handle_attr): New. |
| (pass_bpf_core_attr): New RTL pass. |
| * config/bpf/bpf-passes.def: New file. |
| * config/bpf/bpf-protos.h (make_pass_bpf_core_attr): New. |
| * config/bpf/coreout.c: New file. |
| * config/bpf/coreout.h: Likewise. |
| * config/bpf/t-bpf (TM_H): Add $(srcdir)/config/bpf/coreout.h. |
| (coreout.o): New rule. |
| (PASSES_EXTRA): Add $(srcdir)/config/bpf/bpf-passes.def. |
| * config.gcc (bpf): Add coreout.h to extra_headers. |
| Add coreout.o to extra_objs. |
| Add $(srcdir)/config/bpf/coreout.c to target_gtfiles. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * btfout.c (get_btf_id): Function is no longer static. |
| * ctfc.h: Expose it here. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * ctfc.c (ctf_lookup_tree_type): New function. |
| * ctfc.h: Likewise. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * ctfc.c (ctf_dtd_lookup): Function is no longer static. |
| * ctfc.h: Analogous change. |
| |
| 2021-09-07 David Faust <david.faust@oracle.com> |
| |
| * dwarf2out.c (lookup_type_die): Function is no longer static. |
| * dwarf2out.h: Expose it here. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * dwarf2ctf.c (ctf_debug_finalize): Make it static. |
| (ctf_debug_early_finish): New definition. |
| (ctf_debug_finish): Likewise. |
| * dwarf2ctf.h (ctf_debug_finalize): Remove declaration. |
| (ctf_debug_early_finish): New declaration. |
| (ctf_debug_finish): Likewise. |
| * dwarf2out.c (dwarf2out_finish): Invoke ctf_debug_finish. |
| (dwarf2out_early_finish): Invoke ctf_debug_early_finish. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO |
| support when compiling for CO-RE. |
| * config/bpf/bpf.opt: Add new command line option -mco-re. |
| |
| 2021-09-07 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * flag-types.h (enum debug_info_type): Add new enum |
| DINFO_TYPE_BTF_WITH_CORE. |
| (BTF_WITH_CORE_DEBUG): New bitmask. |
| * flags.h (btf_with_core_debuginfo_p): New declaration. |
| * opts.c (btf_with_core_debuginfo_p): New definition. |
| |
| 2021-09-07 Jason Merrill <jason@redhat.com> |
| |
| * tree.h (error_operand_p): Change to inline function. |
| |
| 2021-09-07 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (forwarder_block_p): Rename to... |
| (empty_block_with_phis_p): ...this. |
| (potentially_threadable_block): Same. |
| (jump_threader::thread_through_normal_block): Same. |
| |
| 2021-09-07 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR debug/101947 |
| * dwarf2out.c (mark_base_types): New overloaded function. |
| (dwarf2out_early_finish): Invoke it on the COMDAT type list as well |
| as the compilation unit, and call move_marked_base_types afterward. |
| |
| 2021-09-07 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/85819 |
| * config/i386/i386-expand.c (ix86_expand_convert_uns_sisf_sse): |
| Enable FMA. |
| (ix86_expand_vector_convert_uns_vsivsf): Likewise. |
| |
| 2021-09-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102226 |
| * tree-vect-loop.c (vect_transform_cycle_phi): Record |
| the converted value for the epilogue PHI use. |
| |
| 2021-09-07 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/80223 |
| * ipa-inline.c (can_inline_edge_p): Similarly to sanitizer |
| options, do not inline when no_profile_instrument_function |
| attributes are different in early inliner. It's fine to inline |
| it after PGO instrumentation. |
| |
| 2021-09-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101555 |
| * tree-ssa-pre.c (translate_vuse_through_block): Do not |
| perform an alias walk to determine the validity of the |
| mem at the start of the block which is already guaranteed |
| by means of prune_clobbered_mems. |
| (phi_translate_1): Pass edge to translate_vuse_through_block. |
| |
| 2021-09-07 Xionghu Luo <luoxhu@linux.ibm.com> |
| |
| PR target/97142 |
| * config/rs6000/rs6000.md (fmod<mode>3): New define_expand. |
| (remainder<mode>3): Likewise. |
| |
| 2021-09-07 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.c (mips_file_start): add .module for |
| arch and ase. |
| |
| 2021-09-06 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * wide-int.cc (wi::clz): Reorder tests to ensure the result |
| is zero for all negative values. |
| |
| 2021-09-06 Tobias Burnus <tobias@codesourcery.com> |
| |
| * doc/invoke.texi (-foffload-options): Fix @opindex. |
| |
| 2021-09-06 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/89984 |
| * config/i386/i386-expand.c (ix86_split_xorsign): Use operands[2]. |
| * config/i386/i386.md (@xorsign<mode>3_1): Add non-destructive |
| source alternative for AVX. |
| |
| 2021-09-06 liuhongt <hongtao.liu@intel.com> |
| |
| PR middle-end/102182 |
| * optabs.c (expand_fix): Add from1 to avoid from being |
| overwritten. |
| |
| 2021-09-06 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * dwarf2out.c (modified_type_die): Deal with all array types earlier |
| and use local variable consistently throughout the function. |
| |
| 2021-09-06 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102207 |
| * match.pd: Don't demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they |
| were promoted from signed to wider unsigned type. |
| |
| 2021-09-06 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/63184 |
| * match.pd: Add simplification of pointer_diff of two pointer_plus |
| with addr_expr in the first operand of each pointer_plus. |
| Add simplificatoin of ne/eq of two pointer_plus with addr_expr |
| in the first operand of each pointer_plus. |
| |
| 2021-09-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102176 |
| * tree-vect-slp.c (vect_slp_gather_vectorized_scalar_stmts): |
| New function. |
| (vect_bb_slp_scalar_cost): Use the computed set of |
| vectorized scalar stmts instead of relying on the out-of-date |
| and not accurate PURE_SLP_STMT. |
| (vect_bb_vectorization_profitable_p): Compute the set |
| of vectorized scalar stmts. |
| |
| 2021-09-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_of_stmt): Remove |
| GIMPLE_COND special casing. |
| (path_range_query::range_defined_in_block): Use range_of_stmt |
| instead of calling fold_range directly. |
| |
| 2021-09-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_of_expr): Set |
| m_undefined_path when appropriate. |
| (path_range_query::internal_range_of_expr): Copy from range_of_expr. |
| (path_range_query::unreachable_path_p): New. |
| (path_range_query::precompute_ranges): Set m_undefined_path. |
| * gimple-range-path.h (path_range_query::unreachable_path_p): New. |
| (path_range_query::internal_range_of_expr): New. |
| * tree-ssa-threadbackward.c (back_threader::find_taken_edge_cond): |
| Use unreachable_path_p. |
| |
| 2021-09-05 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::maybe_register_path): |
| Remove argument and call find_taken_edge. |
| (back_threader::resolve_phi): Do not calculate taken edge before |
| calling maybe_register_path. |
| (back_threader::find_paths_to_names): Same. |
| |
| 2021-09-05 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.md (QHSI2 mode iterator): New mode iterator. |
| * config/h8300/testcompare.md (store_c): Update name, use new |
| QHSI2 iterator. |
| (store_neg_c, store_shifted_c): New patterns. |
| |
| 2021-09-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| PR target/102107 |
| * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11 |
| instead of r12 for CR save, in all cases. |
| |
| 2021-09-03 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc (register_vector_type): |
| Handle error_mark_node as the type of the type_decl. |
| |
| 2021-09-03 Andrew Pinski <apinski@marvell.com> |
| |
| * config/aarch64/aarch64-builtins.c (struct aarch64_simd_type_info): |
| Mark with GTY. |
| (aarch64_simd_types): Likewise. |
| (aarch64_simd_intOI_type_node): Likewise. |
| (aarch64_simd_intCI_type_node): Likewise. |
| (aarch64_simd_intXI_type_node): Likewise. |
| * config/aarch64/aarch64.h (aarch64_fp16_type_node): Likewise. |
| (aarch64_fp16_ptr_type_node): Likewise. |
| (aarch64_bf16_type_node): Likewise. |
| (aarch64_bf16_ptr_type_node): Likewise. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * range-op.cc (operator_minus::op1_op2_relation_effect): Abstract |
| out to... |
| (minus_op1_op2_relation_effect): ...here. |
| (class operator_pointer_diff): New. |
| (operator_pointer_diff::op1_op2_relation_effect): Call |
| minus_op1_op2_relation_effect. |
| (integral_table::integral_table): Add entry for POINTER_DIFF_EXPR. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::thread_through_all_blocks): |
| Add may_peel_loop_headers. |
| (back_threader_registry::thread_through_all_blocks): Same. |
| (try_thread_blocks): Pass may_peel_loop_headers argument. |
| (pass_early_thread_jumps::execute): Same. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (has_phis_p): New. |
| (forwarder_block_p): New. |
| (potentially_threadable_block): Call forwarder_block_p. |
| (jump_threader::thread_around_empty_blocks): Call has_phis_p. |
| (jump_threader::thread_through_normal_block): Call |
| forwarder_block_p. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadbackward.c (back_threader::dump): New. |
| (back_threader::debug): New. |
| (back_threader_profitability::profitable_path_p): Dump blocks |
| even if we are bailing early. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (cancel_thread): New. |
| (jump_thread_path_registry::thread_block_1): Use cancel_thread. |
| (jump_thread_path_registry::mark_threaded_blocks): Same. |
| (jump_thread_path_registry::register_jump_thread): Same. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (jt_state::push): Only call methods for |
| which objects are available. |
| (jt_state::pop): Same. |
| (jt_state::register_equiv): Same. |
| (jt_state::register_equivs_on_edge): Same. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadedge.c (jump_threader::thread_across_edge): |
| Move pop until after a thread is registered. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-threadupdate.c (debug): New. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-trace.cc (push_dump_file::push_dump_file): New. |
| (push_dump_file::~push_dump_file): New. |
| (dump_ranger): Change dump_file temporarily while dumping |
| ranger. |
| * gimple-range-trace.h (class push_dump_file): New. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-trace.cc (debug_seed_ranger): Remove static. |
| (dump_ranger): Dump function name. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::range_defined_in_block): |
| Adjust for non-null. |
| (path_range_query::adjust_for_non_null_uses): New. |
| (path_range_query::precompute_ranges): Call |
| adjust_for_non_null_uses. |
| * gimple-range-path.h: Add m_non_null and |
| adjust_for_non_null_uses. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.cc (path_range_query::dump): Dump path |
| length. |
| (path_range_query::precompute_ranges): Dump entire path. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * value-relation.cc (relation_oracle::debug): New. |
| * value-relation.h (relation_oracle::debug): New. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-loop-ch.c: Remove unnecessary include file. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::postfold_gcond_edges): |
| Skip statements with no defining BB. |
| * gimple-range-path.cc (path_range_query::range_defined_in_block): |
| Do not get confused by statements with no defining BB. |
| |
| 2021-09-03 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-fold.cc (adjust_imagpart_expr): Move from |
| gimple_range_adjustment. Add support for constants. |
| (adjust_realpart_expr): New. |
| (gimple_range_adjustment): Move IMAGPART_EXPR code to |
| adjust_imagpart_expr. |
| * range-op.cc (integral_table::integral_table): Add entry for |
| REALPART_CST. |
| |
| 2021-09-03 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-expand.c (expand_omp_atomic_pipeline): Use |
| IFN_ATOMIC_COMPARE_EXCHANGE instead of |
| BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_? so that memory order |
| can be provided. |
| |
| 2021-09-03 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/102024 |
| * tree.h (DECL_FIELD_ABI_IGNORED): Changed into rvalue only macro |
| that is false if DECL_BIT_FIELD. |
| (SET_DECL_FIELD_ABI_IGNORED, DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD, |
| SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD): Define. |
| * tree-streamer-out.c (pack_ts_decl_common_value_fields): For |
| DECL_BIT_FIELD stream DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead |
| of DECL_FIELD_ABI_IGNORED. |
| * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use |
| SET_DECL_FIELD_ABI_IGNORED instead of writing to |
| DECL_FIELD_ABI_IGNORED and for DECL_BIT_FIELD use |
| SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead. |
| * lto-streamer-out.c (hash_tree): For DECL_BIT_FIELD hash |
| DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead of DECL_FIELD_ABI_IGNORED. |
| |
| 2021-09-03 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102166 |
| * config/i386/amxbf16intrin.h : Remove macro check for __AMX_BF16__. |
| * config/i386/amxint8intrin.h : Remove macro check for __AMX_INT8__. |
| * config/i386/amxtileintrin.h : Remove macro check for __AMX_TILE__. |
| |
| 2021-09-02 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/17506 |
| PR testsuite/37182 |
| * tree-ssa-uninit.c (warn_uninit): Remove conditional guarding note. |
| |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Refine |
| fix for PR78185 and continue processing when leaving |
| finite inner loops. |
| |
| 2021-09-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/99591 |
| * match.pd: Demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they |
| were promoted. |
| |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| Revert: |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102155 |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate |
| over a part of the RPO array and do not recurse here. |
| Dump blocks marked as always executed. |
| (fill_always_executed_in): Walk over the RPO array and |
| process loops whose header we run into. |
| (loop_invariant_motion_in_fun): Compute the first RPO |
| using rev_post_order_and_mark_dfs_back_seme in iteration |
| order and pass that to fill_always_executed_in. |
| |
| 2021-09-02 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-modes.def (FLOAT_MODE): Define ieee HFmode. |
| * config/i386/i386.c (enum x86_64_reg_class): Add |
| X86_64_SSEHF_CLASS. |
| (merge_classes): Handle X86_64_SSEHF_CLASS. |
| (examine_argument): Ditto. |
| (construct_container): Ditto. |
| (classify_argument): Ditto, and set HFmode/HCmode to |
| X86_64_SSEHF_CLASS. |
| (function_value_32): Return _FLoat16/Complex Float16 by |
| %xmm0. |
| (function_value_64): Return _Float16/Complex Float16 by SSE |
| register. |
| (ix86_print_operand): Handle CONST_DOUBLE HFmode. |
| (ix86_secondary_reload): Require gpr as intermediate register |
| to store _Float16 from sse register when sse4 is not |
| available. |
| (ix86_libgcc_floating_mode_supported_p): Enable _FLoat16 under |
| sse2. |
| (ix86_scalar_mode_supported_p): Ditto. |
| (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Defined. |
| * config/i386/i386.h (VALID_SSE2_REG_MODE): Add HFmode. |
| (VALID_INT_MODE_P): Add HFmode and HCmode. |
| * config/i386/i386.md (*pushhf_rex64): New define_insn. |
| (*pushhf): Ditto. |
| (*movhf_internal): Ditto. |
| * doc/extend.texi (Half-Precision Floating Point): Documemt |
| _Float16 for x86. |
| |
| 2021-09-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102155 |
| * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate |
| over a part of the RPO array and do not recurse here. |
| Dump blocks marked as always executed. |
| (fill_always_executed_in): Walk over the RPO array and |
| process loops whose header we run into. |
| (loop_invariant_motion_in_fun): Compute the first RPO |
| using rev_post_order_and_mark_dfs_back_seme in iteration |
| order and pass that to fill_always_executed_in. |
| |
| 2021-09-02 YunQiang Su <syq@debian.org> |
| |
| Revert: |
| 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.c (mips_module_isa_name): New. |
| mips_file_start: add .module mipsREV to all asm output |
| |
| 2021-09-01 Jeff Law <jlaw@localhost.localdomain> |
| |
| PR tree-optimization/102152 |
| * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Reduce a vector |
| comparison to a scalar comparison before calling |
| update_stmt_if_modified. |
| |
| 2021-09-01 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/101934 |
| * config/aarch64/aarch64.c (aarch64_expand_setmem): |
| Check STRICT_ALIGNMENT before creating an overlapping |
| store. |
| |
| 2021-09-01 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-warn-access.cc (get_size_range): Add argument. |
| (check_access): Pass additional argument. |
| (check_memop_access): Remove template and make a member function. |
| (maybe_check_dealloc_call): Make a pass_waccess member function. |
| (class pass_waccess): Add, rename, and remove members. |
| (pass_waccess::pass_waccess): Adjust to name change. |
| (pass_waccess::~pass_waccess): Same. |
| (check_alloca): Make a member function. |
| (check_alloc_size_call): Same. |
| (check_strcat): Same. |
| (check_strncat): Same. |
| (check_stxcpy): Same. |
| (check_stxncpy): Same. |
| (check_strncmp): Same. |
| (maybe_warn_rdwr_sizes): Rename... |
| (pass_waccess::maybe_check_access_sizes): ...to this. |
| (pass_waccess::check_call): Adjust to name changes. |
| (pass_waccess::maybe_check_dealloc_call): Make a pass_waccess member |
| function. |
| (pass_waccess::execute): Adjust to name changes. |
| * gimple-ssa-warn-access.h (check_memop_access): Remove. |
| * pointer-query.cc (access_ref::phi): Handle null pointer. |
| (access_ref::inform_access): Same. |
| (pointer_query::put_ref): Modify a cached value, not a copy of it. |
| (pointer_query::dump): New function. |
| (compute_objsize_r): Avoid overwriting access_ref::bndrng. Cache |
| more results. |
| * pointer-query.h (pointer_query::dump): Declare. |
| * tree-ssa-strlen.c (get_range): Simplify. Use function query. |
| (dump_strlen_info): Use function query. |
| (printf_strlen_execute): Factor code out into pointer_query::put_ref. |
| |
| 2021-09-01 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree.c (walk_tree_1) <OMP_CLAUSE>: Simplify. |
| |
| 2021-09-01 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * doc/extend.texi: Document unavailable attribute. |
| * print-tree.c (print_node): Handle unavailable attribute. |
| * tree-core.h (struct tree_base): Add a bit to carry unavailability. |
| * tree.c (error_unavailable_use): New. |
| * tree.h (TREE_UNAVAILABLE): New. |
| (error_unavailable_use): New. |
| |
| 2021-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102124 |
| * tree-vect-patterns.c (vect_recog_widen_op_pattern): For ORIG_CODE |
| MINUS_EXPR, if itype is unsigned with smaller precision than type, |
| add an extra cast to signed variant of itype to ensure sign-extension. |
| |
| 2021-09-01 Martin Liska <mliska@suse.cz> |
| |
| * graph.c (draw_cfg_node_succ_edges): Do not color fallthru |
| edges and rather use colors for TRUE and FALSE edges. |
| |
| 2021-09-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/93491 |
| * tree-ssa-pre.c (compute_avail): Set BB_MAY_NOTRETURN |
| after processing the stmt itself. Do not consider |
| pure functions possibly not returning. Properly avoid |
| adding possibly trapping calls to EXP_GEN when there's |
| a preceeding possibly not returning call. |
| * tree-ssa-sccvn.c (vn_reference_may_trap): Conservatively |
| not handle calls. |
| |
| 2021-09-01 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102139 |
| * tree-vectorizer.h (vec_base_alignments): Adjust hash-map |
| type to record a std::pair of the stmt-info and the innermost |
| loop behavior. |
| (dr_vec_info::group): New member. |
| * tree-vect-data-refs.c (vect_record_base_alignment): Adjust. |
| (vect_compute_data_ref_alignment): Verify the recorded |
| base alignment can be used. |
| (data_ref_pair): Remove. |
| (dr_group_sort_cmp): Adjust. |
| (vect_analyze_data_ref_accesses): Store the group-ID in the |
| dr_vec_info and operate on a vector of dr_vec_infos. |
| |
| 2021-09-01 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * read-md.c (md_reader::handle_enum): support value assignation. |
| * doc/md.texi: record define_c_enum value assignation support. |
| |
| 2021-09-01 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102141 |
| * gimple-ssa-store-merging.c (bswap_view_convert): Add BEFORE |
| argument. If false, emit stmts after gsi instead of before, and |
| with GSI_NEW_STMT. |
| (bswap_replace): Adjust callers. When converting output of bswap, |
| emit VIEW_CONVERT prepratation stmts after a copy of gsi instead |
| of before it. |
| |
| 2021-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| * emit-rtl.c (validate_subreg): Get rid of all float-int |
| special cases. |
| |
| 2021-09-01 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-08-30 liuhongt <hongtao.liu@intel.com> |
| |
| * expmed.c (extract_bit_field_1): Make sure we're playing with |
| integral modes before call extract_integral_bit_field. |
| (extract_integral_bit_field): Add a parameter of type |
| scalar_int_mode which corresponds to of tmode. |
| And call extract_and_convert_fixed_bit_field instead of |
| extract_fixed_bit_field and convert_extracted_bit_field. |
| (extract_and_convert_fixed_bit_field): New function, it's a |
| combination of extract_fixed_bit_field and |
| convert_extracted_bit_field. |
| |
| 2021-08-31 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * tree.c (walk_tree_1) <OMP_CLAUSE_TILE>: Handle three operands. |
| |
| 2021-08-31 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-general.h (omp_is_reference): Rename to... |
| (omp_privatize_by_reference): ... this. Adjust all users... |
| * omp-general.c: ... here, ... |
| * gimplify.c: ... here, ... |
| * omp-expand.c: ... here, ... |
| * omp-low.c: ... here. |
| |
| 2021-08-31 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-ssa-warn-access.cc (maybe_warn_alloc_args_overflow): Test |
| pointer element for equality to zero, not that of the cotaining |
| array. |
| |
| 2021-08-31 Martin Sebor <msebor@redhat.com> |
| |
| * gcc-rich-location.h (gcc_rich_location): Make ctor explicit. |
| |
| 2021-08-31 Martin Sebor <msebor@redhat.com> |
| |
| * function.h (function): Add comments. |
| (get_range_query): Same. Add attribute returns nonnull. |
| |
| 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.c (convert_modes): Don't use subreg_promoted_mode on a |
| SUBREG if it can't be guaranteed to a SUBREG_PROMOTED_VAR_P set. |
| Instead use the standard (safer) is_a <scalar_int_mode> idiom. |
| |
| 2021-08-31 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config.gcc (cris-*-elf, cris-*-none): Remove dbxelf.h from |
| tm_file. |
| (m32r-*-elf, m32rle-*-elf, m32r-*-linux): Likewise. |
| (mn10300-*-*, am33_2.0-*-linux*): Likewise. |
| (xtensa*-*-elf, xtensa*-*-linux, xtensa*-*-uclinux): Likewise. |
| (m32c-*-elf*, m32c-*-rtems*): Likewise. |
| * config/cris/cris.h (DBX_NO_XREFS): Remove. |
| (DBX_CONTIN_LENGTH, DBX_CONTIN_CHAR): Likewise. |
| * config/m32r/m32r.h (DBXOUT_SOURCE_LINE): Likewise. |
| (DBX_DEBUGGING_INFO, DBX_CONTIN_LENGTH): Likewise. |
| * config/mn10300/mn10300.h (DEFAULT_GDB_EXTENSIONS): Likewise. |
| * config/mn10300/linux.h (DBX_REGISTER_NAMES): Likewise. |
| |
| 2021-08-31 Marcel Vollweiler <marcel@codesourcery.com> |
| |
| * gimplify.c (gimplify_scan_omp_clauses): Error handling. 'ancestor' only |
| allowed on target constructs and only with particular other clauses. |
| * omp-expand.c (expand_omp_target): Output of 'sorry, not supported' if |
| 'ancestor' is used. |
| * omp-low.c (check_omp_nesting_restrictions): Error handling. No nested OpenMP |
| structs when 'ancestor' is used. |
| (scan_omp_1_stmt): No usage of OpenMP runtime routines in a target region when |
| 'ancestor' is used. |
| * tree-pretty-print.c (dump_omp_clause): Append 'ancestor'. |
| * tree.h (OMP_CLAUSE_DEVICE_ANCESTOR): Define macro. |
| |
| 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * expr.c (convert_modes): Preserve SUBREG_PROMOTED_VAR_P when |
| creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P |
| subreg. |
| * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]: |
| Likewise, preserve SUBREG_PROMOTED_VAR_P when creating a (wider) |
| partial subreg from a SUBREG_PROMOTED_VAR_P subreg. Generate |
| SIGN_EXTEND of the SUBREG_REG when a subreg would be paradoxical. |
| [ZERO_EXTEND]: Likewise, preserve SUBREG_PROMOTED_VAR_P when |
| creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P |
| subreg. Generate ZERO_EXTEND of the SUBREG_REG when a subreg |
| would be paradoxical. |
| |
| 2021-08-31 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * combine.c (combine_simplify_rtx): Avoid converting an explicit |
| TRUNCATE into a lowpart SUBREG on !TRULY_NOOP_TRUNCATION targets. |
| * simplify-rtx.c (simplify_unary_operation_1): Likewise. |
| |
| 2021-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102142 |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Fix |
| condition under which to unset the visited flag. |
| |
| 2021-08-31 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/102129 |
| * tree-ssa-ter.c (find_replaceable_in_bb): Do not move |
| possibly trapping expressions across calls. |
| |
| 2021-08-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/102134 |
| * tree-ssa-ccp.c (bit_value_binop) <case RSHIFT_EXPR>: If sgn is |
| UNSIGNED and r1val | r1mask has MSB set, ensure lzcount doesn't |
| become negative. |
| |
| 2021-08-31 Andrew Pinski <apinski@marvell.com> |
| |
| PR driver/79181 |
| * collect-utils.c (setup_signals): New declaration. |
| * collect-utils.h (setup_signals): New function. |
| * collect2.c (handler): Delete. |
| (main): Instead of manually setting up the signals, |
| just call setup_signals. |
| * lto-wrapper.c (main): Likewise. |
| |
| 2021-08-31 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/56337 |
| * config/i386/i386-protos.h (x86_output_aligned_bss): |
| Change align argument to unsigned type. |
| (x86_elf_aligned_decl_common): Likewise. |
| * config/i386/i386.c (x86_elf_aligned_decl_common): Likewise. |
| (x86_output_aligned_bss): Likewise. |
| |
| 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.c (mips_module_isa_name): New. |
| mips_file_start: add .module mipsREV to all asm output |
| |
| 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| * config/mips/mips.h (struct mips_cpu_info): define enum mips_isa; |
| use enum instead of int for 'isa' member. |
| * config.gcc, config/mips/mips.c, config/mips/mips-cpus.def, |
| config/mips/netbsd.h: replace hardcoded numbers with enum. |
| |
| 2021-08-31 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (*<avx512>_ucmp<mode>3_1): Change from |
| define_split to define_insn_and_split. |
| (*avx2_eq<mode>3): Removed. |
| (<avx512>_eq<mode>3<mask_scalar_merge_name>): Adjust pattern |
| (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Rename to .. |
| (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): .. this, and |
| adjust pattern. |
| (*avx2_gt<mode>3): Removed. |
| (<avx512>_gt<mode>3<mask_scalar_merge_name>): Change from |
| define_insn to define_expand, and adjust pattern. |
| (UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed. |
| |
| 2021-08-30 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/99260 |
| * Makefile.in (ANALYZER_OBJS): Add analyzer/call-info.o. |
| |
| 2021-08-30 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi: Document -Wmissing-requires. |
| |
| 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove |
| TARGET_EXTRA_BUILTINS guard. |
| |
| 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change |
| initialization of V2DI_type_node and unsigned_V2DI_type_node. |
| |
| 2021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new |
| decl when new_builtins_are_live. |
| * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New |
| built-in. |
| |
| 2021-08-30 Pat Haugen <pthaugen@linux.ibm.com> |
| |
| * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Add |
| OPTION_MASK_P10_FUSION_2STORE. |
| (POWERPC_MASKS): Likewise. |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable |
| store fusion for Power10. |
| (is_fusable_store): New. |
| (power10_sched_reorder): Likewise. |
| (rs6000_sched_reorder): Do Power10 specific reordering. |
| (rs6000_sched_reorder2): Likewise. |
| * config/rs6000/rs6000.opt: Add new option. |
| |
| 2021-08-30 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102128 |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): |
| Move scanning for if-converted scalar code to the caller |
| and instead delay clearing the visited flag for profitable |
| subgraphs. |
| (vect_slp_region): Cost all subgraphs before scheduling. |
| For if-converted BB vectorization scan for scalar COND_EXPRs |
| and do not vectorize if any found and the cost model is |
| very-cheap. |
| |
| 2021-08-30 Richard Biener <rguenther@suse.de> |
| |
| * common.opt (fexceptions): Mark |
| EnabledBy(fnon-call-exceptions). |
| * doc/invoke.texi (fnon-call-exceptions): Document this |
| enables -fexceptions. |
| |
| 2021-08-30 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * tsystem.h (abort): Define abort() if inhibit_libc is defined and it |
| is not already defined. |
| |
| 2021-08-30 liuhongt <hongtao.liu@intel.com> |
| |
| * expmed.c (extract_bit_field_1): Make sure we're playing with |
| integral modes before call extract_integral_bit_field. |
| (extract_integral_bit_field): Add a parameter of type |
| scalar_int_mode which corresponds to of tmode. |
| And call extract_and_convert_fixed_bit_field instead of |
| extract_fixed_bit_field and convert_extracted_bit_field. |
| (extract_and_convert_fixed_bit_field): New function, it's a |
| combination of extract_fixed_bit_field and |
| convert_extracted_bit_field. |
| |
| 2021-08-29 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_libc_has_function): Do not run |
| the checks for x86 or modern Darwin. Make sure that there |
| is a value set for darwin_macosx_version_min before testing. |
| |
| 2021-08-29 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/i386/darwin.h (CLEAR_INSN_CACHE): New. |
| |
| 2021-08-28 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_access_node::merge): Break out |
| logic combining offsets and logic merging ranges to ... |
| (modref_access_node::combined_offsets): ... here |
| (modref_access_node::update2): ... here |
| (modref_access_node::closer_pair_p): New member function. |
| (modref_access_node::forced_merge): New member function. |
| (modre_ref_node::insert): Do merging when table is full. |
| |
| 2021-08-28 YunQiang Su <yunqiang.su@cipunited.com> |
| |
| PR target/102089 |
| * config.gcc: MIPS: use N64 ABI by default if the triple end |
| with -gnuabi64, which is used by Debian since 2013. |
| |
| 2021-08-28 Alexandre Oliva <oliva@adacore.com> |
| |
| * ipa-modref.c (analyze_function): Skip debug stmts. |
| * tree-inline.c (estimate_num_insn): Consider builtins even |
| without a cgraph_node. |
| |
| 2021-08-27 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/bitfield.md (cstore<mode>4): Remove expander. |
| * config/h8300/h8300.c (h8300_expand_branch): Remove function. |
| * config/h8300/h8300-protos.h (h8300_expadn_branch): Remove prototype. |
| * config/h8300/h8300.md (eqne): New code iterator. |
| (geultu, geultu_to_c): Similarly. |
| * config/h8300/testcompare.md (cstore<mode>4): Dummy expander. |
| (store_c_<mode>, store_c_i_<mode>): New define_insn_and_splits |
| (cmp<mode>_c): New pattern |
| |
| 2021-08-27 Jeff Law <jlaw@localhost.localdomain> |
| |
| * tree-ssa-dom.c (reduce_vector_comparison_to_scalar_comparison): New |
| function. |
| (dom_opt_dom_walker::optimize_stmt): Use it. |
| |
| 2021-08-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (finalize_ctors): Add a section-start linker- |
| visible symbol. |
| (finalize_dtors): Likewise. |
| * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New. |
| |
| 2021-08-27 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include. |
| (rs6000_init_builtins): Call rs6000_init_generated_builtins. Skip the |
| old initialization logic when new builtins are enabled. |
| * config/rs6000/rs6000-gen-builtins.c (write_decls): Rename |
| rs6000_autoinit_builtins to rs6000_init_generated_builtins. |
| (write_init_file): Likewise. |
| |
| 2021-08-27 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure.ac (darwin2[[0-9]]* | darwin19*): Alter use of |
| gcc_GAS_CHECK_FEATURE to remove an extraneous parameter. |
| (amdgcn-* | gcn-*) Likewise. |
| |
| 2021-08-27 Anthony Sharp <anthonysharp15@gmail.com> |
| |
| * symbol-summary.h: Added missing template keyword. |
| |
| 2021-08-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/45178 |
| * tree-ssa-dce.c (find_obviously_necessary_stmts): For |
| infinite loops without exit do not mark control dependent |
| edges of the latch necessary. |
| |
| 2021-08-27 konglin1 <lingling.kong@intel.com> |
| |
| PR target/101472 |
| * config/i386/sse.md: (<avx512>scattersi<mode>): Add mask operand to |
| UNSPEC_VSIBADDR. |
| (<avx512>scattersi<mode>): Likewise. |
| (*avx512f_scattersi<VI48F:mode>): Merge mask operand to set_dest. |
| (*avx512f_scatterdi<VI48F:mode>): Likewise |
| |
| 2021-08-27 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function): Add |
| support for built-in functions MISC_BUILTIN_DIVWE, MISC_BUILTIN_DIVWEU, |
| MISC_BUILTIN_DIVDE, MISC_BUILTIN_DIVDEU, P10_BUILTIN_CFUGED, |
| P10_BUILTIN_CNTLZDM, P10_BUILTIN_CNTTZDM, P10_BUILTIN_PDEPD and |
| P10_BUILTIN_PEXTD on Power10. |
| |
| 2021-08-27 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned |
| signedness for some Power10 bifs. |
| |
| 2021-08-27 David Edelsohn <dje.gcc@gmail.com> |
| |
| PR target/102068 |
| * config/rs6000/rs6000.c (rs6000_adjust_field_align): Use |
| computed alignment if the entire struct has attribute packed. |
| |
| 2021-08-27 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/98167 |
| PR target/43147 |
| * config/i386/i386.c (ix86_gimple_fold_builtin): Fold |
| IX86_BUILTIN_SHUFPD512, IX86_BUILTIN_SHUFPS512, |
| IX86_BUILTIN_SHUFPD256, IX86_BUILTIN_SHUFPS, |
| IX86_BUILTIN_SHUFPS256. |
| (ix86_masked_all_ones): New function. |
| |
| 2021-08-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*btr<mode>_1): Call force_reg unconditionally. |
| (conditional moves with memory inputs splitters): Ditto. |
| * config/i386/sse.md (one_cmpl<mode>2): Simplify. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_access_node::try_merge_with): Restart |
| search after merging. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-overload.def: Add remaining overloads. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add cell stanza. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add ieee128-hw, dfp, |
| crypto, and htm stanzas. |
| |
| 2021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add mma stanza. |
| |
| 2021-08-26 Martin Sebor <msebor@redhat.com> |
| |
| * tree-ssa-uninit.c (warn_uninit): Refactor and simplify. |
| (warn_uninit_phi_uses): Remove argument from calls to warn_uninit. |
| (warn_uninitialized_vars): Same. Reduce visibility of locals. |
| (warn_uninitialized_phi): Same. |
| |
| 2021-08-26 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (get_individual_bits): Helper function to |
| extract the individual bits from a widest_int constant (mask). |
| (gray_code_bit_flips): New read-only table for effiently |
| enumerating permutations/combinations of bits. |
| (bit_value_binop) [LROTATE_EXPR, RROTATE_EXPR]: Handle rotates |
| by unknown counts that are guaranteed less than the target |
| precision and four or fewer unknown bits by enumeration. |
| [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise, also handle shifts by |
| enumeration under the same conditions. Handle remaining |
| shifts as a mask based upon the minimum possible shift value. |
| |
| 2021-08-26 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * match.pd (shift transformations): Remove a redundant |
| !POINTER_TYPE_P check. |
| |
| 2021-08-26 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/102057 |
| * config/i386/i386.md (cmove reg-reg move elimination peephole2s): |
| Set all_regs to true in the call to replace_rtx. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.c (test_insert_search_collapse): Update test. |
| * ipa-modref-tree.h (modref_base_node::insert): Be smarter when |
| hiting --param modref-max-refs limit. |
| (modref_tree:insert_base): Be smarter when hitting |
| --param modref-max-bases limit. Add new parameter REF. |
| (modref_tree:insert): Update. |
| (modref_tree:merge): Update. |
| * ipa-modref.c (read_modref_records): Update. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * params.opt: (modref-max-adjustments): Add full stop. |
| |
| 2021-08-26 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_ref_node::verify): New member |
| functoin. |
| (modref_ref_node::insert): Use it. |
| (modref_ref_node::try_mere_with): Fix off by one error. |
| |
| 2021-08-26 Martin Liska <mliska@suse.cz> |
| Stefan Kneifel <stefan.kneifel@bluewin.ch> |
| |
| * cgraph.h (create_version_clone_with_body): Add new parameter. |
| * cgraphclones.c: Likewise. |
| * multiple_target.c (create_dispatcher_calls): Do not use |
| numbered suffixes. |
| (create_target_clone): Likewise here. |
| |
| 2021-08-26 Jonathan Yong <10walls@gmail.com> |
| |
| * doc/extend.texi: Add note about reserved priorities |
| to the constructor attribute. |
| |
| 2021-08-25 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-range-cache.cc (ssa_global_cache::dump): Avoid printing |
| range table header alone. |
| * gimple-range.cc (gimple_ranger::export_global_ranges): Same. |
| |
| 2021-08-25 Jan Hubicka <hubicka@ucw.cz> |
| |
| * doc/invoke.texi: Document --param modref-max-adjustments. |
| * ipa-modref-tree.c (test_insert_search_collapse): Update. |
| (test_merge): Update. |
| * ipa-modref-tree.h (struct modref_access_node): Add adjustments; |
| (modref_access_node::operator==): Fix handling of access ranges. |
| (modref_access_node::contains): Constify parameter; handle also |
| mismatched parm offsets. |
| (modref_access_node::update): New function. |
| (modref_access_node::merge): New function. |
| (unspecified_modref_access_node): Update constructor. |
| (modref_ref_node::insert_access): Add record_adjustments parameter; |
| handle merging. |
| (modref_ref_node::try_merge_with): New private function. |
| (modref_tree::insert): New record_adjustments parameter. |
| (modref_tree::merge): New record_adjustments parameter. |
| (modref_tree::copy_from): Update. |
| * ipa-modref.c (dump_access): Dump adjustments field. |
| (get_access): Update constructor. |
| (record_access): Update call of insert. |
| (record_access_lto): Update call of insert. |
| (merge_call_side_effects): Add record_adjustments parameter. |
| (get_access_for_fnspec): Update. |
| (process_fnspec): Update. |
| (analyze_call): Update. |
| (analyze_function): Update. |
| (read_modref_records): Update. |
| (ipa_merge_modref_summary_after_inlining): Update. |
| (propagate_unknown_call): Update. |
| (modref_propagate_in_scc): Update. |
| * params.opt (param-max-modref-adjustments=): New. |
| |
| 2021-08-25 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from |
| UNSPEC_XXSPLTID. |
| (xxspltiw_v4si): Use vecperm type attribute. |
| (xxspltiw_v4si_inst): Use vecperm type attribute. |
| (xxspltiw_v4sf_inst): Likewise. |
| (xxspltidp_v2df): Use vecperm type attribute. Use |
| UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID. |
| (xxspltidp_v2df_inst): Likewise. |
| (xxsplti32dx_v4si): Use vecperm type attribute. |
| (xxsplti32dx_v4si_inst): Likewise. |
| (xxsplti32dx_v4sf_inst): Likewise. |
| (xxblend_<mode>): Likewise. |
| (xxpermx): Likewise. |
| (xxpermx_inst): Likewise. |
| (xxeval): Likewise. |
| |
| 2021-08-25 Lewis Hyatt <lhyatt@gmail.com> |
| |
| PR other/93067 |
| * coretypes.h (typedef diagnostic_input_charset_callback): Declare. |
| * diagnostic.c (diagnostic_initialize_input_context): New function. |
| * diagnostic.h (diagnostic_initialize_input_context): Declare. |
| * input.c (default_charset_callback): New function. |
| (file_cache::initialize_input_context): New function. |
| (file_cache_slot::create): Added ability to convert the input |
| according to the input context. |
| (file_cache::file_cache): Initialize the new input context. |
| (class file_cache_slot): Added new m_alloc_offset member. |
| (file_cache_slot::file_cache_slot): Initialize the new member. |
| (file_cache_slot::~file_cache_slot): Handle potentially offset buffer. |
| (file_cache_slot::maybe_grow): Likewise. |
| (file_cache_slot::needs_read_p): Handle NULL fp, which is now possible. |
| (file_cache_slot::get_next_line): Likewise. |
| * input.h (class file_cache): Added input context member. |
| |
| 2021-08-25 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/102046 |
| * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively |
| update ->any_pattern when swapping operands. |
| |
| 2021-08-25 Hongyu Wang <hongyu.wang@intel.com> |
| |
| PR target/101716 |
| * config/i386/i386.c (ix86_live_on_entry): Adjust comment. |
| (ix86_decompose_address): Remove retval check for ASHIFT, |
| allow non-canonical zero extend if AND mask covers ASHIFT |
| count. |
| (ix86_legitimate_address_p): Adjust condition for decompose. |
| (ix86_rtx_costs): Adjust cost for lea with non-canonical |
| zero-extend. |
| Co-Authored by: Uros Bizjak <ubizjak@gmail.com> |
| |
| 2021-08-25 Jiufu Guo <guojiufu@linux.ibm.com> |
| |
| PR tree-optimization/101145 |
| * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): |
| New function. |
| (number_of_iterations_lt): Invoke above function. |
| (adjust_cond_for_loop_until_wrap): |
| Merge to number_of_iterations_until_wrap. |
| (number_of_iterations_cond): Update invokes for |
| adjust_cond_for_loop_until_wrap and number_of_iterations_lt. |
| |
| 2021-08-25 konglin1 <lingling.kong@intel.com> |
| |
| PR target/101471 |
| * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix |
| macro define in O0. |
| (_mm512_mask_fpclass_ps_mask): Ditto. |
| |
| 2021-08-25 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Remove. |
| (vec_unpacku_hi_v8hi): Likewise. |
| (vec_unpacku_lo_v16qi): Likewise. |
| (vec_unpacku_lo_v8hi): Likewise. |
| (vec_unpacku_hi_<VP_small_lc>): New define_expand. |
| (vec_unpacku_lo_<VP_small_lc>): Likewise. |
| |
| 2021-08-24 David Edelsohn <dje.gcc@gmail.com> |
| |
| * config/rs6000/aix.h (SYSTEM_IMPLICIT_EXTERN_C): Delete. |
| * config/rs6000/aix71.h (SYSTEM_IMPLICIT_EXTERN_C): Define. |
| * config/rs6000/aix72.h (SYSTEM_IMPLICIT_EXTERN_C): Define. |
| * config/rs6000/aix73.h (TARGET_AIX_VERSION): Increase to 73. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR middle-end/102031 |
| * simplify-rtx.c (simplify_truncation): When comparing precisions |
| use "subreg_prec" variable, not "subreg_mode". |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power10 and power10-64 |
| stanzas. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize |
| various pointer type nodes. |
| * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum |
| values for various pointer types. |
| (ptr_V16QI_type_node): New macro. |
| (ptr_V1TI_type_node): New macro. |
| (ptr_V2DI_type_node): New macro. |
| (ptr_V2DF_type_node): New macro. |
| (ptr_V4SI_type_node): New macro. |
| (ptr_V4SF_type_node): New macro. |
| (ptr_V8HI_type_node): New macro. |
| (ptr_unsigned_V16QI_type_node): New macro. |
| (ptr_unsigned_V1TI_type_node): New macro. |
| (ptr_unsigned_V8HI_type_node): New macro. |
| (ptr_unsigned_V4SI_type_node): New macro. |
| (ptr_unsigned_V2DI_type_node): New macro. |
| (ptr_bool_V16QI_type_node): New macro. |
| (ptr_bool_V8HI_type_node): New macro. |
| (ptr_bool_V4SI_type_node): New macro. |
| (ptr_bool_V2DI_type_node): New macro. |
| (ptr_bool_V1TI_type_node): New macro. |
| (ptr_pixel_type_node): New macro. |
| (ptr_intQI_type_node): New macro. |
| (ptr_uintQI_type_node): New macro. |
| (ptr_intHI_type_node): New macro. |
| (ptr_uintHI_type_node): New macro. |
| (ptr_intSI_type_node): New macro. |
| (ptr_uintSI_type_node): New macro. |
| (ptr_intDI_type_node): New macro. |
| (ptr_uintDI_type_node): New macro. |
| (ptr_intTI_type_node): New macro. |
| (ptr_uintTI_type_node): New macro. |
| (ptr_long_integer_type_node): New macro. |
| (ptr_long_unsigned_type_node): New macro. |
| (ptr_float_type_node): New macro. |
| (ptr_double_type_node): New macro. |
| (ptr_long_double_type_node): New macro. |
| (ptr_dfloat64_type_node): New macro. |
| (ptr_dfloat128_type_node): New macro. |
| (ptr_ieee128_type_node): New macro. |
| (ptr_ibm128_type_node): New macro. |
| (ptr_vector_pair_type_node): New macro. |
| (ptr_vector_quad_type_node): New macro. |
| (ptr_long_long_integer_type_node): New macro. |
| (ptr_long_long_unsigned_type_node): New macro. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9, |
| and power9-64 stanzas. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| Tom de Vries <tdevries@suse.de> |
| |
| * config.gcc (nvptx-*-*): Define {c,c++}_target_objs. |
| * config/nvptx/nvptx-protos.h (nvptx_cpu_cpp_builtins): Prototype. |
| * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Implement with |
| a call to the new nvptx_cpu_cpp_builtins function in nvptx-c.c. |
| * config/nvptx/t-nvptx (nvptx-c.o): New rule. |
| * config/nvptx/nvptx-c.c: New source file. |
| (nvptx_cpu_cpp_builtins): Move implementation here. |
| |
| 2021-08-24 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101600 |
| PR middle-end/101977 |
| * gimple-ssa-warn-access.cc (maybe_warn_for_bound): Tighten up |
| the phrasing of a warning. |
| (check_access): Use the remaining size after subtracting any offset |
| rather than the whole object size. |
| * pointer-query.cc (access_ref::get_ref): Clear BASE0 flag if it's |
| clear for any nonnull PHI argument. |
| (compute_objsize): Clear argument. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power8-vector stanza. |
| |
| 2021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add power7 and power7-64 |
| stanzas. |
| |
| 2021-08-24 Andrew MacLeod <amacleod@redhat.com> |
| |
| * value-relation.cc (rr_transitive_table): New. |
| (relation_transitive): New. |
| (value_relation::swap): Remove. |
| (value_relation::apply_transitive): New. |
| (relation_oracle::relation_oracle): Allocate a new tmp bitmap. |
| (relation_oracle::register_relation): Call register_transitives. |
| (relation_oracle::register_transitives): New. |
| * value-relation.h (relation_oracle): Add new temporary bitmap and |
| methods. |
| |
| 2021-08-24 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/102021 |
| * config/i386/i386-expand.c (ix86_expand_vector_move): Broadcast |
| from integer to a pseudo vector register. |
| |
| 2021-08-24 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/100089 |
| * tree-vectorizer.h (vect_slp_bb): Rename to ... |
| (vect_slp_if_converted_bb): ... this and get the original |
| loop as new argument. |
| * tree-vectorizer.c (try_vectorize_loop_1): Revert previous fix, |
| pass original loop to vect_slp_if_converted_bb. |
| * tree-vect-slp.c (vect_bb_vectorization_profitable_p): |
| If orig_loop was passed scan the not vectorized stmts |
| for COND_EXPRs and force not profitable if found. |
| (vect_slp_region): Pass down all SLP instances to costing |
| if orig_loop was specified. |
| (vect_slp_bbs): Pass through orig_loop. |
| (vect_slp_bb): Rename to ... |
| (vect_slp_if_converted_bb): ... this and get the original |
| loop as new argument. |
| (vect_slp_function): Adjust. |
| |
| 2021-08-24 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102035 |
| * config/arm/arm.md (attribute arch): Add fix_vlldm. |
| (arch_enabled): Use it. |
| * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to |
| use when erratum mitigation is needed. |
| |
| 2021-08-24 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/102035 |
| * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option. |
| * doc/invoke.texi (Arm Options): Document it. |
| * config/arm/arm-cpus.in (quirk_vlldm): New feature bit. |
| (ALL_QUIRKS): Add quirk_vlldm. |
| (cortex-m33): Add quirk_vlldm. |
| (cortex-m35p, cortex-m55): Likewise. |
| * config/arm/arm.c (arm_option_override): Enable fix_vlldm if |
| targetting an affected CPU and not explicitly controlled on |
| the command line. |
| |
| 2021-08-24 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL. |
| (lazy_load_multiple_insn): Likewise. |
| |
| 2021-08-24 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101989 |
| * config/i386/sse.md (<avx512>_vternlog<mode><sd_maskz_name>): |
| Enable avx512 embedded broadcast. |
| (*<avx512>_vternlog<mode>_all): Ditto. |
| (<avx512>_vternlog<mode>_mask): Ditto. |
| |
| 2021-08-24 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101989 |
| * config/i386/i386.c (ix86_rtx_costs): Define cost for |
| UNSPEC_VTERNLOG. |
| * config/i386/i386.h (STRIP_UNARY): New macro. |
| * config/i386/predicates.md (reg_or_notreg_operand): New |
| predicate. |
| * config/i386/sse.md (*<avx512>_vternlog<mode>_all): New define_insn. |
| (*<avx512>_vternlog<mode>_1): New pre_reload |
| define_insn_and_split. |
| (*<avx512>_vternlog<mode>_2): Ditto. |
| (*<avx512>_vternlog<mode>_3): Ditto. |
| (any_logic1,any_logic2): New code iterator. |
| (logic_op): New code attribute. |
| (ternlogsuffix): Extend to VNxDF and VNxSF. |
| |
| 2021-08-24 Richard Biener <rguenther@suse.de> |
| |
| * doc/invoke.texi (vect-inner-loop-cost-factor): Adjust. |
| * params.opt (--param vect-inner-loop-cost-factor): Adjust |
| maximum value. |
| * tree-vect-loop.c (vect_analyze_loop_form): Initialize |
| inner_loop_cost_factor to the minimum of the estimated number |
| of iterations of the inner loop and vect-inner-loop-cost-factor. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-features.c (compute_convert_gain): Provide |
| more accurate values for CONST_INT, when optimizing for size. |
| * config/i386/i386.c (COSTS_N_BYTES): Move definition from here... |
| * config/i386/i386.h (COSTS_N_BYTES): to here. |
| |
| 2021-08-24 Roger Sayle <roger@nextmovesoftware.com> |
| Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/102029 |
| * match.pd (shift transformations): Add an additional check for |
| !POINTER_TYPE_P in the recently added left shift transformation. |
| |
| 2021-08-24 liuhongt <hongtao.liu@intel.com> |
| |
| PR tree-optimization/100089 |
| * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in |
| loop vectorizer when cost model is very-cheap. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (parse_bif_entry): Don't call |
| asprintf, which is not available on AIX. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config.gcc (target_gtfiles): Add ./rs6000-builtins.h. |
| * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs. |
| * config/rs6000/rs6000-gen-builtins.c (main): Close init_file |
| last. |
| * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target. |
| (rbtree.o): Likewise. |
| (rs6000-gen-builtins): Likewise. |
| (rs6000-builtins.c): Likewise. |
| (rs6000-builtins.h): Likewise. |
| (rs6000.o): Add dependency. |
| (EXTRA_HEADERS): Add rs6000-vecdefines.h. |
| (rs6000-vecdefines.h): New target. |
| (rs6000-builtins.o): Likewise. |
| (rs6000-call.o): Add rs6000-builtins.h as a dependency. |
| (rs6000-c.o): Likewise. |
| |
| 2021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/101830 |
| * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): |
| Diagnose buffer overrun. |
| (safe_inc_pos): Fix overrun detection. |
| (match_identifier): Diagnose buffer overrun. |
| (match_integer): Likewise. |
| (match_to_right_bracket): Likewise. |
| |
| 2021-08-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref-tree.h (modref_access_node::range_info_useful_p): |
| Improve range compare. |
| (modref_access_node::contains): New member function. |
| (modref_access_node::search): Remove. |
| (modref_access_node::insert): Be smarter about subaccesses. |
| |
| 2021-08-23 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa) |
| <omp_device_arch> [ACCEL_COMPILER]: Match "intel_mic". |
| * config/i386/t-omp-device (omp-device-properties-i386) <arch>: |
| Add "intel_mic". |
| |
| 2021-08-23 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300-protos.h (h8300_expand_epilogue): Add new |
| argument. |
| * config/h8300/jumpcall.md (call, call_value): Restrict to |
| !SIBLING_CALL_P cases. |
| (subcall, sibcall_value): New patterns & expanders. |
| * config/h8300/proepi.md (epilogue): Pass new argument to |
| h8300_expand_epilogue. |
| (sibcall_epilogue): New expander. |
| * config/h8300/h8300.c (h8300_expand_epilogue): Handle sibcall |
| epilogues too. |
| (h8300_ok_for_sibcall_p): New function. |
| (TARGET_FUNCTION_OK_FOR_SIBCALL): define. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]: |
| Handle case where the operand is already the desired mode. |
| |
| 2021-08-23 Richard Biener <rguenther@suse.de> |
| |
| PR ipa/97565 |
| * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition |
| in addition to has_gimple_body. |
| |
| 2021-08-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| PR middle-end/101949 |
| * ipa-modref.c (analyze_ssa_name_flags): Fix merging of |
| EAF_NOCLOBBER |
| |
| 2021-08-23 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Put the option out of -mxl-mode-app-model |
| table. |
| |
| 2021-08-23 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): |
| Properly scale the inner loop cost only once. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (bit_value_binop) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: |
| Provide bounds for unsigned (and signed with non-negative operands) |
| division and modulus. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * simplify-rtx.c (simplify_truncation): Generalize simplification |
| of (truncate:A (subreg:B X)). |
| (simplify_unary_operation_1) [FLOAT_TRUNCATE, FLOAT_EXTEND, |
| SIGN_EXTEND, ZERO_EXTEND]: Handle cases where the operand |
| already has the desired machine mode. |
| (test_scalar_int_ops): Add tests that useless extensions and |
| truncations are optimized away. |
| (test_scalar_int_ext_ops): New self-test function to confirm |
| that truncations of extensions are correctly simplified. |
| (test_scalar_int_ext_ops2): New self-test function to check |
| truncations of truncations, extensions of extensions, and |
| truncations of extensions. |
| (test_scalar_ops): Call the above two functions with a |
| representative sampling of integer machine modes. |
| |
| 2021-08-23 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * match.pd (shift transformations): Change the sign of an |
| LSHIFT_EXPR if it reduces the number of explicit conversions. |
| |
| 2021-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR tree-optimization/86723 |
| * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Add |
| cast64_to_32 argument, set *cast64_to_32 to false, unless n is |
| non-memory permutation of 64-bit src which only has bytes of |
| 0 or [5..8] and n->range is 4. |
| (find_bswap_or_nop): Add cast64_to_32 and mask arguments, adjust |
| find_bswap_or_nop_finalize caller, support bswap with some bytes |
| zeroed, as long as at least two bytes are not zeroed. |
| (bswap_replace): Add mask argument and handle masking of bswap |
| result. |
| (maybe_optimize_vector_constructor): Adjust find_bswap_or_nop |
| caller, punt if cast64_to_32 or mask is not all ones. |
| (pass_optimize_bswap::execute): Adjust find_bswap_or_nop_finalize |
| caller, for now punt if cast64_to_32. |
| |
| 2021-08-23 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/79334 |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record |
| a type also for COMPONENT_REFs. |
| (vn_reference_may_trap): Check ARRAY_REF with constant index |
| against the array domain. |
| |
| 2021-08-23 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/102016 |
| * config/i386/sse.md (*avx512f_pshufb_truncv8hiv8qi_1): Add |
| TARGET_AVX512BW to condition. |
| |
| 2021-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR debug/101905 |
| * dwarf2out.c (gen_variable_die): Add DW_AT_location for global |
| register variables already during early_dwarf if possible. |
| |
| 2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> |
| |
| * config/arm/arm_mve.h: Fix __arm_vctp16q return type. |
| |
| 2021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> |
| |
| PR target/100856 |
| * config/arm/arm.opt: Fix typo. |
| * config/arm/t-rmprofile: Fix typo. |
| |
| 2021-08-23 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.h (OMP_CLAUSE_GRAINSIZE_STRICT): Define. |
| (OMP_CLAUSE_NUM_TASKS_STRICT): Define. |
| * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_GRAINSIZE, |
| case OMP_CLAUSE_NUM_TASKS>: Print strict: modifier. |
| * omp-expand.c (expand_task_call): Use GOMP_TASK_FLAG_STRICT in iflags |
| if either grainsize or num_tasks clause has the strict modifier. |
| |
| 2021-08-23 Martin Liska <mliska@suse.cz> |
| |
| * dbgcnt.def (DEBUG_COUNTER): New counter. |
| * gimple.c (gimple_call_arg_flags): Use it in IPA PTA. |
| |
| 2021-08-23 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (analyze_ssa_name_flags): Improve handling of return slot. |
| |
| 2021-08-23 Xi Ruoyao <xry111@mengyan1223.wang> |
| |
| PR target/101922 |
| * config/mips/mips-protos.h (mips_msa_output_shift_immediate): |
| Declare. |
| * config/mips/mips.c (mips_msa_output_shift_immediate): New |
| function. |
| * config/mips/mips-msa.md (vashl<mode>3, vashr<mode>3, |
| vlshr<mode>3): Call it. |
| |
| 2021-08-22 Jan Hubicka <hubicka@ucw.cz> |
| Martin Liska <mliska@suse.cz> |
| |
| PR middle-end/101949 |
| * ipa-modref.c (analyze_ssa_name_flags): Indirect call implies |
| ~EAF_NOCLOBBER. |
| |
| 2021-08-21 Dragan Mladjenovic <OT_Dragan.Mladjenovic@mediatek.com> |
| |
| * config/mips/mips.c (mips_function_rodata_section, |
| TARGET_ASM_FUNCTION_RODATA_SECTION): Removed. |
| |
| 2021-08-21 John David Anglin <danglin@gcc.gnu.org> |
| |
| * config/pa/pa.c (pa_asm_output_aligned_common): Remove warning. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| * configure.ac (thread-local storage support): Remove tls_first_major |
| and tls_first_minor. Use "$conftest_s" to check support. |
| * configure: Regenerate. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| * configure.ac: Fixup formatting. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Remove third argument and ... |
| * configure.ac: ... update all callers. |
| |
| 2021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> |
| |
| PR target/91602 |
| * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION, _gcc_GAS_VERSION_GTE_IFELSE) |
| (gcc_GAS_VERSION_GTE_IFELSE): Remove. |
| (gcc_GAS_CHECK_FEATURE): Do not handle in-tree case specially. |
| * configure.ac: Remove gcc_cv_gas_major_version, gcc_cv_gas_minor_version. |
| Remove remaining checks for in-tree assembler. |
| * configure: Regenerate. |
| |
| 2021-08-20 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.c (shift_alg_hi): Improve arithmetic shift right |
| by 15 bits for H8/300H and H8/S. Improve logical shifts by 12 |
| bits for H8/S. |
| (shift_alg_si): Improve arithmetic right shift by 28-30 bits for |
| H8/300H. Improve arithmetic shift right by 15 bits for H8/S. |
| Improve logical shifts by 27 bits for H8/S. |
| (get_shift_alg): Corresponding changes. |
| (h8300_option_override): Revert to loops for -Os when profitable. |
| |
| 2021-08-20 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare |
| BBs. |
| (vect_analyze_data_ref_accesses): Likewise. Assign the BB |
| index as group_id when dataref_groups were not computed. |
| * tree-vect-slp.c (vect_slp_bbs): Bump current_group when |
| we advace to the next BB. |
| |
| 2021-08-20 Jakub Jelinek <jakub@redhat.com> |
| |
| * omp-builtins.def (BUILT_IN_GOMP_WARNING, BUILT_IN_GOMP_ERROR): New |
| builtins. |
| |
| 2021-08-20 Martin Liska <mliska@suse.cz> |
| |
| PR gcov-profile/89961 |
| * gcov.c (make_gcov_file_name): Rewrite using std::string. |
| (mangle_name): Simplify, do not used the second argument. |
| (strip_extention): New function. |
| (get_md5sum): Likewise. |
| (get_gcov_intermediate_filename): Handle properly -p and -x |
| options. |
| (output_gcov_file): Use string type. |
| (generate_results): Likewise. |
| (md5sum_to_hex): Remove. |
| |
| 2021-08-20 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (UNSPEC_XXEVAL): Move to vsx.md. |
| (UNSPEC_XXSPLTIW): Move to vsx.md. |
| (UNSPEC_XXSPLTID): Move to vsx.md. |
| (UNSPEC_XXSPLTI32DX): Move to vsx.md. |
| (UNSPEC_XXBLEND): Move to vsx.md. |
| (UNSPEC_XXPERMX): Move to vsx.md. |
| (VM3): Move to vsx.md. |
| (VM3_char): Move to vsx.md. |
| (xxspltiw_v4si): Move to vsx.md. |
| (xxspltiw_v4sf): Move to vsx.md. |
| (xxspltiw_v4sf_inst): Move to vsx.md. |
| (xxspltidp_v2df): Move to vsx.md. |
| (xxspltidp_v2df_inst): Move to vsx.md. |
| (xxsplti32dx_v4si_inst): Move to vsx.md. |
| (xxsplti32dx_v4sf): Move to vsx.md. |
| (xxsplti32dx_v4sf_inst): Move to vsx.md. |
| (xxblend_<mode>): Move to vsx.md. |
| (xxpermx): Move to vsx.md. |
| (xxpermx_inst): Move to vsx.md. |
| * config/rs6000/vsx.md (UNSPEC_XXEVAL): Move from altivec.md. |
| (UNSPEC_XXSPLTIW): Move from altivec.md. |
| (UNSPEC_XXSPLTID): Move from altivec.md. |
| (UNSPEC_XXSPLTI32DX): Move from altivec.md. |
| (UNSPEC_XXBLEND): Move from altivec.md. |
| (UNSPEC_XXPERMX): Move from altivec.md. |
| (VM3): Move from altivec.md. |
| (VM3_char): Move from altivec.md. |
| (xxspltiw_v4si): Move from altivec.md. |
| (xxspltiw_v4sf): Move from altivec.md. |
| (xxspltiw_v4sf_inst): Move from altivec.md. |
| (xxspltidp_v2df): Move from altivec.md. |
| (xxspltidp_v2df_inst): Move from altivec.md. |
| (xxsplti32dx_v4si_inst): Move from altivec.md. |
| (xxsplti32dx_v4sf): Move from altivec.md. |
| (xxsplti32dx_v4sf_inst): Move from altivec.md. |
| (xxblend_<mode>): Move from altivec.md. |
| (xxpermx): Move from altivec.md. |
| (xxpermx_inst): Move from altivec.md. |
| |
| 2021-08-19 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-vect-generic.c (expand_vector_operations_1): Use either |
| gimplify_build1 or gimplify_build2 instead of gimple_build_assign |
| when constructing scalar splat expressions. |
| |
| 2021-08-19 Peter Bergner <bergner@linux.ibm.com> |
| |
| PR target/101849 |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast |
| pointer to __vector_pair *. |
| |
| 2021-08-19 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-range.cc: Add comments. |
| * gimple-range.h: Same. |
| |
| 2021-08-19 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101984 |
| * gimple-ssa-warn-access.cc (pass_waccess::execute): Also call |
| disable_ranger. |
| |
| 2021-08-19 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config.gcc (h8300-*-elf*): Do not include dbxelf.h. |
| (h8300-*-linux*, v850-*-rtems*, v850*-elf*): Likewise. |
| * config/v850/v850.h (DEFAULT_GDB_EXTENSIONS): Remove. |
| |
| 2021-08-19 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/101950 |
| * optabs.c (expand_clrsb_using_clz): New function. |
| (expand_unop): Use it as another clrsb expansion fallback. |
| |
| 2021-08-19 liuhongt <hongtao.liu@intel.com> |
| |
| Revert: |
| 2021-07-28 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/99881 |
| * config/i386/i386.h (processor_costs): Add new member |
| integer_to_sse. |
| * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, |
| i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, |
| geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, |
| bdver_cost, znver1_cost, znver2_cost, znver3_cost, |
| btver1_cost, btver2_cost, btver3_cost, pentium4_cost, |
| nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, |
| generic_cost, core_cost): Initialize integer_to_sse same value |
| as sse_op. |
| (skylake_cost): Initialize integer_to_sse twice as much as sse_op. |
| * config/i386/i386.c (ix86_builtin_vectorization_cost): |
| Use integer_to_sse instead of sse_op to calculate the cost of |
| vec_construct. |
| |
| 2021-08-18 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config.gcc: Include rpath.opt for Darwin. |
| * config/darwin.h (DRIVER_SELF_SPECS): Handle -rpath. |
| |
| 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| PR bootstrap/101959 |
| * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): |
| Use an 'int_hash'. |
| |
| 2021-08-18 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vld3_lane_f64): Use float RTL |
| pattern and type cast. |
| (vld4_lane_f32): Use float RTL pattern. |
| (vld4q_lane_f64): Use float type cast. |
| |
| 2021-08-18 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Check also |
| EAF_NOREAD. |
| |
| 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Extend. |
| (test_map_of_type_with_ctor_and_dtor_expand): Add function. |
| (hash_map_tests_c_tests): Call it. |
| |
| 2021-08-18 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * ggc.h (enum ggc_collect): New. |
| (ggc_collect): Use it. |
| * ggc-page.c: Adjust. |
| * ggc-common.c: Likewise. |
| * ggc-tests.c: Likewise. |
| * read-rtl-function.c: Likewise. |
| * selftest-run-tests.c: Likewise. |
| * doc/gty.texi (Invoking the garbage collector): Likewise. |
| |
| 2021-08-18 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/97147 |
| * config/i386/i386.h (TARGET_V2DF_REDUCTION_PREFER_HADDPD): |
| New macro. |
| * config/i386/sse.md (*sse3_haddv2df3_low): Add |
| TARGET_V2DF_REDUCTION_PREFER_HADDPD. |
| (*sse3_hsubv2df3_low): Ditto. |
| * config/i386/x86-tune.def |
| (X86_TUNE_V2DF_REDUCTION_PREFER_HADDPD): New tune. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-gori.cc (gori_compute::gori_compute): Enable tracing. |
| (gori_compute::compute_operand_range): Add tracing. |
| (gori_compute::logical_combine): Ditto. |
| (gori_compute::compute_logical_operands): Ditto. |
| (gori_compute::compute_operand1_range): Ditto. |
| (gori_compute::compute_operand2_range): Ditto. |
| (gori_compute::outgoing_edge_range_p): Ditto. |
| * gimple-range-gori.h (class gori_compute): Add range_tracer. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * flag-types.h (enum evrp_mode): Adjust evrp-mode values. |
| * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Relocate from. |
| * gimple-range-trace.h (DEBUG_RANGE_CACHE): Here. |
| * params.opt (--param=evrp-mode): Adjust options. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-range-trace.o. |
| * gimple-range-cache.h (enable_new_values): Remove unused prototype. |
| * gimple-range-fold.cc: Adjust headers. |
| * gimple-range-trace.cc: New. |
| * gimple-range-trace.h: New. |
| * gimple-range.cc (gimple_ranger::gimple_ranger): Enable tracer. |
| (gimple_ranger::range_of_expr): Add tracing. |
| (gimple_ranger::range_on_entry): Ditto. |
| (gimple_ranger::range_on_exit): Ditto. |
| (gimple_ranger::range_on_edge): Ditto. |
| (gimple_ranger::fold_range_internal): Ditto. |
| (gimple_ranger::dump_bb): Do not calculate edge range twice. |
| (trace_ranger::*): Remove. |
| (enable_ranger): Never create a trace_ranger. |
| (debug_seed_ranger): Move to gimple-range-trace.cc. |
| (dump_ranger): Ditto. |
| (debug_ranger): Ditto. |
| * gimple-range.h: Include gimple-range-trace.h. |
| (range_on_entry, range_on_exit): No longer virtual. |
| (class trace_ranger): Remove. |
| (DEBUG_RANGE_CACHE): Move to gimple-range-trace.h. |
| |
| 2021-08-17 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101854 |
| * builtins.c (expand_builtin_alloca): Move warning code to check_alloca |
| in gimple-ssa-warn-access.cc. |
| * calls.c (alloc_max_size): Move code to check_alloca. |
| (get_size_range): Move to pointer-query.cc. |
| (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.cc. |
| (get_attr_nonstring_decl): Move to tree.c. |
| (fntype_argno_type): Move to gimple-ssa-warn-access.cc. |
| (append_attrname): Same. |
| (maybe_warn_rdwr_sizes): Same. |
| (initialize_argument_information): Move code to |
| gimple-ssa-warn-access.cc. |
| * calls.h (maybe_warn_alloc_args_overflow): Move to |
| gimple-ssa-warn-access.h. |
| (get_attr_nonstring_decl): Move to tree.h. |
| (maybe_warn_nonstring_arg): Move to gimple-ssa-warn-access.h. |
| (enum size_range_flags): Move to pointer-query.h. |
| (get_size_range): Same. |
| * gimple-ssa-warn-access.cc (has_location): Remove unused overload |
| to avoid Clang -Wunused-function. |
| (get_size_range): Declare static. |
| (maybe_emit_free_warning): Rename... |
| (maybe_check_dealloc_call): ...to this for consistency. |
| (class pass_waccess): Add members. |
| (pass_waccess::~pass_waccess): Defined. |
| (alloc_max_size): Move here from calls.c. |
| (maybe_warn_alloc_args_overflow): Same. |
| (check_alloca): New function. |
| (check_alloc_size_call): New function. |
| (check_strncat): Handle another warning flag. |
| (pass_waccess::check_builtin): Handle alloca. |
| (fntype_argno_type): Move here from calls.c. |
| (append_attrname): Same. |
| (maybe_warn_rdwr_sizes): Same. |
| (pass_waccess::check_call): Define. |
| (check_nonstring_args): New function. |
| (pass_waccess::check): Call new member functions. |
| (pass_waccess::execute): Enable ranger. |
| * gimple-ssa-warn-access.h (get_size_range): Move here from calls.h. |
| (maybe_warn_nonstring_arg): Same. |
| * gimple-ssa-warn-restrict.c: Remove #include. |
| * pointer-query.cc (get_size_range): Move here from calls.c. |
| * pointer-query.h (enum size_range_flags): Same. |
| (get_size_range): Same. |
| * tree.c (get_attr_nonstring_decl): Move here from calls.c. |
| * tree.h (get_attr_nonstring_decl): Move here from calls.h. |
| |
| 2021-08-17 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * ggc.h (ggc_collect): Add 'force_collect' parameter. |
| * ggc-page.c (ggc_collect): Use that one instead of global |
| 'ggc_force_collect'. Adjust all users. |
| * doc/gty.texi (Invoking the garbage collector): Update. |
| * ggc-internal.h (ggc_force_collect): Remove. |
| * ggc-common.c (ggc_force_collect): Likewise. |
| * selftest.h (forcibly_ggc_collect): Remove. |
| * ggc-tests.c (selftest::forcibly_ggc_collect): Likewise. |
| * read-rtl-function.c (test_loading_labels): Adjust. |
| * selftest-run-tests.c (run_tests): Likewise. |
| |
| 2021-08-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * config/darwin.c (darwin_file_end): Reset and reclaim the |
| section names table at the end of compile. |
| |
| 2021-08-17 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/100340 |
| * config.in: Regenerate. |
| * config/i386/darwin.h (EXTRA_ASM_OPTS): New |
| (ASM_SPEC): Pass options to disable branch shortening where |
| needed. |
| * configure: Regenerate. |
| * configure.ac: Detect versions of 'as' that support the |
| optimisation which has the bug. |
| |
| 2021-08-17 Richard Biener <rguenther@suse.de> |
| |
| * optabs-query.c (supports_vec_gather_load_p): Also check |
| for masked optabs. |
| (supports_vec_scatter_store_p): Likewise. |
| * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Fall |
| back to masked variants if non-masked are not supported. |
| * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): |
| When we need to use masked gather/scatter but do not have |
| a mask set up a constant true one. |
| * tree-vect-stmts.c (vect_check_scalar_mask): Also allow |
| non-SSA_NAME masks. |
| |
| 2021-08-17 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (bit_value_binop) [MINUS_EXPR]: Use same |
| algorithm as PLUS_EXPR to improve subtraction bit bounds. |
| [POINTER_DIFF_EXPR]: Treat as synonymous with MINUS_EXPR. |
| |
| 2021-08-17 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (bit_value_mult_const): New helper function to |
| calculate the mask-value pair result of a multiplication by an |
| unsigned constant. |
| (bit_value_binop) [MULT_EXPR]: Call it from here for |
| multiplications by (sparse) non-negative constants. |
| |
| 2021-08-17 Christophe Lyon <christophe.lyon@foss.st.com> |
| |
| PR target/100896 |
| * config.gcc (gcc_cv_initfini_array): Leave undefined for |
| uclinuxfdpiceabi targets. |
| |
| 2021-08-17 Alexandre Oliva <oliva@adacore.com> |
| |
| * tree-inline.c (maybe_move_debug_stmts_to_successors): Don't |
| reverse debug stmts. |
| |
| 2021-08-17 Alexandre Oliva <oliva@adacore.com> |
| |
| * tree-cfg.c (dump_function_to_file): Use fun, not cfun. |
| |
| 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__LD4_LANE_FUNC): Delete. |
| (__LD4Q_LANE_FUNC): Likewise. |
| (vld4_lane_u8): Define without macro. |
| (vld4_lane_u16): Likewise. |
| (vld4_lane_u32): Likewise. |
| (vld4_lane_u64): Likewise. |
| (vld4_lane_s8): Likewise. |
| (vld4_lane_s16): Likewise. |
| (vld4_lane_s32): Likewise. |
| (vld4_lane_s64): Likewise. |
| (vld4_lane_f16): Likewise. |
| (vld4_lane_f32): Likewise. |
| (vld4_lane_f64): Likewise. |
| (vld4_lane_p8): Likewise. |
| (vld4_lane_p16): Likewise. |
| (vld4_lane_p64): Likewise. |
| (vld4q_lane_u8): Likewise. |
| (vld4q_lane_u16): Likewise. |
| (vld4q_lane_u32): Likewise. |
| (vld4q_lane_u64): Likewise. |
| (vld4q_lane_s8): Likewise. |
| (vld4q_lane_s16): Likewise. |
| (vld4q_lane_s32): Likewise. |
| (vld4q_lane_s64): Likewise. |
| (vld4q_lane_f16): Likewise. |
| (vld4q_lane_f32): Likewise. |
| (vld4q_lane_f64): Likewise. |
| (vld4q_lane_p8): Likewise. |
| (vld4q_lane_p16): Likewise. |
| (vld4q_lane_p64): Likewise. |
| (vld4_lane_bf16): Likewise. |
| (vld4q_lane_bf16): Likewise. |
| |
| 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__LD3_LANE_FUNC): Delete. |
| (__LD3Q_LANE_FUNC): Delete. |
| (vld3_lane_u8): Define without macro. |
| (vld3_lane_u16): Likewise. |
| (vld3_lane_u32): Likewise. |
| (vld3_lane_u64): Likewise. |
| (vld3_lane_s8): Likewise. |
| (vld3_lane_s16): Likewise. |
| (vld3_lane_s32): Likewise. |
| (vld3_lane_s64): Likewise. |
| (vld3_lane_f16): Likewise. |
| (vld3_lane_f32): Likewise. |
| (vld3_lane_f64): Likewise. |
| (vld3_lane_p8): Likewise. |
| (vld3_lane_p16): Likewise. |
| (vld3_lane_p64): Likewise. |
| (vld3q_lane_u8): Likewise. |
| (vld3q_lane_u16): Likewise. |
| (vld3q_lane_u32): Likewise. |
| (vld3q_lane_u64): Likewise. |
| (vld3q_lane_s8): Likewise. |
| (vld3q_lane_s16): Likewise. |
| (vld3q_lane_s32): Likewise. |
| (vld3q_lane_s64): Likewise. |
| (vld3q_lane_f16): Likewise. |
| (vld3q_lane_f32): Likewise. |
| (vld3q_lane_f64): Likewise. |
| (vld3q_lane_p8): Likewise. |
| (vld3q_lane_p16): Likewise. |
| (vld3q_lane_p64): Likewise. |
| (vld3_lane_bf16): Likewise. |
| (vld3q_lane_bf16): Likewise. |
| |
| 2021-08-17 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Delete. |
| (__LD2Q_LANE_FUNC): Likewise. |
| (vld2_lane_u8): Define without macro. |
| (vld2_lane_u16): Likewise. |
| (vld2_lane_u32): Likewise. |
| (vld2_lane_u64): Likewise. |
| (vld2_lane_s8): Likewise. |
| (vld2_lane_s16): Likewise. |
| (vld2_lane_s32): Likewise. |
| (vld2_lane_s64): Likewise. |
| (vld2_lane_f16): Likewise. |
| (vld2_lane_f32): Likewise. |
| (vld2_lane_f64): Likewise. |
| (vld2_lane_p8): Likewise. |
| (vld2_lane_p16): Likewise. |
| (vld2_lane_p64): Likewise. |
| (vld2q_lane_u8): Likewise. |
| (vld2q_lane_u16): Likewise. |
| (vld2q_lane_u32): Likewise. |
| (vld2q_lane_u64): Likewise. |
| (vld2q_lane_s8): Likewise. |
| (vld2q_lane_s16): Likewise. |
| (vld2q_lane_s32): Likewise. |
| (vld2q_lane_s64): Likewise. |
| (vld2q_lane_f16): Likewise. |
| (vld2q_lane_f32): Likewise. |
| (vld2q_lane_f64): Likewise. |
| (vld2q_lane_p8): Likewise. |
| (vld2q_lane_p16): Likewise. |
| (vld2q_lane_p64): Likewise. |
| (vld2_lane_bf16): Likewise. |
| (vld2q_lane_bf16): Likewise. |
| |
| 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * haifa-sched.c (advance_one_cycle): Output more context-synchronization |
| lines for diff. |
| |
| 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| * haifa-sched.c (enum rfs_decision, rfs_str): Add RFS_AUTOPREF. |
| (rank_for_schedule): Use it. |
| |
| 2021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> |
| |
| PR rtl-optimization/91598 |
| * haifa-sched.c (autopref_rank_for_schedule): Prioritize "irrelevant" |
| insns after memory reads and before memory writes. |
| |
| 2021-08-17 Alistair_Lee <alistair.lee@arm.com> |
| |
| * rtl.h (CONST_VECTOR_P): New macro. |
| * config/aarch64/aarch64.c (aarch64_get_sve_pred_bits): Use RTL |
| code testing macros. |
| (aarch64_ptrue_all_mode): Likewise. |
| (aarch64_expand_mov_immediate): Likewise. |
| (aarch64_const_vec_all_in_range_p): Likewise. |
| (aarch64_rtx_costs): Likewise. |
| (aarch64_legitimate_constant_p): Likewise. |
| (aarch64_simd_valid_immediate): Likewise. |
| (aarch64_simd_make_constant): Likewise. |
| (aarch64_convert_mult_to_shift): Likewise. |
| (aarch64_expand_sve_vec_perm): Likewise. |
| (aarch64_vec_fpconst_pow_of_2): Likewise. |
| |
| 2021-08-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101938 |
| * range-op.cc (operator_abs::op1_range): Special case |
| -TYPE_MIN_VALUE for flag_wrapv. |
| |
| 2021-08-17 Kewen Lin <linkw@linux.ibm.com> |
| |
| * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Add the cost for |
| value extraction. |
| |
| 2021-08-17 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (OMP_SCOPE): New tree code. |
| * tree.h (OMP_SCOPE_BODY, OMP_SCOPE_CLAUSES): Define. |
| * tree-nested.c (convert_nonlocal_reference_stmt, |
| convert_local_reference_stmt, convert_gimple_call): Handle |
| GIMPLE_OMP_SCOPE. |
| * tree-pretty-print.c (dump_generic_node): Handle OMP_SCOPE. |
| * gimple.def (GIMPLE_OMP_SCOPE): New gimple code. |
| * gimple.c (gimple_build_omp_scope): New function. |
| (gimple_copy): Handle GIMPLE_OMP_SCOPE. |
| * gimple.h (gimple_build_omp_scope): Declare. |
| (gimple_has_substatements): Handle GIMPLE_OMP_SCOPE. |
| (gimple_omp_scope_clauses, gimple_omp_scope_clauses_ptr, |
| gimple_omp_scope_set_clauses): New inline functions. |
| (CASE_GIMPLE_OMP): Add GIMPLE_OMP_SCOPE. |
| * gimple-pretty-print.c (dump_gimple_omp_scope): New function. |
| (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCOPE. |
| * gimple-walk.c (walk_gimple_stmt): Likewise. |
| * gimple-low.c (lower_stmt): Likewise. |
| * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. |
| (gimplify_scan_omp_clauses): For task reductions, handle OMP_SCOPE |
| like ORT_WORKSHARE constructs. Adjust diagnostics for %<scope%> |
| allowing task reductions. Reject inscan reductions on scope. |
| (omp_find_stores_stmt): Handle GIMPLE_OMP_SCOPE. |
| (gimplify_omp_workshare, gimplify_expr): Handle OMP_SCOPE. |
| * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_SCOPE. |
| (estimate_num_insns): Likewise. |
| * omp-low.c (build_outer_var_ref): Look through GIMPLE_OMP_SCOPE |
| contexts if var isn't privatized there. |
| (check_omp_nesting_restrictions): Handle GIMPLE_OMP_SCOPE. |
| (scan_omp_1_stmt): Likewise. |
| (maybe_add_implicit_barrier_cancel): Look through outer |
| scope constructs. |
| (lower_omp_scope): New function. |
| (lower_omp_task_reductions): Handle OMP_SCOPE. |
| (lower_omp_1): Handle GIMPLE_OMP_SCOPE. |
| (diagnose_sb_1, diagnose_sb_2): Likewise. |
| * omp-expand.c (expand_omp_single): Support also GIMPLE_OMP_SCOPE. |
| (expand_omp): Handle GIMPLE_OMP_SCOPE. |
| (omp_make_gimple_edges): Likewise. |
| * omp-builtins.def (BUILT_IN_GOMP_SCOPE_START): New built-in. |
| |
| 2021-08-17 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101925 |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set |
| reverse on COMPONENT_REF and ARRAY_REF according to |
| what reverse_storage_order_for_component_p does. |
| (vn_reference_eq): Compare reversed on reference ops. |
| (reverse_storage_order_for_component_p): New overload. |
| (vn_reference_lookup_3): Check reverse_storage_order_for_component_p |
| on the reference looked up. |
| |
| 2021-08-17 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.c (shift_alg_si): Avoid loops for most SImode |
| shifts on the H8/S. |
| (h8300_option_override): Use loops on H8/S more often when optimizing |
| for size. |
| (get_shift_alg): Handle new "special" cases on H8/S. Simplify |
| accordingly. Handle various arithmetic right shifts with special |
| sequences that we couldn't handle before. |
| |
| 2021-08-16 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config.gcc (rl78-*-elf*): Do not include dbxelf.h. |
| |
| 2021-08-16 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define. |
| * config/sparc/sparc.c (sparc_gcov_type_size): New. |
| (TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined. |
| * coverage.c (get_gcov_type): Use targetm.gcov_type_size(). |
| * doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc". |
| * doc/tm.texi.in: Regenerate. |
| * target.def (gcov_type_size): New target hook. |
| * targhooks.c (default_gcov_type_size): New. |
| * targhooks.h (default_gcov_type_size): Declare. |
| * tree-profile.c (gimple_gen_edge_profiler): Use precision of |
| gcov_type_node. |
| (gimple_gen_time_profiler): Likewise. |
| |
| 2021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset. |
| |
| 2021-08-16 Tobias Burnus <tobias@codesourcery.com> |
| |
| PR middle-end/101931 |
| * omp-low.c (omp_runtime_api_call): Update for routines |
| added in the meanwhile. |
| |
| 2021-08-16 Martin Liska <mliska@suse.cz> |
| |
| PR tree-optimization/100393 |
| * tree-switch-conversion.c (group_cluster::dump): Use |
| get_comparison_count. |
| (jump_table_cluster::find_jump_tables): Pre-compute number of |
| comparisons and then decrement it. Cache also max_ratio. |
| (jump_table_cluster::can_be_handled): Change signature. |
| * tree-switch-conversion.h (get_comparison_count): New. |
| |
| 2021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * dwarf2out.c (add_data_member_location_attribute): Use GNAT |
| encodings only when -fgnat-encodings=all is specified. |
| (add_bound_info): Likewise. |
| (add_byte_size_attribute): Likewise. |
| (gen_member_die): Likewise. |
| |
| 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc |
| (execute_omp_oacc_neuter_broadcast): Plug 'par' memory leak. |
| |
| 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc |
| (execute_omp_oacc_neuter_broadcast): Clarify memory management for |
| 'prop_set'. |
| |
| 2021-08-16 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-oacc-neuter-broadcast.cc (field_map): Move variable into... |
| (execute_omp_oacc_neuter_broadcast): ... here. |
| (install_var_field, build_receiver_ref, build_sender_ref): Take |
| 'field_map_t *' parameter. Adjust all users. |
| (worker_single_copy, neuter_worker_single): Take a |
| 'record_field_map_t *' parameter. Adjust all users. |
| |
| 2021-08-16 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101930 |
| * config/i386/i386.md (ldexp<mode>3): Force operands[1] to |
| reg. |
| |
| 2021-08-16 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/101726 |
| * multiple_target.c (create_dispatcher_calls): Make default |
| function local only if it is a definition. |
| |
| 2021-08-16 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/100600 |
| * ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not |
| consider equal SSA_NAMEs when one is a param. |
| |
| 2021-08-16 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101846 |
| * config/i386/i386-expand.c (ix86_expand_vec_perm_vpermt2): |
| Support vpermi2b for V32QI/V16QImode. |
| (ix86_extract_perm_from_pool_constant): New function. |
| (ix86_expand_vec_one_operand_perm_avx512): Support |
| vpermw/vpermb under TARGET_AVX512BW/TARGET_AVX512VBMI. |
| (expand_vec_perm_1): Adjust comments for upper. |
| * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): |
| New declare. |
| * config/i386/predicates.md (permvar_truncate_operand): New predicate. |
| (pshufb_truncv4siv4hi_operand): Ditto. |
| (pshufb_truncv8hiv8qi_operand): Ditto. |
| * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1): |
| New pre_reload define_insn_and_split. |
| (*avx512f_permvar_truncv8siv8hi_1): Ditto. |
| (*avx512f_vpermvar_truncv8div8si_1): Ditto. |
| (*avx512f_permvar_truncv32hiv32qi_1): Ditto. |
| (*avx512f_permvar_truncv16hiv16qi_1): Ditto. |
| (*avx512f_permvar_truncv4div4si_1): Ditto. |
| (*avx512f_pshufb_truncv8hiv8qi_1): Ditto. |
| (*avx512f_pshufb_truncv4siv4hi_1): Ditto. |
| (*avx512f_pshufd_truncv2div2si_1): Ditto. |
| |
| 2021-08-16 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config/riscv/multilib-generator: Support code model option for |
| multi-lib. |
| * doc/install.texi: Add document of new option for |
| --with-multilib-generator. |
| |
| 2021-08-15 Clément Chigot <clement.chigot@atos.net> |
| |
| * config/rs6000/rs6000.c (xcoff_tls_exec_model_detected): New. |
| (rs6000_legitimize_tls_address_aix): Use it. |
| (rs6000_xcoff_file_end): Add ".ref __tls_get_addr" when |
| xcoff_tls_exec_model_detected is true. |
| |
| 2021-08-15 Jeff Law <jlaw@localhost.localdomain> |
| |
| * config/h8300/h8300.c (shift_alg_si): Retune H8/300H shifts |
| to allow a bit more code growth, saving many dozens of cycles. |
| (h8300_option_override): Adjus shift_alg_si if optimizing for |
| code size. |
| (get_shift_alg): Use special + inline shifts for residuals |
| in more cases. |
| |
| 2021-08-14 Stafford Horne <shorne@gmail.com> |
| |
| PR target/99783 |
| * config/or1k/or1k-opts.h: New file. |
| * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): |
| Support generating gotha relocations if -mcmodel=large is |
| specified. |
| * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): |
| New macros. |
| * config/or1k/or1k.opt (mcmodel=): New option. |
| * doc/invoke.texi (OpenRISC Options): Document mcmodel. |
| |
| 2021-08-14 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101791 |
| * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Use new argument |
| to valid_new_delete_pair_p. |
| * tree.c (valid_new_delete_pair_p): Add argument. |
| * tree.h (valid_new_delete_pair_p): Same. |
| |
| 2021-08-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/101896 |
| * config/i386/i386-expand.c (expand_vec_perm_broadcast_1) |
| <case E_V64QImode>: For this mode assert |
| !TARGET_AVX512BW || d->perm[0] rather than !TARGET_AVX2 || d->perm[0]. |
| |
| 2021-08-13 Michael Meissner <meissner@linux.ibm.com> |
| |
| PR target/99921 |
| * config/rs6000/altivec.md (xxeval): Use register_predicate |
| instead of altivec_register_predicate. |
| |
| 2021-08-13 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101734 |
| * tree-ssa-uninit.c (maybe_warn_read_write_only): New function. |
| (maybe_warn_operand): Call it. |
| |
| 2021-08-13 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/101354 |
| * attribs.c (decl_attributes): Make naked functions "noipa" |
| functions. |
| |
| 2021-08-13 Martin Liska <mliska@suse.cz> |
| |
| PR ipa/101261 |
| * symtab.c (symtab_node::noninterposable_alias): Do not create |
| local aliases for target_clone functions as the clonning pass |
| rejects aliases. |
| |
| 2021-08-13 Martin Liska <mliska@suse.cz> |
| |
| * opts.c (LIVE_PATCHING_OPTION): Define. |
| (control_options_for_live_patching): Use it in error messages. |
| |
| 2021-08-13 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (dump_eaf_flags): Dump EAF_NOREAD. |
| (implicit_const_eaf_flags, implicit_pure_eaf_flags, |
| ignore_stores_eaf_flags): New constants. |
| (remove_useless_eaf_flags): New function. |
| (eaf_flags_useful_p): Use it. |
| (deref_flags): Add EAF_NOT_RETURNED if flag is unused; |
| handle EAF_NOREAD. |
| (modref_lattice::init): Add EAF_NOREAD. |
| (modref_lattice::add_escape_point): Do not reacord escape point if |
| result is unused. |
| (modref_lattice::merge): EAF_NOESCAPE implies EAF_NODIRECTESCAPE; |
| use remove_useless_eaf_flags. |
| (modref_lattice::merge_deref): Use ignore_stores_eaf_flags. |
| (modref_lattice::merge_direct_load): Add EAF_NOREAD |
| (analyze_ssa_name_flags): Fix handling EAF_NOT_RETURNED |
| (analyze_parms): Use remove_useless_eaf_flags. |
| (ipa_merge_modref_summary_after_inlining): Use ignore_stores_eaf_flags. |
| (modref_merge_call_site_flags): Add caller and ecf_flags parameter; |
| use remove_useless_eaf_flags. |
| (modref_propagate_flags_in_scc): Update. |
| * ipa-modref.h: Turn eaf_flags_t back to char. |
| * tree-core.h (EAF_NOT_RETURNED): Fix. |
| (EAF_NOREAD): New constant |
| * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1): Check for |
| EAF_NOREAD. |
| * tree-ssa-structalias.c (handle_rhs_call): Handle new flags. |
| (handle_pure_call): Likewise. |
| |
| 2021-08-12 Jakub Jelinek <jakub@redhat.com> |
| |
| * tree.def (OMP_MASKED): New tree code. |
| * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_FILTER. |
| * tree.h (OMP_MASKED_BODY, OMP_MASKED_CLAUSES, OMP_MASKED_COMBINED, |
| OMP_CLAUSE_FILTER_EXPR): Define. |
| * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FILTER entry. |
| (omp_clause_code_name): Likewise. |
| (walk_tree_1): Handle OMP_CLAUSE_FILTER. |
| * tree-nested.c (convert_nonlocal_omp_clauses, |
| convert_local_omp_clauses): Handle OMP_CLAUSE_FILTER. |
| (convert_nonlocal_reference_stmt, convert_local_reference_stmt, |
| convert_gimple_call): Handle GIMPLE_OMP_MASTER. |
| * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FILTER. |
| (dump_generic_node): Handle OMP_MASTER. |
| * gimple.def (GIMPLE_OMP_MASKED): New gimple code. |
| * gimple.c (gimple_build_omp_masked): New function. |
| (gimple_copy): Handle GIMPLE_OMP_MASKED. |
| * gimple.h (gimple_build_omp_masked): Declare. |
| (gimple_has_substatements): Handle GIMPLE_OMP_MASKED. |
| (gimple_omp_masked_clauses, gimple_omp_masked_clauses_ptr, |
| gimple_omp_masked_set_clauses): New inline functions. |
| (CASE_GIMPLE_OMP): Add GIMPLE_OMP_MASKED. |
| * gimple-pretty-print.c (dump_gimple_omp_masked): New function. |
| (pp_gimple_stmt_1): Handle GIMPLE_OMP_MASKED. |
| * gimple-walk.c (walk_gimple_stmt): Likewise. |
| * gimple-low.c (lower_stmt): Likewise. |
| * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. |
| (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_FILTER. For clauses |
| that take one expression rather than decl or constant, force |
| gimplification of that into a SSA_NAME or temporary unless min |
| invariant. |
| (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FILTER. |
| (gimplify_expr): Handle OMP_MASKED. |
| * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_MASKED. |
| (estimate_num_insns): Likewise. |
| * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FILTER. |
| (check_omp_nesting_restrictions): Handle GIMPLE_OMP_MASKED. Adjust |
| diagnostics for existence of masked construct. |
| (scan_omp_1_stmt, lower_omp_master, lower_omp_1, diagnose_sb_1, |
| diagnose_sb_2): Handle GIMPLE_OMP_MASKED. |
| * omp-expand.c (expand_omp_synch, expand_omp, omp_make_gimple_edges): |
| Likewise. |
| |
| 2021-08-12 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/98309 |
| * config/i386/i386.md (avx512f_scalef<mode>2): New insn pattern. |
| (ldexp<mode>3): Use avx512f_scalef<mode>2. |
| (UNSPEC_SCALEF): Move from ... |
| * config/i386/sse.md (UNSPEC_SCALEF): ... here. |
| |
| 2021-08-12 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-split.c (consider_split): Fix condition testing void functions. |
| |
| 2021-08-12 Aldy Hernandez <aldyh@redhat.com> |
| |
| * doc/invoke.texi: Remove docs for threader-mode param. |
| * flag-types.h (enum threader_mode): Remove. |
| * params.opt: Remove threader-mode param. |
| * tree-ssa-threadbackward.c (class back_threader): Remove |
| path_is_unreachable_p. |
| Make find_paths private. |
| Add maybe_thread and thread_through_all_blocks. |
| Remove reference marker for m_registry. |
| Remove reference marker for m_profit. |
| (back_threader::back_threader): Adjust for registry and profit not |
| being references. |
| (dump_path): Move down. |
| (debug): Move down. |
| (class thread_jumps): Remove. |
| (class back_threader_registry): Remove m_all_paths. |
| Remove destructor. |
| (thread_jumps::thread_through_all_blocks): Move to back_threader |
| class. |
| (fsm_find_thread_path): Remove |
| (back_threader::maybe_thread): New. |
| (back_threader::thread_through_all_blocks): Move from |
| thread_jumps. |
| (back_threader_registry::back_threader_registry): Remove |
| m_all_paths. |
| (back_threader_registry::~back_threader_registry): Remove. |
| (thread_jumps::find_taken_edge): Remove. |
| (thread_jumps::check_subpath_and_update_thread_path): Remove. |
| (thread_jumps::maybe_register_path): Remove. |
| (thread_jumps::handle_phi): Remove. |
| (handle_assignment_p): Remove. |
| (thread_jumps::handle_assignment): Remove. |
| (thread_jumps::fsm_find_control_statement_thread_paths): Remove. |
| (thread_jumps::find_jump_threads_backwards): Remove. |
| (thread_jumps::find_jump_threads_backwards_with_ranger): Remove. |
| (try_thread_blocks): Rename find_jump_threads_backwards to |
| maybe_thread. |
| (pass_early_thread_jumps::execute): Same. |
| |
| 2021-08-12 Tobias Burnus <tobias@codesourcery.com> |
| |
| * tree-core.h (omp_clause_proc_bind_kind): Add |
| OMP_CLAUSE_PROC_BIND_PRIMARY. |
| * tree-pretty-print.c (dump_omp_clause): Add TODO comment to |
| change 'master' to 'primary' in proc_bind for OpenMP 5.1. |
| |
| 2021-08-12 Claudiu Zissulescu <claziss@synopsys.com> |
| |
| * common/config/arc/arc-common.c (arc_option_init_struct): Remove |
| fno-common reference. |
| * config/arc/arc.c (arc_override_options): Remove overriding of |
| flag_no_common. |
| |
| 2021-08-12 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/101860 |
| * config/i386/i386-expand.c (ix86_expand_vec_one_operand_perm_avx512): |
| If d->testing_p, return true after performing checks instead of |
| actually expanding the insn. |
| (expand_vec_perm_broadcast_1): Handle V32HImode - assert |
| !TARGET_AVX512BW and return false. |
| |
| 2021-08-12 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * configure.ac (PE linker --disable-dynamicbase support): New check. |
| * configure: Regenerate. |
| * config.in: Likewise. |
| * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define. |
| (LINK_SPEC): Use it. |
| * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise. |
| (LINK_SPEC): Likewise. |
| |
| 2021-08-12 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101846 |
| * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_2): New |
| post_reload define_insn_and_split. |
| (*avx512bw_zero_extendv32qiv32hi2_2): Ditto. |
| (*sse4_1_zero_extendv8qiv8hi2_4): Ditto. |
| (*avx512f_zero_extendv16hiv16si2_2): Ditto. |
| (*avx2_zero_extendv8hiv8si2_2): Ditto. |
| (*sse4_1_zero_extendv4hiv4si2_4): Ditto. |
| (*avx512f_zero_extendv8siv8di2_2): Ditto. |
| (*avx2_zero_extendv4siv4di2_2): Ditto. |
| (*sse4_1_zero_extendv2siv2di2_4): Ditto. |
| (VI248_256, VI248_512, VI148_512, VI148_256, VI148_128): New |
| mode iterator. |
| |
| 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add always, power5, and |
| power6 stanzas. |
| |
| 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Add vsx stanza. |
| |
| 2021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza. |
| * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move |
| initialization of pcvoid_type_node here... |
| (altivec_init_builtins): ...from here. |
| * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add |
| RS6000_BTI_const_ptr_void. |
| (pcvoid_type_node): New macro. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR target/101877 |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Do not decompose |
| hard-register accesses. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-operands.c (operands_scanner::get_expr_operands): |
| Do not look at COMPONENT_REF FIELD_DECLs TREE_THIS_VOLATILE |
| to determine has_volatile_ops. |
| |
| 2021-08-11 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| * cfgexpand.c (expand_used_vars): Reuse attribs local variable. |
| |
| 2021-08-11 Jan Hubicka <hubicka@ucw.cz> |
| Alexandre Oliva <oliva@adacore.com> |
| |
| * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags |
| dumping. |
| (modref_lattice::merge_deref): Fix handling of indirect scape points. |
| (update_escape_summary_1): Likewise. |
| (update_escape_summary): Likewise. |
| (ipa_merge_modref_summary_after_inlining): Likewise. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/101858 |
| * fold-const.c (fold_binary_loc): Guard simplification |
| of X < (cast) (1 << Y) to integer types. |
| |
| 2021-08-11 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101861 |
| * tree-vect-stmts.c (vectorizable_load): Fix error in |
| previous change with regard to gather vectorization. |
| |
| 2021-08-11 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/66791 |
| * config/arm/arm_neon.h (vdup_n_s8): Replace call to builtin |
| with constructor. |
| (vdup_n_s16): Likewise. |
| (vdup_n_s32): Likewise. |
| (vdup_n_s64): Likewise. |
| (vdup_n_u8): Likewise. |
| (vdup_n_u16): Likewise. |
| (vdup_n_u32): Likewise. |
| (vdup_n_u64): Likewise. |
| (vdup_n_p8): Likewise. |
| (vdup_n_p16): Likewise. |
| (vdup_n_p64): Likewise. |
| (vdup_n_f16): Likewise. |
| (vdup_n_f32): Likewise. |
| (vdupq_n_s8): Likewise. |
| (vdupq_n_s16): Likewise. |
| (vdupq_n_s32): Likewise. |
| (vdupq_n_s64): Likewise. |
| (vdupq_n_u8): Likewise. |
| (vdupq_n_u16): Likewise. |
| (vdupq_n_u32): Likewise. |
| (vdupq_n_u64): Likewise. |
| (vdupq_n_p8): Likewise. |
| (vdupq_n_p16): Likewise. |
| (vdupq_n_p64): Likewise. |
| (vdupq_n_f16): Likewise. |
| (vdupq_n_f32): Likewise. |
| (vmov_n_s8): Replace call to builtin with call to corresponding |
| vdup_n intrinsic. |
| (vmov_n_s16): Likewise. |
| (vmov_n_s32): Likewise. |
| (vmov_n_s64): Likewise. |
| (vmov_n_u8): Likewise. |
| (vmov_n_u16): Likewise. |
| (vmov_n_u32): Likewise. |
| (vmov_n_u64): Likewise. |
| (vmov_n_p8): Likewise. |
| (vmov_n_p16): Likewise. |
| (vmov_n_f16): Likewise. |
| (vmov_n_f32): Likewise. |
| (vmovq_n_s8): Likewise. |
| (vmovq_n_s16): Likewise. |
| (vmovq_n_s32): Likewise. |
| (vmovq_n_s64): Likewise. |
| (vmovq_n_u8): Likewise. |
| (vmovq_n_u16): Likewise. |
| (vmovq_n_u32): Likewise. |
| (vmovq_n_u64): Likewise. |
| (vmovq_n_p8): Likewise. |
| (vmovq_n_p16): Likewise. |
| (vmovq_n_f16): Likewise. |
| (vmovq_n_f32): Likewise. |
| * config/arm/arm_neon_builtins.def: Remove entries for vdup_n. |
| |
| 2021-08-11 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/98309 |
| * config/i386/i386.md (ldexp<mode>3): Extend to vscalefs[sd] |
| when TARGET_AVX512F and TARGET_SSE_MATH. |
| |
| 2021-08-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80355 |
| * config/i386/i386-expand.c (expand_vec_perm_even_odd): Return false |
| for V32HImode if !TARGET_AVX512BW. |
| (ix86_vectorize_vec_perm_const) <case E_V32HImode, case E_V64QImode>: |
| If !TARGET_AVX512BW and TARGET_AVX512F and d.testing_p, don't fail |
| early, but actually check the permutation. |
| |
| 2021-08-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101809 |
| * tree-vect-stmts.c (get_load_store_type): Allow emulated |
| gathers with offset vector nunits being a constant multiple |
| of the data vector nunits. |
| (vect_get_gather_scatter_ops): Use the appropriate nunits |
| for the offset vector defs. |
| (vectorizable_store): Adjust call to |
| vect_get_gather_scatter_ops. |
| (vectorizable_load): Likewise. Handle the case of less |
| offset vectors than data vectors. |
| |
| 2021-08-10 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/80355 |
| * config/i386/sse.md (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1, |
| *avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): New define_insn |
| patterns. |
| |
| 2021-08-10 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101801 |
| PR tree-optimization/101819 |
| * tree-vectorizer.h (vect_emulated_vector_p): Declare. |
| * tree-vect-loop.c (vect_emulated_vector_p): New function. |
| (vectorizable_reduction): Re-instantiate a check for emulated |
| operations. |
| * tree-vect-stmts.c (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. Cost emulated vector |
| operations according to the scalar sequence synthesized by |
| vector lowering. |
| |
| 2021-08-10 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/101824 |
| * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as |
| volatile in case the variable was. |
| |
| 2021-08-10 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101804 |
| * config/i386/constraints.md (BC): Document for integer SSE |
| constant all bits set operand. |
| (BF): New constraint for const floating-point all bits set |
| vectors. |
| * config/i386/i386.c (standard_sse_constant_p): Likewise. |
| (standard_sse_constant_opcode): Likewise. |
| * config/i386/sse.md (sseconstm1): New mode attribute. |
| (mov<mode>_internal): Replace BC with <sseconstm1>. |
| |
| 2021-08-10 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (cond_<insn><mode>): New expander. |
| (VI248_AVX512VLBW): New mode iterator. |
| * config/i386/predicates.md |
| (nonimmediate_or_const_vec_dup_operand): New predicate. |
| |
| 2021-08-09 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101741 |
| * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Check |
| type of parameter for toupper/tolower. |
| |
| 2021-08-09 Martin Jambor <mjambor@suse.cz> |
| |
| PR testsuite/101654 |
| * ipa-prop.c (propagate_controlled_uses): Removed a spurious space. |
| |
| 2021-08-09 Pat Haugen <pthaugen@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (is_load_insn1): Verify destination is a |
| register. |
| (is_store_insn1): Verify source is a register. |
| |
| 2021-08-09 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/101812 |
| * config/i386/mmx.md (<any_logic:code>v2sf3): |
| Rename from *mmx_<any_logic:code>v2sf3 |
| |
| 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/nvptx/nvptx.c: Cross-reference parts adapted in |
| 'gcc/omp-oacc-neuter-broadcast.cc'. |
| * omp-low.c: Likewise. |
| * omp-oacc-neuter-broadcast.cc: Cross-reference parts adapted from |
| the above files. |
| |
| 2021-08-09 Julian Brown <julian@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Thomas Schwinge <thomas@codesourcery.com> |
| |
| * config/gcn/gcn.c (gcn_init_builtins): Override decls for |
| BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START, |
| BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER. |
| (gcn_goacc_validate_dims): Turn on worker partitioning unconditionally. |
| (gcn_fork_join): Update comment. |
| * config/gcn/gcn.opt (flag_worker_partitioning): Remove. |
| (macc_experimental_workers): Remove unused option. |
| |
| 2021-08-09 Julian Brown <julian@codesourcery.com> |
| Nathan Sidwell <nathan@codesourcery.com> (via 'gcc/config/nvptx/nvptx.c' master) |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| Thomas Schwinge <thomas@codesourcery.com> |
| |
| * Makefile.in (OBJS): Add omp-oacc-neuter-broadcast.o. |
| * doc/tm.texi.in (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): |
| Add documentation hook. |
| * doc/tm.texi: Regenerate. |
| * omp-oacc-neuter-broadcast.cc: New file. |
| * omp-builtins.def (BUILT_IN_GOACC_BARRIER) |
| (BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START) |
| (BUILT_IN_GOACC_SINGLE_COPY_END): New builtins. |
| * passes.def (pass_omp_oacc_neuter_broadcast): Add pass. |
| * target.def (goacc.create_worker_broadcast_record): Add target |
| hook. |
| * tree-pass.h (make_pass_omp_oacc_neuter_broadcast): Add |
| prototype. |
| * config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record): |
| Rename prototype to... |
| (gcn_goacc_create_worker_broadcast_record): ... this. |
| * config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename |
| function to... |
| (gcn_goacc_create_worker_broadcast_record): ... this. |
| * config/gcn/gcn.c (TARGET_GOACC_ADJUST_PROPAGATION_RECORD): |
| Rename to... |
| (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): ... this. |
| |
| 2021-08-09 Tejas Belagod <tejas.belagod@arm.com> |
| |
| PR target/101609 |
| * config/aarch64/aarch64-simd.md (vlshr<mode>3, vashr<mode>3): Use |
| the right iterator. |
| |
| 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * Makefile.in (GTFILES): Remove '$(srcdir)/omp-offload.c'. |
| |
| 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * builtins.def (DEF_GOACC_BUILTIN, DEF_GOMP_BUILTIN): Don't |
| consider '-foffload-abi'. |
| * common.opt (-foffload-abi): Remove 'Var', 'Init'. |
| * opts.c (common_handle_option) <-foffload-abi> [ACCEL_COMPILER]: |
| Ignore. |
| |
| 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * optc-gen.awk: Sanity check that 'Init' doesn't appear without |
| 'Var'. |
| |
| 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE): Remove. |
| |
| 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * doc/gty.texi (Files): Update. |
| |
| 2021-08-09 Thomas Schwinge <thomas@codesourcery.com> |
| |
| * doc/gty.texi (Files): Fix GTY header file example. |
| |
| 2021-08-09 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-ccp.c (value_mask_to_min_max): Helper function to |
| determine the upper and lower bounds from a mask-value pair. |
| (bit_value_unop) [ABS_EXPR, ABSU_EXPR]: Add support for |
| absolute value and unsigned absolute value expressions. |
| (bit_value_binop): Initialize *VAL's precision. |
| [LT_EXPR, LE_EXPR]: Use value_mask_to_min_max to determine |
| upper and lower bounds of operands. Add LE_EXPR/GE_EXPR |
| support when the operands are unknown but potentially equal. |
| [MIN_EXPR, MAX_EXPR]: Support minimum/maximum expressions. |
| |
| 2021-08-09 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * config/aarch64/aarch64.md |
| (*extend<SHORT:mode><GPI:mode>2_aarch64): Use %<GPI:w>0. |
| |
| 2021-08-08 Sergei Trofimovich <siarheit@google.com> |
| |
| * lra-constraints.c: Fix s/otput/output/ typo. |
| |
| 2021-08-06 Martin Sebor <msebor@redhat.com> |
| |
| * builtins.c (expand_builtin_memchr): Move to gimple-ssa-warn-access.cc. |
| (expand_builtin_strcat): Same. |
| (expand_builtin_stpncpy): Same. |
| (expand_builtin_strncat): Same. |
| (check_read_access): Same. |
| (check_memop_access): Same. |
| (expand_builtin_strlen): Move checks to gimple-ssa-warn-access.cc. |
| (expand_builtin_strnlen): Same. |
| (expand_builtin_memcpy): Same. |
| (expand_builtin_memmove): Same. |
| (expand_builtin_mempcpy): Same. |
| (expand_builtin_strcpy): Same. |
| (expand_builtin_strcpy_args): Same. |
| (expand_builtin_stpcpy_1): Same. |
| (expand_builtin_strncpy): Same. |
| (expand_builtin_memset): Same. |
| (expand_builtin_bzero): Same. |
| (expand_builtin_strcmp): Same. |
| (expand_builtin_strncmp): Same. |
| (expand_builtin): Remove handlers. |
| (fold_builtin_strlen): Add a comment. |
| * builtins.h (check_access): Move to gimple-ssa-warn-access.cc. |
| * calls.c (maybe_warn_nonstring_arg): Same. |
| * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Add warning option. |
| * gimple-fold.c (gimple_fold_builtin_strcpy): Pass argument to callee. |
| (gimple_fold_builtin_stpcpy): Same. |
| * gimple-ssa-warn-access.cc (has_location): New function. |
| (get_location): Same. |
| (get_callee_fndecl): Same. |
| (call_nargs): Same. |
| (call_arg): Same. |
| (warn_string_no_nul): Define. |
| (unterminated_array): Same. |
| (check_nul_terminated_array): Same. |
| (maybe_warn_nonstring_arg): Same. |
| (maybe_warn_for_bound): Same. |
| (warn_for_access): Same. |
| (check_access): Same. |
| (check_memop_access): Same. |
| (check_read_access): Same. |
| (warn_dealloc_offset): Use helper functions. |
| (maybe_emit_free_warning): Same. |
| (class pass_waccess): Add members. |
| (check_strcat): New function. |
| (check_strncat): New function. |
| (check_stxcpy): New function. |
| (check_stxncpy): New function. |
| (check_strncmp): New function. |
| (pass_waccess::check_builtin): New function. |
| (pass_waccess::check): Call it. |
| * gimple-ssa-warn-access.h (warn_string_no_nul): Move here from |
| builtins.h. |
| (maybe_warn_for_bound): Same. |
| (check_access): Same. |
| (check_memop_access): Same. |
| (check_read_access): Same. |
| * pointer-query.h (struct access_data): Define a ctor overload. |
| |
| 2021-08-06 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101801 |
| * tree-vectorizer.h (vect_worthwhile_without_simd_p): Rename... |
| (vect_can_vectorize_without_simd_p): ... to this. |
| * tree-vect-loop.c (vect_worthwhile_without_simd_p): Rename... |
| (vect_can_vectorize_without_simd_p): ... to this and fold |
| in vect_min_worthwhile_factor. |
| (vect_min_worthwhile_factor): Remove. |
| (vectorizable_reduction): Adjust and remove the cost part. |
| * tree-vect-stmts.c (vectorizable_shift): Likewise. |
| (vectorizable_operation): Likewise. |
| |
| 2021-08-06 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/101797 |
| * config/i386/i386.md (cmove reg-to-reg move elimination peephole2s): |
| Add general_gr_operand predicate to operand 3. |
| |
| 2021-08-06 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): Use |
| CFN_BUILT_IN_CLRSB* instead of BUILT_IN_CLRSB* for consistency. |
| |
| 2021-08-06 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-sve-builtins.cc (register_svpattern, |
| register_svprfop): Pass vec<> by pointer. |
| * langhooks-def.h (lhd_simulate_enum_decl): Likewise. |
| * langhooks.c (lhd_simulate_enum_decl): Likewise. |
| * langhooks.h (struct lang_hooks_for_types): Likewise. |
| |
| 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vst1_bf16_x2): Use |
| __builtin_memcpy instead of constructing an additional |
| __builtin_aarch64_simd_oi one vector at a time. |
| (vst1q_bf16_x2): Likewise. |
| (vst1_bf16_x3): Use __builtin_memcpy instead of constructing |
| an additional __builtin_aarch64_simd_ci one vector at a time. |
| (vst1q_bf16_x3): Likewise. |
| (vst1_bf16_x4): Use __builtin_memcpy instead of a union. |
| (vst1q_bf16_x4): Likewise. |
| (vst2_bf16): Use __builtin_memcpy instead of constructing an |
| additional __builtin_aarch64_simd_oi one vector at a time. |
| (vst2q_bf16): Likewise. |
| (vst3_bf16): Use __builtin_memcpy instead of constructing an |
| additional __builtin_aarch64_simd_ci mode one vector at a |
| time. |
| (vst3q_bf16): Likewise. |
| (vst4_bf16): Use __builtin_memcpy instead of constructing an |
| additional __builtin_aarch64_simd_xi one vector at a time. |
| (vst4q_bf16): Likewise. |
| |
| 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Delete. |
| (__ST2Q_LANE_FUNC): Delete. |
| (vst2_lane_f16): Use __builtin_memcpy to copy vector |
| structure instead of constructing __builtin_aarch64_simd_oi |
| one vector at a time. |
| (vst2_lane_f32): Likewise. |
| (vst2_lane_f64): Likewise. |
| (vst2_lane_p8): Likewise. |
| (vst2_lane_p16): Likewise. |
| (vst2_lane_p64): Likewise. |
| (vst2_lane_s8): Likewise. |
| (vst2_lane_s16): Likewise. |
| (vst2_lane_s32): Likewise. |
| (vst2_lane_s64): Likewise. |
| (vst2_lane_u8): Likewise. |
| (vst2_lane_u16): Likewise. |
| (vst2_lane_u32): Likewise. |
| (vst2_lane_u64): Likewise. |
| (vst2_lane_bf16): Likewise. |
| (vst2q_lane_f16): Use __builtin_memcpy to copy vector |
| structure instead of using a union. |
| (vst2q_lane_f32): Likewise. |
| (vst2q_lane_f64): Likewise. |
| (vst2q_lane_p8): Likewise. |
| (vst2q_lane_p16): Likewise. |
| (vst2q_lane_p64): Likewise. |
| (vst2q_lane_s8): Likewise. |
| (vst2q_lane_s16): Likewise. |
| (vst2q_lane_s32): Likewise. |
| (vst2q_lane_s64): Likewise. |
| (vst2q_lane_u8): Likewise. |
| (vst2q_lane_u16): Likewise. |
| (vst2q_lane_u32): Likewise. |
| (vst2q_lane_u64): Likewise. |
| (vst2q_lane_bf16): Likewise. |
| |
| 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__ST3_LANE_FUNC): Delete. |
| (__ST3Q_LANE_FUNC): Delete. |
| (vst3_lane_f16): Use __builtin_memcpy to copy vector |
| structure instead of constructing __builtin_aarch64_simd_ci |
| one vector at a time. |
| (vst3_lane_f32): Likewise. |
| (vst3_lane_f64): Likewise. |
| (vst3_lane_p8): Likewise. |
| (vst3_lane_p16): Likewise. |
| (vst3_lane_p64): Likewise. |
| (vst3_lane_s8): Likewise. |
| (vst3_lane_s16): Likewise. |
| (vst3_lane_s32): Likewise. |
| (vst3_lane_s64): Likewise. |
| (vst3_lane_u8): Likewise. |
| (vst3_lane_u16): Likewise. |
| (vst3_lane_u32): Likewise. |
| (vst3_lane_u64): Likewise. |
| (vst3_lane_bf16): Likewise. |
| (vst3q_lane_f16): Use __builtin_memcpy to copy vector |
| structure instead of using a union. |
| (vst3q_lane_f32): Likewise. |
| (vst3q_lane_f64): Likewise. |
| (vst3q_lane_p8): Likewise. |
| (vst3q_lane_p16): Likewise. |
| (vst3q_lane_p64): Likewise. |
| (vst3q_lane_s8): Likewise. |
| (vst3q_lane_s16): Likewise. |
| (vst3q_lane_s32): Likewise. |
| (vst3q_lane_s64): Likewise. |
| (vst3q_lane_u8): Likewise. |
| (vst3q_lane_u16): Likewise. |
| (vst3q_lane_u32): Likewise. |
| (vst3q_lane_u64): Likewise. |
| (vst3q_lane_bf16): Likewise. |
| |
| 2021-08-06 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (__ST4_LANE_FUNC): Delete. |
| (__ST4Q_LANE_FUNC): Delete. |
| (vst4_lane_f16): Use __builtin_memcpy to copy vector |
| structure instead of constructing __builtin_aarch64_simd_xi |
| one vector at a time. |
| (vst4_lane_f32): Likewise. |
| (vst4_lane_f64): Likewise. |
| (vst4_lane_p8): Likewise. |
| (vst4_lane_p16): Likewise. |
| (vst4_lane_p64): Likewise. |
| (vst4_lane_s8): Likewise. |
| (vst4_lane_s16): Likewise. |
| (vst4_lane_s32): Likewise. |
| (vst4_lane_s64): Likewise. |
| (vst4_lane_u8): Likewise. |
| (vst4_lane_u16): Likewise. |
| (vst4_lane_u32): Likewise. |
| (vst4_lane_u64): Likewise. |
| (vst4_lane_bf16): Likewise. |
| (vst4q_lane_f16): Use __builtin_memcpy to copy vector |
| structure instead of using a union. |
| (vst4q_lane_f32): Likewise. |
| (vst4q_lane_f64): Likewise. |
| (vst4q_lane_p8): Likewise. |
| (vst4q_lane_p16): Likewise. |
| (vst4q_lane_p64): Likewise. |
| (vst4q_lane_s8): Likewise. |
| (vst4q_lane_s16): Likewise. |
| (vst4q_lane_s32): Likewise. |
| (vst4q_lane_s64): Likewise. |
| (vst4q_lane_u8): Likewise. |
| (vst4q_lane_u16): Likewise. |
| (vst4q_lane_u32): Likewise. |
| (vst4q_lane_u64): Likewise. |
| (vst4q_lane_bf16): Likewise. |
| |
| 2021-08-06 Martin Liska <mliska@suse.cz> |
| |
| * config/rs6000/rs6000.c (rs6000_option_override_internal): When |
| a target option is restored, it can have |
| rs6000_long_double_type_size set to FLOAT_PRECISION_TFmode |
| and error should not be emitted. |
| |
| 2021-08-06 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * gcov-io.h (gcov_write): Declare. |
| * gcov-io.c (gcov_write): New. |
| (gcov_write_counter): Remove. |
| (gcov_write_tag_length): Likewise. |
| (gcov_write_summary): Replace gcov_write_tag_length() with calls to |
| gcov_write_unsigned(). |
| * doc/invoke.texi (fprofile-info-section): Mention |
| __gcov_info_to_gdca(). |
| |
| 2021-08-06 Martin Sebor <msebor@redhat.com> |
| |
| * dominance.c (prune_bbs_to_update_dominators): Adjust by-value vec |
| arguments to by-reference. |
| (iterate_fix_dominators): Same. |
| * dominance.h (iterate_fix_dominators): Same. |
| * ipa-prop.h: Call auto_vec::to_vec_legacy. |
| * tree-data-ref.c (dump_data_dependence_relation): Adjust by-value vec |
| arguments to by-reference. |
| (debug_data_dependence_relation): Same. |
| (dump_data_dependence_relations): Same. |
| * tree-data-ref.h (debug_data_dependence_relation): Same. |
| (dump_data_dependence_relations): Same. |
| * tree-predcom.c (dump_chains): Same. |
| (initialize_root_vars_lm): Same. |
| (determine_unroll_factor): Same. |
| (replace_phis_by_defined_names): Same. |
| (insert_init_seqs): Same. |
| (pcom_worker::tree_predictive_commoning_loop): Call |
| auto_vec::to_vec_legacy. |
| * tree-ssa-pre.c (insert_into_preds_of_block): Adjust by-value vec |
| arguments to by-reference. |
| * tree-ssa-threadbackward.c (populate_worklist): Same. |
| (back_threader::resolve_def): Same. |
| * tree-vect-data-refs.c (vect_check_nonzero_value): Same. |
| (vect_enhance_data_refs_alignment): Same. |
| (vect_check_lower_bound): Same. |
| (vect_prune_runtime_alias_test_list): Same. |
| (vect_permute_store_chain): Same. |
| * tree-vect-slp-patterns.c (vect_normalize_conj_loc): Same. |
| * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Same. |
| * tree-vectorizer.h (vect_permute_store_chain): Same. |
| * vec.c (test_init): New function. |
| (vec_c_tests): Call new function. |
| * vec.h (vec): Declare ctors, dtor, and assignment. |
| (auto_vec::vec_to_legacy): New function. |
| (vec::copy): Adjust initialization. |
| |
| 2021-08-05 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/99744 |
| * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if |
| callee only uses GPRs. |
| * config/i386/ia32intrin.h: Revert commit 5463cee2770. |
| * config/i386/serializeintrin.h: Revert commit 71958f740f1. |
| * config/i386/x86gprintrin.h: Add |
| #pragma GCC target("general-regs-only") and #pragma GCC pop_options |
| to disable non-GPR ISAs. |
| |
| 2021-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| PR middle-end/101787 |
| * doc/md.texi (cond_ashl, cond_ashr, cond_lshr): Document. |
| |
| 2021-08-05 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (vect_is_store_elt_extraction, vect_is_reduction) |
| (vect_reduc_type, vect_embedded_comparison_type, vect_comparison_type) |
| (vect_is_extending_load, vect_is_integer_truncation): New functions, |
| moved from aarch64.c but given different names. |
| * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction) |
| (aarch64_is_reduction, aarch64_reduc_type) |
| (aarch64_embedded_comparison_type, aarch64_comparison_type) |
| (aarch64_extending_load_p, aarch64_integer_truncation_p): Delete |
| in favor of the above. Update callers accordingly. |
| |
| 2021-08-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| PR target/101723 |
| * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress |
| writing .cpu directive in asm output. |
| * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. |
| (arm_last_printed_arch_string): Delete. |
| (arm_last-printed_fpu_string): Delete. |
| (arm_configure_build_target): If use of floating-point/SIMD is |
| disabled, remove all fp/simd related features from the target ISA. |
| (last_arm_targ_options): New variable. |
| (arm_print_asm_arch_directives): Add new parameters. Change order |
| of emitted directives and handle all cases here. |
| (arm_file_start): Always call arm_print_asm_arch_directives, move |
| all generation of .arch/.arch_extension here. |
| (arm_file_end): Call arm_print_asm_arch. |
| (arm_declare_function_name): Call arm_print_asm_arch_directives |
| instead of printing .arch/.fpu directives directly. |
| |
| 2021-08-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.c (arm_configure_build_target): Don't call |
| arm_option_reconfigure_globals. |
| (arm_option_restore): Call arm_option_reconfigure_globals after |
| reconfiguring the target. |
| * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. |
| |
| 2021-08-05 Richard Earnshaw <rearnsha@arm.com> |
| |
| * config/arm/arm.c (arm_configure_build_target): Ensure the target's |
| arch_name is always set. |
| |
| 2021-08-05 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost |
| of vec_select high-half from being added into Neon subtract |
| cost. |
| |
| 2021-08-05 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost |
| of vec_select high-half from being added into Neon add cost. |
| |
| 2021-08-05 Kewen Lin <linkw@linux.ibm.com> |
| |
| * cfgloop.h (loops_list::loops_list): Add one optional argument |
| root and adjust accordingly, update loop tree walking and factor |
| out to ... |
| * cfgloop.c (loops_list::walk_loop_tree): ... this. New function. |
| |
| 2021-08-05 Eric Botcazou <ebotcazou@gcc.gnu.org> |
| |
| PR tree-optimization/101626 |
| * tree-sra.c (propagate_subaccesses_from_rhs): Do not set the |
| reverse scalar storage order on a pointer or vector component. |
| |
| 2021-08-05 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (cond_<code><mode>): New expander. |
| |
| 2021-08-05 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (cond_<code><mode>): New expander. |
| |
| 2021-08-05 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (cond_<code><mode>): New expander. |
| |
| 2021-08-04 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/101570 |
| * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o. |
| |
| 2021-08-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101742 |
| * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes |
| only if TARGET_INTER_UNIT_MOVES_TO_VEC is true. |
| |
| 2021-08-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101772 |
| * config/i386/i386-expand.c (ix86_expand_vector_move): Call |
| ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy |
| data with SSE register from one memory location to another. |
| |
| 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (expand_perm_with_vpdi): New function. |
| (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi. |
| * config/s390/vector.md (*vpdi1<mode>, @vpdi1<mode>): Enable a |
| parameterized expander. |
| (*vpdi4<mode>, @vpdi4<mode>): Likewise. |
| |
| 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.c (MAX_VECT_LEN): Define macro. |
| (struct expand_vec_perm_d): Define struct. |
| (expand_perm_with_merge): New function. |
| (vectorize_vec_perm_const_1): New function. |
| (s390_vectorize_vec_perm_const): New function. |
| (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro. |
| |
| 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/vector.md (V_HW_64): Remove mode iterator. |
| (*vec_load_pair<mode>): Use V_HW_2 instead of V_HW_64. |
| * config/s390/vx-builtins.md |
| (vec_scatter_element<V_HW_2:mode>_SI): Use V_HW_2 instead of |
| V_HW_64. |
| |
| 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant |
| definition. |
| * config/s390/vector.md (*vpdi1<mode>, *vpdi4<mode>): New pattern |
| definitions. |
| * config/s390/vx-builtins.md (*vec_permi<mode>): Emit generic rtx |
| instead of an unspec. |
| |
| 2021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * config/s390/s390-modes.def: Add more vector modes to support |
| concatenation of two vectors. |
| * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add |
| prototype. |
| (s390_expand_merge): Likewise. |
| * config/s390/s390.c (s390_expand_merge_perm_const): New function. |
| (s390_expand_merge): New function. |
| * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL): |
| Remove constant definitions. |
| * config/s390/vector.md (V_HW_2): Add mode iterators. |
| (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4. |
| (vec_2x_nelts, vec_2x_wide): New mode attributes. |
| (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg): |
| New pattern definitions. |
| (vec_widen_umult_lo_<mode>, vec_widen_umult_hi_<mode>) |
| (vec_widen_smult_lo_<mode>, vec_widen_smult_hi_<mode>) |
| (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df) |
| (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for |
| vec merge. |
| * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now |
| in vector.md. |
| (vec_mergeh<mode>, vec_mergel<mode>): Use s390_expand_merge to |
| emit vec merge pattern. |
| |
| 2021-08-04 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half): |
| Define. |
| (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of |
| vec_select high-half from being added into Neon multiply |
| cost. |
| * rtlanal.c (vec_series_highpart_p): Define. |
| * rtlanal.h (vec_series_highpart_p): Declare. |
| |
| 2021-08-04 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt): |
| Define. |
| (aarch64_rtx_mult_cost): Traverse RTL tree to prevent |
| vec_select cost from being added into Neon multiply cost. |
| |
| 2021-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in |
| which old_loop_vinfo is an epilogue loop that handles a constant |
| number of iterations. |
| |
| 2021-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_analyze_loop): Print a dump message |
| when a reanalyzed loop fails to be cheaper than the current |
| main loop. |
| |
| 2021-08-04 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c: Fix a typo. |
| |
| 2021-08-04 Vincent Lefèvre <vincent-gcc@vinc17.net> |
| |
| PR gcov-profile/101773 |
| * gcov-io.c (gcov_close): Check return code of a fclose. |
| |
| 2021-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de> |
| |
| PR ada/101575 |
| * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy |
| .file statement when needed. |
| |
| 2021-08-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-data-refs.c (vect_check_gather_scatter): |
| Include widening conversions only when the result is |
| still handed by native gather or the current offset |
| size not already matches the data size. |
| Also succeed analysis in case there's no native support, |
| noted by a IFN_LAST ifn and a NULL decl. |
| (vect_analyze_data_refs): Always consider gathers. |
| * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): |
| Test for no IFN gather rather than decl gather. |
| * tree-vect-stmts.c (vect_model_load_cost): Pass in the |
| gather-scatter info and cost emulated gathers accordingly. |
| (vect_truncate_gather_scatter_offset): Properly test for |
| no IFN gather. |
| (vect_use_strided_gather_scatters_p): Likewise. |
| (get_load_store_type): Handle emulated gathers and its |
| restrictions. |
| (vectorizable_load): Likewise. Emulate them by extracting |
| scalar offsets, doing scalar loads and a vector construct. |
| |
| 2021-08-04 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101742 |
| * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces |
| argument to set m_max_size. |
| (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d. |
| (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d. |
| (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d. |
| |
| 2021-08-04 Roger Sayle <roger@nextmovesoftware.com> |
| Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and |
| (X*C1)^(X*C2) as X*(C1+C2), and related variants, using |
| tree_nonzero_bits to ensure that operands are bit-wise disjoint. |
| |
| 2021-08-04 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-forwprop.c (pass_forwprop::execute): Split |
| out code to decompose vector loads ... |
| (optimize_vector_load): ... here. Generalize it to |
| handle intermediate widening and TARGET_MEM_REF loads |
| and apply it to loads with a supported vector mode as well. |
| |
| 2021-08-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101756 |
| * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure |
| the result of the reduction epilogue is compatible to the original |
| scalar result. |
| |
| 2021-08-04 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/101743 |
| * config/i386/i386.md (peephole2): Refine predicate from |
| register_operand to general_reg_operand. |
| |
| 2021-08-04 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-path.h (path_range_query::dump): Mark override. |
| |
| 2021-08-04 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101769 |
| * tree-tailcall.c (eliminate_tail_call): Add the created loop |
| for the first recursion and return it via the new output parameter. |
| (optimize_tail_call): Pass through new output param. |
| (tree_optimize_tail_calls_1): After creating all latches, |
| add the created loop to the loop tree. Do not mark loops for fixup. |
| |
| 2021-08-04 Martin Liska <mliska@suse.cz> |
| |
| * doc/invoke.texi: Document threader-mode param. |
| |
| 2021-08-04 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (cond_fma<mode>): New expander. |
| (cond_fms<mode>): Ditto. |
| (cond_fnma<mode>): Ditto. |
| (cond_fnms<mode>): Ditto. |
| |
| 2021-08-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/vsx.md (*vsx_le_perm_store_<mode>): Use && instead of &. |
| |
| 2021-08-03 Segher Boessenkool <segher@kernel.crashing.org> |
| |
| * config/rs6000/constraints.md: Remove "e" from the list of available |
| constraint characters. |
| |
| 2021-08-03 Eugene Rozenfeld <erozen@microsoft.com> |
| |
| PR gcov-profile/71672 |
| * auto-profile.c (afdo_indirect_call): Fix setup of the historgram value for indirect calls. |
| |
| 2021-08-03 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_minpos_epu16): New. |
| |
| 2021-08-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386.c (ix86_gen_scratch_sse_rtx): In 64-bit mode, |
| try XMM31 to avoid vzeroupper. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * doc/invoke.texi: Document -mtune=neoverse-512tvb and |
| -mcpu=neoverse-512tvb. |
| * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. |
| * config/aarch64/aarch64-tune.md: Regenerate. |
| * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost) |
| (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info) |
| (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures. |
| (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb. |
| (aarch64_adjust_body_cost): Likewise. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only |
| record issue information for operations that occur in the |
| innermost loop. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags |
| parameter. Detect cases in which an Advanced SIMD MLA would almost |
| certainly require a MOV. |
| (aarch64_count_ops): Update accordingly. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New |
| function, split out from... |
| (aarch64_detect_vector_stmt_subtype): ...here. |
| (aarch64_add_stmt_cost): Treat extracting element 0 as free. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (sve_vec_cost): |
| Add gather_load_x32_cost and gather_load_x64_cost. |
| * config/aarch64/aarch64.c (generic_sve_vector_cost) |
| (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update |
| accordingly, using the values given by the scalar_load * number |
| of elements calculation that we used previously. |
| (aarch64_detect_vector_stmt_subtype): Use the new fields. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New |
| function, split out from... |
| (aarch64_adjust_body_cost): ...here. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/fractional-cost.h: New file. |
| * config/aarch64/aarch64.c: Include <algorithm> (indirectly) |
| and cost_fraction.h. |
| (vec_cost_fraction): New typedef. |
| (aarch64_detect_scalar_stmt_subtype): Use it for statement costs. |
| (aarch64_detect_vector_stmt_subtype): Likewise. |
| (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise. |
| (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction |
| for cycle counts. |
| (aarch64_adjust_body_cost): Likewise. |
| (aarch64_test_cost_fraction): New function. |
| (aarch64_run_selftests): Call it. |
| |
| 2021-08-03 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn |
| into a bitmask. |
| * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update |
| accordingly. |
| (aarch64_estimated_poly_value): Likewise. Use the least significant |
| set bit for the minimum and likely values. Use the most significant |
| set bit for the maximum value. |
| |
| 2021-08-03 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (cond_<insn><mode>): New expander. |
| (cond_mul<mode>): Ditto. |
| |
| 2021-08-03 Kewen Lin <linkw@linux.ibm.com> |
| |
| * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop. |
| |
| 2021-08-03 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/sse.md (cond_<insn><mode>):New expander. |
| (cond_mul<mode>): Ditto. |
| (cond_div<mode>): Ditto. |
| |
| 2021-08-02 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386.c (ix86_finalize_stack_frame_flags): Also |
| check stack_realign_needed for stack realignment. |
| (ix86_legitimate_constant_p): Always allow CONST_WIDE_INT smaller |
| than the largest integer supported by vector register. |
| * config/i386/i386.h (MAX_MOVE_MAX): New. Set to 64. |
| (MOVE_MAX): Set to bytes of the largest integer supported by |
| vector register. |
| (STORE_MAX_PIECES): New. |
| |
| 2021-08-02 H.J. Lu <hjl.tools@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_expand_vector_move): Call |
| ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy |
| data from one memory location to another. |
| |
| 2021-08-02 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/90773 |
| * config/i386/i386.c (TARGET_GEN_MEMSET_SCRATCH_RTX): New. |
| |
| 2021-08-02 Aldy Hernandez <aldyh@redhat.com> |
| |
| PR tree-optimization/101724 |
| * params.opt: Remove --param=threader-iterative. |
| * tree-ssa-threadbackward.c (pass_thread_jumps::execute): Remove |
| iterative mode. |
| |
| 2021-08-02 Tom de Vries <tdevries@suse.de> |
| |
| PR middle-end/101665 |
| * doc/extend.texi (nonnull attribute): Improve documentation. |
| |
| 2021-08-02 Andrew Pinski <apinski@marvell.com> |
| |
| PR rtl-optimization/101683 |
| * rtlanal.c (may_trap_p_1): Handle UNSIGNED_FIX. |
| |
| 2021-08-02 Roger Sayle <roger@nextmovesoftware.com> |
| |
| * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): |
| Renamed from cond_removal_in_popcount_clz_ctz_pattern. |
| Add support for BSWAP, FFS, PARITY and CLRSB builtins. |
| (tree_ssa_phiop_worker): Update call to function above. |
| |
| 2021-08-01 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/78103 |
| * config/i386/i386.md (bsr_rex64_1_zext): New. |
| (combine splitter for constant - clzll): Replace gen_bsr_rex64_1 |
| with gen_bsr_rex64_1_zext. |
| |
| 2021-07-31 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/78103 |
| * config/i386/i386.md (bsr_rex64_1, bsr_1, bsr_zext_1): New |
| define_insn patterns. |
| (*bsr_rex64_2, *bsr_2): New define_insn_and_split patterns. |
| Add combine splitters for constant - clz. |
| (clz<mode>2): Use a temporary pseudo for bsr result. |
| |
| 2021-07-30 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps, |
| _mm_floor_sd, _mm_floor_ss): New. |
| |
| 2021-07-30 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps, |
| _mm_ceil_sd, _mm_ceil_ss): New. |
| |
| 2021-07-30 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd, |
| _mm_blend_ps, _mm_blendv_ps): New. |
| |
| 2021-07-30 Roger Sayle <roger@nextmovesoftware.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*dec_cmov<mode>): New define_insn_and_split |
| to generate a conditional move using the carry flag after sub $1. |
| (peephole2): Eliminate a register-to-register move by inverting |
| the condition of a conditional move. |
| |
| 2021-07-30 Hans-Peter Nilsson <hp@bitrange.com> |
| |
| * config/mmix/mmix.md ("call", "call_value", "*call_real") |
| ("*call_value_real"): Don't generate rtx mentioning the generic |
| operands 1 and 2 to "call", and similarly for "call_value". |
| * config/mmix/mmix.c (mmix_print_operand_punct_valid_p) |
| (mmix_print_operand): Use '!' instead of 'p'. |
| |
| 2021-07-30 Hans-Peter Nilsson <hp@bitrange.com> |
| |
| * doc/md.texi (call): Correct information about operand 2. |
| * config/mmix/mmix.md ("call", "call_value"): Remove fixed FIXMEs. |
| |
| 2021-07-30 Andrew MacLeod <amacleod@redhat.com> |
| |
| * range-op.cc (operator_trunc_mod::wi_fold): Fold constants. |
| |
| 2021-07-30 Andrew MacLeod <amacleod@redhat.com> |
| |
| * range-op.cc (operator_div::wi_fold): Return UNDEFINED for [0, 0] divisor. |
| |
| 2021-07-30 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-cache.cc (*::set_bb_range): Change const basic_block to |
| const_basic_block.. |
| (*::get_bb_range): Ditto. |
| (*::bb_range_p): Ditto. |
| * gimple-range-cache.h: Change prototypes. |
| |
| 2021-07-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/90773 |
| * builtins.c (builtin_memcpy_read_str): Change the mode argument |
| from scalar_int_mode to fixed_size_mode. |
| (builtin_strncpy_read_str): Likewise. |
| (gen_memset_value_from_prev): New function. |
| (builtin_memset_read_str): Change the mode argument from |
| scalar_int_mode to fixed_size_mode. Use gen_memset_value_from_prev |
| and support CONST_VECTOR. |
| (builtin_memset_gen_str): Likewise. |
| (try_store_by_multiple_pieces): Use by_pieces_constfn to declare |
| constfun. |
| * builtins.h (builtin_strncpy_read_str): Replace scalar_int_mode |
| with fixed_size_mode. |
| (builtin_memset_read_str): Likewise. |
| * expr.c (widest_int_mode_for_size): Renamed to ... |
| (widest_fixed_size_mode_for_size): Add a bool argument to |
| indicate if QI vector mode can be used. |
| (by_pieces_ninsns): Call widest_fixed_size_mode_for_size |
| instead of widest_int_mode_for_size. |
| (pieces_addr::adjust): Change the mode argument from |
| scalar_int_mode to fixed_size_mode. |
| (op_by_pieces_d): Make m_len read-only. Add a bool member, |
| m_qi_vector_mode, to indicate that QI vector mode can be used. |
| (op_by_pieces_d::op_by_pieces_d): Add a bool argument to |
| initialize m_qi_vector_mode. Call widest_fixed_size_mode_for_size |
| instead of widest_int_mode_for_size. |
| (op_by_pieces_d::get_usable_mode): Change the mode argument from |
| scalar_int_mode to fixed_size_mode. Call |
| widest_fixed_size_mode_for_size instead of |
| widest_int_mode_for_size. |
| (op_by_pieces_d::smallest_fixed_size_mode_for_size): New member |
| function to return the smallest integer or QI vector mode. |
| (op_by_pieces_d::run): Call widest_fixed_size_mode_for_size |
| instead of widest_int_mode_for_size. Call |
| smallest_fixed_size_mode_for_size instead of |
| smallest_int_mode_for_size. |
| (store_by_pieces_d::store_by_pieces_d): Add a bool argument to |
| indicate that QI vector mode can be used and pass it to |
| op_by_pieces_d::op_by_pieces_d. |
| (can_store_by_pieces): Call widest_fixed_size_mode_for_size |
| instead of widest_int_mode_for_size. Pass memsetp to |
| widest_fixed_size_mode_for_size to support QI vector mode. |
| Allow all CONST_VECTORs for memset if vec_duplicate is supported. |
| (store_by_pieces): Pass memsetp to |
| store_by_pieces_d::store_by_pieces_d. |
| (clear_by_pieces_1): Removed. |
| (clear_by_pieces): Replace clear_by_pieces_1 with |
| builtin_memset_read_str and pass true to store_by_pieces_d to |
| support vector mode broadcast. |
| (string_cst_read_str): Change the mode argument from |
| scalar_int_mode to fixed_size_mode. |
| * expr.h (by_pieces_constfn): Change scalar_int_mode to |
| fixed_size_mode. |
| (by_pieces_prev): Likewise. |
| * rtl.h (lowpart_subreg_regno): New. |
| * rtlanal.c (lowpart_subreg_regno): New. A wrapper around |
| simplify_subreg_regno. |
| * target.def (gen_memset_scratch_rtx): New hook. |
| * doc/tm.texi.in: Add TARGET_GEN_MEMSET_SCRATCH_RTX. |
| * doc/tm.texi: Regenerated. |
| |
| 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> |
| |
| PR target/94780 |
| * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use |
| TARGET_EXPR instead of MODIFY_EXPR. |
| |
| 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> |
| |
| PR target/101132 |
| * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare. |
| * config/mips/mips.c (mips_expand_vec_cmp_expr): New function. |
| * config/mips/mips-msa.md (vec_cmp<MSA:mode><mode_i>): New |
| expander. |
| (vec_cmpu<IMSA:mode><mode_i>): New expander. |
| |
| 2021-07-30 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101685 |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Don't enable LZCNT/POPCNT if they have been disabled explicitly. |
| |
| 2021-07-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/66791 |
| * config/arm/arm_neon.h (vld1_p64): Replace call to builtin by |
| explicitly dereferencing __a. |
| (vld1_s64): Likewise. |
| (vld1_u64): Likewise. |
| * config/arm/arm_neon_builtins.def (vld1): Remove entry for di |
| and change to VAR13. |
| |
| 2021-07-30 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-loop-versioning.cc (lv_dom_walker::lv_dom_walker): Remove |
| use of m_range_analyzer. |
| (loop_versioning::lv_dom_walker::before_dom_children): Same. |
| (loop_versioning::lv_dom_walker::after_dom_children): Remove. |
| (loop_versioning::prune_loop_conditions): Replace vr_values use |
| with range_query interface. |
| (pass_loop_versioning::execute): Use ranger. |
| |
| 2021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> |
| |
| PR ipa/101396 |
| * ipa-devirt.c (ipa_odr_read_section): Compare the precision of |
| enum values, and emit a warning if they mismatch. |
| |
| 2021-07-30 Kewen Lin <linkw@linux.ibm.com> |
| |
| * cfgloop.h (as_const): New function. |
| (class loop_iterator): Rename to ... |
| (class loops_list): ... this. |
| (loop_iterator::next): Rename to ... |
| (loops_list::Iter::fill_curr_loop): ... this and adjust. |
| (loop_iterator::loop_iterator): Rename to ... |
| (loops_list::loops_list): ... this and adjust. |
| (loops_list::Iter): New class. |
| (loops_list::iterator): New type. |
| (loops_list::const_iterator): New type. |
| (loops_list::begin): New function. |
| (loops_list::end): Likewise. |
| (loops_list::begin const): Likewise. |
| (loops_list::end const): Likewise. |
| (FOR_EACH_LOOP): Remove. |
| (FOR_EACH_LOOP_FN): Remove. |
| * cfgloop.c (flow_loops_dump): Adjust FOR_EACH_LOOP* with range-based |
| for loop with loops_list instance. |
| (sort_sibling_loops): Likewise. |
| (disambiguate_loops_with_multiple_latches): Likewise. |
| (verify_loop_structure): Likewise. |
| * cfgloopmanip.c (create_preheaders): Likewise. |
| (force_single_succ_latches): Likewise. |
| * config/aarch64/falkor-tag-collision-avoidance.c |
| (execute_tag_collision_avoidance): Likewise. |
| * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Likewise. |
| * config/s390/s390.c (s390_adjust_loops): Likewise. |
| * doc/loop.texi: Likewise. |
| * gimple-loop-interchange.cc (pass_linterchange::execute): Likewise. |
| * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. |
| * gimple-loop-versioning.cc (loop_versioning::analyze_blocks): Likewise. |
| (loop_versioning::make_versioning_decisions): Likewise. |
| * gimple-ssa-split-paths.c (split_paths): Likewise. |
| * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. |
| * graphite.c (canonicalize_loop_form): Likewise. |
| (graphite_transform_loops): Likewise. |
| * ipa-fnsummary.c (analyze_function_body): Likewise. |
| * ipa-pure-const.c (analyze_function): Likewise. |
| * loop-doloop.c (doloop_optimize_loops): Likewise. |
| * loop-init.c (loop_optimizer_finalize): Likewise. |
| (fix_loop_structure): Likewise. |
| * loop-invariant.c (calculate_loop_reg_pressure): Likewise. |
| (move_loop_invariants): Likewise. |
| * loop-unroll.c (decide_unrolling): Likewise. |
| (unroll_loops): Likewise. |
| * modulo-sched.c (sms_schedule): Likewise. |
| * predict.c (predict_loops): Likewise. |
| (pass_profile::execute): Likewise. |
| * profile.c (branch_prob): Likewise. |
| * sel-sched-ir.c (sel_finish_pipelining): Likewise. |
| (sel_find_rgns): Likewise. |
| * tree-cfg.c (replace_loop_annotate): Likewise. |
| (replace_uses_by): Likewise. |
| (move_sese_region_to_fn): Likewise. |
| * tree-if-conv.c (pass_if_conversion::execute): Likewise. |
| * tree-loop-distribution.c (loop_distribution::execute): Likewise. |
| * tree-parloops.c (parallelize_loops): Likewise. |
| * tree-predcom.c (tree_predictive_commoning): Likewise. |
| * tree-scalar-evolution.c (scev_initialize): Likewise. |
| (scev_reset): Likewise. |
| * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise. |
| * tree-ssa-live.c (remove_unused_locals): Likewise. |
| * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. |
| * tree-ssa-loop-im.c (analyze_memory_references): Likewise. |
| (tree_ssa_lim_initialize): Likewise. |
| * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise. |
| * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Likewise. |
| * tree-ssa-loop-manip.c (get_loops_exits): Likewise. |
| * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Likewise. |
| (free_numbers_of_iterations_estimates): Likewise. |
| * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise. |
| * tree-ssa-loop-split.c (tree_ssa_split_loops): Likewise. |
| * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Likewise. |
| * tree-ssa-loop.c (gate_oacc_kernels): Likewise. |
| (pass_scev_cprop::execute): Likewise. |
| * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise. |
| * tree-ssa-sccvn.c (do_rpo_vn): Likewise. |
| * tree-ssa-threadupdate.c |
| (jump_thread_path_registry::thread_through_all_blocks): Likewise. |
| * tree-vectorizer.c (vectorize_loops): Likewise. |
| * tree-vrp.c (vrp_asserts::find_assert_locations): Likewise. |
| |
| 2021-07-29 Hans-Peter Nilsson <hp@bitrange.com> |
| |
| * config/mmix/mmix.c (mmix_function_arg_1): Avoid |
| generating a VOIDmode register for e.g the |
| function_arg_info::end_marker. |
| |
| 2021-07-29 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/h8300/h8300-modes.def: Add CCZ, CCV and CCC, drop CCZNV. |
| * config/h8300/h8300.md (H8cc mode iterator): Add CCZ. |
| (cc mode_attr): Similarly. |
| (ccz subst_attr): Similarly. |
| * config/h8300/jumpcall.md: Add new patterns for branch-on-bit. |
| * config/h8300/testcompare.md: Remove various cc0 based patterns |
| that had been commented out. Add pattern to set CCZ from a bit |
| test. |
| |
| 2021-07-29 Thomas Schwinge <thomas@codesourcery.com> |
| Julian Brown <julian@codesourcery.com> |
| Kwok Cheung Yeung <kcy@codesourcery.com> |
| |
| * omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process): |
| 'update_stmt' after modification. |
| (pass_oacc_loop_designation): New function, extracted out of... |
| (pass_oacc_device_lower): ... this. |
| (pass_data_oacc_loop_designation, pass_oacc_loop_designation) |
| (make_pass_oacc_loop_designation): New |
| * passes.def: Add it. |
| * tree-parloops.c (create_parallel_loop): Adjust. |
| * tree-pass.h (make_pass_oacc_loop_designation): New. |
| |
| 2021-07-29 Aldy Hernandez <aldyh@redhat.com> |
| |
| * flag-types.h (enum threader_mode): New. |
| * params.opt: Add entry for --param=threader-mode. |
| * tree-ssa-threadbackward.c (THREADER_ITERATIVE_MODE): New. |
| (class back_threader): New. |
| (back_threader::back_threader): New. |
| (back_threader::~back_threader): New. |
| (back_threader::maybe_register_path): New. |
| (back_threader::find_taken_edge): New. |
| (back_threader::find_taken_edge_switch): New. |
| (back_threader::find_taken_edge_cond): New. |
| (back_threader::resolve_def): New. |
| (back_threader::resolve_phi): New. |
| (back_threader::find_paths_to_names): New. |
| (back_threader::find_paths): New. |
| (dump_path): New. |
| (debug): New. |
| (thread_jumps::find_jump_threads_backwards): Call ranger threader. |
| (thread_jumps::find_jump_threads_backwards_with_ranger): New. |
| (pass_thread_jumps::execute): Abstract out code... |
| (try_thread_blocks): ...here. |
| * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): |
| Abstract out threading candidate code to... |
| (single_succ_to_potentially_threadable_block): ...here. |
| * tree-ssa-threadedge.h (single_succ_to_potentially_threadable_block): |
| New. |
| * tree-ssa-threadupdate.c (register_jump_thread): Return boolean. |
| * tree-ssa-threadupdate.h (class jump_thread_path_registry): |
| Return bool from register_jump_thread. |
| |
| 2021-07-29 Andreas Krebbel <krebbel@linux.ibm.com> |
| |
| * target.def: in0 and in1 do not need to be registers. |
| * doc/tm.texi: Regenerate. |
| |
| 2021-07-29 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/39821 |
| * config/i386/i386.c (ix86_widen_mult_cost): New function. |
| (ix86_add_stmt_cost): Use ix86_widen_mult_cost for |
| WIDEN_MULT_EXPR. |
| |
| 2021-07-29 Jiufu Guo <guojiufu@linux.ibm.com> |
| |
| PR target/61837 |
| * config/rs6000/rs6000.c (TARGET_PREFERRED_DOLOOP_MODE): New hook. |
| (rs6000_preferred_doloop_mode): New hook. |
| * doc/tm.texi: Regenerate. |
| * doc/tm.texi.in: Add hook preferred_doloop_mode. |
| * target.def (preferred_doloop_mode): New hook. |
| * targhooks.c (default_preferred_doloop_mode): New hook. |
| * targhooks.h (default_preferred_doloop_mode): New hook. |
| * tree-ssa-loop-ivopts.c (compute_doloop_base_on_mode): New function. |
| (add_iv_candidate_for_doloop): Call targetm.preferred_doloop_mode |
| and compute_doloop_base_on_mode. |
| |
| 2021-07-28 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101494 |
| * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset |
| and size computation. |
| |
| 2021-07-28 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101601 |
| * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove |
| a pointless test. |
| Handle pointers to functions. |
| |
| 2021-07-28 Martin Sebor <msebor@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o. |
| * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h. |
| * builtins.c (compute_objsize_r): Move to pointer-query.cc. |
| (access_ref::access_ref): Same. |
| (access_ref::phi): Same. |
| (access_ref::get_ref): Same. |
| (access_ref::size_remaining): Same. |
| (access_ref::offset_in_range): Same. |
| (access_ref::add_offset): Same. |
| (access_ref::inform_access): Same. |
| (ssa_name_limit_t::visit_phi): Same. |
| (ssa_name_limit_t::leave_phi): Same. |
| (ssa_name_limit_t::next): Same. |
| (ssa_name_limit_t::next_phi): Same. |
| (ssa_name_limit_t::~ssa_name_limit_t): Same. |
| (pointer_query::pointer_query): Same. |
| (pointer_query::get_ref): Same. |
| (pointer_query::put_ref): Same. |
| (pointer_query::flush_cache): Same. |
| (warn_string_no_nul): Move to gimple-ssa-warn-access.cc. |
| (check_nul_terminated_array): Same. |
| (unterminated_array): Same. |
| (maybe_warn_for_bound): Same. |
| (check_read_access): Same. |
| (warn_for_access): Same. |
| (get_size_range): Same. |
| (check_access): Same. |
| (gimple_call_alloc_size): Move to tree.c. |
| (gimple_parm_array_size): Move to pointer-query.cc. |
| (get_offset_range): Same. |
| (gimple_call_return_array): Same. |
| (handle_min_max_size): Same. |
| (handle_array_ref): Same. |
| (handle_mem_ref): Same. |
| (compute_objsize): Same. |
| (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc. |
| (call_dealloc_argno): Same. |
| (fndecl_dealloc_argno): Same. |
| (new_delete_mismatch_p): Same. |
| (matching_alloc_calls_p): Same. |
| (warn_dealloc_offset): Same. |
| (maybe_emit_free_warning): Same. |
| * builtins.h (check_nul_terminated_array): Move to |
| gimple-ssa-warn-access.h. |
| (check_nul_terminated_array): Same. |
| (warn_string_no_nul): Same. |
| (unterminated_array): Same. |
| (class ssa_name_limit_t): Same. |
| (class pointer_query): Same. |
| (struct access_ref): Same. |
| (class range_query): Same. |
| (struct access_data): Same. |
| (gimple_call_alloc_size): Same. |
| (gimple_parm_array_size): Same. |
| (compute_objsize): Same. |
| (class access_data): Same. |
| (maybe_emit_free_warning): Same. |
| * calls.c (initialize_argument_information): Remove call to |
| maybe_emit_free_warning. |
| * gimple-array-bounds.cc: Include new header.. |
| * gimple-fold.c: Same. |
| * gimple-ssa-sprintf.c: Same. |
| * gimple-ssa-warn-restrict.c: Same. |
| * passes.def: Add pass_warn_access. |
| * tree-pass.h (make_pass_warn_access): Declare. |
| * tree-ssa-strlen.c: Include new headers. |
| * tree.c (fndecl_dealloc_argno): Move here from builtins.c. |
| * tree.h (fndecl_dealloc_argno): Move here from attribs.h. |
| * gimple-ssa-warn-access.cc: New file. |
| * gimple-ssa-warn-access.h: New file. |
| * pointer-query.cc: New file. |
| * pointer-query.h: New file. |
| |
| 2021-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/101624 |
| * ubsan.c (maybe_instrument_pointer_overflow, |
| instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, |
| PARM_DECLs or RESULT_DECLs. |
| * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. |
| |
| 2021-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/101642 |
| * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands |
| to type of bswap16 for comparison. |
| (bswap16 (x) == cst): Cast bswap16 operand to type of cst. |
| |
| 2021-07-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101615 |
| * tree-vect-slp.c (vect_optimize_slp): Materialize permutes |
| at CTOR SLP graph entries. |
| |
| 2021-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> |
| |
| * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64): |
| Add "r,w" alternative. |
| |
| 2021-07-28 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101456 |
| * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set |
| AVX_U128_DIRTY when all bits are zero. |
| |
| 2021-07-28 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101615 |
| * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector |
| external nodes cannot be permuted so make them perm_out 0. |
| |
| 2021-07-28 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR target/100208 |
| * config.in: Regenerate. |
| * config/gcn/gcn-hsa.h (A_FIJI): New define. |
| (A_900): New define. |
| (A_906): New define. |
| (A_908): New define. |
| (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908. |
| * config/gcn/gcn.c (output_file_start): Adjust attributes according |
| to the assembler capabilities. |
| * config/gcn/mkoffload.c (main): Likewise. |
| * configure: Regenerate. |
| * configure.ac: Add tests for LLVM assembler attribute features. |
| |
| 2021-07-28 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for |
| cond_false and cond_true on branches. |
| |
| 2021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use |
| gcc_stablesort. |
| |
| 2021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com> |
| |
| * alias.c (init_alias_analysis): Don't skip prologue/epilogue. |
| |
| 2021-07-28 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/101611 |
| * config/i386/sse.md (vashr<mode>3): Split into vashrv8di3 expander |
| and vashrv4di3 expander, where the latter requires just TARGET_AVX2 |
| and has special !TARGET_AVX512VL expansion. |
| (vashrv2di3<mask_name>): Rename to ... |
| (vashrv2di3): ... this. Change condition to TARGET_XOP || TARGET_AVX2 |
| and add special !TARGET_XOP && !TARGET_AVX512VL expansion. |
| |
| 2021-07-28 Martin Uecker <muecker@gwdg.de> |
| |
| * calls.c (maybe_warn_rdwr_sizes): Correct argument |
| numbers in warning that were switched. |
| |
| 2021-07-28 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR tree-optimization/101596 |
| * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check |
| by using new_type's precision instead. |
| |
| 2021-07-28 liuhongt <hongtao.liu@intel.com> |
| |
| PR target/99881 |
| * config/i386/i386.h (processor_costs): Add new member |
| integer_to_sse. |
| * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, |
| i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, |
| geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, |
| bdver_cost, znver1_cost, znver2_cost, znver3_cost, |
| btver1_cost, btver2_cost, btver3_cost, pentium4_cost, |
| nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, |
| generic_cost, core_cost): Initialize integer_to_sse same value |
| as sse_op. |
| (skylake_cost): Initialize integer_to_sse twice as much as sse_op. |
| * config/i386/i386.c (ix86_builtin_vectorization_cost): |
| Use integer_to_sse instead of sse_op to calculate the cost of |
| vec_construct. |
| |
| 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New |
| function. |
| (write_init_file): Call write_ovld_static_init. |
| |
| 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New |
| function. |
| (write_init_file): Call write_bif_static_init. |
| |
| 2021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (typemap): New struct. |
| (TYPE_MAP_SIZE): New macro. |
| (type_map): New initialized variable. |
| (typemap_cmp): New function. |
| (write_type_node): Likewise. |
| (write_fntype_init): Implement. |
| |
| 2021-07-27 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/101584 |
| * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function. |
| (check_defs): Call it. |
| |
| 2021-07-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-ssa-dom.c (dom_jump_threader_simplifier): |
| Put avail_exprs_stack in the class, instead of passing it to |
| jump_threader_simplifier. |
| (dom_jump_threader_simplifier::simplify): Add state argument. |
| (dom_opt_dom_walker): Add state. |
| (pass_dominator::execute): Pass state to threader. |
| (dom_opt_dom_walker::before_dom_children): Use state. |
| * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace |
| arguments by state. |
| (jump_threader::record_temporary_equivalences_from_phis): |
| Register equivalences through the state variable. |
| (jump_threader::record_temporary_equivalences_from_stmts_at_dest): |
| Record ranges in a statement through the state variable. |
| (jump_threader::simplify_control_stmt_condition): Pass state to |
| simplify. |
| (jump_threader::simplify_control_stmt_condition_1): Same. |
| (jump_threader::thread_around_empty_blocks): Remove obsolete |
| comment. |
| (jump_threader::thread_through_normal_block): Record equivalences |
| on edge through the state variable. |
| (jump_threader::thread_across_edge): Abstract state pushing. |
| (jt_state::jt_state): New. |
| (jt_state::push): New. |
| (jt_state::pop): New. |
| (jt_state::register_equiv): New. |
| (jt_state::record_ranges_from_stmt): New. |
| (jt_state::register_equivs_on_edge): New. |
| (jump_threader_simplifier::jump_threader_simplifier): Move from |
| header. |
| (jump_threader_simplifier::simplify): Add state argument. |
| * tree-ssa-threadedge.h (class jt_state): New. |
| (class jump_threader): Add state to constructor. |
| (class jump_threader_simplifier): Add state to simplify. Remove |
| avail_exprs_stack from class. |
| * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state |
| argument. |
| (vrp_jump_threader::vrp_jump_threader): Add state. |
| (vrp_jump_threader::~vrp_jump_threader): Cleanup state. |
| |
| 2021-07-27 Aldy Hernandez <aldyh@redhat.com> |
| |
| * Makefile.in (OBJS): Add gimple-range-path.o. |
| * gimple-range-path.cc: New file. |
| * gimple-range-path.h: New file. |
| |
| 2021-07-27 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd.md: Push sign/zero-extension |
| inside vec_duplicate for all patterns. |
| * simplify-rtx.c (simplify_context::simplify_unary_operation_1): |
| Push sign/zero-extension inside vec_duplicate. |
| |
| 2021-07-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101573 |
| * tree-ssa-uninit.c (warn_uninit_phi_uses): New function |
| looking at uninitialized PHI arg defs in some constrained cases. |
| (warn_uninitialized_vars): Call it. |
| (execute_early_warn_uninitialized): Calculate dominators. |
| |
| 2021-07-27 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/39821 |
| * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use |
| vector_stmt for widening arithmetic. |
| (vectorizable_conversion): Adjust. |
| |
| 2021-07-27 Martin Jambor <mjambor@suse.cz> |
| |
| * cgraph.h (ipa_replace_map): New field force_load_ref. |
| * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost, |
| aded new flag load_dereferenced, adjusted comments. |
| (ipa_get_param_dereferenced): New function. |
| (ipa_set_param_dereferenced): Likewise. |
| * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it. |
| * ipa-cp.c: Include gimple.h. |
| (ipcp_discover_new_direct_edges): Take into account dereferenced flag. |
| (get_replacement_map): New parameter force_load_ref, set the |
| appropriate flag in ipa_replace_map if set. |
| (struct symbol_and_index_together): New type. |
| (adjust_refs_in_act_callers): New function. |
| (adjust_references_in_caller): Likewise. |
| (create_specialized_node): When appropriate, call |
| adjust_references_in_caller and force only load references. |
| * ipa-prop.c (load_from_dereferenced_name): New function. |
| (ipa_analyze_controlled_uses): Also detect loads from a |
| dereference, harden testing of call statements. |
| (ipa_write_node_info): Stream the dereferenced flag. |
| (ipa_read_node_info): Likewise. |
| (ipa_set_jf_constant): Also create refdesc when jump function |
| references a variable. |
| (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work |
| also on references of variables and return a symtab_node. Adjust |
| all callers. |
| (propagate_controlled_uses): Also remove references to VAR_DECLs. |
| |
| 2021-07-27 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/101586 |
| * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte |
| positions above or equal to sz except for diagnostics of flexible |
| array members. |
| |
| 2021-07-26 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/78888 |
| * gimple-range-fold.cc (get_letter_range): New. |
| (fold_using_range::range_of_builtin_call): Call get_letter_range. |
| |
| 2021-07-26 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/78888 |
| * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases |
| for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER. |
| |
| 2021-07-26 Roger Sayle <roger@nextmovesoftware.com> |
| Marc Glisse <marc.glisse@inria.fr> |
| |
| * match.pd (rotate): Simplify equality/inequality of rotations. |
| (bswap): Simplify equality/inequality tests of byte swapping. |
| |
| 2021-07-26 Aldy Hernandez <aldyh@redhat.com> |
| |
| * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect): |
| New. |
| |
| 2021-07-26 Aldy Hernandez <aldyh@redhat.com> |
| |
| * range-op.cc (operator_lshift::fold_range): Pass rel to |
| base class fold_range. |
| (operator_rshift::fold_range): Same. |
| |
| 2021-07-26 Ashimida <ashimida@linux.alibaba.com> |
| |
| PR driver/101447 |
| * toplev.h (min_align_loops_log): Remove declaration. |
| (min_align_jumps_log, min_align_labels_log): Likewise. |
| (min_align_functions_log): Likewise. |
| |
| 2021-07-26 Aldy Hernandez <aldyh@redhat.com> |
| |
| * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values |
| with range_query. |
| (execute_vrp): Abstract out simplification of conditionals... |
| (simplify_casted_conds): ...here. |
| |
| 2021-07-26 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-array-bounds.cc (array_bounds_checker::get_value_range): |
| Add gimple argument. |
| (array_bounds_checker::check_array_ref): Same. |
| (array_bounds_checker::check_addr_expr): Same. |
| (array_bounds_checker::check_array_bounds): Pass statement to |
| check_array_bounds and check_addr_expr. |
| * gimple-array-bounds.h (check_array_bounds): Add gimple argument. |
| (check_addr_expr): Same. |
| (get_value_range): Same. |
| |
| 2021-07-26 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to.. |
| (sdot_prod, udot_prod): ... This. |
| * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged |
| into... |
| (<sur>dot_prod<vsi2qi>): ... this. |
| (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>): |
| Change operands order. |
| (<sur>sadv16qi): Use new operands order. |
| * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, |
| vdotq_s32): Use new RTL ordering. |
| |
| 2021-07-26 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS, |
| aarch64_types_ternop_suss_qualifiers): New. |
| * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it. |
| * config/aarch64/aarch64-simd.md (usdot_prod<vsi2qi>): Re-organize RTL. |
| * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it. |
| |
| 2021-07-23 Jakub Jelinek <jakub@redhat.com> |
| |
| PR rtl-optimization/101562 |
| * expmed.c (store_integral_bit_field): Only use movstrict_optab |
| if the operand isn't paradoxical. |
| |
| 2021-07-23 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-array-bounds.h (class array_bounds_checker): Change |
| ranges type to range_query. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vst1_s64_x2): Use |
| __builtin_memcpy instead of constructing |
| __builtin_aarch64_simd_oi one vector at a time. |
| (vst1_u64_x2): Likewise. |
| (vst1_f64_x2): Likewise. |
| (vst1_s8_x2): Likewise. |
| (vst1_p8_x2): Likewise. |
| (vst1_s16_x2): Likewise. |
| (vst1_p16_x2): Likewise. |
| (vst1_s32_x2): Likewise. |
| (vst1_u8_x2): Likewise. |
| (vst1_u16_x2): Likewise. |
| (vst1_u32_x2): Likewise. |
| (vst1_f16_x2): Likewise. |
| (vst1_f32_x2): Likewise. |
| (vst1_p64_x2): Likewise. |
| (vst1q_s8_x2): Likewise. |
| (vst1q_p8_x2): Likewise. |
| (vst1q_s16_x2): Likewise. |
| (vst1q_p16_x2): Likewise. |
| (vst1q_s32_x2): Likewise. |
| (vst1q_s64_x2): Likewise. |
| (vst1q_u8_x2): Likewise. |
| (vst1q_u16_x2): Likewise. |
| (vst1q_u32_x2): Likewise. |
| (vst1q_u64_x2): Likewise. |
| (vst1q_f16_x2): Likewise. |
| (vst1q_f32_x2): Likewise. |
| (vst1q_f64_x2): Likewise. |
| (vst1q_p64_x2): Likewise. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vst1_s64_x3): Use |
| __builtin_memcpy instead of constructing |
| __builtin_aarch64_simd_ci one vector at a time. |
| (vst1_u64_x3): Likewise. |
| (vst1_f64_x3): Likewise. |
| (vst1_s8_x3): Likewise. |
| (vst1_p8_x3): Likewise. |
| (vst1_s16_x3): Likewise. |
| (vst1_p16_x3): Likewise. |
| (vst1_s32_x3): Likewise. |
| (vst1_u8_x3): Likewise. |
| (vst1_u16_x3): Likewise. |
| (vst1_u32_x3): Likewise. |
| (vst1_f16_x3): Likewise. |
| (vst1_f32_x3): Likewise. |
| (vst1_p64_x3): Likewise. |
| (vst1q_s8_x3): Likewise. |
| (vst1q_p8_x3): Likewise. |
| (vst1q_s16_x3): Likewise. |
| (vst1q_p16_x3): Likewise. |
| (vst1q_s32_x3): Likewise. |
| (vst1q_s64_x3): Likewise. |
| (vst1q_u8_x3): Likewise. |
| (vst1q_u16_x3): Likewise. |
| (vst1q_u32_x3): Likewise. |
| (vst1q_u64_x3): Likewise. |
| (vst1q_f16_x3): Likewise. |
| (vst1q_f32_x3): Likewise. |
| (vst1q_f64_x3): Likewise. |
| (vst1q_p64_x3): Likewise. |
| |
| 2021-07-23 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101504 |
| * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return |
| hard register when LRA is in progress. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vst1_s8_x4): Use |
| __builtin_memcpy instead of using a union. |
| (vst1q_s8_x4): Likewise. |
| (vst1_s16_x4): Likewise. |
| (vst1q_s16_x4): Likewise. |
| (vst1_s32_x4): Likewise. |
| (vst1q_s32_x4): Likewise. |
| (vst1_u8_x4): Likewise. |
| (vst1q_u8_x4): Likewise. |
| (vst1_u16_x4): Likewise. |
| (vst1q_u16_x4): Likewise. |
| (vst1_u32_x4): Likewise. |
| (vst1q_u32_x4): Likewise. |
| (vst1_f16_x4): Likewise. |
| (vst1q_f16_x4): Likewise. |
| (vst1_f32_x4): Likewise. |
| (vst1q_f32_x4): Likewise. |
| (vst1_p8_x4): Likewise. |
| (vst1q_p8_x4): Likewise. |
| (vst1_p16_x4): Likewise. |
| (vst1q_p16_x4): Likewise. |
| (vst1_s64_x4): Likewise. |
| (vst1_u64_x4): Likewise. |
| (vst1_p64_x4): Likewise. |
| (vst1q_s64_x4): Likewise. |
| (vst1q_u64_x4): Likewise. |
| (vst1q_p64_x4): Likewise. |
| (vst1_f64_x4): Likewise. |
| (vst1q_f64_x4): Likewise. |
| |
| 2021-07-23 Jonathan Wrightt <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy |
| instead of constructing __builtin_aarch64_simd_oi one vector |
| at a time. |
| (vst2_u64): Likewise. |
| (vst2_f64): Likewise. |
| (vst2_s8): Likewise. |
| (vst2_p8): Likewise. |
| (vst2_s16): Likewise. |
| (vst2_p16): Likewise. |
| (vst2_s32): Likewise. |
| (vst2_u8): Likewise. |
| (vst2_u16): Likewise. |
| (vst2_u32): Likewise. |
| (vst2_f16): Likewise. |
| (vst2_f32): Likewise. |
| (vst2_p64): Likewise. |
| (vst2q_s8): Likewise. |
| (vst2q_p8): Likewise. |
| (vst2q_s16): Likewise. |
| (vst2q_p16): Likewise. |
| (vst2q_s32): Likewise. |
| (vst2q_s64): Likewise. |
| (vst2q_u8): Likewise. |
| (vst2q_u16): Likewise. |
| (vst2q_u32): Likewise. |
| (vst2q_u64): Likewise. |
| (vst2q_f16): Likewise. |
| (vst2q_f32): Likewise. |
| (vst2q_f64): Likewise. |
| (vst2q_p64): Likewise. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy |
| instead of constructing __builtin_aarch64_simd_ci one vector |
| at a time. |
| (vst3_u64): Likewise. |
| (vst3_f64): Likewise. |
| (vst3_s8): Likewise. |
| (vst3_p8): Likewise. |
| (vst3_s16): Likewise. |
| (vst3_p16): Likewise. |
| (vst3_s32): Likewise. |
| (vst3_u8): Likewise. |
| (vst3_u16): Likewise. |
| (vst3_u32): Likewise. |
| (vst3_f16): Likewise. |
| (vst3_f32): Likewise. |
| (vst3_p64): Likewise. |
| (vst3q_s8): Likewise. |
| (vst3q_p8): Likewise. |
| (vst3q_s16): Likewise. |
| (vst3q_p16): Likewise. |
| (vst3q_s32): Likewise. |
| (vst3q_s64): Likewise. |
| (vst3q_u8): Likewise. |
| (vst3q_u16): Likewise. |
| (vst3q_u32): Likewise. |
| (vst3q_u64): Likewise. |
| (vst3q_f16): Likewise. |
| (vst3q_f32): Likewise. |
| (vst3q_f64): Likewise. |
| (vst3q_p64): Likewise. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy |
| instead of constructing __builtin_aarch64_simd_xi one vector |
| at a time. |
| (vst4_u64): Likewise. |
| (vst4_f64): Likewise. |
| (vst4_s8): Likewise. |
| (vst4_p8): Likewise. |
| (vst4_s16): Likewise. |
| (vst4_p16): Likewise. |
| (vst4_s32): Likewise. |
| (vst4_u8): Likewise. |
| (vst4_u16): Likewise. |
| (vst4_u32): Likewise. |
| (vst4_f16): Likewise. |
| (vst4_f32): Likewise. |
| (vst4_p64): Likewise. |
| (vst4q_s8): Likewise. |
| (vst4q_p8): Likewise. |
| (vst4q_s16): Likewise. |
| (vst4q_p16): Likewise. |
| (vst4q_s32): Likewise. |
| (vst4q_s64): Likewise. |
| (vst4q_u8): Likewise. |
| (vst4q_u16): Likewise. |
| (vst4q_u32): Likewise. |
| (vst4q_u64): Likewise. |
| (vst4q_f16): Likewise. |
| (vst4q_f32): Likewise. |
| (vst4q_f64): Likewise. |
| (vst4q_p64): Likewise. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy |
| instead of constructing __builtin_aarch64_simd_oi one vector |
| at a time. |
| (vtbx4_u8): Likewise. |
| (vtbx4_p8): Likewise. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy |
| instead of constructing __builtin_aarch64_simd_oi one vector |
| at a time. |
| (vtbl3_u8): Likewise. |
| (vtbl3_p8): Likewise. |
| (vtbl4_s8): Likewise. |
| (vtbl4_u8): Likewise. |
| (vtbl4_p8): Likewise. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy |
| instead of constructing __builtin_aarch64_simd_oi one vector |
| at a time. |
| (vqtbx2_u8): Likewise. |
| (vqtbx2_p8): Likewise. |
| (vqtbx2q_s8): Likewise. |
| (vqtbx2q_u8): Likewise. |
| (vqtbx2q_p8): Likewise. |
| (vqtbx3_s8): Use __builtin_memcpy instead of constructing |
| __builtin_aarch64_simd_ci one vector at a time. |
| (vqtbx3_u8): Likewise. |
| (vqtbx3_p8): Likewise. |
| (vqtbx3q_s8): Likewise. |
| (vqtbx3q_u8): Likewise. |
| (vqtbx3q_p8): Likewise. |
| (vqtbx4_s8): Use __builtin_memcpy instead of constructing |
| __builtin_aarch64_simd_xi one vector at a time. |
| (vqtbx4_u8): Likewise. |
| (vqtbx4_p8): Likewise. |
| (vqtbx4q_s8): Likewise. |
| (vqtbx4q_u8): Likewise. |
| (vqtbx4q_p8): Likewise. |
| |
| 2021-07-23 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy |
| instead of constructing __builtin_aarch64_simd_oi one vector |
| at a time. |
| (vqtbl2_u8): Likewise. |
| (vqtbl2_p8): Likewise. |
| (vqtbl2q_s8): Likewise. |
| (vqtbl2q_u8): Likewise. |
| (vqtbl2q_p8): Likewise. |
| (vqtbl3_s8): Use __builtin_memcpy instead of constructing |
| __builtin_aarch64_simd_ci one vector at a time. |
| (vqtbl3_u8): Likewise. |
| (vqtbl3_p8): Likewise. |
| (vqtbl3q_s8): Likewise. |
| (vqtbl3q_u8): Likewise. |
| (vqtbl3q_p8): Likewise. |
| (vqtbl4_s8): Use __builtin_memcpy instead of constructing |
| __builtin_aarch64_simd_xi one vector at a time. |
| (vqtbl4_u8): Likewise. |
| (vqtbl4_p8): Likewise. |
| (vqtbl4q_s8): Likewise. |
| (vqtbl4q_u8): Likewise. |
| (vqtbl4q_p8): Likewise. |
| |
| 2021-07-23 Haochen Gui <guihaoc@gcc.gnu.org> |
| |
| PR target/100952 |
| * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through. |
| |
| 2021-07-22 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/10153 |
| * tree-tailcall.c (create_tailcall_accumulator): |
| Don't call fold_convert as the type should be correct already. |
| (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead |
| of integer_{one,zero}_node for the call of create_tailcall_accumulator. |
| |
| 2021-07-22 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::adjust_range): Replace |
| varying_p check for null/non-null check. |
| |
| 2021-07-22 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101511 |
| * value-relation.cc (relation_oracle::query_relation): Check if ssa1 |
| is in ssa2's equiv set, and don't trap if so. |
| |
| 2021-07-22 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101497 |
| * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check |
| for undefined. |
| |
| 2021-07-22 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101496 |
| * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt |
| first, then vrp_visit_cond_Stmt. |
| |
| 2021-07-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/i386-expand.c |
| (ix86_broadcast_from_integer_constant): Rename to .. |
| (ix86_broadcast_from_constant): .. this, and extend it to |
| handle float mode. |
| (ix86_expand_vector_move): Extend to float mode. |
| * config/i386/i386-features.c |
| (replace_constant_pool_with_broadcast): Remove. |
| (remove_partial_avx_dependency_gate): Ditto. |
| (constant_pool_broadcast): Ditto. |
| (class pass_constant_pool_broadcast): Ditto. |
| (make_pass_constant_pool_broadcast): Ditto. |
| (remove_partial_avx_dependency): Adjust gate. |
| * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast. |
| * config/i386/i386-protos.h |
| (make_pass_constant_pool_broadcast): Remove. |
| |
| 2021-07-22 liuhongt <hongtao.liu@intel.com> |
| |
| * config/i386/constraints.md (Wb): New constraint. |
| (Ww): Ditto. |
| * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask |
| shift. |
| (*ashlqi3_1): Ditto. |
| (*<insn><mode>3_1): Split to .. |
| (*ashr<mode>3_1): this, ... |
| (*lshr<mode>3_1): and this, also extend this pattern to avx512 |
| mask registers. |
| (*<insn><mode>3_1): Split to .. |
| (*ashr<mode>3_1): this, ... |
| (*lshrqi3_1): and this, also extend this pattern to avx512 |
| mask registers. |
| (*lshrhi3_1): And this, also extend this pattern to avx512 |
| mask registers. |
| * config/i386/sse.md (k<code><mode>): New define_split after |
| it to convert generic shift pattern to mask shift ones. |
| |
| 2021-07-21 Thomas Schwinge <thomas@codesourcery.com> |
| Joseph Myers <joseph@codesourcery.com> |
| Cesar Philippidis <cesar@codesourcery.com> |
| |
| * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'. |
| * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1): |
| Handle it. |
| * tree-pretty-print.c (dump_omp_clause): Likewise. |
| * omp-general.c (oacc_verify_routine_clauses): Likewise. |
| * gimplify.c (gimplify_scan_omp_clauses) |
| (gimplify_adjust_omp_clauses): Likewise. |
| * tree-nested.c (convert_nonlocal_omp_clauses) |
| (convert_local_omp_clauses): Likewise. |
| * omp-low.c (scan_sharing_clauses): Likewise. |
| * omp-offload.c (execute_oacc_device_lower): Update. |
| |
| 2021-07-21 Martin Sebor <msebor@redhat.com> |
| |
| * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table): |
| Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (write_fntype): New |
| callback function. |
| (write_fntype_init): New stub function. |
| (write_init_bif_table): Likewise. |
| (write_init_ovld_table): New function. |
| (write_init_file): Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c |
| (write_autogenerated_header): New function. |
| (write_decls): Likewise. |
| (write_extern_fntype): New callback function. |
| (write_header_file): Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (write_defines_file): |
| Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New |
| function. |
| (complete_base_type): Likewise. |
| (construct_fntype_id): Likewise. |
| (parse_bif_entry): Call contruct_fntype_id. |
| (parse_ovld_entry): Likewise. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct. |
| (MAXOVLDSTANZAS): New macro. |
| (ovld_stanzas): New variable. |
| (curr_ovld_stanza): Likewise. |
| (MAXOVLDS): New macro. |
| (ovlddata): New struct. |
| (ovlds): New variable. |
| (curr_ovld): Likewise. |
| (max_ovld_args): Likewise. |
| (parse_ovld_entry): New function. |
| (parse_ovld_stanza): Likewise. |
| (parse_ovld): Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs): |
| Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (parse_args): New function. |
| (parse_prototype): Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum. |
| (curr_bif_stanza): New variable. |
| (stanza_entry): New struct. |
| (stanza_map): New initialized variable. |
| (enable_string): Likewise. |
| (fnkinds): New enum. |
| (typelist): New struct. |
| (attrinfo): Likewise. |
| (MAXRESTROPNDS): New macro. |
| (prototype): New struct. |
| (MAXBIFS): New macro. |
| (bifdata): New struct. |
| (bifs): New variable. |
| (curr_bif): Likewise. |
| (bif_order): Likewise. |
| (bif_index): Likewise. |
| (fatal): New function. |
| (stanza_name_to_stanza): Likewise. |
| (parse_bif_attrs): New stub function. |
| (parse_prototype): Likewise. |
| (parse_bif_entry): New function. |
| (parse_bif_stanza): Likewise. |
| (parse_bif): Implement. |
| (set_bif_order): New function. |
| (create_bif_order): Implement. |
| |
| 2021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. |
| (num_bifs): New variable. |
| (num_ovld_stanzas): Likewise. |
| (num_ovlds): Likewise. |
| (parse_codes): New enum. |
| (bif_rbt): New variable. |
| (ovld_rbt): Likewise. |
| (fntype_rbt): Likewise. |
| (bifo_rbt): Likewise. |
| (parse_bif): New stub function. |
| (create_bif_order): Likewise. |
| (parse_ovld): Likewise. |
| (write_header_file): Likewise. |
| (write_init_file): Likewise. |
| (write_defines_file): Likewise. |
| (delete_output_files): New function. |
| (main): Likewise. |
| |
| 2021-07-21 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101549 |
| * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2 |
| from CRC32 _builtin functions. |
| |
| 2021-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> |
| |
| * coverage.c (build_gcov_info_var_registration): Mark the object placed |
| in the linker set as referenced so that it does not get optimized away. |
| |
| 2021-07-21 Kito Cheng <kito.cheng@sifive.com> |
| |
| Revert: |
| 2021-07-20 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config.gcc (riscv*-*-*): Detect which python is available. |
| |
| 2021-07-21 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/101535 |
| * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA |
| contexts in which decl isn't privatized and for ORT_TARGET return |
| false if decl is mapped. |
| |
| 2021-07-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * gimple-loop-jam.c: Include tree-ssa-sccvn.h. |
| (tree_loop_unroll_and_jam): Run value-numbering on a loop that |
| has been successfully unrolled. |
| |
| 2021-07-21 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null |
| exit condition if no tail loop is needed, and if the original exit |
| condition should therefore be kept as-is. |
| (tree_transform_and_unroll_loop): Handle that case here too. |
| |
| 2021-07-21 Kewen Lin <linkw@linux.ibm.com> |
| |
| * tree-data-ref.c (free_dependence_relations): Adjust to pass vec |
| by reference. |
| (free_data_refs): Likewise. |
| * tree-data-ref.h (free_dependence_relations): Likewise. |
| (free_data_refs): Likewise. |
| * tree-predcom.c (struct chain): Use auto_vec instead of vec for |
| members. |
| (struct component): Likewise. |
| (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes. |
| (pcom_worker::~pcom_worker): Likewise. |
| (pcom_worker::release_chain): Adjust as auto_vec changes. |
| (pcom_worker::loop): Rename to ... |
| (pcom_worker::m_loop): ... this. |
| (pcom_worker::datarefs): Rename to ... |
| (pcom_worker::m_datarefs): ... this. Use auto_vec instead of vec. |
| (pcom_worker::dependences): Rename to ... |
| (pcom_worker::m_dependences): ... this. Use auto_vec instead of vec. |
| (pcom_worker::chains): Rename to ... |
| (pcom_worker::m_chains): ... this. Use auto_vec instead of vec. |
| (pcom_worker::looparound_phis): Rename to ... |
| (pcom_worker::m_looparound_phis): ... this. Use auto_vec instead of |
| vec. |
| (pcom_worker::cache): Rename to ... |
| (pcom_worker::m_cache): ... this. Use auto_vec instead of vec. |
| (pcom_worker::release_chain): Adjust for auto_vec changes. |
| (pcom_worker::release_chains): Adjust for auto_vec and renaming |
| changes. |
| (release_component): Remove. |
| (release_components): Adjust for release_component removal. |
| (component_of): Adjust to use vec. |
| (merge_comps): Likewise. |
| (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes. |
| (pcom_worker::determine_offset): Likewise. |
| (class comp_ptrs): Remove. |
| (pcom_worker::split_data_refs_to_components): Adjust for renaming |
| changes, for comp_ptrs removal with auto_vec. |
| (pcom_worker::suitable_component_p): Adjust for renaming changes. |
| (pcom_worker::filter_suitable_components): Adjust for release_component |
| removal. |
| (pcom_worker::valid_initializer_p): Adjust for renaming changes. |
| (pcom_worker::find_looparound_phi): Likewise. |
| (pcom_worker::add_looparound_copies): Likewise. |
| (pcom_worker::determine_roots_comp): Likewise. |
| (pcom_worker::single_nonlooparound_use): Likewise. |
| (pcom_worker::execute_pred_commoning_chain): Likewise. |
| (pcom_worker::execute_pred_commoning): Likewise. |
| (pcom_worker::try_combine_chains): Likewise. |
| (pcom_worker::prepare_initializers_chain): Likewise. |
| (pcom_worker::prepare_initializers): Likewise. |
| (pcom_worker::prepare_finalizers_chain): Likewise. |
| (pcom_worker::prepare_finalizers): Likewise. |
| (pcom_worker::tree_predictive_commoning_loop): Likewise. |
| |
| 2021-07-20 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101397 |
| * builtins.c (gimple_call_return_array): Add argument. Correct |
| offsets for memchr, mempcpy, stpcpy, and stpncpy. |
| (compute_objsize_r): Adjust offset computation for argument returning |
| built-ins. |
| |
| 2021-07-20 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/101300 |
| * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins. |
| |
| 2021-07-20 Jeff Law <jlaw@localhost.localdomain> |
| |
| * function.c (assign_parm_setup_block): Use adjust_address instead |
| of change_address to preserve MEM_EXPR and friends. |
| |
| 2021-07-20 Martin Sebor <msebor@redhat.com> |
| |
| * cfgloop.h (single_likely_exit): Adjust by-value argument to |
| by-const-reference. |
| * cfgloopanal.c (single_likely_exit): Same. |
| * cgraph.h (struct cgraph_node): Same. |
| * cgraphclones.c (cgraph_node::create_virtual_clone): Same. |
| * genautomata.c (merge_states): Same. |
| * genextract.c (VEC_char_to_string): Same. |
| * genmatch.c (dt_node::gen_kids_1): Same. |
| (walk_captures): Adjust by-value argument to by-reference. |
| * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument |
| to by-const-reference. |
| * gimple.c (gimple_build_call_vec): Same. |
| (gimple_build_call_internal_vec): Same. |
| (gimple_build_switch): Same. |
| (sort_case_labels): Same. |
| (preprocess_case_label_vec_for_gimple): Adjust by-value argument to |
| by-reference. |
| * gimple.h (gimple_build_call_vec): Adjust by-value argument to |
| by-const-reference. |
| (gimple_build_call_internal_vec): Same. |
| (gimple_build_switch): Same. |
| (sort_case_labels): Same. |
| (preprocess_case_label_vec_for_gimple): Adjust by-value argument to |
| by-reference. |
| * haifa-sched.c (calc_priorities): Adjust by-value argument to |
| by-const-reference. |
| (sched_init_luids): Same. |
| (haifa_init_h_i_d): Same. |
| * ipa-cp.c (ipa_get_indirect_edge_target_1): Same. |
| (adjust_callers_for_value_intersection): Adjust by-value argument to |
| by-reference. |
| (find_more_scalar_values_for_callers_subset): Adjust by-value argument to |
| by-const-reference. |
| (find_more_contexts_for_caller_subset): Same. |
| (find_aggregate_values_for_callers_subset): Same. |
| (copy_useful_known_contexts): Same. |
| * ipa-fnsummary.c (remap_edge_summaries): Same. |
| (remap_freqcounting_predicate): Same. |
| * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to |
| by-reference. |
| * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument |
| to by-const-reference. |
| * ipa-predicate.h (predicate::remap_after_inlining): Same. |
| * ipa-prop.c (ipa_find_agg_cst_for_param): Same. |
| * ipa-prop.h (ipa_find_agg_cst_for_param): Same. |
| * ira-build.c (ira_loop_tree_body_rev_postorder): Same. |
| * read-rtl.c (add_overload_instance): Same. |
| * rtl.h (native_decode_rtx): Same. |
| (native_decode_vector_rtx): Same. |
| * sched-int.h (sched_init_luids): Same. |
| (haifa_init_h_i_d): Same. |
| * simplify-rtx.c (native_decode_vector_rtx): Same. |
| (native_decode_rtx): Same. |
| * tree-call-cdce.c (gen_shrink_wrap_conditions): Same. |
| (shrink_wrap_one_built_in_call_with_conds): Same. |
| (shrink_wrap_conditional_dead_built_in_calls): Same. |
| * tree-data-ref.c (create_runtime_alias_checks): Same. |
| (compute_all_dependences): Same. |
| * tree-data-ref.h (compute_all_dependences): Same. |
| (create_runtime_alias_checks): Same. |
| (index_in_loop_nest): Same. |
| * tree-if-conv.c (mask_exists): Same. |
| * tree-loop-distribution.c (class loop_distribution): Same. |
| (loop_distribution::create_rdg_vertices): Same. |
| (dump_rdg_partitions): Same. |
| (debug_rdg_partitions): Same. |
| (partition_contains_all_rw): Same. |
| (loop_distribution::distribute_loop): Same. |
| * tree-parloops.c (oacc_entry_exit_ok_1): Same. |
| (oacc_entry_exit_single_gang): Same. |
| * tree-ssa-loop-im.c (hoist_memory_references): Same. |
| (loop_suitable_for_sm): Same. |
| * tree-ssa-loop-niter.c (bound_index): Same. |
| * tree-ssa-reassoc.c (update_ops): Same. |
| (swap_ops_for_binary_stmt): Same. |
| (rewrite_expr_tree): Same. |
| (rewrite_expr_tree_parallel): Same. |
| * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same. |
| * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same. |
| * tree-ssa-structalias.c (process_all_all_constraints): Same. |
| (make_constraints_to): Same. |
| (handle_lhs_call): Same. |
| (find_func_aliases_for_builtin_call): Same. |
| (sort_fieldstack): Same. |
| (check_for_overlaps): Same. |
| * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same. |
| (vect_create_cond_for_unequal_addrs): Same. |
| (vect_create_cond_for_lower_bounds): Same. |
| (vect_create_cond_for_alias_checks): Same. |
| * tree-vect-slp-patterns.c (vect_validate_multiplication): Same. |
| * tree-vect-slp.c (vect_analyze_slp_instance): Same. |
| (vect_make_slp_decision): Same. |
| (vect_slp_bbs): Same. |
| (duplicate_and_interleave): Same. |
| (vect_transform_slp_perm_load): Same. |
| (vect_schedule_slp): Same. |
| * tree-vectorizer.h (vect_transform_slp_perm_load): Same. |
| (vect_schedule_slp): Same. |
| (duplicate_and_interleave): Same. |
| * tree.c (build_vector_from_ctor): Same. |
| (build_vector): Same. |
| (check_vector_cst): Same. |
| (check_vector_cst_duplicate): Same. |
| (check_vector_cst_fill): Same. |
| (check_vector_cst_stepped): Same. |
| * tree.h (build_vector_from_ctor): Same. |
| |
| 2021-07-20 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/101384 |
| * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return |
| type from bool to int. |
| * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the |
| EASY_VECTOR_MSB case if either step or copies is not 1. |
| (vspltis_shifted): Fix comment typo. |
| (easy_altivec_constant): Change return type from bool to int, instead |
| of returning true return byte size of the element mode that should be |
| used to synthetize the constant. |
| * config/rs6000/predicates.md (easy_vector_constant_msb): Require |
| that vspltis_shifted is 0, handle the case where easy_altivec_constant |
| assumes using different vector mode from CONST_VECTOR's mode. |
| * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use |
| easy_altivec_constant to determine mode in which -1 >> -1 should be |
| performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi. |
| |
| 2021-07-20 Richard Biener <rguenther@suse.de> |
| |
| PR debug/101473 |
| * dwarf2out.h (dwarf_file_data): Add key member. |
| * dwarf2out.c (dwarf_file_hasher::equal): Compare key. |
| (dwarf_file_hasher::hash): Hash key. |
| (lookup_filename): Remap the filename and store it in the |
| filename member of dwarf_file_data when creating a new |
| dwarf_file_data. |
| (file_name_acquire): Do not remap the filename again. |
| (maybe_emit_file): Likewise. |
| |
| 2021-07-20 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def: Use two variant |
| generators for all TBL/TBX intrinsics and rename to |
| consistent forms: qtbl[1234] or qtbx[1234]. |
| * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>): |
| Rename to... |
| (aarch64_qtbl1<mode>): This. |
| (aarch64_tbx1<mode>): Rename to... |
| (aarch64_qtbx1<mode>): This. |
| (aarch64_tbl2v16qi): Delete. |
| (aarch64_tbl3<mode>): Rename to... |
| (aarch64_qtbl2<mode>): This. |
| (aarch64_tbx4<mode>): Rename to... |
| (aarch64_qtbx2<mode>): This. |
| * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use |
| renamed qtbl1 and qtbl2 RTL patterns. |
| * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1 |
| RTL pattern. |
| (vqtbl1_s8): Likewise. |
| (vqtbl1_u8): Likewise. |
| (vqtbl1q_p8): Likewise. |
| (vqtbl1q_s8): Likewise. |
| (vqtbl1q_u8): Likewise. |
| (vqtbx1_s8): Use renamed qtbx1 RTL pattern. |
| (vqtbx1_u8): Likewise. |
| (vqtbx1_p8): Likewise. |
| (vqtbx1q_s8): Likewise. |
| (vqtbx1q_u8): Likewise. |
| (vqtbx1q_p8): Likewise. |
| (vtbl1_s8): Use renamed qtbl1 RTL pattern. |
| (vtbl1_u8): Likewise. |
| (vtbl1_p8): Likewise. |
| (vtbl2_s8): Likewise |
| (vtbl2_u8): Likewise. |
| (vtbl2_p8): Likewise. |
| (vtbl3_s8): Use renamed qtbl2 RTL pattern. |
| (vtbl3_u8): Likewise. |
| (vtbl3_p8): Likewise. |
| (vtbl4_s8): Likewise. |
| (vtbl4_u8): Likewise. |
| (vtbl4_p8): Likewise. |
| (vtbx2_s8): Use renamed qtbx2 RTL pattern. |
| (vtbx2_u8): Likewise. |
| (vtbx2_p8): Likewise. |
| (vqtbl2_s8): Use renamed qtbl2 RTL pattern. |
| (vqtbl2_u8): Likewise. |
| (vqtbl2_p8): Likewise. |
| (vqtbl2q_s8): Likewise. |
| (vqtbl2q_u8): Likewise. |
| (vqtbl2q_p8): Likewise. |
| (vqtbx2_s8): Use renamed qtbx2 RTL pattern. |
| (vqtbx2_u8): Likewise. |
| (vqtbx2_p8): Likewise. |
| (vqtbx2q_s8): Likewise. |
| (vqtbx2q_u8): Likewise. |
| (vqtbx2q_p8): Likewise. |
| (vtbx4_s8): Likewise. |
| (vtbx4_u8): Likewise. |
| (vtbx4_p8): Likewise. |
| |
| 2021-07-20 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/100182 |
| * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): |
| Remove. |
| (define_peephole2 atomic_loaddi_fpu): Ditto. |
| |
| 2021-07-20 Kito Cheng <kito.cheng@sifive.com> |
| |
| * config.gcc (riscv*-*-*): Detect which python is available. |
| |
| 2021-07-20 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/vsx.md (mulhs_<mode>): Rename to... |
| (smul<mode>3_highpart): ... this. |
| (mulhu_<mode>): Rename to... |
| (umul<mode>3_highpart): ... this. |
| * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI, |
| MULHU_V2DI, MULHU_V4SI): Adjust. |
| |
| 2021-07-20 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR tree-optimization/100696 |
| * internal-fn.c (first_commutative_argument): Add info for IFN_MULH. |
| * internal-fn.def (IFN_MULH): New internal function. |
| * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to |
| recog normal multiply highpart as IFN_MULH. |
| * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined |
| function CFN_MULH. |
| |
| 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * config/elfos.h (CTF_DEBUGGING_INFO): New definition. |
| (BTF_DEBUGGING_INFO): Likewise. |
| * doc/tm.texi.in: Document the new macros. |
| * doc/tm.texi: Regenerated. |
| * toplev.c: Guard initialization of debug hooks. |
| |
| 2021-07-19 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| * flags.h (ctf_debuginfo_p): New function declaration. |
| * opts.c (ctf_debuginfo_p): New function definition. |
| |
| 2021-07-19 Andrew Stubbs <ams@codesourcery.com> |
| |
| PR target/100208 |
| * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New. |
| (ASM_SPEC): Set -mattr for xnack and sram-ecc. |
| * config/gcn/gcn-opts.h (enum sram_ecc_type): New. |
| * config/gcn/gcn-valu.md: Add a warning comment. |
| * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack. |
| (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target". |
| * config/gcn/gcn.md: Add a warning comment. |
| * config/gcn/gcn.opt: Add -mxnack and -msram-ecc. |
| * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove |
| SRAM-ECC flag. |
| (EF_AMDGPU_XNACK): New. |
| (EF_AMDGPU_SRAM_ECC): New. |
| (elf_flags): New. |
| (copy_early_debug_info): Use elf_flags. |
| (main): Handle -mxnack and -msram-ecc options. |
| * doc/invoke.texi: Document -mxnack and -msram-ecc. |
| |
| 2021-07-19 Andrew Pinski <apinski@marvell.com> |
| |
| PR target/101205 |
| * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ... |
| (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT. |
| |
| 2021-07-19 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101505 |
| * tree-vect-patterns.c (vect_determine_precisions): Walk |
| PHIs also for loop vectorization. |
| |
| 2021-07-19 Richard Biener <rguenther@suse.de> |
| |
| * gimple.h (gimple_expr_type): Remove. |
| * doc/gimple.texi: Remove gimple_expr_type documentation. |
| |
| 2021-07-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type. |
| (ao_ref_init_from_vn_reference): Likewise. |
| (fully_constant_reference): Likewise. |
| (vn_reference_lookup_call): Do not set vr->type to random |
| values. |
| * tree-ssa-pre.c (compute_avail): Do not try to PRE calls |
| without a value. |
| * tree-vect-generic.c (expand_vector_piecewise): Pass in |
| whether we expanded parallel. |
| (expand_vector_parallel): Adjust. |
| (expand_vector_addition): Likewise. |
| (expand_vector_comparison): Likewise. |
| (expand_vector_operation): Likewise. |
| (expand_vector_scalar_condition): Likewise. |
| (expand_vector_conversion): Likewise. |
| |
| 2021-07-19 Richard Biener <rguenther@suse.de> |
| |
| * tree-vrp.c (register_edge_assert_for_2): Use the |
| type from the LHS. |
| (vrp_folder::fold_predicate_in): Likewise. |
| * vr-values.c (gimple_assign_nonzero_p): Likewise. |
| (vr_values::extract_range_from_comparison): Likewise. |
| (vr_values::extract_range_from_ubsan_builtin): Use the |
| type of the first operand. |
| (vr_values::extract_range_basic): Push down type |
| computation, use the appropriate LHS. |
| (vr_values::extract_range_from_assignment): Use the |
| type of the LHS. |
| |
| 2021-07-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101492 |
| * common/config/i386/i386-common.c (ix86_handle_option): For |
| -mgeneral-regs-only, enable the GPR only instructions which are |
| enabled implicitly by SSE ISAs unless they have been disabled |
| explicitly. |
| |
| 2021-07-18 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101495 |
| * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before |
| ix86_avx_u128_mode_needed. |
| (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee |
| returns AVX register. |
| |
| 2021-07-17 Jan Hubicka <hubicka@ucw.cz> |
| |
| * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED. |
| (handle_const_call): Liekise |
| (handle_pure_call): Liekise |
| |
| 2021-07-17 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/96542 |
| * range-op.cc (range_operator::wi_fold_in_parts): New. |
| (range_operator::fold_range): Call wi_fold_in_parts. |
| (operator_lshift::wi_fold): Fix broken lshift by [0,0]. |
| * range-op.h (wi_fold_in_parts): Add prototype. |
| |
| 2021-07-16 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/analyzer.texi: Add __analyzer_dump_state. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rbtree.c: New file. |
| * config/rs6000/rbtree.h: New file. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (restriction): New enum. |
| (typeinfo): Add restr field. |
| (match_bracketed_pair): New function. |
| (match_const_restriction): Implement. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (void_status): New enum. |
| (basetype): Likewise. |
| (typeinfo): Likewise. |
| (handle_pointer): New function. |
| (match_basetype): New stub function. |
| (match_const_restriction): Likewise. |
| (match_type): New function. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New |
| function. |
| (advance_line): Likewise. |
| (safe_inc_pos): Likewise. |
| (match_identifier): Likewise. |
| (match_integer): Likewise. |
| (match_to_right_bracket): Likewise. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable. |
| (ovld_file): Likewise. |
| (header_file): Likewise. |
| (init_file): Likewise. |
| (defines_file): Likewise. |
| (pgm_path): Likewise. |
| (bif_path): Likewise. |
| (ovld_path): Likewise. |
| (header_path): Likewise. |
| (init_path): Likewise. |
| (defines_path): Likewise. |
| (LINELEN): New macro. |
| (linebuf): New variable. |
| (line): Likewise. |
| (pos): Likewise. |
| (diag): Likewise. |
| (bif_diag): New function. |
| (ovld_diag): Likewise. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin-new.def: New. |
| * config/rs6000/rs6000-overload.def: New. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * config/rs6000/rs6000-gen-builtins.c: New. |
| |
| 2021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| * Makefile.in (EXTRA_GTYPE_DEPS): New variable. |
| (s-gtype): Depend on EXTRA_GTYPE_DEPS. |
| * gengtype-state.c (state_writer::write_state_file_list): Add a |
| parameter to the fileslist expression for the number of build |
| headers to scan. |
| (read_state_files_list): Detect build headers and strip the |
| initial "./" or ".\" from their names. |
| * gengtype.c (build_headers): New global variable. |
| (num_build_headers): Likewise. |
| (open_base_files): Emit #include for each build header. |
| (main): Detect and count build headers. |
| * gengtype.h (build_headers): New extern variable. |
| (num_build_headers): Likewise. |
| |
| 2021-07-16 Richard Biener <rguenther@suse.de> |
| |
| * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use |
| the type of the LHS. |
| (find_bswap_or_nop_1): Likewise. |
| (find_bswap_or_nop): Likewise. |
| * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust |
| prototype. |
| * tree-vect-data-refs.c (vect_get_smallest_scalar_type): |
| Remove unused parameters, pass in the scalar type. Fix |
| internal store function handling. |
| * tree-vect-stmts.c (vect_analyze_stmt): Remove assert. |
| (vect_get_vector_types_for_stmt): Move down check for |
| existing vector stmt after we've determined a scalar type. |
| Pass down the used scalar type to vect_get_smallest_scalar_type. |
| * tree-vect-generic.c (expand_vector_condition): Use |
| the type of the LHS. |
| (expand_vector_scalar_condition): Likewise. |
| (expand_vector_operations_1): Likewise. |
| * tree-vect-patterns.c (vect_widened_op_tree): Likewise. |
| (vect_recog_dot_prod_pattern): Likewise. |
| (vect_recog_sad_pattern): Likewise. |
| (vect_recog_widen_op_pattern): Likewise. |
| (vect_recog_widen_sum_pattern): Likewise. |
| (vect_recog_mixed_size_cond_pattern): Likewise. |
| |
| 2021-07-16 Jan Hubicka <hubicka@ucw.cz> |
| |
| * ipa-modref.c (struct escape_entry): Use eaf_fleags_t. |
| (dump_eaf_flags): Dump EAF_NOT_RETURNED |
| (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions |
| and EAF_NOT_RETURNED. |
| (modref_summary::useful_p): Likewise. |
| (modref_summary_lto::useful_p): Likewise. |
| (struct) modref_summary_lto: Use eaf_fleags_t. |
| (deref_flags): Handle EAF_NOT_RETURNED. |
| (struct escape_point): Use min_flags. |
| (modref_lattice::init): Add EAF_NOT_RETURNED. |
| (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions |
| (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return; |
| handle call flags. |
| (analyze_parms): Also analyze const functions; update conition on |
| flags usefulness. |
| (modref_write): Update streaming. |
| (read_section): Update streaming. |
| (remap_arg_flags): Use eaf_flags_t. |
| (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED. |
| * ipa-modref.h: (eaf_flags_t): New typedef. |
| (struct modref_summary): Use eaf_flags_t. |
| * tree-core.h (EAF_NOT_RETURNED): New constant. |
| |
| 2021-07-16 Richard Biener <rguenther@suse.de> |
| |
| * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use |
| the type of the LHS. |
| (gimple_assign_nonnegative_warnv_p): Likewise. |
| (gimple_call_nonnegative_warnv_p): Likewise. Return false |
| if the call has no LHS. |
| * gimple.c (gimple_could_trap_p_1): Use the type of the LHS. |
| * tree-eh.c (stmt_could_throw_1_p): Likewise. |
| * tree-inline.c (insert_init_stmt): Likewise. |
| * tree-ssa-loop-niter.c (get_val_for): Likewise. |
| * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of |
| the def. |
| * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a |
| gassign *. Use the type of the lhs. |
| (vn_nary_op_lookup_stmt): Adjust. |
| (vn_nary_op_insert_stmt): Likewise. |
| |
| 2021-07-16 Ilya Leoshkevich <iii@linux.ibm.com> |
| |
| * config/s390/predicates.md (bras_sym_operand): Accept all |
| functions in 64-bit mode, use UNSPEC_PLT31. |
| (larl_operand): Use UNSPEC_PLT31. |
| * config/s390/s390.c (s390_loadrelative_operand_p): Likewise. |
| (legitimize_pic_address): Likewise. |
| (s390_emit_tls_call_insn): Mark __tls_get_offset as function, |
| use UNSPEC_PLT31. |
| (s390_delegitimize_address): Use UNSPEC_PLT31. |
| (s390_output_addr_const_extra): Likewise. |
| (print_operand): Add @PLT to TLS calls, handle %K. |
| (s390_function_profiler): Mark __fentry__/_mcount as function, |
| use %K, use UNSPEC_PLT31. |
| (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K. |
| (s390_emit_call): Use UNSPEC_PLT31. |
| (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function. |
| * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT. |
| (*movdi_64): Use %K. |
| (reload_base_64): Likewise. |
| (*sibcall_brc): Likewise. |
| (*sibcall_brcl): Likewise. |
| (*sibcall_value_brc): Likewise. |
| (*sibcall_value_brcl): Likewise. |
| (*bras): Likewise. |
| (*brasl): Likewise. |
| (*bras_r): Likewise. |
| (*brasl_r): Likewise. |
| (*bras_tls): Likewise. |
| (*brasl_tls): Likewise. |
| (main_base_64): Likewise. |
| (reload_base_64): Likewise. |
| (@split_stack_call<mode>): Likewise. |
| |
| 2021-07-16 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101467 |
| * tree-vect-stmts.c (vect_gen_while): Properly guard |
| make_temp_ssa_name usage. |
| |
| 2021-07-16 Cooper Qu <cooper.qu@linux.alibaba.com> |
| |
| * config.gcc: Don't use forked print-sysroot-suffix.sh and |
| t-sysroot-suffix for C-SKY. |
| * config/csky/print-sysroot-suffix.sh: Delete. |
| * config/csky/t-csky-linux: Delete. |
| * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES |
| instead of CSKY_MULTILIB_DIRNAMES. |
| |
| 2021-07-16 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign |
| conversion issues with the partial reduction of the reused |
| vector accumulator. |
| |
| 2021-07-16 Richard Biener <rguenther@suse.de> |
| |
| * config/i386/i386-options.c (ix86_option_override_internal): Set |
| param_vect_partial_vector_usage to zero if not set. |
| |
| 2021-07-15 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/101346 |
| * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode. |
| (VALID_INT_MODE_P): Add SDmode and DDmode. |
| Add TDmode for TARGET_64BIT. |
| (VALID_DFP_MODE_P): Remove. |
| * config/i386/i386.c (ix86_hard_regno_mode_ok): |
| Do not use VALID_DFP_MODE_P. |
| |
| 2021-07-15 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (adjust_pointer_diff_expr): Use |
| gimple_range_type. |
| (fold_using_range::fold_stmt): Ditto. |
| (fold_using_range::range_of_range_op): Ditto. |
| (fold_using_range::range_of_phi): Ditto. |
| (fold_using_range::range_of_call): Ditto. |
| (fold_using_range::range_of_builtin_ubsan_call): Ditto. |
| (fold_using_range::range_of_builtin_call): Ditto. |
| (fold_using_range::range_of_cond_expr): Ditto. |
| * gimple-range-fold.h (gimple_range_type): New. |
| |
| 2021-07-15 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/97027 |
| * tree-ssa-strlen.c (handle_assign): New function. |
| (maybe_warn_overflow): Add argument. |
| (nonzero_bytes_for_type): New function. |
| (count_nonzero_bytes): Handle more tree types. Call |
| nonzero_bytes_for_tye. |
| (count_nonzero_bytes): Handle types. |
| (handle_store): Handle stores from function calls. |
| (strlen_check_and_optimize_call): Move code to handle_assign. Call |
| it for assignments from function calls. |
| |
| 2021-07-15 David Malcolm <dmalcolm@redhat.com> |
| |
| PR analyzer/95006 |
| PR analyzer/94713 |
| PR analyzer/94714 |
| * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value. |
| |
| 2021-07-15 David Malcolm <dmalcolm@redhat.com> |
| |
| * doc/invoke.texi (-fdump-analyzer-exploded-paths): New. |
| |
| 2021-07-15 Martin Sebor <msebor@redhat.com> |
| |
| PR c/101289 |
| PR c/97548 |
| * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME. |
| (operand_compare::verify_hash_value): Same. |
| * tree-core.h (OEP_DECL_NAME): New. |
| |
| 2021-07-15 Martin Jambor <mjambor@suse.cz> |
| |
| * profile-count.h (profile_count::value): Change the return type to |
| uint64_t. |
| * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print |
| statement. |
| * tree-cfg.c (dump_function_to_file): Likewise. |
| |
| 2021-07-15 Bill Schmidt <wschmidt@linux.ibm.com> |
| |
| PR target/101129 |
| * config/rs6000/rs6000-p8swap.c (has_part_mult): New. |
| (rs6000_analyze_swaps): Insns containing a subreg of a mult are |
| not swappable. |
| |
| 2021-07-15 Richard Biener <rguenther@suse.de> |
| |
| * tree-vectorizer.h (vect_gen_while): Match up with |
| vect_gen_while_not. |
| * tree-vect-stmts.c (vect_gen_while): Adjust API to that |
| of vect_gen_while_not. |
| (vect_gen_while_not): Adjust. |
| * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise. |
| |
| 2021-07-15 Aldy Hernandez <aldyh@redhat.com> |
| |
| * gimple-range-cache.cc (non_null_ref::adjust_range): New. |
| (ranger_cache::range_of_def): Call adjust_range. |
| (ranger_cache::entry_range): Same. |
| * gimple-range-cache.h (non_null_ref::adjust_range): New. |
| * gimple-range.cc (gimple_ranger::range_of_expr): Call |
| adjust_range. |
| (gimple_ranger::range_on_entry): Same. |
| |
| 2021-07-15 Tamar Christina <tamar.christina@arm.com> |
| |
| Revert: |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements. |
| |
| 2021-07-15 Tamar Christina <tamar.christina@arm.com> |
| |
| Revert: |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... |
| (sdot_prod, udot_prod): ...These. |
| * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove. |
| (aarch64_<sur>dot<vsi2qi>): Rename to... |
| (<sur>dot_prod<vsi2qi>): ...This. |
| * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): |
| Update builtins. |
| |
| 2021-07-15 Jakub Jelinek <jakub@redhat.com> |
| |
| PR middle-end/101437 |
| * gimplify.c (gimplify_expr): Throw away volatile reads from empty |
| types even if they have non-BLKmode TYPE_MODE. |
| |
| 2021-07-15 Richard Biener <rguenther@suse.de> |
| |
| PR driver/101383 |
| * gcc.c (process_command): Process -gtoggle like process_options |
| would after parsing options. |
| |
| 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| * cfgexpand.c (expand_asm_loc): Adjust. |
| (expand_asm_stmt): Likewise. |
| * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise. |
| * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. |
| * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. |
| * config/avr/avr.c (avr_md_asm_adjust): Likewise. |
| * config/cris/cris.c (cris_md_asm_adjust): Likewise. |
| * config/i386/i386.c (ix86_md_asm_adjust): Likewise. |
| * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. |
| * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. |
| * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. |
| * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. |
| * config/s390/s390.c (s390_md_asm_adjust): Likewise. |
| * config/vax/vax.c (vax_md_asm_adjust): Likewise. |
| * config/visium/visium.c (visium_md_asm_adjust): Likewise. |
| * doc/tm.texi: Regenerate. |
| * target.def: Add location argument to md_asm_adjust. |
| |
| 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| * tree-diagnostic.c (diagnostic_report_current_function): Use the |
| diagnostic's location, not input_location. |
| |
| 2021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> |
| |
| * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to |
| diagnostics. |
| (expand_asm_stmt): Likewise. |
| |
| 2021-07-14 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower |
| addressed memory rtx, if any. |
| (rs6000_split_multireg_move): Fix code formatting. |
| Handle MMA build built-ins with operands in adjacent memory locations. |
| |
| 2021-07-14 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later |
| in the file. |
| |
| 2021-07-14 Jason Merrill <jason@redhat.com> |
| |
| * sel-sched-ir.h (get_all_loop_exits): Use auto_vec. |
| |
| 2021-07-14 Jason Merrill <jason@redhat.com> |
| |
| * doc/invoke.texi: -fdelete-dead-exceptions is on by default for |
| C++. |
| |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * tree-vect-patterns.c (vect_recog_dot_prod_pattern): |
| Remove erroneous line. |
| |
| 2021-07-14 Andrew MacLeod <amacleod@redhat.com> |
| |
| * params.opt (param_evrp_mode): Change default. |
| |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... |
| (sdot_prod, udot_prod): ...These. |
| * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove. |
| (aarch64_<sur>dot<vsi2qi>): Rename to... |
| (<sur>dot_prod<vsi2qi>): ...This. |
| * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): |
| Update builtins. |
| |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements. |
| |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document. |
| |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/arm/neon.md (usdot_prod<vsi2qi>): New. |
| |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to... |
| (usdot_prod<vsi2qi>): ... This. |
| * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to... |
| (usdot_prod): ...This. |
| * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise. |
| * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>): |
| Rename to... |
| (@<sur>dot_prod<vsi2qi>): ...This. |
| * config/aarch64/aarch64-sve-builtins-base.cc |
| (svusdot_impl::expand): Use it. |
| |
| 2021-07-14 Tamar Christina <tamar.christina@arm.com> |
| |
| * optabs.def (usdot_prod_optab): New. |
| * doc/md.texi: Document it and clarify other dot prod optabs. |
| * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign. |
| * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab. |
| * optabs.c (expand_widen_pattern_expr): Likewise. |
| * tree-cfg.c (verify_gimple_assign_ternary): Likewise. |
| * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind. |
| * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional |
| optab subtype. |
| (vect_widened_op_tree): Optionally ignore |
| mismatch types. |
| (vect_recog_dot_prod_pattern): Support usdot_prod_optab. |
| |
| 2021-07-14 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR target/101395 |
| * config/i386/driver-i386.c (host_detect_local_cpu): Check |
| "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen. |
| Enable UINTR only for 64-bit codegen. |
| * config/i386/i386-options.c |
| (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not |
| in 64-bit mode. |
| * config/i386/i386.h (ARCH_ARG): New. |
| (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and |
| "[arch|tune] 64" for 64-bit codegen. |
| |
| 2021-07-14 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101445 |
| * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment |
| of the IV in the correct direction for negative stride |
| accesses. |
| |
| 2021-07-14 Jakub Jelinek <jakub@redhat.com> |
| |
| PR go/101407 |
| * godump.c (godump_str_hash): New type. |
| (godump_container::pot_dummy_types): Use string_hash instead of |
| ptr_hash in the hash_set. |
| |
| 2021-07-14 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop.c (vect_find_reusable_accumulator): Handle |
| vector types where the old vector type has a multiple of |
| the new vector type elements. |
| (vect_create_partial_epilog): New function, split out from... |
| (vect_create_epilog_for_reduction): ... here. |
| (vect_transform_cycle_phi): Reduce the re-used accumulator |
| to the new vector type. |
| |
| 2021-07-14 Alexandre Oliva <oliva@adacore.com> |
| |
| * tree-ssa-alias.c (attr_fnspec::verify): Fix index in |
| non-'t'-sized arg check. |
| |
| 2021-07-14 Alexandre Oliva <oliva@adacore.com> |
| |
| * tree-cfg.c (cleanup_dead_labels_eh): Update |
| post_landing_pad label upon change of landing pad block's |
| primary label. |
| (cleanup_dead_labels): Check that a removed label is not that |
| of a landing pad. |
| |
| 2021-07-13 Jonathan Wright <jonathan.wright@arm.com> |
| |
| * combine.c (combine_simplify_rtx): Add vec_select -> subreg |
| simplification. |
| * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): |
| Add Neon to general purpose register case for zero-extend |
| pattern. |
| * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r |
| case to prevent some cases opting to go through memory. |
| * cse.c (fold_rtx): Add vec_select -> subreg simplification. |
| * rtl.c (rtvec_series_p): Define predicate to determine |
| whether a vector contains a linear series of integers. |
| * rtl.h (rtvec_series_p): Define. |
| * rtlanal.c (vec_series_lowpart_p): Define predicate to |
| determine if a vector selection is equivalent to the low part |
| of the vector. |
| * rtlanal.h (vec_series_lowpart_p): Define. |
| * simplify-rtx.c (simplify_context::simplify_binary_operation_1): |
| Add vec_select -> subreg simplification. |
| |
| 2021-07-13 Paul A. Clarke <pc@us.ibm.com> |
| |
| * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128, |
| _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, |
| _mm_test_mix_ones_zeros): New. |
| |
| 2021-07-13 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| * gimple.c (gimple_could_trap_p_1): Make S argument a |
| "const gimple*". Preserve constness in call to |
| gimple_asm_volatile_p. |
| (gimple_could_trap_p): Make S argument a "const gimple*". |
| * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p): |
| Update function prototypes. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h (vect_reusable_accumulator): New structure. |
| (_loop_vec_info::main_loop_edge): New field. |
| (_loop_vec_info::skip_main_loop_edge): Likewise. |
| (_loop_vec_info::skip_this_loop_edge): Likewise. |
| (_loop_vec_info::reusable_accumulators): Likewise. |
| (_stmt_vec_info::reduc_scalar_results): Likewise. |
| (_stmt_vec_info::reused_accumulator): Likewise. |
| (vect_get_main_loop_result): Declare. |
| * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize |
| reduc_scalar_inputs. |
| (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs. |
| * tree-vect-loop-manip.c (vect_get_main_loop_result): New function. |
| (vect_do_peeling): Fill an epilogue loop's main_loop_edge, |
| skip_main_loop_edge and skip_this_loop_edge fields. |
| * tree-vect-loop.c (INCLUDE_ALGORITHM): Define. |
| (vect_emit_reduction_init_stmts): New function. |
| (get_initial_def_for_reduction): Use it. |
| (get_initial_defs_for_reduction): Likewise. Change the vinfo |
| parameter to a loop_vec_info. |
| (vect_create_epilog_for_reduction): Store the scalar results |
| in the reduc_info. If an epilogue loop is reusing an accumulator |
| from the main loop, and if the epilogue loop can also be skipped, |
| try to place the reduction code in the join block. Record |
| accumulators that could potentially be reused by epilogue loops. |
| (vect_transform_cycle_phi): When vectorizing epilogue loops, |
| try to reuse accumulators from the main loop. Record the initial |
| value in reduc_info for non-SLP reductions too. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (get_initial_def_for_reduction): Remove |
| adjustment handling. Take the neutral value as an argument, |
| in place of the code argument. |
| (vect_transform_cycle_phi): Update accordingly. Handle the |
| initial values of cond reductions separately from code reductions. |
| Choose the adjustment here rather than in |
| get_initial_def_for_reduction. Sink the splat of vec_initial_def. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with... |
| (neutral_op_for_reduction): ...this, providing a more general |
| interface. |
| (vect_create_epilog_for_reduction): Update accordingly. |
| (vectorizable_reduction): Likewise. |
| (vect_transform_cycle_phi): Likewise. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (get_initial_def_for_reduction): Take the |
| reduc_info instead of the original stmt_vec_info. |
| (vect_transform_cycle_phi): Update accordingly. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (get_initial_defs_for_reduction): Take the |
| reduc_info as an additional parameter. |
| (vect_transform_cycle_phi): Update accordingly. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vectorizer.h: Include tree-ssa-operands.h. |
| (vect_phi_initial_value): New function. |
| * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it. |
| (get_initial_defs_for_reduction, info_for_reduction): Likewise. |
| (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. |
| (vect_transform_cycle_phi, vectorizable_induction): Likewise. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert |
| the phi results to vectype after creating them. Remove later |
| conversion code that thus becomes redundant. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace |
| the new_phis vector with a reduc_inputs vector. Combine handling |
| of reduction chains and ncopies > 1. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate |
| scalar_results to group_size elements after reducing down from |
| N*group_size elements. Construct an array_slice of the live-out |
| stmts and assert that there is one stmt per scalar result. |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove |
| nested_in_vect_loop and use double_reduc everywhere. Remove dead |
| assignment to "loop". |
| |
| 2021-07-13 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * internal-fn.c (vectorized_internal_fn_supported_p): Handle |
| vector types first. For scalar types, consider both the preferred |
| vector mode and the alternative vector modes. |
| * optabs-query.c (can_vec_mask_load_store_p): Use the same |
| structure as above, in particular using related_vector_mode |
| for modes provided by autovectorize_vector_modes. |
| |
| 2021-07-13 Jakub Jelinek <jakub@redhat.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101419 |
| * tree-pass.h (PROP_objsz): Define. |
| (make_pass_early_object_sizes): Declare. |
| * passes.def (pass_all_early_optimizations): Rename pass_object_sizes |
| there to pass_early_object_sizes, drop parameter. |
| (pass_all_optimizations): Move pass_object_sizes right after pass_ccp, |
| drop parameter, move pass_post_ipa_warn right after that. |
| * tree-object-size.c (pass_object_sizes::execute): Rename to... |
| (object_sizes_execute): ... this. Add insert_min_max_p argument. |
| (pass_data_object_sizes): Move after object_sizes_execute. |
| (pass_object_sizes): Likewise. In execute method call |
| object_sizes_execute, drop set_pass_param method and insert_min_max_p |
| non-static data member and its initializer in the ctor. |
| (pass_data_early_object_sizes, pass_early_object_sizes, |
| make_pass_early_object_sizes): New. |
| * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use |
| (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining. |
| |
| 2021-07-13 Kito Cheng <kito.cheng@sifive.com> |
| |
| PR target/101275 |
| * config/riscv/constraints.md ("S"): Update description and remove |
| @internal. |
| * doc/md.texi (Machine Constraints): Document the 'S' constraints |
| for RISC-V. |
| |
| 2021-07-13 Richard Biener <rguenther@suse.de> |
| |
| Revert: |
| 2021-07-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_slp_region): Show the number of |
| SLP graph entries in the optimization message. |
| |
| 2021-07-13 Michael Meissner <meissner@linux.ibm.com> |
| |
| * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable |
| value to to long. |
| * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change |
| return type to long. |
| * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return |
| type to long. |
| |
| 2021-07-12 Andrew MacLeod <amacleod@redhat.com> |
| |
| * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call): |
| Query relation between the 2 operands and use it. |
| |
| 2021-07-12 Sergei Trofimovich <siarheit@google.com> |
| |
| * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo. |
| |
| 2021-07-12 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/101424 |
| * config/i386/predicates.md (vec_setm_sse41_operand): |
| Rename from vec_setm_operand. |
| (vec_setm_avx2_operand): New predicate. |
| * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator. |
| Use vec_setm_sse41_operand as operand 2 predicate. |
| (vec_set<V_256_512:mode): New expander. |
| * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand |
| as operand 2 predicate. |
| |
| 2021-07-12 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101335 |
| * range-op.cc (operator_cast::lhs_op1_relation): Delete. |
| |
| 2021-07-12 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-ssa-phiopt.c (match_simplify_replacement): Move |
| insert of the sequence before the movement of the |
| statement. Check if to see if the statement is used |
| outside of the original phi to see if we should move it. |
| |
| 2021-07-12 Richard Biener <rguenther@suse.de> |
| |
| * dump-context.h (debug_dump_context::debug_dump_context): |
| Add FILE * parameter defaulted to stderr. |
| * dumpfile.c (debug_dump_context::debug_dump_context): Adjust. |
| * tree-vect-slp.c (dot_slp_tree): New functions. |
| |
| 2021-07-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101373 |
| * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping |
| references when the BB may not return. |
| (compute_avail): Pass in the function we're working on and |
| replace cfun references with it. Externally throwing |
| const calls also possibly terminate the function. |
| (pass_pre::execute): Pass down the function we're working on. |
| * gcse.c (compute_hash_table_work): Externally throwing |
| const/pure calls also need record_last_mem_set_info. |
| * postreload-gcse.c (record_opr_changes): Looping or externally |
| throwing const/pure calls also need record_last_mem_set_info. |
| |
| 2021-07-12 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * recog.c (memory_address_addr_space_p): Change the type to bool. |
| Return true/false instead of 1/0. |
| (offsettable_memref_p): Ditto. |
| (offsettable_nonstrict_memref_p): Ditto. |
| (offsettable_address_addr_space_p): Ditto. |
| Change the type of addressp indirect function to bool. |
| * recog.h (memory_address_addr_space_p): Change the type to bool. |
| (strict_memory_address_addr_space_p): Ditto. |
| (offsettable_memref_p): Ditto. |
| (offsettable_nonstrict_memref_p): Ditto. |
| (offsettable_address_addr_space_p): Ditto. |
| * reload.c (maybe_memory_address_addr_space_p): Ditto. |
| (strict_memory_address_addr_space_p): Change the type to bool. |
| Return true/false instead of 1/0. |
| (maybe_memory_address_addr_space_p): Change the type to bool. |
| |
| 2021-07-12 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-slp.c (vect_slp_region): Show the number of |
| SLP graph entries in the optimization message. |
| |
| 2021-07-12 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101394 |
| * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting |
| copies from abnormals for a full redundancy. |
| |
| 2021-07-12 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/101423 |
| * gimple.c (gimple_could_trap_p_1): Internal function calls |
| do not trap. |
| * tree-eh.c (tree_could_trap_p): Likewise. |
| |
| 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/66791 |
| * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with |
| __a * __b. |
| (vmulq_n_u32): Likewise. |
| (vmul_n_f32): Gate __a * __b on __FAST_MATH__. |
| (vmulq_n_f32): Likewise. |
| (vmul_n_f16): Likewise. |
| (vmulq_n_f16): Likewise. |
| |
| 2021-07-12 Martin Liska <mliska@suse.cz> |
| |
| PR sanitizer/101425 |
| * gcc.c (check_offload_target_name): Call |
| candidates_list_and_hint only if we have a candidate. |
| |
| 2021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> |
| |
| PR target/98435 |
| * config/arm/neon.md (vec_init): Move to ... |
| * config/arm/vec-common.md (vec_init): ... here. |
| Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE. |
| |
| 2021-07-12 Roger Sayle <roger@nextmovesoftware.com> |
| |
| PR tree-optimization/101403 |
| * match.pd ((T)bswap(X)>>C): Correctly handle cases where |
| signedness of the shift is not the same as the signedness of |
| the type extension. |
| |
| 2021-07-09 Roger Sayle <roger@nextmovesoftware.com> |
| Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*divmodsi4_const): Optimize SImode |
| divmod of a constant numerator with new define_insn_and_split. |
| |
| 2021-07-09 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/100152 |
| * config/i386/i386-expand.c (ix86_expand_call): If a call is |
| to a non-local-binding, or local but to a public symbol, then |
| assume that it might be indirected via the lazy symbol binder. |
| Mark R10 and R10 as clobbered in that case. |
| |
| 2021-07-09 Eric Botcazou <ebotcazou@adacore.com> |
| |
| PR target/101377 |
| * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in |
| the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined |
| and HAVE_LD_BROKEN_PE_DWARF5 is defined. |
| |
| 2021-07-09 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the |
| log2 range of operands[3] to [1,31]. |
| (*udivmodsi4_pow2_zext_2): Ditto. Correct insn RTX pattern. |
| |
| 2021-07-09 Sergei Trofimovich <siarheit@google.com> |
| |
| * doc/md.texi: Don't split @smallexample in multiple @groups. |
| |
| 2021-07-09 Sergei Trofimovich <siarheit@google.com> |
| |
| * doc/md.texi: Add missing 'see' word. |
| |
| 2021-07-09 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments |
| to take sequence and gimple_match_op. Accept the case where |
| op is a SSA_NAME and one statement in the sequence. |
| Also allow constants. |
| (gimple_simplify_phiopt): Always pass a sequence to resimplify. |
| Update call to phiopt_early_allow. Discard the sequence if not |
| used. |
| |
| 2021-07-09 Xi Ruoyao <xry111@mengyan1223.wang> |
| |
| PR target/100760 |
| PR target/100761 |
| PR target/100762 |
| * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P |
| instead of ISA_HAS_MSA. |
| (mips_expand_vec_unpack): Likewise. |
| (mips_expand_vector_init): Likewise. |
| |
| 2021-07-09 Kewen Lin <linkw@linux.ibm.com> |
| |
| * config/rs6000/vsx.md (mods_<mode>): Rename to... |
| (mod<mode>3): ... this. |
| (modu_<mode>): Rename to... |
| (umod<mode>3): ... this. |
| * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI, |
| MODU_V4SI): Adjust. |
| |
| 2021-07-08 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/h8300/shiftrotate.md (variable shifts): Expose condition |
| code handling for the test before the loop. |
| |
| 2021-07-08 Martin Jambor <mjambor@suse.cz> |
| |
| PR ipa/101066 |
| * ipa-sra.c (class isra_call_summary): New member |
| m_before_any_store, initialize it in the constructor. |
| (isra_call_summary::dump): Dump the new field. |
| (ipa_sra_call_summaries::duplicate): Copy it. |
| (process_scan_results): Set it. |
| (isra_write_edge_summary): Stream it. |
| (isra_read_edge_summary): Likewise. |
| (param_splitting_across_edge): Only override |
| safe_to_import_accesses if m_before_any_store is set. |
| |
| 2021-07-08 Martin Sebor <msebor@redhat.com> |
| |
| PR bootstrap/101374 |
| * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): |
| Use Object Size Type 0 instead of 1. |
| |
| 2021-07-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * tree-vect-loop.c (vectorizable_reduction): Remove always-true |
| if condition. |
| |
| 2021-07-08 Richard Sandiford <richard.sandiford@arm.com> |
| |
| * match.pd: Simplify an extend-operate-truncate sequence involving |
| a POLY_INT_CST. |
| |
| 2021-07-08 Roger Sayle <roger@nextmovesoftware.com> |
| Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/40210 |
| * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as |
| (x>>C3)&C2 when possible. Simplify bswap(x)>>C1 as ((T)x)>>C2 |
| when possible. Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255. |
| |
| 2021-07-08 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/100637 |
| * config/i386/i386-expand.c (ix86_expand_sse_unpack): |
| Handle V4QI mode. |
| * config/i386/mmx.md (V_32): New mode iterator. |
| (mov<V_32:mode>): Use V_32 mode iterator. |
| (*mov<V_32:mode>_internal): Ditto. |
| (*push<V_32:mode>2_rex64): Ditto. |
| (*push<V_32:mode>2): Ditto. |
| (movmisalign<V_32:mode>): Ditto. |
| (mmx_<any_shiftrt:insn>v1si3): New insn pattern. |
| (sse4_1_<any_extend:code>v2qiv2hi2): Ditto. |
| (vec_unpacks_lo_v4qi): New expander. |
| (vec_unpacks_hi_v4qi): Ditto. |
| (vec_unpacku_lo_v4qi): Ditto. |
| (vec_unpacku_hi_v4qi): Ditto. |
| * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode. |
| (VALID_INT_MODE_P): Ditto. |
| |
| 2021-07-08 Michael Meissner <meissner@linux.ibm.com> |
| |
| PR target/100809 |
| * config/rs6000/rs6000.md (udivti3): New insn. |
| (divti3): New insn. |
| (umodti3): New insn. |
| (modti3): New insn. |
| |
| 2021-07-07 Martin Sebor <msebor@redhat.com> |
| |
| PR tree-optimization/100137 |
| PR tree-optimization/99121 |
| PR tree-optimization/97027 |
| * builtins.c (access_ref::access_ref): Also set offmax. |
| (access_ref::offset_in_range): Define new function. |
| (access_ref::add_offset): Set offmax. |
| (access_ref::inform_access): Handle access_none. |
| (handle_mem_ref): Clear ostype. |
| (compute_objsize_r): Handle ASSERT_EXPR. |
| * builtins.h (struct access_ref): Add offmax member. |
| * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use |
| compute_objsize() and simplify. |
| |
| 2021-07-07 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP |
| and VSX_BUILTIN_STXVP. |
| |
| 2021-07-07 Martin Sebor <msebor@redhat.com> |
| |
| PR target/101363 |
| * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove |
| a stray %K from error_at() missed in r12-2088. |
| |
| 2021-07-07 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/99728 |
| * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record |
| aggregate copies. |
| (mem_refs_may_alias_p): Add assert we handled aggregate |
| copies elsewhere. |
| (sm_seq_valid_bb): Give up when running into aggregate copies. |
| (ref_indep_loop_p): Handle aggregate copies as never |
| being invariant themselves but allow other refs to be |
| disambiguated against them. |
| (can_sm_ref_p): Do not try to apply store-motion to aggregate |
| copies. |
| |
| 2021-07-06 Indu Bhagat <indu.bhagat@oracle.com> |
| |
| PR debug/101283 |
| * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get |
| number of bits. |
| |
| 2021-07-06 Martin Sebor <msebor@redhat.com> |
| |
| * gimple-pretty-print.c (percent_G_format): Remove. |
| * tree-diagnostic.c (default_tree_printer): Remove calls. |
| * tree-pretty-print.c (percent_K_format): Remove. |
| * tree-pretty-print.h (percent_K_format): Remove. |
| |
| 2021-07-06 Martin Sebor <msebor@redhat.com> |
| |
| * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin): |
| Remove %K and use error_at. |
| (aarch64_expand_fcmla_builtin): Same. |
| (aarch64_expand_builtin_tme): Same. |
| (aarch64_expand_builtin_memtag): Same. |
| * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same. |
| (arm_expand_builtin): Same. |
| * config/arm/arm.c (bounds_check): Same. |
| |
| 2021-07-06 Martin Sebor <msebor@redhat.com> |
| |
| * builtins.c (warn_string_no_nul): Remove %G. |
| (maybe_warn_for_bound): Same. |
| (warn_for_access): Same. |
| (check_access): Same. |
| (check_strncat_sizes): Same. |
| (expand_builtin_strncat): Same. |
| (expand_builtin_strncmp): Same. |
| (expand_builtin): Same. |
| (expand_builtin_object_size): Same. |
| (warn_dealloc_offset): Same. |
| (maybe_emit_free_warning): Same. |
| * calls.c (maybe_warn_alloc_args_overflow): Same. |
| (maybe_warn_nonstring_arg): Same. |
| (maybe_warn_rdwr_sizes): Same. |
| * expr.c (expand_expr_real_1): Remove %K. |
| * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G. |
| (gimple_fold_builtin_strncat): Same. |
| * gimple-ssa-sprintf.c (format_directive): Same. |
| (handle_printf_call): Same. |
| * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same. |
| * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same. |
| (maybe_diag_access_bounds): Same. Call gimple_location. |
| (check_bounds_or_overlap): Same. |
| * trans-mem.c (ipa_tm_scan_irr_block): Remove %K. Simplify. |
| * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G. |
| * tree-ssa-strlen.c (maybe_warn_overflow): Same. |
| (maybe_diag_stxncpy_trunc): Same. |
| (handle_builtin_stxncpy_strncat): Same. |
| (maybe_warn_pointless_strcmp): Same. |
| * tree-ssa-uninit.c (maybe_warn_operand): Same. |
| |
| 2021-07-06 Uroš Bizjak <ubizjak@gmail.com> |
| |
| PR target/97194 |
| * config/i386/predicates.md (vec_setm_operand): Enable |
| register_operand for TARGET_SSE4_1. |
| * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand |
| as operand 2 predicate. Call ix86_expand_vector_set_var |
| for non-constant index operand. |
| (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate. |
| Call ix86_expand_vector_set_var for non-constant index operand. |
| |
| 2021-07-06 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/h8300/jumpcall.md (*branch): When possible, generate |
| the comparison in CCZN mode. |
| * config/h8300/predicates.md (simple_memory_operand): Reject all |
| auto-increment addressing modes. |
| |
| 2021-07-06 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR bootstrap/100246 |
| * config/i386/i386.h (struct stringop_algs): Define a CTOR for |
| this type. |
| |
| 2021-07-06 Richard Biener <rguenther@suse.de> |
| |
| * doc/md.texi (vec_fmaddsub<mode>4): Document. |
| (vec_fmsubadd<mode>4): Likewise. |
| * optabs.def (vec_fmaddsub$a4): Add. |
| (vec_fmsubadd$a4): Likewise. |
| * internal-fn.def (IFN_VEC_FMADDSUB): Add. |
| (IFN_VEC_FMSUBADD): Likewise. |
| * tree-vect-slp-patterns.c (addsub_pattern::recognize): |
| Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD. |
| (addsub_pattern::build): Likewise. |
| * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB |
| and CFN_VEC_FMSUBADD are not transparent for permutes. |
| * config/i386/sse.md (vec_fmaddsub<mode>4): New expander. |
| (vec_fmsubadd<mode>4): Likewise. |
| |
| 2021-07-06 Richard Biener <rguenther@suse.de> |
| |
| * doc/invoke.texi (fmove-loop-stores): Document. |
| * common.opt (fmove-loop-stores): New option. |
| * opts.c (default_options_table): Enable -fmove-loop-stores |
| at -O1 but not -Og. |
| * tree-ssa-loop-im.c (pass_lim::execute): Pass |
| flag_move_loop_stores instead of true to |
| loop_invariant_motion_in_fun. |
| |
| 2021-07-06 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * doc/install.texi: Document --with-dsymutil. |
| |
| 2021-07-06 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/101256 |
| * dbgcnt.def (phiopt_edge_range): New counter. |
| * tree-ssa-phiopt.c (replace_phi_edge_with_variable): |
| Check to make sure the new name is defined in the same |
| bb as the conditional before duplicating range info. |
| Also add debug counter. |
| |
| 2021-07-06 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR rtl-optimization/100328 |
| * config/i386/i386-options.c (ix86_option_override_internal): |
| Set param_ira_consider_dup_in_all_alts to 0. |
| |
| 2021-07-06 Kewen Lin <linkw@linux.ibm.com> |
| |
| PR rtl-optimization/100328 |
| * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new |
| parameter. |
| * ira.c (ira_get_dup_out_num): Adjust as parameter |
| param_ira_consider_dup_in_all_alts. |
| * params.opt (ira-consider-dup-in-all-alts): New. |
| * ira-conflicts.c (process_regs_for_copy): Add one parameter |
| single_input_op_has_cstr_p. |
| (get_freq_for_shuffle_copy): New function. |
| (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p. |
| * ira-int.h (ira_get_dup_out_num): Add one bool parameter. |
| |
| 2021-07-05 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to |
| generate condition code aware RTL directly. |
| |
| 2021-07-05 Andrew Pinski <apinski@marvell.com> |
| |
| PR tree-optimization/101039 |
| * match.pd (A CMP 0 ? A : -A): New patterns. |
| * tree-ssa-phiopt.c (abs_replacement): Delete function. |
| (tree_ssa_phiopt_worker): Don't call abs_replacement. |
| Update comment about abs_replacement. |
| |
| 2021-07-05 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-ssa-phiopt.c (gimple_simplify_phiopt): |
| If "A ? B : C" fails to simplify, try "(!A) ? C : B". |
| |
| 2021-07-05 Andrew Pinski <apinski@marvell.com> |
| |
| * tree-ssa-phiopt.c (match_simplify_replacement): |
| Add early_p argument. Call gimple_simplify_phiopt |
| instead of gimple_simplify. |
| (tree_ssa_phiopt_worker): Update call to |
| match_simplify_replacement and allow unconditionally. |
| (phiopt_early_allow): New function. |
| (gimple_simplify_phiopt): New function. |
| |
| 2021-07-05 Andrew Pinski <apinski@marvell.com> |
| |
| PR middle-end/101237 |
| * fold-const.c (negate_expr_p): Remove call to element_mode |
| and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS, |
| HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS. |
| (fold_negate_expr_1): Likewise. |
| (const_unop): Likewise. |
| (fold_cond_expr_with_comparison): Likewise. |
| (fold_binary_loc): Likewise. |
| (fold_ternary_loc): Likewise. |
| (tree_call_nonnegative_warnv_p): Likewise. |
| * match.pd (-(A + B) -> (-B) - A): Likewise. |
| |
| 2021-07-05 Iain Sandoe <iain@sandoe.co.uk> |
| |
| * configure.ac: Handle --with-dsymutil in the same way as we |
| do for the assembler and linker. (DEFAULT_DSYMUTIL): New. |
| Extract the type and version for the dsymutil configured or |
| found by the default searches. |
| * config.in: Regenerated. |
| * configure: Regenerated. |
| * collect2.c (do_dsymutil): Handle locating dsymutil in the |
| same way as for the assembler and linker. |
| * config/darwin.h (DSYMUTIL): Delete. |
| * gcc.c: Report a configured dsymutil correctly. |
| * exec-tool.in: Allow for dsymutil. |
| |
| 2021-07-05 Uroš Bizjak <ubizjak@gmail.com> |
| |
| * config/i386/i386-expand.c (ix86_split_mmx_punpck): |
| Handle V4QI and V2HI modes. |
| (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1. |
| Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes. |
| (expand_vec_perm_pshufb): Rewrite to use switch statemets. |
| Handle 4-byte dual operands with TARGET_XOP and single operands |
| with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and |
| mmx_pshufbv4qi3 for TARGET_SSSE3. |
| (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1. |
| (expand_vec_perm_interleave2): Allow 4-byte vector modes. |
| (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3. |
| (expand_vec_perm_even_odd_1): Handle V4QI mode. |
| (expand_vec_perm_broadcast_1): Handle V4QI mode. |
| (ix86_vectorize_vec_perm_const): Handle V4QI mode. |
| * config/i386/mmx.md (mmx_ppermv32): New insn pattern. |
| (mmx_pshufbv4qi3): Ditto. |
| (*mmx_pblendw32): Ditto. |
| (*mmx_pblendw64): Rename from *mmx_pblendw. |
| (mmx_punpckhbw_low): New insn_and_split pattern. |
| (mmx_punpcklbw_low): Ditto. |
| |
| 2021-07-05 Richard Biener <rguenther@suse.de> |
| |
| * tree-vect-loop-manip.c (vect_loop_versioning): Do not |
| set LOOP_C_INFINITE on the vectorized loop. |
| |
| 2021-07-05 Richard Biener <rguenther@suse.de> |
| |
| PR middle-end/101291 |
| * cfgloopmanip.c (loop_version): Set the loop copy of the |
| versioned loop to the new loop. |
| |
| 2021-07-04 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR target/100269 |
| * config.gcc: Ensure that Darwin biarch definitions are |
| added before i386.h. |
| * config/i386/darwin.h (TARGET_64BIT): Remove. |
| (PR80556_WORKAROUND): New. |
| (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND. |
| (DARWIN_SUBARCH_SPEC): New. |
| * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT, |
| TARGET_BI_ARCH, PR80556_WORKAROUND): New. |
| (REAL_LIBGCC_SPEC): Remove. |
| * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT, |
| TARGET_BI_ARCH, PR80556_WORKAROUND): New. |
| (REAL_LIBGCC_SPEC): Remove. |
| |
| 2021-07-03 H.J. Lu <hjl.tools@gmail.com> |
| |
| PR middle-end/101294 |
| * expr.c (store_constructor): Don't use vec_duplicate on vector. |
| |
| 2021-07-02 Martin Sebor <msebor@redhat.com> |
| |
| PR middle-end/98871 |
| PR middle-end/98512 |
| * diagnostic.c (get_any_inlining_info): New. |
| (update_effective_level_from_pragmas): Handle inlining context. |
| (diagnostic_enabled): Same. |
| (diagnostic_report_diagnostic): Same. |
| * diagnostic.h (struct diagnostic_info): Add ctor. |
| (struct diagnostic_context): Add new member. |
| * tree-diagnostic.c (set_inlining_locations): New. |
| (tree_diagnostics_defaults): Set new callback pointer. |
| |
| 2021-07-02 Peter Bergner <bergner@linux.ibm.com> |
| |
| * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST): |
| New macros. |
| (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins. |
| * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand |
| lxvp and stxvp built-ins. |
| (mma_init_builtins): Handle lxvp and stxvp built-ins. |
| (builtin_function_type): Likewise. |
| * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document. |
| |
| 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept |
| additional argument for the code. |
| * config/h8300/h8300.c (compute_a_shift_cc): Accept additional |
| argument for the code. Just return if the ZN bits are useful or |
| not rather than the old style CC_* enums. |
| * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before |
| more generic shiftqi patterns. |
| (shifthi_noscratch, shiftsi_noscratch): Similarly. |
| (shiftqi_noscratch_set_flags): New pattern. |
| (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise. |
| |
| 2021-07-02 Andrew MacLeod <amacleod@redhat.com> |
| |
| PR tree-optimization/101223 |
| * range-op.cc (build_lt): Add -1 for signed values. |
| (built_gt): Subtract -1 for signed values. |
| |
| 2021-07-02 David Faust <david.faust@oracle.com> |
| |
| * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT. |
| (btf_asm_type): Likewise. |
| |
| 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/h8300/h8300-protos.h (output_a_shift): Make first argument |
| an array of rtx rather than a pointer to rtx. Add code argument. |
| (compute_a_shift_length): Similarly. |
| * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the |
| shift itself isn't an operand. Create dummy operand[0] to carry |
| a mode and pass a suitable rtx code to compute_a_shift_length. |
| (get_shift_alg): Adjust operand number of clobber in output templates. |
| (output_a_shift): Make first argument an array of rtx rather than |
| a pointer to rtx. Add code argument for the type of shift. |
| Adjust now that the shift itself is no longer an operand. |
| (compute_a_shift_length): Similarly. |
| * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an |
| iterator rather than nshift_operator. |
| (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise. |
| (shiftqi_clobber_flags): Adjust to API changes in output_a_shift |
| and compute_a_shift_length. |
| (shiftqi_noscratch_clobber_flags): Likewise. |
| (shifthi_noscratch_clobber_flags): Likewise. |
| (shiftsi_noscratch_clobber_flags): Likewise. |
| |
| 2021-07-02 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR debug/101283 |
| * config/darwin.h (DSYMUTIL_SPEC): Do not try to run |
| dsymutil for BTF/CTF. |
| |
| 2021-07-02 Iain Sandoe <iain@sandoe.co.uk> |
| |
| PR debug/101283 |
| * config/darwin.h (CTF_INFO_SECTION_NAME): Update the |
| segment to include BTF. |
| (BTF_INFO_SECTION_NAME): New. |
| |
| 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/m32r/m32r-protos.h (call_operand): Adjust return type. |
| (small_data_operand, memreg_operand, small_insn_p): Likewise. |
| * config/m32r/m32r.c (call_operand): Adjust return type. |
| (small_data_operand, memreg_operand): Likewise. |
| |
| 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/frv/frv-protos.h (integer_register_operand): Adjust return |
| type. |
| (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise. |
| (fpr_or_int6_operand, gpr_or_int_operand); Likewise. |
| (gpr_or_int12_operand, gpr_or_int10_operand); Likewise. |
| (move_source_operand, move_destination_operand): Likewise. |
| (condexec_source_operand, condexec_dest_operand): Likewise. |
| (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise. |
| (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise. |
| (fcr_operand, icr_operand, cr_operand, call_operand): Likewise. |
| (fpr_operand, even_reg_operand, odd_reg_operand): Likewise. |
| (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise. |
| (even_fpr_operand, odd_fpr_operand): Likewise. |
| (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise. |
| (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise. |
| (uint4_operand, uint1_operand, int_2word_operand): Likewise |
| (upper_int16_operand, uint16_operand, symbolic_operand): Likewise. |
| (relational_operator, float_relational_operator): Likewise. |
| (ccr_eqne_operator, minmax_operator): Likewise. |
| (condexec_si_binary_operator, condexec_si_media_operator): Likewise. |
| (condexec_si_divide_operator, condexec_si_unary_operator): Likewise. |
| (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise. |
| (intop_compare_operator, acc_operand, even_acc_operand): Likewise. |
| (quad_acc_operand, accg_operand): Likewise. |
| |
| 2021-07-02 Jeff Law <jeffreyalaw@gmail.com> |
| |
| * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change |
| return type to a bool. |
| (nonimmediate_nonstack_operand): Likewise. |
| (xstormy16_splittable_below100_operand): Likewise. |
| * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix |
| return type. |
| (xstormy16_splittable_below100_operand): Likewise. |
| |
| 2021-07-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101293 |
| * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases |
| with combined offsets. |
| (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were |
| combined with the rest of the offset. |
| |
| 2021-07-02 Eric Botcazou <ebotcazou@adacore.com> |
| |
| * config/i386/i386.c (asm_preferred_eh_data_format): Always use the |
| PIC encodings for PE-COFF targets. |
| |
| 2021-07-02 Jakub Jelinek <jakub@redhat.com> |
| |
| PR target/101286 |
| * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant): |
| Return nullptr for TImode inner mode. |
| |
| 2021-07-02 Richard Biener <rguenther@suse.de> |
| |
| PR tree-optimization/101280 |
| PR tree-optimization/101173 |
| * gimple-loop-interchange.cc |
| (tree_loop_interchange::valid_data_dependences): Properly |
| gu
|