12021-12-30 Jakub Jelinek <jakub@redhat.com> 2 3 PR rtl-optimization/103756 4 * regrename.c (find_rename_reg): Test noop_move_p on the first 5 non-debug insn in the chain rather than on the first insn. 6 72021-12-30 Jakub Jelinek <jakub@redhat.com> 8 9 PR debug/103808 10 * emit-rtl.c (gen_rtx_REG_offset): Use gen_raw_REG instead of 11 gen_rtx_REG. 12 132021-12-30 Martin Liska <mliska@suse.cz> 14 15 * doc/cpp.texi: Add missing dash for argument. 16 172021-12-30 Jakub Jelinek <jakub@redhat.com> 18 19 PR c++/103012 20 * config/i386/i386-c.c (ix86_pragma_target_parse): Perform 21 cpp_define/cpp_undef calls with forced token locations 22 BUILTINS_LOCATION. 23 * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. 24 * config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Likewise. 25 * config/s390/s390-c.c (s390_pragma_target_parse): Likewise. 26 272021-12-30 Jakub Jelinek <jakub@redhat.com> 28 29 PR rtl-optimization/103860 30 * shrink-wrap.c (try_shrink_wrapping): Make sure can_get_prologue is 31 called on pro even if nothing further is pushed into vec. 32 332021-12-30 Xionghu Luo <luoxhu@linux.ibm.com> 34 35 * loop-invariant.c (find_invariants_bb): Check profile count 36 before motion. 37 (find_invariants_body): Add argument. 38 392021-12-29 Ian Lance Taylor <iant@golang.org> 40 41 PR go/103847 42 * godump.c (go_force_record_alignment): Name the alignment 43 field "_". 44 452021-12-29 Jakub Jelinek <jakub@redhat.com> 46 47 PR debug/103742 48 * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): If any phi 49 argument is not CONSTANT_CLASS_P or SSA_NAME and any arguments are 50 equal, change second from hash value to lowest dest_idx from the 51 edges which have equal argument and resort to ensure -fcompare-debug 52 stability. 53 542021-12-29 Martin Liska <mliska@suse.cz> 55 56 * collect2.c (main): Add ld.mold. 57 * common.opt: Add -fuse-ld=mold. 58 * doc/invoke.texi: Document it. 59 * gcc.c (driver_handle_option): Handle -fuse-ld=mold. 60 * opts.c (common_handle_option): Likewise. 61 622021-12-29 Uro�� Bizjak <ubizjak@gmail.com> 63 64 * config/i386/sse.md (vec_pack<floatprefix>_float_<mode>): 65 Perform gen_avx512dq_float<floatunssuffix>v2div2sf2 into a 66 pseudo and emit move insn into operands[0]. 67 (fix<fixunssuffix>_truncv2sfv2di2): Use lowpart_subreg 68 instead of simplify_gen_subreg. 69 (trunc<mode><pmov_dst_3_lower>2): Perform 70 gen_avx512vl_truncate<mode>v<ssescalarnum>qi2 into a 71 pseudo and emit move insn into operands[0]. 72 (trunc<mode><pmov_dst_4_lower>2): Perform 73 gen_avx512vl_truncate<mode>v<ssescalarnum>hi2 into a 74 pseudo and emit move insn into operands[0]. 75 (truncv2div2si2): Perform gen_avx512vl_truncatev2div2si2 into a 76 pseudo and emit move insn into operands[0]. 77 (truncv8div8qi2): Perform gen_avx512f_truncatev8div16qi2 into a 78 pseudo and emit move insn into operands[0]. 79 (<any_extend:insn>v8qiv8hi2): Use lowpart_subreg 80 instead of simplify_gen_subreg. 81 (<any_extend:insn>v8qiv8si2): Ditto. 82 (<any_extend:insn>v4qiv4si2): Ditto. 83 (<any_extend:insn>v4hiv4si2): Ditto. 84 (<any_extend:insn>v8qiv8di2): Ditto. 85 (<any_extend:insn>v4qiv4di2): Ditto. 86 (<any_extend:insn>v2qiv2di2): Ditto. 87 (<any_extend:insn>v4hiv4di2): Ditto. 88 (<any_extend:insn>v2hiv2di2): Ditto. 89 (<any_extend:insn>v2siv2di2): Ditto. 90 912021-12-29 Xionghu Luo <luoxhu@linux.ibm.com> 92 93 PR tree-optimization/103793 94 * tree-ssa-loop-split.c (fix_loop_bb_probability): New function. 95 (split_loop): Use multiply to scale loop1's exit probability. 96 (do_split_loop_on_cond): Call fix_loop_bb_probability. 97 982021-12-28 Jason Merrill <jason@redhat.com> 99 100 PR c++/99968 101 * tree.c (verify_type): Allow enumerator with BOOLEAN_TYPE. 102 1032021-12-28 Jakub Jelinek <jakub@redhat.com> 104 105 PR middle-end/103813 106 * fold-const.c (fold_truth_andor_1): Punt of const_binop LSHIFT_EXPR 107 or RSHIFT_EXPR returns NULL. Formatting fix. 108 1092021-12-28 Jakub Jelinek <jakub@redhat.com> 110 111 PR rtl-optimization/103837 112 * loop-invariant.c (can_move_invariant_reg): Ignore DEBUG_INSNs in 113 the decisions whether to return false or continue and right before 114 returning true reset those debug insns that previously caused 115 returning false. 116 1172021-12-28 Jakub Jelinek <jakub@redhat.com> 118 119 PR debug/103838 120 * optabs.c (expand_doubleword_mod, expand_doubleword_divmod): Only 121 check newly added insns for CALL_P, not the last insn of previous 122 code. 123 1242021-12-28 Martin Liska <mliska@suse.cz> 125 126 PR driver/103465 127 * opts.c (finish_options): More part of diagnostics to ... 128 (diagnose_options): ... here. Call the function from both 129 finish_options and process_options. 130 * opts.h (diagnose_options): Declare. 131 * toplev.c (process_options): Call diagnose_options. 132 1332021-12-28 Martin Liska <mliska@suse.cz> 134 135 * doc/contrib.texi: Replace http:// with https. 136 * doc/contribute.texi: Likewise. 137 * doc/extend.texi: Likewise. 138 * doc/gccint.texi: Likewise. 139 * doc/gnu.texi: Likewise. 140 * doc/implement-c.texi: Likewise. 141 * doc/implement-cxx.texi: Likewise. 142 * doc/include/fdl.texi: Likewise. 143 * doc/include/gpl_v3.texi: Likewise. 144 * doc/install.texi: Likewise. 145 * doc/invoke.texi: Likewise. 146 * doc/passes.texi: Likewise. 147 * doc/service.texi: Likewise. 148 * doc/sourcebuild.texi: Likewise. 149 * doc/standards.texi: Likewise. 150 1512021-12-28 Jakub Jelinek <jakub@redhat.com> 152 153 PR target/103842 154 * config/i386/mmx.md (divv2sf3): Use force_reg on op1. Always perform 155 divv4sf3 into a pseudo and emit_move_insn into operands[0]. 156 1572021-12-27 John David Anglin <danglin@gcc.gnu.org> 158 159 * config/pa/pa-protos.h: Delete 160 pa_maybe_emit_compare_and_swap_exchange_loop() declaration. 161 * config/pa/pa.c (pa_expand_compare_and_swap_loop): Delete. 162 (pa_maybe_emit_compare_and_swap_exchange_loop): Delete. 163 * config/pa/pa.md (atomic_storeq): Use __sync_lock_test_and_set 164 instead of pa_maybe_emit_compare_and_swap_exchange_loop. 165 (atomic_storehi, atomic_storesi, atomic_storedi): Likewise. 166 1672021-12-27 H.J. Lu <hjl.tools@gmail.com> 168 169 PR target/103762 170 * config/i386/constraints.md (BM): New constraint. 171 * config/i386/i386.md (m): New mode attribute. 172 Replace the 'm' constraint on <general_operand> with the '<m>' 173 constraint. 174 Replace the 'm' constraint on x86_64_general_operand with the 175 'BM' constraint. 176 1772021-12-26 H.J. Lu <hjl.tools@gmail.com> 178 179 PR target/103785 180 * config/i386/i386.md: Swap operand order in comments and check 181 AX input in any_mul_highpart peepholes. 182 1832021-12-24 Uro�� Bizjak <ubizjak@gmail.com> 184 185 PR target/95046 186 PR target/103797 187 * config/i386/mmx.md (divv2sf3): New instruction pattern. 188 1892021-12-24 Iain Sandoe <iain@sandoe.co.uk> 190 191 * config/darwin.c (darwin_override_options): Make a comment 192 more inclusive. 193 1942021-12-24 Iain Sandoe <iain@sandoe.co.uk> 195 196 * config.gcc: Emit L2_MAX_OFILE_ALIGNMENT with suitable 197 values for the host. 198 * config/darwin.c (darwin_emit_common): Error for alignment 199 values > 32768. 200 * config/darwin.h (MAX_OFILE_ALIGNMENT): Rework to use the 201 configured L2_MAX_OFILE_ALIGNMENT. 202 2032021-12-24 Iain Sandoe <iain@sandoe.co.uk> 204 205 * config/darwin.c (darwin_override_options): When checking for the 206 flag-reorder-and-partition case, also check that it is set on. 207 2082021-12-24 Iain Sandoe <iain@sandoe.co.uk> 209 210 * config/darwin.h (OBJECT_FORMAT_MACHO): New. 211 2122021-12-23 Roger Sayle <roger@nextmovesoftware.com> 213 Uro�� Bizjak <ubizjak@gmail.com> 214 215 PR target/103773 216 * config/i386/i386.md (*mov<mode>_and): New define_insn for 217 writing a zero to memory using AND. 218 (*mov<mode>_or): Extend to allow memory destination and HImode. 219 (*movdi_internal): Remove -Oz push/pop optimization from here. 220 (*movsi_internal): Likewise. 221 (peephole2): Perform -Oz push/pop optimization here, only for 222 register destinations, values other than zero, and in functions 223 that don't used the red zone. 224 (peephole2): With -Oz, convert writes of 0 or -1 to memory into 225 their clobber forms, i.e. *mov<mode>_and and *mov<mode>_or resp. 226 2272021-12-23 konglin1 <lingling.kong@intel.com> 228 229 * config/i386/avx512bf16intrin.h (_mm_cvtsbh_ss): Add new intrinsic. 230 (_mm512_cvtpbh_ps): Likewise. 231 (_mm512_maskz_cvtpbh_ps): Likewise. 232 (_mm512_mask_cvtpbh_ps): Likewise. 233 * config/i386/avx512bf16vlintrin.h (_mm_cvtness_sbh): Likewise. 234 (_mm_cvtpbh_ps): Likewise. 235 (_mm256_cvtpbh_ps): Likewise. 236 (_mm_maskz_cvtpbh_ps): Likewise. 237 (_mm256_maskz_cvtpbh_ps): Likewise. 238 (_mm_mask_cvtpbh_ps): Likewise. 239 (_mm256_mask_cvtpbh_ps): Likewise. 240 2412021-12-23 Feng Xue <fxue@os.amperecomputing.com> 242 243 PR ipa/103786 244 * tree.c (verify_type): Fix typo. 245 2462021-12-23 liuhongt <hongtao.liu@intel.com> 247 248 PR target/103750 249 * config/i386/sse.md 250 (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>): 251 New pre_reload define_insn_and_split. 252 (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>): 253 Ditto. 254 (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>): 255 Ditto. 256 (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>): 257 Ditto. 258 (*<avx512>_cmp<V48H_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): 259 Ditto. 260 (*<avx512>_cmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): 261 Ditto. 262 (*<avx512>_ucmp<VI12_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): 263 Ditto. 264 (*<avx512>_ucmp<VI48_AVX512VL:mode>3_zero_extend<SWI248x:mode>_2): 265 Ditto. 266 2672021-12-22 Murray Steele <murray.steele@arm.com> 268 269 * config.gcc (arm*-*-*): Add arm-mve-builtins.o to extra_objs. 270 * config/arm/arm-c.c (arm_pragma_arm): Handle "#pragma GCC arm". 271 (arm_register_target_pragmas): Register it. 272 * config/arm/arm-protos.h: (arm_mve::arm_handle_mve_types_h): New 273 prototype. 274 * config/arm/arm_mve_types.h: Replace MVE type definitions with 275 new pragma. 276 * config/arm/t-arm: (arm-mve-builtins.o): New target rule. 277 * config/arm/arm-mve-builtins.cc: New file. 278 * config/arm/arm-mve-builtins.def: New file. 279 * config/arm/arm-mve-builtins.h: New file. 280 2812021-12-22 Murray Steele <murray.steele@arm.com> 282 283 * config/arm/arm-builtins.c (enum arm_type_qualifiers): Move to 284 arm_builtins.h. 285 (enum arm_simd_type): Move to arm-builtins.h. 286 (struct arm_simd_type_info): Move to arm-builtins.h. 287 * config/arm/arm-builtins.h (enum arm_simd_type): Move from 288 arm-builtins.c. 289 (enum arm_type_qualifiers): Move from arm-builtins.c. 290 (struct arm_simd_type_info): Move from arm-builtins.c. 291 2922021-12-22 Martin Liska <mliska@suse.cz> 293 294 * doc/extend.texi: Unify all function declarations in examples 295 where some miss trailing ';'. 296 2972021-12-22 Martin Liska <mliska@suse.cz> 298 299 * doc/extend.texi: Unify all function declarations in examples 300 where some miss trailing ';'. 301 3022021-12-22 Martin Liska <mliska@suse.cz> 303 304 * doc/extend.texi: Unify all function declarations in examples 305 where some miss trailing ';'. 306 3072021-12-22 Martin Liska <mliska@suse.cz> 308 309 * doc/extend.texi: Use uppercase letters for SSEx. 310 3112021-12-21 Jiang Haochen <haochen.jiang@intel.com> 312 313 * config/i386/bmiintrin.h (_tzcnt_u16): New intrinsic. 314 (_andn_u32): Ditto. 315 (_andn_u64): Ditto. 316 3172021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> 318 319 * tree-ssa-loop-im.c (bb_colder_than_loop_preheader): New 320 function. 321 (get_coldest_out_loop): New function. 322 (determine_max_movement): Use get_coldest_out_loop. 323 (move_computations_worker): Adjust and fix iteration udpate. 324 (class ref_in_loop_hot_body): New functor. 325 (ref_in_loop_hot_body::operator): New. 326 (can_sm_ref_p): Use for_all_locs_in_loop. 327 (fill_coldest_and_hotter_out_loop): New. 328 (tree_ssa_lim_finalize): Free coldest_outermost_loop and 329 hotter_than_inner_loop. 330 (loop_invariant_motion_in_fun): Call fill_coldest_and_hotter_out_loop. 331 3322021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> 333 334 * tree-ssa-loop-split.c (split_loop): Fix incorrect 335 profile_count and probability. 336 (do_split_loop_on_cond): Likewise. 337 3382021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> 339 340 PR middle-end/103270 341 * predict.c (predict_extra_loop_exits): Add loop parameter. 342 (predict_loops): Call with loop argument. 343 3442021-12-21 Xionghu Luo <luoxhu@linux.ibm.com> 345 346 * config/rs6000/altivec.md (altivec_vaddu<VI_char>s): Replace 347 UNSPEC_VADDU with us_plus. 348 (altivec_vadds<VI_char>s): Replace UNSPEC_VADDS with ss_plus. 349 (altivec_vsubu<VI_char>s): Replace UNSPEC_VSUBU with us_minus. 350 (altivec_vsubs<VI_char>s): Replace UNSPEC_VSUBS with ss_minus. 351 (altivec_abss_<mode>): Likewise. 352 3532021-12-20 Uro�� Bizjak <ubizjak@gmail.com> 354 355 PR target/103772 356 * config/i386/sse.md (<sse2p4_1>_pinsr<ssemodesuffix>): Add 357 earlyclobber to (x,x,x,i) alternative. 358 (<sse2p4_1>_pinsr<ssemodesuffix> peephole2): Remove. 359 (<sse2p4_1>_pinsr<ssemodesuffix> splitter): Use output 360 operand as a temporary register. Split after reload_completed. 361 3622021-12-20 Roger Sayle <roger@nextmovesoftware.com> 363 Uro�� Bizjak <ubizjak@gmail.com> 364 365 * config/i386/i386.md (any_mul_highpart): New code iterator. 366 (sgnprefix, s): Add attribute support for [su]mul_highpart. 367 (<s>mul<mode>3_highpart): Delete expander. 368 (<s>mul<mode>3_highpart, <s>mulsi32_highpart_zext): 369 New define_insn patterns. 370 (define_peephole2): Tweak the register allocation for the above 371 instructions after reload. 372 3732021-12-20 Joel Sherrill <joel@rtems.org> 374 375 * config.gcc: Obsolete m32c-*-rtems* target. 376 3772021-12-20 Martin Liska <mliska@suse.cz> 378 379 * opts.c (default_options_optimization): Support -Oz in -Ox option hints. 380 3812021-12-20 Jan Hubicka <hubicka@ucw.cz> 382 383 PR ipa/103669 384 * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Add deferred 385 parameter. 386 (modref_eaf_analysis::propagate): Use it. 387 3882021-12-20 liuhongt <hongtao.liu@intel.com> 389 390 PR target/98468 391 * config/i386/sse.md (*bit_and_float_vector_all_ones): New 392 pre-reload splitter. 393 3942021-12-19 Jan Hubicka <hubicka@ucw.cz> 395 396 PR ipa/103766 397 * ipa-modref.c (modref_merge_call_site_flags): Fix early exit condition 398 3992021-12-19 Patrick Palka <ppalka@redhat.com> 400 401 * print-tree.c (print_node) <case tcc_declaration>: Dump 402 DECL_LANG_FLAG_8. 403 4042021-12-19 Andrew Pinski <apinski@marvell.com> 405 406 * tree-ssa-phiopt.c (gimple_simplify_phiopt): Annotate the 407 new sequence with the location of the conditional statement. 408 4092021-12-18 Roger Sayle <roger@nextmovesoftware.com> 410 Uro�� Bizjak <ubizjak@gmail.com> 411 412 PR target/103611 413 * config/i386/i386.md (any_or_plus): New code iterator. 414 (define_split): Split (HI<<32)|zext(LO) into piece-wise 415 move instructions on !TARGET_64BIT. 416 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): 417 Restrict to TARGET_64BIT. 418 4192021-12-18 Roger Sayle <roger@nextmovesoftware.com> 420 421 PR target/32803 422 * common.opt (Oz): New command line option. 423 * doc/invoke.texi: Document the new -Oz option. 424 * lto-wrapper.c (merge_and_complain, append_compiler_options): 425 Treat OPT_Oz as synonymous with OPT_Os. 426 * optc-save-gen.awk: Increase maximum value of optimize_size to 2. 427 * opts.c (default_options_optimization) [OPT_Oz]: Handle OPT_Oz 428 just like OPT_Os, except set opt->x_optimize_size to 2. 429 (common_handle_option): Skip OPT_Oz just like OPT_Os. 430 * config/i386/i386.md (*movdi_internal): Use a push/pop sequence 431 for suitable SImode TYPE_IMOV moves when optimize_size > 1. 432 (*movsi_internal): Likewise. 433 4342021-12-18 Siddhesh Poyarekar <siddhesh@gotplt.org> 435 436 PR tree-optimization/103759 437 * tree-object-size.c (unknown, initval): Remove functions. 438 (size_unknown, size_initval, size_unknown_p): Operate directly 439 on trees. 440 4412021-12-18 Fran��ois-Xavier Coudert <fxcoudert@gcc.gnu.org> 442 443 * config/darwin-driver.c: Make version code more future-proof. 444 * config.gcc: Homogeneize darwin versions. 445 * configure.ac: Homogeneize darwin versions. 446 * configure: Regenerate. 447 4482021-12-17 Marek Polacek <polacek@redhat.com> 449 450 PR c/103649 451 * attribs.c (handle_ignored_attributes_option): Create the fake 452 attribute with max_length == -2. 453 (attribute_ignored_p): New overloads. 454 * attribs.h (attribute_ignored_p): Declare them. 455 * tree-core.h (struct attribute_spec): Document that max_length 456 can be -2. 457 4582021-12-17 Segher Boessenkool <segher@kernel.crashing.org> 459 460 PR target/103624 461 * config/rs6000/rs6000-builtins.def (__builtin_darn): Expand to 462 darn_64_di. Add {32bit} attribute. Return long. 463 (__builtin_darn_32): Expand to darn_32_di. Add {32bit} attribute. 464 Return long. 465 (__builtin_darn_raw): Expand to darn_raw_di. Add {32bit} attribute. 466 Return long. 467 * config/rs6000/rs6000-call.c (rs6000_expand_builtin): Expand the darn 468 builtins to the _si variants for -m32. 469 * config/rs6000/rs6000.md (UNSPECV_DARN_32, UNSPECV_DARN_RAW): Delete. 470 (UNSPECV_DARN): Update comment. 471 (darn_32, darn_raw, darn): Delete. 472 (darn_32_<mode>, darn_64_<mode>, darn_raw_<mode> for GPR): New. 473 (@darn<mode> for GPR): New. 474 4752021-12-17 Bill Schmidt <wschmidt@linux.ibm.com> 476 477 * config/rs6000/rs6000-overload.def (__builtin_vec_promote): Add second 478 argument. 479 4802021-12-17 Richard Sandiford <richard.sandiford@arm.com> 481 482 PR tree-optimization/103744 483 * tree-vect-stmts.c (vectorizable_load): Handle multi-vector 484 SLP gather loads. 485 4862021-12-17 Martin Liska <mliska@suse.cz> 487 488 * doc/invoke.texi: Rename to -fstack-protector. 489 4902021-12-17 Martin Liska <mliska@suse.cz> 491 492 * doc/invoke.texi: Fix spelling issues. 493 4942021-12-17 Tamar Christina <tamar.christina@arm.com> 495 496 PR tree-optimization/103741 497 * tree-vect-stmts.c (vectorizable_operation): Check for boolean. 498 4992021-12-17 Iain Sandoe <iain@sandoe.co.uk> 500 501 * config/darwin-driver.c (darwin_driver_init): Exit from the 502 option handling early if the command line is definitely enpty. 503 * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Remove 504 setting for the default content of weak_reference_mismatches. 505 5062021-12-17 Iain Sandoe <iain@sandoe.co.uk> 507 508 * config/rs6000/darwin.h: Drop trailing _x from the 509 builtin_decls array name. 510 5112021-12-17 Haochen Jiang <haochen.jiang@intel.com> 512 513 PR target/100738 514 * config/i386/sse.md (*avx_cmp<mode>3_lt, *avx_cmp<mode>3_ltint): 515 Remove MEM_P restriction and add force_reg for operands[2]. 516 (*avx_cmp<mode>3_ltint_not): Add new define_insn_and_split. 517 5182021-12-17 Siddhesh Poyarekar <siddhesh@gotplt.org> 519 520 * builtins.def (BUILT_IN_DYNAMIC_OBJECT_SIZE): New builtin. 521 * tree-object-size.h: Move object size type bits enum from 522 tree-object-size.c and add new value OST_DYNAMIC. 523 * builtins.c (expand_builtin, fold_builtin_2): Handle it. 524 (fold_builtin_object_size): Handle new builtin and adjust for 525 change to compute_builtin_object_size. 526 * tree-object-size.c: Include builtins.h. 527 (compute_builtin_object_size): Adjust. 528 (early_object_sizes_execute_one, 529 dynamic_object_sizes_execute_one): New functions. 530 (object_sizes_execute): Rename insert_min_max_p argument to 531 early. Handle BUILT_IN_DYNAMIC_OBJECT_SIZE and call the new 532 functions. 533 * doc/extend.texi (__builtin_dynamic_object_size): Document new 534 builtin. 535 5362021-12-17 Siddhesh Poyarekar <siddhesh@gotplt.org> 537 538 * tree-object-size.h (compute_builtin_object_size): Return tree 539 instead of HOST_WIDE_INT. 540 * builtins.c (fold_builtin_object_size): Adjust. 541 * gimple-fold.c (gimple_fold_builtin_strncat): Likewise. 542 * ubsan.c (instrument_object_size): Likewise. 543 * tree-object-size.c (object_size): New structure. 544 (object_sizes): Change type to vec<object_size>. 545 (initval): New function. 546 (unknown): Use it. 547 (size_unknown_p, size_initval, size_unknown): New functions. 548 (object_sizes_unknown_p): Use it. 549 (object_sizes_get): Return tree. 550 (object_sizes_initialize): Rename from object_sizes_set_force 551 and set VAL parameter type as tree. Add new parameter WHOLEVAL. 552 (object_sizes_set): Set VAL parameter type as tree and adjust 553 implementation. Add new parameter WHOLEVAL. 554 (size_for_offset): New function. 555 (decl_init_size): Adjust comment. 556 (addr_object_size): Change PSIZE parameter to tree and adjust 557 implementation. Add new parameter PWHOLESIZE. 558 (alloc_object_size): Return tree. 559 (compute_builtin_object_size): Return tree in PSIZE. 560 (expr_object_size, call_object_size, unknown_object_size): 561 Adjust for object_sizes_set change. 562 (merge_object_sizes): Drop OFFSET parameter and adjust 563 implementation for tree change. 564 (plus_stmt_object_size): Call collect_object_sizes_for directly 565 instead of merge_object_size and call size_for_offset to get net 566 size. 567 (cond_expr_object_size, collect_object_sizes_for, 568 object_sizes_execute): Adjust for change of type from 569 HOST_WIDE_INT to tree. 570 (check_for_plus_in_loops_1): Likewise and skip non-positive 571 offsets. 572 5732021-12-17 Jason Merrill <jason@redhat.com> 574 575 PR c++/103681 576 * common.opt (fabi-version): Add v17. 577 5782021-12-16 Uro�� Bizjak <ubizjak@gmail.com> 579 580 PR target/103571 581 * config/i386/i386.h (VALID_AVX256_REG_MODE): Add V16HFmode. 582 (VALID_AVX256_REG_OR_OI_VHF_MODE): Replace with ... 583 (VALID_AVX256_REG_OR_OI_MODE): ... this. Remove V16HFmode. 584 (VALID_AVX512F_SCALAR_MODE): Remove HImode and HFmode. 585 (VALID_AVX512FP16_SCALAR_MODE): New. 586 (VALID_AVX512F_REG_MODE): Add V32HFmode. 587 (VALID_SSE2_REG_MODE): Add V8HFmode, V4HFmode and V2HFmode. 588 (VALID_SSE2_REG_VHF_MODE): Remove. 589 (VALID_INT_MODE_P): Add V2HFmode. 590 * config/i386/i386.c (function_arg_advance_64): 591 Remove explicit mention of V16HFmode and V32HFmode. 592 (ix86_hard_regno_mode_ok): Remove explicit mention of XImode 593 and V32HFmode, use VALID_AVX512F_REG_OR_XI_MODE instead. 594 Use VALID_AVX512FP_SCALAR_MODE for TARGET_aVX512FP16. 595 Use VALID_AVX256_REG_OR_OI_MODE instead of 596 VALID_AVX256_REG_OR_OI_VHF_MODE and VALID_SSE2_REG_MODE instead 597 of VALID_SSE2_REG_VHF_MODE. 598 (ix86_set_reg_reg_cost): Remove usge of VALID_AVX512FP16_REG_MODE. 599 (ix86_vector_mode_supported): Ditto. 600 6012021-12-16 Martin Liska <mliska@suse.cz> 602 603 PR c++/103696 604 * attribs.c (decl_attributes): Check if 605 target_option_current_node is changed. 606 6072021-12-16 Martin Liska <mliska@suse.cz> 608 609 * doc/invoke.texi: Add missing dash. 610 6112021-12-16 Bill Schmidt <wschmidt@linux.ibm.com> 612 613 * config/rs6000/rs6000-c.c (resolution): New enum. 614 (resolve_vec_mul): New function. 615 (resolve_vec_cmpne): Likewise. 616 (resolve_vec_adde_sube): Likewise. 617 (resolve_vec_addec_subec): Likewise. 618 (resolve_vec_splats): Likewise. 619 (resolve_vec_extract): Likewise. 620 (resolve_vec_insert): Likewise. 621 (resolve_vec_step): Likewise. 622 (find_instance): Likewise. 623 (altivec_resolve_overloaded_builtin): Many cleanups. Call factored-out 624 functions. Move variable declarations closer to uses. Add commentary. 625 Remove unnecessary levels of braces. Avoid use of gotos. Change 626 misleading variable names. Use switches over if-else-if chains. 627 6282021-12-16 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 629 630 PR target/103729 631 * config/aarch64/aarch64-simd.md (aarch64_movv8di): Allow big endian 632 targets to move V8DI. 633 6342021-12-16 Tobias Burnus <tobias@codesourcery.com> 635 636 PR driver/103644 637 * gcc.c (check_offload_target_name): Add 'default' and 'disable' 638 to the candidate list. 639 6402021-12-15 Iain Sandoe <iain@sandoe.co.uk> 641 642 * configure: Regenerate. 643 6442021-12-15 Roger Sayle <roger@nextmovesoftware.com> 645 646 * config/nvptx/nvptx-opts.h (ptx_isa): PTX_ISA_SM75 and PTX_ISA_SM80 647 ISA levels. 648 * config/nvptx/nvptx.opt: Add sm_75 and sm_80 to -misa. 649 * config/nvptx/nvptx.h (TARGET_SM75, TARGET_SM80): 650 New helper macros to conditionalize functionality on target ISA. 651 * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ 652 support for the new ISA levels. 653 * config/nvptx/nvptx.c (nvptx_file_start): Add support for TARGET_SM75 654 and TARGET_SM80. 655 * config/nvptx/nvptx.md (define_c_enum "unspec"): New UNSPEC_TANH. 656 (define_mode_iterator HSFM): New iterator for HFmode and SFmode. 657 (exp2hf2): New define_insn controlled by TARGET_SM75. 658 (tanh<mode>2): New define_insn controlled by TARGET_SM75. 659 (sminhf3, smaxhf3): New define_isnns controlled by TARGET_SM80. 660 6612021-12-15 Tom de Vries <tdevries@suse.de> 662 663 * config/nvptx/nvptx-opts.h (enum ptx_version): Add PTX_VERSION_7_0. 664 * config/nvptx/nvptx.c (nvptx_file_start): Handle TARGET_PTX_7_0. 665 * config/nvptx/nvptx.h (TARGET_PTX_7_0): New macro. 666 * config/nvptx/nvptx.opt (ptx_version): Add 7.0. 667 6682021-12-15 Richard Sandiford <richard.sandiford@arm.com> 669 Tamar Christina <tamar.christina@arm.com> 670 671 PR target/103094 672 * config/aarch64/aarch64.c (aarch64_short_vector_p): Return false 673 for structure modes, rather than ignoring the type in that case. 674 6752021-12-15 Tamar Christina <tamar.christina@arm.com> 676 677 PR rtl-optimization/103350 678 * ree.c (add_removable_extension): Don't stop at first definition but 679 inspect all. 680 6812021-12-15 Jakub Jelinek <jakub@redhat.com> 682 683 PR debug/103619 684 * dwarf2cfi.c (dwf_cfa_reg): Remove gcc_assert. 685 (operator==, operator!=): New overloaded operators. 686 (dwarf2out_frame_debug_adjust_cfa, dwarf2out_frame_debug_cfa_offset, 687 dwarf2out_frame_debug_expr): Compare vars with cfa_reg type directly 688 with REG rtxes rather than with dwf_cfa_reg results on those REGs. 689 (create_cie_data): Use stack_pointer_rtx instead of 690 gen_rtx_REG (Pmode, STACK_POINTER_REGNUM). 691 (execute_dwarf2_frame): Use hard_frame_pointer_rtx instead of 692 gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM). 693 6942021-12-15 Martin Liska <mliska@suse.cz> 695 696 PR target/103661 697 * config/i386/i386-builtins.c (fold_builtin_cpu): Compare to 0 698 as API expects that non-zero values are returned (do that 699 it mask == 31). 700 For "avx512vbmi2" argument, we return now 1 << 31, which is a 701 negative integer value. 702 7032021-12-15 Haochen Jiang <haochen.jiang@intel.com> 704 705 PR target/101796 706 * config/i386/predicates.md (const_vector_operand): 707 Add new predicate. 708 * config/i386/sse.md(<insn><mode>3<mask_name>): 709 Add new define_split below. 710 7112021-12-15 Michael Meissner <meissner@the-meissners.org> 712 713 * config/rs6000/rs6000.md (UNSPEC_XXSPLTIDP_CONST): New unspec. 714 (UNSPEC_XXSPLTIW_CONST): New unspec. 715 (movsf_hardfloat): Add support for generating XXSPLTIDP. 716 (mov<mode>_hardfloat32): Likewise. 717 (mov<mode>_hardfloat64): Likewise. 718 (xxspltidp_<mode>_internal): New insns. 719 (xxspltiw_<mode>_internal): New insns. 720 (splitters for SF/DFmode): Add new splitters for XXSPLTIDP. 721 7222021-12-15 Michael Meissner <meissner@the-meissners.org> 723 724 * config/rs6000/predicates.md (easy_fp_constant): Add support for 725 generating XXSPLTIDP. 726 (vsx_prefixed_constant): Likewise. 727 (easy_vector_constant): Likewise. 728 * config/rs6000/rs6000-protos.h (constant_generates_xxspltidp): 729 New declaration. 730 * config/rs6000/rs6000.c (output_vec_const_move): Add support for 731 generating XXSPLTIDP. 732 (prefixed_xxsplti_p): Likewise. 733 (constant_generates_xxspltidp): New function. 734 * config/rs6000/rs6000.opt (-msplat-float-constant): New debug option. 735 7362021-12-15 Michael Meissner <meissner@linux.ibm.com> 737 738 * config/rs6000/constraints.md (eP): Update comment. 739 * config/rs6000/predicates.md (easy_fp_constant): Add support for 740 generating XXSPLTIW. 741 (vsx_prefixed_constant): New predicate. 742 (easy_vector_constant): Add support for 743 generating XXSPLTIW. 744 * config/rs6000/rs6000-protos.h (prefixed_xxsplti_p): New 745 declaration. 746 (constant_generates_xxspltiw): Likewise. 747 * config/rs6000/rs6000.c (xxspltib_constant_p): Generate XXSPLTIW 748 if possible instead of XXSPLTIB and sign extending the constant. 749 (output_vec_const_move): Add support for XXSPLTIW. 750 (prefixed_xxsplti_p): New function. 751 (constant_generates_xxspltiw): New function. 752 * config/rs6000/rs6000.md (prefixed attribute): Add support to 753 mark XXSPLTI* instructions as being prefixed. 754 * config/rs6000/rs6000.opt (-msplat-word-constant): New debug 755 switch. 756 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add support for 757 generating XXSPLTIW or XXSPLTIDP. 758 (vsx_mov<mode>_32bit): Likewise. 759 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the 760 eP constraint. 761 7622021-12-15 Michael Meissner <meissner@the-meissners.org> 763 764 * config/rs6000/constraints.md (eQ): New constraint. 765 * config/rs6000/predicates.md (easy_fp_constant): Add support for 766 generating the LXVKQ instruction. 767 (easy_vector_constant_ieee128): New predicate. 768 (easy_vector_constant): Add support for generating the LXVKQ 769 instruction. 770 * config/rs6000/rs6000-protos.h (constant_generates_lxvkq): New 771 declaration. 772 * config/rs6000/rs6000.c (output_vec_const_move): Add support for 773 generating LXVKQ. 774 (constant_generates_lxvkq): New function. 775 * config/rs6000/rs6000.opt (-mieee128-constant): New debug 776 option. 777 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Add support for 778 generating LXVKQ. 779 (vsx_mov<mode>_32bit): Likewise. 780 * doc/md.texi (PowerPC and IBM RS6000 constraints): Document the 781 eQ constraint. 782 7832021-12-15 Michael Meissner <meissner@the-meissners.org> 784 785 * config/rs6000/rs6000-protos.h (VECTOR_128BIT_BITS): New macro. 786 (VECTOR_128BIT_BYTES): Likewise. 787 (VECTOR_128BIT_HALF_WORDS): Likewise. 788 (VECTOR_128BIT_WORDS): Likewise. 789 (VECTOR_128BIT_DOUBLE_WORDS): Likewise. 790 (vec_const_128bit_type): New structure type. 791 (vec_const_128bit_to_bytes): New declaration. 792 * config/rs6000/rs6000.c (constant_int_to_128bit_vector): New 793 helper function. 794 (constant_fp_to_128bit_vector): New helper function. 795 (vec_const_128bit_to_bytes): New function. 796 7972021-12-15 Alexandre Oliva <oliva@adacore.com> 798 799 PR target/100518 800 * builtins.c (try_store_by_multiple_pieces): Drop address 801 conversion to ptr_mode. 802 8032021-12-15 Alexandre Oliva <oliva@adacore.com> 804 805 PR middle-end/100843 806 * builtins.c (try_store_by_multiple_pieces): Fail if min_len 807 is greater than max_len. 808 8092021-12-14 liuhongt <hongtao.liu@intel.com> 810 811 PR target/103682 812 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check 813 is_gimple_assign before gimple_assign_rhs_code. 814 8152021-12-14 S��ren Tempel <soeren@soeren-tempel.net> 816 817 * ginclude/stddef.h (__DEFINED_ptrdiff_t): Add support for musl 818 libc typedef macro guard. 819 (__DEFINED_size_t): Ditto. 820 (__DEFINED_wchar_t): Ditto. 821 8222021-12-14 JoJo R <rjiejie@linux.alibaba.com> 823 824 * regrename.c (find_rename_reg): Return satisfied regno 825 if instruction is noop move. 826 8272021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 828 829 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Rename 830 rs6000_builtin_decls_x to rs6000_builtin_decls. 831 (altivec_resolve_overloaded_builtin): Likewise. Also rename 832 rs6000_builtin_info_x to rs6000_builtin_info. 833 * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Rename 834 rs6000_builtin_info_x to rs6000_builtin_info. 835 (rs6000_builtin_is_supported): Likewise. 836 (rs6000_gimple_fold_mma_builtin): Likewise. Also rename 837 rs6000_builtin_decls_x to rs6000_builtin_decls. 838 (rs6000_gimple_fold_builtin): Rename rs6000_builtin_info_x to 839 rs6000_builtin_info. 840 (cpu_expand_builtin): Likewise. 841 (rs6000_expand_builtin): Likewise. 842 (rs6000_init_builtins): Likewise. Also rename rs6000_builtin_decls_x 843 to rs6000_builtin_decls. 844 (rs6000_builtin_decl): Rename rs6000_builtin_decls_x to 845 rs6000_builtin_decls. 846 * config/rs6000/rs6000-gen-builtins.c (write_decls): In generated code, 847 rename rs6000_builtin_decls_x to rs6000_builtin_decls, and rename 848 rs6000_builtin_info_x to rs6000_builtin_info. 849 (write_bif_static_init): In generated code, rename 850 rs6000_builtin_info_x to rs6000_builtin_info. 851 (write_init_bif_table): In generated code, rename 852 rs6000_builtin_decls_x to rs6000_builtin_decls, and rename 853 rs6000_builtin_info_x to rs6000_builtin_info. 854 (write_init_ovld_table): In generated code, rename 855 rs6000_builtin_decls_x to rs6000_builtin_decls. 856 (write_init_file): Likewise. 857 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): 858 Likewise. 859 (rs6000_builtin_md_vectorized_function): Likewise. 860 (rs6000_builtin_reciprocal): Likewise. 861 (add_condition_to_bb): Likewise. 862 (rs6000_atomic_assign_expand_fenv): Likewise. 863 8642021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 865 866 * config/rs6000/rs6000-c.c (altivec_resolve_new_overloaded_builtin): 867 Remove forward declaration. 868 (rs6000_new_builtin_type_compatible): Rename to 869 rs6000_builtin_type_compatible. 870 (rs6000_builtin_type_compatible): Remove. 871 (altivec_resolve_overloaded_builtin): Remove. 872 (altivec_build_new_resolved_builtin): Rename to 873 altivec_build_resolved_builtin. 874 (altivec_resolve_new_overloaded_builtin): Rename to 875 altivec_resolve_overloaded_builtin. Remove static keyword. Adjust 876 called function names. 877 * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Remove 878 forward declaration. 879 (rs6000_gimple_fold_new_builtin): Likewise. 880 (rs6000_invalid_new_builtin): Rename to rs6000_invalid_builtin. 881 (rs6000_gimple_fold_builtin): Remove. 882 (rs6000_new_builtin_valid_without_lhs): Rename to 883 rs6000_builtin_valid_without_lhs. 884 (rs6000_new_builtin_is_supported): Rename to 885 rs6000_builtin_is_supported. 886 (rs6000_gimple_fold_new_mma_builtin): Rename to 887 rs6000_gimple_fold_mma_builtin. 888 (rs6000_gimple_fold_new_builtin): Rename to 889 rs6000_gimple_fold_builtin. Remove static keyword. Adjust called 890 function names. 891 (rs6000_expand_builtin): Remove. 892 (new_cpu_expand_builtin): Rename to cpu_expand_builtin. 893 (new_mma_expand_builtin): Rename to mma_expand_builtin. 894 (new_htm_spr_num): Rename to htm_spr_num. 895 (new_htm_expand_builtin): Rename to htm_expand_builtin. Change name 896 of called function. 897 (rs6000_expand_new_builtin): Rename to rs6000_expand_builtin. Remove 898 static keyword. Adjust called function names. 899 (rs6000_new_builtin_decl): Rename to rs6000_builtin_decl. Remove 900 static keyword. 901 (rs6000_builtin_decl): Remove. 902 * config/rs6000/rs6000-gen-builtins.c (write_decls): In gnerated code, 903 rename rs6000_new_builtin_is_supported to rs6000_builtin_is_supported. 904 * config/rs6000/rs6000-internal.h (rs6000_invalid_new_builtin): Rename 905 to rs6000_invalid_builtin. 906 * config/rs6000/rs6000.c (rs6000_new_builtin_vectorized_function): 907 Rename to rs6000_builtin_vectorized_function. 908 (rs6000_new_builtin_md_vectorized_function): Rename to 909 rs6000_builtin_md_vectorized_function. 910 (rs6000_builtin_vectorized_function): Remove. 911 (rs6000_builtin_md_vectorized_function): Remove. 912 9132021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 914 915 * config/rs6000/rs6000-builtin.def: Delete. 916 * config/rs6000/rs6000-call.c (builtin_compatibility): Delete. 917 (builtin_description): Delete. 918 (builtin_hash_struct): Delete. 919 (builtin_hasher): Delete. 920 (builtin_hash_table): Delete. 921 (builtin_hasher::hash): Delete. 922 (builtin_hasher::equal): Delete. 923 (rs6000_builtin_info_type): Delete. 924 (rs6000_builtin_info): Delete. 925 (bdesc_compat): Delete. 926 (bdesc_3arg): Delete. 927 (bdesc_4arg): Delete. 928 (bdesc_dst): Delete. 929 (bdesc_2arg): Delete. 930 (bdesc_altivec_preds): Delete. 931 (bdesc_abs): Delete. 932 (bdesc_1arg): Delete. 933 (bdesc_0arg): Delete. 934 (bdesc_htm): Delete. 935 (bdesc_mma): Delete. 936 (rs6000_overloaded_builtin_p): Delete. 937 (rs6000_overloaded_builtin_name): Delete. 938 (htm_spr_num): Delete. 939 (rs6000_builtin_is_supported_p): Delete. 940 (rs6000_gimple_fold_mma_builtin): Delete. 941 (gt-rs6000-call.h): Remove include directive. 942 * config/rs6000/rs6000-protos.h (rs6000_overloaded_builtin_p): Delete. 943 (rs6000_builtin_is_supported_p): Delete. 944 (rs6000_overloaded_builtin_name): Delete. 945 * config/rs6000/rs6000.c (rs6000_builtin_decls): Delete. 946 (rs6000_debug_reg_global): Remove reference to RS6000_BUILTIN_COUNT. 947 * config/rs6000/rs6000.h (rs6000_builtins): Delete. 948 (altivec_builtin_types): Delete. 949 (rs6000_builtin_decls): Delete. 950 * config/rs6000/t-rs6000 (TM_H): Don't add rs6000-builtin.def. 951 9522021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 953 954 * config/rs6000/rs6000-builtin-new.def: Rename to... 955 * config/rs6000/rs6000-builtins.def: ...this. 956 * config/rs6000/rs6000-gen-builtins.c: Adjust header commentary. 957 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Rename 958 rs6000-builtin-new.def to rs6000-builtins.def. 959 (rs6000-builtins.c): Likewise. 960 9612021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 962 963 * config/rs6000/rs6000-call.c (altivec_overloaded_builtins): Remove. 964 * config/rs6000/rs6000.h (altivec_overloaded_builtins): Remove. 965 9662021-12-14 Peter Bergner <bergner@linux.ibm.com> 967 968 PR target/103548 969 * config/rs6000/mma.md (UNSPEC_MMA_ASSEMBLE): Rename unspec from this... 970 (UNSPEC_VSX_ASSEMBLE): ...to this. 971 (UNSPECV_MMA_ASSEMBLE): New unspecv. 972 (vsx_assemble_pair): Use UNSPEC_VSX_ASSEMBLE. 973 (*vsx_assemble_pair): Likewise. 974 (mma_assemble_acc): Use UNSPECV_MMA_ASSEMBLE. 975 (*mma_assemble_acc): Likewise. 976 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle 977 UNSPEC_VOLATILE. Use UNSPEC_VSX_ASSEMBLE and UNSPECV_MMA_ASSEMBLE. 978 9792021-12-14 Uro�� Bizjak <ubizjak@gmail.com> 980 981 PR target/103571 982 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate) 983 <case E_V8HFmode>: Implement for TARGET_SSE2. 984 <case E_V16HFmode>: Implement for TARGET_AVX. 985 <case E_V32HFmode>: Implement for TARGET_AVX512F. 986 (ix86_expand_vector_set_var): Handle V32HFmode 987 without TARGET_AVX512BW. 988 (ix86_expand_vector_extract) 989 <case E_V8HFmode>: Implement for TARGET_SSE2. 990 <case E_V16HFmode>: Implement for TARGET_AVX. 991 <case E_V32HFmode>: Implement for TARGET_AVX512BW. 992 (expand_vec_perm_broadcast_1) <case E_V8HFmode>: New. 993 * config/i386/sse.md (VI12HF_AVX512VL): Remove 994 TARGET_AVX512FP16 condition. 995 (V): Ditto. 996 (V_256_512): Ditto. 997 (avx_vbroadcastf128_<mode>): Use V_256H mode iterator. 998 9992021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 1000 1001 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Remove 1002 test for new_builtins_are_live and simplify. 1003 * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Remove 1004 dead function. 1005 (altivec_resolve_overloaded_builtin): Remove test for 1006 new_builtins_are_live and simplify. 1007 * config/rs6000/rs6000-call.c (altivec_init_builtins): Remove forward 1008 declaration. 1009 (builtin_function_type): Likewise. 1010 (rs6000_common_init_builtins): Likewise. 1011 (htm_init_builtins): Likewise. 1012 (mma_init_builtins): Likewise. 1013 (def_builtin): Remove dead function. 1014 (rs6000_expand_zeroop_builtin): Likewise. 1015 (rs6000_expand_mtfsf_builtin): Likewise. 1016 (rs6000_expand_mtfsb_builtin): Likewise. 1017 (rs6000_expand_set_fpscr_rn_builtin): Likewise. 1018 (rs6000_expand_set_fpscr_drn_builtin): Likewise. 1019 (rs6000_expand_unop_builtin): Likewise. 1020 (altivec_expand_abs_builtin): Likewise. 1021 (rs6000_expand_binop_builtin): Likewise. 1022 (altivec_expand_lxvr_builtin): Likewise. 1023 (altivec_expand_lv_builtin): Likewise. 1024 (altivec_expand_stxvl_builtin): Likewise. 1025 (altivec_expand_stv_builtin): Likewise. 1026 (mma_expand_builtin): Likewise. 1027 (htm_expand_builtin): Likewise. 1028 (cpu_expand_builtin): Likewise. 1029 (rs6000_expand_quaternop_builtin): Likewise. 1030 (rs6000_expand_ternop_builtin): Likewise. 1031 (altivec_expand_dst_builtin): Likewise. 1032 (altivec_expand_vec_sel_builtin): Likewise. 1033 (altivec_expand_builtin): Likewise. 1034 (rs6000_invalid_builtin): Likewise. 1035 (rs6000_builtin_valid_without_lhs): Likewise. 1036 (rs6000_gimple_fold_builtin): Remove test for new_builtins_are_live and 1037 simplify. 1038 (rs6000_expand_builtin): Likewise. 1039 (rs6000_init_builtins): Remove tests for new_builtins_are_live and 1040 simplify. 1041 (rs6000_builtin_decl): Likewise. 1042 (altivec_init_builtins): Remove dead function. 1043 (mma_init_builtins): Likewise. 1044 (htm_init_builtins): Likewise. 1045 (builtin_quaternary_function_type): Likewise. 1046 (builtin_function_type): Likewise. 1047 (rs6000_common_init_builtins): Likewise. 1048 * config/rs6000/rs6000-gen-builtins.c (write_header_file): Don't 1049 declare new_builtins_are_live. 1050 (write_init_bif_table): In generated code, remove test for 1051 new_builtins_are_live and simplify. 1052 (write_init_ovld_table): Likewise. 1053 (write_init_file): Don't initialize new_builtins_are_live. 1054 * config/rs6000/rs6000.c (rs6000_builtin_vectorized_function): Remove 1055 test for new_builtins_are_live and simplify. 1056 (rs6000_builtin_md_vectorized_function): Likewise. 1057 (rs6000_builtin_reciprocal): Likewise. 1058 (add_condition_to_bb): Likewise. 1059 (rs6000_atomic_assign_expand_fenv): Likewise. 1060 10612021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 1062 1063 PR target/103625 1064 * config/rs6000/rs6000-builtin-new.def (__builtin_altivec_vcmpequd): 1065 Move to power8-vector stanza. 1066 (__builtin_altivec_vcmpequd_p): Likewise. 1067 (__builtin_altivec_vcmpgtsd): Likewise. 1068 (__builtin_altivec_vcmpgtsd_p): Likewise. 1069 (__builtin_altivec_vcmpgtud): Likewise. 1070 (__builtin_altivec_vcmpgtud_p): Likewise. 1071 10722021-12-14 Bill Schmidt <wschmidt@linux.ibm.com> 1073 1074 PR target/103623 1075 * config/rs6000/rs6000-builtin-new.def (__builtin_pack_longdouble): Add 1076 ibmld attribute. 1077 (__builtin_unpack_longdouble): Likewise. 1078 * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Add special 1079 handling for ibmld attribute. 1080 * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add isibmld. 1081 (parse_bif_attrs): Handle ibmld. 1082 (write_decls): Likewise. 1083 (write_bif_static_init): Likewise. 1084 10852021-12-14 Jan Hubicka <hubicka@ucw.cz> 1086 1087 PR ipa/103585 1088 * ipa-modref-tree.c (modref_access_node::range_info_useful_p): Handle 1089 MODREF_GLOBAL_MEMORY_PARM. 1090 (modref_access_node::dump): Likewise. 1091 (modref_access_node::get_call_arg): Likewise. 1092 * ipa-modref-tree.h (enum modref_special_parms): Add 1093 MODREF_GLOBAL_MEMORY_PARM. 1094 (modref_access_node::useful_for_kill): Handle 1095 MODREF_GLOBAL_MEMORY_PARM. 1096 (modref:tree::merge): Add promote_unknown_to_global. 1097 * ipa-modref.c (verify_arg):New function. 1098 (may_access_nonescaping_parm_p): New function. 1099 (modref_access_analysis::record_global_memory_load): New member 1100 function. 1101 (modref_access_analysis::record_global_memory_store): Likewise. 1102 (modref_access_analysis::process_fnspec): Distingush global and local 1103 memory. 1104 (modref_access_analysis::analyze_call): Likewise. 1105 * tree-ssa-alias.c (ref_may_access_global_memory_p): New function. 1106 (modref_may_conflict): Use it. 1107 11082021-12-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 1109 1110 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): 1111 Define AARCH64_LS64_BUILTIN_LD64B, AARCH64_LS64_BUILTIN_ST64B, 1112 AARCH64_LS64_BUILTIN_ST64BV, AARCH64_LS64_BUILTIN_ST64BV0. 1113 (aarch64_init_ls64_builtin_decl): Helper function. 1114 (aarch64_init_ls64_builtins): Helper function. 1115 (aarch64_init_ls64_builtins_types): Helper function. 1116 (aarch64_general_init_builtins): Init LS64 intrisics for 1117 TARGET_LS64. 1118 (aarch64_expand_builtin_ls64): LS64 intrinsics expander. 1119 (aarch64_general_expand_builtin): Handle aarch64_expand_builtin_ls64. 1120 (ls64_builtins_data): New helper struct. 1121 (v8di_UP): New define. 1122 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 1123 __ARM_FEATURE_LS64. 1124 * config/aarch64/aarch64.c (aarch64_classify_address): Enforce the 1125 V8DI range (7-bit signed scaled) for both ends of the range. 1126 * config/aarch64/aarch64-simd.md (movv8di): New pattern. 1127 (aarch64_movv8di): New pattern. 1128 * config/aarch64/aarch64.h (AARCH64_ISA_LS64): New define. 1129 (TARGET_LS64): New define. 1130 * config/aarch64/aarch64.md: Add UNSPEC_LD64B, UNSPEC_ST64B, 1131 UNSPEC_ST64BV and UNSPEC_ST64BV0. 1132 (ld64b): New define_insn. 1133 (st64b): New define_insn. 1134 (st64bv): New define_insn. 1135 (st64bv0): New define_insn. 1136 * config/aarch64/arm_acle.h (data512_t): New type derived from 1137 __arm_data512_t. 1138 (__arm_data512_t): New internal type. 1139 (__arm_ld64b): New intrinsic. 1140 (__arm_st64b): New intrinsic. 1141 (__arm_st64bv): New intrinsic. 1142 (__arm_st64bv0): New intrinsic. 1143 * config/arm/types.md: Add new type ls64. 1144 11452021-12-14 Olivier Hainque <hainque@adacore.com> 1146 1147 * config/i386/t-vxworks: Drop the fPIC multilibs. 1148 11492021-12-14 Fred Konrad <konrad@adacore.com> 1150 1151 * config/rs6000/t-vxworks: Drop the fPIC multilib. 1152 11532021-12-13 Vladimir N. Makarov <vmakarov@redhat.com> 1154 1155 PR target/99531 1156 * ira-costs.c (record_operand_costs): Do not take pseudo class 1157 calculated on the 1st iteration into account when processing move 1158 involving the pseudo and a hard register. 1159 11602021-12-13 Roger Sayle <roger@nextmovesoftware.com> 1161 1162 * config/i386/i386.md (define_split any_or:SWI248 -> orb %?h): 1163 Optimize the case where the integer constant operand is zero. 1164 11652021-12-13 Doug Rupp <rupp@adacore.com> 1166 Olivier Hainque <hainque@adacore.com> 1167 1168 * config/vxworks.h (VXWORKS_LINK_OS_SPEC): New spec. 1169 (VXWORKS_BASE_LINK_SPEC): New spec, using the former. 1170 (VXWORKS_EXTRA_LINK_SPEC): New spec for old and new VxWorks. 1171 (VXWORKS_LINK_SPEC): Combo of BASE and EXTRA specs. 1172 * config/rs6000/vxworks.h (VXWORKS_LINK_OS_SPEC): Empty. 1173 (LINK_OS_EXTRA_SPEC32): Use VXWORKS_LINK_SPEC. 1174 (LINK_OS_EXTRA_SPEC64): Likewise. 1175 11762021-12-13 Fred Konrad <konrad@adacore.com> 1177 Olivier Hainque <hainque@adacore.com> 1178 1179 * config/vxworks.h (VXWORKS_BASE_LIBS_RTP): Guard -lc_internal 1180 on !shared+!non-static and document. 1181 (VXWORKS_LIB_SPEC): Remove the bits intended to drag the 1182 init/fini functions from libc_internal in the shared lib case. 1183 (VX_CRTBEGIN_SPEC/VX_CRTEND_SPEC): Use vxcrtstuff objects also in 1184 configurations with shared lib and INITFINI_ARRAY support. 1185 11862021-12-13 Fred Konrad <konrad@adacore.com> 1187 Olivier Hainque <hainque@adacore.com> 1188 1189 * config/vx-common.h: Define REAL_LIBGCC_SPEC since the 1190 '-non-static' option is not standard. 1191 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Implement the LIBGCC_SPEC 1192 since REAL_LIBGCC_SPEC is used now. 1193 (STARTFILE_PREFIX_SPEC): Use the PIC VSB when building shared libraries 1194 or non-static binaries. 1195 11962021-12-13 Jan Hubicka <hubicka@ucw.cz> 1197 1198 * common.opt: Add -fipa-strict-aliasing. 1199 * doc/invoke.texi: Document -fipa-strict-aliasing. 1200 * ipa-modref.c (modref_access_analysis::record_access): Honor 1201 -fipa-strict-aliasing. 1202 (modref_access_analysis::record_access_lto): Likewise. 1203 12042021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1205 1206 * config/aarch64/aarch64-arches.def (armv8.8-a): Define. 1207 * config/aarch64/aarch64.h (AARCH64_FL_V8_8): Define. 1208 (AARCH64_FL_FOR_ARCH8_8): Define. 1209 * doc/invoke.texi: Document -march=armv8.8-a. 1210 12112021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1212 1213 * config/aarch64/aarch64.c (aarch64_expand_setmem_mops): Define. 1214 (aarch64_expand_setmem): Adjust for TARGET_MOPS. 1215 * config/aarch64/aarch64.h (CLEAR_RATIO): Adjust for TARGET_MOPS. 1216 (SET_RATIO): Likewise. 1217 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_SETMEM. 1218 (aarch64_setmemdi): Define. 1219 (setmemdi): Adjust for TARGET_MOPS. 1220 * config/aarch64/aarch64.opt (aarch64-mops-memset-size-threshold): 1221 New param. 1222 12232021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1224 1225 * config/aarch64/aarch64.md (aarch64_movmemdi): Define. 1226 (movmemdi): Define. 1227 (unspec): Add UNSPEC_MOVMEM. 1228 * config/aarch64/aarch64.opt (aarch64-mops-memmove-size-threshold): 1229 New param. 1230 12312021-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1232 1233 * config/aarch64/aarch64-option-extensions.def (mops): Define. 1234 * config/aarch64/aarch64.c (aarch64_expand_cpymem_mops): Define. 1235 (aarch64_expand_cpymem): Define. 1236 * config/aarch64/aarch64.h (AARCH64_FL_MOPS): Define. 1237 (AARCH64_ISA_MOPS): Define. 1238 (TARGET_MOPS): Define. 1239 (MOVE_RATIO): Adjust for TARGET_MOPS. 1240 * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_CPYMEM. 1241 (aarch64_cpymemdi): New pattern. 1242 (cpymemdi): Adjust for TARGET_MOPS. 1243 * config/aarch64/aarch64.opt (aarch64-mops-memcpy-size-threshol): 1244 New param. 1245 * doc/invoke.texi (AArch64 Options): Document +mops. 1246 12472021-12-13 Martin Liska <mliska@suse.cz> 1248 1249 PR ipa/103636 1250 * ipa-inline.c (can_inline_edge_p): Move logic checking 1251 no_profile_instrument_function logic to ... 1252 (can_early_inline_edge_p): ... here. 1253 12542021-12-13 Olivier Hainque <hainque@adacore.com> 1255 1256 * config/vxworks/_yvals.h: #include yvals.h also if 1257 defined(__RTP__). 1258 12592021-12-13 Olivier Hainque <hainque@adacore.com> 1260 1261 * config/vxworks.h (VXWORKS_OS_CPP_BUILTINS): Define 1262 _C99 for C++. 1263 12642021-12-13 Olivier Hainque <hainque@adacore.com> 1265 1266 * config/t-vxworks: Clear NATIVE_SYSTEM_HEADER_DIR. 1267 * config/vxworks.h (SYSROOT_HEADERS_SUFFIX_SPEC): Define, for 1268 VxWorks 7 and earlier. 1269 (VXWORKS_ADDITIONAL_CPP_SPEC): Simplify accordingly. 1270 (STARTFILE_PREFIX_SPEC): Adjust accordingly. 1271 * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Adjust. 1272 12732021-12-13 Martin Liska <mliska@suse.cz> 1274 1275 * doc/extend.texi: Use @item for the first @itemx entry. 1276 12772021-12-13 Jakub Jelinek <jakub@redhat.com> 1278 1279 * machmode.h (gt_pch_nx): Use gt_pointer_operator as type of second 1280 argument instead of equivalent void (*) (void *, void *, void *). 1281 * poly-int.h (gt_pch_nx): Likewise. 1282 * wide-int.h (gt_pch_nx): Likewise. 1283 * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Likewise. 1284 12852021-12-13 Jan Hubicka <hubicka@ucw.cz> 1286 1287 PR ipa/103513 1288 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Do not ICE 1289 on ternary expression. 1290 12912021-12-13 Kewen Lin <linkw@linux.ibm.com> 1292 1293 PR target/103515 1294 * attribs.c (decl_attributes): Check if target options change and 1295 create one node if so. 1296 12972021-12-12 Jonathan Wakely <jwakely@redhat.com> 1298 1299 * Makefile.in: Remove unique-ptr-tests.o. 1300 * selftest-run-tests.c (selftest::run_tests): Remove 1301 unique_ptr_tests_cc_tests. 1302 * selftest.h (unique_ptr_tests_cc_tests): Remove. 1303 * system.h: Check INCLUDE_MEMORY instead of INCLUDE_UNIQUE_PTR 1304 and include <memory> instead of "unique-ptr.h". 1305 * unique-ptr-tests.cc: Removed. 1306 13072021-12-12 Roger Sayle <roger@nextmovesoftware.com> 1308 1309 * config/nvptx/nvptx-opts.h (ptx_isa): Add PTX_ISA_SM53 ISA level 1310 to enumeration. 1311 * config/nvptx/nvptx.opt: Add sm_53 to -misa. 1312 * config/nvptx/nvptx-modes.def: Add support for HFmode. 1313 * config/nvptx/nvptx.h (TARGET_SM53): 1314 New helper macro to conditionalize functionality on target ISA. 1315 * config/nvptx/nvptx-c.c (nvptx_cpu_cpp_builtins): Add __PTX_SM__ 1316 support for the new ISA levels. 1317 * config/nvptx/nvptx.c (nvtx_ptx_type_from_mode): Support new HFmode 1318 with the ".f16" suffix/qualifier. 1319 (nvptx_file_start): Add support for TARGET_SM53. 1320 (nvptx_omp_device_kind_arch_isa): Add support for TARGET_SM53 1321 and tweak TARGET_SM35. 1322 (nvptx_scalar_mode_supported_p): Target hook with conditional 1323 HFmode support on TARGET_SM53 and higher. 1324 (nvptx_libgcc_floating_mode_supported_p): Likewise. 1325 (TARGET_SCALAR_MODE_SUPPORTED_P): Use nvptx_scalar_mode_supported_p. 1326 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Likewise, use new hook. 1327 * config/nvptx/nvptx.md (*movhf_insn): New define_insn. 1328 (movhf): New define_expand for HFmode moves. 1329 (addhf3, subhf3, mulhf, extendhf<mode>2, trunc<mode>hf2): New 1330 instructions conditional on TARGET_SM53 (i.e. -misa=sm_53). 1331 13322021-12-12 Jan Hubicka <hubicka@ucw.cz> 1333 1334 PR ipa/103665 1335 * ipa-modref.c (modref_access_analysis::analyze): Terminate BB 1336 analysis on NULL memory access. 1337 * ipa-pure-const.c (analyze_function): Likewise. 1338 13392021-12-11 Jan Hubicka <hubicka@ucw.cz> 1340 1341 * ipa-profile.c (ipa_profile): Do not update hot bb threshold. 1342 13432021-12-11 Jan Hubicka <hubicka@ucw.cz> 1344 1345 * ipa-modref.c (get_modref_function_summary): Use ultimate_alias_target. 1346 (ignore_edge): Likewise. 1347 (compute_parm_map): Likewise. 1348 (modref_propagate_in_scc): Likewise. 1349 (modref_propagate_flags_in_scc): Likewise. 1350 13512021-12-10 Jason Merrill <jason@redhat.com> 1352 1353 * symtab.c (symtab_node::equal_address_to): Fix comment typo. 1354 13552021-12-10 Doug Rupp <rupp@adacore.com> 1356 1357 * config/vxworks.h (LINK_SPEC): Remove %(link_target). 1358 Change %{v:-v} to %{v:-V}. 1359 13602021-12-10 Olivier Hainque <hainque@adacore.com> 1361 1362 * config/t-vxworks: Remove assignment to STMP_FIXINC. 1363 13642021-12-10 Martin Liska <mliska@suse.cz> 1365 1366 * params.opt: Add missing dot. 1367 13682021-12-10 Roger Sayle <roger@nextmovesoftware.com> 1369 1370 PR ipa/103601 1371 * ipa-modref-tree.h (useful_for_kill_p): Zero width accesses aren't 1372 useful for kill tracking. 1373 13742021-12-10 Andrew Stubbs <ams@codesourcery.com> 1375 1376 * config/gcn/mkoffload.c (process_asm): Process the variable table 1377 completely differently. 1378 (process_obj): Encode the varaible data differently. 1379 13802021-12-10 Joel Hutton <joel.hutton@arm.com> 1381 1382 PR tree-optimization/103523 1383 * tree-vect-loop.c (vectorizable_induction): Check for 1384 PLUS_EXPR/MINUS_EXPR support. 1385 13862021-12-10 Cui,Lili <lili.cui@intel.com> 1387 1388 * config/i386/i386.c (ix86_vector_costs::add_stmt_cost): Remove Tremont. 1389 13902021-12-09 Jan Hubicka <hubicka@ucw.cz> 1391 1392 * doc/invoke.texi (max-inline-functions-called-once-loop-depth, 1393 max-inline-functions-called-once-insns): New parameters. 1394 * ipa-inline.c (check_callers): Handle 1395 param_inline_functions_called_once_loop_depth and 1396 param_inline_functions_called_once_insns. 1397 (edge_badness): Fix linebreaks. 1398 * params.opt (param=max-inline-functions-called-once-loop-depth, 1399 param=max-inline-functions-called-once-insn): New params. 1400 14012021-12-09 Martin Sebor <msebor@redhat.com> 1402 1403 PR tree-optimization/103215 1404 * pointer-query.cc (access_ref::merge_ref): Extend the offset and 1405 size of the merged object instead of using the larger. 1406 14072021-12-09 Martin Sebor <msebor@redhat.com> 1408 1409 PR middle-end/101751 1410 * doc/extend.texi (attribute access): Adjust. 1411 * gimple-ssa-warn-access.cc (pass_waccess::maybe_check_access_sizes): 1412 Treat access mode none on a void* argument as expecting as few as 1413 zero bytes. 1414 14152021-12-09 Jakub Jelinek <jakub@redhat.com> 1416 1417 PR pch/71934 1418 * config/aarch64/aarch64-sve-builtins.cc (gt_pch_nx): Change type of 1419 second argument from function with 2 pointer arguments to function 1420 with 3 pointer arguments. 1421 14222021-12-09 Olivier Hainque <hainque@adacore.com> 1423 1424 * config/aarch64/aarch64-vxworks.h (TARGET_OS_CPP_BUILTINS): 1425 Use VX_CPU_PREFIX in CPU definitions. 1426 14272021-12-09 Martin Sebor <msebor@redhat.com> 1428 1429 * pointer-query.cc (access_ref::dump): Define new function 1430 (pointer_query::dump): Call it. 1431 * pointer-query.h (access_ref::dump): Declare new function. 1432 14332021-12-09 Martin Sebor <msebor@redhat.com> 1434 1435 * pointer-query.cc (compute_objsize_r): Add an argument. 1436 (gimple_call_return_array): Pass a new argument to compute_objsize_r. 1437 (access_ref::merge_ref): Same. 1438 (access_ref::inform_access): Add an argument and use it. 1439 (access_data::access_data): Initialize new member. 1440 (handle_min_max_size): Pass a new argument to compute_objsize_r. 1441 (handle_decl): New function. 1442 (handle_array_ref): Pass a new argument to compute_objsize_r. 1443 Avoid incrementing deref. 1444 (set_component_ref_size): New function. 1445 (handle_component_ref): New function. 1446 (handle_mem_ref): Pass a new argument to compute_objsize_r. 1447 Only increment deref after successfully computing object size. 1448 (handle_ssa_name): New function. 1449 (compute_objsize_r): Move code into helpers and call them. 1450 (compute_objsize): Pass a new argument to compute_objsize_r. 1451 * pointer-query.h (access_ref::inform_access): Add an argument. 1452 (access_data::ostype): New member. 1453 14542021-12-09 Martin Sebor <msebor@redhat.com> 1455 1456 * pointer-query.cc (access_ref::merge_ref): Define new function. 1457 (access_ref::get_ref): Move code into merge_ref and call it. 1458 * pointer-query.h (access_ref::merge_ref): Declare new function. 1459 14602021-12-09 Martin Sebor <msebor@redhat.com> 1461 1462 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Pass 1463 GIMPLE statement to compute_objsize. 1464 * pointer-query.cc (compute_objsize): Add a statement argument. 1465 * pointer-query.h (compute_objsize): Define a new overload. 1466 14672021-12-09 Martin Sebor <msebor@redhat.com> 1468 1469 * gimple-ssa-warn-access.cc (check_access): Adjust to member name 1470 change. 1471 (pass_waccess::check_strncmp): Same. 1472 * pointer-query.cc (access_ref::access_ref): Remove arguments. 1473 Simpilfy. 1474 (access_data::access_data): Define new ctors. 1475 (access_data::set_bound): Define new member function. 1476 (compute_objsize_r): Remove unnecessary code. 1477 * pointer-query.h (struct access_ref): Remove ctor arguments. 1478 (struct access_data): Declare ctor overloads. 1479 (access_data::dst_bndrng): New member. 1480 (access_data::src_bndrng): New member. 1481 14822021-12-09 Martin Sebor <msebor@redhat.com> 1483 1484 PR middle-end/103143 1485 * pointer-query.cc (gimple_call_return_array): Call compute_objsize_r. 1486 14872021-12-09 Olivier Hainque <hainque@adacore.com> 1488 Rasmus Villemoes <rv@rasmusvillemoes.dk> 1489 1490 * Makefile.in (T_STDINT_GCC_H): New variable, path to 1491 stdint-gcc.h that a target configuration may override when 1492 use_gcc_stdint is "provide". 1493 (stmp-int-hdrs): Depend on it and copy that for 1494 USE_GCC_INT=provide. 1495 * config.gcc (vxworks): Revert to use_gcc_stdint=provide. 1496 * config/t-vxworks (T_STDINT_GCC_H): Define, as vxw-stdint-gcc.h. 1497 (vxw-stdint-gcc.h): New target, produced from the original 1498 stdint-gcc.h. 1499 (vxw-glimits.h): Use an automatic variable to designate the 1500 first and only prerequisite. 1501 * config/vxworks/stdint.h: Remove. 1502 15032021-12-09 Iain Sandoe <iain@sandoe.co.uk> 1504 1505 PR pch/71934 1506 * config/host-darwin.c (SAFE_ALLOC_SIZE): Remove. 1507 (darwin_gt_pch_get_address): Rework for relocatable PCH. 1508 (darwin_gt_pch_use_address): Likewise. 1509 15102021-12-09 Jakub Jelinek <jakub@redhat.com> 1511 1512 PR pch/71934 1513 * config/host-darwin.c (darwin_gt_pch_use_address): When reading 1514 manually the file into mapped area, update mapped_addr as 1515 an automatic variable rather than addr which is a reference parameter. 1516 * config/host-hpux.c (hpux_gt_pch_use_address): When reading 1517 manually the file into mapped area, update addr as 1518 an automatic variable rather than base which is a reference parameter. 1519 15202021-12-09 Jakub Jelinek <jakub@redhat.com> 1521 1522 PR pch/71934 1523 * coretypes.h (gt_pointer_operator): Use 3 pointer arguments instead 1524 of two. 1525 * gengtype.c (struct walk_type_data): Add in_nested_ptr argument. 1526 (walk_type): Temporarily set d->in_nested_ptr around nested_ptr 1527 handling. 1528 (write_types_local_user_process_field): Pass a new middle pointer 1529 to gt_pointer_operator op calls, if d->in_nested_ptr pass there 1530 address of d->prev_val[2], otherwise NULL. 1531 (write_types_local_process_field): Likewise. 1532 * ggc-common.c (relocate_ptrs): Add real_ptr_p argument. If equal 1533 to ptr_p, do nothing, otherwise if NULL remember ptr_p's 1534 or if non-NULL real_ptr_p's corresponding new address in 1535 reloc_addrs_vec. 1536 (reloc_addrs_vec): New variable. 1537 (compare_ptr, read_uleb128, write_uleb128): New functions. 1538 (gt_pch_save): When iterating over objects through relocate_ptrs, 1539 save current i into state.ptrs_i. Sort reloc_addrs_vec and emit 1540 it as uleb128 of differences between pointer addresses into the 1541 PCH file. 1542 (gt_pch_restore): Allow restoring of PCH to a different address 1543 than the preferred one, in that case adjust global pointers by bias 1544 and also adjust by bias addresses read from the relocation table 1545 as uleb128 differences. Otherwise fseek over it. Perform 1546 gt_pch_restore_stringpool only after adjusting callbacks and for 1547 callback adjustments also take into account the bias. 1548 (default_gt_pch_use_address): Change type of first argument from 1549 void * to void *&. 1550 (mmap_gt_pch_use_address): Likewise. 1551 * ggc-tests.c (gt_pch_nx): Pass NULL as new middle argument to op. 1552 * hash-map.h (hash_map::pch_nx_helper): Likewise. 1553 (gt_pch_nx): Likewise. 1554 * hash-set.h (gt_pch_nx): Likewise. 1555 * hash-table.h (gt_pch_nx): Likewise. 1556 * hash-traits.h (ggc_remove::pch_nx): Likewise. 1557 * hosthooks-def.h (default_gt_pch_use_address): Change type of first 1558 argument from void * to void *&. 1559 (mmap_gt_pch_use_address): Likewise. 1560 * hosthooks.h (struct host_hooks): Change type of first argument of 1561 gt_pch_use_address hook from void * to void *&. 1562 * machmode.h (gt_pch_nx): Expect a callback with 3 pointers instead of 1563 two in the middle argument. 1564 * poly-int.h (gt_pch_nx): Likewise. 1565 * stringpool.c (gt_pch_nx): Pass NULL as new middle argument to op. 1566 * tree-cfg.c (gt_pch_nx): Likewise, except for LOCATION_BLOCK pass 1567 the same &(block) twice. 1568 * value-range.h (gt_pch_nx): Pass NULL as new middle argument to op. 1569 * vec.h (gt_pch_nx): Likewise. 1570 * wide-int.h (gt_pch_nx): Likewise. 1571 * config/host-darwin.c (darwin_gt_pch_use_address): Change type of 1572 first argument from void * to void *&. 1573 * config/host-darwin.h (darwin_gt_pch_use_address): Likewise. 1574 * config/host-hpux.c (hpux_gt_pch_use_address): Likewise. 1575 * config/host-linux.c (linux_gt_pch_use_address): Likewise. If 1576 it couldn't succeed to mmap at the preferred location, set base 1577 to the actual one. Update addr in the manual reading loop instead of 1578 base. 1579 * config/host-netbsd.c (netbsd_gt_pch_use_address): Change type of 1580 first argument from void * to void *&. 1581 * config/host-openbsd.c (openbsd_gt_pch_use_address): Likewise. 1582 * config/host-solaris.c (sol_gt_pch_use_address): Likewise. 1583 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): Likewise. 1584 * config/rs6000/rs6000-gen-builtins.c (write_init_file): Pass NULL 1585 as new middle argument to op in the generated code. 1586 * doc/gty.texi: Adjust samples for the addition of middle pointer 1587 to gt_pointer_operator callback. 1588 15892021-12-09 Alexandre Oliva <oliva@adacore.com> 1590 1591 PR target/103097 1592 * reg-stack.c (convert_regs_1): Move any_malformed_asm 1593 resetting... 1594 (reg_to_stack): ... here. 1595 15962021-12-09 Alexandre Oliva <oliva@adacore.com> 1597 1598 PR target/103302 1599 * expr.c (emit_move_multi_word): Skip clobber during lra. 1600 16012021-12-09 Alexandre Oliva <oliva@adacore.com> 1602 1603 PR tree-optimization/103024 1604 PR middle-end/103530 1605 * gimple-harden-conditionals.cc (non_eh_succ_edge): New. 1606 (pass_harden_compares::execute): Accept 1-bit integral types, 1607 and cope with throwing compares. 1608 16092021-12-08 Iain Sandoe <iain@sandoe.co.uk> 1610 1611 * config/darwin.h (DARWIN_PIE_SPEC): Add -no_pie when 1612 linking mdynamic-no-pic code on macOS > 10.7. 1613 16142021-12-08 Dimitar Dimitrov <dimitar@dinux.eu> 1615 1616 * config/pru/pru.c (pru_section_type_flags): New function. 1617 (TARGET_SECTION_TYPE_FLAGS): Wire it. 1618 16192021-12-08 David Faust <david.faust@oracle.com> 1620 1621 * config/bpf/bpf.c (handle_attr_preserve): Avoid calling 1622 is_gimple_assign with a NULL pointer. 1623 16242021-12-08 Martin Liska <mliska@suse.cz> 1625 1626 * profile-count.c (profile_count::dump): Add function 1627 that can dump to a provided buffer. 1628 (profile_probability::dump): Likewise. 1629 * profile-count.h: Likewise. 1630 * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): 1631 Use dump_printf_loc infrastructure. 1632 (tree_unswitch_outer_loop): Likewise. 1633 (find_loop_guard): Likewise. 1634 (hoist_guard): Likewise. 1635 16362021-12-08 Chung-Lin Tang <cltang@codesourcery.com> 1637 1638 * gimplify.c (extract_base_bit_offset): Add 'tree *offsetp' parameter, 1639 accomodate case where 'offset' return of get_inner_reference is 1640 non-NULL. 1641 (is_or_contains_p): Further robustify conditions. 1642 (omp_target_reorder_clauses): In alloc/to/from sorting phase, also 1643 move following GOMP_MAP_ALWAYS_POINTER maps along. Add new sorting 1644 phase where we make sure pointers with an attach/detach map are ordered 1645 correctly. 1646 (gimplify_scan_omp_clauses): Add modifications to avoid creating 1647 GOMP_MAP_STRUCT and associated alloc map for attach/detach maps. 1648 16492021-12-08 Roger Sayle <roger@nextmovesoftware.com> 1650 1651 * config/nvptx/nvptx.md (*extend_trunc_<mode>2_qi, 1652 *extend_trunc_<mode>2_hi, *extend_trunc_di2_si): New insns. 1653 Use cvt to perform sign-extension of truncation in one step. 1654 16552021-12-08 Chung-Lin Tang <cltang@codesourcery.com> 1656 1657 PR middle-end/92120 1658 * gimplify.c ("tree-hash-traits.h"): Add include. 1659 (gimplify_scan_omp_clauses): Change struct_map_to_clause to type 1660 hash_map<tree_operand, tree> *. Adjust struct map handling to handle 1661 cases of *A and A->B expressions. Under !DECL_P case of 1662 GOMP_CLAUSE_MAP handling, add STRIP_NOPS for indir_p case, add to 1663 struct_deref_set for map(*ptr_to_struct) cases. Add MEM_REF case when 1664 handling component_ref_p case. Add unshare_expr and gimplification 1665 when created GOMP_MAP_STRUCT is not a DECL. Add code to add 1666 firstprivate pointer for *pointer-to-struct case. 1667 (gimplify_adjust_omp_clauses): Move GOMP_MAP_STRUCT removal code for 1668 exit data directives code to earlier position. 1669 * omp-low.c (lower_omp_target): 1670 Handle GOMP_MAP_ATTACH_ZERO_LENGTH_ARRAY_SECTION, and 1671 GOMP_MAP_POINTER_TO_ZERO_LENGTH_ARRAY_SECTION map kinds. 1672 * tree-pretty-print.c (dump_omp_clause): Likewise. 1673 16742021-12-08 Andrew Stubbs <ams@codesourcery.com> 1675 Hafiz Abid Qadeer <abidh@codesourcery.com> 1676 1677 * dwarf2cfi.c (dw_stack_pointer_regnum): Change type to struct cfa_reg. 1678 (dw_frame_pointer_regnum): Likewise. 1679 (new_cfi_row): Use set_by_dwreg. 1680 (get_cfa_from_loc_descr): Use set_by_dwreg. Support register spans. 1681 handle DW_OP_bregx with DW_OP_breg{0-31}. Support DW_OP_lit*, 1682 DW_OP_const*, DW_OP_minus, DW_OP_shl and DW_OP_plus. 1683 (lookup_cfa_1): Use set_by_dwreg. 1684 (def_cfa_0): Update for cfa_reg and support register spans. 1685 (reg_save): Change sreg parameter to struct cfa_reg. Support register 1686 spans. 1687 (dwf_cfa_reg): New function. 1688 (dwarf2out_flush_queued_reg_saves): Use dwf_cfa_reg instead of 1689 dwf_regno. 1690 (dwarf2out_frame_debug_def_cfa): Likewise. 1691 (dwarf2out_frame_debug_adjust_cfa): Likewise. 1692 (dwarf2out_frame_debug_cfa_offset): Likewise. Update reg_save usage. 1693 (dwarf2out_frame_debug_cfa_register): Likewise. 1694 (dwarf2out_frame_debug_expr): Likewise. 1695 (create_pseudo_cfg): Use set_by_dwreg. 1696 (initial_return_save): Use set_by_dwreg and dwf_cfa_reg, 1697 (create_cie_data): Use dwf_cfa_reg. 1698 (execute_dwarf2_frame): Use dwf_cfa_reg. 1699 (dump_cfi_row): Use set_by_dwreg. 1700 * dwarf2out.c (build_span_loc, build_breg_loc): New function. 1701 (build_cfa_loc): Support register spans. 1702 (build_cfa_aligned_loc): Update cfa_reg usage. 1703 (convert_cfa_to_fb_loc_list): Use set_by_dwreg. 1704 * dwarf2out.h (struct cfa_reg): New type. 1705 (struct dw_cfa_location): Use struct cfa_reg. 1706 (build_span_loc): New prototype. 1707 17082021-12-08 Haochen Jiang <haochen.jiang@intel.com> 1709 1710 PR target/100738 1711 * config/i386/sse.md 1712 (*<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_not_ltint): 1713 Add new define_insn_and_split. 1714 17152021-12-08 Alexandre Oliva <oliva@adacore.com> 1716 1717 PR middle-end/103149 1718 * gimple-harden-conditionals.cc (detach_value): Use memory if 1719 general regs won't do. 1720 17212021-12-07 Martin Liska <mliska@suse.cz> 1722 1723 PR middle-end/103438 1724 * config/s390/s390.c (s390_valid_target_attribute_inner_p): 1725 Use new enum CLVC_INTEGER. 1726 * opt-functions.awk: Use new CLVC_INTEGER. 1727 * opts-common.c (set_option): Likewise. 1728 (option_enabled): Return -1,0,1 for CLVC_INTEGER. 1729 (get_option_state): Use new CLVC_INTEGER. 1730 (control_warning_option): Likewise. 1731 * opts.h (enum cl_var_type): Likewise. 1732 17332021-12-07 H.J. Lu <hjl.tools@gmail.com> 1734 1735 PR target/103594 1736 * config/i386/i386.c (ix86_call_use_plt_p): Check FUNCTION_DECL 1737 before calling cgraph_node::get. 1738 17392021-12-07 Richard Biener <rguenther@suse.de> 1740 1741 PR tree-optimization/103596 1742 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): 1743 Note we are not propagating into a PHI argument to may_propagate_copy. 1744 * tree-ssa-propagate.h (may_propagate_copy): Add 1745 argument specifying whether we propagate into a PHI arg. 1746 * tree-ssa-propagate.c (may_propagate_copy): Likewise. 1747 When not doing so we can replace an abnormal with 1748 something else. 1749 (may_propagate_into_stmt): Update may_propagate_copy calls. 1750 (replace_exp_1): Move propagation checking code to 1751 propagate_value and rename to ... 1752 (replace_exp): ... this and elide previous wrapper. 1753 (propagate_value): Perform checking with adjusted 1754 may_propagate_copy call and dispatch to replace_exp. 1755 17562021-12-07 Matthias Kretz <m.kretz@gsi.de> 1757 1758 * hash-map.h (hash_map::traverse): Let both overloads behave the 1759 same. 1760 * predict.c (assert_is_empty): Return true, thus not changing 1761 behavior. 1762 17632021-12-07 YunQiang Su <yunqiang.su@cipunited.com> 1764 1765 * config/mips/mips.h (ISA_HAS_UNALIGNED_ACCESS, STRICT_ALIGNMENT): 1766 R6 can unaligned access. 1767 * config/mips/mips.md (movmisalign<mode>): Likewise. 1768 * config/mips/mips.opt: add -m(no-)unaligned-access 1769 * doc/invoke.texi: Likewise. 1770 17712021-12-07 Eugene Rozenfeld <erozen@microsoft.com> 1772 1773 * auto-profile.c (afdo_propagate_edge): Improve count propagation algorithm. 1774 17752021-12-06 Paul A. Clarke <pc@us.ibm.com> 1776 1777 PR target/103545 1778 * config/rs6000/xmmintrin.h (_mm_movemask_ps): Replace "vector" with 1779 "__vector". 1780 17812021-12-06 Jose E. Marchesi <jose.marchesi@oracle.com> 1782 1783 * config/bpf/bpf.c (bpf_handle_preserve_access_index_attribute): 1784 Mark arguments `args' and flags' as unused. 1785 (bpf_core_newdecl): Remove unused local `newdecl'. 1786 (bpf_core_newdecl): Remove unused argument `loc'. 1787 (ctfc_debuginfo_early_finish_p): Remove unused function. 1788 (TARGET_CTFC_DEBUGINFO_EARLY_FINISH_P): Remove definition. 1789 (bpf_core_walk): Do not pass a location to bpf_core_newdecl. 1790 17912021-12-06 Richard Sandiford <richard.sandiford@arm.com> 1792 1793 * gimple-range-edge.cc (gimple_outgoing_range::edge_range_p): Add 1794 a shortcut for blocks with single successors. 1795 * gimple-range-gori.cc (gori_map::calculate_gori): Likewise. 1796 17972021-12-06 Richard Sandiford <richard.sandiford@arm.com> 1798 1799 * value-range.cc (irange::irange_union): Use quick_push rather 1800 than safe_push. Use widest_int rather than wide_int. Avoid 1801 assigning wi::to_* results to wide*_int temporaries. 1802 18032021-12-06 Andrew MacLeod <amacleod@redhat.com> 1804 1805 * gimple-range-cache.cc (ranger_cache::fill_block_cache): Check for 1806 a range from dominators before filling the cache. 1807 (ranger_cache::range_from_dom): New. 1808 * gimple-range-cache.h (ranger_cache::range_from_dom): Add prototype. 1809 18102021-12-06 Andrew MacLeod <amacleod@redhat.com> 1811 1812 * gimple-range-gori.h (class gori_compute):: Add prototypes. 1813 * gimple-range-gori.cc (gori_compute::has_edge_range_p): Add alternate 1814 API for basic block. Call for edge alterantive. 1815 (gori_compute::may_recompute_p): Ditto. 1816 18172021-12-06 Richard Biener <rguenther@suse.de> 1818 1819 PR tree-optimization/103581 1820 * tree-vect-stmts.c (vect_build_gather_load_calls): Properly 1821 guard all the AVX512 mask cases. 1822 18232021-12-06 Richard Biener <rguenther@suse.de> 1824 1825 PR tree-optimization/103544 1826 * tree-vect-slp.c (vect_analyze_slp): Only add a SLP reduction 1827 opportunity if the stmt in question is the reduction root. 1828 (dot_slp_tree): Add missing check for NULL child. 1829 18302021-12-06 Jakub Jelinek <jakub@redhat.com> 1831 1832 PR pch/71934 1833 * config/avr/avr.c (avr_output_data_section_asm_op, 1834 avr_output_bss_section_asm_op): Change argument type from const void * 1835 to const char *. 1836 18372021-12-06 Tamar Christina <tamar.christina@arm.com> 1838 1839 PR rtl-optimization/103404 1840 * cse.c (find_sets_in_insn): Don't select elements out of a V1 mode 1841 subreg. 1842 18432021-12-06 Hongtao Liu <Hongtao.liu@intel.com> 1844 Uro�� Bizjak <ubizjak@gmail.com> 1845 1846 PR target/95740 1847 * config/i386/i386.c (ix86_preferred_reload_class): Allow 1848 integer regs when moves between register units are cheap. 1849 * config/i386/i386.h (INT_SSE_CLASS_P): New. 1850 18512021-12-05 David Edelsohn <dje.gcc@gmail.com> 1852 1853 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move 1854 AIX math builtin initialization before new_builtins_are_live. 1855 18562021-12-04 Jakub Jelinek <jakub@redhat.com> 1857 1858 * config/i386/x86-tune.def (X86_TUNE_PARTIAL_REG_DEPENDENCY): Fix 1859 comment typo, Preffer -> prefer. 1860 * ipa-modref-tree.c (modref_access_node::closer_pair_p): Likewise. 1861 18622021-12-04 Alexandre Oliva <oliva@adacore.com> 1863 1864 PR rtl-optimization/103028 1865 * ifcvt.c (find_cond_trap): Validate new insns more strictly 1866 after reload. 1867 18682021-12-03 Martin Liska <mliska@suse.cz> 1869 Peter Bergner <bergner@linux.ibm.com> 1870 1871 PR target/101324 1872 * config/rs6000/rs6000.c (rs6000_option_override_internal): Move the 1873 disabling of shrink-wrapping when using -mrop-protect from here... 1874 (rs6000_override_options_after_change): ...to here. 1875 18762021-12-03 H.J. Lu <hjl.tools@gmail.com> 1877 1878 PR target/103269 1879 * config/i386/i386-expand.c (ix86_expand_builtin): Pass PVW_NONE 1880 and PVW_NONE to ix86_target_string. 1881 * config/i386/i386-options.c (ix86_target_string): Add arguments 1882 for move_max and store_max. 1883 (ix86_target_string::add_vector_width): New lambda. 1884 (ix86_debug_options): Pass ix86_move_max and ix86_store_max to 1885 ix86_target_string. 1886 (ix86_function_specific_print): Pass ptr->x_ix86_move_max and 1887 ptr->x_ix86_store_max to ix86_target_string. 1888 (ix86_valid_target_attribute_tree): Handle x_ix86_move_max and 1889 x_ix86_store_max. 1890 (ix86_option_override_internal): Set the default x_ix86_move_max 1891 and x_ix86_store_max. 1892 * config/i386/i386-options.h (ix86_target_string): Add 1893 prefer_vector_width and prefer_vector_width. 1894 * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): Removed. 1895 (TARGET_AVX256_STORE_BY_PIECES): Likewise. 1896 (MOVE_MAX): Use 64 if ix86_move_max or ix86_store_max == 1897 PVW_AVX512. Use 32 if ix86_move_max or ix86_store_max >= 1898 PVW_AVX256. 1899 (STORE_MAX_PIECES): Use 64 if ix86_store_max == PVW_AVX512. 1900 Use 32 if ix86_store_max >= PVW_AVX256. 1901 * config/i386/i386.opt: Add -mmove-max=bits and -mstore-max=bits. 1902 * config/i386/x86-tune.def (X86_TUNE_AVX512_MOVE_BY_PIECES): New. 1903 (X86_TUNE_AVX512_STORE_BY_PIECES): Likewise. 1904 * doc/invoke.texi: Document -mmove-max=bits and -mstore-max=bits. 1905 19062021-12-03 Bill Schmidt <wschmidt@linux.ibm.com> 1907 1908 * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Fix builtin 1909 identifiers. 1910 19112021-12-03 SiYu Wu <siyu@isrc.iscas.ac.cn> 1912 1913 * common/config/riscv/riscv-common.c (riscv_implied_info): 1914 Add K-ext related entry. 1915 (riscv_supported_std_ext): Add 'k'. 1916 * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add 'k'. 1917 (IMPLIED_EXT): Add K-ext related entry. 1918 19192021-12-03 SiYu Wu <siyu@isrc.iscas.ac.cn> 1920 1921 * common/config/riscv/riscv-common.c (riscv_ext_version_table): 1922 Add zbk* and zk*. 1923 * config/riscv/riscv-opts.h (MASK_ZBKB): New. 1924 (MASK_ZBKC): Ditto. 1925 (MASK_ZBKX): Ditto. 1926 (MASK_ZKNE): Ditto. 1927 (MASK_ZKND): Ditto. 1928 (MASK_ZKNH): Ditto. 1929 (MASK_ZKR): Ditto. 1930 (MASK_ZKSED): Ditto. 1931 (MASK_ZKSH): Ditto. 1932 (MASK_ZKT): Ditto. 1933 (TARGET_ZBKB): Ditto. 1934 (TARGET_ZBKC): Ditto. 1935 (TARGET_ZBKX): Ditto. 1936 (TARGET_ZKNE): Ditto. 1937 (TARGET_ZKND): Ditto. 1938 (TARGET_ZKNH): Ditto. 1939 (TARGET_ZKR): Ditto. 1940 (TARGET_ZKSED): Ditto. 1941 (TARGET_ZKSH): Ditto. 1942 (TARGET_ZKT): Ditto. 1943 * config/riscv/riscv.opt (riscv_zk_subext): New. 1944 19452021-12-03 Tamar Christina <tamar.christina@arm.com> 1946 1947 * tree-vect-stmts.c (prepare_load_store_mask): Rename to... 1948 (prepare_vec_mask): ...This and record operations that have already been 1949 masked. 1950 (vectorizable_call): Use it. 1951 (vectorizable_operation): Likewise. 1952 (vectorizable_store): Likewise. 1953 (vectorizable_load): Likewise. 1954 * tree-vectorizer.h (class _loop_vec_info): Add vec_cond_masked_set. 1955 (vec_cond_masked_set_type, tree_cond_mask_hash): New. 1956 19572021-12-03 H.J. Lu <hjl.tools@gmail.com> 1958 1959 PR target/51469 1960 PR target/83782 1961 * target.def (ifunc_ref_local_ok): Add a target hook. 1962 * varasm.c (default_binds_local_p_3): Force indirect function 1963 resolver non-local only if targetm.ifunc_ref_local_ok returns 1964 false. 1965 * config/i386/i386-expand.c (ix86_expand_call): Call 1966 ix86_call_use_plt_p to check if PLT should be used. 1967 * config/i386/i386-protos.h (ix86_call_use_plt_p): New. 1968 * config/i386/i386.c (output_pic_addr_const): Call 1969 ix86_call_use_plt_p to check if "@PLT" is needed. 1970 (ix86_call_use_plt_p): New. 1971 (TARGET_IFUNC_REF_LOCAL_OK): New. 1972 * doc/tm.texi.in: Add TARGET_IFUNC_REF_LOCAL_OK. 1973 * doc/tm.texi: Regenerated. 1974 19752021-12-03 Jakub Jelinek <jakub@redhat.com> 1976 1977 * attribs.h (simple_cst_list_equal): Declare. 1978 * attribs.c (simple_cst_list_equal): No longer static. 1979 * config/i386/i386-options.c (target_attribute_cache): New variable. 1980 (ix86_valid_target_attribute_p): Cache DECL_FUNCTION_SPECIFIC_TARGET 1981 and DECL_FUNCTION_SPECIFIC_OPTIMIZATION based on args. 1982 19832021-12-03 Jakub Jelinek <jakub@redhat.com> 1984 1985 PR pch/71934 1986 * ggc.h (gt_pch_note_callback): Declare. 1987 * gengtype.h (enum typekind): Add TYPE_CALLBACK. 1988 (callback_type): Declare. 1989 * gengtype.c (dbgprint_count_type_at): Handle TYPE_CALLBACK. 1990 (callback_type): New variable. 1991 (process_gc_options): Add CALLBACK argument, handle callback 1992 option. 1993 (set_gc_used_type): Adjust process_gc_options caller, if callback, 1994 set type to &callback_type. 1995 (output_mangled_typename): Handle TYPE_CALLBACK. 1996 (walk_type): Likewise. Handle callback option. 1997 (write_types_process_field): Handle TYPE_CALLBACK. 1998 (write_types_local_user_process_field): Likewise. 1999 (write_types_local_process_field): Likewise. 2000 (write_root): Likewise. 2001 (dump_typekind): Likewise. 2002 (dump_type): Likewise. 2003 * gengtype-state.c (type_lineloc): Handle TYPE_CALLBACK. 2004 (state_writer::write_state_callback_type): New method. 2005 (state_writer::write_state_type): Handle TYPE_CALLBACK. 2006 (read_state_callback_type): New function. 2007 (read_state_type): Handle TYPE_CALLBACK. 2008 * ggc-common.c (callback_vec): New variable. 2009 (gt_pch_note_callback): New function. 2010 (gt_pch_save): Stream out gt_pch_save function address and relocation 2011 table. 2012 (gt_pch_restore): Stream in saved gt_pch_save function address and 2013 relocation table and apply relocations if needed. 2014 * doc/gty.texi (callback): Document new GTY option. 2015 * varasm.c (get_unnamed_section): Change callback argument's type and 2016 last argument's type from const void * to const char *. 2017 (output_section_asm_op): Change argument's type from const void * 2018 to const char *, remove unnecessary cast. 2019 * tree-core.h (struct tree_translation_unit_decl): Drop GTY((skip)) 2020 from language member. 2021 * output.h (unnamed_section_callback): Change argument type from 2022 const void * to const char *. 2023 (struct unnamed_section): Use GTY((callback)) instead of GTY((skip)) 2024 for callback member. Change data member type from const void * 2025 to const char *. 2026 (struct noswitch_section): Use GTY((callback)) instead of GTY((skip)) 2027 for callback member. 2028 (get_unnamed_section): Change callback argument's type and 2029 last argument's type from const void * to const char *. 2030 (output_section_asm_op): Change argument's type from const void * 2031 to const char *. 2032 * config/avr/avr.c (avr_output_progmem_section_asm_op): Likewise. 2033 Remove unneeded cast. 2034 * config/darwin.c (output_objc_section_asm_op): Change argument's type 2035 from const void * to const char *. 2036 * config/pa/pa.c (som_output_text_section_asm_op): Likewise. 2037 (som_output_comdat_data_section_asm_op): Likewise. 2038 * config/rs6000/rs6000.c (rs6000_elf_output_toc_section_asm_op): 2039 Likewise. 2040 (rs6000_xcoff_output_readonly_section_asm_op): Likewise. Instead 2041 of dereferencing directive hardcode variable names and decide based on 2042 whether directive is NULL or not. 2043 (rs6000_xcoff_output_readwrite_section_asm_op): Change argument's type 2044 from const void * to const char *. 2045 (rs6000_xcoff_output_tls_section_asm_op): Likewise. Instead 2046 of dereferencing directive hardcode variable names and decide based on 2047 whether directive is NULL or not. 2048 (rs6000_xcoff_output_toc_section_asm_op): Change argument's type 2049 from const void * to const char *. 2050 (rs6000_xcoff_asm_init_sections): Adjust get_unnamed_section callers. 2051 20522021-12-03 Richard Purdie <richard.purdie@linuxfoundation.org> 2053 2054 * Makefile.in: Fix "argument list too long" from install-plugins. 2055 20562021-12-03 Matt Jacobson <mhjacobson@me.com> 2057 2058 * config.gcc: For the AVR target, populate TM_MULTILIB_CONFIG. 2059 * config/avr/genmultilib.awk: Add ability to filter generated multilib 2060 list. 2061 * config/avr/t-avr: Pass TM_MULTILIB_CONFIG to genmultilib.awk. 2062 * configure.ac: Update help string for --with-multilib-list. 2063 * configure: Regenerate. 2064 20652021-12-02 Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com> 2066 2067 * configure: Regenerate. 2068 * configure.ac: Define TARGET_LIBC_GNUSTACK on musl. 2069 20702021-12-02 Iain Sandoe <iain@sandoe.co.uk> 2071 2072 PR target/55610 2073 * config/host-darwin.c (TRY_EMPTY_VM_SPACE, 2074 SAFE_ALLOC_SIZE): New. 2075 (darwin_gt_pch_get_address): Rewrite to use nominated 2076 memory segments rather than part of the compiler __DATA 2077 segment. 2078 (darwin_gt_pch_use_address): Likewise. 2079 20802021-12-02 Gerald Pfeifer <gerald@pfeifer.com> 2081 2082 * doc/install.texi (*-*-freebsd*): Remove references to 2083 FreeBSD 1 and FreeBSD 2. 2084 20852021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> 2086 2087 PR rtl-optimization/103437 2088 * ira-color.c (setup_allocno_priorities): Switch off backup code 2089 for overflow if compiler has __builtin_smul_overflow. Use < 2090 for comparison with -INT_MAX. 2091 20922021-12-02 Bill Schmidt <wschmidt@linux.ibm.com> 2093 2094 * config/rs6000/altivec.h: Delete a number of #defines that are now 2095 superfluous. Alphabetize. Include rs6000-vecdefines.h. Include some 2096 synonyms. 2097 * config/rs6000/rs6000-builtin-new.def (CMPB): Flag as no32bit. 2098 (BPERMD): Flag as 32bit (needing special handling for 32-bit). 2099 (UNPACK_TD): Return unsigned long long instead of unsigned long. 2100 (GET_TEXASR): Return unsigned long instead of unsigned long long. 2101 (GET_TEXASRU): Likewise. 2102 (GET_TFHAR): Likewise. 2103 (GET_TFIAR): Likewise. 2104 (SET_TEXASR): Pass unsigned long instead of unsigned long long. 2105 (SET_TEXASRU): Likewise. 2106 (SET_TFHAR): Likewise. 2107 (SET_TFIAR): Likewise. 2108 (TABORTDC): Likewise. 2109 (TABORTDCI): Likewise. 2110 * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): Fix error 2111 handling for no32bit. Add 32bit handling for RS6000_BIF_BPERMD. 2112 * config/rs6000/rs6000-gen-builtins.c (write_init_file): Initialize 2113 new_builtins_are_live to 1. 2114 21152021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> 2116 2117 PR rtl-optimization/103437 2118 * ira-color.c (setup_allocno_priorities): Use long long 2119 multiplication as backup for overflow processing. 2120 21212021-12-02 Tamar Christina <tamar.christina@arm.com> 2122 2123 * config/aarch64/aarch64-protos.h (aarch64_gen_shareable_zero): New. 2124 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>, 2125 aarch64_rshrn2<mode>): Generate rounding half-ing add when appropriate. 2126 * config/aarch64/aarch64.c (aarch64_gen_shareable_zero): New. 2127 21282021-12-02 Vladimir N. Makarov <vmakarov@redhat.com> 2129 2130 PR rtl-optimization/103437 2131 * ira-color.c (setup_allocno_priorities): Process multiplication 2132 overflow. 2133 21342021-12-02 Martin Liska <mliska@suse.cz> 2135 2136 PR gcov-profile/96092 2137 * common.opt: New option. 2138 * coverage.c (coverage_begin_function): Emit filename with 2139 remap_profile_filename. 2140 * doc/invoke.texi: Document the new option. 2141 * file-prefix-map.c (add_profile_prefix_map): New. 2142 (remap_profile_filename): Likewise. 2143 * file-prefix-map.h (add_profile_prefix_map): Likewise. 2144 (remap_profile_filename): Likewise. 2145 * lto-opts.c (lto_write_options): Handle 2146 OPT_fprofile_prefix_map_. 2147 * opts-global.c (handle_common_deferred_options): Likewise. 2148 * opts.c (common_handle_option): Likewise. 2149 (gen_command_line_string): Likewise. 2150 * profile.c (output_location): Emit filename with 2151 remap_profile_filename. 2152 21532021-12-02 Richard Biener <rguenther@suse.de> 2154 2155 PR middle-end/103271 2156 * internal-fn.c (expand_DEFERRED_INIT): When the base 2157 of the LHS is a decl with matching constant size use 2158 that as the initialization target instead of an 2159 eventual VLA typed one. 2160 21612021-12-02 Richard Biener <rguenther@suse.de> 2162 2163 PR tree-optimization/103527 2164 * tree-vect-stmts.c (vect_build_gather_load_calls): Always 2165 use a truth type for building the vector mask. 2166 21672021-12-02 Rasmus Villemoes <rasmus.villemoes@prevas.dk> 2168 2169 * config/vxworks.h (LTO_PLUGIN_SPEC): Adapt to corrected 2170 spelling of -linker-output-auto-nolto-rel. 2171 21722021-12-01 Uro�� Bizjak <ubizjak@gmail.com> 2173 2174 PR target/102811 2175 * config/i386/sse.md (VI2F): Remove mode iterator. 2176 (VI2F_256_512): New mode iterator. 2177 (vec_set<V8_128:mode>_0): New insn pattern. 2178 (vec_set<VI2F_256_512:mode>_0>): Rename from vec_set<VI2F:mode>mode. 2179 Use VI2F_256_512 mode iterator instead of VI2F. 2180 (*axv512fp16_movsh): Remove. 2181 (<sse2p4_1>_pinsr<ssemodesuffix>): Add (x,x,x) AVX2 alternative. 2182 Do not disable V8HF mode insn on AVX2 targets. 2183 (pinsrw -> pbroadcast + pblendw peephole2): New peephole. 2184 (pinsrw -> pbroadcast + pblendw splitter): New post-reload splitter. 2185 * config/i386/i386.md (extendhfsf): Call gen_vec_setv8hf_0. 2186 * config/i386/i386-expand.c (ix86_expand_vector_set) 2187 <case E_V8HFmode>: Use vec_merge path for TARGET_AVX2. 2188 21892021-12-01 Roger Sayle <roger@nextmovesoftware.com> 2190 Richard Biener <rguenther@suse.de> 2191 2192 * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): 2193 Check if simplify_using_initial_conditions allows us to 2194 simplify the expression for may_be_zero. 2195 * match.pd (X != C ? -X : -C -> -X): New transform. 2196 (X != C ? ~X : ~C -> ~X): Likewise. 2197 ((X+1) > Y ? -X : 1 -> X >= Y ? -X : 1): Likewise. 2198 21992021-12-01 Peter Bergner <bergner@linux.ibm.com> 2200 2201 PR middle-end/103127 2202 * gimplify.c (is_var_need_auto_init): Handle opaque types. 2203 22042021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> 2205 2206 * common.opt (static-libphobos): Add option. 2207 * config/darwin.h (LINK_SPEC): Substitute -lgphobos with libgphobos.a 2208 when linking statically. 2209 * gcc.c (driver_handle_option): Set -static-libphobos as always valid. 2210 22112021-12-01 Jason Merrill <jason@redhat.com> 2212 2213 PR c++/103310 2214 * fold-const.c (maybe_nonzero_address): Use get_create or get 2215 depending on folding_initializer. 2216 (fold_binary_initializer_loc): New. 2217 * fold-const.h (fold_binary_initializer_loc): Declare. 2218 * varasm.c (mark_weak): Don't use the decl location. 2219 * doc/invoke.texi: Document -fconstexpr-fp-except. 2220 22212021-12-01 Bill Schmidt <wschmidt@linux.ibm.com> 2222 2223 PR target/102347 2224 * config/rs6000/rs6000-c.c (rs6000-builtins.h): Stop including. 2225 (rs6000-internal.h): Include. 2226 (altivec_resolve_new_overloaded_builtin): Move call to 2227 rs6000_invalid_new_builtin here from rs6000_new_builtin_decl. 2228 * config/rs6000/rs6000-call.c (rs6000-builtins.h): Stop including. 2229 (rs6000_invalid_new_builtin): Remove static qualifier. 2230 (rs6000_new_builtin_decl): Remove test for supported builtin. 2231 * config/rs6000/rs6000-internal.h (rs6000-builtins.h): Include. 2232 (rs6000_invalid_new_builtin): Declare. 2233 * config/rs6000/rs6000.c (rs6000-builtins.h): Don't include. 2234 22352021-12-01 Aldy Hernandez <aldyh@redhat.com> 2236 2237 PR tree-optimization/103409 2238 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): 2239 Do all the work with just one ssa_global_cache. 2240 * gimple-range-path.h: Remove m_tmp_phi_cache. 2241 22422021-12-01 Richard Sandiford <richard.sandiford@arm.com> 2243 2244 PR tree-optimization/103517 2245 * tree-vect-slp.c (vect_build_slp_tree_1): When allowing two 2246 different component references, check the codes of both them, 2247 rather than just the first. 2248 22492021-12-01 Andrew MacLeod <amacleod@redhat.com> 2250 2251 PR tree-optimization/103464 2252 * gimple-range.cc (gimple_ranger::prefill_name): Process phis also. 2253 (gimple_ranger::prefill_stmt_dependencies): Ditto. 2254 22552021-12-01 Iain Buclaw <ibuclaw@gdcproject.org> 2256 2257 * doc/install.texi (Prerequisites): Add note that D front end now 2258 requires GDC installed in order to bootstrap. 2259 (Building): Add D compiler section, referencing prerequisites. 2260 22612021-12-01 Jakub Jelinek <jakub@redhat.com> 2262 2263 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE, 2264 X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY, 2265 X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Formatting fixes. 2266 (X86_TUNE_USE_GATHER): Put m_GENERIC last for consistency. 2267 22682021-12-01 Jakub Jelinek <jakub@redhat.com> 2269 2270 PR rtl-optimization/102356 2271 * rtl.h (simplify_context): Add assoc_count member and 2272 max_assoc_count static member. 2273 * simplify-rtx.c (simplify_associative_operation): Don't reassociate 2274 more than max_assoc_count times within one outermost simplify_* call. 2275 * dwarf2out.c (mem_loc_descriptor): Optimize binary operation 2276 with both operands the same using DW_OP_dup. 2277 22782021-12-01 Tamar Christina <tamar.christina@arm.com> 2279 2280 * match.pd: Move below pattern that rewrites to EQ, NE. 2281 * tree.c (bitmask_inv_cst_vector_p): Correct do .. while indentation. 2282 22832021-12-01 Siddhesh Poyarekar <siddhesh@gotplt.org> 2284 Martin Li��ka <mliska@suse.cz> 2285 2286 PR tree-optimization/103456 2287 * tree-object-size.c (merge_object_sizes): Update osi->changed 2288 only if object_sizes_set succeeded. 2289 22902021-11-30 liuhongt <hongtao.liu@intel.com> 2291 2292 PR target/103463 2293 PR target/103484 2294 * config/i386/i386.md (*x86_64_shld_1): Set_attr 2295 length_immediate to 1. 2296 (*x86_shld_1): Ditto. 2297 (*x86_64_shrd_1): Ditto. 2298 (*x86_shrd_1): Ditto. 2299 23002021-11-30 Bill Schmidt <wschmidt@linux.ibm.com> 2301 2302 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 2303 Clarify diagnostic. 2304 (altivec_resolve_new_overloaded_builtin): Likewise. 2305 23062021-11-30 Martin Jambor <mjambor@suse.cz> 2307 2308 PR ipa/103267 2309 * ipa-sra.c (scan_function): Also check ECF_LOOPING_CONST_OR_PURE flag. 2310 23112021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2312 2313 PR tree-optimization/103494 2314 * tree-vect-stmts.c (vect_get_gather_scatter_ops): Remove ncopies 2315 argument and calculate ncopies from gs_info->offset_vectype 2316 where necessary. 2317 (vectorizable_store, vectorizable_load): Update accordingly. 2318 23192021-11-30 Iain Buclaw <ibuclaw@gdcproject.org> 2320 2321 * Makefile.in (GDC): New variable. 2322 (GDCFLAGS): New variable. 2323 * configure: Regenerate. 2324 * configure.ac: Add call to ACX_PROG_GDC. Substitute GDCFLAGS. 2325 23262021-11-30 Martin Liska <mliska@suse.cz> 2327 Martin Jambor <mjambor@suse.cz> 2328 2329 PR ipa/103449 2330 * ipa-param-manipulation.c 2331 (ipa_param_body_adjustments::prepare_debug_expressions): Be 2332 careful about hash_map reallocating itself. Simpify a return 2333 which always returns true. 2334 23352021-11-30 Andrew MacLeod <amacleod@redhat.com> 2336 2337 PR tree-optimization/103440 2338 * gimple-range-fold.cc (fold_using_range::range_of_phi): Continue 2339 normal param processing for equiv params. 2340 23412021-11-30 Richard Biener <rguenther@suse.de> 2342 2343 * config/i386/i386.c (ix86_shift_rotate_cost): Remove 2344 unreachable return. 2345 * tree-chrec.c (evolution_function_is_invariant_rec_p): 2346 Likewise. 2347 * tree-if-conv.c (if_convertible_stmt_p): Likewise. 2348 * tree-ssa-pre.c (fully_constant_expression): Likewise. 2349 * tree-vrp.c (operand_less_p): Likewise. 2350 * reload.c (reg_overlap_mentioned_for_reload_p): Remove 2351 unreachable gcc_unreachable (). 2352 * sel-sched-ir.h (bb_next_bb): Likewise. 2353 * varasm.c (compare_constant): Likewise. 2354 23552021-11-30 Richard Biener <rguenther@suse.de> 2356 2357 PR tree-optimization/103489 2358 * tree-vect-loop.c (vectorizable_phi): Verify argument 2359 vector type compatibility to mitigate bool pattern recog 2360 bug. 2361 23622021-11-30 Thomas Schwinge <thomas@codesourcery.com> 2363 2364 * omp-offload.c (oacc_loop_auto_partitions): Remove erroneous 2365 "Orphan reductions cannot have gang partitioning" handling. 2366 23672021-11-30 Thomas Schwinge <thomas@codesourcery.com> 2368 2369 * omp-offload.c (oacc_loop_process): Implement "gang reduction on 2370 an orphan loop" checking. 2371 23722021-11-30 Cesar Philippidis <cesar@codesourcery.com> 2373 Thomas Schwinge <thomas@codesourcery.com> 2374 2375 * omp-general.h (enum oacc_loop_flags): Add OLF_REDUCTION enum. 2376 * omp-low.c (lower_oacc_head_mark): Use it to mark OpenACC 2377 reductions. 2378 * omp-offload.c (oacc_loop_auto_partitions): Don't assign gang 2379 level parallelism to orphan reductions. 2380 23812021-11-30 Aldy Hernandez <aldyh@redhat.com> 2382 2383 PR tree-optimization/103451 2384 * range-op.cc (operator_div::wi_fold): Remove 2385 can_throw_non_call_exceptions special case. 2386 * tree-ssa-sink.c (sink_code_in_bb): Same. 2387 23882021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2389 2390 * tree-vect-slp.c (arg1_arg4_map): New variable. 2391 (vect_get_operand_map): Handle IFN_MASK_GATHER_LOAD. 2392 (vect_build_slp_tree_1): Likewise. 2393 (vect_build_slp_tree_2): Likewise. 2394 * tree-vect-stmts.c (vectorizable_load): Expect the mask to be 2395 the last SLP child node rather than the first. 2396 23972021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2398 2399 * tree-if-conv.c: Include tree-eh.h. 2400 (predicate_statements): Remove pe argument. Don't hoist 2401 statements here. 2402 (combine_blocks): Remove pe argument. 2403 (ifcvt_available_on_edge_p, ifcvt_can_hoist): New functions. 2404 (ifcvt_hoist_invariants): Likewise. 2405 (tree_if_conversion): Update call to combine_blocks. Call 2406 ifcvt_hoist_invariants after VN. 2407 24082021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2409 2410 PR tree-optimization/102467 2411 * doc/sourcebuild.texi (vect_gather_load_ifn): Document. 2412 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): 2413 Commonize safelen handling. Punt for anything involving 2414 gathers and scatters unless safelen says otherwise. 2415 * tree-vect-slp.c (arg1_map): New variable. 2416 (vect_get_operand_map): Handle IFN_GATHER_LOAD. 2417 (vect_build_slp_tree_1): Likewise. 2418 (vect_build_slp_tree_2): Likewise. 2419 (compatible_calls_p): If vect_get_operand_map returns nonnull, 2420 check that any skipped arguments are equal. 2421 (vect_slp_analyze_node_operations_1): Tighten reduction check. 2422 * tree-vect-stmts.c (check_load_store_for_partial_vectors): Take 2423 an ncopies argument. 2424 (vect_get_gather_scatter_ops): Take slp_node and ncopies arguments. 2425 Handle SLP nodes. 2426 (vectorizable_store, vectorizable_load): Adjust accordingly. 2427 24282021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2429 2430 * gimple.h (gimple_num_args, gimple_arg, gimple_arg_ptr): New 2431 functions. 2432 * tree-vect-slp.c (cond_expr_maps, arg2_map): New variables. 2433 (vect_get_operand_map): New function. 2434 (vect_get_and_check_slp_defs): Fix outdated comment. 2435 Use vect_get_operand_map and new gimple argument accessors. 2436 (vect_build_slp_tree_2): Likewise. 2437 24382021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2439 2440 * tree-vect-slp.c (vect_build_slp_tree_1): Use code_helper 2441 to record the operations performed by statements, only using 2442 CALL_EXPR for things that don't map to built-in or internal 2443 functions. For shifts, require all shift amounts to be equal 2444 if optab_vector is not supported but optab_scalar is. 2445 24462021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2447 2448 * tree-vect-data-refs.c (vect_check_gather_scatter): Continue 2449 processing conversions if the current offset is a pointer. 2450 24512021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2452 2453 * tree-vectorizer.h (vect_is_reduction): Use STMT_VINFO_REDUC_IDX. 2454 24552021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2456 2457 * genopinit.c (main): Turn supports_vec_gather_load and 2458 supports_vec_scatter_store into signed char arrays and remove 2459 supports_vec_gather_load_cached and supports_vec_scatter_store_cached. 2460 * optabs-query.c (supports_vec_convert_optab_p): Add a mode parameter. 2461 If the mode is not VOIDmode, test only for that mode. 2462 (supports_vec_gather_load_p): Likewise. 2463 (supports_vec_scatter_store_p): Likewise. 2464 * optabs-query.h (supports_vec_gather_load_p): Likewise. 2465 (supports_vec_scatter_store_p): Likewise. 2466 * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the 2467 vector mode to supports_vec_gather_load_p and 2468 supports_vec_scatter_store_p. 2469 24702021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2471 2472 * internal-fn.c (commutative_binary_fn_p): Handle IFN_ADD_OVERFLOW 2473 and IFN_MUL_OVERFLOW. 2474 24752021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2476 2477 * internal-fn.c (commutative_binary_fn_p): Handle IFN_UBSAN_CHECK_ADD 2478 and IFN_UBSAN_CHECK_MUL. 2479 24802021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2481 2482 * internal-fn.c (commutative_binary_fn_p): Handle IFN_COMPLEX_MUL. 2483 24842021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2485 2486 * gimple-fold.c: Include internal-fn.h. 2487 (fold_stmt_1): If a function maps to an internal one, use 2488 first_commutative_argument to canonicalize the order of 2489 commutative arguments. 2490 * gimple-match-head.c (gimple_resimplify2, gimple_resimplify3) 2491 (gimple_resimplify4, gimple_resimplify5): Extend commutativity 2492 checks to functions. 2493 24942021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2495 2496 * doc/md.texi (reduc_fmin_scal_@var{m}): Document. 2497 (reduc_fmax_scal_@var{m}): Likewise. 2498 * optabs.def (reduc_fmax_scal_optab): New optab. 2499 (reduc_fmin_scal_optab): Likewise 2500 * internal-fn.def (REDUC_FMAX, REDUC_FMIN): New functions. 2501 * tree-vect-loop.c (reduction_fn_for_scalar_code): Handle 2502 CASE_CFN_FMAX and CASE_CFN_FMIN. 2503 (neutral_op_for_reduction): Likewise. 2504 (needs_fold_left_reduction_p): Likewise. 2505 * config/aarch64/iterators.md (FMAXMINV): New iterator. 2506 (fmaxmin): Handle UNSPEC_FMAXNMV and UNSPEC_FMINNMV. 2507 * config/aarch64/aarch64-simd.md (reduc_<optab>_scal_<mode>): Fix 2508 unspec mode. 2509 (reduc_<fmaxmin>_scal_<mode>): New pattern. 2510 * config/aarch64/aarch64-sve.md (reduc_<fmaxmin>_scal_<mode>): 2511 Likewise. 2512 25132021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2514 2515 * builtins.h (associated_internal_fn): Declare overload that 2516 takes a (combined_cfn, return type) pair. 2517 * builtins.c (associated_internal_fn): Split new overload out 2518 of original fndecl version. Also provide an overload that takes 2519 a (combined_cfn, return type) pair. 2520 * internal-fn.h (commutative_binary_fn_p): Declare. 2521 (commutative_ternary_fn_p): Likewise. 2522 (associative_binary_fn_p): Likewise. 2523 * internal-fn.c (commutative_binary_fn_p, commutative_ternary_fn_p): 2524 New functions, split out from... 2525 (first_commutative_argument): ...here. 2526 (associative_binary_fn_p): New function. 2527 * gimple-match.h (code_helper): Add a constructor that takes 2528 internal functions. 2529 (commutative_binary_op_p): Declare. 2530 (commutative_ternary_op_p): Likewise. 2531 (first_commutative_argument): Likewise. 2532 (associative_binary_op_p): Likewise. 2533 (canonicalize_code): Likewise. 2534 (directly_supported_p): Likewise. 2535 (get_conditional_internal_fn): Likewise. 2536 (gimple_build): New overloads that takes a code_helper. 2537 * gimple-fold.c (gimple_build): Likewise. 2538 * gimple-match-head.c (commutative_binary_op_p): New function. 2539 (commutative_ternary_op_p): Likewise. 2540 (first_commutative_argument): Likewise. 2541 (associative_binary_op_p): Likewise. 2542 (canonicalize_code): Likewise. 2543 (directly_supported_p): Likewise. 2544 (get_conditional_internal_fn): Likewise. 2545 * tree-vectorizer.h: Include gimple-match.h. 2546 (neutral_op_for_reduction): Take a code_helper instead of a tree_code. 2547 (needs_fold_left_reduction_p): Likewise. 2548 (reduction_fn_for_scalar_code): Likewise. 2549 (vect_can_vectorize_without_simd_p): Declare a nNew overload that takes 2550 a code_helper. 2551 * tree-vect-loop.c: Include case-cfn-macros.h. 2552 (fold_left_reduction_fn): Take a code_helper instead of a tree_code. 2553 (reduction_fn_for_scalar_code): Likewise. 2554 (neutral_op_for_reduction): Likewise. 2555 (needs_fold_left_reduction_p): Likewise. 2556 (use_mask_by_cond_expr_p): Likewise. 2557 (build_vect_cond_expr): Likewise. 2558 (vect_create_partial_epilog): Likewise. Use gimple_build rather 2559 than gimple_build_assign. 2560 (check_reduction_path): Handle calls and operate on code_helpers 2561 rather than tree_codes. 2562 (vect_is_simple_reduction): Likewise. 2563 (vect_model_reduction_cost): Likewise. 2564 (vect_find_reusable_accumulator): Likewise. 2565 (vect_create_epilog_for_reduction): Likewise. 2566 (vect_transform_cycle_phi): Likewise. 2567 (vectorizable_reduction): Likewise. Make more use of 2568 lane_reduc_code_p. 2569 (vect_transform_reduction): Use gimple_extract_op but expect 2570 a tree_code for now. 2571 (vect_can_vectorize_without_simd_p): New overload that takes 2572 a code_helper. 2573 * tree-vect-stmts.c (vectorizable_call): Handle reductions in 2574 fully-masked loops. 2575 * tree-vect-patterns.c (vect_mark_pattern_stmts): Use 2576 gimple_extract_op when updating STMT_VINFO_REDUC_IDX. 2577 25782021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2579 2580 * gimple-match.h (code_helper): Provide == and != overloads. 2581 (code_helper::operator tree_code): Make explicit. 2582 (code_helper::operator combined_fn): Likewise. 2583 * gimple-match-head.c (convert_conditional_op): Use explicit 2584 conversions where necessary. 2585 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3): Likewise. 2586 (maybe_push_res_to_seq, gimple_simplify): Likewise. 2587 * gimple-fold.c (replace_stmt_with_simplification): Likewise. 2588 25892021-11-30 Richard Sandiford <richard.sandiford@arm.com> 2590 2591 * gimple-match.h (code_helper): Add functions for querying whether 2592 the code represents an internal_fn or a built_in_function. 2593 Provide explicit conversion operators for both cases. 2594 (gimple_extract_op): Declare. 2595 * gimple-match-head.c (gimple_extract): New function, extracted from... 2596 (gimple_simplify): ...here. 2597 (gimple_extract_op): New function. 2598 25992021-11-30 Eric Botcazou <ebotcazou@adacore.com> 2600 2601 PR target/103274 2602 * config/i386/i386.c (ix86_output_call_insn): Beef up comment about 2603 nops emitted with SEH. 2604 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to 2605 the cold section, emit a nop before the directive if the previous 2606 active instruction is a call. 2607 26082021-11-30 Roger Sayle <roger@nextmovesoftware.com> 2609 Uro�� Bizjak <ubizjak@gmail.com> 2610 2611 PR target/100711 2612 * config/i386/sse.md (define_split): New splitters to simplify 2613 not;vec_duplicate;and as vec_duplicate;andn. 2614 26152021-11-30 Richard Biener <rguenther@suse.de> 2616 2617 PR middle-end/103485 2618 * match.pd (-((int)x >> (prec - 1)) to (unsigned)x >> (prec - 1)): 2619 Use VIEW_CONVERT_EXPR for vectors. 2620 26212021-11-30 Richard Biener <rguenther@suse.de> 2622 2623 * cfgrtl.c (skip_insns_after_block): Refactor code to 2624 be more easily readable. 2625 * expr.c (op_by_pieces_d::run): Remove unreachable 2626 assert. 2627 * sched-deps.c (sched_analyze): Remove unreachable 2628 gcc_unreachable. 2629 * sel-sched-ir.c (in_same_ebb_p): Likewise. 2630 * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): 2631 Remove unreachable code. 2632 * tree-vect-slp.c (vectorize_slp_instance_root_stmt): 2633 Refactor to avoid unreachable loop iteration. 2634 * tree.c (walk_tree_1): Remove unreachable break. 2635 * vec-perm-indices.c (vec_perm_indices::series_p): Remove 2636 unreachable return. 2637 26382021-11-30 Kewen Lin <linkw@linux.ibm.com> 2639 2640 PR target/102347 2641 * config/rs6000/rs6000-call.c (rs6000_builtin_decl): Remove builtin mask 2642 check. 2643 26442021-11-30 Kewen Lin <linkw@linux.ibm.com> 2645 2646 * config/rs6000/rs6000.c 2647 (rs6000_cost_data::update_target_cost_per_stmt): Adjust the way to 2648 compute extra penalized cost. Remove useless parameter. 2649 (rs6000_cost_data::rs6000_add_stmt_cost): Adjust the call to function 2650 update_target_cost_per_stmt. 2651 26522021-11-30 Kewen Lin <linkw@linux.ibm.com> 2653 2654 Revert: 2655 2021-11-17 Kewen Lin <linkw@linux.ibm.com> 2656 2657 * config/visium/visium.md (*add<mode>3_insn, *addsi3_insn, *addi3_insn, 2658 *sub<mode>3_insn, *subsi3_insn, *subdi3_insn, *neg<mode>2_insn, 2659 *negdi2_insn, *and<mode>3_insn, *ior<mode>3_insn, *xor<mode>3_insn, 2660 *one_cmpl<mode>2_insn, *ashl<mode>3_insn, *ashr<mode>3_insn, 2661 *lshr<mode>3_insn, *trunchiqi2_insn, *truncsihi2_insn, 2662 *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, 2663 *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, 2664 *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. 2665 26662021-11-30 Andrew MacLeod <amacleod@redhat.com> 2667 2668 PR tree-optimization/103467 2669 * gimple-range-gori.cc (range_def_chain::register_dependency): Don't 2670 use an object reference after a potential resize. 2671 26722021-11-29 Uro�� Bizjak <ubizjak@gmail.com> 2673 2674 PR target/102811 2675 * config/i386/i386.md (*movhi_internal): Introduce (*v,C) alternative. 2676 Do not allocate non-GPR registers. Optimize xmm->xmm moves when 2677 optimizing for size. Fix vpinsrw insn template. 2678 (*movhf_internal): Fix pinsrw and pextrw insn templates for 2679 AVX targets. Use sselog1 type instead of sselog. Optimize GPR moves. 2680 Optimize xmm->xmm moves for TARGET_SSE_PARTIAL_REG_DEPENDENCY 2681 and TARGET_SSE_SPLIT_REGS targets. 2682 26832021-11-29 Eric Gallager <egallager@gcc.gnu.org> 2684 2685 * configure: Re-regenerate. 2686 26872021-11-29 Eric Gallager <egallager@gcc.gnu.org> 2688 2689 PR other/103021 2690 * Makefile.in: Substitute CTAGS, ETAGS, and CSCOPE 2691 variables. Use ETAGS variable in TAGS target. 2692 * configure: Regenerate. 2693 * configure.ac: Allow CTAGS, ETAGS, and CSCOPE 2694 variables to be overridden. 2695 26962021-11-29 Paul A. Clarke <pc@us.ibm.com> 2697 2698 * config/rs6000/xmmintrin.h (_mm_movemask_ps): Use vec_extractm 2699 when _ARCH_PWR10. 2700 * config/rs6000/emmintrin.h (_mm_movemask_pd): Likewise. 2701 (_mm_movemask_epi8): Likewise. 2702 27032021-11-29 Richard Biener <rguenther@suse.de> 2704 2705 * read-rtl-function.c (function_reader::read_rtx_operand): 2706 Return only after resetting m_in_call_function_usage. 2707 27082021-11-29 Roger Sayle <roger@nextmovesoftware.com> 2709 2710 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti): Perform the 2711 conversion via V2DImode using vec_extractv2didi on TARGET_SSE2. 2712 * config/i386/sse.md (rotlv1ti3, rotrv1ti3): Change constraint 2713 on QImode shift amounts from const_int_operand to general_operand. 2714 27152021-11-29 Richard Biener <rguenther@suse.de> 2716 2717 * tree.h (reverse_storage_order_for_component_p): Remove 2718 spurious gcc_unreachable. 2719 * cfganal.c (dfs_find_deadend): Likewise. 2720 * fold-const-call.c (fold_const_logb): Likewise. 2721 (fold_const_significand): Likewise. 2722 * gimple-ssa-store-merging.c (lhs_valid_for_store_merging_p): 2723 Likewise. 2724 27252021-11-29 Richard Biener <rguenther@suse.de> 2726 2727 * vec.c (qsort_chk): Do not return the void return value 2728 from the noreturn qsort_chk_error. 2729 * ccmp.c (expand_ccmp_expr_1): Remove unreachable return. 2730 * df-scan.c (df_ref_equal_p): Likewise. 2731 * dwarf2out.c (is_base_type): Likewise. 2732 (add_const_value_attribute): Likewise. 2733 * fixed-value.c (fixed_arithmetic): Likewise. 2734 * gimple-fold.c (gimple_fold_builtin_fputs): Likewise. 2735 * gimple-ssa-strength-reduction.c (stmt_cost): Likewise. 2736 * graphite-isl-ast-to-gimple.c 2737 (gcc_expression_from_isl_expr_op): Likewise. 2738 (gcc_expression_from_isl_expression): Likewise. 2739 * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): 2740 Likewise. 2741 * lto-streamer-in.c (lto_input_mode_table): Likewise. 2742 27432021-11-29 liuhongt <hongtao.liu@intel.com> 2744 2745 PR target/102811 2746 * config/i386/i386.c (inline_secondary_memory_needed): HImode 2747 move between GPR and SSE registers is supported under 2748 TARGET_SSE2 and above. 2749 * config/i386/i386.md (extendhfsf2): Optimize expander. 2750 (truncsfhf2): Ditto. 2751 * config/i386/sse.md (sse2p4_1): Adjust attr for V8HFmode to 2752 align with V8HImode. 2753 27542021-11-29 liuhongt <hongtao.liu@intel.com> 2755 2756 PR target/102811 2757 PR target/103463 2758 * config/i386/i386.c (ix86_secondary_reload): Without 2759 TARGET_SSE4_1, General register is needed to move HImode from 2760 sse register to memory. 2761 * config/i386/sse.md (*vec_extrachf): Use %vpextrw instead of 2762 pextrw in output templates. 2763 * config/i386/i386.md (movhi_internal): Ditto, also fix typo of 2764 MEM_P (operands[1]) and adjust mode/prefix/type attribute for 2765 alternatives related to sse register. 2766 27672021-11-29 Richard Biener <rguenther@suse.de> 2768 2769 PR tree-optimization/103458 2770 * tree-ssa-dce.c (make_forwarders_with_degenerate_phis): Do not 2771 create forwarders for blocks with abnormal predecessors. 2772 27732021-11-29 Richard Biener <rguenther@suse.de> 2774 2775 * gimple-predicate-analysis.cc (can_be_invalidated_p): 2776 Restore semantics to the one before the split from 2777 tree-ssa-uninit.c. 2778 27792021-11-28 Jan Hubicka <hubicka@ucw.cz> 2780 2781 * profile.c: Include sreal.h 2782 (struct bb_stats): New. 2783 (cmp_stats): New function. 2784 (compute_branch_probabilities): Output bb stats. 2785 27862021-11-28 Jan Hubicka <hubicka@ucw.cz> 2787 2788 * cfghooks.c: Include sreal.h, profile.h. 2789 (profile_record_check_consistency): Fix checking of count counsistency; 2790 record also dynamic mismatches. 2791 * cfgrtl.c (rtl_account_profile_record): Similarly. 2792 * tree-cfg.c (gimple_account_profile_record): Likewise. 2793 * cfghooks.h (struct profile_record): Remove num_mismatched_freq_in, 2794 num_mismatched_freq_out, turn time to double, add 2795 dyn_mismatched_prob_out, dyn_mismatched_count_in, 2796 num_mismatched_prob_out; remove num_mismatched_count_out. 2797 * passes.c (account_profile_1): New function. 2798 (account_profile_in_list): New function. 2799 (pass_manager::dump_profile_report): Rewrite. 2800 (execute_one_ipa_transform_pass): Check profile consistency after 2801 running all passes. 2802 (execute_all_ipa_transforms): Remove cfun test; record all transform 2803 methods. 2804 (execute_one_pass): Fix collecting of profile stats. 2805 28062021-11-27 Jakub Jelinek <jakub@redhat.com> 2807 2808 PR middle-end/103431 2809 * config/i386/i386.md (x86_64_shld, x86_shld, x86_64_shrd, x86_shrd): 2810 Change insn pattern to accurately describe the instructions. 2811 (*x86_64_shld_1, *x86_shld_1, *x86_64_shrd_1, *x86_shrd_1): New 2812 define_insn patterns. 2813 (*x86_64_shld_2, *x86_shld_2, *x86_64_shrd_2, *x86_shrd_2): New 2814 define_insn_and_split patterns. 2815 (*ashl<dwi>3_doubleword_mask, *ashl<dwi>3_doubleword_mask_1, 2816 *<insn><dwi>3_doubleword_mask, *<insn><dwi>3_doubleword_mask_1, 2817 ix86_rotl<dwi>3_doubleword, ix86_rotr<dwi>3_doubleword): Adjust 2818 splitters for x86_{,64_}sh{l,r}d pattern changes. 2819 28202021-11-27 Jakub Jelinek <jakub@redhat.com> 2821 2822 PR tree-optimization/103435 2823 * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if 2824 n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that 2825 case. 2826 28272021-11-27 Martin Jambor <mjambor@suse.cz> 2828 2829 PR ipa/103441 2830 * ipa-prop.c (ipcp_transform_function): Call 2831 delete_unreachable_blocks_update_callgraph instead of returning 2832 TODO_cleanup_cfg. 2833 28342021-11-26 Siddhesh Poyarekar <siddhesh@gotplt.org> 2835 2836 * tree-object-size.c (object_sizes_grow, object_sizes_release, 2837 object_sizes_unknown_p, object_sizes_get, object_size_set_force, 2838 object_sizes_set): New functions. 2839 (addr_object_size, compute_builtin_object_size, 2840 expr_object_size, call_object_size, unknown_object_size, 2841 merge_object_sizes, plus_stmt_object_size, 2842 cond_expr_object_size, collect_object_sizes_for, 2843 check_for_plus_in_loops_1, init_object_sizes, 2844 fini_object_sizes): Adjust. 2845 28462021-11-26 Siddhesh Poyarekar <siddhesh@gotplt.org> 2847 2848 * tree-object-size.c: New enum. 2849 (object_sizes, computed, addr_object_size, 2850 compute_builtin_object_size, expr_object_size, call_object_size, 2851 merge_object_sizes, plus_stmt_object_size, 2852 collect_object_sizes_for, init_object_sizes, fini_object_sizes, 2853 object_sizes_execute): Replace magic numbers with enums. 2854 28552021-11-26 Roger Sayle <roger@nextmovesoftware.com> 2856 2857 * tree-ssa-loop-ivopts.c (cand_value_at): Take a class 2858 tree_niter_desc* argument instead of just a tree for NITER. 2859 If we require the iv candidate value at the end of the final 2860 loop iteration, try using the original loop bound as the 2861 NITER for sufficiently simple loops. 2862 (may_eliminate_iv): Update (only) call to cand_value_at. 2863 28642021-11-26 Jan Hubicka <hubicka@ucw.cz> 2865 2866 * ipa-modref.c (analyze_function): Drop parameter F and dump 2867 cgraph node name rather than cfun name. 2868 (modref_generate): Update. 2869 (modref_summaries::insert):Update. 2870 (modref_summaries_lto::insert):Update. 2871 (pass_modref::execute):Update. 2872 (ipa_merge_modref_summary_after_inlining): Improve combining of 2873 ECF_FLAGS. 2874 28752021-11-26 Jan Hubicka <jh@suse.cz> 2876 2877 PR ipa/102943 2878 * ipa-modref.c (update_escape_summary_1): Fix handling of min_flags. 2879 28802021-11-26 konglin1 <lingling.kong@intel.com> 2881 2882 PR target/102811 2883 * config/i386/i386.c (ix86_can_change_mode_class): Allow 16 bit data in XMM register 2884 for TARGET_SSE2. 2885 * config/i386/i386.md (extendhfsf2): Add extenndhfsf2 for TARGET_F16C. 2886 (extendhfdf2): Restrict extendhfdf for TARGET_AVX512FP16 only. 2887 (*extendhf<mode>2): Rename from extendhf<mode>2. 2888 (truncsfhf2): Likewise. 2889 (truncdfhf2): Likewise. 2890 (*trunc<mode>2): Likewise. 2891 28922021-11-26 liuhongt <hongtao.liu@intel.com> 2893 2894 PR middle-end/103419 2895 * match.pd: Fix typo, use the type of second parameter, not 2896 first one. 2897 28982021-11-25 Jan Hubicka <jh@suse.cz> 2899 2900 * ipa-cp.c (ipa_value_range_from_jfunc): Remove forgotten early return. 2901 29022021-11-25 Roger Sayle <roger@nextmovesoftware.com> 2903 2904 PR middle-end/103406 2905 * match.pd (minus @0 @0): Check tree_expr_maybe_infinite_p. 2906 29072021-11-25 Martin Jambor <mjambor@suse.cz> 2908 2909 PR ipa/103227 2910 * ipa-prop.h (ipa_get_param): New overload. Move bits of the existing 2911 one to the new one. 2912 * ipa-param-manipulation.h (ipa_param_adjustments): New member 2913 function get_updated_index_or_split. 2914 * ipa-param-manipulation.c 2915 (ipa_param_adjustments::get_updated_index_or_split): New function. 2916 * ipa-prop.c (adjust_agg_replacement_values): Reimplement, add 2917 capability to identify scalarized parameters and perform substitution 2918 on them. 2919 (ipcp_transform_function): Create descriptors earlier, handle new 2920 return values of adjust_agg_replacement_values. 2921 29222021-11-25 Aldy Hernandez <aldyh@redhat.com> 2923 2924 * gimple-range-path.cc (path_range_query::compute_ranges_defined): Remove. 2925 (path_range_query::compute_ranges_in_block): Revert to bitmap order. 2926 * gimple-range-path.h: Remove compute_ranges_defined. 2927 29282021-11-25 Andrew Stubbs <ams@codesourcery.com> 2929 2930 PR target/103396 2931 * config/gcn/gcn.c (move_callee_saved_registers): Ensure that the 2932 number of spilled registers is counted correctly. 2933 29342021-11-25 Jan Hubicka <hubicka@ucw.cz> 2935 2936 * ipa-prop.h (ipa_node_params::ipa_node_params): Initialize 2937 node_is_self_scc. 2938 29392021-11-25 Andrew MacLeod <amacleod@redhat.com> 2940 2941 PR tree-optimization/103359 2942 * gimple-range-fold.cc (fold_using_range::range_of_phi): If arg is 2943 equivalent to def, don't initially include it's range. 2944 29452021-11-25 Jan Hubicka <hubicka@ucw.cz> 2946 2947 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not check 2948 gimple_static_chain. 2949 29502021-11-25 Richard Biener <rguenther@suse.de> 2951 2952 * cgraphunit.c (symbol_table::output_weakrefs): Remove 2953 unreachable init. 2954 (get_alias_symbol): Remove now unused function. 2955 29562021-11-25 Richard Biener <rguenther@suse.de> 2957 2958 * cfgrtl.c (rtl_verify_fallthru): Do not stop verifying 2959 with fatal_insn. 2960 (skip_insns_after_block): Remove unreachable break and continue. 2961 29622021-11-25 Richard Biener <rguenther@suse.de> 2963 2964 * cfgexpand.c (label_rtx_for_bb): Remove dead loop construct. 2965 29662021-11-25 Richard Biener <rguenther@suse.de> 2967 2968 * regset.h (REG_SET_EMPTY_P): New macro. 2969 * cfgcleanup.c (thread_jump): Use REG_SET_EMPTY_P. 2970 29712021-11-25 Martin Liska <mliska@suse.cz> 2972 2973 * doc/invoke.texi: Use @option for -Wuninitialized. 2974 29752021-11-25 Aldy Hernandez <aldyh@redhat.com> 2976 2977 PR tree-optimization/103254 2978 * gimple-range-path.cc (path_range_query::compute_ranges): Move 2979 exported boolean code... 2980 (path_range_query::compute_imports): ...here. 2981 29822021-11-25 Aldy Hernandez <aldyh@redhat.com> 2983 2984 PR tree-optimization/103254 2985 * gimple-range-path.cc (path_range_query::compute_ranges_defined): New 2986 (path_range_query::compute_ranges_in_block): Move to 2987 compute_ranges_defined. 2988 * gimple-range-path.h (compute_ranges_defined): New. 2989 29902021-11-25 Jakub Jelinek <jakub@redhat.com> 2991 2992 PR tree-optimization/103417 2993 * match.pd ((X & Y) CMP 0): Only handle eq and ne. Commonalize 2994 common tests. 2995 29962021-11-25 Jakub Jelinek <jakub@redhat.com> 2997 2998 PR tree-optimization/103376 2999 * gimple-ssa-store-merging.c (perform_symbolic_merge): For 3000 BIT_IOR_EXPR, if masked1 && masked2 && masked1 != masked2, don't 3001 punt, but set the corresponding result byte to MARKER_BYTE_UNKNOWN. 3002 For BIT_XOR_EXPR similarly and if masked1 == masked2 and the 3003 byte isn't MARKER_BYTE_UNKNOWN, set the corresponding result byte to 3004 0. 3005 30062021-11-25 Jakub Jelinek <jakub@redhat.com> 3007 3008 PR c++/102611 3009 * doc/invoke.texi (-Wcomma-subscript): Document that for 3010 -std=c++20 the option isn't enabled by default with -Wno-deprecated 3011 but for -std=c++23 it is. 3012 30132021-11-24 Jan Hubicka <hubicka@ucw.cz> 3014 3015 * ipa-modref.c (implicit_eaf_flags_for_edge_and_arg): Break out from... 3016 (modref_merge_call_site_flags): ... here. 3017 (ipa_merge_modref_summary_after_inlining): Use it. 3018 30192021-11-24 Thomas Schwinge <thomas@codesourcery.com> 3020 3021 * cfgloop.c (verify_loop_structure): Reduce scope of 3022 'class loop *loop' variable. 3023 * ipa-fnsummary.c (analyze_function_body): Likewise. 3024 * loop-init.c (fix_loop_structure): Likewise. 3025 * loop-invariant.c (calculate_loop_reg_pressure): Likewise. 3026 * predict.c (predict_loops): Likewise. 3027 * tree-loop-distribution.c (loop_distribution::execute): Likewise. 3028 * tree-vectorizer.c (pass_vectorize::execute): Likewise. 3029 30302021-11-24 Andrew MacLeod <amacleod@redhat.com> 3031 3032 PR tree-optimization/103231 3033 * gimple-range.cc (gimple_ranger::gimple_ranger): Create stmt stack. 3034 (gimple_ranger::gimple_ranger): Delete stmt stack. 3035 (gimple_ranger::range_of_stmt): Process depenedencies if they have no 3036 global cache entry. 3037 (gimple_ranger::prefill_name): New. 3038 (gimple_ranger::prefill_stmt_dependencies): New. 3039 * gimple-range.h (class gimple_ranger): Add prototypes. 3040 30412021-11-24 Andrew MacLeod <amacleod@redhat.com> 3042 3043 * gimple-range-cache.cc (ranger_cache::get_global_range): Always 3044 return a range, return if it came from the cache or not. 3045 (get_non_stale_global_range): Rename to get_global_range, and return 3046 the temporal state in a flag. 3047 * gimple-range-cache.h (get_non_stale_global_range): Rename and adjust. 3048 * gimple-range.cc (gimple_ranger::range_of_expr): No need to query 3049 get_global_range. 3050 (gimple_ranger::range_of_stmt): Adjust for global cache temporal state 3051 returned in a flag. 3052 30532021-11-24 Andrew MacLeod <amacleod@redhat.com> 3054 3055 * gimple-range.cc (gimple_ranger::range_on_edge): Call trailer when 3056 a constant is encountered to terminate the trace. 3057 30582021-11-24 Maciej W. Rozycki <macro@embecosm.com> 3059 3060 PR middle-end/103059 3061 * reload.c (find_reloads_address_1): Also accept the ASHIFT form 3062 of indexed addressing. 3063 (find_reloads): Adjust accordingly. 3064 30652021-11-24 Richard Biener <rguenther@suse.de> 3066 Jan Hubicka <jh@suse.cz> 3067 3068 PR tree-optimization/103168 3069 * ipa-modref.h (struct modref_summary): Add load_accesses. 3070 * ipa-modref.c (modref_summary::finalize): Initialize load_accesses. 3071 * tree-ssa-sccvn.c (visit_reference_op_call): Use modref 3072 info to walk the virtual use->def chain to CSE const/pure 3073 function calls possibly reading from memory. 3074 30752021-11-24 Thomas Schwinge <thomas@codesourcery.com> 3076 3077 PR middle-end/103244 3078 * gimplify.c (gimplify_adjust_omp_clauses): Restore previous 3079 OpenACC behavior. 3080 30812021-11-24 Richard Biener <rguenther@suse.de> 3082 3083 PR middle-end/103193 3084 * match.pd: Avoid canonicalizing (le/ge @0 @0) to (eq @0 @0) 3085 with NaNs and -ftrapping-math. 3086 30872021-11-24 Jakub Jelinek <jakub@redhat.com> 3088 3089 PR middle-end/103384 3090 * omp-general.c (omp_context_selector_matches): For ACCEL_COMPILER, 3091 return 0 for kind(host) and continue for kind(nohost). 3092 30932021-11-24 Jakub Jelinek <jakub@redhat.com> 3094 3095 PR middle-end/103365 3096 * attribs.h (lookup_attribute): Allow attr_name to start with 3097 underscore, as long as canonicalize_attr_name returns false. 3098 (lookup_attribute_by_prefix): Don't call get_attribute_name twice. 3099 * attribs.c (extract_attribute_substring): Reimplement using 3100 canonicalize_attr_name. 3101 (register_scoped_attribute): Change gcc_assert into 3102 gcc_checking_assert, verify !canonicalize_attr_name rather than 3103 that str.str doesn't start with '_'. 3104 31052021-11-24 Jakub Jelinek <jakub@redhat.com> 3106 3107 PR tree-optimization/103376 3108 * gimple-ssa-store-merging.c (perform_symbolic_merge): Add CODE 3109 argument. If CODE is not BIT_IOR_EXPR, ensure that one of masked1 3110 or masked2 is 0. 3111 (find_bswap_or_nop_1, find_bswap_or_nop, 3112 imm_store_chain_info::try_coalesce_bswap): Adjust 3113 perform_symbolic_merge callers. 3114 31152021-11-24 Richard Biener <rguenther@suse.de> 3116 3117 * tree-ssa-loop-ivopts.c (find_givs): Take loop body as 3118 argument instead of re-computing it. 3119 (find_interesting_uses): Likewise. 3120 (find_induction_variables): Pass through loop body. 3121 (tree_ssa_iv_optimize_loop): Pass down loop body. 3122 31232021-11-24 Tamar Christina <tamar.christina@arm.com> 3124 3125 * tree-ssa-phiopt.c (spaceship_replacement): Handle new canonical 3126 codegen. 3127 31282021-11-24 Tamar Christina <tamar.christina@arm.com> 3129 3130 * tree.c (bitmask_inv_cst_vector_p): New. 3131 * tree.h (bitmask_inv_cst_vector_p): New. 3132 * match.pd: Use it in new bitmask compare pattern. 3133 31342021-11-24 Jason Merrill <jason@redhat.com> 3135 3136 * timevar.h (class auto_cond_timevar): New. 3137 31382021-11-24 Hongtao Liu <hongtao.liu@intel.com> 3139 H.J. Lu <hongjiu.lu@intel.com> 3140 3141 PR tree-optimization/103194 3142 * match.pd (gimple_nop_atomic_bit_test_and_p): Extended to 3143 match truncation. 3144 * tree-ssa-ccp.c (gimple_nop_convert): Declare. 3145 (optimize_atomic_bit_test_and): Enhance 3146 optimize_atomic_bit_test_and to handle truncation. 3147 31482021-11-23 Martin Sebor <msebor@redhat.com> 3149 3150 PR middle-end/88232 3151 * Makefile.in (OBJS): Add gimple-warn-recursion.o. 3152 * common.opt: Add -Winfinite-recursion. 3153 * doc/invoke.texi (-Winfinite-recursion): Document. 3154 * passes.def (pass_warn_recursion): Schedule a new pass. 3155 * tree-pass.h (make_pass_warn_recursion): Declare. 3156 * gimple-warn-recursion.c: New file. 3157 31582021-11-23 Bill Schmidt <wschmidt@linux.ibm.com> 3159 3160 * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Change 3161 error messages for ENB_P8V and ENB_P9V. 3162 31632021-11-23 Bill Schmidt <wschmidt@linux.ibm.com> 3164 3165 * config/rs6000/rs6000-builtin-new.def: Add power6-64 stanza. Move 3166 CMPB to power6-64 stanza. 3167 * config/rs6000/rs6000-call.c (rs6000_invalid_new_builtin): Handle 3168 ENB_P6_64 case. 3169 (rs6000_new_builtin_is_supported): Likewise. 3170 (rs6000_expand_new_builtin): Likewise. Clean up formatting. 3171 (rs6000_init_builtins): Handle ENB_P6_64 case. 3172 * config/rs6000/rs6000-gen-builtins.c (bif_stanza): Add BSTZ_P6_64. 3173 (stanza_map): Add entry mapping power6-64 to BSTZ_P6_64. 3174 (enable_string): Add "ENB_P6_64". 3175 (write_decls): Add ENB_P6_64 to bif_enable enum. 3176 31772021-11-23 Jan Hubicka <jh@suse.cz> 3178 3179 * ipa-modref-tree.h (struct modref_tree): Remove max_bases, max_refs 3180 and max_accesses. 3181 (modref_tree::modref_tree): Remove parametr. 3182 (modref_tree::insert_base): Add max_bases parameter. 3183 (modref_tree::insert): Add max_bases, max_refs, max_accesses 3184 parameters. 3185 (modref_tree::insert): New member function. 3186 (modref_tree::merge): Add max_bases, max_refs, max_accesses 3187 parameters. 3188 (modref_tree::insert): New member function. 3189 * ipa-modref-tree.c (test_insert_search_collapse): Update. 3190 (test_merge): Update. 3191 * ipa-modref.c (dump_records): Don't dump max_refs and max_bases. 3192 (dump_lto_records): Likewise. 3193 (modref_summary::finalize): Fix whitespace. 3194 (get_modref_function_summary): Likewise. 3195 (modref_access_analysis::record_access): Update. 3196 (modref_access_analysis::record_access_lto): Update. 3197 (modref_access_analysis::process_fnspec): Update. 3198 (analyze_function): Update. 3199 (modref_summaries::duplicate): Update. 3200 (modref_summaries_lto::duplicate): Update. 3201 (write_modref_records): Update. 3202 (read_modref_records): Update. 3203 (read_section): Update. 3204 (propagate_unknown_call): Update. 3205 (modref_propagate_in_scc): Update. 3206 (ipa_merge_modref_summary_after_inlining): Update. 3207 32082021-11-23 Martin Liska <mliska@suse.cz> 3209 3210 * doc/invoke.texi: Remove 2 more duplicite param descriptions. 3211 32122021-11-23 Richard Biener <rguenther@suse.de> 3213 3214 PR tree-optimization/103361 3215 * gimple-loop-jam.c (adjust_unroll_factor): Use lambda_int 3216 for the dependence distance. 3217 * tree-data-ref.c (print_lambda_vector): Properly print a lambda_int. 3218 32192021-11-23 Jakub Jelinek <jakub@redhat.com> 3220 3221 * tree-inline.h (struct copy_body_data): Remove 3222 transform_lang_insert_block member. 3223 * tree-inline.c (remap_block): Don't call 3224 id->transform_lang_insert_block. 3225 (optimize_inline_calls, copy_gimple_seq_and_replace_locals, 3226 tree_function_versioning, maybe_inline_call_in_expr, 3227 copy_fn): Don't initialize id.transform_lang_insert_block. 3228 * gimplify.c (gimplify_omp_loop): Likewise. 3229 32302021-11-23 Jan Hubicka <hubicka@ucw.cz> 3231 3232 PR tree-optimization/103335 3233 * tree-ssa-dse.c (valid_ao_ref_for_dse): Rename to ... 3234 (valid_ao_ref_kill_for_dse): ... this; do not check that boundaries 3235 are divisible by BITS_PER_UNIT. 3236 (get_byte_aligned_range_containing_ref): New function. 3237 (get_byte_aligned_range_contained_in_ref): New function. 3238 (normalize_ref): Rename to ... 3239 (get_byte_range): ... this one; handle accesses not aligned to byte 3240 boundary; return range in bytes rater than updating ao_ref. 3241 (clear_live_bytes_for_ref): Take write ref by reference; simplify using 3242 get_byte_access. 3243 (setup_live_bytes_from_ref): Likewise. 3244 (clear_bytes_written_by): Update. 3245 (live_bytes_read): Update. 3246 (dse_classify_store): Simplify tech before live_bytes_read checks. 3247 32482021-11-23 Andrew Pinski <apinski@marvell.com> 3249 3250 PR tree-optimization/102216 3251 * gimple-fold.c (fold_stmt_1): Add canonicalization 3252 of "&MEM[ssa_n, CST]" to "ssa_n p+ CST", note this 3253 can only be done if !in_place. 3254 32552021-11-23 Jakub Jelinek <jakub@redhat.com> 3256 3257 PR middle-end/102431 3258 * gimplify.c (replace_reduction_placeholders): Remove. 3259 (note_no_context_vars): New function. 3260 (gimplify_omp_loop): For OMP_PARALLEL's BIND_EXPR create a new 3261 BLOCK. Use copy_tree_body_r with walk_tree instead of unshare_expr 3262 and replace_reduction_placeholders for duplication of 3263 OMP_CLAUSE_REDUCTION_{INIT,MERGE} expressions. Ensure all mentioned 3264 automatic vars have DECL_CONTEXT set to non-NULL before doing so 3265 and reset it afterwards for those vars and their corresponding 3266 vars. 3267 32682021-11-23 Haochen Gui <guihaoc@gcc.gnu.org> 3269 3270 PR target/100868 3271 * config/rs6000/altivec.md (altivec_vreve<mode>2 for VEC_K): Use 3272 xxbrq for v16qi, xxbrq + xxbrh for v8hi and xxbrq + xxbrw for v4si 3273 or v4sf when p9_vector is set. 3274 (altivec_vreve<mode>2 for VEC_64): Defined. Implemented by xxswapd. 3275 32762021-11-23 Navid Rahimi <navidrahimi@microsoft.com> 3277 3278 PR tree-optimization/102232 3279 * match.pd (x * (1 + y / x) - y) -> (x - y % x): New optimization. 3280 32812021-11-23 Navid Rahimi <navidrahimi@microsoft.com> 3282 3283 PR tree-optimization/96779 3284 * match.pd (-x == x) -> (x == 0): New optimization. 3285 32862021-11-22 Roger Sayle <roger@nextmovesoftware.com> 3287 3288 PR tree-optimization/98953 3289 PR tree-optimization/103345 3290 * gimple-ssa-store-merging.c (find_bswap_or_nop_1): Handle 3291 BIT_XOR_EXPR and PLUS_EXPR the same as BIT_IOR_EXPR. 3292 (pass_optimize_bswap::execute): Likewise. 3293 32942021-11-22 Martin Liska <mliska@suse.cz> 3295 3296 * doc/invoke.texi: Remove duplicate documentation for 3 params. 3297 32982021-11-22 Richard Biener <rguenther@suse.de> 3299 3300 PR tree-optimization/103351 3301 * tree-ssa-dce.c (sort_phi_args): Sort after e->dest_idx as 3302 second key. 3303 33042021-11-22 liuhongt <hongtao.liu@intel.com> 3305 3306 PR target/103275 3307 * config/i386/constraints.md (Bk): New 3308 define_memory_constraint. 3309 * config/i386/i386-protos.h (ix86_gpr_tls_address_pattern_p): 3310 Declare. 3311 * config/i386/i386.c (ix86_gpr_tls_address_pattern_p): New 3312 function. 3313 * config/i386/i386.md (*movsi_internal): Don't allow 3314 mask/sse/mmx move in TLS code sequences. 3315 (*movdi_internal): Ditto. 3316 33172021-11-22 Kewen Lin <linkw@linux.ibm.com> 3318 3319 * config/xtensa/xtensa.md (movdi_internal, movdf_internal): Fix split 3320 condition. 3321 33222021-11-21 Jakub Jelinek <jakub@redhat.com> 3323 3324 PR c++/101180 3325 * config/i386/i386-options.c (ix86_valid_target_attribute_p): If 3326 fndecl already has DECL_FUNCTION_SPECIFIC_TARGET, use that as base 3327 instead of target_option_default_node. 3328 33292021-11-21 Jan Hubicka <hubicka@ucw.cz> 3330 3331 PR ipa/103227 3332 * ipa-modref.c (parm_map_for_arg): Rename to ... 3333 (parm_map_for_ptr): .. this one; handle static chain and calls to 3334 malloc functions. 3335 (modref_access_analysis::get_access): Use parm_map_for_ptr. 3336 (modref_access_analysis::process_fnspec): Update. 3337 (modref_access_analysis::analyze_load): Update. 3338 (modref_access_analysis::analyze_store): Update. 3339 33402021-11-21 Jan Hubicka <hubicka@ucw.cz> 3341 3342 * ipa-modref.c (ignore_nondeterminism_p): Move earlier in source 3343 code. 3344 (ignore_retval_p): Likewise. 3345 (ignore_stores_p): Likewise. 3346 (parm_map_for_arg): Likewise. 3347 (class modref_access_analysis): New class. 3348 (modref_access_analysis::set_side_effects): New member function. 3349 (modref_access_analysis::set_nondeterministic): New member function. 3350 (get_access): Turn to ... 3351 (modref_access_analysis::get_access): ... this one. 3352 (record_access): Turn to ... 3353 (modref_access_analysis::record_access): ... this one. 3354 (record_access_lto): Turn to ... 3355 (modref_access_analysis::record_access_lto): ... This one. 3356 (record_access_p): Turn to ... 3357 (modref_access_analysis::record_access_p): ... This one 3358 (modref_access_analysis::record_unknown_load): New member function. 3359 (modref_access_analysis::record_unknown_store): New member function. 3360 (get_access_for_fnspec): Turn to ... 3361 (modref_access_analysis::get_access_for_fnspec): ... this one. 3362 (merge_call_side_effects): Turn to ... 3363 (moderf_access_analysis::merge_call_side_effects): Turn to ... 3364 (collapse_loads): Move later in source code. 3365 (collapse_stores): Move later in source code. 3366 (process_fnspec): Turn to ... 3367 (modref_access_analysis::process_fnspec): ... this one. 3368 (analyze_call): Turn to ... 3369 (modref_access_analysis::analyze_call): ... this one. 3370 (struct summary_ptrs): Remove. 3371 (analyze_load): Turn to ... 3372 (modref_access_analysis::analyze_load): ... this one. 3373 (analyze_store): Turn to ... 3374 (modref_access_analysis::analyze_store): ... this one. 3375 (analyze_stmt): Turn to ... 3376 (modref_access_analysis::analyze_stmt): ... This one. 3377 (remove_summary): Remove. 3378 (modref_access_analysis::propagate): Break out from ... 3379 (modref_access_analysis::analyze): Break out from ... 3380 (analyze_function): ... here. 3381 33822021-11-21 Roger Sayle <roger@nextmovesoftware.com> 3383 Robin Dapp <rdapp@linux.ibm.com> 3384 3385 PR target/102117 3386 * tree-ssa-math-opts.c (convert_mult_to_widen): Recognize 3387 signed WIDEN_MULT_EXPR if the target supports umul_widen_optab. 3388 33892021-11-20 Jan Hubicka <hubicka@ucw.cz> 3390 3391 PR ipa/103052 3392 * ipa-modref.c (ignore_nondeterminism_p): Allow looping pure/cont. 3393 (merge_call_side_effects): Improve debug output. 3394 33952021-11-20 Jan Hubicka <hubicka@ucw.cz> 3396 3397 PR ipa/103052 3398 * ipa-pure-const.c (propagate_pure_const): Fix merging of loping flag. 3399 34002021-11-20 Jeff Law <jeffreyalaw@gmail.com> 3401 3402 PR tree-optimization/103226 3403 * config/bfin/bfin.md (doloop pattern, splitter and expander): Clobber 3404 CC. 3405 34062021-11-20 Andrew Pinski <apinski@marvell.com> 3407 3408 PR tree-optimization/103220 3409 * match.pd ((type) X bitop CST): Don't check if CST 3410 fits into the type if only the sign changes. 3411 34122021-11-20 Alexandre Oliva <oliva@adacore.com> 3413 3414 PR tree-optimization/102988 3415 * gimple-harden-conditionals.cc (detach_value): Copy SSA_NAME 3416 without decl sharing. 3417 34182021-11-19 Iain Sandoe <iain@sandoe.co.uk> 3419 3420 * doc/invoke.texi: Remove whitespace after an @option. 3421 34222021-11-19 Paul A. Clarke <pc@us.ibm.com> 3423 3424 * config/rs6000/emmintrin.h (_mm_sad_epu8): Use vec_absd when 3425 _ARCH_PWR9, optimize vec_sum2s when LE. 3426 34272021-11-19 Iain Sandoe <iain@sandoe.co.uk> 3428 3429 PR target/80556 3430 * config/darwin-driver.c (darwin_driver_init): Handle exported 3431 symbols and symbol lists (suppress automatic export of the TLS 3432 symbols). 3433 * config/darwin.c (darwin_rename_builtins): Remove workaround. 3434 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise. 3435 (REAL_LIBGCC_SPEC): Handle revised library uses. 3436 * config/darwin.opt (nodefaultexport): New. 3437 * config/i386/darwin.h (PR80556_WORKAROUND): Remove. 3438 * config/i386/darwin32-biarch.h (PR80556_WORKAROUND): Likewise. 3439 * config/i386/darwin64-biarch.h (PR80556_WORKAROUND): Likewise. 3440 34412021-11-19 Martin Jambor <mjambor@suse.cz> 3442 3443 * opts.c (default_options_table): Switch off 3444 flag_semantic_interposition at Ofast. 3445 * doc/invoke.texi (Optimize Options): Document that Ofast switches off 3446 -fsemantic-interposition. 3447 34482021-11-19 Jan Hubicka <hubicka@ucw.cz> 3449 3450 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Do not guard modref 3451 by !gimple_call_chain. 3452 34532021-11-19 Martin Sebor <msebor@redhat.com> 3454 3455 PR c++/33925 3456 PR c/102867 3457 * doc/invoke.texi (-Waddress): Update. 3458 34592021-11-19 Andrew MacLeod <amacleod@redhat.com> 3460 3461 PR tree-optimization/103254 3462 * gimple-range-gori.cc (range_def_chain::get_def_chain): Limit the 3463 depth for all statements with multple ssa names. 3464 34652021-11-19 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 3466 3467 * config/s390/s390.md (define_peephole2): Variable insn points 3468 to the first matched insn. Use peep2_next_insn(1) to refer to 3469 the second matched insn. 3470 34712021-11-19 Tamar Christina <tamar.christina@arm.com> 3472 3473 PR tree-optimization/103311 3474 PR target/103330 3475 * tree-vect-slp-patterns.c (vect_validate_multiplication): Fix CONJ 3476 test to new codegen. 3477 (complex_mul_pattern::matches): Move check downwards. 3478 34792021-11-19 Martin Liska <mliska@suse.cz> 3480 3481 Revert: 3482 2021-11-19 Martin Liska <mliska@suse.cz> 3483 3484 * cfgexpand.c (pass_expand::execute): Use option directly. 3485 * function.c (allocate_struct_function): Likewise. 3486 * gimple-low.c (lower_function_body): Likewise. 3487 (lower_stmt): Likewise. 3488 * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. 3489 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. 3490 * ipa-split.c (split_function): Likewise. 3491 * lto-streamer-in.c (input_function): Likewise. 3492 * sese.c (sese_insert_phis_for_liveouts): Likewise. 3493 * ssa-iterators.h (num_imm_uses): Likewise. 3494 * tree-cfg.c (make_blocks): Likewise. 3495 (gimple_merge_blocks): Likewise. 3496 * tree-inline.c (tree_function_versioning): Likewise. 3497 * tree-loop-distribution.c (generate_loops_for_partition): Likewise. 3498 * tree-sra.c (analyze_access_subtree): Likewise. 3499 * tree-ssa-dce.c (remove_dead_stmt): Likewise. 3500 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. 3501 * tree-ssa-phiopt.c (spaceship_replacement): Likewise. 3502 * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. 3503 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. 3504 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. 3505 * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. 3506 (target_for_debug_bind): Likewise. 3507 (insert_debug_temp_for_var_def): Likewise. 3508 (insert_debug_temps_for_defs): Likewise. 3509 (reset_debug_uses): Likewise. 3510 * tree-ssanames.c (release_ssa_name_fn): Likewise. 3511 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. 3512 (adjust_debug_stmts): Likewise. 3513 (adjust_phi_and_debug_stmts): Likewise. 3514 (vect_do_peeling): Likewise. 3515 * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. 3516 (vect_transform_loop): Likewise. 3517 * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove 3518 (MAY_HAVE_DEBUG_BIND_STMTS): Remove. 3519 (MAY_HAVE_DEBUG_STMTS): Use options directly. 3520 35212021-11-19 Giuliano Belinassi <gbelinassi@suse.de> 3522 3523 * gcc.c (process_command): Skip dumpdir override if file is a 3524 not_actual_file_p. 3525 * doc/invoke.texi: Update -dumpdir documentation. 3526 35272021-11-19 Andrew Pinski <apinski@marvell.com> 3528 3529 PR tree-optimization/103314 3530 * match.pd ((type) X op CST): Restrict the equal 3531 TYPE_PRECISION case to GIMPLE only. 3532 35332021-11-19 Martin Liska <mliska@suse.cz> 3534 3535 PR ipa/103230 3536 * ipa-modref-tree.h (struct modref_parm_map): Add default 3537 constructor. 3538 * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Use it. 3539 35402021-11-19 Richard Biener <rguenther@suse.de> 3541 3542 PR middle-end/103248 3543 * tree-eh.c (operation_could_trap_helper_p): Properly handle 3544 fixed-point RDIV_EXPR. 3545 35462021-11-19 Richard Biener <rguenther@suse.de> 3547 3548 PR tree-optimization/102436 3549 * tree-ssa-loop-im.c (execute_sm_if_changed): Add mode 3550 to just create the if structure and return the then block. 3551 (execute_sm): Add flag to indicate the var will re-use 3552 another flag var. 3553 (hoist_memory_references): Support a single conditional 3554 block with all stores as special case. 3555 35562021-11-19 Andrew Pinski <apinski@marvell.com> 3557 3558 PR tree-optimization/103317 3559 * tree-ssa-phiopt.c (minmax_replacement): For the non empty 3560 middle bb case, check to make sure it has a single predecessor. 3561 35622021-11-19 Andrew Pinski <apinski@marvell.com> 3563 3564 PR tree-optimization/103257 3565 * match.pd 3566 ((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): 3567 Disable until !canonicalize_math_p (). 3568 35692021-11-19 Marek Polacek <polacek@redhat.com> 3570 3571 PR c++/19808 3572 PR c++/96121 3573 * doc/invoke.texi: Update documentation for -Wuninitialized. 3574 * tree.c (stabilize_reference): Set location. 3575 35762021-11-19 liuhongt <hongtao.liu@intel.com> 3577 3578 PR target/102543 3579 * config/i386/x86-tune-costs.h (skylake_cost): Reduce cost of 3580 storing 256/512-bit SSE register to be equal to cost of 3581 unaligned store to avoid odd alignment peeling. 3582 (icelake_cost): Ditto. 3583 35842021-11-18 David Edelsohn <dje.gcc@gmail.com> 3585 3586 * config/rs6000/predicates.md (current_file_function_operand): 3587 Add flag_semantic_interposition to call of decl_replaceable_p. 3588 35892021-11-18 Martin Liska <mliska@suse.cz> 3590 3591 * ipa-modref.c (analyze_function): Do not execute the code 3592 only if dump_file != NULL. 3593 35942021-11-18 Martin Liska <mliska@suse.cz> 3595 3596 * ipa-modref.c (analyze_function): Use fnode instead of repeated 3597 cgraph_node::get (current_function_decl). 3598 35992021-11-18 Jan Hubicka <hubicka@ucw.cz> 3600 3601 * cgraph.c (cgraph_node::get_availability): Update call of 3602 decl_replaceable_p. 3603 (cgraph_node::verify_node): Verify that semantic_interposition flag 3604 is set correclty. 3605 * cgraph.h: (symtab_node): Add semantic_interposition flag. 3606 * cgraphclones.c (set_new_clone_decl_and_node_flags): Clear 3607 semantic_interposition flag. 3608 * cgraphunit.c (cgraph_node::finalize_function): Set 3609 semantic_interposition flag. 3610 (cgraph_node::add_new_function): Likewise. 3611 (varpool_node::finalize_decl): Likewise. 3612 (cgraph_node::create_wrapper): Likewise. 3613 * common.opt (fsemantic-interposition): Turn to optimization node. 3614 * lto-cgraph.c (lto_output_node): Stream semantic_interposition. 3615 (lto_output_varpool_node): Likewise. 3616 (input_overwrite_node): Likewise. 3617 (input_varpool_node): Likewise. 3618 * symtab.c (symtab_node::dump_base): Dump new flag. 3619 * varasm.c (decl_replaceable_p): Add semantic_interposition_p 3620 parameter. 3621 * varasm.h (decl_replaceable_p): Update declaration. 3622 * varpool.c (varpool_node::ctor_useable_for_folding_p): 3623 Use semantic_interposition flag. 3624 (varpool_node::get_availability): Likewise. 3625 (varpool_node::create_alias): Copy semantic_interposition flag. 3626 36272021-11-18 Jan Hubicka <hubicka@ucw.cz> 3628 3629 PR ipa/103266 3630 * ipa-modref.c (modref_eaf_analysis::merge_call_lhs_flags): Unused 3631 parameter may still be returned. 3632 (modref_eaf_analysis::analyze_ssa_name): Call merge_call_lhs_flags 3633 even for unused function args. 3634 36352021-11-18 Tamar Christina <tamar.christina@arm.com> 3636 3637 PR tree-optimization/103311 3638 * tree-vect-slp-patterns.c (complex_mul_pattern::matches, 3639 complex_fms_pattern::matches): Check for multiplications. 3640 36412021-11-18 H.J. Lu <hjl.tools@gmail.com> 3642 3643 PR target/102952 3644 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): Emit 3645 CS prefix for -mindirect-branch-cs-prefix. 3646 (ix86_output_indirect_branch_via_reg): Likewise. 3647 * config/i386/i386.opt: Add -mindirect-branch-cs-prefix. 3648 * doc/invoke.texi: Document -mindirect-branch-cs-prefix. 3649 36502021-11-18 David Edelsohn <dje.gcc@gmail.com> 3651 3652 * config/rs6000/driver-rs6000.c (detect_processor_aix): Add 3653 power10. 3654 36552021-11-18 Tamar Christina <tamar.christina@arm.com> 3656 3657 PR tree-optimization/103253 3658 * tree-ssa-math-opts.c (convert_mult_to_fma): Check for LHS. 3659 36602021-11-18 Matthias Kretz <m.kretz@gsi.de> 3661 3662 * doc/extend.texi: Document __builtin_assoc_barrier. 3663 36642021-11-18 Martin Liska <mliska@suse.cz> 3665 3666 * cfgexpand.c (pass_expand::execute): Use option directly. 3667 * function.c (allocate_struct_function): Likewise. 3668 * gimple-low.c (lower_function_body): Likewise. 3669 (lower_stmt): Likewise. 3670 * gimple-ssa-backprop.c (backprop::prepare_change): Likewise. 3671 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Likewise. 3672 * ipa-split.c (split_function): Likewise. 3673 * lto-streamer-in.c (input_function): Likewise. 3674 * sese.c (sese_insert_phis_for_liveouts): Likewise. 3675 * ssa-iterators.h (num_imm_uses): Likewise. 3676 * tree-cfg.c (make_blocks): Likewise. 3677 (gimple_merge_blocks): Likewise. 3678 * tree-inline.c (tree_function_versioning): Likewise. 3679 * tree-loop-distribution.c (generate_loops_for_partition): Likewise. 3680 * tree-sra.c (analyze_access_subtree): Likewise. 3681 * tree-ssa-dce.c (remove_dead_stmt): Likewise. 3682 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. 3683 * tree-ssa-phiopt.c (spaceship_replacement): Likewise. 3684 * tree-ssa-reassoc.c (reassoc_remove_stmt): Likewise. 3685 * tree-ssa-tail-merge.c (tail_merge_optimize): Likewise. 3686 * tree-ssa-threadedge.c (propagate_threaded_block_debug_into): Likewise. 3687 * tree-ssa.c (gimple_replace_ssa_lhs): Likewise. 3688 (target_for_debug_bind): Likewise. 3689 (insert_debug_temp_for_var_def): Likewise. 3690 (insert_debug_temps_for_defs): Likewise. 3691 (reset_debug_uses): Likewise. 3692 * tree-ssanames.c (release_ssa_name_fn): Likewise. 3693 * tree-vect-loop-manip.c (adjust_vec_debug_stmts): Likewise. 3694 (adjust_debug_stmts): Likewise. 3695 (adjust_phi_and_debug_stmts): Likewise. 3696 (vect_do_peeling): Likewise. 3697 * tree-vect-loop.c (vect_transform_loop_stmt): Likewise. 3698 (vect_transform_loop): Likewise. 3699 * tree.h (MAY_HAVE_DEBUG_MARKER_STMTS): Remove 3700 (MAY_HAVE_DEBUG_BIND_STMTS): Remove. 3701 (MAY_HAVE_DEBUG_STMTS): Use options directly. 3702 37032021-11-18 Richard Biener <rguenther@suse.de> 3704 3705 PR tree-optimization/103277 3706 * tree-ssa-dse.c (need_ab_cleanup): New. 3707 (dse_optimize_redundant_stores): Adjust. 3708 (delete_dead_or_redundant_assignment): Get extra 3709 need_ab_cleanup argument and set when abnormal cleanup is 3710 needed. 3711 (dse_optimize_call): Adjust. 3712 (dse_optimize_stmt): Likewise. 3713 (pass_dse::execute): Allocate and deallocate need_ab_cleanup. 3714 Perform abnormal cleanup. 3715 * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust. 3716 37172021-11-18 Hongyu Wang <hongyu.wang@intel.com> 3718 3719 * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): 3720 Adjust generated cfg to avoid infinite loop. 3721 37222021-11-18 konglin1 <lingling.kong@intel.com> 3723 3724 * config/i386/avx512fp16intrin.h (_mm512_mul_pch): Add alias for _mm512_fmul_pch. 3725 (_mm512_mask_mul_pch): Likewise. 3726 (_mm512_maskz_mul_pch): Likewise. 3727 (_mm512_mul_round_pch): Likewise. 3728 (_mm512_mask_mul_round_pch): Likewise. 3729 (_mm512_maskz_mul_round_pch): Likewise. 3730 (_mm512_cmul_pch): Likewise. 3731 (_mm512_mask_cmul_pch): Likewise. 3732 (_mm512_maskz_cmul_pch): Likewise. 3733 (_mm512_cmul_round_pch): Likewise. 3734 (_mm512_mask_cmul_round_pch): Likewise. 3735 (_mm512_maskz_cmul_round_pch): Likewise. 3736 (_mm_mul_sch): Likewise. 3737 (_mm_mask_mul_sch): Likewise. 3738 (_mm_maskz_mul_sch): Likewise. 3739 (_mm_mul_round_sch): Likewise. 3740 (_mm_mask_mul_round_sch): Likewise. 3741 (_mm_maskz_mul_round_sch): Likewise. 3742 (_mm_cmul_sch): Likewise. 3743 (_mm_mask_cmul_sch): Likewise. 3744 (_mm_maskz_cmul_sch): Likewise. 3745 (_mm_cmul_round_sch): Likewise. 3746 (_mm_mask_cmul_round_sch): Likewise. 3747 (_mm_maskz_cmul_round_sch): Likewise. 3748 * config/i386/avx512fp16vlintrin.h (_mm_mul_pch): Likewise. 3749 (_mm_mask_mul_pch): Likewise. 3750 (_mm_maskz_mul_pch): Likewise. 3751 (_mm256_mul_pch): Likewise. 3752 (_mm256_mask_mul_pch): Likewise. 3753 (_mm256_maskz_mul_pch): Likewise. 3754 (_mm_cmul_pch): Likewise. 3755 (_mm_mask_cmul_pch): Likewise. 3756 (_mm_maskz_cmul_pch): Likewise. 3757 (_mm256_cmul_pch): Likewise. 3758 (_mm256_mask_cmul_pch): Likewise. 3759 (_mm256_maskz_cmul_pch): Likewise. 3760 37612021-11-17 Andrew Pinski <apinski@marvell.com> 3762 3763 PR tree-optimization/103228 3764 PR tree-optimization/55177 3765 * match.pd ((type) X bitop CST): Also do this 3766 transformation for nop conversions. 3767 37682021-11-17 Martin Sebor <msebor@redhat.com> 3769 3770 PR tree-optimization/102759 3771 * gimple-array-bounds.cc (build_printable_array_type): Move... 3772 * gimple-ssa-warn-access.cc (build_printable_array_type): Avoid 3773 pathological function redeclarations that remove a previously 3774 declared prototype. 3775 Improve formatting of function arguments in informational notes. 3776 * pointer-query.cc (build_printable_array_type): ...to here. 3777 * pointer-query.h (build_printable_array_type): Declared. 3778 37792021-11-17 H.J. Lu <hjl.tools@gmail.com> 3780 3781 PR target/102952 3782 * config/i386/i386-opts.h (harden_sls): New enum. 3783 * config/i386/i386.c (output_indirect_thunk): Mitigate against 3784 SLS for function return. 3785 (ix86_output_function_return): Likewise. 3786 (ix86_output_jmp_thunk_or_indirect): Mitigate against indirect 3787 branch. 3788 (ix86_output_indirect_jmp): Likewise. 3789 (ix86_output_call_insn): Likewise. 3790 * config/i386/i386.opt: Add -mharden-sls=. 3791 * doc/invoke.texi: Document -mharden-sls=. 3792 37932021-11-17 H.J. Lu <hjl.tools@gmail.com> 3794 3795 PR target/103307 3796 * config/i386/i386.c (ix86_code_end): Remove "%!" before ret. 3797 (ix86_output_function_return): Likewise. 3798 * config/i386/i386.md (simple_return_pop_internal): Likewise. 3799 38002021-11-17 Jan Hubicka <hubicka@ucw.cz> 3801 3802 PR ipa/103246 3803 * ipa-modref.c (read_modref_records): Fix streaminig in of every_access 3804 flag. 3805 38062021-11-17 Uro�� Bizjak <ubizjak@gmail.com> 3807 3808 * config/i386/i386.c (indirect_thunks_used): Redefine as HARD_REG_SET. 3809 (ix86_code_end): Use TEST_HARD_REG_BIT on indirect_thunks_used. 3810 (ix86_output_indirect_branch_via_reg): Use SET_HARD_REG_BIT 3811 on indirect_thunks_used. 3812 (ix86_output_indirect_function_return): Ditto. 3813 38142021-11-17 Jan Hubicka <hubicka@ucw.cz> 3815 3816 * ipa-modref-tree.c: Include cgraph.h and tree-streamer.h. 3817 (modref_access_node::stream_out): New member function. 3818 (modref_access_node::stream_in): New member function. 3819 * ipa-modref-tree.h (modref_access_node::stream_out, 3820 modref_access_node::stream_in): Declare. 3821 * ipa-modref.c (modref_summary_lto::useful_p): Free useless kills. 3822 (modref_summary_lto::dump): Dump kills. 3823 (analyze_store): Record kills for LTO 3824 (analyze_stmt): Likewise. 3825 (modref_summaries_lto::duplicate): Duplicate kills. 3826 (write_modref_records): Use new stream_out member function. 3827 (read_modref_records): Likewise. 3828 (modref_write): Stream out kills. 3829 (read_section): Stream in kills 3830 (remap_kills): New function. 3831 (update_signature): Use it. 3832 38332021-11-17 Uro�� Bizjak <ubizjak@gmail.com> 3834 3835 * config/i386/i386.h (LEGACY_SSE_REGNO_P): New predicate. 3836 (SSE_REGNO_P): Use LEGACY_SSE_REGNO_P predicate. 3837 * config/i386/i386.c (zero_all_vector_registers): 3838 Use LEGACY_SSE_REGNO_P predicate. 3839 (ix86_register_priority): Use REX_INT_REGNO_P, REX_SSE_REGNO_P 3840 and EXT_REG_SSE_REGNO_P predicates. 3841 (ix86_hard_regno_call_part_clobbered): Use REX_SSE_REGNO_P 3842 and LEGACY_SSE_REGNO_P predicates. 3843 38442021-11-17 Jason Merrill <jason@redhat.com> 3845 3846 * doc/invoke.texi (C++ Dialect Options): Document 3847 -fimplicit-constexpr. 3848 38492021-11-17 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 3850 3851 * config/aarch64/aarch64-modes.def (VECTOR_MODE): New V8DI mode. 3852 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Handle 3853 V8DImode. 3854 * config/aarch64/iterators.md (define_mode_attr nunits): Add entry 3855 for V8DI. 3856 38572021-11-17 Martin Uecker <uecker@gcc.gnu.org> 3858 3859 PR c/91038 3860 PR c/29970 3861 * gimplify.c (gimplify_var_or_parm_decl): Update comment. 3862 (gimplify_compound_lval): Gimplify base expression first. 3863 (gimplify_target_expr): Add comment. 3864 38652021-11-17 Jakub Jelinek <jakub@redhat.com> 3866 3867 PR tree-optimization/103192 3868 * tree-ssa-loop-im.c (move_computations_worker): Use 3869 reset_flow_sensitive_info instead of manually clearing 3870 SSA_NAME_RANGE_INFO and do it for all SSA_NAMEs, not just ones 3871 with integral types. 3872 38732021-11-17 Jakub Jelinek <jakub@redhat.com> 3874 3875 PR tree-optimization/103255 3876 * gimple-range-fold.cc (fold_using_range::range_of_address): Return 3877 range_nonzero rather than unadjusted base's range. Formatting fixes. 3878 38792021-11-17 Richard Sandiford <richard.sandiford@arm.com> 3880 3881 * doc/md.texi (cond_fmin@var{mode}, cond_fmax@var{mode}): Document. 3882 * optabs.def (cond_fmin_optab, cond_fmax_optab): New optabs. 3883 * internal-fn.def (COND_FMIN, COND_FMAX): New functions. 3884 * internal-fn.c (first_commutative_argument): Handle them. 3885 (FOR_EACH_COND_FN_PAIR): Likewise. 3886 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise. 3887 * config/aarch64/aarch64-sve.md (cond_<fmaxmin><mode>): New 3888 pattern. 3889 38902021-11-17 Kewen Lin <linkw@linux.ibm.com> 3891 3892 * config/i386/i386.md (*add<dwi>3_doubleword, *addv<dwi>4_doubleword, 3893 *addv<dwi>4_doubleword_1, *sub<dwi>3_doubleword, 3894 *subv<dwi>4_doubleword, *subv<dwi>4_doubleword_1, 3895 *add<dwi>3_doubleword_cc_overflow_1, *divmodsi4_const, 3896 *neg<dwi>2_doubleword, *tls_dynamic_gnu2_combine_64_<mode>): Fix split 3897 condition. 3898 38992021-11-17 Andrew Pinski <apinski@marvell.com> 3900 3901 PR tree-optimization/103288 3902 * tree-ssa-phiopt.c (value_replacement): Return early if middle 3903 block has more than one pred. 3904 39052021-11-17 Kewen Lin <linkw@linux.ibm.com> 3906 3907 * config/visium/visium.md (*add<mode>3_insn, *addsi3_insn, *addi3_insn, 3908 *sub<mode>3_insn, *subsi3_insn, *subdi3_insn, *neg<mode>2_insn, 3909 *negdi2_insn, *and<mode>3_insn, *ior<mode>3_insn, *xor<mode>3_insn, 3910 *one_cmpl<mode>2_insn, *ashl<mode>3_insn, *ashr<mode>3_insn, 3911 *lshr<mode>3_insn, *trunchiqi2_insn, *truncsihi2_insn, 3912 *truncdisi2_insn, *extendqihi2_insn, *extendqisi2_insn, 3913 *extendhisi2_insn, *extendsidi2_insn, *zero_extendqihi2_insn, 3914 *zero_extendqisi2_insn, *zero_extendsidi2_insn): Fix split condition. 3915 39162021-11-17 Marek Polacek <polacek@redhat.com> 3917 3918 PR preprocessor/103026 3919 * doc/invoke.texi: Document -Wbidi-chars. 3920 39212021-11-17 Jan Hubicka <hubicka@ucw.cz> 3922 3923 PR ipa/103246 3924 * ipa-modref.c (ipa_merge_modref_summary_after_inlining): Fix clearing 3925 of to_info_lto 3926 39272021-11-16 Jan Hubicka <jh@suse.cz> 3928 3929 * ipa-modref.c (get_modref_function_summary): Declare. 3930 * ipa-modref.h (get_modref_function_summary): New function. 3931 * tree-ssa-dse.c (clear_live_bytes_for_ref): Break out from ... 3932 (clear_bytes_written_by): ... here; also clear memory killed by 3933 calls. 3934 39352021-11-16 Iain Sandoe <iain@sandoe.co.uk> 3936 3937 * ggc-common.c (gt_pch_save): If we cannot find a suitable 3938 memory segment for save, then error-out, do not try to 3939 continue. 3940 (gt_pch_restore): Save the existing line table, and when 3941 the replacement is being read, use that when constructing 3942 diagnostics. 3943 39442021-11-16 Peter Bergner <bergner@linux.ibm.com> 3945 3946 PR target/102976 3947 * config/rs6000/mma.md (*vsx_assemble_pair): Add early-clobber for 3948 output operand. 3949 (*mma_assemble_acc): Likewise. 3950 39512021-11-16 Martin Sebor <msebor@redhat.com> 3952 3953 PR tree-optimization/102960 3954 * gimple-fold.c (get_range_strlen): Take bitmap as an argument rather 3955 than a pointer to it. 3956 (get_range_strlen_tree): Same. Remove bitmap allocation. Use 3957 an auto_bitmap. 3958 (get_maxval_strlen): Use an auto_bitmap. 3959 * tree-ssa-strlen.c (get_range_strlen_dynamic): Factor out PHI 3960 handling... 3961 (get_range_strlen_phi): ...into this function. 3962 Avoid assuming maximum string length is constant 3963 (printf_strlen_execute): Dump pointer query cache contents when 3964 details are requisted. 3965 39662021-11-16 Jason Merrill <jason@redhat.com> 3967 3968 * langhooks.h (struct lang_hooks): Adjust comment. 3969 * print-tree.c (print_node): Also call print_xnode hook for 3970 tcc_constant class. 3971 39722021-11-16 Andrew Pinski <apinski@marvell.com> 3973 3974 PR tree-optimization/103218 3975 * match.pd: New pattern for "((type)(a<0)) << SIGNBITOFA". 3976 39772021-11-16 Claudiu Zissulescu <claziss@synopsys.com> 3978 3979 * config/arc/arc.md (maddhisi4): Use a single move to accumulator. 3980 (umaddhisi4): Likewise. 3981 (machi): Update pattern. 3982 (umachi): Likewise. 3983 39842021-11-16 Richard Biener <rguenther@suse.de> 3985 3986 PR tree-optimization/102880 3987 * tree-ssa-dce.c (sort_phi_args): New function. 3988 (make_forwarders_with_degenerate_phis): Likewise. 3989 (perform_tree_ssa_dce): Call 3990 make_forwarders_with_degenerate_phis. 3991 39922021-11-16 Richard Biener <rguenther@suse.de> 3993 3994 PR tree-optimization/102880 3995 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Push 3996 single_pred (bb1) condition to places that really need it. 3997 (match_simplify_replacement): Likewise. 3998 (value_replacement): Likewise. 3999 (replace_phi_edge_with_variable): Deal with extra edges 4000 into the middle BB. 4001 40022021-11-16 Martin Jambor <mjambor@suse.cz> 4003 4004 * cfgexpand.c (expand_gimple_basic_block): Use build_debug_expr_decl, 4005 add a fixme note about the mode assignment perhaps being unnecessary. 4006 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): 4007 Likewise. 4008 (ipa_param_body_adjustments::mark_dead_statements): Likewise. 4009 (ipa_param_body_adjustments::reset_debug_stmts): Likewise. 4010 * tree-inline.c (remap_ssa_name): Likewise. 4011 (tree_function_versioning): Likewise. 4012 * tree-into-ssa.c (rewrite_debug_stmt_uses): Likewise. 4013 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Likewise. 4014 * tree-ssa.c (insert_debug_temp_for_var_def): Likewise. 4015 40162021-11-16 Jakub Jelinek <jakub@redhat.com> 4017 4018 PR tree-optimization/103208 4019 * omp-expand.c (expand_omp_build_cond): New function. 4020 (expand_omp_for_init_counts, expand_omp_for_init_vars, 4021 expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Use it. 4022 40232021-11-16 Jakub Jelinek <jakub@redhat.com> 4024 4025 PR tree-optimization/102009 4026 * gimple-ssa-warn-access.cc (pass_waccess::check_alloc_size_call): 4027 Punt if any of alloc_size arguments is out of bounds vs. number of 4028 call arguments. 4029 40302021-11-16 Roger Sayle <roger@nextmovesoftware.com> 4031 4032 * config/i386/i386.md (*bmi2_rorx<mode3>_1): Make conditional 4033 on !optimize_function_for_size_p. 4034 (*<any_rotate><mode>3_1): Add preferred_for_size attribute. 4035 (define_splits): Conditionalize on !optimize_function_for_size_p. 4036 (*bmi2_rorxsi3_1_zext): Likewise. 4037 (*<any_rotate>si2_1_zext): Add preferred_for_size attribute. 4038 (define_splits): Conditionalize on !optimize_function_for_size_p. 4039 40402021-11-16 Jan Hubicka <jh@suse.cz> 4041 4042 PR ipa/103262 4043 * ipa-modref.c (merge_call_side_effects): Fix uninitialized 4044 access. 4045 40462021-11-16 Andrew Pinski <apinski@marvell.com> 4047 4048 PR tree-optimization/103245 4049 * match.pd: Combine the abs pattern matching using multiplication. 4050 Adding optional nop_convert too. 4051 40522021-11-16 H.J. Lu <hjl.tools@gmail.com> 4053 4054 PR middle-end/103268 4055 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Add a missing 4056 return. 4057 40582021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> 4059 4060 * gimple-fold.c (gimple_fold_builtin_strncat): Use ranges to 4061 determine if it is safe to transform to strcat. 4062 (gimple_fold_builtin_snprintf): Likewise. 4063 40642021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> 4065 4066 * gimple-fold.c (known_lower): New function. 4067 (gimple_fold_builtin_strncat_chk, 4068 gimple_fold_builtin_memory_chk, gimple_fold_builtin_stxcpy_chk, 4069 gimple_fold_builtin_stxncpy_chk, 4070 gimple_fold_builtin_snprintf_chk, 4071 gimple_fold_builtin_sprintf_chk): Use it. 4072 40732021-11-15 Siddhesh Poyarekar <siddhesh@gotplt.org> 4074 4075 * gimple-fold.c (dump_transformation): New function. 4076 (gimple_fold_builtin_stxcpy_chk, 4077 gimple_fold_builtin_stxncpy_chk): Use it. Simplify to 4078 BUILT_IN_STRNCPY if return value is not used. 4079 40802021-11-15 H.J. Lu <hjl.tools@gmail.com> 4081 4082 PR middle-end/103184 4083 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Check optab 4084 before transforming equivalent, but slighly different cases to 4085 their canonical forms. 4086 40872021-11-15 Iain Sandoe <iain@sandoe.co.uk> 4088 4089 PR fortran/102992 4090 * config/darwin.h (TARGET_DTORS_FROM_CXA_ATEXIT): New. 4091 * doc/tm.texi: Regenerated. 4092 * doc/tm.texi.in: Add TARGET_DTORS_FROM_CXA_ATEXIT hook. 4093 * ipa.c (cgraph_build_static_cdtor_1): Return the built 4094 function decl. 4095 (build_cxa_atexit_decl): New. 4096 (build_dso_handle_decl): New. 4097 (build_cxa_dtor_registrations): New. 4098 (compare_cdtor_tu_order): New. 4099 (build_cxa_atexit_fns): New. 4100 (ipa_cdtor_merge): If dtors_from_cxa_atexit is set, 4101 process the DTORs/CTORs accordingly. 4102 (pass_ipa_cdtor_merge::gate): Also run if 4103 dtors_from_cxa_atexit is set. 4104 * target.def (dtors_from_cxa_atexit): New hook. 4105 41062021-11-15 Iain Sandoe <iain@sandoe.co.uk> 4107 4108 * config.in: Regenerate. 4109 * configure: Regenerate. 4110 * configure.ac: Test ld64 for -platform-version support. 4111 41122021-11-15 Thomas Schwinge <thomas@codesourcery.com> 4113 4114 * diagnostic-spec.h (typedef xint_hash_t) 4115 (typedef xint_hash_map_t): Replace with... 4116 (typedef nowarn_map_t): ... this. 4117 (nowarn_map): Adjust. 4118 * diagnostic-spec.c (nowarn_map, suppress_warning_at): Likewise. 4119 41202021-11-15 Thomas Schwinge <thomas@codesourcery.com> 4121 4122 * profile.c (branch_prob): Use 'location_hash' for 4123 'seen_locations'. 4124 41252021-11-15 Aldy Hernandez <aldyh@redhat.com> 4126 4127 PR tree-optimization/103207 4128 * value-range.cc (irange::set): Drop overflow. 4129 41302021-11-15 Jakub Jelinek <jakub@redhat.com> 4131 4132 * gimplify.c (optimize_target_teams): Only add OMP_CLAUSE_THREAD_LIMIT 4133 to OMP_TARGET_CLAUSES if it isn't there already. 4134 41352021-11-15 Aldy Hernandez <aldyh@redhat.com> 4136 4137 * gimple-range-path.cc (path_range_query::internal_range_of_expr): 4138 Remove useless code. 4139 (path_range_query::ssa_defined_in_bb): New. 4140 (path_range_query::ssa_range_in_phi): Avoid fold_range call that 4141 could trigger additional lookups. 4142 Do not use the cache for ARGs defined in this block. 4143 (path_range_query::compute_ranges_in_block): Use ssa_defined_in_bb. 4144 (path_range_query::maybe_register_phi_relation): Same. 4145 (path_range_query::range_of_stmt): Adjust comment. 4146 * gimple-range-path.h (ssa_defined_in_bb): New. 4147 41482021-11-15 Aldy Hernandez <aldyh@redhat.com> 4149 4150 * gimple-range-path.cc (path_range_query::internal_range_of_expr): 4151 Default to global range if nothing found. 4152 41532021-11-15 Richard Biener <rguenther@suse.de> 4154 4155 PR tree-optimization/103237 4156 * tree-vect-loop.c (vect_is_simple_reduction): Fail for 4157 double reductions with multiple inner loop LC PHI nodes. 4158 41592021-11-15 Hongyu Wang <hongyu.wang@intel.com> 4160 4161 PR target/103069 4162 * config/i386/i386-expand.c (ix86_expand_atomic_fetch_op_loop): 4163 New expand function. 4164 * config/i386/i386-options.c (ix86_target_string): Add 4165 -mrelax-cmpxchg-loop flag. 4166 (ix86_valid_target_attribute_inner_p): Likewise. 4167 * config/i386/i386-protos.h (ix86_expand_atomic_fetch_op_loop): 4168 New expand function prototype. 4169 * config/i386/i386.opt: Add -mrelax-cmpxchg-loop. 4170 * config/i386/sync.md (atomic_fetch_<logic><mode>): New expander 4171 for SI,HI,QI modes. 4172 (atomic_<logic>_fetch<mode>): Likewise. 4173 (atomic_fetch_nand<mode>): Likewise. 4174 (atomic_nand_fetch<mode>): Likewise. 4175 (atomic_fetch_<logic><mode>): New expander for DI,TI modes. 4176 (atomic_<logic>_fetch<mode>): Likewise. 4177 (atomic_fetch_nand<mode>): Likewise. 4178 (atomic_nand_fetch<mode>): Likewise. 4179 * doc/invoke.texi: Document -mrelax-cmpxchg-loop. 4180 41812021-11-15 Richard Biener <rguenther@suse.de> 4182 4183 PR tree-optimization/103219 4184 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Use single_exit 4185 to determine the exit for the VN region. 4186 41872021-11-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 4188 4189 * tree-ssa-loop.c (pass_vectorize): Move to tree-vectorizer.c. 4190 (pass_data_vectorize): Likewise. 4191 (make_pass_vectorize): Likewise. 4192 * tree-vectorizer.c (vectorize_loops): Merge with 4193 pass_vectorize::execute and replace cfun occurences with fun param. 4194 (adjust_simduid_builtins): Add fun param, replace cfun occurences with 4195 fun, and adjust callers approrpiately. 4196 (note_simd_array_uses): Likewise. 4197 (vect_loop_dist_alias_call): Likewise. 4198 (set_uid_loop_bbs): Likewise. 4199 (vect_transform_loops): Likewise. 4200 (try_vectorize_loop_1): Likewise. 4201 (try_vectorize_loop): Likewise. 4202 42032021-11-15 Jakub Jelinek <jakub@redhat.com> 4204 4205 PR target/103205 4206 * config/i386/sync.md (atomic_bit_test_and_set<mode>, 4207 atomic_bit_test_and_complement<mode>, 4208 atomic_bit_test_and_reset<mode>): Use OPTAB_WIDEN instead of 4209 OPTAB_DIRECT. 4210 42112021-11-15 Maciej W. Rozycki <macro@embecosm.com> 4212 4213 * config/vax/vax.c (vax_lra_p): New prototype and function. 4214 (TARGET_LRA_P): Wire it. 4215 * config/vax/vax.opt (mlra): New option. 4216 * doc/invoke.texi (Option Summary, VAX Options): Document the 4217 new option. 4218 42192021-11-14 Jan Hubicka <jh@suse.cz> 4220 4221 * ipa-modref.h (struct modref_summary): Add nondeterministic 4222 and calls_interposable flags. 4223 * ipa-modref.c (modref_summary::modref_summary): Initialize new flags. 4224 (modref_summary::useful_p): Check new flags. 4225 (struct modref_summary_lto): Add nondeterministic and 4226 calls_interposable flags. 4227 (modref_summary_lto::modref_summary_lto): Initialize new flags. 4228 (modref_summary_lto::useful_p): Check new flags. 4229 (modref_summary::dump): Dump new flags. 4230 (modref_summary_lto::dump): Dump new flags. 4231 (ignore_nondeterminism_p): New function. 4232 (merge_call_side_effects): Merge new flags. 4233 (process_fnspec): Likewise. 4234 (analyze_load): Volatile access is nondeterministic. 4235 (analyze_store): Liekwise. 4236 (analyze_stmt): Volatile ASM is nondeterministic. 4237 (analyze_function): Clear new flags. 4238 (modref_summaries::duplicate): Duplicate new flags. 4239 (modref_summaries_lto::duplicate): Duplicate new flags. 4240 (modref_write): Stream new flags. 4241 (read_section): Stream new flags. 4242 (propagate_unknown_call): Update new flags. 4243 (modref_propagate_in_scc): Propagate new flags. 4244 * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Check 4245 calls_interposable. 4246 * tree-ssa-structalias.c (determine_global_memory_access): 4247 Likewise. 4248 42492021-11-14 Maciej W. Rozycki <macro@embecosm.com> 4250 4251 * config/vax/vax.h (SET_RATIO): New macro. 4252 * config/vax/vax.md (UNSPEC_SETMEM_FILL): New constant. 4253 (setmemhi): New expander. 4254 (setmemhi1): New insn and splitter. 4255 (*setmemhi1): New insn. 4256 42572021-11-14 Jan Hubicka <hubicka@ucw.cz> 4258 4259 * ipa-modref-tree.c (modref_access_node::update_for_kills): New 4260 member function. 4261 (modref_access_node::merge_for_kills): Likewise. 4262 (modref_access_node::insert_kill): Likewise. 4263 * ipa-modref-tree.h (modref_access_node::update_for_kills, 4264 modref_access_node::merge_for_kills, modref_access_node::insert_kill): 4265 Declare. 4266 (modref_access_node::useful_for_kill): New member function. 4267 * ipa-modref.c (modref_summary::useful_p): Release useless kills. 4268 (lto_modref_summary): Add kills. 4269 (modref_summary::dump): Dump kills. 4270 (record_access): Add mdoref_access_node parameter. 4271 (record_access_lto): Likewise. 4272 (merge_call_side_effects): Merge kills. 4273 (analyze_call): Add ALWAYS_EXECUTED param and pass it around. 4274 (struct summary_ptrs): Add always_executed filed. 4275 (analyze_load): Update. 4276 (analyze_store): Update; record kills. 4277 (analyze_stmt): Add always_executed; record kills in clobbers. 4278 (analyze_function): Track always_executed. 4279 (modref_summaries::duplicate): Duplicate kills. 4280 (update_signature): Release kills. 4281 * ipa-modref.h (struct modref_summary): Add kills. 4282 * tree-ssa-alias.c (alias_stats): Add kill stats. 4283 (dump_alias_stats): Dump kill stats. 4284 (store_kills_ref_p): Break out from ... 4285 (stmt_kills_ref_p): Use it; handle modref info based kills. 4286 42872021-11-14 Aldy Hernandez <aldyh@redhat.com> 4288 4289 PR tree-optimization/103229 4290 * gimple-range-cache.cc (ssa_global_cache::clear): Do not pass 4291 null value to memset. 4292 42932021-11-14 Jan Hubicka <hubicka@ucw.cz> 4294 4295 * ipa-modref-tree.c (modref_access_node::get_call_arg): New member 4296 function. 4297 (modref_access_node::get_ao_ref): Likewise. 4298 * ipa-modref-tree.h (modref_access_node::get_call_arg): Declare. 4299 (modref_access_node::get_ao_ref): Declare. 4300 * tree-ssa-alias.c (modref_may_conflict): Use new accessors. 4301 * tree-ssa-dse.c (dse_optimize_call): Use new accessors. 4302 43032021-11-13 Jan Hubicka <jh@suse.cz> 4304 4305 PR lto/103211 4306 * dbgcnt.def (ipa_attr): New counters. 4307 * ipa-pure-const.c: Include dbgcnt.c 4308 (ipa_make_function_const): Use debug counter. 4309 (ipa_make_function_pure): Likewise. 4310 (propagate_pure_const): Fix bug in my previous change. 4311 43122021-11-13 Jan Hubicka <hubicka@ucw.cz> 4313 4314 * ipa-modref-tree.c (modref_access_node::range_info_useful_p): 4315 Offline from ipa-modref-tree.h. 4316 (modref_access_node::dump): Move from ipa-modref.c; make member 4317 function. 4318 * ipa-modref-tree.h (modref_access_node::range_info_useful_p. 4319 modref_access_node::dump): Declare. 4320 * ipa-modref.c (dump_access): Remove. 4321 (dump_records): Update. 4322 (dump_lto_records): Update. 4323 (record_access): Update. 4324 (record_access_lto): Update. 4325 43262021-11-13 Jan Hubicka <hubicka@ucw.cz> 4327 4328 * ipa-modref.c (modref_summary::modref_summary): Clear new flags. 4329 (modref_summary::dump): Dump try_dse. 4330 (modref_summary::finalize): Add FUN attribute; compute try-dse. 4331 (analyze_function): Update. 4332 (read_section): Update. 4333 (update_signature): Update. 4334 (pass_ipa_modref::execute): Update. 4335 * ipa-modref.h (struct modref_summary): 4336 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_range): Export. 4337 * tree-ssa-alias.h (ao_ref_init_from_ptr_and_range): Declare. 4338 * tree-ssa-dse.c (dse_optimize_call): New function. 4339 (dse_optimize_stmt): Use it. 4340 43412021-11-13 Jan Hubicka <hubicka@ucw.cz> 4342 4343 * ipa-modref-tree.c: Move #if CHECKING_P to proper place. 4344 43452021-11-13 Jan Hubicka <jh@suse.cz> 4346 4347 * ipa-modref-tree.h 4348 (struct modref_access_node): Move longer member functions to 4349 ipa-modref-tree.c 4350 (modref_ref_node::try_merge_with): Turn into modreef_acces_node member 4351 function. 4352 * ipa-modref-tree.c (modref_access_node::contains): Move here 4353 from ipa-modref-tree.h. 4354 (modref_access_node::update): Likewise. 4355 (modref_access_node::merge): Likewise. 4356 (modref_access_node::closer_pair_p): Likewise. 4357 (modref_access_node::forced_merge): Likewise. 4358 (modref_access_node::update2): Likewise. 4359 (modref_access_node::combined_offsets): Likewise. 4360 (modref_access_node::try_merge_with): Likewise. 4361 (modref_access_node::insert): Likewise. 4362 43632021-11-13 Jan Hubicka <jh@suse.cz> 4364 4365 * ipa-modref.c (modref_summary::global_memory_read_p): Remove. 4366 (modref_summary::global_memory_written_p): Remove. 4367 (modref_summary::dump): Dump new flags. 4368 (modref_summary::finalize): New member function. 4369 (analyze_function): Call it. 4370 (read_section): Call it. 4371 (update_signature): Call it. 4372 (pass_ipa_modref::execute): Call it. 4373 * ipa-modref.h (struct modref_summary): Remove 4374 global_memory_read_p and global_memory_written_p. 4375 Add global_memory_read, global_memory_written. 4376 * tree-ssa-structalias.c (determine_global_memory_access): 4377 Update. 4378 43792021-11-13 Jan Hubicka <jh@suse.cz> 4380 4381 * ipa-fnsummary.c (compute_fn_summary): Use type_attribut_allowed_p 4382 * ipa-param-manipulation.c 4383 (ipa_param_adjustments::type_attribute_allowed_p): 4384 New member function. 4385 (drop_type_attribute_if_params_changed_p): New function. 4386 (build_adjusted_function_type): Use it. 4387 * ipa-param-manipulation.h: Add type_attribute_allowed_p. 4388 43892021-11-13 David Malcolm <dmalcolm@redhat.com> 4390 4391 * doc/invoke.texi (Static Analyzer Options): Add 4392 -Wno-analyzer-tainted-allocation-size, 4393 -Wno-analyzer-tainted-divisor, -Wno-analyzer-tainted-offset, and 4394 -Wno-analyzer-tainted-size to list. Add 4395 -Wanalyzer-tainted-allocation-size, -Wanalyzer-tainted-divisor, 4396 -Wanalyzer-tainted-offset, and -Wanalyzer-tainted-size to list 4397 of options effectively enabled by -fanalyzer. 4398 (-Wanalyzer-tainted-allocation-size): New. 4399 (-Wanalyzer-tainted-array-index): Tweak wording; add link to CWE. 4400 (-Wanalyzer-tainted-divisor): New. 4401 (-Wanalyzer-tainted-offset): New. 4402 (-Wanalyzer-tainted-size): New. 4403 44042021-11-13 Jan Hubicka <jh@suse.cz> 4405 4406 * attr-fnspec.h (attr_fnspec::arg_eaf_flags): Break out from ... 4407 * gimple.c (gimple_call_arg_flags): ... here. 4408 * ipa-modref.c (analyze_parms): Record flags known from fnspec. 4409 (modref_merge_call_site_flags): Use arg_eaf_flags. 4410 44112021-11-13 Aldy Hernandez <aldyh@redhat.com> 4412 4413 PR tree-optimization/103222 4414 * gimple-range-path.cc (path_range_query::compute_ranges_in_phis): 4415 New. 4416 (path_range_query::compute_ranges_in_block): Call 4417 compute_ranges_in_phis. 4418 * gimple-range-path.h (path_range_query::compute_ranges_in_phis): 4419 New. 4420 44212021-11-13 Jan Hubicka <jh@suse.cz> 4422 4423 * ipa-fnsummary.c (compute_fn_summary): Do not give up on signature 4424 changes on "fn spec" attribute; give up on varadic types. 4425 * ipa-param-manipulation.c: Include attribs.h. 4426 (build_adjusted_function_type): New parameter ARG_MODIFIED; if it is 4427 true remove "fn spec" attribute. 4428 (ipa_param_adjustments::build_new_function_type): Update. 4429 (ipa_param_body_adjustments::modify_formal_parameters): update. 4430 * ipa-sra.c: Include attribs.h. 4431 (ipa_sra_preliminary_function_checks): Do not check for TYPE_ATTRIBUTES. 4432 44332021-11-13 Aldy Hernandez <aldyh@redhat.com> 4434 4435 * gimple-range-path.cc (path_range_query::path_range_query): Merge 4436 ctors. 4437 (path_range_query::import_p): Move from header file. 4438 (path_range_query::~path_range_query): Adjust for combined ctors. 4439 * gimple-range-path.h: Merge ctors. 4440 (path_range_query::import_p): Move to .cc file. 4441 44422021-11-13 Jan Hubicka <jh@suse.cz> 4443 4444 PR tree-optimization/103182 4445 * ipa-modref.c (callee_to_caller_flags): Fix merging of flags. 4446 (modref_eaf_analysis::analyze_ssa_name): Fix merging of flags. 4447 44482021-11-12 Stafford Horne <shorne@gmail.com> 4449 4450 * config/or1k/or1k-protos.h (or1k_profile_hook): New function. 4451 * config/or1k/or1k.h (PROFILE_HOOK): Change macro to reference 4452 new function or1k_profile_hook. 4453 * config/or1k/or1k.c (struct machine_function): Add new field 4454 set_mcount_arg_insn. 4455 (or1k_profile_hook): New function. 4456 (or1k_init_pic_reg): Update to inject pic rtx after _mcount arg 4457 when profiling. 4458 (or1k_frame_pointer_required): Frame pointer no longer needed 4459 when profiling. 4460 44612021-11-12 Jan Hubicka <jh@suse.cz> 4462 4463 PR tree-optimization/103209 4464 * tree-ssa-structalias.c (find_func_aliases_for_call): Fix 4465 use of handle_rhs_call 4466 44672021-11-12 Aldy Hernandez <aldyh@redhat.com> 4468 4469 PR tree-optimization/103202 4470 * gimple-range-path.cc 4471 (path_range_query::compute_ranges_in_block): Solve PHI imports first. 4472 44732021-11-12 Jan Hubicka <jh@suse.cz> 4474 4475 * ipa-pure-const.c (propagate_pure_const): Remove redundant check; 4476 fix call of ipa_make_function_const and ipa_make_function_pure. 4477 44782021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4479 4480 * config/aarch64/aarch64.c (aarch64_vector_op::n_advsimd_ops): Delete. 4481 (aarch64_vector_op::m_seen_loads): Likewise. 4482 (aarch64_vector_costs::aarch64_vector_costs): Don't push to 4483 m_advsimd_ops. 4484 (aarch64_vector_op::count_ops): Remove vectype and factor parameters. 4485 Remove code that tries to predict different vec_flags from the 4486 current loop's. 4487 (aarch64_vector_costs::add_stmt_cost): Update accordingly. 4488 Remove m_advsimd_ops handling. 4489 44902021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4491 4492 * config/aarch64/aarch64.c (aarch64_vector_costs::m_saw_sve_only_op) 4493 (aarch64_sve_only_stmt_p): Delete. 4494 (aarch64_vector_costs::prefer_unrolled_loop): New function, 4495 extracted from adjust_body_cost. 4496 (aarch64_vector_costs::better_main_loop_than_p): New function, 4497 using heuristics extracted from adjust_body_cost and 4498 adjust_body_cost_sve. 4499 (aarch64_vector_costs::adjust_body_cost_sve): Remove 4500 advsimd_cycles_per_iter and could_use_advsimd parameters. 4501 Update after changes above. 4502 (aarch64_vector_costs::adjust_body_cost): Update after changes above. 4503 45042021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4505 4506 * config/aarch64/aarch64.c (aarch64_vec_op_count::m_vf_factor): 4507 New member variable. 4508 (aarch64_vec_op_count::aarch64_vec_op_count): Add a parameter for it. 4509 (aarch64_vec_op_count::vf_factor): New function. 4510 (aarch64_vector_costs::aarch64_vector_costs): When costing for 4511 neoverse-512tvb, pass a vf_factor of 2 for the Neoverse V1 version 4512 of an SVE loop. 4513 (aarch64_vector_costs::adjust_body_cost): Read the vf factor 4514 instead of hard-coding 2. 4515 45162021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4517 4518 * config/aarch64/aarch64.c 4519 (aarch64_vec_op_count::rename_cycles_per_iter): New function. 4520 (aarch64_vec_op_count::min_nonpred_cycles_per_iter): Likewise. 4521 (aarch64_vec_op_count::min_pred_cycles_per_iter): Likewise. 4522 (aarch64_vec_op_count::min_cycles_per_iter): Likewise. 4523 (aarch64_vec_op_count::dump): Move earlier in file. Dump the 4524 above properties too. 4525 (aarch64_estimate_min_cycles_per_iter): Delete. 4526 (adjust_body_cost): Use aarch64_vec_op_count::min_cycles_per_iter 4527 instead of aarch64_estimate_min_cycles_per_iter. Rely on the dump 4528 routine to print CPI estimates. 4529 (adjust_body_cost_sve): Likewise. Use the other functions above 4530 instead of doing the work inline. 4531 45322021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4533 4534 * config/aarch64/aarch64.c (aarch64_vec_op_count): Allow default 4535 initialization. 4536 (aarch64_vec_op_count::base_issue_info): Remove handling of null 4537 issue_infos. 4538 (aarch64_vec_op_count::simd_issue_info): Likewise. 4539 (aarch64_vec_op_count::sve_issue_info): Likewise. 4540 (aarch64_vector_costs::m_ops): Turn into a vector. 4541 (aarch64_vector_costs::m_advsimd_ops): Likewise. 4542 (aarch64_vector_costs::aarch64_vector_costs): Add entries to 4543 the vectors based on aarch64_tune_params. 4544 (aarch64_vector_costs::analyze_loop_vinfo): Update the pred_ops 4545 of all entries in m_ops. 4546 (aarch64_vector_costs::add_stmt_cost): Call count_ops for all 4547 entries in m_ops. 4548 (aarch64_estimate_min_cycles_per_iter): Remove issue_info 4549 parameter and get the information from the ops instead. 4550 (aarch64_vector_costs::adjust_body_cost_sve): Take a 4551 aarch64_vec_issue_info instead of a aarch64_vec_op_count. 4552 (aarch64_vector_costs::adjust_body_cost): Update call accordingly. 4553 Exit earlier if m_ops is empty for either cost structure. 4554 45552021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4556 4557 * config/aarch64/aarch64.c (aarch64_vector_costs::m_scalar_ops) 4558 (aarch64_vector_costs::m_sve_ops): Replace with... 4559 (aarch64_vector_costs::m_ops): ...this. 4560 (aarch64_vector_costs::analyze_loop_vinfo): Update accordingly. 4561 (aarch64_vector_costs::adjust_body_cost_sve): Likewise. 4562 (aarch64_vector_costs::aarch64_vector_costs): Likewise. 4563 Initialize m_vec_flags here rather than in add_stmt_cost. 4564 (aarch64_vector_costs::count_ops): Test for scalar reductions too. 4565 Allow vectype to be null. 4566 (aarch64_vector_costs::add_stmt_cost): Call count_ops for scalar 4567 code too. Don't require vectype to be nonnull. 4568 (aarch64_vector_costs::adjust_body_cost): Take the loop_vec_info 4569 and scalar costs as parameters. Use the scalar costs to determine 4570 the cycles per iteration of the scalar loop, then multiply it 4571 by the estimated VF. 4572 (aarch64_vector_costs::finish_cost): Update call accordingly. 4573 45742021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4575 4576 * config/aarch64/aarch64.c (aarch64_dr_type): New function. 4577 (aarch64_vector_costs::count_ops): Use it rather than the 4578 vectype to determine floatness. 4579 45802021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4581 4582 * config/aarch64/aarch64.c (aarch64_sve_in_loop_reduction_latency): 4583 Remove vectype parameter and get floatness from the type of the 4584 stmt lhs instead. 4585 (arch64_in_loop_reduction_latency): Likewise. 4586 (aarch64_detect_vector_stmt_subtype): Update caller. 4587 (aarch64_vector_costs::count_ops): Likewise. 4588 45892021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4590 4591 * config/aarch64/aarch64.c (aarch64_sve_op_count): Fold into... 4592 (aarch64_vec_op_count): ...this. Add a constructor. 4593 (aarch64_vec_op_count::vec_flags): New function. 4594 (aarch64_vec_op_count::base_issue_info): Likewise. 4595 (aarch64_vec_op_count::simd_issue_info): Likewise. 4596 (aarch64_vec_op_count::sve_issue_info): Likewise. 4597 (aarch64_vec_op_count::m_issue_info): New member variable. 4598 (aarch64_vec_op_count::m_vec_flags): Likewise. 4599 (aarch64_vector_costs): Add a constructor. 4600 (aarch64_vector_costs::m_sve_ops): Change type to aarch64_vec_op_count. 4601 (aarch64_vector_costs::aarch64_vector_costs): New function. 4602 Initialize m_scalar_ops, m_advsimd_ops and m_sve_ops. 4603 (aarch64_vector_costs::count_ops): Remove vec_flags and 4604 issue_info parameters, using the new aarch64_vec_op_count 4605 functions instead. 4606 (aarch64_vector_costs::add_stmt_cost): Update call accordingly. 4607 (aarch64_sve_op_count::dump): Fold into... 4608 (aarch64_vec_op_count::dump): ..here. 4609 46102021-11-12 Richard Sandiford <richard.sandiford@arm.com> 4611 4612 * config/aarch64/aarch64.c: Include tree-dfa.h. 4613 (aarch64_check_consecutive_mems): New function that takes MEM_EXPR 4614 and MEM_OFFSET into account. 4615 (aarch64_swap_ldrstr_operands): Use it. 4616 (aarch64_operands_ok_for_ldpstp): Likewise. Check that the 4617 address of the second memory doesn't depend on the result of 4618 the first load. 4619 46202021-11-12 Jan Hubicka <hubicka@ucw.cz> 4621 4622 * ipa-pure-const.c (ipa_make_function_pure): Fix exit condition. 4623 46242021-11-12 Jan Hubicka <jh@suse.cz> 4625 4626 PR tree-optimization/103175 4627 * ipa-modref.c (modref_lattice::merge): Add sanity check. 4628 (callee_to_caller_flags): Make flags adjustment sane. 4629 (modref_eaf_analysis::analyze_ssa_name): Likewise. 4630 46312021-11-12 Jan Hubicka <jh@suse.cz> 4632 4633 PR ipa/103200 4634 * ipa-modref.c (analyze_function, modref_propagate_in_scc): Do 4635 not mark pure/const function if there are side-effects. 4636 46372021-11-12 Chung-Lin Tang <cltang@codesourcery.com> 4638 4639 * tree.h (OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P): New access macro for 4640 'implicit' bit, using 'base.deprecated_flag' field of tree_node. 4641 * tree-pretty-print.c (dump_omp_clause): Add support for printing 4642 implicit attribute in tree dumping. 4643 * gimplify.c (gimplify_adjust_omp_clauses_1): 4644 Set OMP_CLAUSE_MAP_RUNTIME_IMPLICIT_P to 1 if map clause is implicitly 4645 created. 4646 (gimplify_adjust_omp_clauses): Adjust place of adding implicitly created 4647 clauses, from simple append, to starting of list, after non-map clauses. 4648 * omp-low.c (lower_omp_target): Add GOMP_MAP_IMPLICIT bits into kind 4649 values passed to libgomp for implicit maps. 4650 46512021-11-12 Jakub Jelinek <jakub@redhat.com> 4652 4653 * omp-builtins.def (BUILT_IN_GOMP_TEAMS): Remove. 4654 (BUILT_IN_GOMP_TEAMS4): New. 4655 * builtin-types.def (BT_FN_VOID_UINT_UINT): Remove. 4656 (BT_FN_BOOL_UINT_UINT_UINT_BOOL): New. 4657 * omp-low.c (lower_omp_teams): Use GOMP_teams4 instead of 4658 GOMP_teams, pass to it also num_teams lower-bound expression 4659 or a dup of upper-bound if it is missing and a flag whether 4660 it is the first call or not. 4661 46622021-11-12 Martin Liska <mliska@suse.cz> 4663 4664 PR tree-optimization/102497 4665 * gimple-predicate-analysis.cc (add_pred): Remove unused 4666 function: 4667 46682021-11-12 Richard Biener <rguenther@suse.de> 4669 4670 PR tree-optimization/103204 4671 * tree-ssa-sccvn.c (valueize_refs_1): Re-valueize the 4672 top operand after folding in an address. 4673 46742021-11-11 Aldy Hernandez <aldyh@redhat.com> 4675 4676 * gimple-range-path.cc (path_range_query::path_range_query): New 4677 ctor without a ranger. 4678 (path_range_query::~path_range_query): Free ranger if necessary. 4679 (path_range_query::range_on_path_entry): Adjust m_ranger for pointer. 4680 (path_range_query::ssa_range_in_phi): Same. 4681 (path_range_query::compute_ranges_in_block): Same. 4682 (path_range_query::compute_imports): Same. 4683 (path_range_query::compute_ranges): Same. 4684 (path_range_query::range_of_stmt): Same. 4685 (path_range_query::compute_outgoing_relations): Same. 4686 * gimple-range-path.h (class path_range_query): New ctor. 4687 * tree-ssa-loop-ch.c (ch_base::copy_headers): Remove gimple_ranger 4688 as path_range_query allocates one. 4689 * tree-ssa-threadbackward.c (class back_threader): Remove m_ranger. 4690 (back_threader::~back_threader): Same. 4691 46922021-11-11 Aldy Hernandez <aldyh@redhat.com> 4693 4694 * tree-ssa-threadbackward.c 4695 (back_threader_profitability::profitable_path_p): Remove loop 4696 crossing restriction. 4697 46982021-11-11 Jan Hubicka <hubicka@ucw.cz> 4699 4700 * ipa-modref.c (analyze_function): Do pure/const discovery, return 4701 true on success. 4702 (pass_modref::execute): If pure/const is discovered fixup cfg. 4703 (ignore_edge): Do not ignore pure/const edges. 4704 (modref_propagate_in_scc): Do pure/const discovery, return true if 4705 cdtor was promoted pure/const. 4706 (pass_ipa_modref::execute): If needed remove unreachable functions. 4707 * ipa-pure-const.c (warn_function_noreturn): Fix whitespace. 4708 (warn_function_cold): Likewise. 4709 (skip_function_for_local_pure_const): Move earlier. 4710 (ipa_make_function_const): Break out from ... 4711 (ipa_make_function_pure): Break out from ... 4712 (propagate_pure_const): ... here. 4713 (pass_local_pure_const::execute): Use it. 4714 * ipa-utils.h (ipa_make_function_const): Declare. 4715 (ipa_make_function_pure): Declare. 4716 * passes.def: Move early modref after pure-const. 4717 47182021-11-11 David Malcolm <dmalcolm@redhat.com> 4719 4720 PR other/103129 4721 * diagnostic-show-locus.c (def_policy): Use def_tabstop. 4722 47232021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4724 4725 * config/aarch64/aarch64-builtins.c (TYPES_COMBINE): Delete. 4726 (TYPES_COMBINEP): Delete. 4727 * config/aarch64/aarch64-simd-builtins.def: Declare type- 4728 qualified builtins for vcombine_* intrinsics. 4729 * config/aarch64/arm_neon.h (vcombine_s8): Remove unnecessary 4730 cast. 4731 (vcombine_s16): Likewise. 4732 (vcombine_s32): Likewise. 4733 (vcombine_f32): Likewise. 4734 (vcombine_u8): Use type-qualified builtin and remove casts. 4735 (vcombine_u16): Likewise. 4736 (vcombine_u32): Likewise. 4737 (vcombine_u64): Likewise. 4738 (vcombine_p8): Likewise. 4739 (vcombine_p16): Likewise. 4740 (vcombine_p64): Likewise. 4741 (vcombine_bf16): Remove unnecessary cast. 4742 * config/aarch64/iterators.md (VD_I): New mode iterator. 4743 (VDC_P): New mode iterator. 4744 47452021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4746 4747 * config/aarch64/aarch64-builtins.c (TYPES_LOAD1_U): Define. 4748 (TYPES_LOAD1_P): Define. 4749 (TYPES_STORE1_U): Define. 4750 (TYPES_STORE1P): Rename to... 4751 (TYPES_STORE1_P): This. 4752 (get_mem_type_for_load_store): Add unsigned and poly types. 4753 (aarch64_general_gimple_fold_builtin): Add unsigned and poly 4754 type-qualified builtin declarations. 4755 * config/aarch64/aarch64-simd-builtins.def: Declare type- 4756 qualified builtins for LD1/ST1. 4757 * config/aarch64/arm_neon.h (vld1_p8): Use type-qualified 4758 builtin and remove cast. 4759 (vld1_p16): Likewise. 4760 (vld1_u8): Likewise. 4761 (vld1_u16): Likewise. 4762 (vld1_u32): Likewise. 4763 (vld1q_p8): Likewise. 4764 (vld1q_p16): Likewise. 4765 (vld1q_p64): Likewise. 4766 (vld1q_u8): Likewise. 4767 (vld1q_u16): Likewise. 4768 (vld1q_u32): Likewise. 4769 (vld1q_u64): Likewise. 4770 (vst1_p8): Likewise. 4771 (vst1_p16): Likewise. 4772 (vst1_u8): Likewise. 4773 (vst1_u16): Likewise. 4774 (vst1_u32): Likewise. 4775 (vst1q_p8): Likewise. 4776 (vst1q_p16): Likewise. 4777 (vst1q_p64): Likewise. 4778 (vst1q_u8): Likewise. 4779 (vst1q_u16): Likewise. 4780 (vst1q_u32): Likewise. 4781 (vst1q_u64): Likewise. 4782 * config/aarch64/iterators.md (VALLP_NO_DI): New iterator. 4783 47842021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4785 4786 * config/aarch64/aarch64-simd-builtins.def: Declare unsigned 4787 builtins for vector reduction. 4788 * config/aarch64/arm_neon.h (vaddv_u8): Use type-qualified 4789 builtin and remove casts. 4790 (vaddv_u16): Likewise. 4791 (vaddv_u32): Likewise. 4792 (vaddvq_u8): Likewise. 4793 (vaddvq_u16): Likewise. 4794 (vaddvq_u32): Likewise. 4795 (vaddvq_u64): Likewise. 4796 47972021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4798 4799 * config/aarch64/aarch64-simd-builtins.def: 4800 * config/aarch64/arm_neon.h (vpaddq_u8): Use type-qualified 4801 builtin and remove casts. 4802 (vpaddq_u16): Likewise. 4803 (vpaddq_u32): Likewise. 4804 (vpaddq_u64): Likewise. 4805 (vpadd_u8): Likewise. 4806 (vpadd_u16): Likewise. 4807 (vpadd_u32): Likewise. 4808 (vpaddd_u64): Likewise. 4809 48102021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4811 4812 * config/aarch64/aarch64-simd-builtins.def: Declare unsigned 4813 builtins for [r]subhn[2]. 4814 * config/aarch64/arm_neon.h (vsubhn_s16): Remove unnecessary 4815 cast. 4816 (vsubhn_s32): Likewise. 4817 (vsubhn_s64): Likewise. 4818 (vsubhn_u16): Use type-qualified builtin and remove casts. 4819 (vsubhn_u32): Likewise. 4820 (vsubhn_u64): Likewise. 4821 (vrsubhn_s16): Remove unnecessary cast. 4822 (vrsubhn_s32): Likewise. 4823 (vrsubhn_s64): Likewise. 4824 (vrsubhn_u16): Use type-qualified builtin and remove casts. 4825 (vrsubhn_u32): Likewise. 4826 (vrsubhn_u64): Likewise. 4827 (vrsubhn_high_s16): Remove unnecessary cast. 4828 (vrsubhn_high_s32): Likewise. 4829 (vrsubhn_high_s64): Likewise. 4830 (vrsubhn_high_u16): Use type-qualified builtin and remove 4831 casts. 4832 (vrsubhn_high_u32): Likewise. 4833 (vrsubhn_high_u64): Likewise. 4834 (vsubhn_high_s16): Remove unnecessary cast. 4835 (vsubhn_high_s32): Likewise. 4836 (vsubhn_high_s64): Likewise. 4837 (vsubhn_high_u16): Use type-qualified builtin and remove 4838 casts. 4839 (vsubhn_high_u32): Likewise. 4840 (vsubhn_high_u64): Likewise. 4841 48422021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4843 4844 * config/aarch64/aarch64-simd-builtins.def: Declare unsigned 4845 builtins for [r]addhn[2]. 4846 * config/aarch64/arm_neon.h (vaddhn_s16): Remove unnecessary 4847 cast. 4848 (vaddhn_s32): Likewise. 4849 (vaddhn_s64): Likewise. 4850 (vaddhn_u16): Use type-qualified builtin and remove casts. 4851 (vaddhn_u32): Likewise. 4852 (vaddhn_u64): Likewise. 4853 (vraddhn_s16): Remove unnecessary cast. 4854 (vraddhn_s32): Likewise. 4855 (vraddhn_s64): Likewise. 4856 (vraddhn_u16): Use type-qualified builtin and remove casts. 4857 (vraddhn_u32): Likewise. 4858 (vraddhn_u64): Likewise. 4859 (vaddhn_high_s16): Remove unnecessary cast. 4860 (vaddhn_high_s32): Likewise. 4861 (vaddhn_high_s64): Likewise. 4862 (vaddhn_high_u16): Use type-qualified builtin and remove 4863 casts. 4864 (vaddhn_high_u32): Likewise. 4865 (vaddhn_high_u64): Likewise. 4866 (vraddhn_high_s16): Remove unnecessary cast. 4867 (vraddhn_high_s32): Likewise. 4868 (vraddhn_high_s64): Likewise. 4869 (vraddhn_high_u16): Use type-qualified builtin and remove 4870 casts. 4871 (vraddhn_high_u32): Likewise. 4872 (vraddhn_high_u64): Likewise. 4873 48742021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4875 4876 * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type 4877 qualifiers in generator macros for uhsub builtins. 4878 * config/aarch64/arm_neon.h (vhsub_s8): Remove unnecessary 4879 cast. 4880 (vhsub_s16): Likewise. 4881 (vhsub_s32): Likewise. 4882 (vhsub_u8): Use type-qualified builtin and remove casts. 4883 (vhsub_u16): Likewise. 4884 (vhsub_u32): Likewise. 4885 (vhsubq_s8): Remove unnecessary cast. 4886 (vhsubq_s16): Likewise. 4887 (vhsubq_s32): Likewise. 4888 (vhsubq_u8): Use type-qualified builtin and remove casts. 4889 (vhsubq_u16): Likewise. 4890 (vhsubq_u32): Likewise. 4891 48922021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4893 4894 * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type 4895 qualifiers in generator macros for u[r]hadd builtins. 4896 * config/aarch64/arm_neon.h (vhadd_s8): Remove unnecessary 4897 cast. 4898 (vhadd_s16): Likewise. 4899 (vhadd_s32): Likewise. 4900 (vhadd_u8): Use type-qualified builtin and remove casts. 4901 (vhadd_u16): Likewise. 4902 (vhadd_u32): Likewise. 4903 (vhaddq_s8): Remove unnecessary cast. 4904 (vhaddq_s16): Likewise. 4905 (vhaddq_s32): Likewise. 4906 (vhaddq_u8): Use type-qualified builtin and remove casts. 4907 (vhaddq_u16): Likewise. 4908 (vhaddq_u32): Likewise. 4909 (vrhadd_s8): Remove unnecessary cast. 4910 (vrhadd_s16): Likewise. 4911 (vrhadd_s32): Likewise. 4912 (vrhadd_u8): Use type-qualified builtin and remove casts. 4913 (vrhadd_u16): Likewise. 4914 (vrhadd_u32): Likewise. 4915 (vrhaddq_s8): Remove unnecessary cast. 4916 (vrhaddq_s16): Likewise. 4917 (vrhaddq_s32): Likewise. 4918 (vrhaddq_u8): Use type-wualified builtin and remove casts. 4919 (vrhaddq_u16): Likewise. 4920 (vrhaddq_u32): Likewise. 4921 49222021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4923 4924 * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type 4925 qualifiers in generator macros for usub[lw][2] builtins. 4926 * config/aarch64/arm_neon.h (vsubl_s8): Remove unnecessary 4927 cast. 4928 (vsubl_s16): Likewise. 4929 (vsubl_s32): Likewise. 4930 (vsubl_u8): Use type-qualified builtin and remove casts. 4931 (vsubl_u16): Likewise. 4932 (vsubl_u32): Likewise. 4933 (vsubl_high_s8): Remove unnecessary cast. 4934 (vsubl_high_s16): Likewise. 4935 (vsubl_high_s32): Likewise. 4936 (vsubl_high_u8): Use type-qualified builtin and remove casts. 4937 (vsubl_high_u16): Likewise. 4938 (vsubl_high_u32): Likewise. 4939 (vsubw_s8): Remove unnecessary casts. 4940 (vsubw_s16): Likewise. 4941 (vsubw_s32): Likewise. 4942 (vsubw_u8): Use type-qualified builtin and remove casts. 4943 (vsubw_u16): Likewise. 4944 (vsubw_u32): Likewise. 4945 (vsubw_high_s8): Remove unnecessary cast. 4946 (vsubw_high_s16): Likewise. 4947 (vsubw_high_s32): Likewise. 4948 (vsubw_high_u8): Use type-qualified builtin and remove casts. 4949 (vsubw_high_u16): Likewise. 4950 (vsubw_high_u32): Likewise. 4951 49522021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4953 4954 * config/aarch64/aarch64-simd-builtins.def: Use BINOPU type 4955 qualifiers in generator macros for uadd[lw][2] builtins. 4956 * config/aarch64/arm_neon.h (vaddl_s8): Remove unnecessary 4957 cast. 4958 (vaddl_s16): Likewise. 4959 (vaddl_s32): Likewise. 4960 (vaddl_u8): Use type-qualified builtin and remove casts. 4961 (vaddl_u16): Likewise. 4962 (vaddl_u32): Likewise. 4963 (vaddl_high_s8): Remove unnecessary cast. 4964 (vaddl_high_s16): Likewise. 4965 (vaddl_high_s32): Likewise. 4966 (vaddl_high_u8): Use type-qualified builtin and remove casts. 4967 (vaddl_high_u16): Likewise. 4968 (vaddl_high_u32): Likewise. 4969 (vaddw_s8): Remove unnecessary cast. 4970 (vaddw_s16): Likewise. 4971 (vaddw_s32): Likewise. 4972 (vaddw_u8): Use type-qualified builtin and remove casts. 4973 (vaddw_u16): Likewise. 4974 (vaddw_u32): Likewise. 4975 (vaddw_high_s8): Remove unnecessary cast. 4976 (vaddw_high_s16): Likewise. 4977 (vaddw_high_s32): Likewise. 4978 (vaddw_high_u8): Use type-qualified builtin and remove casts. 4979 (vaddw_high_u16): Likewise. 4980 (vaddw_high_u32): Likewise. 4981 49822021-11-11 Jonathan Wright <jonathan.wright@arm.com> 4983 4984 * config/aarch64/aarch64-simd-builtins.def: Declare type- 4985 qualified builtins for [R]SHRN[2]. 4986 * config/aarch64/arm_neon.h (vshrn_n_u16): Use type-qualified 4987 builtin and remove casts. 4988 (vshrn_n_u32): Likewise. 4989 (vshrn_n_u64): Likewise. 4990 (vrshrn_high_n_u16): Likewise. 4991 (vrshrn_high_n_u32): Likewise. 4992 (vrshrn_high_n_u64): Likewise. 4993 (vrshrn_n_u16): Likewise. 4994 (vrshrn_n_u32): Likewise. 4995 (vrshrn_n_u64): Likewise. 4996 (vshrn_high_n_u16): Likewise. 4997 (vshrn_high_n_u32): Likewise. 4998 (vshrn_high_n_u64): Likewise. 4999 50002021-11-11 Jonathan Wright <jonathan.wright@arm.com> 5001 5002 * config/aarch64/aarch64-simd-builtins.def: Declare unsigned 5003 type-qualified builtins for XTN[2]. 5004 * config/aarch64/arm_neon.h (vmovn_high_u16): Use type- 5005 qualified builtin and remove casts. 5006 (vmovn_high_u32): Likewise. 5007 (vmovn_high_u64): Likewise. 5008 (vmovn_u16): Likewise. 5009 (vmovn_u32): Likewise. 5010 (vmovn_u64): Likewise. 5011 50122021-11-11 Jonathan Wright <jonathan.wright@arm.com> 5013 5014 * config/aarch64/aarch64-simd-builtins.def: Use poly type 5015 qualifier in builtin generator macros. 5016 * config/aarch64/arm_neon.h (vmul_p8): Use type-qualified 5017 builtin and remove casts. 5018 (vmulq_p8): Likewise. 5019 (vmull_high_p8): Likewise. 5020 (vmull_p8): Likewise. 5021 50222021-11-11 Jonathan Wright <jonathan.wright@arm.com> 5023 5024 * config/aarch64/aarch64-simd-builtins.def: Declare type- 5025 qualified builtin generators for unsigned MLA/MLS intrinsics. 5026 * config/aarch64/arm_neon.h (vmla_n_u16): Use type-qualified 5027 builtin. 5028 (vmla_n_u32): Likewise. 5029 (vmla_u8): Likewise. 5030 (vmla_u16): Likewise. 5031 (vmla_u32): Likewise. 5032 (vmlaq_n_u16): Likewise. 5033 (vmlaq_n_u32): Likewise. 5034 (vmlaq_u8): Likewise. 5035 (vmlaq_u16): Likewise. 5036 (vmlaq_u32): Likewise. 5037 (vmls_n_u16): Likewise. 5038 (vmls_n_u32): Likewise. 5039 (vmls_u8): Likewise. 5040 (vmls_u16): Likewise. 5041 (vmls_u32): Likewise. 5042 (vmlsq_n_u16): Likewise. 5043 (vmlsq_n_u32): Likewise. 5044 (vmlsq_u8): Likewise. 5045 (vmlsq_u16): Likewise. 5046 (vmlsq_u32): Likewise. 5047 50482021-11-11 Jan Hubicka <hubicka@ucw.cz> 5049 5050 * ipa-modref.c (modref_summary::useful_p): Check also for side-effects 5051 with looping const/pure. 5052 (modref_summary_lto::useful_p): Likewise. 5053 (merge_call_side_effects): Merge side effects before early exit 5054 for pure/const. 5055 (process_fnspec): Also handle pure functions. 5056 (analyze_call): Do not early exit on looping pure const. 5057 (propagate_unknown_call): Also handle nontrivial SCC as side-effect. 5058 (modref_propagate_in_scc): Update. 5059 50602021-11-11 Richard Biener <rguenther@suse.de> 5061 5062 PR tree-optimization/103190 5063 * tree-ssa-reassoc.c (insert_stmt_after): Only assert on asm goto. 5064 50652021-11-11 Aldy Hernandez <aldyh@redhat.com> 5066 5067 * gimple-range-path.cc (path_range_query::add_copies_to_imports): 5068 Rename to... 5069 (path_range_query::compute_imports): ...this. Adapt it so it can 5070 be passed the imports bitmap instead of working on m_imports. 5071 (path_range_query::compute_ranges): Call compute_imports in all 5072 cases unless an imports bitmap is passed. 5073 * gimple-range-path.h (path_range_query::compute_imports): New. 5074 (path_range_query::add_copies_to_imports): Remove. 5075 * tree-ssa-threadbackward.c (back_threader::resolve_def): Remove. 5076 (back_threader::find_paths_to_names): Inline resolve_def. 5077 (back_threader::find_paths): Call compute_imports. 5078 (back_threader::resolve_phi): Adjust comment. 5079 50802021-11-11 Richard Biener <rguenther@suse.de> 5081 5082 PR tree-optimization/103188 5083 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): 5084 Remove query parameter, split out check for size 5085 optimization. 5086 (ch_base::m_ranger, cb_base::m_query): Remove. 5087 (ch_base::copy_headers): Split processing loop into 5088 analysis around which we allocate and use ranger and 5089 transform where we do not. 5090 (pass_ch::execute): Do not allocate/free ranger here. 5091 (pass_ch_vect::execute): Likewise. 5092 50932021-11-11 Jan Hubicka <hubicka@ucw.cz> 5094 5095 * ipa-pure-const.c (propagate_pure_const): Self recursion is 5096 a side effects. 5097 50982021-11-11 Jan Hubicka <hubicka@ucw.cz> 5099 5100 * cgraph.c (set_noreturn_flag_1): New function. 5101 (cgraph_node::set_noreturn_flag): New member function 5102 * cgraph.h (cgraph_node::set_noreturn_flags): Declare. 5103 * ipa-pure-const.c (pass_local_pure_const::execute): Use it. 5104 51052021-11-11 Aldy Hernandez <aldyh@redhat.com> 5106 Richard Biener <rguenther@suse.de> 5107 5108 * tree-ssa-loop-ch.c (entry_loop_condition_is_static): Resolve 5109 statically to the edge remaining in the loop. 5110 51112021-11-11 Richard Biener <rguenther@suse.de> 5112 5113 PR middle-end/103181 5114 * tree-eh.c (operation_could_trap_helper_p): Properly 5115 check vector constants for a zero element for integer 5116 division. Separate floating point and integer division code. 5117 51182021-11-11 Jakub Jelinek <jakub@redhat.com> 5119 5120 PR debug/101378 5121 * dwarf2out.c (field_byte_offset): Do the PCC_BITFIELD_TYPE_MATTERS 5122 handling only for DECL_BIT_FIELD_TYPE decls. 5123 51242021-11-11 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 5125 5126 PR target/102376 5127 * config/aarch64/aarch64.c (aarch64_process_target_attr): Check if 5128 token is arch extension without leading '+' and emit appropriate 5129 diagnostic for the same. 5130 51312021-11-11 Jakub Jelinek <jakub@redhat.com> 5132 5133 * tree.h (OMP_CLAUSE_NUM_TEAMS_EXPR): Rename to ... 5134 (OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR): ... this. 5135 (OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR): Define. 5136 * tree.c (omp_clause_num_ops): Increase num ops for 5137 OMP_CLAUSE_NUM_TEAMS to 2. 5138 * tree-pretty-print.c (dump_omp_clause): Print optional lower bound 5139 for OMP_CLAUSE_NUM_TEAMS. 5140 * gimplify.c (gimplify_scan_omp_clauses): Gimplify 5141 OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR if non-NULL. 5142 (optimize_target_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR instead 5143 of OMP_CLAUSE_NUM_TEAMS_EXPR. Handle OMP_CLAUSE_NUM_TEAMS_LOWER_EXPR. 5144 * omp-low.c (lower_omp_teams): Use OMP_CLAUSE_NUM_TEAMS_UPPER_EXPR 5145 instead of OMP_CLAUSE_NUM_TEAMS_EXPR. 5146 * omp-expand.c (expand_teams_call, get_target_arguments): Likewise. 5147 51482021-11-11 Richard Biener <rguenther@suse.de> 5149 5150 * cfganal.c (find_pdom): Remove. 5151 (control_dependences::find_control_dependence): Remove 5152 special-casing of entry block, call get_immediate_dominator 5153 directly. 5154 * gimple-predicate-analysis.cc (find_pdom): Remove. 5155 (find_dom): Likewise. 5156 (find_control_equiv_block): Call get_immediate_dominator 5157 directly. 5158 (compute_control_dep_chain): Likewise. 5159 (predicate::init_from_phi_def): Likewise. 5160 51612021-11-11 Richard Biener <rguenther@suse.de> 5162 5163 * cfganal.h (control_dependences::control_dependence_map): 5164 Embed bitmap_head. 5165 (control_dependences::m_bitmaps): New. 5166 * cfganal.c (control_dependences::set_control_dependence_map_bit): 5167 Adjust. 5168 (control_dependences::clear_control_dependence_bitmap): 5169 Likewise. 5170 (control_dependences::find_control_dependence): Do not 5171 find_edge for the abnormal edge test. 5172 (control_dependences::control_dependences): Instead do not 5173 add abnormal edges to the edge list. Adjust. 5174 (control_dependences::~control_dependences): Likewise. 5175 (control_dependences::get_edges_dependent_on): Likewise. 5176 * function-tests.c: Include bitmap.h. 5177 51782021-11-11 Kewen Lin <linkw@linux.ibm.com> 5179 5180 * doc/invoke.texi: Change references to "future cpu" to "power10", 5181 "-mcpu=future" to "-mcpu=power10". Adjust words for float128. 5182 51832021-11-11 Cui,Lili <lili.cui@intel.com> 5184 5185 * config/i386/i386-options.c (m_CORE_AVX2): Remove Alderlake 5186 from m_CORE_AVX2. 5187 (processor_cost_table): Use alderlake_cost for Alderlake. 5188 * config/i386/i386.c (ix86_sched_init_global): Handle Alderlake. 5189 * config/i386/x86-tune-costs.h (struct processor_costs): Add alderlake 5190 cost. 5191 * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Alderlake 5192 issue rate to 4. 5193 (ix86_adjust_cost): Handle Alderlake. 5194 * config/i386/x86-tune.def (X86_TUNE_SCHEDULE): Enable for Alderlake. 5195 (X86_TUNE_PARTIAL_REG_DEPENDENCY): Likewise. 5196 (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): Likewise. 5197 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): Likewise. 5198 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. 5199 (X86_TUNE_MEMORY_MISMATCH_STALL): Likewise. 5200 (X86_TUNE_USE_LEAVE): Likewise. 5201 (X86_TUNE_PUSH_MEMORY): Likewise. 5202 (X86_TUNE_USE_INCDEC): Likewise. 5203 (X86_TUNE_INTEGER_DFMODE_MOVES): Likewise. 5204 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. 5205 (X86_TUNE_USE_SAHF): Likewise. 5206 (X86_TUNE_USE_BT): Likewise. 5207 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. 5208 (X86_TUNE_ONE_IF_CONV_INSN): Likewise. 5209 (X86_TUNE_AVOID_MFENCE): Likewise. 5210 (X86_TUNE_USE_SIMODE_FIOP): Likewise. 5211 (X86_TUNE_EXT_80387_CONSTANTS): Likewise. 5212 (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL): Likewise. 5213 (X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Likewise. 5214 (X86_TUNE_SSE_TYPELESS_STORES): Likewise. 5215 (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. 5216 (X86_TUNE_AVOID_4BYTE_PREFIXES): Likewise. 5217 (X86_TUNE_USE_GATHER): Disable for Alderlake. 5218 (X86_TUNE_AVX256_MOVE_BY_PIECES): Likewise. 5219 (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. 5220 52212021-11-11 liuhongt <hongtao.liu@intel.com> 5222 5223 PR target/103151 5224 * config/i386/sse.md (V_128_256): Extend to V8HF/V16HF. 5225 (avxsizesuffix): Ditto. 5226 52272021-11-11 Kito Cheng <kito.cheng@sifive.com> 5228 5229 * common/config/riscv/riscv-common.c (riscv_subset_list::to_string): Fix 5230 wrong marco checking. 5231 52322021-11-10 Aldy Hernandez <aldyh@redhat.com> 5233 5234 PR tree-optimization/102906 5235 * tree-ssa-loop-ch.c (entry_loop_condition_is_static): New. 5236 (should_duplicate_loop_header_p): Call entry_loop_condition_is_static. 5237 (class ch_base): Add m_ranger and m_query. 5238 (ch_base::copy_headers): Pass m_query to 5239 entry_loop_condition_is_static. 5240 (pass_ch::execute): Allocate and deallocate m_ranger and 5241 m_query. 5242 (pass_ch_vect::execute): Same. 5243 52442021-11-10 Andrew Pinski <apinski@marvell.com> 5245 5246 PR target/103170 5247 * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>): 5248 Use vwcore iterator for the r constraint output string. 5249 52502021-11-10 qing zhao <qing.zhao@oracle.com> 5251 5252 * internal-fn.c (expand_DEFERRED_INIT): Apply pattern initialization 5253 only when have_insn_for return true for the mode. Fix a memory leak. 5254 52552021-11-10 Christophe Lyon <christophe.lyon@foss.st.com> 5256 5257 * config/arm/arm.c (cortexa9_extra_costs, cortexa8_extra_costs, 5258 cortexa5_extra_costs, cortexa7_extra_costs, 5259 cortexa12_extra_costs, cortexa15_extra_costs, v7m_extra_costs): 5260 Initialize movi, dup and extract costing fields. 5261 52622021-11-10 Aldy Hernandez <aldyh@redhat.com> 5263 5264 * gimple-range-path.cc (path_range_query::path_range_query): Do 5265 not init m_path. 5266 (path_range_query::dump): Change m_path uses to non-pointer. 5267 (path_range_query::defined_outside_path): Same. 5268 (path_range_query::set_path): Same. 5269 (path_range_query::add_copies_to_imports): Same. 5270 (path_range_query::range_of_stmt): Same. 5271 (path_range_query::compute_outgoing_relations): Same. 5272 (path_range_query::compute_ranges): Imports are now optional. 5273 Implement overload that takes an edge. 5274 * gimple-range-path.h (class path_range_query): Make imports 5275 optional for compute_ranges. Add compute_ranges(edge) overload. 5276 Make m_path an auto_vec instead of a pointer and adjust 5277 accordingly. 5278 52792021-11-10 Tamar Christina <tamar.christina@arm.com> 5280 5281 * tree-vectorizer.h (struct scalar_cond_masked_key): Add inverted_p. 5282 (default_hash_traits<scalar_conf_masked_key>): Likewise. 5283 * tree-vect-stmts.c (vectorizable_condition): Check if inverse of mask 5284 is live. 5285 * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree): 5286 Register mask inverses. 5287 52882021-11-10 Tamar Christina <tamar.christina@arm.com> 5289 5290 * tree-vectorizer.c (vectorize_loops): Do local CSE through RPVN upon 5291 successful vectorization. 5292 52932021-11-10 Andrew MacLeod <amacleod@redhat.com> 5294 5295 * gimple-range-cache.cc (sbr_vector::grow): New. 5296 (sbr_vector::set_bb_range): Call grow. 5297 (sbr_vector::get_bb_range): Same. 5298 (sbr_vector::bb_range_p): Remove assert. 5299 53002021-11-10 Tamar Christina <tamar.christina@arm.com> 5301 5302 * config/aarch64/aarch64-simd.md (*aarch64_topbits_shuffle<mode>_le 5303 ,*aarch64_topbits_shuffle<mode>_be): Remove. 5304 53052021-11-10 Jan Hubicka <jh@suse.cz> 5306 5307 * ipa-modref.c: Include tree-eh.h 5308 (modref_summary::modref_summary): Initialize side_effects. 5309 (struct modref_summary_lto): New bool field side_effects. 5310 (modref_summary_lto::modref_summary_lto): Initialize side_effects. 5311 (modref_summary::dump): Dump side_effects. 5312 (modref_summary_lto::dump): Dump side_effects. 5313 (merge_call_side_effects): Merge side effects. 5314 (process_fnspec): Calls to non-const/pure or looping 5315 function is a side effect. 5316 (analyze_call): Self-recursion is a side-effect; handle 5317 special builtins. 5318 (analyze_load): Watch for volatile and throwing memory. 5319 (analyze_store): Likewise. 5320 (analyze_stmt): Watch for volatitle asm. 5321 (analyze_function): Handle side_effects. 5322 (modref_summaries::duplicate): Duplicate side_effects. 5323 (modref_summaries_lto::duplicate): Likewise. 5324 (modref_write): Stream side_effects. 5325 (read_section): Likewise. 5326 (update_signature): Update. 5327 (propagate_unknown_call): Handle side_effects. 5328 (modref_propagate_in_scc): Likewise. 5329 * ipa-modref.h (struct modref_summary): Add side_effects. 5330 * ipa-pure-const.c (special_builtin_state): Rename to ... 5331 (builtin_safe_for_const_function_p): ... this one. 5332 (check_call): Update. 5333 (finite_function_p): Break out from ... 5334 (propagate_pure_const): ... here 5335 * ipa-utils.h (finite_function): Declare. 5336 53372021-11-10 Lucas A. M. Magalh��es <lamm@linux.ibm.com> 5338 5339 * config.gcc (powerpc*-*-*): Remove -rpath from 5340 --with-advance-toolchain. 5341 53422021-11-10 Marek Polacek <polacek@redhat.com> 5343 5344 PR c++/101940 5345 * attribs.c (struct scoped_attributes): Add a bool member. 5346 (lookup_scoped_attribute_spec): Forward declare. 5347 (register_scoped_attributes): New bool parameter, defaulted to 5348 false. Use it. 5349 (handle_ignored_attributes_option): New function. 5350 (free_attr_data): New function. 5351 (init_attributes): Call handle_ignored_attributes_option. 5352 (attr_namespace_ignored_p): New function. 5353 (decl_attributes): Check attr_namespace_ignored_p before 5354 warning. 5355 * attribs.h (free_attr_data): Declare. 5356 (register_scoped_attributes): Adjust declaration. 5357 (handle_ignored_attributes_option): Declare. 5358 (canonicalize_attr_name): New function template. 5359 (canonicalize_attr_name): Use it. 5360 * common.opt (Wattributes=): New option with a variable. 5361 * doc/extend.texi: Document #pragma GCC diagnostic ignored_attributes. 5362 * doc/invoke.texi: Document -Wno-attributes=. 5363 * opts.c (common_handle_option) <case OPT_Wattributes_>: Handle. 5364 * plugin.h (register_scoped_attributes): Adjust declaration. 5365 * toplev.c (compile_file): Call free_attr_data. 5366 53672021-11-10 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 5368 5369 * config/arm/arm-cpus.in (cortex-a710): New CPU. 5370 * config/arm/arm-tables.opt: Regenerate. 5371 * config/arm/arm-tune.md: Regenerate. 5372 * doc/invoke.texi: Update docs. 5373 53742021-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com> 5375 5376 * config/aarch64/aarch64-builtins.c 5377 (aarch64_general_gimple_fold_builtin): Mark argument as unused. 5378 53792021-11-10 Martin Liska <mliska@suse.cz> 5380 5381 * lto-wrapper.c (merge_and_complain): Make the first argument 5382 a reference type. 5383 53842021-11-10 Richard Sandiford <richard.sandiford@arm.com> 5385 5386 * config/aarch64/iterators.md (optab): Use fmax_nan instead of 5387 smax_nan and fmin_nan instead of smin_nan. 5388 (maxmin_uns): Rename to... 5389 (fmaxmin): ...this and make the same changes. Remove entries 5390 unrelated to fmax* and fmin*. 5391 * config/aarch64/aarch64.md (<maxmin_uns><mode>3): Rename to... 5392 (<fmaxmin><mode>3): ...this. 5393 * config/aarch64/aarch64-simd.md (aarch64_<maxmin_uns>p<mode>): 5394 Rename to... 5395 (aarch64_<optab>p<mode>): ...this. 5396 (<maxmin_uns><mode>3): Rename to... 5397 (<fmaxmin><mode>3): ...this. 5398 (reduc_<maxmin_uns>_scal_<mode>): Rename to... 5399 (reduc_<optab>_scal_<mode>): ...this and update gen* call. 5400 (aarch64_reduc_<maxmin_uns>_internal<mode>): Rename to... 5401 (aarch64_reduc_<optab>_internal<mode>): ...this. 5402 (aarch64_reduc_<maxmin_uns>_internalv2si): Rename to... 5403 (aarch64_reduc_<optab>_internalv2si): ...this. 5404 * config/aarch64/aarch64-sve.md (<maxmin_uns><mode>3): Rename to... 5405 (<fmaxmin><mode>3): ...this. 5406 * config/aarch64/aarch64-simd-builtins.def (smax_nan, smin_nan) 5407 Rename to... 5408 (fmax_nan, fmin_nan): ...this. 5409 * config/aarch64/arm_neon.h (vmax_f32, vmax_f64, vmaxq_f32, vmaxq_f64) 5410 (vmin_f32, vmin_f64, vminq_f32, vminq_f64, vmax_f16, vmaxq_f16) 5411 (vmin_f16, vminq_f16): Update accordingly. 5412 54132021-11-10 Richard Sandiford <richard.sandiford@arm.com> 5414 5415 * tree-vectorizer.h (vector_costs::finish_cost): Take the 5416 corresponding scalar costs as a parameter. 5417 (finish_cost): Likewise. 5418 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) 5419 (vect_estimate_min_profitable_iters): Update accordingly. 5420 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Likewise. 5421 * tree-vectorizer.c (vector_costs::finish_cost): Likewise. 5422 * config/aarch64/aarch64.c (aarch64_vector_costs::finish_cost): 5423 Likewise. 5424 * config/rs6000/rs6000.c (rs6000_cost_data::finish_cost): Likewise. 5425 54262021-11-10 Richard Sandiford <richard.sandiford@arm.com> 5427 5428 * tree-vectorizer.h (_loop_vec_info::scalar_costs): New member 5429 variable. 5430 (_loop_vec_info::single_scalar_iteration_cost): Delete. 5431 (LOOP_VINFO_SINGLE_SCALAR_ITERATION_COST): Delete. 5432 (vector_costs::total_cost): New function. 5433 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update 5434 after above changes. 5435 (_loop_vec_info::~_loop_vec_info): Delete scalar_costs. 5436 (vect_compute_single_scalar_iteration_cost): Store the costs 5437 in loop_vinfo->scalar_costs. 5438 (vect_estimate_min_profitable_iters): Get the scalar cost from 5439 loop_vinfo->scalar_costs. 5440 54412021-11-10 Richard Sandiford <richard.sandiford@arm.com> 5442 5443 * tree-vectorizer.h (vector_costs::better_main_loop_than_p) 5444 (vector_costs::better_epilogue_loop_than_p) 5445 (vector_costs::compare_inside_loop_cost) 5446 (vector_costs::compare_outside_loop_cost): Likewise. 5447 * tree-vectorizer.c (vector_costs::better_main_loop_than_p) 5448 (vector_costs::better_epilogue_loop_than_p) 5449 (vector_costs::compare_inside_loop_cost) 5450 (vector_costs::compare_outside_loop_cost): New functions, 5451 containing code moved from... 5452 * tree-vect-loop.c (vect_better_loop_vinfo_p): ...here. 5453 54542021-11-10 Richard Sandiford <richard.sandiford@arm.com> 5455 5456 * tree-vectorizer.h (_loop_vec_info): Remove vec_outside_cost 5457 and vec_inside_cost. 5458 (vector_costs::outside_cost): New function. 5459 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update 5460 after above. 5461 (vect_estimate_min_profitable_iters): Likewise. 5462 (vect_better_loop_vinfo_p): Get the inside and outside costs 5463 from the loop_vec_infos' vector_costs. 5464 54652021-11-10 Richard Sandiford <richard.sandiford@arm.com> 5466 5467 * tree-vectorizer.h (vec_info::target_cost_data): Replace with... 5468 (_loop_vec_info::vector_costs): ...this. 5469 (LOOP_VINFO_TARGET_COST_DATA): Delete. 5470 * tree-vectorizer.c (vec_info::vec_info): Remove target_cost_data 5471 initialization. 5472 (vec_info::~vec_info): Remove corresponding delete. 5473 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 5474 vector_costs to null. 5475 (_loop_vec_info::~_loop_vec_info): Delete vector_costs. 5476 (vect_analyze_loop_operations): Update after above changes. 5477 (vect_analyze_loop_2): Likewise. 5478 (vect_estimate_min_profitable_iters): Likewise. 5479 * tree-vect-slp.c (vect_slp_analyze_operations): Likewise. 5480 54812021-11-10 Jan Hubicka <hubicka@ucw.cz> 5482 5483 * tree-core.h (EAF_DIRECT): Remove. 5484 (EAF_NOCLOBBER): Remove. 5485 (EAF_UNUSED): Remove. 5486 (EAF_NOESCAPE): Remove. 5487 (EAF_NO_DIRECT_CLOBBER): New. 5488 (EAF_NO_INDIRECT_CLOBBER): New. 5489 (EAF_NODIRECTESCAPE): Remove. 5490 (EAF_NO_DIRECT_ESCAPE): New. 5491 (EAF_NO_INDIRECT_ESCAPE): New. 5492 (EAF_NOT_RETURNED): Remove. 5493 (EAF_NOT_RETURNED_INDIRECTLY): New. 5494 (EAF_NOREAD): Remove. 5495 (EAF_NO_DIRECT_READ): New. 5496 (EAF_NO_INDIRECT_READ): New. 5497 * gimple.c (gimple_call_arg_flags): Update for new flags. 5498 (gimple_call_retslot_flags): Update for new flags. 5499 * ipa-modref.c (dump_eaf_flags): Likewise. 5500 (remove_useless_eaf_flags): Likewise. 5501 (deref_flags): Likewise. 5502 (modref_lattice::init): Likewise. 5503 (modref_lattice::merge): Likewise. 5504 (modref_lattice::merge_direct_load): Likewise. 5505 (modref_lattice::merge_direct_store): Likewise. 5506 (modref_eaf_analysis::merge_call_lhs_flags): Likewise. 5507 (callee_to_caller_flags): Likewise. 5508 (modref_eaf_analysis::analyze_ssa_name): Likewise. 5509 (modref_eaf_analysis::propagate): Likewise. 5510 (modref_merge_call_site_flags): Likewise. 5511 * ipa-modref.h (interposable_eaf_flags): Likewise. 5512 * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1) Likewise. 5513 * tree-ssa-structalias.c (handle_call_arg): Likewise. 5514 (handle_rhs_call): Likewise. 5515 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Likewise. 5516 55172021-11-10 Tamar Christina <tamar.christina@arm.com> 5518 5519 * tree-vect-slp-patterns.c (complex_mul_pattern::matches): Remove l1node. 5520 55212021-11-10 Andre Vieira <andre.simoesdiasvieira@arm.com> 5522 5523 * config/aarch64/aarch64-builtins.c 5524 (aarch64_general_gimple_fold_builtin): Change pointer alignment and 5525 alias. 5526 55272021-11-10 Jan Hubicka <jh@suse.cz> 5528 5529 * ipa-modref-tree.h (modref_tree::remap_params): Fix off-by-one error. 5530 55312021-11-10 H.J. Lu <hongjiu.lu@intel.com> 5532 Hongtao Liu <hongtao.liu@intel.com> 5533 5534 PR middle-end/102566 5535 * match.pd (nop_atomic_bit_test_and_p): New match. 5536 * tree-ssa-ccp.c (convert_atomic_bit_not): New function. 5537 (gimple_nop_atomic_bit_test_and_p): New prototype. 5538 (optimize_atomic_bit_test_and): Transform equivalent, but slighly 5539 different cases to their canonical forms. 5540 55412021-11-10 liuhongt <hongtao.liu@intel.com> 5542 5543 PR tree-optimization/103126 5544 * tree-vect-loop.c (neutral_op_for_reduction): Remove static. 5545 * tree-vectorizer.h (neutral_op_for_reduction): Declare. 5546 * tree-if-conv.c : Include tree-vectorizer.h. 5547 (is_cond_scalar_reduction): Handle 5548 BIT_XOR_EXPR/BIT_IOR_EXPR/BIT_AND_EXPR. 5549 (convert_scalar_cond_reduction): Ditto. 5550 55512021-11-10 konglin1 <lingling.kong@intel.com> 5552 5553 * config/i386/sse.md (cmul<conj_op><mode>3): add new define_expand. 5554 (cmla<conj_op><mode>4): Likewise 5555 55562021-11-10 Aldy Hernandez <aldyh@redhat.com> 5557 5558 * tree-ssa-threadedge.c: Do not include 5559 gimple-ssa-evrp-analyze.h. 5560 * value-pointer-equiv.cc: Same. 5561 55622021-11-10 Aldy Hernandez <aldyh@redhat.com> 5563 5564 * tree-ssa-threadbackward.c 5565 (back_threader::maybe_register_path_dump): Abstract path dumping... 5566 (dump_path): ...here. 5567 (back_threader::resolve_phi): Call dump_path. 5568 (debug): Same. 5569 55702021-11-10 konglin1 <lingling.kong@intel.com> 5571 5572 * config/i386/sse.md (fma_<complexpairopname>_<mode>_pair): 5573 Add new define_insn. 5574 (fma_<mode>_fmaddc_bcst): Add new define_insn_and_split. 5575 (fma_<mode>_fcmaddc_bcst): Likewise 5576 55772021-11-10 liuhongt <hongtao.liu@intel.com> 5578 5579 PR target/102464 5580 * match.pd: Simplify (trunc)fmax/fmin((extend)a, (extend)b) to 5581 MAX/MIN(a,b) 5582 55832021-11-10 Andrew Pinski <apinski@marvell.com> 5584 5585 PR target/101529 5586 * config/aarch64/aarch64.c (aarch64_evpc_ins): Don't use target 5587 as an input, use original one. 5588 55892021-11-10 Sandra Loosemore <sandra@codesourcery.com> 5590 5591 * config/nios2/nios2.c (nios2_can_inline_p): New. 5592 (TARGET_CAN_INLINE_P): Define. 5593 55942021-11-09 Bill Schmidt <wschmidt@linux.ibm.com> 5595 5596 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): 5597 Disable gimple fold for RS6000_BIF_{XVMINDP,XVMINSP,VMINFP} and 5598 RS6000_BIF_{XVMAXDP,XVMAXSP,VMAXFP} when fast-math is not set. 5599 (lxvrse_expand_builtin): Modify the expansion for sign extension. 5600 All extensions are done within VSX registers. 5601 56022021-11-09 Andrew Pinski <apinski@marvell.com> 5603 5604 PR tree-optimization/10352 5605 * match.pd: Remove check of TYPE_PRECISION for 5606 the a?0:pow2 case. 5607 56082021-11-09 Andrew MacLeod <amacleod@redhat.com> 5609 5610 * function.c (allocate_struct_function): Don't set x_range_query. 5611 * function.h (get_range_query): Move to value-query.h. 5612 * gimple-range.cc (enable_ranger): Check that query is currently NULL. 5613 (disable_ranger): Clear function current query field. 5614 * value-query.cc (get_global_range_query): Relocate to: 5615 * value-query.h (get_global_range_query): Here and inline. 5616 (get_range_query): Relocate here from function.h. 5617 56182021-11-09 Aldy Hernandez <aldyh@redhat.com> 5619 5620 * tree-ssa-threadbackward.c 5621 (back_threader::maybe_register_path_dump): New. 5622 (back_threader::maybe_register_path): Call maybe_register_path_dump. 5623 56242021-11-09 Aldy Hernandez <aldyh@redhat.com> 5625 5626 * tree-ssa-threadbackward.c (back_threader::maybe_register_path): 5627 Return NULL when unprofitable. 5628 56292021-11-09 Martin Jambor <mjambor@suse.cz> 5630 5631 * tree.h (build_debug_expr_decl): Declare. 5632 * tree.c (build_debug_expr_decl): New function. 5633 * cfgexpand.c (avoid_deep_ter_for_debug): Use build_debug_expr_decl 5634 instead of building a DEBUG_EXPR_DECL. 5635 * ipa-param-manipulation.c 5636 (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. 5637 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Likewise. 5638 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. 5639 * tree-ssa-phiopt.c (spaceship_replacement): Likewise. 5640 * tree-ssa-reassoc.c (make_new_ssa_for_def): Likewise. 5641 56422021-11-09 Bill Schmidt <wschmidt@linux.ibm.com> 5643 5644 * config/rs6000/rs6000-call.c (rs6000_type_string): New function. 5645 (def_builtin): Change debug formatting for easier parsing and 5646 include more information. 5647 (rs6000_init_builtins): Add dump of autogenerated builtins. 5648 (altivec_init_builtins): Dump __builtin_altivec_mask_for_load for 5649 completeness. 5650 56512021-11-09 Marek Polacek <polacek@redhat.com> 5652 5653 * ipa-modref.c (analyze_parms): Fix a typo. 5654 56552021-11-09 Kito Cheng <kito.cheng@sifive.com> 5656 5657 PR target/102957 5658 * common/config/riscv/riscv-common.c (multi_letter_subset_rank): Remove 5659 assertion for Z*-ext. 5660 56612021-11-09 Jan Hubicka <hubicka@ucw.cz> 5662 5663 * ipa-modref.c (analyze_parms): Add past_flags, past_retslot_flags 5664 and past_static_chain; merge past summary with current one. 5665 (analyze_function): Update. 5666 56672021-11-09 Aldy Hernandez <aldyh@redhat.com> 5668 5669 * doc/invoke.texi (Invoking GCC): Document --param=threader-debug. 5670 56712021-11-09 Martin Liska <mliska@suse.cz> 5672 5673 * print-rtl.c (rtx_writer::rtx_writer): Make the compilation 5674 conditional based on 5675 * print-rtl.h (class rtx_writer): Likewise. 5676 56772021-11-09 Thomas Schwinge <thomas@codesourcery.com> 5678 5679 * input.h (location_hash): Use 'BUILTINS_LOCATION' as spare value 5680 for 'Deleted'. Turn into a '#define'. 5681 56822021-11-09 Aldy Hernandez <aldyh@redhat.com> 5683 5684 * gimple-range-path.cc (path_range_query::dump): Clean up. 5685 (path_range_query::compute_ranges): Same. 5686 * value-relation.cc (path_oracle::dump): Same. 5687 56882021-11-09 Aldy Hernandez <aldyh@redhat.com> 5689 5690 * dumpfile.c (dump_options): Remove TDF_THREADING entry. 5691 * dumpfile.h (enum dump_flag): Remove TDF_THREADING and adjust 5692 remaining entries. 5693 * flag-types.h (enum threader_debug): New. 5694 * gimple-range-path.cc (DEBUG_SOLVER): Use param_threader_debug. 5695 * params.opt: Add entry for --param=threader-debug=. 5696 56972021-11-09 Thomas Schwinge <thomas@codesourcery.com> 5698 5699 PR middle-end/101204 5700 PR other/103157 5701 * diagnostic-spec.h (typedef xint_hash_t): Turn into... 5702 (struct xint_hash_t): ... this. 5703 * doc/gty.texi: Update. 5704 57052021-11-09 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 5706 5707 * config/arm/arm-cpus.in (armv9): New define. 5708 (ARMv9a): New group. 5709 (armv9-a): New arch definition. 5710 * config/arm/arm-tables.opt: Regenerate. 5711 * config/arm/arm.h (BASE_ARCH_9A): New arch enum value. 5712 * config/arm/t-aprofile: Added armv9-a and armv9+simd. 5713 * config/arm/t-arm-elf: Added arm9-a, v9_fps and all_v9_archs 5714 to MULTILIB_MATCHES. 5715 * config/arm/t-multilib: Added v9_a_nosimd_variants and 5716 v9_a_simd_variants to MULTILIB_MATCHES. 5717 * doc/invoke.texi: Update docs. 5718 57192021-11-09 Martin Jambor <mjambor@suse.cz> 5720 5721 PR ipa/103132 5722 * ipa-param-manipulation.c (replace_with_mapped_expr): Early 5723 return with error_mark_mode when part of expression is mapped to 5724 NULL. 5725 (ipa_param_body_adjustments::remap_with_debug_expressions): Set 5726 mapped value to NULL if walk_tree returns error_mark_mode. 5727 57282021-11-09 Aldy Hernandez <aldyh@redhat.com> 5729 5730 * tree-ssa-strlen.c (compare_nonzero_chars): Pass statement 5731 context to ranger. 5732 (get_addr_stridx): Same. 5733 (get_stridx): Same. 5734 (get_range_strlen_dynamic): Same. 5735 (handle_builtin_strlen): Same. 5736 (handle_builtin_strchr): Same. 5737 (handle_builtin_strcpy): Same. 5738 (maybe_diag_stxncpy_trunc): Same. 5739 (handle_builtin_stxncpy_strncat): Same. 5740 (handle_builtin_memcpy): Same. 5741 (handle_builtin_strcat): Same. 5742 (handle_alloc_call): Same. 5743 (handle_builtin_memset): Same. 5744 (handle_builtin_string_cmp): Same. 5745 (handle_pointer_plus): Same. 5746 (count_nonzero_bytes_addr): Same. 5747 (count_nonzero_bytes): Same. 5748 (handle_store): Same. 5749 (fold_strstr_to_strncmp): Same. 5750 (handle_integral_assign): Same. 5751 (check_and_optimize_stmt): Same. 5752 (class strlen_dom_walker): Replace evrp with ranger. 5753 (strlen_dom_walker::before_dom_children): Remove evrp. 5754 (strlen_dom_walker::after_dom_children): Remove evrp. 5755 * gimple-ssa-warn-access.cc (maybe_check_access_sizes): 5756 Restrict sprintf output. 5757 57582021-11-09 Martin Liska <mliska@suse.cz> 5759 5760 * genconditions.c (write_one_condition): Add const qualifier 5761 to pointer casting. 5762 57632021-11-09 Jeff Law <jeffreyalaw@gmail.com> 5764 5765 * match.pd: New pattern to simplify (1 << n) & M ==/!= 0 for M 5766 being a power of 2. 5767 57682021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> 5769 5770 * config/rs6000/rs6000-builtin-new.def (VEC_INIT_V16QI): Use 5771 escape-newline support. 5772 (VEC_INIT_V4SI): Likewise. 5773 (VEC_INIT_V8HI): Likewise. 5774 (PACK_V1TI): Likewise. 5775 (DIVDEU): Likewise. 5776 (VFIRSTMISMATCHOREOSINDEX_V16QI): Likewise. 5777 (VFIRSTMISMATCHOREOSINDEX_V8HI): Likewise. 5778 (VFIRSTMISMATCHOREOSINDEX_V4SI): Likewise. 5779 (CMPRB2): Likewise. 5780 (VSTDCP): Likewise. 5781 (VSIEDP): Likewise. 5782 (FMAF128_ODD): Likewise. 5783 (VSCEQPUO): Likewise. 5784 (VSIEQP): Likewise. 5785 (VSIEQPF): Likewise. 5786 (VSTDCQP): Likewise. 5787 (PACK_TD): Likewise. 5788 (TABORTDC): Likewise. 5789 (TABORTDCI): Likewise. 5790 (SE_LXVRBX): Likewise. 5791 (SE_LXVRHX): Likewise. 5792 (SE_LXVRWX): Likewise. 5793 (SE_LXVRDX): Likewise. 5794 (VREPLACE_UN_UV2DI): Likewise. 5795 (VREPLACE_UN_UV4SI): Likewise. 5796 (VREPLACE_UN_V2DI): Likewise. 5797 (VREPLACE_ELT_UV2DI): Likewise. 5798 (VREPLACE_ELT_V2DI): Likewise. 5799 (ZE_LXVRBX): Likewise. 5800 (ZE_LXVRHX): Likewise. 5801 (ZE_LXVRWX): Likewise. 5802 (ZE_LXVRDX): Likewise. 5803 (CFUGED): Likewise. 5804 (CNTLZDM): Likewise. 5805 (CNTTZDM): Likewise. 5806 (PDEPD): Likewise. 5807 (PEXTD): Likewise. 5808 (PMXVBF16GER2): Likewise. 5809 (PMXVBF16GER2_INTERNAL): Likewise. 5810 (PMXVBF16GER2NN): Likewise. 5811 (PMXVBF16GER2NN_INTERNAL): Likewise. 5812 (PMXVBF16GER2NP): Likewise. 5813 (PMXVBF16GER2NP_INTERNAL): Likewise. 5814 (PMXVBF16GER2PN): Likewise. 5815 (PMXVBF16GER2PN_INTERNAL): Likewise. 5816 (PMXVBF16GER2PP): Likewise. 5817 (PMXVBF16GER2PP_INTERNAL): Likewise. 5818 (PMXVF16GER2): Likewise. 5819 (PMXVF16GER2_INTERNAL): Likewise. 5820 (PMXVF16GER2NN): Likewise. 5821 (PMXVF16GER2NN_INTERNAL): Likewise. 5822 (PMXVF16GER2NP): Likewise. 5823 (PMXVF16GER2NP_INTERNAL): Likewise. 5824 (PMXVF16GER2PN): Likewise. 5825 (PMXVF16GER2PN_INTERNAL): Likewise. 5826 (PMXVF16GER2PP): Likewise. 5827 (PMXVF16GER2PP_INTERNAL): Likewise. 5828 (PMXVF32GER_INTERNAL): Likewise. 5829 (PMXVF32GERNN): Likewise. 5830 (PMXVF32GERNN_INTERNAL): Likewise. 5831 (PMXVF32GERNP): Likewise. 5832 (PMXVF32GERNP_INTERNAL): Likewise. 5833 (PMXVF32GERPN): Likewise. 5834 (PMXVF32GERPN_INTERNAL): Likewise. 5835 (PMXVF32GERPP): Likewise. 5836 (PMXVF32GERPP_INTERNAL): Likewise. 5837 (PMXVF64GER): Likewise. 5838 (PMXVF64GER_INTERNAL): Likewise. 5839 (PMXVF64GERNN): Likewise. 5840 (PMXVF64GERNN_INTERNAL): Likewise. 5841 (PMXVF64GERNP): Likewise. 5842 (PMXVF64GERNP_INTERNAL): Likewise. 5843 (PMXVF64GERPN): Likewise. 5844 (PMXVF64GERPN_INTERNAL): Likewise. 5845 (PMXVF64GERPP): Likewise. 5846 (PMXVF64GERPP_INTERNAL): Likewise. 5847 (PMXVI16GER2): Likewise. 5848 (PMXVI16GER2_INTERNAL): Likewise. 5849 (PMXVI16GER2PP): Likewise. 5850 (PMXVI16GER2PP_INTERNAL): Likewise. 5851 (PMXVI16GER2S): Likewise. 5852 (PMXVI16GER2S_INTERNAL): Likewise. 5853 (PMXVI16GER2SPP): Likewise. 5854 (PMXVI16GER2SPP_INTERNAL): Likewise. 5855 (PMXVI4GER8): Likewise. 5856 (PMXVI4GER8_INTERNAL): Likewise. 5857 (PMXVI4GER8PP): Likewise. 5858 (PMXVI4GER8PP_INTERNAL): Likewise. 5859 (PMXVI8GER4): Likewise. 5860 (PMXVI8GER4_INTERNAL): Likewise. 5861 (PMXVI8GER4PP): Likewise. 5862 (PMXVI8GER4PP_INTERNAL): Likewise. 5863 (PMXVI8GER4SPP): Likewise. 5864 (PMXVI8GER4SPP_INTERNAL): Likewise. 5865 * config/rs6000/rs6000-gen-builtins.c (MAXLINES): New macro. 5866 (linebuf): Increase size. 5867 (lines): New variable. 5868 (lastline): Likewise. 5869 (real_line_pos): New function. 5870 (diag): Change signature. 5871 (bif_diag): Change signature; support escape-newline handling. 5872 (ovld_diag): Likewise. 5873 (fatal): Move earlier. 5874 (consume_whitespace): Adjust diag call. 5875 (advance_line): Add escape-newline handling; call fatal. 5876 (safe_inc_pos): Adjust diag call. 5877 (match_identifier): Likewise. 5878 (match_integer): Likewise. 5879 (match_to_right_bracket): Call fatal instead of diag; adjust diag 5880 call. 5881 (match_basetype): Adjust diag calls. 5882 (match_bracketed_pair): Likewise. 5883 (match_const_restriction): Likewise. 5884 (match_type): Likewise. 5885 (parse_args): Likewise. 5886 (parse_bif_attrs): Likewise. 5887 (complete_vector_type): Likewise. 5888 (complete_base_type): Likewise. 5889 (parse_prototype): Likewise. 5890 (parse_bif_entry): Likewise. 5891 (parse_bif_stanza): Likewise. 5892 (parse_ovld_entry): Likewise. 5893 (parse_ovld_stanza): Likewise. 5894 (main): Allocate buffers for lines[]. 5895 58962021-11-08 Eric Botcazou <ebotcazou@adacore.com> 5897 5898 * config/i386/i386.c (legitimize_pic_address): Adjust comment and 5899 use the REG argument on the CM_LARGE_PIC code path as well. 5900 * config/i386/predicates.md (gotoff_operand): Do not treat VxWorks 5901 specially with the large code models. 5902 59032021-11-08 Jan Hubicka <hubicka@ucw.cz> 5904 5905 * gimple.c (gimple_call_static_chain_flags): Revert the workaround 5906 allowing interposition since issues with binds_to_local_def were 5907 hopefully solved. 5908 59092021-11-08 Andrew MacLeod <amacleod@redhat.com> 5910 5911 PR tree-optimization/103122 5912 * gimple-range.cc (gimple_ranger::range_of_expr): Request the cache 5913 entry with "calulate new values" set to false. 5914 59152021-11-08 Jan Hubicka <hubicka@ucw.cz> 5916 5917 * builtins.c (is_simple_builtin): Add builitin_dwarf_cfa 5918 and builtin_return_address. 5919 (builtin_fnspec): Annotate builtin_return, 5920 bulitin_eh_pointer, builtin_eh_filter, builtin_unwind_resume, 5921 builtin_cxa_end_cleanup, builtin_eh_copy_values, 5922 builtin_frame_address, builtin_apply_args, 5923 builtin_asan_before_dynamic_init, builtin_asan_after_dynamic_init, 5924 builtin_prefetch, builtin_dwarf_cfa, builtin_return_addrss 5925 as ".c" 5926 * ipa-pure-const.c (special_builtin_state): Add builtin_dwarf_cfa 5927 and builtin_return_address. 5928 59292021-11-08 Jan Hubicka <hubicka@ucw.cz> 5930 5931 PR tree-optimization/103177 5932 * passes.def: Move uncprop after pure/const and modref. 5933 59342021-11-08 Martin Jambor <mjambor@suse.cz> 5935 5936 PR ipa/103099 5937 PR ipa/103107 5938 * tree-inline.c (remap_gimple_stmt): Unshare the expression without 5939 location before invoking remap_with_debug_expressions on it. 5940 * ipa-param-manipulation.c 5941 (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. 5942 59432021-11-08 David Edelsohn <dje.gcc@gmail.com> 5944 5945 * config/rs6000/vsx.md (vsx_splat_v4si_di): Revert "wa" 5946 constraint to "we". 5947 59482021-11-08 Richard Biener <rguenther@suse.de> 5949 5950 * cfgloop.c (verify_loop_structure): Use a temporary BB flag 5951 instead of an sbitmap to cache irreducible state. 5952 59532021-11-08 Aldy Hernandez <aldyh@redhat.com> 5954 5955 PR tree-optimization/103120 5956 * gimple-range-path.cc (path_range_query::range_defined_in_block): 5957 Bail if there's a cache entry. 5958 59592021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> 5960 5961 * config/rs6000/rs6000.c (rs6000_builtin_reciprocal): Use 5962 rs6000_builtin_decls_x when appropriate. 5963 (add_condition_to_bb): Likewise. 5964 (rs6000_atomic_assign_expand_fenv): Likewise. 5965 59662021-11-08 Bill Schmidt <wschmidt@linux.ibm.com> 5967 5968 * config/rs6000/rs6000-call.c (rs6000_new_builtin_decl): New function. 5969 (rs6000_builtin_decl): Call it. 5970 59712021-11-08 Martin Liska <mliska@suse.cz> 5972 5973 * cgraph.c (cgraph_node::dump): Dump it from decl. 5974 59752021-11-08 Martin Liska <mliska@suse.cz> 5976 5977 PR gcov-profile/100520 5978 * coverage.c (coverage_compute_profile_id): Strip .gk when 5979 compare debug is used. 5980 * system.h (endswith): New function. 5981 59822021-11-08 Martin Liska <mliska@suse.cz> 5983 5984 * cgraph.c (cgraph_node::dump): Dump static_chain_decl. 5985 59862021-11-08 Thomas Schwinge <thomas@codesourcery.com> 5987 5988 * config/rs6000/rbtree.c: Fix 'Copyright (C) 2020-21' into '2020-2021' 5989 * config/rs6000/rbtree.h: Likewise. 5990 * config/rs6000/rs6000-builtin-new.def: Likewise. 5991 * config/rs6000/rs6000-gen-builtins.c: Likewise. 5992 * config/rs6000/rs6000-overload.def: Likewise. 5993 59942021-11-08 Richard Sandiford <richard.sandiford@arm.com> 5995 5996 * config/aarch64/aarch64.c (aarch64_ldn_stn_vectors): New function. 5997 (aarch64_address_cost): Use it instead of testing for CImode and 5998 XImode directly. 5999 60002021-11-08 Richard Sandiford <richard.sandiford@arm.com> 6001 6002 * genmodes.c (emit_insn_modes_h): Define NUM_MODE_* macros. 6003 * expmed.h (NUM_MODE_INT): Delete in favor of genmodes definitions. 6004 (NUM_MODE_PARTIAL_INT, NUM_MODE_VECTOR_INT): Likewise. 6005 * real.h (real_format_for_mode): Use NUM_MODE_FLOAT and 6006 NUM_MODE_DECIMAL_FLOAT. 6007 (REAL_MODE_FORMAT): Likewise. 6008 60092021-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com> 6010 6011 * tree-vect-loop.c (vect_better_loop_vinfo_p): Change how epilogue loop 6012 costs are compared. 6013 60142021-11-08 Richard Biener <rguenther@suse.de> 6015 6016 * tree-vectorizer.h (vect_create_loop_vinfo): Add main_loop_info 6017 parameter. 6018 * tree-vect-loop.c (vect_create_loop_vinfo): Likewise. Set 6019 LOOP_VINFO_ORIG_LOOP_INFO and conditionalize set of 6020 LOOP_VINFO_NITERS_ASSUMPTIONS. 6021 (vect_analyze_loop_1): Adjust. 6022 (vect_analyze_loop): Move loop constraint setting and 6023 SCEV/niter reset here from vect_create_loop_vinfo to perform 6024 it only once. 6025 (vect_analyze_loop_form): Move dumping of symbolic niters 6026 here from vect_create_loop_vinfo. 6027 60282021-11-08 Jan Hubicka <hubicka@ucw.cz> 6029 6030 * ipa-modref-tree.h (enum modref_special_parms): New enum. 6031 (struct modref_access_node): update for special parms. 6032 (struct modref_ref_node): Likewise. 6033 (struct modref_parm_map): Likewise. 6034 (struct modref_tree): Likewise. 6035 * ipa-modref.c (dump_access): Likewise. 6036 (get_access): Detect static chain. 6037 (parm_map_for_arg): Take tree as arg instead of 6038 stmt and index. 6039 (merge_call_side_effects): Compute map for static chain. 6040 (process_fnspec): Update. 6041 (struct escape_point): Remove retslot_arg and static_chain_arg. 6042 (analyze_parms): Update. 6043 (compute_parm_map): Update. 6044 (propagate_unknown_call): Update. 6045 (modref_propagate_in_scc): Update. 6046 (modref_merge_call_site_flags): Update. 6047 (ipa_merge_modref_summary_after_inlining): Update. 6048 * tree-ssa-alias.c (modref_may_conflict): Handle static chain. 6049 * ipa-modref-tree.c (test_merge): Update. 6050 60512021-11-08 Haochen Gui <guihaoc@gcc.gnu.org> 6052 6053 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Disable 6054 gimple fold for VSX_BUILTIN_XVMINDP, ALTIVEC_BUILTIN_VMINFP, 6055 VSX_BUILTIN_XVMAXDP, ALTIVEC_BUILTIN_VMAXFP when fast-math is not 6056 set. 6057 60582021-11-08 liuhongt <hongtao.liu@intel.com> 6059 6060 PR tree-optimization/103077 6061 * doc/invoke.texi (Options That Control Optimization): 6062 Update documentation for -ftree-loop-vectorize and 6063 -ftree-slp-vectorize which are enabled by default at -02. 6064 60652021-11-08 liuhongt <hongtao.liu@intel.com> 6066 6067 PR target/102464 6068 * match.pd (Simplifcation (trunc)copysign((extend)a, (extend)b) 6069 to .COPYSIGN (a, b)): Add !HONOR_SNANS. 6070 60712021-11-08 liuhongt <hongtao.liu@intel.com> 6072 6073 PR target/102464 6074 * match.pd: Simplify 6075 (trunc)fma ((extend)a, (extend)b, (extend)c) to IFN_FMA (a, b, 6076 c) under flag_unsafe_math_optimizations. 6077 60782021-11-07 Jan Hubicka <hubicka@ucw.cz> 6079 6080 PR ipa/103055 6081 * params.opt (modref-max-depth): Add range. 6082 (modref-max-adjustments): Fix range. 6083 60842021-11-07 Aldy Hernandez <aldyh@redhat.com> 6085 6086 * tree-pass.h (make_pass_vrp_threader): Remove. 6087 * tree-ssa-threadbackward.c 6088 (back_threader_profitability::profitable_path_p): Remove 6089 ASSERT_EXPR references. 6090 * tree-ssa-threadedge.c (jt_state::register_equivs_stmt): Same. 6091 * tree-vrp.c (vrp_folder::simplify_casted_conds): Same. 6092 (execute_vrp): Same. 6093 (class hybrid_threader): Remove. 6094 (hybrid_threader::hybrid_threader): Remove. 6095 (hybrid_threader::~hybrid_threader): Remove. 6096 (hybrid_threader::before_dom_children): Remove. 6097 (hybrid_threader::after_dom_children): Remove. 6098 (execute_vrp_threader): Remove. 6099 (class pass_vrp_threader): Remove. 6100 (make_pass_vrp_threader): Remove. 6101 61022021-11-07 Jan Hubicka <hubicka@ucw.cz> 6103 6104 * gimple.c (gimple_call_arg_flags): Use interposable_eaf_flags. 6105 (gimple_call_retslot_flags): Likewise. 6106 (gimple_call_static_chain_flags): Likewise. 6107 * ipa-modref.c (remove_useless_eaf_flags): Do not remove everything for 6108 NOVOPS. 6109 (modref_summary::useful_p): Likewise. 6110 (modref_summary_lto::useful_p): Likewise. 6111 (analyze_parms): Do not give up on NOVOPS. 6112 (analyze_function): When dumping report chnages in EAF flags 6113 between IPA and local pass. 6114 (modref_merge_call_site_flags): Compute implicit eaf flags 6115 based on callee ecf_flags and fnspec; if the function does not 6116 bind to current defs use interposable_eaf_flags. 6117 (modref_propagate_flags_in_scc): Update. 6118 * ipa-modref.h (interposable_eaf_flags): New function. 6119 61202021-11-07 Bill Schmidt <wschmidt@linux.ibm.com> 6121 6122 * config/rs6000/rs6000-call.c (rs6000_expand_new_builtin): New 6123 forward decl. 6124 (rs6000_invalid_new_builtin): New function. 6125 (rs6000_expand_builtin): Call rs6000_expand_new_builtin. 6126 (rs6000_expand_ldst_mask): New function. 6127 (new_cpu_expand_builtin): Likewise. 6128 (elemrev_icode): Likewise. 6129 (ldv_expand_builtin): Likewise. 6130 (lxvrse_expand_builtin): Likewise. 6131 (lxvrze_expand_builtin): Likewise. 6132 (stv_expand_builtin): Likewise. 6133 (new_mma_expand_builtin): Likewise. 6134 (new_htm_spr_num): Likewise. 6135 (new_htm_expand_builtin): Likewise. 6136 (rs6000_expand_new_builtin): Likewise. 6137 (rs6000_init_builtins): Initialize altivec_builtin_mask_for_load. 6138 61392021-11-07 Jan Hubicka <hubicka@ucw.cz> 6140 6141 * ipa-modref.c (modref_lattice): Add do_dataflow, 6142 changed and propagate_to fields. 6143 (modref_lattice::release): Free propagate_to 6144 (modref_lattice::merge): Do not give up early on unknown 6145 lattice values. 6146 (modref_lattice::merge_deref): Likewise. 6147 (modref_eaf_analysis): Update toplevel comment. 6148 (modref_eaf_analysis::analyze_ssa_name): Record postponned ssa names; 6149 do optimistic dataflow initialization. 6150 (modref_eaf_analysis::merge_with_ssa_name): Build dataflow graph. 6151 (modref_eaf_analysis::propagate): New member function. 6152 (analyze_parms): Update to new API of modref_eaf_analysis. 6153 61542021-11-06 Jan Hubicka <hubicka@ucw.cz> 6155 6156 * cgraph.h (cgraph_node::can_be_discarded_p): Do not 6157 return true on functions from other partition. 6158 61592021-11-06 David Edelsohn <dje.gcc@gmail.com> 6160 6161 * config/rs6000/vsx.md (vsx_splat_v4si): Change constraints to "wa". 6162 (vsx_splat_v4si_di): Change constraint to "wa". 6163 61642021-11-06 Aldy Hernandez <aldyh@redhat.com> 6165 6166 PR tree-optimization/103061 6167 * value-relation.cc (path_oracle::path_oracle): Initialize 6168 m_killed_defs. 6169 (path_oracle::killing_def): Set m_killed_defs. 6170 (path_oracle::query_relation): Do not look at the root oracle for 6171 killed defs. 6172 * value-relation.h (class path_oracle): Add m_killed_defs. 6173 61742021-11-06 Aldy Hernandez <aldyh@redhat.com> 6175 6176 * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): 6177 Remove gotos and other cleanups. 6178 61792021-11-05 Jan Hubicka <hubicka@ucw.cz> 6180 6181 PR ipa/103073 6182 * ipa-modref-tree.h (modref_tree::insert): Do nothing for 6183 paradoxical and zero sized accesses. 6184 61852021-11-05 Jan Hubicka <hubicka@ucw.cz> 6186 6187 PR ipa/103082 6188 * ipa-modref-tree.h (struct modref_access_node): Avoid left shift 6189 of negative value 6190 61912021-11-05 Iain Sandoe <iain@sandoe.co.uk> 6192 6193 * config/darwin.h (ASM_GENERATE_INTERNAL_LABEL): Add LTRAMP 6194 to the list of symbol prefixes that must be made linker- 6195 visible. 6196 61972021-11-05 Iain Sandoe <iain@sandoe.co.uk> 6198 6199 * config.host: Add support for aarch64-*-darwin. 6200 * config/aarch64/host-aarch64-darwin.c: New file. 6201 * config/aarch64/x-darwin: New file. 6202 62032021-11-05 Andrew MacLeod <amacleod@redhat.com> 6204 6205 PR tree-optimization/103093 6206 * gimple-range-gori.cc (range_def_chain::get_imports): Remove assert. 6207 62082021-11-05 Andrew MacLeod <amacleod@redhat.com> 6209 6210 PR tree-optimization/102943 6211 * gimple-range-cache.cc (class update_list): New. 6212 (update_list::add): Replace add_to_update. 6213 (update_list::pop): New. 6214 (ranger_cache::ranger_cache): Adjust. 6215 (ranger_cache::~ranger_cache): Adjust. 6216 (ranger_cache::add_to_update): Delete. 6217 (ranger_cache::propagate_cache): Adjust to new class. 6218 (ranger_cache::propagate_updated_value): Ditto. 6219 (ranger_cache::fill_block_cache): Ditto. 6220 * gimple-range-cache.h (class ranger_cache): Adjust to update class. 6221 62222021-11-05 Richard Biener <rguenther@suse.de> 6223 6224 * tree-vect-loop.c (vect_analyze_loop): Remove obsolete 6225 comment and expand on another one. Combine nested if. 6226 62272021-11-05 John David Anglin <danglin@gcc.gnu.org> 6228 6229 PR libgomp/96661 6230 * config/pa/pa-modes.def: Add OImode integer type. 6231 * config/pa/pa.c (pa_scalar_mode_supported_p): Allow TImode 6232 for TARGET_64BIT. 6233 * config/pa/pa.h (MIN_UNITS_PER_WORD) Define to MIN_UNITS_PER_WORD 6234 to UNITS_PER_WORD if IN_LIBGCC2. 6235 * config/pa/pa.md (addti3, addvti3, subti3, subvti3, negti2, 6236 negvti2, ashlti3, shrpd_internal): New patterns. 6237 Change some multi instruction types to multi. 6238 62392021-11-05 Jakub Jelinek <jakub@redhat.com> 6240 6241 PR bootstrap/100246 6242 * config/i386/i386.h 6243 (stringop_algs::stringop_strategy::stringop_strategy): Make the ctor 6244 constexpr. 6245 62462021-11-05 Wilco Dijkstra <wdijkstr@arm.com> 6247 6248 PR target/103085 6249 * config/aarch64/aarch64.c (aarch64_mov_operand_p): Strip the salt 6250 first. 6251 * config/aarch64/constraints.md: Support const in Usw. 6252 62532021-11-05 John David Anglin <danglin@gcc.gnu.org> 6254 6255 * config/pa/pa.h (PREFERRED_DEBUGGING_TYPE): Define to DWARF2_DEBUG. 6256 * config/pa/pa64-hpux.h (PREFERRED_DEBUGGING_TYPE): Remove define. 6257 62582021-11-05 Richard Biener <rguenther@suse.de> 6259 6260 * tree-vectorizer.h (vec_info_shared::n_stmts): Add. 6261 (LOOP_VINFO_N_STMTS): Likewise. 6262 (vec_info_for_bb): Remove unused function. 6263 * tree-vectorizer.c (vec_info_shared::vec_info_shared): 6264 Initialize n_stmts member. 6265 * tree-vect-loop.c: Remove INCLUDE_FUNCTIONAL. 6266 (vect_create_loop_vinfo): Do not set loop->aux. 6267 (vect_analyze_loop_2): Do not get n_stmts as argument, 6268 instead use LOOP_VINFO_N_STMTS. Set LOOP_VINFO_VECTORIZABLE_P 6269 here. 6270 (vect_analyze_loop_1): Remove callback, get the mode iterator 6271 and autodetected_vector_mode as argument, advancing the 6272 iterator and initializing autodetected_vector_mode here. 6273 (vect_analyze_loop): Split analysis loop into two, first 6274 processing main loops only and then epilogues. 6275 62762021-11-05 Martin Jambor <mjambor@suse.cz> 6277 6278 * ipa-prop.c (compute_complex_assign_jump_func): Remove 6279 unnecessary check for RECORD_TYPE. 6280 62812021-11-05 Gerald Pfeifer <gerald@pfeifer.com> 6282 6283 * doc/install.texi2html: Do not generate old.html any longer. 6284 62852021-11-05 Martin Liska <mliska@suse.cz> 6286 6287 PR debug/102955 6288 * opts.c (finish_options): Reset flag_gtoggle when it is used. 6289 62902021-11-05 Jakub Jelinek <jakub@redhat.com> 6291 6292 PR debug/103046 6293 * dwarf2out.c (add_const_value_attribute): Add MODE argument, use it 6294 in CONST_WIDE_INT handling. Adjust recursive calls. 6295 (add_location_or_const_value_attribute): Pass DECL_MODE (decl) to 6296 new add_const_value_attribute argument. 6297 (tree_add_const_value_attribute): Pass TYPE_MODE (type) to new 6298 add_const_value_attribute argument. 6299 63002021-11-05 Rasmus Villemoes <rasmus.villemoes@prevas.dk> 6301 6302 * config/vx-common.h: Test value of TARGET_VXWORKS7 rather 6303 than definedness. 6304 63052021-11-05 Richard Biener <rguenther@suse.de> 6306 6307 * tree-vectorizer.h (struct vect_loop_form_info): New. 6308 (vect_analyze_loop_form): Adjust. 6309 (vect_create_loop_vinfo): New. 6310 * tree-parloops.c (gather_scalar_reductions): Adjust for 6311 vect_analyze_loop_form API change. 6312 * tree-vect-loop.c: Include <functional>. 6313 (vect_analyze_loop_form_1): Rename to vect_analyze_loop_form, 6314 take struct vect_loop_form_info as output parameter and adjust. 6315 (vect_analyze_loop_form): Rename to vect_create_loop_vinfo and 6316 split out call to the original vect_analyze_loop_form_1. 6317 (vect_reanalyze_as_main_loop): Rename to... 6318 (vect_analyze_loop_1): ... this, factor out the call to 6319 vect_analyze_loop_form and generalize to be able to use it twice ... 6320 (vect_analyze_loop): ... here. Perform vect_analyze_loop_form 6321 once only and here. 6322 63232021-11-05 Xionghu Luo <luoxhu@linux.ibm.com> 6324 6325 PR target/102991 6326 * config/rs6000/fusion.md: Regenerate. 6327 * config/rs6000/genfusion.pl: Fix incorrect clobber constraint. 6328 63292021-11-04 Andreas Krebbel <krebbel@linux.ibm.com> 6330 6331 * config/s390/s390.h (STACK_CHECK_MOVING_SP): New macro 6332 definition. 6333 63342021-11-04 Tamar Christina <tamar.christina@arm.com> 6335 6336 * config/aarch64/aarch64-builtins.c 6337 (aarch64_general_gimple_fold_builtin): Add ashl, sshl, ushl, ashr, 6338 ashr_simd, lshr, lshr_simd. 6339 * config/aarch64/aarch64-simd-builtins.def (lshr): Use USHIFTIMM. 6340 * config/aarch64/arm_neon.h (vshr_n_u8, vshr_n_u16, vshr_n_u32, 6341 vshrq_n_u8, vshrq_n_u16, vshrq_n_u32, vshrq_n_u64): Fix type hack. 6342 63432021-11-04 Tamar Christina <tamar.christina@arm.com> 6344 6345 * match.pd: New negate+shift pattern. 6346 63472021-11-04 Andrew MacLeod <amacleod@redhat.com> 6348 6349 PR tree-optimization/103079 6350 * gimple-range-gori.cc (gimple_range_calc_op1): Treat undefined as 6351 varying. 6352 (gimple_range_calc_op2): Ditto. 6353 63542021-11-04 Martin Jambor <mjambor@suse.cz> 6355 6356 PR ipa/93385 6357 * ipa-param-manipulation.h (class ipa_param_body_adjustments): New 6358 members remap_with_debug_expressions, m_dead_ssa_debug_equiv, 6359 m_dead_stmt_debug_equiv and prepare_debug_expressions. Added 6360 parameter to mark_dead_statements. 6361 * ipa-param-manipulation.c: Include tree-phinodes.h and cfgexpand.h. 6362 (ipa_param_body_adjustments::mark_dead_statements): New parameter 6363 debugstack, push into it all SSA names used in debug statements, 6364 produce m_dead_ssa_debug_equiv mapping for the removed param. 6365 (replace_with_mapped_expr): New function. 6366 (ipa_param_body_adjustments::remap_with_debug_expressions): Likewise. 6367 (ipa_param_body_adjustments::prepare_debug_expressions): Likewise. 6368 (ipa_param_body_adjustments::common_initialization): Gather and 6369 procecc SSA which will be removed but are in debug statements. Simplify. 6370 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize 6371 new members. 6372 * tree-inline.c (remap_gimple_stmt): Create a debug bind when possible 6373 when avoiding a copy of an unnecessary statement. Remap removed SSA 6374 names in existing debug statements. 6375 (tree_function_versioning): Do not create DEBUG_EXPR_DECL for removed 6376 parameters if we have already done so. 6377 63782021-11-04 Jan Hubicka <hubicka@ucw.cz> 6379 6380 PR ipa/103058 6381 * gimple.c (gimple_call_static_chain_flags): Handle case when 6382 nested function does not bind locally. 6383 63842021-11-04 Jonathan Wright <jonathan.wright@arm.com> 6385 6386 * config/aarch64/aarch64.c (aarch64_function_value): Generate 6387 a register rtx for Neon vector-tuple modes. 6388 (aarch64_layout_arg): Likewise. 6389 63902021-11-04 Jonathan Wright <jonathan.wright@arm.com> 6391 6392 * lower-subreg.c (simple_move): Prevent decomposition if 6393 modes are not tieable. 6394 63952021-11-04 Jonathan Wright <jonathan.wright@arm.com> 6396 Richard Sandiford <richard.sandiford@arm.com> 6397 6398 * config/aarch64/aarch64-builtins.c (v2x8qi_UP): Define. 6399 (v2x4hi_UP): Likewise. 6400 (v2x4hf_UP): Likewise. 6401 (v2x4bf_UP): Likewise. 6402 (v2x2si_UP): Likewise. 6403 (v2x2sf_UP): Likewise. 6404 (v2x1di_UP): Likewise. 6405 (v2x1df_UP): Likewise. 6406 (v2x16qi_UP): Likewise. 6407 (v2x8hi_UP): Likewise. 6408 (v2x8hf_UP): Likewise. 6409 (v2x8bf_UP): Likewise. 6410 (v2x4si_UP): Likewise. 6411 (v2x4sf_UP): Likewise. 6412 (v2x2di_UP): Likewise. 6413 (v2x2df_UP): Likewise. 6414 (v3x8qi_UP): Likewise. 6415 (v3x4hi_UP): Likewise. 6416 (v3x4hf_UP): Likewise. 6417 (v3x4bf_UP): Likewise. 6418 (v3x2si_UP): Likewise. 6419 (v3x2sf_UP): Likewise. 6420 (v3x1di_UP): Likewise. 6421 (v3x1df_UP): Likewise. 6422 (v3x16qi_UP): Likewise. 6423 (v3x8hi_UP): Likewise. 6424 (v3x8hf_UP): Likewise. 6425 (v3x8bf_UP): Likewise. 6426 (v3x4si_UP): Likewise. 6427 (v3x4sf_UP): Likewise. 6428 (v3x2di_UP): Likewise. 6429 (v3x2df_UP): Likewise. 6430 (v4x8qi_UP): Likewise. 6431 (v4x4hi_UP): Likewise. 6432 (v4x4hf_UP): Likewise. 6433 (v4x4bf_UP): Likewise. 6434 (v4x2si_UP): Likewise. 6435 (v4x2sf_UP): Likewise. 6436 (v4x1di_UP): Likewise. 6437 (v4x1df_UP): Likewise. 6438 (v4x16qi_UP): Likewise. 6439 (v4x8hi_UP): Likewise. 6440 (v4x8hf_UP): Likewise. 6441 (v4x8bf_UP): Likewise. 6442 (v4x4si_UP): Likewise. 6443 (v4x4sf_UP): Likewise. 6444 (v4x2di_UP): Likewise. 6445 (v4x2df_UP): Likewise. 6446 (TYPES_GETREGP): Delete. 6447 (TYPES_SETREGP): Likewise. 6448 (TYPES_LOADSTRUCT_U): Define. 6449 (TYPES_LOADSTRUCT_P): Likewise. 6450 (TYPES_LOADSTRUCT_LANE_U): Likewise. 6451 (TYPES_LOADSTRUCT_LANE_P): Likewise. 6452 (TYPES_STORE1P): Move for consistency. 6453 (TYPES_STORESTRUCT_U): Define. 6454 (TYPES_STORESTRUCT_P): Likewise. 6455 (TYPES_STORESTRUCT_LANE_U): Likewise. 6456 (TYPES_STORESTRUCT_LANE_P): Likewise. 6457 (aarch64_simd_tuple_types): Define. 6458 (aarch64_lookup_simd_builtin_type): Handle tuple type lookup. 6459 (aarch64_init_simd_builtin_functions): Update frontend lookup 6460 for builtin functions after handling arm_neon.h pragma. 6461 (register_tuple_type): Manually set modes of single-integer 6462 tuple types. Record tuple types. 6463 * config/aarch64/aarch64-modes.def 6464 (ADV_SIMD_D_REG_STRUCT_MODES): Define D-register tuple modes. 6465 (ADV_SIMD_Q_REG_STRUCT_MODES): Define Q-register tuple modes. 6466 (SVE_MODES): Give single-vector modes priority over vector- 6467 tuple modes. 6468 (VECTOR_MODES_WITH_PREFIX): Set partial-vector mode order to 6469 be after all single-vector modes. 6470 * config/aarch64/aarch64-simd-builtins.def: Update builtin 6471 generator macros to reflect modifications to the backend 6472 patterns. 6473 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2<mode>): 6474 Use vector-tuple mode iterator and rename to... 6475 (aarch64_simd_ld2<vstruct_elt>): This. 6476 (aarch64_simd_ld2r<mode>): Use vector-tuple mode iterator and 6477 rename to... 6478 (aarch64_simd_ld2r<vstruct_elt>): This. 6479 (aarch64_vec_load_lanesoi_lane<mode>): Use vector-tuple mode 6480 iterator and rename to... 6481 (aarch64_vec_load_lanes<mode>_lane<vstruct_elt>): This. 6482 (vec_load_lanesoi<mode>): Use vector-tuple mode iterator and 6483 rename to... 6484 (vec_load_lanes<mode><vstruct_elt>): This. 6485 (aarch64_simd_st2<mode>): Use vector-tuple mode iterator and 6486 rename to... 6487 (aarch64_simd_st2<vstruct_elt>): This. 6488 (aarch64_vec_store_lanesoi_lane<mode>): Use vector-tuple mode 6489 iterator and rename to... 6490 (aarch64_vec_store_lanes<mode>_lane<vstruct_elt>): This. 6491 (vec_store_lanesoi<mode>): Use vector-tuple mode iterator and 6492 rename to... 6493 (vec_store_lanes<mode><vstruct_elt>): This. 6494 (aarch64_simd_ld3<mode>): Use vector-tuple mode iterator and 6495 rename to... 6496 (aarch64_simd_ld3<vstruct_elt>): This. 6497 (aarch64_simd_ld3r<mode>): Use vector-tuple mode iterator and 6498 rename to... 6499 (aarch64_simd_ld3r<vstruct_elt>): This. 6500 (aarch64_vec_load_lanesci_lane<mode>): Use vector-tuple mode 6501 iterator and rename to... 6502 (vec_load_lanesci<mode>): This. 6503 (aarch64_simd_st3<mode>): Use vector-tuple mode iterator and 6504 rename to... 6505 (aarch64_simd_st3<vstruct_elt>): This. 6506 (aarch64_vec_store_lanesci_lane<mode>): Use vector-tuple mode 6507 iterator and rename to... 6508 (vec_store_lanesci<mode>): This. 6509 (aarch64_simd_ld4<mode>): Use vector-tuple mode iterator and 6510 rename to... 6511 (aarch64_simd_ld4<vstruct_elt>): This. 6512 (aarch64_simd_ld4r<mode>): Use vector-tuple mode iterator and 6513 rename to... 6514 (aarch64_simd_ld4r<vstruct_elt>): This. 6515 (aarch64_vec_load_lanesxi_lane<mode>): Use vector-tuple mode 6516 iterator and rename to... 6517 (vec_load_lanesxi<mode>): This. 6518 (aarch64_simd_st4<mode>): Use vector-tuple mode iterator and 6519 rename to... 6520 (aarch64_simd_st4<vstruct_elt>): This. 6521 (aarch64_vec_store_lanesxi_lane<mode>): Use vector-tuple mode 6522 iterator and rename to... 6523 (vec_store_lanesxi<mode>): This. 6524 (mov<mode>): Define for Neon vector-tuple modes. 6525 (aarch64_ld1x3<VALLDIF:mode>): Use vector-tuple mode iterator 6526 and rename to... 6527 (aarch64_ld1x3<vstruct_elt>): This. 6528 (aarch64_ld1_x3_<mode>): Use vector-tuple mode iterator and 6529 rename to... 6530 (aarch64_ld1_x3_<vstruct_elt>): This. 6531 (aarch64_ld1x4<VALLDIF:mode>): Use vector-tuple mode iterator 6532 and rename to... 6533 (aarch64_ld1x4<vstruct_elt>): This. 6534 (aarch64_ld1_x4_<mode>): Use vector-tuple mode iterator and 6535 rename to... 6536 (aarch64_ld1_x4_<vstruct_elt>): This. 6537 (aarch64_st1x2<VALLDIF:mode>): Use vector-tuple mode iterator 6538 and rename to... 6539 (aarch64_st1x2<vstruct_elt>): This. 6540 (aarch64_st1_x2_<mode>): Use vector-tuple mode iterator and 6541 rename to... 6542 (aarch64_st1_x2_<vstruct_elt>): This. 6543 (aarch64_st1x3<VALLDIF:mode>): Use vector-tuple mode iterator 6544 and rename to... 6545 (aarch64_st1x3<vstruct_elt>): This. 6546 (aarch64_st1_x3_<mode>): Use vector-tuple mode iterator and 6547 rename to... 6548 (aarch64_st1_x3_<vstruct_elt>): This. 6549 (aarch64_st1x4<VALLDIF:mode>): Use vector-tuple mode iterator 6550 and rename to... 6551 (aarch64_st1x4<vstruct_elt>): This. 6552 (aarch64_st1_x4_<mode>): Use vector-tuple mode iterator and 6553 rename to... 6554 (aarch64_st1_x4_<vstruct_elt>): This. 6555 (*aarch64_mov<mode>): Define for vector-tuple modes. 6556 (*aarch64_be_mov<mode>): Likewise. 6557 (aarch64_ld<VSTRUCT:nregs>r<VALLDIF:mode>): Use vector-tuple 6558 mode iterator and rename to... 6559 (aarch64_ld<nregs>r<vstruct_elt>): This. 6560 (aarch64_ld2<mode>_dreg): Use vector-tuple mode iterator and 6561 rename to... 6562 (aarch64_ld2<vstruct_elt>_dreg): This. 6563 (aarch64_ld3<mode>_dreg): Use vector-tuple mode iterator and 6564 rename to... 6565 (aarch64_ld3<vstruct_elt>_dreg): This. 6566 (aarch64_ld4<mode>_dreg): Use vector-tuple mode iterator and 6567 rename to... 6568 (aarch64_ld4<vstruct_elt>_dreg): This. 6569 (aarch64_ld<VSTRUCT:nregs><VDC:mode>): Use vector-tuple mode 6570 iterator and rename to... 6571 (aarch64_ld<nregs><vstruct_elt>): Use vector-tuple mode 6572 iterator and rename to... 6573 (aarch64_ld<VSTRUCT:nregs><VQ:mode>): Use vector-tuple mode 6574 (aarch64_ld1x2<VQ:mode>): Delete. 6575 (aarch64_ld1x2<VDC:mode>): Use vector-tuple mode iterator and 6576 rename to... 6577 (aarch64_ld1x2<vstruct_elt>): This. 6578 (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use vector- 6579 tuple mode iterator and rename to... 6580 (aarch64_ld<nregs>_lane<vstruct_elt>): This. 6581 (aarch64_get_dreg<VSTRUCT:mode><VDC:mode>): Delete. 6582 (aarch64_get_qreg<VSTRUCT:mode><VQ:mode>): Likewise. 6583 (aarch64_st2<mode>_dreg): Use vector-tuple mode iterator and 6584 rename to... 6585 (aarch64_st2<vstruct_elt>_dreg): This. 6586 (aarch64_st3<mode>_dreg): Use vector-tuple mode iterator and 6587 rename to... 6588 (aarch64_st3<vstruct_elt>_dreg): This. 6589 (aarch64_st4<mode>_dreg): Use vector-tuple mode iterator and 6590 rename to... 6591 (aarch64_st4<vstruct_elt>_dreg): This. 6592 (aarch64_st<VSTRUCT:nregs><VDC:mode>): Use vector-tuple mode 6593 iterator and rename to... 6594 (aarch64_st<nregs><vstruct_elt>): This. 6595 (aarch64_st<VSTRUCT:nregs><VQ:mode>): Use vector-tuple mode 6596 iterator and rename to aarch64_st<nregs><vstruct_elt>. 6597 (aarch64_st<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use vector- 6598 tuple mode iterator and rename to... 6599 (aarch64_st<nregs>_lane<vstruct_elt>): This. 6600 (aarch64_set_qreg<VSTRUCT:mode><VQ:mode>): Delete. 6601 (aarch64_simd_ld1<mode>_x2): Use vector-tuple mode iterator 6602 and rename to... 6603 (aarch64_simd_ld1<vstruct_elt>_x2): This. 6604 * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): 6605 Refactor to include new vector-tuple modes. 6606 (aarch64_classify_vector_mode): Add cases for new vector- 6607 tuple modes. 6608 (aarch64_advsimd_partial_struct_mode_p): Define. 6609 (aarch64_advsimd_full_struct_mode_p): Likewise. 6610 (aarch64_advsimd_vector_array_mode): Likewise. 6611 (aarch64_sve_data_mode): Change location in file. 6612 (aarch64_array_mode): Handle case of Neon vector-tuple modes. 6613 (aarch64_hard_regno_nregs): Handle case of partial Neon 6614 vector structures. 6615 (aarch64_classify_address): Refactor to include handling of 6616 Neon vector-tuple modes. 6617 (aarch64_print_operand): Print "d" for "%R" for a partial 6618 Neon vector structure. 6619 (aarch64_expand_vec_perm_1): Use new vector-tuple mode. 6620 (aarch64_modes_tieable_p): Prevent tieing Neon partial struct 6621 modes with scalar machines modes larger than 8 bytes. 6622 (aarch64_can_change_mode_class): Don't allow changes between 6623 partial and full Neon vector-structure modes. 6624 * config/aarch64/arm_neon.h (vst2_lane_f16): Use updated 6625 builtin and remove boiler-plate code for opaque mode. 6626 (vst2_lane_f32): Likewise. 6627 (vst2_lane_f64): Likewise. 6628 (vst2_lane_p8): Likewise. 6629 (vst2_lane_p16): Likewise. 6630 (vst2_lane_p64): Likewise. 6631 (vst2_lane_s8): Likewise. 6632 (vst2_lane_s16): Likewise. 6633 (vst2_lane_s32): Likewise. 6634 (vst2_lane_s64): Likewise. 6635 (vst2_lane_u8): Likewise. 6636 (vst2_lane_u16): Likewise. 6637 (vst2_lane_u32): Likewise. 6638 (vst2_lane_u64): Likewise. 6639 (vst2q_lane_f16): Likewise. 6640 (vst2q_lane_f32): Likewise. 6641 (vst2q_lane_f64): Likewise. 6642 (vst2q_lane_p8): Likewise. 6643 (vst2q_lane_p16): Likewise. 6644 (vst2q_lane_p64): Likewise. 6645 (vst2q_lane_s8): Likewise. 6646 (vst2q_lane_s16): Likewise. 6647 (vst2q_lane_s32): Likewise. 6648 (vst2q_lane_s64): Likewise. 6649 (vst2q_lane_u8): Likewise. 6650 (vst2q_lane_u16): Likewise. 6651 (vst2q_lane_u32): Likewise. 6652 (vst2q_lane_u64): Likewise. 6653 (vst3_lane_f16): Likewise. 6654 (vst3_lane_f32): Likewise. 6655 (vst3_lane_f64): Likewise. 6656 (vst3_lane_p8): Likewise. 6657 (vst3_lane_p16): Likewise. 6658 (vst3_lane_p64): Likewise. 6659 (vst3_lane_s8): Likewise. 6660 (vst3_lane_s16): Likewise. 6661 (vst3_lane_s32): Likewise. 6662 (vst3_lane_s64): Likewise. 6663 (vst3_lane_u8): Likewise. 6664 (vst3_lane_u16): Likewise. 6665 (vst3_lane_u32): Likewise. 6666 (vst3_lane_u64): Likewise. 6667 (vst3q_lane_f16): Likewise. 6668 (vst3q_lane_f32): Likewise. 6669 (vst3q_lane_f64): Likewise. 6670 (vst3q_lane_p8): Likewise. 6671 (vst3q_lane_p16): Likewise. 6672 (vst3q_lane_p64): Likewise. 6673 (vst3q_lane_s8): Likewise. 6674 (vst3q_lane_s16): Likewise. 6675 (vst3q_lane_s32): Likewise. 6676 (vst3q_lane_s64): Likewise. 6677 (vst3q_lane_u8): Likewise. 6678 (vst3q_lane_u16): Likewise. 6679 (vst3q_lane_u32): Likewise. 6680 (vst3q_lane_u64): Likewise. 6681 (vst4_lane_f16): Likewise. 6682 (vst4_lane_f32): Likewise. 6683 (vst4_lane_f64): Likewise. 6684 (vst4_lane_p8): Likewise. 6685 (vst4_lane_p16): Likewise. 6686 (vst4_lane_p64): Likewise. 6687 (vst4_lane_s8): Likewise. 6688 (vst4_lane_s16): Likewise. 6689 (vst4_lane_s32): Likewise. 6690 (vst4_lane_s64): Likewise. 6691 (vst4_lane_u8): Likewise. 6692 (vst4_lane_u16): Likewise. 6693 (vst4_lane_u32): Likewise. 6694 (vst4_lane_u64): Likewise. 6695 (vst4q_lane_f16): Likewise. 6696 (vst4q_lane_f32): Likewise. 6697 (vst4q_lane_f64): Likewise. 6698 (vst4q_lane_p8): Likewise. 6699 (vst4q_lane_p16): Likewise. 6700 (vst4q_lane_p64): Likewise. 6701 (vst4q_lane_s8): Likewise. 6702 (vst4q_lane_s16): Likewise. 6703 (vst4q_lane_s32): Likewise. 6704 (vst4q_lane_s64): Likewise. 6705 (vst4q_lane_u8): Likewise. 6706 (vst4q_lane_u16): Likewise. 6707 (vst4q_lane_u32): Likewise. 6708 (vst4q_lane_u64): Likewise. 6709 (vtbl3_s8): Likewise. 6710 (vtbl3_u8): Likewise. 6711 (vtbl3_p8): Likewise. 6712 (vtbl4_s8): Likewise. 6713 (vtbl4_u8): Likewise. 6714 (vtbl4_p8): Likewise. 6715 (vld1_u8_x3): Likewise. 6716 (vld1_s8_x3): Likewise. 6717 (vld1_u16_x3): Likewise. 6718 (vld1_s16_x3): Likewise. 6719 (vld1_u32_x3): Likewise. 6720 (vld1_s32_x3): Likewise. 6721 (vld1_u64_x3): Likewise. 6722 (vld1_s64_x3): Likewise. 6723 (vld1_f16_x3): Likewise. 6724 (vld1_f32_x3): Likewise. 6725 (vld1_f64_x3): Likewise. 6726 (vld1_p8_x3): Likewise. 6727 (vld1_p16_x3): Likewise. 6728 (vld1_p64_x3): Likewise. 6729 (vld1q_u8_x3): Likewise. 6730 (vld1q_s8_x3): Likewise. 6731 (vld1q_u16_x3): Likewise. 6732 (vld1q_s16_x3): Likewise. 6733 (vld1q_u32_x3): Likewise. 6734 (vld1q_s32_x3): Likewise. 6735 (vld1q_u64_x3): Likewise. 6736 (vld1q_s64_x3): Likewise. 6737 (vld1q_f16_x3): Likewise. 6738 (vld1q_f32_x3): Likewise. 6739 (vld1q_f64_x3): Likewise. 6740 (vld1q_p8_x3): Likewise. 6741 (vld1q_p16_x3): Likewise. 6742 (vld1q_p64_x3): Likewise. 6743 (vld1_u8_x2): Likewise. 6744 (vld1_s8_x2): Likewise. 6745 (vld1_u16_x2): Likewise. 6746 (vld1_s16_x2): Likewise. 6747 (vld1_u32_x2): Likewise. 6748 (vld1_s32_x2): Likewise. 6749 (vld1_u64_x2): Likewise. 6750 (vld1_s64_x2): Likewise. 6751 (vld1_f16_x2): Likewise. 6752 (vld1_f32_x2): Likewise. 6753 (vld1_f64_x2): Likewise. 6754 (vld1_p8_x2): Likewise. 6755 (vld1_p16_x2): Likewise. 6756 (vld1_p64_x2): Likewise. 6757 (vld1q_u8_x2): Likewise. 6758 (vld1q_s8_x2): Likewise. 6759 (vld1q_u16_x2): Likewise. 6760 (vld1q_s16_x2): Likewise. 6761 (vld1q_u32_x2): Likewise. 6762 (vld1q_s32_x2): Likewise. 6763 (vld1q_u64_x2): Likewise. 6764 (vld1q_s64_x2): Likewise. 6765 (vld1q_f16_x2): Likewise. 6766 (vld1q_f32_x2): Likewise. 6767 (vld1q_f64_x2): Likewise. 6768 (vld1q_p8_x2): Likewise. 6769 (vld1q_p16_x2): Likewise. 6770 (vld1q_p64_x2): Likewise. 6771 (vld1_s8_x4): Likewise. 6772 (vld1q_s8_x4): Likewise. 6773 (vld1_s16_x4): Likewise. 6774 (vld1q_s16_x4): Likewise. 6775 (vld1_s32_x4): Likewise. 6776 (vld1q_s32_x4): Likewise. 6777 (vld1_u8_x4): Likewise. 6778 (vld1q_u8_x4): Likewise. 6779 (vld1_u16_x4): Likewise. 6780 (vld1q_u16_x4): Likewise. 6781 (vld1_u32_x4): Likewise. 6782 (vld1q_u32_x4): Likewise. 6783 (vld1_f16_x4): Likewise. 6784 (vld1q_f16_x4): Likewise. 6785 (vld1_f32_x4): Likewise. 6786 (vld1q_f32_x4): Likewise. 6787 (vld1_p8_x4): Likewise. 6788 (vld1q_p8_x4): Likewise. 6789 (vld1_p16_x4): Likewise. 6790 (vld1q_p16_x4): Likewise. 6791 (vld1_s64_x4): Likewise. 6792 (vld1_u64_x4): Likewise. 6793 (vld1_p64_x4): Likewise. 6794 (vld1q_s64_x4): Likewise. 6795 (vld1q_u64_x4): Likewise. 6796 (vld1q_p64_x4): Likewise. 6797 (vld1_f64_x4): Likewise. 6798 (vld1q_f64_x4): Likewise. 6799 (vld2_s64): Likewise. 6800 (vld2_u64): Likewise. 6801 (vld2_f64): Likewise. 6802 (vld2_s8): Likewise. 6803 (vld2_p8): Likewise. 6804 (vld2_p64): Likewise. 6805 (vld2_s16): Likewise. 6806 (vld2_p16): Likewise. 6807 (vld2_s32): Likewise. 6808 (vld2_u8): Likewise. 6809 (vld2_u16): Likewise. 6810 (vld2_u32): Likewise. 6811 (vld2_f16): Likewise. 6812 (vld2_f32): Likewise. 6813 (vld2q_s8): Likewise. 6814 (vld2q_p8): Likewise. 6815 (vld2q_s16): Likewise. 6816 (vld2q_p16): Likewise. 6817 (vld2q_p64): Likewise. 6818 (vld2q_s32): Likewise. 6819 (vld2q_s64): Likewise. 6820 (vld2q_u8): Likewise. 6821 (vld2q_u16): Likewise. 6822 (vld2q_u32): Likewise. 6823 (vld2q_u64): Likewise. 6824 (vld2q_f16): Likewise. 6825 (vld2q_f32): Likewise. 6826 (vld2q_f64): Likewise. 6827 (vld3_s64): Likewise. 6828 (vld3_u64): Likewise. 6829 (vld3_f64): Likewise. 6830 (vld3_s8): Likewise. 6831 (vld3_p8): Likewise. 6832 (vld3_s16): Likewise. 6833 (vld3_p16): Likewise. 6834 (vld3_s32): Likewise. 6835 (vld3_u8): Likewise. 6836 (vld3_u16): Likewise. 6837 (vld3_u32): Likewise. 6838 (vld3_f16): Likewise. 6839 (vld3_f32): Likewise. 6840 (vld3_p64): Likewise. 6841 (vld3q_s8): Likewise. 6842 (vld3q_p8): Likewise. 6843 (vld3q_s16): Likewise. 6844 (vld3q_p16): Likewise. 6845 (vld3q_s32): Likewise. 6846 (vld3q_s64): Likewise. 6847 (vld3q_u8): Likewise. 6848 (vld3q_u16): Likewise. 6849 (vld3q_u32): Likewise. 6850 (vld3q_u64): Likewise. 6851 (vld3q_f16): Likewise. 6852 (vld3q_f32): Likewise. 6853 (vld3q_f64): Likewise. 6854 (vld3q_p64): Likewise. 6855 (vld4_s64): Likewise. 6856 (vld4_u64): Likewise. 6857 (vld4_f64): Likewise. 6858 (vld4_s8): Likewise. 6859 (vld4_p8): Likewise. 6860 (vld4_s16): Likewise. 6861 (vld4_p16): Likewise. 6862 (vld4_s32): Likewise. 6863 (vld4_u8): Likewise. 6864 (vld4_u16): Likewise. 6865 (vld4_u32): Likewise. 6866 (vld4_f16): Likewise. 6867 (vld4_f32): Likewise. 6868 (vld4_p64): Likewise. 6869 (vld4q_s8): Likewise. 6870 (vld4q_p8): Likewise. 6871 (vld4q_s16): Likewise. 6872 (vld4q_p16): Likewise. 6873 (vld4q_s32): Likewise. 6874 (vld4q_s64): Likewise. 6875 (vld4q_u8): Likewise. 6876 (vld4q_u16): Likewise. 6877 (vld4q_u32): Likewise. 6878 (vld4q_u64): Likewise. 6879 (vld4q_f16): Likewise. 6880 (vld4q_f32): Likewise. 6881 (vld4q_f64): Likewise. 6882 (vld4q_p64): Likewise. 6883 (vld2_dup_s8): Likewise. 6884 (vld2_dup_s16): Likewise. 6885 (vld2_dup_s32): Likewise. 6886 (vld2_dup_f16): Likewise. 6887 (vld2_dup_f32): Likewise. 6888 (vld2_dup_f64): Likewise. 6889 (vld2_dup_u8): Likewise. 6890 (vld2_dup_u16): Likewise. 6891 (vld2_dup_u32): Likewise. 6892 (vld2_dup_p8): Likewise. 6893 (vld2_dup_p16): Likewise. 6894 (vld2_dup_p64): Likewise. 6895 (vld2_dup_s64): Likewise. 6896 (vld2_dup_u64): Likewise. 6897 (vld2q_dup_s8): Likewise. 6898 (vld2q_dup_p8): Likewise. 6899 (vld2q_dup_s16): Likewise. 6900 (vld2q_dup_p16): Likewise. 6901 (vld2q_dup_s32): Likewise. 6902 (vld2q_dup_s64): Likewise. 6903 (vld2q_dup_u8): Likewise. 6904 (vld2q_dup_u16): Likewise. 6905 (vld2q_dup_u32): Likewise. 6906 (vld2q_dup_u64): Likewise. 6907 (vld2q_dup_f16): Likewise. 6908 (vld2q_dup_f32): Likewise. 6909 (vld2q_dup_f64): Likewise. 6910 (vld2q_dup_p64): Likewise. 6911 (vld3_dup_s64): Likewise. 6912 (vld3_dup_u64): Likewise. 6913 (vld3_dup_f64): Likewise. 6914 (vld3_dup_s8): Likewise. 6915 (vld3_dup_p8): Likewise. 6916 (vld3_dup_s16): Likewise. 6917 (vld3_dup_p16): Likewise. 6918 (vld3_dup_s32): Likewise. 6919 (vld3_dup_u8): Likewise. 6920 (vld3_dup_u16): Likewise. 6921 (vld3_dup_u32): Likewise. 6922 (vld3_dup_f16): Likewise. 6923 (vld3_dup_f32): Likewise. 6924 (vld3_dup_p64): Likewise. 6925 (vld3q_dup_s8): Likewise. 6926 (vld3q_dup_p8): Likewise. 6927 (vld3q_dup_s16): Likewise. 6928 (vld3q_dup_p16): Likewise. 6929 (vld3q_dup_s32): Likewise. 6930 (vld3q_dup_s64): Likewise. 6931 (vld3q_dup_u8): Likewise. 6932 (vld3q_dup_u16): Likewise. 6933 (vld3q_dup_u32): Likewise. 6934 (vld3q_dup_u64): Likewise. 6935 (vld3q_dup_f16): Likewise. 6936 (vld3q_dup_f32): Likewise. 6937 (vld3q_dup_f64): Likewise. 6938 (vld3q_dup_p64): Likewise. 6939 (vld4_dup_s64): Likewise. 6940 (vld4_dup_u64): Likewise. 6941 (vld4_dup_f64): Likewise. 6942 (vld4_dup_s8): Likewise. 6943 (vld4_dup_p8): Likewise. 6944 (vld4_dup_s16): Likewise. 6945 (vld4_dup_p16): Likewise. 6946 (vld4_dup_s32): Likewise. 6947 (vld4_dup_u8): Likewise. 6948 (vld4_dup_u16): Likewise. 6949 (vld4_dup_u32): Likewise. 6950 (vld4_dup_f16): Likewise. 6951 (vld4_dup_f32): Likewise. 6952 (vld4_dup_p64): Likewise. 6953 (vld4q_dup_s8): Likewise. 6954 (vld4q_dup_p8): Likewise. 6955 (vld4q_dup_s16): Likewise. 6956 (vld4q_dup_p16): Likewise. 6957 (vld4q_dup_s32): Likewise. 6958 (vld4q_dup_s64): Likewise. 6959 (vld4q_dup_u8): Likewise. 6960 (vld4q_dup_u16): Likewise. 6961 (vld4q_dup_u32): Likewise. 6962 (vld4q_dup_u64): Likewise. 6963 (vld4q_dup_f16): Likewise. 6964 (vld4q_dup_f32): Likewise. 6965 (vld4q_dup_f64): Likewise. 6966 (vld4q_dup_p64): Likewise. 6967 (vld2_lane_u8): Likewise. 6968 (vld2_lane_u16): Likewise. 6969 (vld2_lane_u32): Likewise. 6970 (vld2_lane_u64): Likewise. 6971 (vld2_lane_s8): Likewise. 6972 (vld2_lane_s16): Likewise. 6973 (vld2_lane_s32): Likewise. 6974 (vld2_lane_s64): Likewise. 6975 (vld2_lane_f16): Likewise. 6976 (vld2_lane_f32): Likewise. 6977 (vld2_lane_f64): Likewise. 6978 (vld2_lane_p8): Likewise. 6979 (vld2_lane_p16): Likewise. 6980 (vld2_lane_p64): Likewise. 6981 (vld2q_lane_u8): Likewise. 6982 (vld2q_lane_u16): Likewise. 6983 (vld2q_lane_u32): Likewise. 6984 (vld2q_lane_u64): Likewise. 6985 (vld2q_lane_s8): Likewise. 6986 (vld2q_lane_s16): Likewise. 6987 (vld2q_lane_s32): Likewise. 6988 (vld2q_lane_s64): Likewise. 6989 (vld2q_lane_f16): Likewise. 6990 (vld2q_lane_f32): Likewise. 6991 (vld2q_lane_f64): Likewise. 6992 (vld2q_lane_p8): Likewise. 6993 (vld2q_lane_p16): Likewise. 6994 (vld2q_lane_p64): Likewise. 6995 (vld3_lane_u8): Likewise. 6996 (vld3_lane_u16): Likewise. 6997 (vld3_lane_u32): Likewise. 6998 (vld3_lane_u64): Likewise. 6999 (vld3_lane_s8): Likewise. 7000 (vld3_lane_s16): Likewise. 7001 (vld3_lane_s32): Likewise. 7002 (vld3_lane_s64): Likewise. 7003 (vld3_lane_f16): Likewise. 7004 (vld3_lane_f32): Likewise. 7005 (vld3_lane_f64): Likewise. 7006 (vld3_lane_p8): Likewise. 7007 (vld3_lane_p16): Likewise. 7008 (vld3_lane_p64): Likewise. 7009 (vld3q_lane_u8): Likewise. 7010 (vld3q_lane_u16): Likewise. 7011 (vld3q_lane_u32): Likewise. 7012 (vld3q_lane_u64): Likewise. 7013 (vld3q_lane_s8): Likewise. 7014 (vld3q_lane_s16): Likewise. 7015 (vld3q_lane_s32): Likewise. 7016 (vld3q_lane_s64): Likewise. 7017 (vld3q_lane_f16): Likewise. 7018 (vld3q_lane_f32): Likewise. 7019 (vld3q_lane_f64): Likewise. 7020 (vld3q_lane_p8): Likewise. 7021 (vld3q_lane_p16): Likewise. 7022 (vld3q_lane_p64): Likewise. 7023 (vld4_lane_u8): Likewise. 7024 (vld4_lane_u16): Likewise. 7025 (vld4_lane_u32): Likewise. 7026 (vld4_lane_u64): Likewise. 7027 (vld4_lane_s8): Likewise. 7028 (vld4_lane_s16): Likewise. 7029 (vld4_lane_s32): Likewise. 7030 (vld4_lane_s64): Likewise. 7031 (vld4_lane_f16): Likewise. 7032 (vld4_lane_f32): Likewise. 7033 (vld4_lane_f64): Likewise. 7034 (vld4_lane_p8): Likewise. 7035 (vld4_lane_p16): Likewise. 7036 (vld4_lane_p64): Likewise. 7037 (vld4q_lane_u8): Likewise. 7038 (vld4q_lane_u16): Likewise. 7039 (vld4q_lane_u32): Likewise. 7040 (vld4q_lane_u64): Likewise. 7041 (vld4q_lane_s8): Likewise. 7042 (vld4q_lane_s16): Likewise. 7043 (vld4q_lane_s32): Likewise. 7044 (vld4q_lane_s64): Likewise. 7045 (vld4q_lane_f16): Likewise. 7046 (vld4q_lane_f32): Likewise. 7047 (vld4q_lane_f64): Likewise. 7048 (vld4q_lane_p8): Likewise. 7049 (vld4q_lane_p16): Likewise. 7050 (vld4q_lane_p64): Likewise. 7051 (vqtbl2_s8): Likewise. 7052 (vqtbl2_u8): Likewise. 7053 (vqtbl2_p8): Likewise. 7054 (vqtbl2q_s8): Likewise. 7055 (vqtbl2q_u8): Likewise. 7056 (vqtbl2q_p8): Likewise. 7057 (vqtbl3_s8): Likewise. 7058 (vqtbl3_u8): Likewise. 7059 (vqtbl3_p8): Likewise. 7060 (vqtbl3q_s8): Likewise. 7061 (vqtbl3q_u8): Likewise. 7062 (vqtbl3q_p8): Likewise. 7063 (vqtbl4_s8): Likewise. 7064 (vqtbl4_u8): Likewise. 7065 (vqtbl4_p8): Likewise. 7066 (vqtbl4q_s8): Likewise. 7067 (vqtbl4q_u8): Likewise. 7068 (vqtbl4q_p8): Likewise. 7069 (vqtbx2_s8): Likewise. 7070 (vqtbx2_u8): Likewise. 7071 (vqtbx2_p8): Likewise. 7072 (vqtbx2q_s8): Likewise. 7073 (vqtbx2q_u8): Likewise. 7074 (vqtbx2q_p8): Likewise. 7075 (vqtbx3_s8): Likewise. 7076 (vqtbx3_u8): Likewise. 7077 (vqtbx3_p8): Likewise. 7078 (vqtbx3q_s8): Likewise. 7079 (vqtbx3q_u8): Likewise. 7080 (vqtbx3q_p8): Likewise. 7081 (vqtbx4_s8): Likewise. 7082 (vqtbx4_u8): Likewise. 7083 (vqtbx4_p8): Likewise. 7084 (vqtbx4q_s8): Likewise. 7085 (vqtbx4q_u8): Likewise. 7086 (vqtbx4q_p8): Likewise. 7087 (vst1_s64_x2): Likewise. 7088 (vst1_u64_x2): Likewise. 7089 (vst1_f64_x2): Likewise. 7090 (vst1_s8_x2): Likewise. 7091 (vst1_p8_x2): Likewise. 7092 (vst1_s16_x2): Likewise. 7093 (vst1_p16_x2): Likewise. 7094 (vst1_s32_x2): Likewise. 7095 (vst1_u8_x2): Likewise. 7096 (vst1_u16_x2): Likewise. 7097 (vst1_u32_x2): Likewise. 7098 (vst1_f16_x2): Likewise. 7099 (vst1_f32_x2): Likewise. 7100 (vst1_p64_x2): Likewise. 7101 (vst1q_s8_x2): Likewise. 7102 (vst1q_p8_x2): Likewise. 7103 (vst1q_s16_x2): Likewise. 7104 (vst1q_p16_x2): Likewise. 7105 (vst1q_s32_x2): Likewise. 7106 (vst1q_s64_x2): Likewise. 7107 (vst1q_u8_x2): Likewise. 7108 (vst1q_u16_x2): Likewise. 7109 (vst1q_u32_x2): Likewise. 7110 (vst1q_u64_x2): Likewise. 7111 (vst1q_f16_x2): Likewise. 7112 (vst1q_f32_x2): Likewise. 7113 (vst1q_f64_x2): Likewise. 7114 (vst1q_p64_x2): Likewise. 7115 (vst1_s64_x3): Likewise. 7116 (vst1_u64_x3): Likewise. 7117 (vst1_f64_x3): Likewise. 7118 (vst1_s8_x3): Likewise. 7119 (vst1_p8_x3): Likewise. 7120 (vst1_s16_x3): Likewise. 7121 (vst1_p16_x3): Likewise. 7122 (vst1_s32_x3): Likewise. 7123 (vst1_u8_x3): Likewise. 7124 (vst1_u16_x3): Likewise. 7125 (vst1_u32_x3): Likewise. 7126 (vst1_f16_x3): Likewise. 7127 (vst1_f32_x3): Likewise. 7128 (vst1_p64_x3): Likewise. 7129 (vst1q_s8_x3): Likewise. 7130 (vst1q_p8_x3): Likewise. 7131 (vst1q_s16_x3): Likewise. 7132 (vst1q_p16_x3): Likewise. 7133 (vst1q_s32_x3): Likewise. 7134 (vst1q_s64_x3): Likewise. 7135 (vst1q_u8_x3): Likewise. 7136 (vst1q_u16_x3): Likewise. 7137 (vst1q_u32_x3): Likewise. 7138 (vst1q_u64_x3): Likewise. 7139 (vst1q_f16_x3): Likewise. 7140 (vst1q_f32_x3): Likewise. 7141 (vst1q_f64_x3): Likewise. 7142 (vst1q_p64_x3): Likewise. 7143 (vst1_s8_x4): Likewise. 7144 (vst1q_s8_x4): Likewise. 7145 (vst1_s16_x4): Likewise. 7146 (vst1q_s16_x4): Likewise. 7147 (vst1_s32_x4): Likewise. 7148 (vst1q_s32_x4): Likewise. 7149 (vst1_u8_x4): Likewise. 7150 (vst1q_u8_x4): Likewise. 7151 (vst1_u16_x4): Likewise. 7152 (vst1q_u16_x4): Likewise. 7153 (vst1_u32_x4): Likewise. 7154 (vst1q_u32_x4): Likewise. 7155 (vst1_f16_x4): Likewise. 7156 (vst1q_f16_x4): Likewise. 7157 (vst1_f32_x4): Likewise. 7158 (vst1q_f32_x4): Likewise. 7159 (vst1_p8_x4): Likewise. 7160 (vst1q_p8_x4): Likewise. 7161 (vst1_p16_x4): Likewise. 7162 (vst1q_p16_x4): Likewise. 7163 (vst1_s64_x4): Likewise. 7164 (vst1_u64_x4): Likewise. 7165 (vst1_p64_x4): Likewise. 7166 (vst1q_s64_x4): Likewise. 7167 (vst1q_u64_x4): Likewise. 7168 (vst1q_p64_x4): Likewise. 7169 (vst1_f64_x4): Likewise. 7170 (vst1q_f64_x4): Likewise. 7171 (vst2_s64): Likewise. 7172 (vst2_u64): Likewise. 7173 (vst2_f64): Likewise. 7174 (vst2_s8): Likewise. 7175 (vst2_p8): Likewise. 7176 (vst2_s16): Likewise. 7177 (vst2_p16): Likewise. 7178 (vst2_s32): Likewise. 7179 (vst2_u8): Likewise. 7180 (vst2_u16): Likewise. 7181 (vst2_u32): Likewise. 7182 (vst2_f16): Likewise. 7183 (vst2_f32): Likewise. 7184 (vst2_p64): Likewise. 7185 (vst2q_s8): Likewise. 7186 (vst2q_p8): Likewise. 7187 (vst2q_s16): Likewise. 7188 (vst2q_p16): Likewise. 7189 (vst2q_s32): Likewise. 7190 (vst2q_s64): Likewise. 7191 (vst2q_u8): Likewise. 7192 (vst2q_u16): Likewise. 7193 (vst2q_u32): Likewise. 7194 (vst2q_u64): Likewise. 7195 (vst2q_f16): Likewise. 7196 (vst2q_f32): Likewise. 7197 (vst2q_f64): Likewise. 7198 (vst2q_p64): Likewise. 7199 (vst3_s64): Likewise. 7200 (vst3_u64): Likewise. 7201 (vst3_f64): Likewise. 7202 (vst3_s8): Likewise. 7203 (vst3_p8): Likewise. 7204 (vst3_s16): Likewise. 7205 (vst3_p16): Likewise. 7206 (vst3_s32): Likewise. 7207 (vst3_u8): Likewise. 7208 (vst3_u16): Likewise. 7209 (vst3_u32): Likewise. 7210 (vst3_f16): Likewise. 7211 (vst3_f32): Likewise. 7212 (vst3_p64): Likewise. 7213 (vst3q_s8): Likewise. 7214 (vst3q_p8): Likewise. 7215 (vst3q_s16): Likewise. 7216 (vst3q_p16): Likewise. 7217 (vst3q_s32): Likewise. 7218 (vst3q_s64): Likewise. 7219 (vst3q_u8): Likewise. 7220 (vst3q_u16): Likewise. 7221 (vst3q_u32): Likewise. 7222 (vst3q_u64): Likewise. 7223 (vst3q_f16): Likewise. 7224 (vst3q_f32): Likewise. 7225 (vst3q_f64): Likewise. 7226 (vst3q_p64): Likewise. 7227 (vst4_s64): Likewise. 7228 (vst4_u64): Likewise. 7229 (vst4_f64): Likewise. 7230 (vst4_s8): Likewise. 7231 (vst4_p8): Likewise. 7232 (vst4_s16): Likewise. 7233 (vst4_p16): Likewise. 7234 (vst4_s32): Likewise. 7235 (vst4_u8): Likewise. 7236 (vst4_u16): Likewise. 7237 (vst4_u32): Likewise. 7238 (vst4_f16): Likewise. 7239 (vst4_f32): Likewise. 7240 (vst4_p64): Likewise. 7241 (vst4q_s8): Likewise. 7242 (vst4q_p8): Likewise. 7243 (vst4q_s16): Likewise. 7244 (vst4q_p16): Likewise. 7245 (vst4q_s32): Likewise. 7246 (vst4q_s64): Likewise. 7247 (vst4q_u8): Likewise. 7248 (vst4q_u16): Likewise. 7249 (vst4q_u32): Likewise. 7250 (vst4q_u64): Likewise. 7251 (vst4q_f16): Likewise. 7252 (vst4q_f32): Likewise. 7253 (vst4q_f64): Likewise. 7254 (vst4q_p64): Likewise. 7255 (vtbx4_s8): Likewise. 7256 (vtbx4_u8): Likewise. 7257 (vtbx4_p8): Likewise. 7258 (vld1_bf16_x2): Likewise. 7259 (vld1q_bf16_x2): Likewise. 7260 (vld1_bf16_x3): Likewise. 7261 (vld1q_bf16_x3): Likewise. 7262 (vld1_bf16_x4): Likewise. 7263 (vld1q_bf16_x4): Likewise. 7264 (vld2_bf16): Likewise. 7265 (vld2q_bf16): Likewise. 7266 (vld2_dup_bf16): Likewise. 7267 (vld2q_dup_bf16): Likewise. 7268 (vld3_bf16): Likewise. 7269 (vld3q_bf16): Likewise. 7270 (vld3_dup_bf16): Likewise. 7271 (vld3q_dup_bf16): Likewise. 7272 (vld4_bf16): Likewise. 7273 (vld4q_bf16): Likewise. 7274 (vld4_dup_bf16): Likewise. 7275 (vld4q_dup_bf16): Likewise. 7276 (vst1_bf16_x2): Likewise. 7277 (vst1q_bf16_x2): Likewise. 7278 (vst1_bf16_x3): Likewise. 7279 (vst1q_bf16_x3): Likewise. 7280 (vst1_bf16_x4): Likewise. 7281 (vst1q_bf16_x4): Likewise. 7282 (vst2_bf16): Likewise. 7283 (vst2q_bf16): Likewise. 7284 (vst3_bf16): Likewise. 7285 (vst3q_bf16): Likewise. 7286 (vst4_bf16): Likewise. 7287 (vst4q_bf16): Likewise. 7288 (vld2_lane_bf16): Likewise. 7289 (vld2q_lane_bf16): Likewise. 7290 (vld3_lane_bf16): Likewise. 7291 (vld3q_lane_bf16): Likewise. 7292 (vld4_lane_bf16): Likewise. 7293 (vld4q_lane_bf16): Likewise. 7294 (vst2_lane_bf16): Likewise. 7295 (vst2q_lane_bf16): Likewise. 7296 (vst3_lane_bf16): Likewise. 7297 (vst3q_lane_bf16): Likewise. 7298 (vst4_lane_bf16): Likewise. 7299 (vst4q_lane_bf16): Likewise. 7300 * config/aarch64/geniterators.sh: Modify iterator regex to 7301 match new vector-tuple modes. 7302 * config/aarch64/iterators.md (insn_count): Extend mode 7303 attribute with vector-tuple type information. 7304 (nregs): Likewise. 7305 (Vendreg): Likewise. 7306 (Vetype): Likewise. 7307 (Vtype): Likewise. 7308 (VSTRUCT_2D): New mode iterator. 7309 (VSTRUCT_2DNX): Likewise. 7310 (VSTRUCT_2DX): Likewise. 7311 (VSTRUCT_2Q): Likewise. 7312 (VSTRUCT_2QD): Likewise. 7313 (VSTRUCT_3D): Likewise. 7314 (VSTRUCT_3DNX): Likewise. 7315 (VSTRUCT_3DX): Likewise. 7316 (VSTRUCT_3Q): Likewise. 7317 (VSTRUCT_3QD): Likewise. 7318 (VSTRUCT_4D): Likewise. 7319 (VSTRUCT_4DNX): Likewise. 7320 (VSTRUCT_4DX): Likewise. 7321 (VSTRUCT_4Q): Likewise. 7322 (VSTRUCT_4QD): Likewise. 7323 (VSTRUCT_D): Likewise. 7324 (VSTRUCT_Q): Likewise. 7325 (VSTRUCT_QD): Likewise. 7326 (VSTRUCT_ELT): New mode attribute. 7327 (vstruct_elt): Likewise. 7328 * genmodes.c (VECTOR_MODE): Add default prefix and order 7329 parameters. 7330 (VECTOR_MODE_WITH_PREFIX): Define. 7331 (make_vector_mode): Add mode prefix and order parameters. 7332 73332021-11-04 Jonathan Wright <jonathan.wright@arm.com> 7334 7335 * expmed.c (extract_bit_field_1): Ensure modes are tieable. 7336 73372021-11-04 Jonathan Wright <jonathan.wright@arm.com> 7338 7339 * expr.c (emit_group_load_1): Remove historic workaround. 7340 73412021-11-04 Jonathan Wright <jonathan.wright@arm.com> 7342 7343 * config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins): 7344 Factor out main loop to... 7345 (aarch64_init_simd_builtin_functions): This new function. 7346 (register_tuple_type): Define. 7347 (aarch64_scalar_builtin_type_p): Define. 7348 (handle_arm_neon_h): Define. 7349 * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): Handle 7350 pragma for arm_neon.h. 7351 * config/aarch64/aarch64-protos.h (aarch64_advsimd_struct_mode_p): 7352 Declare. 7353 (handle_arm_neon_h): Likewise. 7354 * config/aarch64/aarch64.c (aarch64_advsimd_struct_mode_p): 7355 Remove static modifier. 7356 * config/aarch64/arm_neon.h (target): Remove Neon vector 7357 structure type definitions. 7358 73592021-11-04 Aldy Hernandez <aldyh@redhat.com> 7360 7361 PR tree-optimization/102943 7362 * gimple-range-path.cc (path_range_query::range_on_path_entry): 7363 Prefer range_of_expr unless there are no statements in the BB. 7364 73652021-11-04 Aldy Hernandez <aldyh@redhat.com> 7366 7367 PR tree-optimization/102943 7368 * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): 7369 Avoid duplicate calculation of paths. 7370 73712021-11-04 Aldy Hernandez <aldyh@redhat.com> 7372 7373 PR tree-optimization/102943 7374 * gimple-range-path.cc (path_range_query::compute_phi_relations): 7375 Only compute relations for SSA names in the import list. 7376 (path_range_query::compute_outgoing_relations): Same. 7377 * gimple-range-path.h (path_range_query::import_p): New. 7378 73792021-11-04 Richard Biener <rguenther@suse.de> 7380 7381 PR rtl-optimization/103075 7382 * simplify-rtx.c (exact_int_to_float_conversion_p): Return 7383 false for a VOIDmode operand. 7384 73852021-11-04 Richard Sandiford <richard.sandiford@arm.com> 7386 7387 * config/aarch64/aarch64.c (aarch64_vector_costs): Make member 7388 variables private and add "m_" to their names. Remove is_loop. 7389 (aarch64_record_potential_advsimd_unrolling): Replace with... 7390 (aarch64_vector_costs::record_potential_advsimd_unrolling): ...this. 7391 (aarch64_analyze_loop_vinfo): Replace with... 7392 (aarch64_vector_costs::analyze_loop_vinfo): ...this. 7393 Move initialization of (m_)vec_flags to add_stmt_cost. 7394 (aarch64_analyze_bb_vinfo): Delete. 7395 (aarch64_count_ops): Replace with... 7396 (aarch64_vector_costs::count_ops): ...this. 7397 (aarch64_vector_costs::add_stmt_cost): Set m_vec_flags, 7398 using m_costing_for_scalar to test whether we're costing 7399 scalar or vector code. 7400 (aarch64_adjust_body_cost_sve): Replace with... 7401 (aarch64_vector_costs::adjust_body_cost_sve): ...this. 7402 (aarch64_adjust_body_cost): Replace with... 7403 (aarch64_vector_costs::adjust_body_cost): ...this. 7404 (aarch64_vector_costs::finish_cost): Use m_vinfo instead of is_loop. 7405 74062021-11-04 Richard Sandiford <richard.sandiford@arm.com> 7407 7408 * target.def (targetm.vectorize.init_cost): Replace with... 7409 (targetm.vectorize.create_costs): ...this. 7410 (targetm.vectorize.add_stmt_cost): Delete. 7411 (targetm.vectorize.finish_cost): Likewise. 7412 (targetm.vectorize.destroy_cost_data): Likewise. 7413 * doc/tm.texi.in (TARGET_VECTORIZE_INIT_COST): Replace with... 7414 (TARGET_VECTORIZE_CREATE_COSTS): ...this. 7415 (TARGET_VECTORIZE_ADD_STMT_COST): Delete. 7416 (TARGET_VECTORIZE_FINISH_COST): Likewise. 7417 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 7418 * doc/tm.texi: Regenerate. 7419 * tree-vectorizer.h (vec_info::vec_info): Remove target_cost_data 7420 parameter. 7421 (vec_info::target_cost_data): Change from a void * to a vector_costs *. 7422 (vector_costs): New class. 7423 (init_cost): Take a vec_info and return a vector_costs. 7424 (dump_stmt_cost): Remove data parameter. 7425 (add_stmt_cost): Replace vinfo and data parameters with a vector_costs. 7426 (add_stmt_costs): Likewise. 7427 (finish_cost): Replace data parameter with a vector_costs. 7428 (destroy_cost_data): Delete. 7429 * tree-vectorizer.c (dump_stmt_cost): Remove data argument and 7430 don't print it. 7431 (vec_info::vec_info): Remove the target_cost_data parameter and 7432 initialize the member variable to null instead. 7433 (vec_info::~vec_info): Delete target_cost_data instead of calling 7434 destroy_cost_data. 7435 (vector_costs::add_stmt_cost): New function. 7436 (vector_costs::finish_cost): Likewise. 7437 (vector_costs::record_stmt_cost): Likewise. 7438 (vector_costs::adjust_cost_for_freq): Likewise. 7439 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Update 7440 call to vec_info::vec_info. 7441 (vect_compute_single_scalar_iteration_cost): Update after above 7442 changes to costing interface. 7443 (vect_analyze_loop_operations): Likewise. 7444 (vect_estimate_min_profitable_iters): Likewise. 7445 (vect_analyze_loop_2): Initialize LOOP_VINFO_TARGET_COST_DATA 7446 at the start_over point, where it needs to be recreated after 7447 trying without slp. Update retry code accordingly. 7448 * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Update call 7449 to vec_info::vec_info. 7450 (vect_slp_analyze_operation): Update after above changes to costing 7451 interface. 7452 (vect_bb_vectorization_profitable_p): Likewise. 7453 * targhooks.h (default_init_cost): Replace with... 7454 (default_vectorize_create_costs): ...this. 7455 (default_add_stmt_cost): Delete. 7456 (default_finish_cost, default_destroy_cost_data): Likewise. 7457 * targhooks.c (default_init_cost): Replace with... 7458 (default_vectorize_create_costs): ...this. 7459 (default_add_stmt_cost): Delete, moving logic to vector_costs instead. 7460 (default_finish_cost, default_destroy_cost_data): Delete. 7461 * config/aarch64/aarch64.c (aarch64_vector_costs): Inherit from 7462 vector_costs. Add a constructor. 7463 (aarch64_init_cost): Replace with... 7464 (aarch64_vectorize_create_costs): ...this. 7465 (aarch64_add_stmt_cost): Replace with... 7466 (aarch64_vector_costs::add_stmt_cost): ...this. Use record_stmt_cost 7467 to adjust the cost for inner loops. 7468 (aarch64_finish_cost): Replace with... 7469 (aarch64_vector_costs::finish_cost): ...this. 7470 (aarch64_destroy_cost_data): Delete. 7471 (TARGET_VECTORIZE_INIT_COST): Replace with... 7472 (TARGET_VECTORIZE_CREATE_COSTS): ...this. 7473 (TARGET_VECTORIZE_ADD_STMT_COST): Delete. 7474 (TARGET_VECTORIZE_FINISH_COST): Likewise. 7475 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 7476 * config/i386/i386.c (ix86_vector_costs): New structure. 7477 (ix86_init_cost): Replace with... 7478 (ix86_vectorize_create_costs): ...this. 7479 (ix86_add_stmt_cost): Replace with... 7480 (ix86_vector_costs::add_stmt_cost): ...this. Use adjust_cost_for_freq 7481 to adjust the cost for inner loops. 7482 (ix86_finish_cost, ix86_destroy_cost_data): Delete. 7483 (TARGET_VECTORIZE_INIT_COST): Replace with... 7484 (TARGET_VECTORIZE_CREATE_COSTS): ...this. 7485 (TARGET_VECTORIZE_ADD_STMT_COST): Delete. 7486 (TARGET_VECTORIZE_FINISH_COST): Likewise. 7487 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 7488 * config/rs6000/rs6000.c (TARGET_VECTORIZE_INIT_COST): Replace with... 7489 (TARGET_VECTORIZE_CREATE_COSTS): ...this. 7490 (TARGET_VECTORIZE_ADD_STMT_COST): Delete. 7491 (TARGET_VECTORIZE_FINISH_COST): Likewise. 7492 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 7493 (rs6000_cost_data): Inherit from vector_costs. 7494 Add a constructor. Drop loop_info, cost and costing_for_scalar 7495 in favor of the corresponding vector_costs member variables. 7496 Add "m_" to the names of the remaining member variables and 7497 initialize them. 7498 (rs6000_density_test): Replace with... 7499 (rs6000_cost_data::density_test): ...this. 7500 (rs6000_init_cost): Replace with... 7501 (rs6000_vectorize_create_costs): ...this. 7502 (rs6000_update_target_cost_per_stmt): Replace with... 7503 (rs6000_cost_data::update_target_cost_per_stmt): ...this. 7504 (rs6000_add_stmt_cost): Replace with... 7505 (rs6000_cost_data::add_stmt_cost): ...this. Use adjust_cost_for_freq 7506 to adjust the cost for inner loops. 7507 (rs6000_adjust_vect_cost_per_loop): Replace with... 7508 (rs6000_cost_data::adjust_vect_cost_per_loop): ...this. 7509 (rs6000_finish_cost): Replace with... 7510 (rs6000_cost_data::finish_cost): ...this. Group loop code 7511 into a single if statement and pass the loop_vinfo down to 7512 subroutines. 7513 (rs6000_destroy_cost_data): Delete. 7514 75152021-11-04 Aldy Hernandez <aldyh@redhat.com> 7516 7517 PR tree-optimization/103062 7518 PR tree-optimization/103062 7519 * value-pointer-equiv.cc (ssa_equiv_stack::ssa_equiv_stack): 7520 Increase size of allocation by 1. 7521 (ssa_equiv_stack::push_replacement): Grow as needed. 7522 (ssa_equiv_stack::get_replacement): Same. 7523 (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. 7524 (pointer_equiv_analyzer::~pointer_equiv_analyzer): Remove delete. 7525 (pointer_equiv_analyzer::set_global_equiv): Grow as needed. 7526 (pointer_equiv_analyzer::get_equiv): Same. 7527 (pointer_equiv_analyzer::get_equiv_expr): Remove const. 7528 * value-pointer-equiv.h (class pointer_equiv_analyzer): Remove 7529 const markers. Use auto_vec instead of tree *. 7530 75312021-11-04 Richard Biener <rguenther@suse.de> 7532 7533 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Remove always 7534 true parameter and inline valueization. 7535 (vn_nary_op_lookup_1): Inline valueization from ... 7536 (vn_nary_op_compute_hash): ... here and remove it here. 7537 * tree-ssa-pre.c (phi_translate_1): Do not valueize 7538 before vn_nary_lookup_pieces. 7539 (get_representative_for): Mark created SSA representatives 7540 as visited. 7541 75422021-11-04 Richard Sandiford <richard.sandiford@arm.com> 7543 7544 * simplify-rtx.c (simplify_context::simplify_gen_vec_select): Assert 7545 that the operand has a vector mode. Use subreg_lowpart_offset 7546 to test whether an index corresponds to the low part. 7547 75482021-11-04 Richard Sandiford <richard.sandiford@arm.com> 7549 7550 * read-rtl.c: Remove dead !GENERATOR_FILE block. 7551 * read-rtl-function.c (function_reader::consolidate_singletons): 7552 Generate canonical CONST_VECTORs. 7553 75542021-11-04 liuhongt <hongtao.liu@intel.com> 7555 7556 PR target/101989 7557 * config/i386/predicates.md (reg_or_notreg_operand): Rename to .. 7558 (regmem_or_bitnot_regmem_operand): .. and extend to handle 7559 memory_operand. 7560 * config/i386/sse.md (*<avx512>_vpternlog<mode>_1): Force_reg 7561 the operands which are required to be register_operand. 7562 (*<avx512>_vpternlog<mode>_2): Ditto. 7563 (*<avx512>_vpternlog<mode>_3): Ditto. 7564 (*<avx512>_vternlog<mode>_all): Disallow embeded broadcast for 7565 vector HFmodes since it's not a real AVX512FP16 instruction. 7566 75672021-11-04 liuhongt <hongtao.liu@intel.com> 7568 7569 PR target/102464 7570 * match.pd: simplify (trunc)copysign((extend)a, (extend)b) to 7571 .COPYSIGN (a,b) when a and b are same type as the truncation 7572 type and has less precision than extend type. 7573 75742021-11-04 Richard Biener <rguenther@suse.de> 7575 7576 * doc/generic.texi: Update TARGET_MEM_REF and MEM_REF 7577 documentation. 7578 75792021-11-04 Hongyu Wang <hongyu.wang@intel.com> 7580 7581 * config/i386/sse.md (VI2_AVX512VNNIBW): New mode iterator. 7582 (VI1_AVX512VNNI): Likewise. 7583 (SDOT_VPDP_SUF): New mode_attr. 7584 (VI1SI): Likewise. 7585 (vi1si): Likewise. 7586 (sdot_prod<mode>): Use VI2_AVX512F iterator, expand to 7587 vpdpwssd when VNNI targets available. 7588 (usdot_prod<mode>): New expander for vector QImode. 7589 75902021-11-04 Hongyu Wang <hongyu.wang@intel.com> 7591 7592 * config/i386/amxtileintrin.h (_tile_loadd_internal): Add 7593 parentheses to base and stride. 7594 (_tile_stream_loadd_internal): Likewise. 7595 (_tile_stored_internal): Likewise. 7596 75972021-11-03 Maciej W. Rozycki <macro@embecosm.com> 7598 7599 * config/riscv/riscv.c (riscv_class_max_nregs): Swap the 7600 arguments to `reg_class_subset_p'. 7601 76022021-11-03 Joseph Myers <joseph@codesourcery.com> 7603 7604 PR c/103031 7605 * fold-const.c (fold_init): New function. 7606 * fold-const.h (fold_init): New prototype. 7607 76082021-11-03 Andrew MacLeod <amacleod@redhat.com> 7609 7610 * params.opt (param_vrp2_mode): Make ranger the default for VRP2. 7611 76122021-11-03 Andrew MacLeod <amacleod@redhat.com> 7613 7614 * gimple-range-fold.cc (fold_using_range::range_of_phi): Don't import 7615 a range from edge if arg == phidef. 7616 76172021-11-03 Andrew MacLeod <amacleod@redhat.com> 7618 7619 * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Test 7620 for constant before any other processing. 7621 76222021-11-03 Andrew MacLeod <amacleod@redhat.com> 7623 7624 * flag-types.h (RANGER_DEBUG_ALL): Fix values. 7625 76262021-11-03 Andrew MacLeod <amacleod@redhat.com> 7627 7628 * gimple-range.cc (gimple_ranger::gimple_ranger): Initialize current_bb. 7629 (gimple_ranger::range_of_expr): Pick up range_on_entry when there is 7630 no explcit context and current_bb is set. 7631 (gimple_ranger::fold_stmt): New. 7632 * gimple-range.h (current_bb, fold_stmt): New. 7633 * tree-vrp.c (rvrp_folder::fold_stmt): Call ranger's fold_stmt. 7634 76352021-11-03 Richard Biener <rguenther@suse.de> 7636 7637 PR tree-optimization/102970 7638 * tree-ssa-pre.c (phi_translate_1): Drop clique and base 7639 when translating a MEM_REF over a backedge. 7640 76412021-11-03 Philipp Tomsich <philipp.tomsich@vrull.eu> 7642 7643 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New Ampere-1 core. 7644 * config/aarch64/aarch64-tune.md: Regenerate. 7645 * config/aarch64/aarch64-cost-tables.h: Add extra costs for Ampere-1. 7646 * config/aarch64/aarch64.c: Add tuning structures for Ampere-1. 7647 * doc/invoke.texi: Add documentation for Ampere-1 core. 7648 76492021-11-03 Wilco Dijkstra <wdijkstr@arm.com> 7650 7651 * config/aarch64/aarch64.md (movsi): Add alternative for GOT accesses. 7652 (movdi): Likewise. 7653 (ldr_got_small_<mode>): Remove pattern. 7654 (ldr_got_small_sidi): Likewise. 7655 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Keep 7656 GOT accesses as moves. 7657 (aarch64_print_operand): Correctly print got_lo12 in L specifier. 7658 (aarch64_mov_operand_p): Make GOT accesses valid move operands. 7659 * config/aarch64/constraints.md: Add new constraint Usw for GOT access. 7660 76612021-11-03 Martin Liska <mliska@suse.cz> 7662 7663 * gcov.c (read_line): Remove dead variable. 7664 76652021-11-03 Martin Liska <mliska@suse.cz> 7666 7667 PR bootstrap/102828 7668 * ipa-fnsummary.c (edge_predicate_pool): Rename predicate class to ipa_predicate. 7669 (ipa_fn_summary::account_size_time): Likewise. 7670 (edge_set_predicate): Likewise. 7671 (set_hint_predicate): Likewise. 7672 (add_freqcounting_predicate): Likewise. 7673 (evaluate_conditions_for_known_args): Likewise. 7674 (evaluate_properties_for_edge): Likewise. 7675 (remap_freqcounting_preds_after_dup): Likewise. 7676 (ipa_fn_summary_t::duplicate): Likewise. 7677 (set_cond_stmt_execution_predicate): Likewise. 7678 (set_switch_stmt_execution_predicate): Likewise. 7679 (compute_bb_predicates): Likewise. 7680 (will_be_nonconstant_expr_predicate): Likewise. 7681 (will_be_nonconstant_predicate): Likewise. 7682 (phi_result_unknown_predicate): Likewise. 7683 (predicate_for_phi_result): Likewise. 7684 (analyze_function_body): Likewise. 7685 (compute_fn_summary): Likewise. 7686 (summarize_calls_size_and_time): Likewise. 7687 (estimate_calls_size_and_time): Likewise. 7688 (ipa_call_context::estimate_size_and_time): Likewise. 7689 (remap_edge_summaries): Likewise. 7690 (remap_freqcounting_predicate): Likewise. 7691 (ipa_merge_fn_summary_after_inlining): Likewise. 7692 (ipa_update_overall_fn_summary): Likewise. 7693 (read_ipa_call_summary): Likewise. 7694 (inline_read_section): Likewise. 7695 * ipa-fnsummary.h (struct ipa_freqcounting_predicate): Likewise. 7696 * ipa-predicate.c (predicate::add_clause): Likewise. 7697 (ipa_predicate::add_clause): Likewise. 7698 (predicate::or_with): Likewise. 7699 (ipa_predicate::or_with): Likewise. 7700 (predicate::evaluate): Likewise. 7701 (ipa_predicate::evaluate): Likewise. 7702 (predicate::probability): Likewise. 7703 (ipa_predicate::probability): Likewise. 7704 (dump_condition): Likewise. 7705 (dump_clause): Likewise. 7706 (predicate::dump): Likewise. 7707 (ipa_predicate::dump): Likewise. 7708 (predicate::debug): Likewise. 7709 (ipa_predicate::debug): Likewise. 7710 (predicate::remap_after_duplication): Likewise. 7711 (ipa_predicate::remap_after_duplication): Likewise. 7712 (predicate::remap_after_inlining): Likewise. 7713 (ipa_predicate::remap_after_inlining): Likewise. 7714 (predicate::stream_in): Likewise. 7715 (ipa_predicate::stream_in): Likewise. 7716 (predicate::stream_out): Likewise. 7717 (ipa_predicate::stream_out): Likewise. 7718 (add_condition): Likewise. 7719 * ipa-predicate.h (class predicate): Likewise. 7720 (class ipa_predicate): Likewise. 7721 (add_condition): Likewise. 7722 77232021-11-03 Richard Biener <rguenther@suse.de> 7724 7725 * bitmap.h (bitmap_bit_p): Change the return type to bool. 7726 * bitmap.c (bitmap_bit_p): Likewise. 7727 * sbitmap.h (bitmap_bit_p): Likewise. 7728 (bitmap_set_bit): Return whether the bit changed. 7729 (bitmap_clear_bit): Likewise. 7730 * tree-ssa.c (verify_vssa): Make use of the changed state 7731 from bitmap_set_bit. 7732 77332021-11-03 Richard Biener <rguenther@suse.de> 7734 7735 PR middle-end/103033 7736 * internal-fn.c (expand_DEFERRED_INIT): Elide the 7737 native_interpret_expr path in favor of folding the 7738 VIEW_CONVERT_EXPR generated when punning the RHS. 7739 77402021-11-03 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 7741 7742 * config/s390/s390.c (s390_loop_unroll_adjust): In case of early 7743 exit free bbs. 7744 77452021-11-03 Jan Hubicka <hubicka@ucw.cz> 7746 7747 PR ipa/103040 7748 * ipa-modref.c (callee_to_caller_flags): New function. 7749 (modref_eaf_analysis::analyze_ssa_name): Use it. 7750 (ipa_merge_modref_summary_after_inlining): Fix whitespace. 7751 77522021-11-02 Jan Hubicka <hubicka@ucw.cz> 7753 7754 * ipa-modref.c (modref_eaf_analysis::analyze_ssa_name): Revert 7755 accidental commit. 7756 77572021-11-02 Roger Sayle <roger@nextmovesoftware.com> 7758 Uro�� Bizjak <ubizjak@gmail.com> 7759 7760 * config/i386/i386.md (<any_rotate>ti3): Provide expansion for 7761 rotations by non-constant amounts. 7762 77632021-11-02 Jan Hubicka <hubicka@ucw.cz> 7764 7765 * ipa-modref.c: Fix anonymous namespace placement. 7766 (class modref_eaf_analysis): New class. 7767 (analyze_ssa_name_flags): Turn to ... 7768 (modref_eaf_analysis::analyze_ssa_name): ... this one. 7769 (merge_call_lhs_flags): Turn to ... 7770 (modref_eaf_analysis::merge_call_lhs_flags): .. this one 7771 (modref_eaf_analysis::merge_with_ssa_name): New member function. 7772 (record_escape_points): Turn to ... 7773 (modref_eaf_analysis::record_escape_points): ... this one. 7774 (analyze_parms): Updat 7775 (ipa_merge_modref_summary_after_inlining): Move to the end of file. 7776 77772021-11-02 Jan Hubicka <hubicka@ucw.cz> 7778 7779 * gimple.c (gimple_call_static_chain_flags): New function. 7780 * gimple.h (gimple_call_static_chain_flags): Declare 7781 * ipa-modref.c (modref_summary::modref_summary): Initialize 7782 static_chain_flags. 7783 (modref_summary_lto::modref_summary_lto): Likewise. 7784 (modref_summary::useful_p): Test static_chain_flags. 7785 (modref_summary_lto::useful_p): Likewise. 7786 (struct modref_summary_lto): Add static_chain_flags. 7787 (modref_summary::dump): Dump static_chain_flags. 7788 (modref_summary_lto::dump): Likewise. 7789 (struct escape_point): Add static_cahin_arg. 7790 (analyze_ssa_name_flags): Use gimple_call_static_chain_flags. 7791 (analyze_parms): Handle static chains. 7792 (modref_summaries::duplicate): Duplicate static_chain_flags. 7793 (modref_summaries_lto::duplicate): Likewise. 7794 (modref_write): Stream static_chain_flags. 7795 (read_section): Likewise. 7796 (modref_merge_call_site_flags): Handle static_chain_flags. 7797 * ipa-modref.h (struct modref_summary): Add static_chain_flags. 7798 * tree-ssa-structalias.c (handle_rhs_call): Use 7799 gimple_static_chain_flags. 7800 78012021-11-02 Richard Biener <rguenther@suse.de> 7802 7803 PR tree-optimization/103029 7804 * tree-vect-loop-manip.c (vect_loop_versioning): Ensure 7805 the PHI nodes in the loop maintain their original operand 7806 order. 7807 78082021-11-02 Jan Hubicka <hubicka@ucw.cz> 7809 7810 * tree-core.h (EAF_NOT_RETURNED_DIRECTLY): New flag. 7811 (EAF_NOREAD): Renumber. 7812 * ipa-modref.c (dump_eaf_flags): Dump EAF_NOT_RETURNED_DIRECTLY. 7813 (remove_useless_eaf_flags): Handle EAF_NOT_RETURNED_DIRECTLY 7814 (deref_flags): Likewise. 7815 (modref_lattice::init): Likewise. 7816 (modref_lattice::merge): Likewise. 7817 (merge_call_lhs_flags): Likewise. 7818 (analyze_ssa_name_flags): Likewise. 7819 (modref_merge_call_site_flags): Likewise. 7820 * tree-ssa-structalias.c (handle_call_arg): Likewise. 7821 78222021-11-02 Maciej W. Rozycki <macro@embecosm.com> 7823 7824 * config/riscv/riscv.c (riscv_rtx_costs): Correct a CONST_INT_P 7825 check and remove an unused local variable with shNadd/shNadd.uw 7826 pattern handling. 7827 78282021-11-02 Tamar Christina <tamar.christina@arm.com> 7829 7830 PR tree-optimization/103007 7831 * tree-vect-slp-patterns.c (complex_fms_pattern::matches): Add elem 7832 check. 7833 78342021-11-02 Richard Biener <rguenther@suse.de> 7835 7836 PR middle-end/103038 7837 * fold-const.c (native_interpret_expr): Handle OFFSET_TYPE. 7838 (can_native_interpret_type_p): Likewise. 7839 * internal-fn.c (expand_DEFERRED_INIT): View-convert the 7840 RHS if the LHS is an SSA name. 7841 78422021-11-02 Richard Sandiford <richard.sandiford@arm.com> 7843 7844 * langhooks.h (lang_hooks_for_types::simulate_record_decl): New hook. 7845 * langhooks-def.h (lhd_simulate_record_decl): Declare. 7846 (LANG_HOOKS_SIMULATE_RECORD_DECL): Define. 7847 (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it. 7848 * langhooks.c (lhd_simulate_record_decl): New function. 7849 78502021-11-02 Jakub Jelinek <jakub@redhat.com> 7851 7852 PR target/103020 7853 * config/i386/i386.c (ix86_vector_mode_supported_p): Reject vector 7854 modes with TImode inner mode if 32-bit. 7855 78562021-11-02 liuhongt <hongtao.liu@intel.com> 7857 7858 * doc/sourcebuild.texi (vect_slp_v4qi_store_unalign, 7859 vect_slp_v2hi_store_unalign, vect_slp_v4hi_store_unalign, 7860 vect_slp_v4si_store_unalign): Document efficient target. 7861 (vect_slp_v4qi_store_unalign_1, vect_slp_v8qi_store_unalign_1, 7862 vect_slp_v16qi_store_unalign_1): Ditto. 7863 (vect_slp_v2hi_store_align,vect_slp_v2qi_store_align, 7864 vect_slp_v2si_store_align, vect_slp_v4qi_store_align): Ditto. 7865 (struct_4char_block_move, struct_8char_block_move, 7866 struct_16char_block_move): Ditto. 7867 78682021-11-02 Roger Sayle <roger@nextmovesoftware.com> 7869 Jakub Jelinek <jakub@redhat.com> 7870 7871 PR target/102986 7872 * config/i386/i386-expand.c (ix86_expand_v1ti_to_ti, 7873 ix86_expand_ti_to_v1ti): New helper functions. 7874 (ix86_expand_v1ti_shift): Check if the amount operand is an 7875 integer constant, and expand as a TImode shift if it isn't. 7876 (ix86_expand_v1ti_rotate): Check if the amount operand is an 7877 integer constant, and expand as a TImode rotate if it isn't. 7878 (ix86_expand_v1ti_ashiftrt): New function to expand arithmetic 7879 right shifts of V1TImode quantities. 7880 * config/i386/i386-protos.h (ix86_expand_v1ti_ashift): Prototype. 7881 * config/i386/sse.md (ashlv1ti3, lshrv1ti3): Change constraints 7882 to QImode general_operand, and let the helper functions lower 7883 shifts by non-constant operands, as TImode shifts. Make 7884 conditional on TARGET_64BIT. 7885 (ashrv1ti3): New expander calling ix86_expand_v1ti_ashiftrt. 7886 (rotlv1ti3, rotrv1ti3): Change shift operand to QImode. 7887 Make conditional on TARGET_64BIT. 7888 78892021-11-02 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 7890 7891 * config/s390/s390.md ("*cc_to_int", "tabort", "*tabort_1", 7892 "*tabort_1_plus"): Remove operands non-null check. 7893 78942021-11-01 Martin Liska <mliska@suse.cz> 7895 7896 * opt-functions.awk: Add new sanity checking. 7897 * optc-gen.awk: Add new argument to integer_range_info. 7898 * params.opt: Update 2 params which have negative IntegerRange. 7899 79002021-11-01 qing zhao <qing.zhao@oracle.com> 7901 7902 * gimplify.c (gimplify_decl_expr): Do not add call to 7903 __builtin_clear_padding when a variable is a gimple register 7904 or it might not have padding. 7905 (gimplify_init_constructor): Likewise. 7906 79072021-11-01 Tamar Christina <tamar.christina@arm.com> 7908 7909 * config/arm/aarch-common-protos.h (struct vector_cost_table): Add 7910 movi, dup and extract costing fields. 7911 * config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs, 7912 thunderx_extra_costs, thunderx2t99_extra_costs, 7913 thunderx3t110_extra_costs, tsv110_extra_costs, a64fx_extra_costs): Use 7914 them. 7915 * config/arm/aarch-cost-tables.h (generic_extra_costs, 7916 cortexa53_extra_costs, cortexa57_extra_costs, cortexa76_extra_costs, 7917 exynosm1_extra_costs, xgene1_extra_costs): Likewise 7918 * config/aarch64/aarch64-simd.md (aarch64_simd_dup<mode>): Add r->w dup. 7919 * config/aarch64/aarch64.c (aarch64_rtx_costs): Add extra costs. 7920 79212021-11-01 Tamar Christina <tamar.christina@arm.com> 7922 7923 * cse.c (add_to_set): New. 7924 (find_sets_in_insn): Register constants in sets. 7925 (canonicalize_insn): Use auto_vec instead. 7926 (cse_insn): Try materializing using vec_dup. 7927 * rtl.h (simplify_context::simplify_gen_vec_select, 7928 simplify_gen_vec_select): New. 7929 * simplify-rtx.c (simplify_context::simplify_gen_vec_select): New. 7930 79312021-11-01 David Malcolm <dmalcolm@redhat.com> 7932 7933 * common.opt (fdiagnostics-escape-format=): New. 7934 (diagnostics_escape_format): New enum. 7935 (DIAGNOSTICS_ESCAPE_FORMAT_UNICODE): New enum value. 7936 (DIAGNOSTICS_ESCAPE_FORMAT_BYTES): Likewise. 7937 * diagnostic-format-json.cc (json_end_diagnostic): Add 7938 "escape-source" attribute. 7939 * diagnostic-show-locus.c 7940 (exploc_with_display_col::exploc_with_display_col): Replace 7941 "tabstop" param with a cpp_char_column_policy and add an "aspect" 7942 param. Use these to compute m_display_col accordingly. 7943 (struct char_display_policy): New struct. 7944 (layout::m_policy): New field. 7945 (layout::m_escape_on_output): New field. 7946 (def_policy): New function. 7947 (make_range): Update for changes to exploc_with_display_col ctor. 7948 (default_print_decoded_ch): New. 7949 (width_per_escaped_byte): New. 7950 (escape_as_bytes_width): New. 7951 (escape_as_bytes_print): New. 7952 (escape_as_unicode_width): New. 7953 (escape_as_unicode_print): New. 7954 (make_policy): New. 7955 (layout::layout): Initialize new fields. Update m_exploc ctor 7956 call for above change to ctor. 7957 (layout::maybe_add_location_range): Update for changes to 7958 exploc_with_display_col ctor. 7959 (layout::calculate_x_offset_display): Update for change to 7960 cpp_display_width. 7961 (layout::print_source_line): Pass policy 7962 to cpp_display_width_computation. Capture cpp_decoded_char when 7963 calling process_next_codepoint. Move printing of source code to 7964 m_policy.m_print_cb. 7965 (line_label::line_label): Pass in policy rather than context. 7966 (layout::print_any_labels): Update for change to line_label ctor. 7967 (get_affected_range): Pass in policy rather than context, updating 7968 calls to location_compute_display_column accordingly. 7969 (get_printed_columns): Likewise, also for cpp_display_width. 7970 (correction::correction): Pass in policy rather than tabstop. 7971 (correction::compute_display_cols): Pass m_policy rather than 7972 m_tabstop to cpp_display_width. 7973 (correction::m_tabstop): Replace with... 7974 (correction::m_policy): ...this. 7975 (line_corrections::line_corrections): Pass in policy rather than 7976 context. 7977 (line_corrections::m_context): Replace with... 7978 (line_corrections::m_policy): ...this. 7979 (line_corrections::add_hint): Update to use m_policy rather than 7980 m_context. 7981 (line_corrections::add_hint): Likewise. 7982 (layout::print_trailing_fixits): Likewise. 7983 (selftest::test_display_widths): New. 7984 (selftest::test_layout_x_offset_display_utf8): Update to use 7985 policy rather than tabstop. 7986 (selftest::test_one_liner_labels_utf8): Add test of escaping 7987 source lines. 7988 (selftest::test_diagnostic_show_locus_one_liner_utf8): Update to 7989 use policy rather than tabstop. 7990 (selftest::test_overlapped_fixit_printing): Likewise. 7991 (selftest::test_overlapped_fixit_printing_utf8): Likewise. 7992 (selftest::test_overlapped_fixit_printing_2): Likewise. 7993 (selftest::test_tab_expansion): Likewise. 7994 (selftest::test_escaping_bytes_1): New. 7995 (selftest::test_escaping_bytes_2): New. 7996 (selftest::diagnostic_show_locus_c_tests): Call the new tests. 7997 * diagnostic.c (diagnostic_initialize): Initialize 7998 context->escape_format. 7999 (convert_column_unit): Update to use default character width policy. 8000 (selftest::test_diagnostic_get_location_text): Likewise. 8001 * diagnostic.h (enum diagnostics_escape_format): New enum. 8002 (diagnostic_context::escape_format): New field. 8003 * doc/invoke.texi (-fdiagnostics-escape-format=): New option. 8004 (-fdiagnostics-format=): Add "escape-source" attribute to examples 8005 of JSON output, and document it. 8006 * input.c (location_compute_display_column): Pass in "policy" 8007 rather than "tabstop", passing to 8008 cpp_byte_column_to_display_column. 8009 (selftest::test_cpp_utf8): Update to use cpp_char_column_policy. 8010 * input.h (class cpp_char_column_policy): New forward decl. 8011 (location_compute_display_column): Pass in "policy" rather than 8012 "tabstop". 8013 * opts.c (common_handle_option): Handle 8014 OPT_fdiagnostics_escape_format_. 8015 * selftest.c (temp_source_file::temp_source_file): New ctor 8016 overload taking a size_t. 8017 * selftest.h (temp_source_file::temp_source_file): Likewise. 8018 80192021-11-01 Aldy Hernandez <aldyh@redhat.com> 8020 8021 * dbgcnt.def: Add debug counter for back_thread[12] and 8022 back_threadfull[12]. 8023 * passes.def: Pass "first" argument to each back threading pass. 8024 * tree-ssa-threadbackward.c (back_threader::back_threader): Add 8025 first argument. 8026 (back_threader::debug_counter): New. 8027 (back_threader::maybe_register_path): Call debug_counter. 8028 80292021-11-01 Aldy Hernandez <aldyh@redhat.com> 8030 8031 * tree-ssa-threadbackward.c (BT_NONE): New. 8032 (BT_SPEED): New. 8033 (BT_RESOLVE): New. 8034 (back_threader::back_threader): Add flags. 8035 Move loop initialization here. 8036 (back_threader::~back_threader): New. 8037 (back_threader::find_taken_edge_switch): Change solver and ranger 8038 to pointers. 8039 (back_threader::find_taken_edge_cond): Same. 8040 (back_threader::find_paths_to_names): Same. 8041 (back_threader::find_paths): Same. 8042 (back_threader::dump): Same. 8043 (try_thread_blocks): Merge into thread_blocks. 8044 (back_threader::thread_blocks): New. 8045 (do_early_thread_jumps): Merge into thread_blocks. 8046 (do_thread_jumps): Merge into thread_blocks. 8047 (back_threader::thread_through_all_blocks): Remove. 8048 80492021-11-01 Andrew MacLeod <amacleod@redhat.com> 8050 8051 PR tree-optimization/103003 8052 * value-relation.cc (dom_oracle::register_relation): If the 2 8053 ssa names are the same, don't register any relation. 8054 80552021-11-01 Dan Li <ashimida@linux.alibaba.com> 8056 8057 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Remove 8058 redundant check for calls_eh_return. 8059 * config/aarch64/aarch64.md (*do_return): Likewise. 8060 80612021-11-01 Xionghu Luo <luoxhu@linux.ibm.com> 8062 8063 * cfghooks.c (cfg_hook_duplicate_loop_to_header_edge): Rename 8064 duplicate_loop_to_header_edge to 8065 duplicate_loop_body_to_header_edge. 8066 (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. 8067 * cfghooks.h (struct cfg_hooks): Likewise. 8068 (cfg_hook_duplicate_loop_body_to_header_edge): Likewise. 8069 * cfgloopmanip.c (duplicate_loop_body_to_header_edge): Likewise. 8070 (clone_loop_to_header_edge): Likewise. 8071 * cfgloopmanip.h (duplicate_loop_body_to_header_edge): Likewise. 8072 * cfgrtl.c (struct cfg_hooks): Likewise. 8073 * doc/loop.texi: Likewise. 8074 * loop-unroll.c (unroll_loop_constant_iterations): Likewise. 8075 (unroll_loop_runtime_iterations): Likewise. 8076 (unroll_loop_stupid): Likewise. 8077 (apply_opt_in_copies): Likewise. 8078 * tree-cfg.c (struct cfg_hooks): Likewise. 8079 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. 8080 (try_peel_loop): Likewise. 8081 * tree-ssa-loop-manip.c (copy_phi_node_args): Likewise. 8082 (gimple_duplicate_loop_body_to_header_edge): Likewise. 8083 (tree_transform_and_unroll_loop): Likewise. 8084 * tree-ssa-loop-manip.h (gimple_duplicate_loop_body_to_header_edge): 8085 Likewise. 8086 80872021-11-01 Xionghu Luo <luoxhu@linux.ibm.com> 8088 8089 * cfgloopmanip.c (loop_version): Refactor loopify to 8090 loop_version. Move condition generation after loopify. 8091 (loopify): Delete. 8092 * cfgloopmanip.h (loopify): Delete. 8093 80942021-10-31 Jan Hubicka <hubicka@ucw.cz> 8095 8096 * ipa-fnsummary.c: Include tree-dfa.h. 8097 (points_to_local_or_readonly_memory_p): Return true on return 8098 slot writes. 8099 * ipa-modref.c (analyze_ssa_name_flags): Fix handling of copy 8100 statement. 8101 81022021-10-30 Tobias Burnus <tobias@codesourcery.com> 8103 8104 PR middle-end/102972 8105 * omp-low.c (omp_runtime_api_call): Use DECL_ASSEMBLER_NAME to get 8106 internal Fortran name; new permit_num_teams arg to permit 8107 omp_get_num_teams and omp_get_team_num. 8108 (scan_omp_1_stmt): Update call to it, add missing call for 8109 reverse offload, and check for strictly nested API calls in teams. 8110 81112021-10-30 Jakub Jelinek <jakub@redhat.com> 8112 8113 * gimplify.c (gimplify_omp_for): Diagnose threadprivate iterators. 8114 81152021-10-29 David Malcolm <dmalcolm@redhat.com> 8116 8117 * selftest.c (assert_streq): Add newlines when emitting non-equal 8118 non-NULL strings. 8119 81202021-10-29 David Malcolm <dmalcolm@redhat.com> 8121 8122 * Makefile.in: Fix syntax for reference to LIBDEPS in 8123 gengtype link rule. 8124 81252021-10-29 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 8126 8127 * doc/install.texi: Bump required minimum DejaGnu version. 8128 81292021-10-29 Aldy Hernandez <aldyh@redhat.com> 8130 Andrew MacLeod <amacleod@redhat.com> 8131 8132 * value-relation.cc (path_oracle::killing_def): Add a 8133 self-equivalence so we don't look to the root oracle. 8134 81352021-10-29 Aldy Hernandez <aldyh@redhat.com> 8136 8137 * passes.def: Replace the pass_thread_jumps before VRP* with 8138 pass_thread_jumps_full. Remove all pass_vrp_threader instances. 8139 * tree-ssa-threadbackward.c (pass_data_thread_jumps_full): 8140 Remove hyphen from "thread-full" name. 8141 81422021-10-29 Andrew MacLeod <amacleod@redhat.com> 8143 8144 PR tree-optimization/102983 8145 * gimple-range-cache.h (propagate_updated_value): Make public. 8146 * gimple-range.cc (gimple_ranger::range_of_stmt): Propagate exports 8147 when processing gcond stmts. 8148 81492021-10-29 Jan Hubicka <hubicka@ucw.cz> 8150 8151 * gimple.c (gimple_call_retslot_flags): New function. 8152 * gimple.h (gimple_call_retslot_flags): Declare. 8153 * ipa-modref.c: Include tree-cfg.h. 8154 (struct escape_entry): Turn parm_index to signed. 8155 (modref_summary_lto::modref_summary_lto): Add retslot_flags. 8156 (modref_summary::modref_summary): Initialize retslot_flags. 8157 (struct modref_summary_lto): Likewise. 8158 (modref_summary::useful_p): Check retslot_flags. 8159 (modref_summary_lto::useful_p): Likewise. 8160 (modref_summary::dump): Dump retslot_flags. 8161 (modref_summary_lto::dump): Likewise. 8162 (struct escape_point): Add hidden_args enum. 8163 (analyze_ssa_name_flags): Ignore return slot return; 8164 use gimple_call_retslot_flags. 8165 (record_escape_points): Break out from ... 8166 (analyze_parms): ... here; handle retslot_flags. 8167 (modref_summaries::duplicate): Duplicate retslot_flags. 8168 (modref_summaries_lto::duplicate): Likewise. 8169 (modref_write_escape_summary): Stream parm_index as signed. 8170 (modref_read_escape_summary): Likewise. 8171 (modref_write): Stream retslot_flags. 8172 (read_section): Likewise. 8173 (struct escape_map): Fix typo in comment. 8174 (update_escape_summary_1): Fix whitespace. 8175 (ipa_merge_modref_summary_after_inlining): Drop retslot_flags. 8176 (modref_merge_call_site_flags): Merge retslot_flags. 8177 * ipa-modref.h (struct modref_summary): Add retslot_flags. 8178 * tree-ssa-structalias.c (handle_rhs_call): Handle retslot_flags. 8179 81802021-10-29 Tamar Christina <tamar.christina@arm.com> 8181 8182 PR tree-optimization/102977 8183 * tree-vect-slp-patterns.c (vect_match_call_p): Remove. 8184 (vect_detect_pair_op): Add crosslane check. 8185 (vect_match_call_complex_mla): Remove. 8186 (class complex_mul_pattern): Update comment. 8187 (complex_mul_pattern::matches): Update detection. 8188 (class complex_fma_pattern): Remove. 8189 (complex_fma_pattern::matches): Remove. 8190 (complex_fma_pattern::recognize): Remove. 8191 (complex_fma_pattern::build): Remove. 8192 (class complex_fms_pattern): Update comment. 8193 (complex_fms_pattern::matches): Remove. 8194 (complex_operations_pattern::recognize): Remove complex_fma_pattern 8195 81962021-10-29 Jakub Jelinek <jakub@redhat.com> 8197 8198 * gimple-fold.c (gimple_fold_builtin_memset): Copy over location from 8199 call to store. 8200 82012021-10-29 Xionghu Luo <luoxhu@linux.ibm.com> 8202 8203 PR target/102868 8204 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): Add 8205 patterns match and emit for VSX xxpermdi. 8206 82072021-10-29 liuhongt <hongtao.liu@intel.com> 8208 8209 PR target/102464 8210 * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF): New 8211 function type. 8212 (V16HF_FTYPE_V16HF): Ditto. 8213 (V32HF_FTYPE_V32HF): Ditto. 8214 (V8HF_FTYPE_V8HF_ROUND): Ditto. 8215 (V16HF_FTYPE_V16HF_ROUND): Ditto. 8216 (V32HF_FTYPE_V32HF_ROUND): Ditto. 8217 * config/i386/i386-builtin.def ( IX86_BUILTIN_FLOORPH, 8218 IX86_BUILTIN_CEILPH, IX86_BUILTIN_TRUNCPH, 8219 IX86_BUILTIN_FLOORPH256, IX86_BUILTIN_CEILPH256, 8220 IX86_BUILTIN_TRUNCPH256, IX86_BUILTIN_FLOORPH512, 8221 IX86_BUILTIN_CEILPH512, IX86_BUILTIN_TRUNCPH512): New builtin. 8222 * config/i386/i386-builtins.c 8223 (ix86_builtin_vectorized_function): Enable vectorization for 8224 HFmode FLOOR/CEIL/TRUNC operation. 8225 * config/i386/i386-expand.c (ix86_expand_args_builtin): Handle 8226 new builtins. 8227 * config/i386/sse.md (rint<mode>2, nearbyint<mode>2): Extend 8228 to vector HFmodes. 8229 82302021-10-28 Aldy Hernandez <aldyh@redhat.com> 8231 Andrew MacLeod <amacleod@redhat.com> 8232 8233 * value-relation.cc (path_oracle::killing_def): Walk the 8234 equivalency list and remove SSA from any equivalencies. 8235 82362021-10-28 Stafford Horne <shorne@gmail.com> 8237 8238 * config/or1k/or1k.h (PROFILE_HOOK): Add return address argument 8239 to _mcount. 8240 82412021-10-28 Jakub Jelinek <jakub@redhat.com> 8242 8243 PR tree-optimization/102951 8244 * fold-const.h (address_compare): Declare. 8245 * fold-const.c (address_compare): New function. 8246 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Use 8247 address_compare helper. 8248 (minmax cmp (convert1?@2 addr@0) (convert2?@3 addr@1)): New 8249 simplification. 8250 82512021-10-28 Andrew MacLeod <amacleod@redhat.com> 8252 8253 * vr-values.c (simplify_using_ranges::fold_cond): Change fold message. 8254 82552021-10-28 Andrew MacLeod <amacleod@redhat.com> 8256 8257 PR tree-optimization/102940 8258 * tree-vrp.c (execute_ranger_vrp): Reset scev. 8259 82602021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org> 8261 8262 * config/nios2/linux.h (MUSL_DYNAMIC_LINKER): Add musl linker 8263 82642021-10-28 Richard Purdie <richard.purdie@linuxfoundation.org> 8265 8266 * configure: Regenerate. 8267 * configure.ac: Use CPPFLAGS_FOR_BUILD for GMPINC 8268 82692021-10-28 Eric Botcazou <ebotcazou@adacore.com> 8270 8271 * doc/invoke.texi (%X): Remove obsolete reference to -Wl. 8272 82732021-10-28 Richard Biener <rguenther@suse.de> 8274 8275 PR middle-end/84407 8276 * fold-const.c (fold_convert_const): Avoid int to float 8277 constant folding with -frounding-math and inexact result. 8278 * simplify-rtx.c (simplify_const_unary_operation): Likewise 8279 for both float and unsigned_float. 8280 82812021-10-28 Aldy Hernandez <aldyh@redhat.com> 8282 8283 * tree-ssa-threadbackward.c 8284 (back_threader::find_taken_edge_switch): Use find_case_label_range 8285 instead of find_taken_edge. 8286 82872021-10-28 Aldy Hernandez <aldyh@redhat.com> 8288 8289 * tree-ssa-threadbackward.c (class back_threader_registry): 8290 Inherit from back_jt_path_registry. 8291 (back_threader_registry::thread_through_all_blocks): Remove. 8292 (back_threader_registry::register_path): Remove 8293 m_lowlevel_registry prefix. 8294 82952021-10-28 Richard Biener <rguenther@suse.de> 8296 8297 PR middle-end/57245 8298 * fold-const.c (fold_convert_const_real_from_real): Honor 8299 -frounding-math if the conversion is not exact. 8300 * simplify-rtx.c (simplify_const_unary_operation): Do not 8301 simplify FLOAT_TRUNCATE with sign dependent rounding. 8302 83032021-10-28 Richard Biener <rguenther@suse.de> 8304 8305 PR tree-optimization/102949 8306 * tree-vect-stmts.c (ensure_base_align): Look at the 8307 dr_info of a group leader and assert we are looking at 8308 one with analyzed alignment. 8309 83102021-10-28 Kewen Lin <linkw@linux.ibm.com> 8311 8312 PR target/102767 8313 * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Consider 8314 V1T1 mode for unaligned load and store. 8315 83162021-10-28 Kito Cheng <kito.cheng@sifive.com> 8317 8318 * config/riscv/riscv.md (zero_extendsidi2_internal): Allow ZBB 8319 use this pattern. 8320 83212021-10-28 Kito Cheng <kito.cheng@sifive.com> 8322 8323 * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add `i` to 8324 CANONICAL_ORDER. 8325 83262021-10-28 Alexandre Oliva <oliva@adacore.com> 8327 8328 * common.opt (fharden-compares): New. 8329 (fharden-conditional-branches): New. 8330 * doc/invoke.texi: Document new options. 8331 * gimple-harden-conditionals.cc: New. 8332 * Makefile.in (OBJS): Build it. 8333 * passes.def: Add new passes. 8334 * tree-pass.h (make_pass_harden_compares): Declare. 8335 (make_pass_harden_conditional_branches): Declare. 8336 83372021-10-28 Xionghu Luo <luoxhu@linux.ibm.com> 8338 8339 PR target/94613 8340 * config/rs6000/altivec.md: Add vsx register constraints. 8341 * config/rs6000/vsx.md (vsx_xxsel<mode>): Delete. 8342 (vsx_xxsel<mode>2): Likewise. 8343 (vsx_xxsel<mode>3): Likewise. 8344 (vsx_xxsel<mode>4): Likewise. 8345 83462021-10-28 Xionghu Luo <luoxhu@linux.ibm.com> 8347 8348 PR target/94613 8349 * config/rs6000/altivec.md (*altivec_vsel<mode>): Change to ... 8350 (altivec_vsel<mode>): ... this and update define. 8351 (*altivec_vsel<mode>_uns): Delete. 8352 (altivec_vsel<mode>2): New define_insn. 8353 (altivec_vsel<mode>3): Likewise. 8354 (altivec_vsel<mode>4): Likewise. 8355 * config/rs6000/rs6000-call.c (altivec_expand_vec_sel_builtin): New. 8356 (altivec_expand_builtin): Call altivec_expand_vec_sel_builtin to expand 8357 vel_sel. 8358 * config/rs6000/rs6000.c (rs6000_emit_vector_cond_expr): Use bit-wise 8359 selection instead of per element. 8360 * config/rs6000/vector.md: 8361 * config/rs6000/vsx.md (*vsx_xxsel<mode>): Change to ... 8362 (vsx_xxsel<mode>): ... this and update define. 8363 (*vsx_xxsel<mode>_uns): Delete. 8364 (vsx_xxsel<mode>2): New define_insn. 8365 (vsx_xxsel<mode>3): Likewise. 8366 (vsx_xxsel<mode>4): Likewise. 8367 83682021-10-28 Hongyu Wang <hongyu.wang@intel.com> 8369 8370 * config/i386/i386.c (use_rsqrt_p): Add mode parameter, enable 8371 HFmode rsqrt without TARGET_SSE_MATH. 8372 (ix86_optab_supported_p): Refactor rint, adjust floor, ceil, 8373 btrunc condition to be restricted by -ftrapping-math, adjust 8374 use_rsqrt_p function call. 8375 * config/i386/i386.md (rcphf2): New define_insn. 8376 (rsqrthf2): Likewise. 8377 * config/i386/sse.md (div<mode>3): Change VF2H to VF2. 8378 (div<mode>3): New expander for HF mode. 8379 (rsqrt<mode>2): Likewise. 8380 (*avx512fp16_vmrcpv8hf2): New define_insn for rpad pass. 8381 (*avx512fp16_vmrsqrtv8hf2): Likewise. 8382 83832021-10-27 Saagar Jha <saagar@saagarjha.com> 8384 8385 * config.gcc: Adjust for Darwin21. 8386 * config/darwin-c.c (macosx_version_as_macro): Likewise. 8387 * config/darwin-driver.c (validate_macosx_version_min): 8388 Likewise. 8389 (darwin_find_version_from_kernel): Likewise. 8390 83912021-10-27 Aldy Hernandez <aldyh@redhat.com> 8392 8393 * gimple-range-path.cc 8394 (path_range_query::range_defined_in_block): Call killing_def. 8395 83962021-10-27 Aldy Hernandez <aldyh@redhat.com> 8397 8398 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Dump 8399 operands as well as relation. 8400 * gimple-range-path.cc 8401 (path_range_query::compute_ranges_in_block): Compute PHI relations 8402 first. Compute outgoing relations at the end. 8403 (path_range_query::compute_ranges): Remove call to compute_relations. 8404 (path_range_query::compute_relations): Remove. 8405 (path_range_query::maybe_register_phi_relation): New. 8406 (path_range_query::compute_phi_relations): Abstract out 8407 registering one PHI relation to... 8408 (path_range_query::compute_outgoing_relations): ...here. 8409 * gimple-range-path.h (class path_range_query): Remove 8410 compute_relations. 8411 Add maybe_register_phi_relation. 8412 84132021-10-27 Aldy Hernandez <aldyh@redhat.com> 8414 Andrew MacLeod <amacleod@redhat.com> 8415 8416 * value-relation.cc (path_oracle::killing_def): Kill second 8417 order relations. 8418 84192021-10-27 Martin Jambor <mjambor@suse.cz> 8420 8421 * ipa-cp.c (good_cloning_opportunity_p): Decide whether to use 8422 profile feedback depending on their local availability. 8423 84242021-10-27 Martin Jambor <mjambor@suse.cz> 8425 8426 * params.opt (param_ipa_cp_profile_count_base): New parameter. 8427 * doc/invoke.texi (Optimize Options): Add entry for 8428 ipa-cp-profile-count-base. 8429 * ipa-cp.c (max_count): Replace with base_count, replace all 8430 occurrences too, unless otherwise stated. 8431 (ipcp_cloning_candidate_p): identify mostly-directly called 8432 functions based on their counts, not max_count. 8433 (compare_edge_profile_counts): New function. 8434 (ipcp_propagate_stage): Instead of setting max_count, find the 8435 appropriate edge count in a sorted vector of counts of eligible 8436 edges and make it the base_count. 8437 84382021-10-27 Martin Jambor <mjambor@suse.cz> 8439 8440 * ipa-cp.c (struct caller_statistics): New fields rec_count_sum, 8441 n_nonrec_calls and itself, document all fields. 8442 (init_caller_stats): Initialize the above new fields. 8443 (gather_caller_stats): Gather self-recursive counts and calls number. 8444 (get_info_about_necessary_edges): Gather counts of self-recursive and 8445 other edges bringing in the requested value separately. 8446 (dump_profile_updates): Rework to dump info about a single node only. 8447 (lenient_count_portion_handling): New function. 8448 (struct gather_other_count_struct): New type. 8449 (gather_count_of_non_rec_edges): New function. 8450 (struct desc_incoming_count_struct): New type. 8451 (analyze_clone_icoming_counts): New function. 8452 (adjust_clone_incoming_counts): Likewise. 8453 (update_counts_for_self_gen_clones): Likewise. 8454 (update_profiling_info): Rewritten. 8455 (update_specialized_profile): Adjust call to dump_profile_updates. 8456 (create_specialized_node): Do not update profiling info. 8457 (decide_about_value): New parameter self_gen_clones, either push new 8458 clones into it or updat their profile counts. For self-recursively 8459 generated values, use a portion of the node count instead of count 8460 from self-recursive edges to estimate goodness. 8461 (decide_whether_version_node): Gather clones for self-generated values 8462 in a new vector, update their profiles at once at the end. 8463 84642021-10-27 Richard Biener <rguenther@suse.de> 8465 8466 * tree-vectorizer.c (vect_transform_loops): New function, 8467 split out from ... 8468 (try_vectorize_loop_1): ... here. Simplify as epilogues 8469 are now fully handled in the split part. 8470 84712021-10-27 Jakub Jelinek <jakub@redhat.com> 8472 8473 * omp-expand.c (expand_omp_for_init_counts): Handle non-rectangular 8474 iterators with pointer types. 8475 (expand_omp_for_init_vars, extract_omp_for_update_vars): Likewise. 8476 84772021-10-26 Martin Sebor <msebor@redhat.com> 8478 8479 PR tree-optimization/102238 8480 PR tree-optimization/102919 8481 * gimple-ssa-sprintf.c (get_string_length): Add an argument. 8482 (array_elt_at_offset): Move to pointer-query. 8483 (set_aggregate_size_and_offset): New function. 8484 (field_at_offset): Move to pointer-query. 8485 (get_origin_and_offset): Rename... 8486 (get_origin_and_offset_r): this. Add an argument. Make aggregate 8487 handling more robust. 8488 (get_origin_and_offset): New. 8489 (alias_offset): Add an argument. 8490 (format_string): Use subobject size determined by get_origin_and_offset. 8491 * pointer-query.cc (field_at_offset): Move from gimple-ssa-sprintf.c. 8492 Improve/correct handling of aggregates. 8493 (array_elt_at_offset): Same. 8494 * pointer-query.h (field_at_offset): Declare. 8495 (array_elt_at_offset): Declare. 8496 84972021-10-26 Martin Sebor <msebor@redhat.com> 8498 8499 * builtins.c (check_strncat_sizes): Pass access_data ctor additional 8500 arguments. 8501 (expand_builtin_memcmp): Move code to gimple-ssa-warn-access.cc. 8502 (expand_builtin_fork_or_exec): Same. 8503 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Pass 8504 compute_objsize additional arguments. 8505 (inbounds_memaccess_p): Same. 8506 (array_bounds_checker::check_array_bounds): Add an assert. Stash 8507 statement in a member. 8508 (check_array_bounds_dom_walker::before_dom_children): Same. 8509 * gimple-array-bounds.h (array_bounds_checker::m_stmt): New member. 8510 * gimple-ssa-sprintf.c (get_destination_size): Add an argument. 8511 (handle_printf_call): Pass a new argument. 8512 * gimple-ssa-warn-access.cc (get_size_range): Add an argument. 8513 (check_access): Add an argument and pass it along to callees. 8514 (check_read_access): Make a member function. 8515 (pass_waccess::check_strcat): Pass access_data ctor additional 8516 arguments. 8517 (pass_waccess::check_strncat): Same. 8518 (pass_waccess::check_stxcpy): Same. 8519 (pass_waccess::check_stxncpy): Same. 8520 (pass_waccess::check_strncmp): Same. 8521 (pass_waccess::check_read_access): Same. 8522 (pass_waccess::check_builtin): Same. 8523 (pass_waccess::maybe_check_access_sizes): Same. 8524 (pass_waccess::maybe_check_dealloc_call): Same. 8525 * gimple-ssa-warn-access.h (check_read_access): Declare a new 8526 member function. 8527 * pointer-query.cc (compute_objsize_r): Add an argument. 8528 (gimple_call_return_array): Same. 8529 (gimple_call_alloc_size): Same. 8530 (access_ref::access_ref): Same. 8531 (access_ref::get_ref): Same. 8532 (pointer_query::get_ref): Same. 8533 (handle_min_max_size): Pass an arguments to callees. 8534 (handle_array_ref): Add an argument. 8535 (handle_mem_ref): Same. 8536 (compute_objsize): Same. 8537 * pointer-query.h (struct access_ref): Adjust signatures. 8538 (struct access_data): Same. 8539 (gimple_call_alloc_size): Add an argument. 8540 (gimple_parm_array_size): Same. 8541 (compute_objsize): Same. 8542 * tree-ssa-strlen.c (strlen_pass::adjust_last_stmt): Pass an additional 8543 argument to compute_objsize. 8544 (strlen_pass::maybe_warn_overflow): Same. 8545 (maybe_diag_stxncpy_trunc): Same. 8546 85472021-10-26 Martin Sebor <msebor@redhat.com> 8548 8549 PR middle-end/102453 8550 * gimple-ssa-warn-access.cc (pass_waccess::check_atomic_builtin): New. 8551 (pass_waccess::check_atomic_builtin): Call it. 8552 85532021-10-26 Vladimir N. Makarov <vmakarov@redhat.com> 8554 8555 PR rtl-optimization/102842 8556 * lra-constraints.c (match_reload): Ignore out in checking values 8557 of outs. 8558 (curr_insn_transform): Collect outputs before doing reloads of operands. 8559 85602021-10-26 Paul A. Clarke <pc@us.ibm.com> 8561 8562 PR target/102719 8563 * config/rs6000/x86intrin.h: Move some included headers to new 8564 headers. Include new immintrin.h instead of those headers. 8565 * config/rs6000/immintrin.h: New. 8566 * config/rs6000/x86gprintrin.h: New. 8567 * config.gcc (powerpc*-*-*): Add new headers to extra_headers. 8568 85692021-10-26 Richard Biener <rguenther@suse.de> 8570 8571 * tree-vectorizer.h (vect_create_addr_base_for_vector_ref): 8572 Remove byte_offset parameter. 8573 (vect_create_data_ref_ptr): Likewise. 8574 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): 8575 Likewise. 8576 (vect_create_data_ref_ptr): Likewise. 8577 * tree-vect-stmts.c (vectorizable_store): Adjust. 8578 (vectorizable_load): Likewise. 8579 85802021-10-26 Richard Biener <rguenther@suse.de> 8581 8582 PR tree-optimization/96109 8583 * tree-vectorizer.h (dr_misalignment): Add optional offset 8584 parameter. 8585 * tree-vect-data-refs.c (dr_misalignment): Likewise. Remove 8586 offset applied for negative stride accesses. 8587 (vect_enhance_data_refs_alignment): Compute negative stride 8588 access offset and pass it to dr_misalignment. 8589 * tree-vect-stmts.c (get_negative_load_store_type): Pass 8590 negative offset to dr_misalignment. 8591 (get_group_load_store_type): Likewise. 8592 (get_load_store_type): Likewise. 8593 (vectorizable_store): Remove asserts about alignment. 8594 (vectorizable_load): Likewise. 8595 85962021-10-26 Kewen Lin <linkw@linux.ibm.com> 8597 8598 PR tree-optimization/102897 8599 * tree-ssa-forwprop.c (simplify_permutation): Remove a wrong assertion. 8600 86012021-10-26 Richard Biener <rguenther@suse.de> 8602 8603 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): 8604 Take offset in bytes. 8605 (vect_create_data_ref_ptr): Likewise. 8606 * tree-vect-loop-manip.c (get_misalign_in_elems): Multiply 8607 offset by element size. 8608 (vect_create_cond_for_align_checks): Likewise. 8609 * tree-vect-stmts.c (get_negative_load_store_type): Likewise. 8610 (vectorizable_load): Remove duplicate leftover from merge 8611 conflict. 8612 86132021-10-26 Roger Sayle <roger@nextmovesoftware.com> 8614 8615 * config/i386/i386-expand.c (ix86_expand_v1ti_shift): New helper 8616 function to expand V1TI mode logical shifts by integer constants. 8617 (ix86_expand_v1ti_rotate): New helper function to expand V1TI 8618 mode rotations by integer constants. 8619 * config/i386/i386-protos.h (ix86_expand_v1ti_shift, 8620 ix86_expand_v1ti_rotate): Prototype new functions here. 8621 * config/i386/sse.md (ashlv1ti3, lshrv1ti3, rotlv1ti3, rotrv1ti3): 8622 New TARGET_SSE2 expanders to implement V1TI shifts and rotations. 8623 86242021-10-26 Aldy Hernandez <aldyh@redhat.com> 8625 8626 * tree-ssa-threadbackward.c (back_threader::maybe_register_path): 8627 Avoid threading circular paths. 8628 86292021-10-26 Aldy Hernandez <aldyh@redhat.com> 8630 8631 * tree-ssa-threadbackward.c (back_threader::resolve_phi): 8632 Attempt to resolve all incoming paths to a PHI. 8633 (back_threader::resolve_def): Always return true for PHIs. 8634 86352021-10-26 Aldy Hernandez <aldyh@redhat.com> 8636 8637 * tree-ssa-threadbackward.c (back_threader::find_paths_to_names): 8638 Always try to resolve path without looking back. 8639 * tree-ssa-threadupdate.c (dump_jump_thread): Indidicate whether 8640 edge is a back edge. 8641 86422021-10-26 Kewen Lin <linkw@linux.ibm.com> 8643 8644 PR tree-optimization/102789 8645 * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not 8646 update inits of simd_lane_access. 8647 86482021-10-25 Andrew MacLeod <amacleod@redhat.com> 8649 8650 * tree-vrp.c (vrp_simplify_cond_using_ranges): Add return type and 8651 move to vr-values.c. 8652 (simplify_casted_conds): Move to vrp_folder class. 8653 (execute_vrp): Call via vrp_folder now. 8654 * vr-values.c (simplify_cond_using_ranges_1): Call simplify_casted_cond. 8655 (simplify_using_ranges::simplify_casted_cond): Relocate from tree-vrp.c. 8656 * vr-values.h (simplify_casted_cond): Add prototype. 8657 86582021-10-25 Andrew MacLeod <amacleod@redhat.com> 8659 8660 * tree-vrp.c (rvrp_folder::fold_stmt): If simplification fails, try 8661 to fold anyway. 8662 86632021-10-25 Paul A. Clarke <pc@us.ibm.com> 8664 8665 * config/rs6000/smmintrin.h (_mm_testz_si128): Add "extern" to 8666 function signature. 8667 (_mm_testc_si128): Likewise. 8668 (_mm_testnzc_si128): Likewise. 8669 (_mm_blend_ps): Likewise. 8670 (_mm_blendv_ps): Likewise. 8671 (_mm_blend_pd): Likewise. 8672 (_mm_blendv_pd): Likewise. 8673 (_mm_ceil_pd): Likewise. 8674 (_mm_ceil_sd): Likewise. 8675 (_mm_ceil_ps): Likewise. 8676 (_mm_ceil_ss): Likewise. 8677 (_mm_floor_pd): Likewise. 8678 (_mm_floor_sd): Likewise. 8679 (_mm_floor_ps): Likewise. 8680 (_mm_floor_ss): Likewise. 8681 (_mm_minpos_epu16): Likewise. 8682 (_mm_mul_epi32): Likewise. 8683 (_mm_cvtepi8_epi16): Likewise. 8684 (_mm_packus_epi32): Likewise. 8685 (_mm_cmpgt_epi64): Likewise. 8686 86872021-10-25 Roger Sayle <roger@nextmovesoftware.com> 8688 8689 * simplify-rtx.c (simplify_binary_operation_1) [SS_ASHIFT]: Simplify 8690 shifts of the mode's smin_value and smax_value when the bit count 8691 operand doesn't have side-effects. 8692 [US_ASHIFT]: Likewise, simplify shifts of the mode's umax_value 8693 when the bit count operand doesn't have side-effects. 8694 (simplify_const_binary_operation) [SS_ASHIFT, US_ASHIFT]: Perform 8695 compile-time evaluation of saturating left shifts with constant 8696 arguments. 8697 86982021-10-25 Andrew MacLeod <amacleod@redhat.com> 8699 8700 * gimple-range.cc (gimple_ranger::export_global_ranges): Remove check 8701 for TDF_DETAILS. 8702 87032021-10-25 Andrew MacLeod <amacleod@redhat.com> 8704 8705 * flag-types.h (enum ranger_debug): Adjust values. 8706 * params.opt (ranger_debug): Ditto. 8707 87082021-10-25 Martin Jambor <mjambor@suse.cz> 8709 8710 PR tree-optimization/102886 8711 * tree-sra.c (totally_scalarize_subtree): Fix the out of 8712 access-condition. 8713 87142021-10-25 Andrew Pinski <apinski@marvell.com> 8715 8716 * tree-ssa-dce.c (simple_dce_from_worklist): 8717 Check stmt_unremovable_because_of_non_call_eh_p also 8718 before removing the statement. 8719 87202021-10-25 Richard Biener <rguenther@suse.de> 8721 8722 PR tree-optimization/102905 8723 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 8724 Use vect_supportable_dr_alignment again to determine whether 8725 an access is supported when not aligned. 8726 87272021-10-25 Kito Cheng <kito.cheng@sifive.com> 8728 8729 * config/riscv/riscv.c (riscv_rtx_costs): Handle cost model 8730 for zbs extension. 8731 87322021-10-25 Jim Wilson <jimw@sifive.com> 8733 Kito Cheng <kito.cheng@sifive.com> 8734 Jia-Wei Chen <jiawei@iscas.ac.cn> 8735 Shi-Hua Liao <shihua@iscas.ac.cn> 8736 8737 * config/riscv/bitmanip.md (shiftm1): New. 8738 (*bset<mode>): Ditto. 8739 (*bset<mode>_mask): Ditto. 8740 (*bset<mode>_1): Ditto. 8741 (*bset<mode>_1_mask): Ditto. 8742 (*bseti<mode>): Ditto. 8743 (*bclr<mode>): Ditto. 8744 (*bclri<mode>): Ditto. 8745 (*binv<mode>): Ditto. 8746 (*binvi<mode>): Ditto. 8747 (*bext<mode>): Ditto. 8748 (*bexti): Ditto. 8749 * config/riscv/predicates.md (splittable_const_int_operand): 8750 Handle bseti. 8751 (single_bit_mask_operand): New. 8752 (not_single_bit_mask_operand): Ditto. 8753 (const31_operand): Ditto. 8754 (const63_operand): Ditto. 8755 * config/riscv/riscv.c (riscv_build_integer_1): Handle bseti. 8756 (riscv_output_move): Ditto. 8757 (riscv_print_operand): Handle new operand type: T and S. 8758 * config/riscv/riscv.h (SINGLE_BIT_MASK_OPERAND): New. 8759 87602021-10-25 Jim Wilson <jimw@sifive.com> 8761 8762 * config/riscv/riscv.c (riscv_build_integer_1): Build integer 8763 with rotate. 8764 87652021-10-25 Kito Cheng <kito.cheng@sifive.com> 8766 8767 * config/riscv/riscv.c (riscv_extend_cost): Handle cost model 8768 for zbb extension. 8769 (riscv_rtx_costs): Ditto. 8770 87712021-10-25 Jim Wilson <jimw@sifive.com> 8772 Kito Cheng <kito.cheng@sifive.com> 8773 Jia-Wei Chen <jiawei@iscas.ac.cn> 8774 8775 * config/riscv/bitmanip.md (bitmanip_bitwise): New. 8776 (bitmanip_minmax): New. 8777 (clz_ctz_pcnt): New. 8778 (bitmanip_optab): New. 8779 (bitmanip_insn): New. 8780 (*<optab>_not<mode>): New. 8781 (*xor_not<mode>): New. 8782 (<bitmanip_optab>si2): New. 8783 (*<bitmanip_optab>disi2): New. 8784 (<bitmanip_optab>di2): New. 8785 (*zero_extendhi<GPR:mode>2_bitmanip): New. 8786 (*extend<SHORT:mode><SUPERQI:mode>2_zbb): New. 8787 (*zero_extendhi<GPR:mode>2_zbb): New. 8788 (rotrsi3): New. 8789 (rotrdi3): New. 8790 (rotrsi3_sext): New. 8791 (rotlsi3): New. 8792 (rotldi3): New. 8793 (rotlsi3_sext): New. 8794 (bswap<mode>2): New. 8795 (<bitmanip_optab><mode>3): New. 8796 * config/riscv/riscv.md (type): Add rotate. 8797 (zero_extendhi<GPR:mode>2): Change to define_expand pattern. 8798 (*zero_extendhi<GPR:mode>2): New. 8799 (extend<SHORT:mode><SUPERQI:mode>2): Change to define_expand pattern. 8800 (*extend<SHORT:mode><SUPERQI:mode>2): New. 8801 88022021-10-25 Kito Cheng <kito.cheng@sifive.com> 8803 8804 * config/riscv/riscv.c (riscv_extend_cost): Handle cost model 8805 for zba extension. 8806 (riscv_rtx_costs): Ditto. 8807 88082021-10-25 Jim Wilson <jimw@sifive.com> 8809 Kito Cheng <kito.cheng@sifive.com> 8810 Jia-Wei Chen <jiawei@iscas.ac.cn> 8811 8812 * config/riscv/bitmanip.md (*zero_extendsidi2_bitmanip): New. 8813 (*shNadd): Ditto. 8814 (*shNadduw): Ditto. 8815 (*add.uw): Ditto. 8816 (*slliuw): Ditto. 8817 (riscv_rtx_costs): Ditto. 8818 * config/riscv/riscv.md: Include bitmanip.md 8819 (type): Add bitmanip bype. 8820 (zero_extendsidi2): Change to define_expand pattern. 8821 (*zero_extendsidi2_internal): New. 8822 (zero_extendsidi2_shifted): Disable for ZBA. 8823 88242021-10-25 Kito Cheng <kito.cheng@sifive.com> 8825 8826 * common/config/riscv/riscv-common.c (riscv_ext_version_table): 8827 Add zba, zbb, zbc and zbs. 8828 (riscv_ext_flag_table): Ditto. 8829 * config/riscv/riscv-opts.h (MASK_ZBA): New. 8830 (MASK_ZBB): Ditto. 8831 (MASK_ZBC): Ditto. 8832 (MASK_ZBS): Ditto. 8833 (TARGET_ZBA): Ditto. 8834 (TARGET_ZBB): Ditto. 8835 (TARGET_ZBC): Ditto. 8836 (TARGET_ZBS): Ditto. 8837 * config/riscv/riscv.opt (riscv_zb_subext): New. 8838 88392021-10-25 liuhongt <hongtao.liu@intel.com> 8840 8841 PR target/102464 8842 * match.pd: Simplify (_Float16) sqrtf((float) a) to .SQRT(a) 8843 when direct_internal_fn_supported_p, similar for sqrt/sqrtl. 8844 88452021-10-25 Richard Biener <rguenther@suse.de> 8846 8847 PR tree-optimization/102920 8848 * tree-ssa-sccvn.h (expressions_equal_p): Add argument 8849 controlling VN_TOP matching behavior. 8850 * tree-ssa-sccvn.c (expressions_equal_p): Likewise. 8851 (vn_phi_eq): Do not optimistically match VN_TOP. 8852 88532021-10-25 konglin1 <lingling.kong@intel.com> 8854 8855 * config/i386/sse.md (fma_<mode>_fadd_fmul): Add new 8856 define_insn_and_split. 8857 (fma_<mode>_fadd_fcmul):Likewise 8858 (fma_<complexopname>_<mode>_fma_zero):Likewise 8859 88602021-10-24 John David Anglin <danglin@gcc.gnu.org> 8861 8862 * config/pa/pa-d.c (pa_d_handle_target_float_abi): Don't check 8863 TARGET_DISABLE_FPREGS. 8864 * config/pa/pa.c (fix_range): Use MASK_SOFT_FLOAT instead of 8865 MASK_DISABLE_FPREGS. 8866 (hppa_rtx_costs): Don't check TARGET_DISABLE_FPREGS. Adjust 8867 cost of hardware integer multiplication. 8868 (pa_conditional_register_usage): Don't check TARGET_DISABLE_FPREGS. 8869 * config/pa/pa.h (INT14_OK_STRICT): Likewise. 8870 * config/pa/pa.md: Don't check TARGET_DISABLE_FPREGS. Check 8871 TARGET_SOFT_FLOAT in patterns that use xmpyu instruction. 8872 * config/pa/pa.opt (mdisable-fpregs): Change target mask to 8873 SOFT_FLOAT. Revise comment. 8874 (msoft-float): New option. 8875 88762021-10-24 John David Anglin <danglin@gcc.gnu.org> 8877 8878 * config/pa/pa.md: Don't use 'G' constraint in integer move patterns. 8879 88802021-10-24 Gerald Pfeifer <gerald@pfeifer.com> 8881 8882 * doc/install.texi (Specific): Remove obsolete details 8883 around GNU/Linux on Itanium. 8884 (Specific): Remove reference to Windows for Itanium. 8885 88862021-10-23 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> 8887 8888 * config/i386/x86-tune-sched-bd.c (dispatch_group): Commentary 8889 typo fix. 8890 88912021-10-23 Jan Hubicka <hubicka@ucw.cz> 8892 8893 * tree-ssa-structalias.c (compute_points_to_sets): Cleanup. 8894 88952021-10-23 Roger Sayle <roger@nextmovesoftware.com> 8896 8897 * config/i386/sse.md (<any_logic>v1ti3): New define_insn to 8898 implement V1TImode AND, IOR and XOR on TARGET_SSE2 (and above). 8899 (one_cmplv1ti2): New define expand. 8900 89012021-10-22 Eric Gallager <egallager@gcc.gnu.org> 8902 8903 PR other/102663 8904 * Makefile.in: Handle dvidir and install-dvi target. 8905 * configure: Regenerate. 8906 * configure.ac: Add install-dvi to target_list. 8907 89082021-10-22 Gerald Pfeifer <gerald@pfeifer.com> 8909 8910 * doc/install.texi (Binaries): Convert mingw-w64.org to https. 8911 (Specific): Ditto. 8912 89132021-10-22 Richard Biener <rguenther@suse.de> 8914 8915 PR tree-optimization/102893 8916 * tree-ssa-dce.c (find_obviously_necessary_stmts): Fix the 8917 test for an exit edge. 8918 89192021-10-22 Aldy Hernandez <aldyh@redhat.com> 8920 Andrew MacLeod <amacleod@redhat.com> 8921 8922 * gimple-range-path.cc (path_range_query::compute_phi_relations): 8923 Kill any global relations we may know before registering a new 8924 one. 8925 * value-relation.cc (path_oracle::killing_def): New. 8926 * value-relation.h (path_oracle::killing_def): New. 8927 89282021-10-22 Richard Biener <rguenther@suse.de> 8929 8930 PR bootstrap/102681 8931 * tree-ssa-sccvn.c (vn_phi_insert): For undefined SSA args 8932 record VN_TOP. 8933 (vn_phi_lookup): Likewise. 8934 89352021-10-21 H.J. Lu <hjl.tools@gmail.com> 8936 8937 PR target/98667 8938 * doc/invoke.texi: Document -fcf-protection requires i686 or 8939 new. 8940 89412021-10-21 Eric Botcazou <ebotcazou@adacore.com> 8942 8943 PR middle-end/102764 8944 * cfgexpand.c (expand_gimple_basic_block): Robustify latest change. 8945 89462021-10-21 Jonathan Wright <jonathan.wright@arm.com> 8947 8948 * config/aarch64/arm_neon.h (__STRUCTN): Delete function 8949 macro and all invocations. 8950 89512021-10-21 Andrew MacLeod <amacleod@redhat.com> 8952 8953 * doc/invoke.texi (ranger-debug): Document. 8954 * flag-types.h (enum ranger_debug): New. 8955 (enum evrp_mode): Remove debug values. 8956 * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Use new debug flag. 8957 * gimple-range-gori.cc (gori_compute::gori_compute): Ditto. 8958 * gimple-range.cc (gimple_ranger::gimple_ranger): Ditto. 8959 * gimple-ssa-evrp.c (hybrid_folder::choose_value): Ditto. 8960 (execute_early_vrp): Use evrp-mode directly. 8961 * params.opt (enum evrp_mode): Remove debug values. 8962 (ranger-debug): New. 8963 (ranger-logical-depth): Relocate to be in alphabetical order. 8964 89652021-10-21 Andrew MacLeod <amacleod@redhat.com> 8966 8967 * doc/invoke.texi: (vrp1-mode, vrp2-mode): Document. 8968 * flag-types.h: (enum vrp_mode): New. 8969 * params.opt: (vrp1-mode, vrp2-mode): New. 8970 * tree-vrp.c (vrp_pass_num): New. 8971 (pass_vrp::pass_vrp): Set pass number. 8972 (pass_vrp::execute): Choose which VRP mode to execute. 8973 89742021-10-21 Andrew MacLeod <amacleod@redhat.com> 8975 8976 * gimple-ssa-evrp.c (class rvrp_folder): Move to tree-vrp.c. 8977 (execute_early_vrp): For ranger only mode, invoke ranger_vrp. 8978 * tree-vrp.c (class rvrp_folder): Relocate here. 8979 (execute_ranger_vrp): New. 8980 * tree-vrp.h (execute_ranger_vrp): Export. 8981 89822021-10-21 Martin Liska <mliska@suse.cz> 8983 8984 PR debug/102585 8985 PR bootstrap/102766 8986 * opts.c (finish_options): Process flag_var_tracking* options 8987 here as they can be adjusted by optimize attribute. 8988 Process also flag_syntax_only and flag_gtoggle. 8989 * toplev.c (process_options): Remove it here. 8990 * common.opt: Make debug_nonbind_markers_p as PerFunction 8991 attribute as it depends on optimization level. 8992 89932021-10-21 Martin Jambor <mjambor@suse.cz> 8994 8995 PR tree-optimization/102505 8996 * tree-sra.c (totally_scalarize_subtree): Check that the 8997 encountered field fits within the acces we would like to put it 8998 in. 8999 90002021-10-21 Aldy Hernandez <aldyh@redhat.com> 9001 9002 * tree-ssa-threadbackward.c 9003 (back_threader::maybe_register_path): Remove circular paths check. 9004 90052021-10-21 Richard Biener <rguenther@suse.de> 9006 9007 * toplev.c (process_options): Move the initial debug_hooks 9008 setting ... 9009 (toplev::main): ... before the call of the post_options 9010 langhook. 9011 90122021-10-21 Richard Biener <rguenther@suse.de> 9013 9014 PR tree-optimization/102847 9015 * tree-vect-stmts.c (vect_model_load_cost): Add the scalar 9016 load cost in the prologue for VMAT_INVARIANT. 9017 90182021-10-21 Richard Biener <rguenther@suse.de> 9019 9020 PR tree-optimization/102847 9021 * tree-vect-stmts.c (vect_model_load_cost): Explicitely 9022 handle VMAT_INVARIANT as a splat in the prologue. 9023 90242021-10-21 Hongyu Wang <hongyu.wang@intel.com> 9025 9026 PR target/102812 9027 * config/i386/i386.c (ix86_get_ssemov): Adjust HFmode vector 9028 move to use the same logic as HImode. 9029 90302021-10-21 Richard Biener <rguenther@suse.de> 9031 9032 * tree-vect-slp.c (vect_build_slp_tree_1): Remove 9033 superfluous gimple_call_nothrow_p check. 9034 90352021-10-21 Andrew Pinski <apinski@marvell.com> 9036 9037 * tree-cfg.c (maybe_remove_writeonly_store): Add dce_ssa_names argument. 9038 Mark the ssa-name of the rhs as one to be removed. 9039 (execute_fixup_cfg): Update call to maybe_remove_writeonly_store. 9040 Call simple_dce_from_worklist at the end to a simple dce. 9041 90422021-10-21 Andrew Pinski <apinski@marvell.com> 9043 9044 * tree-cfg.c (maybe_remove_writeonly_store): New function 9045 factored out from ... 9046 (execute_fixup_cfg): Here. Call maybe_remove_writeonly_store. 9047 90482021-10-21 Andrew Pinski <apinski@marvell.com> 9049 9050 * tree-cfg.c (execute_fixup_cfg): Remove comment 9051 about standalone pass. 9052 90532021-10-21 Andrew Pinski <apinski@marvell.com> 9054 9055 * tree-cfg.c (execute_fixup_cfg): Output when the statement 9056 is removed when it is a write only var. 9057 90582021-10-21 Aldy Hernandez <aldyh@redhat.com> 9059 9060 * tree-ssa-threadbackward.c (back_threader::maybe_register_path): 9061 Avoid threading circular paths. 9062 90632021-10-20 Alex Coplan <alex.coplan@arm.com> 9064 9065 * calls.c (initialize_argument_information): Remove some dead 9066 code, remove handling for function_arg returning const_int. 9067 * doc/tm.texi: Delete documentation for unused target hooks. 9068 * doc/tm.texi.in: Likewise. 9069 * target.def (load_bounds_for_arg): Delete. 9070 (store_bounds_for_arg): Delete. 9071 (load_returned_bounds): Delete. 9072 (store_returned_bounds): Delete. 9073 * targhooks.c (default_load_bounds_for_arg): Delete. 9074 (default_store_bounds_for_arg): Delete. 9075 (default_load_returned_bounds): Delete. 9076 (default_store_returned_bounds): Delete. 9077 * targhooks.h (default_load_bounds_for_arg): Delete. 9078 (default_store_bounds_for_arg): Delete. 9079 (default_load_returned_bounds): Delete. 9080 (default_store_returned_bounds): Delete. 9081 90822021-10-20 Jonathan Wakely <jwakely@redhat.com> 9083 9084 * doc/extend.texi (Basic Asm): Clarify that asm is not an 9085 extension in C++. 9086 * doc/invoke.texi (-fno-asm): Fix description for C++. 9087 90882021-10-20 Jonathan Wakely <jwakely@redhat.com> 9089 9090 * doc/install.texi: Remove link to old.html 9091 90922021-10-20 Tamar Christina <tamar.christina@arm.com> 9093 9094 * config/aarch64/aarch64-simd.md (*aarch64_cmtst_same_<mode>): New. 9095 90962021-10-20 Tamar Christina <tamar.christina@arm.com> 9097 9098 * config/aarch64/aarch64-simd.md (*aarch64_narrow_trunc<mode>): New. 9099 91002021-10-20 Tamar Christina <tamar.christina@arm.com> 9101 9102 * config/aarch64/aarch64-simd.md (aarch64_simd_ashr<mode>): Add case cmp 9103 case. 9104 * config/aarch64/constraints.md (D1): New. 9105 91062021-10-20 Tamar Christina <tamar.christina@arm.com> 9107 9108 * config/aarch64/aarch64-simd.md 9109 (*aarch64_<srn_op>topbits_shuffle<mode>_le): New. 9110 (*aarch64_topbits_shuffle<mode>_le): New. 9111 (*aarch64_<srn_op>topbits_shuffle<mode>_be): New. 9112 (*aarch64_topbits_shuffle<mode>_be): New. 9113 * config/aarch64/predicates.md 9114 (aarch64_simd_shift_imm_vec_exact_top): New. 9115 91162021-10-20 Tamar Christina <tamar.christina@arm.com> 9117 9118 * config/aarch64/aarch64-simd.md (*aarch64_<srn_op>shrn<mode>_vect, 9119 *aarch64_<srn_op>shrn<mode>2_vect_le, 9120 *aarch64_<srn_op>shrn<mode>2_vect_be): New. 9121 * config/aarch64/iterators.md (srn_op): New. 9122 91232021-10-20 Chung-Lin Tang <cltang@codesourcery.com> 9124 9125 * omp-low.c (omp_copy_decl_2): For !ctx, use record_vars to add new copy 9126 as local variable. 9127 (scan_sharing_clauses): Place copy of OMP_CLAUSE_IN_REDUCTION decl in 9128 ctx->outer instead of ctx. 9129 91302021-10-20 Martin Liska <mliska@suse.cz> 9131 9132 Revert: 9133 2021-10-19 Martin Liska <mliska@suse.cz> 9134 9135 PR target/102374 9136 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. 9137 * system.h (strip_whilespaces): New function. 9138 91392021-10-20 Martin Liska <mliska@suse.cz> 9140 9141 Revert: 9142 2021-10-19 Martin Liska <mliska@suse.cz> 9143 9144 PR target/102375 9145 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): 9146 Strip whitespaces. 9147 91482021-10-20 Wilco Dijkstra <wdijkstr@arm.com> 9149 9150 * config/aarch64/aarch64.c (aarch64_case_values_threshold): 9151 Change to 8 with -Os, 11 otherwise. 9152 91532021-10-20 Wilco Dijkstra <wdijkstr@arm.com> 9154 9155 * config/aarch64/aarch64.c (neoversev1_tunings): 9156 Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. 9157 (neoversen2_tunings): Likewise. 9158 91592021-10-20 Wilco Dijkstra <wdijkstr@arm.com> 9160 9161 PR target/100966 9162 * config/aarch64/aarch64.md (frint_pattern): Update comment. 9163 * config/aarch64/aarch64-simd-builtins.def: Change frintn to roundeven. 9164 * config/aarch64/arm_fp16.h: Change frintn to roundeven. 9165 * config/aarch64/arm_neon.h: Likewise. 9166 * config/aarch64/iterators.md (frint_pattern): Use roundeven for FRINTN. 9167 91682021-10-20 Martin Liska <mliska@suse.cz> 9169 9170 * config/arm/arm.c (arm_unwind_emit_sequence): Do not declare 9171 already declared global variable. 9172 (arm_unwind_emit_set): Use out_file as function argument. 9173 (arm_unwind_emit): Likewise. 9174 * config/darwin.c (machopic_output_data_section_indirection): Likewise. 9175 (machopic_output_stub_indirection): Likewise. 9176 (machopic_output_indirection): Likewise. 9177 (machopic_finish): Likewise. 9178 * config/i386/i386.c (ix86_asm_output_function_label): Likewise. 9179 * config/i386/winnt.c (i386_pe_seh_unwind_emit): Likewise. 9180 * config/ia64/ia64.c (process_epilogue): Likewise. 9181 (process_cfa_adjust_cfa): Likewise. 9182 (process_cfa_register): Likewise. 9183 (process_cfa_offset): Likewise. 9184 (ia64_asm_unwind_emit): Likewise. 9185 * config/s390/s390.c (s390_asm_output_function_label): Likewise. 9186 91872021-10-20 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> 9188 9189 * config/aarch64/aarch64-builtins.c 9190 (aarch64_general_gimple_fold_builtin): 9191 lower vld1 and vst1 variants of the neon builtins 9192 * config/aarch64/aarch64-protos.h: 9193 (aarch64_general_gimple_fold_builtin): Add gsi parameter. 9194 * config/aarch64/aarch64.c (aarch64_general_gimple_fold_builtin): 9195 Likwise. 9196 91972021-10-20 Andre Simoes Dias Vieira <andre.simoesdiasvieira@arm.com> 9198 9199 * match.pd: Generate IFN_TRUNC. 9200 92012021-10-20 Richard Biener <rguenther@suse.de> 9202 9203 PR tree-optimization/102853 9204 * tree-data-ref.c (split_constant_offset_1): Bail out 9205 immediately if the expression traps on overflow. 9206 92072021-10-20 Aldy Hernandez <aldyh@redhat.com> 9208 9209 * tree-ssa-threadbackward.c (back_threader::~back_threader): Remove. 9210 92112021-10-20 Aldy Hernandez <aldyh@redhat.com> 9212 9213 * tree-ssa-threadupdate.c (back_jt_path_registry::adjust_paths_after_duplication): 9214 Remove superflous debugging message. 9215 (back_jt_path_registry::duplicate_thread_path): Same. 9216 92172021-10-20 Aldy Hernandez <aldyh@redhat.com> 9218 9219 * tree-ssa-threadbackward.c (back_threader_registry::back_threader_registry): 9220 Remove. 9221 (back_threader_registry::register_path): Remove m_threaded_paths. 9222 92232021-10-20 Aldy Hernandez <aldyh@redhat.com> 9224 9225 PR tree-optimization/102814 9226 * doc/invoke.texi: Document --param=max-fsm-thread-length. 9227 * params.opt: Add --param=max-fsm-thread-length. 9228 * tree-ssa-threadbackward.c 9229 (back_threader_profitability::profitable_path_p): Fail on paths 9230 longer than max-fsm-thread-length. 9231 92322021-10-20 Eric Botcazou <ebotcazou@adacore.com> 9233 9234 PR middle-end/102764 9235 * cfgexpand.c (expand_gimple_basic_block): Disregard a final debug 9236 statement to reset the current location for the outgoing edges. 9237 92382021-10-20 Aldy Hernandez <aldyh@redhat.com> 9239 Richard Biener <rguenther@suse.de> 9240 9241 * tree-ssa-threadupdate.c (cancel_thread): Dump threading reason 9242 on the same line as the threading cancellation. 9243 (jt_path_registry::cancel_invalid_paths): Avoid rotating loops. 9244 Avoid threading through loop headers where the path remains in the 9245 loop. 9246 92472021-10-20 Siddhesh Poyarekar <siddhesh@gotplt.org> 9248 9249 * tree-object-size.c (unknown): Make into a function. Adjust 9250 all uses. 9251 (unknown_object_size): Simplify implementation. 9252 92532021-10-20 Hongtao Liu <hongtao.liu@intel.com> 9254 Kewen Lin <linkw@linux.ibm.com> 9255 9256 * doc/sourcebuild.texi (Effective-Target Keywords): Document 9257 vect_slp_v2qi_store, vect_slp_v4qi_store, vect_slp_v8qi_store, 9258 vect_slp_v16qi_store, vect_slp_v2hi_store, 9259 vect_slp_v4hi_store, vect_slp_v2si_store, vect_slp_v4si_store. 9260 92612021-10-19 Jonathan Wakely <jwakely@redhat.com> 9262 9263 * doc/extend.texi (Basic PowerPC Built-in Functions): Fix typo. 9264 92652021-10-19 Paul A. Clarke <pc@us.ibm.com> 9266 9267 PR target/101893 9268 PR target/102719 9269 * config/rs6000/emmintrin.h: Guard POWER8 intrinsics. 9270 * config/rs6000/pmmintrin.h: Same. 9271 * config/rs6000/smmintrin.h: Same. 9272 * config/rs6000/tmmintrin.h: Same. 9273 92742021-10-19 Paul A. Clarke <pc@us.ibm.com> 9275 9276 * config.gcc (extra_headers): Add nmmintrin.h. 9277 92782021-10-19 Richard Biener <rguenther@suse.de> 9279 9280 * tree-vectorizer.h (vect_supportable_dr_alignment): Add 9281 misalignment parameter. 9282 * tree-vect-data-refs.c (vect_get_peeling_costs_all_drs): 9283 Do not change DR_MISALIGNMENT in place, instead pass the 9284 adjusted misalignment to vect_supportable_dr_alignment. 9285 (vect_peeling_supportable): Likewise. 9286 (vect_peeling_hash_get_lowest_cost): Adjust. 9287 (vect_enhance_data_refs_alignment): Likewise. 9288 (vect_vfa_access_size): Likewise. 9289 (vect_supportable_dr_alignment): Add misalignment 9290 parameter and simplify. 9291 * tree-vect-stmts.c (get_negative_load_store_type): Adjust. 9292 (get_group_load_store_type): Likewise. 9293 (get_load_store_type): Likewise. 9294 92952021-10-19 Cl��ment Chigot <clement.chigot@atos.net> 9296 9297 * config/rs6000/rs6000.c (rs6000_xcoff_file_end): Move 9298 __tls_get_addr reference to .text csect. 9299 93002021-10-19 Martin Liska <mliska@suse.cz> 9301 9302 PR target/102375 9303 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): 9304 Strip whitespaces. 9305 93062021-10-19 Richard Biener <rguenther@suse.de> 9307 9308 * tree-vectorizer.h (vect_get_store_cost): Adjust signature. 9309 (vect_get_load_cost): Likewise. 9310 * tree-vect-data-refs.c (vect_get_data_access_cost): Get 9311 alignment support scheme and misalignment as arguments 9312 and pass them down. 9313 (vect_get_peeling_costs_all_drs): Compute that info here 9314 and note that we shouldn't need to. 9315 * tree-vect-stmts.c (vect_model_store_cost): Get 9316 alignment support scheme and misalignment as arguments. 9317 (vect_get_store_cost): Likewise. 9318 (vect_model_load_cost): Likewise. 9319 (vect_get_load_cost): Likewise. 9320 (vectorizable_store): Pass down alignment support scheme 9321 and misalignment to costing. 9322 (vectorizable_load): Likewise. 9323 93242021-10-19 Richard Biener <rguenther@suse.de> 9325 9326 * tree-vect-stmts.c (get_negative_load_store_type): Add 9327 offset output parameter and initialize it. 9328 (get_group_load_store_type): Likewise. 9329 (get_load_store_type): Likewise. 9330 (vectorizable_store): Use offset as computed by 9331 get_load_store_type. 9332 (vectorizable_load): Likewise. 9333 93342021-10-19 Richard Biener <rguenther@suse.de> 9335 9336 PR tree-optimization/102827 9337 * tree-if-conv.c (predicate_statements): Add pe parameter 9338 and use that edge to insert invariant stmts on. 9339 (combine_blocks): Pass through pe. 9340 (tree_if_conversion): Compute the edge to insert invariant 9341 stmts on and pass it along. 9342 93432021-10-19 Roger Sayle <roger@nextmovesoftware.com> 9344 9345 PR target/102785 9346 * config/bfin/bfin.md (addsubv2hi3, subaddv2hi3, ssaddsubv2hi3, 9347 sssubaddv2hi3): Swap the order of operators in vec_concat. 9348 93492021-10-19 Xionghu Luo <luoxhu@linux.ibm.com> 9350 9351 * config/rs6000/altivec.md (*altivec_vmrghb_internal): Delete. 9352 (altivec_vmrghb_direct): New. 9353 (*altivec_vmrghh_internal): Delete. 9354 (altivec_vmrghh_direct): New. 9355 (*altivec_vmrghw_internal): Delete. 9356 (altivec_vmrghw_direct_<mode>): New. 9357 (altivec_vmrghw_direct): Delete. 9358 (*altivec_vmrglb_internal): Delete. 9359 (altivec_vmrglb_direct): New. 9360 (*altivec_vmrglh_internal): Delete. 9361 (altivec_vmrglh_direct): New. 9362 (*altivec_vmrglw_internal): Delete. 9363 (altivec_vmrglw_direct_<mode>): New. 9364 (altivec_vmrglw_direct): Delete. 9365 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. 9366 * config/rs6000/rs6000.c (altivec_expand_vec_perm_const): 9367 Adjust. 9368 * config/rs6000/vsx.md (vsx_xxmrghw_<mode>): Adjust. 9369 (vsx_xxmrglw_<mode>): Adjust. 9370 93712021-10-19 Aldy Hernandez <aldyh@redhat.com> 9372 9373 * passes.def: Change threading comment before pass_ccp pass. 9374 93752021-10-19 Haochen Gui <guihaoc@gcc.gnu.org> 9376 9377 * config/rs6000/rs6000-call.c (altivec_expand_lxvr_builtin): 9378 Modify the expansion for sign extension. All extensions are done 9379 within VSX registers. 9380 93812021-10-19 Richard Biener <rguenther@suse.de> 9382 9383 * tree-vect-stmts.c (get_group_load_store_type): Add 9384 misalignment output parameter and initialize it. 9385 (get_group_load_store_type): Likewise. 9386 (vectorizable_store): Remove now redundant queries. 9387 (vectorizable_load): Likewise. 9388 93892021-10-19 Richard Biener <rguenther@suse.de> 9390 9391 * tree-vectorizer.h (vect_supportable_dr_alignment): Remove 9392 check_aligned argument. 9393 * tree-vect-data-refs.c (vect_supportable_dr_alignment): 9394 Likewise. 9395 (vect_peeling_hash_insert): Add supportable_if_not_aligned 9396 argument and do not call vect_supportable_dr_alignment here. 9397 (vect_peeling_supportable): Adjust. 9398 (vect_enhance_data_refs_alignment): Compute whether the 9399 access is supported with different alignment here and 9400 pass that down to vect_peeling_hash_insert. 9401 (vect_vfa_access_size): Adjust. 9402 * tree-vect-stmts.c (vect_get_store_cost): Likewise. 9403 (vect_get_load_cost): Likewise. 9404 (get_negative_load_store_type): Likewise. 9405 (get_group_load_store_type): Likewise. 9406 (get_load_store_type): Likewise. 9407 94082021-10-19 Martin Liska <mliska@suse.cz> 9409 9410 PR target/102374 9411 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): Strip whitespaces. 9412 * system.h (strip_whilespaces): New function. 9413 94142021-10-19 dianhong xu <dianhong.xu@intel.com> 9415 9416 * config/i386/avx512fp16intrin.h: 9417 (_mm512_set1_pch): New intrinsic. 9418 * config/i386/avx512fp16vlintrin.h: 9419 (_mm256_set1_pch): New intrinsic. 9420 (_mm_set1_pch): Ditto. 9421 94222021-10-18 Andrew MacLeod <amacleod@redhat.com> 9423 9424 PR tree-optimization/102796 9425 * gimple-range.cc (gimple_ranger::range_on_edge): Process EH edges 9426 normally. Return get_tree_range for non gimple_range_ssa_p names. 9427 (gimple_ranger::range_of_stmt): Use get_tree_range for non 9428 gimple_range_ssa_p names. 9429 94302021-10-18 Uro�� Bizjak <ubizjak@gmail.com> 9431 9432 PR target/102761 9433 * config/i386/i386.c (ix86_print_operand_address): 9434 Error out for non-address_operand asm operands. 9435 94362021-10-18 Richard Biener <rguenther@suse.de> 9437 9438 * tree-vect-data-refs.c (vect_peeling_hash_insert): Do 9439 not auto-convert dr_alignment_support to bool. 9440 (vect_peeling_supportable): Likewise. 9441 (vect_enhance_data_refs_alignment): Likewise. 9442 (vect_supportable_dr_alignment): Commonize read/write case. 9443 * tree-vect-stmts.c (vect_get_store_cost): Use 9444 dr_alignment_support, not int, for the vect_supportable_dr_alignment 9445 result. 9446 (vect_get_load_cost): Likewise. 9447 94482021-10-18 Siddhesh Poyarekar <siddhesh@gotplt.org> 9449 9450 * tree-object-size.c (object_sizes_execute): Consolidate LHS 9451 null check and do it early. 9452 94532021-10-18 Richard Biener <rguenther@suse.de> 9454 9455 * tree-vect-stmts.c (vectorizable_store): Use the 9456 computed alignment scheme instead of querying 9457 aligned_access_p. 9458 94592021-10-18 Richard Biener <rguenther@suse.de> 9460 9461 * tree-vect-stmts.c (vectorizable_store): Do not recompute 9462 alignment scheme already determined by get_load_store_type. 9463 94642021-10-18 Aldy Hernandez <aldyh@redhat.com> 9465 9466 * tree-ssa-threadbackward.c (class pass_thread_jumps_full): 9467 Clone corresponding pass. 9468 94692021-10-18 Roger Sayle <roger@nextmovesoftware.com> 9470 9471 * combine.c (recog_for_combine): For an unrecognized move/set of 9472 a constant, try force_const_mem to place it in the constant pool. 9473 * cse.c (constant_pool_entries_cost, constant_pool_entries_regcost): 9474 Delete global variables (that are no longer assigned a cost value). 9475 (cse_insn): Simplify logic for deciding whether to place a folded 9476 constant in the constant pool using force_const_mem. 9477 (cse_main): Remove zero initialization of constant_pool_entries_cost 9478 and constant_pool_entries_regcost. 9479 * config/i386/i386.c (ix86_rtx_costs): Make memory accesses 9480 fractionally more expensive, when optimizing for speed. 9481 94822021-10-18 Martin Liska <mliska@suse.cz> 9483 9484 PR gcov-profile/102746 9485 PR gcov-profile/102747 9486 * gcov.c (main): Return return_code. 9487 (output_gcov_file): Mark return_code when error happens. 9488 (generate_results): Likewise. 9489 (read_graph_file): Likewise. 9490 (read_count_file): Likewise. 9491 94922021-10-18 Roger Sayle <roger@nextmovesoftware.com> 9493 9494 * config/bfin/bfin.md (define_constants): Remove UNSPEC_ONES. 9495 (define_insn "ones"): Replace UNSPEC_ONES with a truncate of 9496 a popcount, allowing compile-time evaluation/simplification. 9497 (popcountsi2, popcounthi2): New expanders using a "ones" insn. 9498 94992021-10-18 Richard Biener <rguenther@suse.de> 9500 9501 PR tree-optimization/102788 9502 * tree-vect-patterns.c (vect_init_pattern_stmt): Allow 9503 a NULL vectype. 9504 (vect_pattern_recog_1): Likewise. 9505 (vect_recog_bool_pattern): Continue matching the pattern 9506 even if we do not have a vector type for a conversion 9507 result. 9508 95092021-10-18 Roger Sayle <roger@nextmovesoftware.com> 9510 9511 * simplify-rtx.c (simplify_const_unary_operation) [SS_NEG, SS_ABS]: 9512 Evalute SS_NEG and SS_ABS of a constant argument. 9513 95142021-10-18 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 9515 9516 PR target/93183 9517 * gimple-match-head.c (try_conditional_simplification): Add case for single operand. 9518 * internal-fn.def: Add entry for COND_NEG internal function. 9519 * internal-fn.c (FOR_EACH_CODE_MAPPING): Add entry for 9520 NEGATE_EXPR, COND_NEG mapping. 9521 * optabs.def: Add entry for cond_neg_optab. 9522 * match.pd (UNCOND_UNARY, COND_UNARY): New operator lists. 9523 (vec_cond COND (foo A) B) -> (IFN_COND_FOO COND A B): New pattern. 9524 (vec_cond COND B (foo A)) -> (IFN_COND_FOO ~COND A B): Likewise. 9525 95262021-10-18 Aldy Hernandez <aldyh@redhat.com> 9527 9528 * tree-ssa-strlen.c (class strlen_pass): Rename from 9529 strlen_dom_walker. 9530 (handle_builtin_stxncpy_strncat): Move to strlen_pass. 9531 (handle_assign): Same. 9532 (adjust_last_stmt): Same. 9533 (maybe_warn_overflow): Same. 9534 (handle_builtin_strlen): Same. 9535 (handle_builtin_strchr): Same. 9536 (handle_builtin_strcpy): Same. 9537 (handle_builtin_strncat): Same. 9538 (handle_builtin_stxncpy_strncat): Same. 9539 (handle_builtin_memcpy): Same. 9540 (handle_builtin_strcat): Same. 9541 (handle_alloc_call): Same. 9542 (handle_builtin_memset): Same. 9543 (handle_builtin_memcmp): Same. 9544 (get_len_or_size): Same. 9545 (strxcmp_eqz_result): Same. 9546 (handle_builtin_string_cmp): Same. 9547 (handle_pointer_plus): Same. 9548 (count_nonzero_bytes_addr): Same. 9549 (count_nonzero_bytes): Same. 9550 (handle_store): Same. 9551 (strlen_check_and_optimize_call): Same. 9552 (handle_integral_assign): Same. 9553 (check_and_optimize_stmt): Same. 9554 (printf_strlen_execute): Rename strlen_dom_walker to strlen_pass. 9555 95562021-10-18 Richard Biener <rguenther@suse.de> 9557 9558 PR tree-optimization/102798 9559 * tree-vect-data-refs.c (vect_create_addr_base_for_vector_ref): 9560 Only copy points-to info to newly generated SSA names. 9561 95622021-10-18 Martin Liska <mliska@suse.cz> 9563 9564 * dbgcnt.c (dbg_cnt_process_opt): Remove unused but set variable. 9565 * gcov.c (get_cycles_count): Likewise. 9566 * lto-compress.c (lto_compression_zlib): Likewise. 9567 (lto_uncompression_zlib): Likewise. 9568 * targhooks.c (default_pch_valid_p): Likewise. 9569 95702021-10-17 Aldy Hernandez <aldyh@redhat.com> 9571 9572 * tree-pass.h (make_pass_thread_jumps_full): New. 9573 * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Inline. 9574 (try_thread_blocks): Add resolve and speed arguments. 9575 (pass_thread_jumps::execute): Inline. 9576 (do_early_thread_jumps): New. 9577 (do_thread_jumps): New. 9578 (make_pass_thread_jumps): Move. 9579 (pass_early_thread_jumps::gate): Inline. 9580 (pass_early_thread_jumps::execute): Inline. 9581 (class pass_thread_jumps_full): New. 9582 95832021-10-16 Piotr Kubaj <pkubaj@FreeBSD.org> 9584 9585 * configure.ac: Treat powerpc64*-*-freebsd* the same as 9586 powerpc64-*-freebsd*. 9587 * configure: Regenerate. 9588 95892021-10-16 H.J. Lu <hjl.tools@gmail.com> 9590 9591 * value-query.cc (get_ssa_name_ptr_info_nonnull): Change 9592 set_ptr_nonull to set_ptr_nonnull in comments. 9593 95942021-10-16 Jan Hubicka <hubicka@ucw.cz> 9595 9596 PR tree-optimization/102720 9597 * tree-ssa-structalias.c (compute_points_to_sets): Fix producing 9598 of call used and clobbered sets. 9599 96002021-10-15 Iain Sandoe <iain@sandoe.co.uk> 9601 9602 * config/darwin.h (LINK_COMMAND_SPEC_A): Update 'r' handling to 9603 skip gomp and itm when r or nodefaultlibs is given. 9604 (DSYMUTIL_SPEC): Do not call dsymutil for '-r' link lines. 9605 Update ordering of exclusions, remove duplicate 'v' addition 9606 (collect2 will add this from the main command line). 9607 96082021-10-15 Iain Sandoe <iain@sandoe.co.uk> 9609 9610 * config/darwin-driver.c (darwin_driver_init): Revise comments, handle 9611 filelist and framework options in specs instead of code. 9612 * config/darwin.h (SUBTARGET_DRIVER_SELF_SPECS): Update to handle link 9613 specs that are really driver ones. 9614 (DARWIN_CC1_SPEC): Likewise. 9615 (CPP_SPEC): Likewise. 9616 (SYSROOT_SPEC): Append space. 9617 (LINK_SYSROOT_SPEC): Remove most driver link specs. 9618 (STANDARD_STARTFILE_PREFIX_2): Update link-related specs. 9619 (STARTFILE_SPEC): Likewise. 9620 (ASM_MMACOSX_VERSION_MIN_SPEC): Fix line wrap. 9621 (ASM_SPEC): Update driver-related specs. 9622 (ASM_FINAL_SPEC): Likewise. 9623 * config/darwin.opt: Remove now unused option aliases. 9624 * config/i386/darwin.h (EXTRA_ASM_OPTS): Ensure space after opt. 9625 (ASM_SPEC): Update driver-related specs. 9626 96272021-10-15 Roger Sayle <roger@nextmovesoftware.com> 9628 9629 * config/i386/i386.c (ix86_hardreg_mov_ok): For vector modes, 9630 allow standard_sse_constant_p immediate constants. 9631 96322021-10-15 Iain Sandoe <iain@sandoe.co.uk> 9633 9634 * config.gcc: Add tm-dwarf2.h to tm_d-file. 9635 96362021-10-15 Andrew MacLeod <amacleod@redhat.com> 9637 9638 * gimple-range-fold.h (gimple_range_ssa_p): Don't process names 9639 that occur in abnormal phis. 9640 * gimple-range.cc (gimple_ranger::range_on_edge): Return false for 9641 abnormal and EH edges. 9642 * gimple-ssa-evrp.c (rvrp_folder::value_of_expr): Ditto. 9643 (rvrp_folder::value_on_edge): Ditto. 9644 (rvrp_folder::value_of_stmt): Ditto. 9645 (hybrid_folder::value_of_expr): Ditto for ranger queries. 9646 (hybrid_folder::value_on_edge): Ditto. 9647 (hybrid_folder::value_of_stmt): Ditto. 9648 * value-query.cc (gimple_range_global): Always return a range if 9649 the type is supported. 9650 96512021-10-15 John David Anglin <danglin@gcc.gnu.org> 9652 9653 * config/pa/pa.md: Consistently use "rG" constraint for copy 9654 instruction in move patterns. 9655 96562021-10-15 Andrew Stubbs <ams@codesourcery.com> 9657 9658 * config/gcn/gcn-hsa.h (S_FIJI): Set unconditionally. 9659 (S_900): Likewise. 9660 (S_906): Likewise. 9661 * config/gcn/gcn.c: Hard code SRAM ECC settings for old architectures. 9662 * config/gcn/mkoffload.c (ELFABIVERSION_AMDGPU_HSA): Rename to ... 9663 (ELFABIVERSION_AMDGPU_HSA_V3): ... this. 9664 (ELFABIVERSION_AMDGPU_HSA_V4): New. 9665 (SET_SRAM_ECC_UNSUPPORTED): New. 9666 (copy_early_debug_info): Create elf flags to match the other objects. 9667 (main): Just let the attribute flags pass through. 9668 96692021-10-15 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 9670 9671 * tree-loop-distribution.c (reduction_var_overflows_first): 9672 Pass the type of reduction_var as first argument as it is also 9673 done for the load type. 9674 (loop_distribution::transform_reduction_loop): Add missing 9675 TREE_TYPE while determining precission of reduction_var. 9676 96772021-10-15 Richard Biener <rguenther@suse.de> 9678 9679 * defaults.h (PREFERRED_DEBUGGING_TYPE): Choose DWARF2_DEBUG 9680 when not set. 9681 * toplev.c (process_options): Warn when STABS debugging is 9682 enabled but not the preferred format. 9683 * config/pa/som.h (PREFERRED_DEBUGGING_TYPE): Define to 9684 DBX_DEBUG. 9685 * config/pdp11/pdp11.h (PREFERRED_DEBUGGING_TYPE): Likewise. 9686 96872021-10-15 Richard Biener <rguenther@suse.de> 9688 9689 PR ipa/102762 9690 * tree-inline.c (copy_bb): Avoid underflowing nargs. 9691 96922021-10-15 Hongyu Wang <hongyu.wang@intel.com> 9693 9694 * config/i386/i386-expand.c (ix86_expand_vec_perm): Convert 9695 HFmode input operand to HImode. 9696 (ix86_vectorize_vec_perm_const): Likewise. 9697 * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1_hf): 9698 New define_insn. 9699 (*avx512f_permvar_truncv8siv8hi_1_hf): 9700 Likewise. 9701 97022021-10-15 Richard Biener <rguenther@suse.de> 9703 9704 PR middle-end/102682 9705 * expmed.c (store_bit_field_1): Ensure a LHS subreg would 9706 not create a paradoxical subreg. 9707 97082021-10-15 Hongyu Wang <hongyu.wang@intel.com> 9709 9710 * config/i386/i386-expand.c (ix86_expand_vector_init): 9711 For half_vector concat for HFmode, handle them like HImode. 9712 97132021-10-14 Aldy Hernandez <aldyh@redhat.com> 9714 9715 * tree-ssa-threadbackward.c (class back_threader): Add m_resolve. 9716 (back_threader::back_threader): Same. 9717 (back_threader::resolve_phi): Try to solve without looking back if 9718 possible. 9719 (back_threader::find_paths_to_names): Same. 9720 (try_thread_blocks): Pass resolve argument to back threader. 9721 (pass_early_thread_jumps::execute): Same. 9722 97232021-10-14 Aldy Hernandez <aldyh@redhat.com> 9724 9725 * doc/invoke.texi: Remove max-fsm-thread-length, 9726 max-fsm-thread-paths, and fsm-maximum-phi-arguments. 9727 * params.opt: Same. 9728 * tree-ssa-threadbackward.c (back_threader::back_threader): Remove 9729 argument. 9730 (back_threader_registry::back_threader_registry): Same. 9731 (back_threader_profitability::profitable_path_p): Remove 9732 param_max_fsm_thread-length. 9733 (back_threader_registry::register_path): Remove 9734 m_max_allowable_paths. 9735 97362021-10-14 Aldy Hernandez <aldyh@redhat.com> 9737 9738 * tree-ssa-threadbackward.c (class back_threader): Make m_imports 9739 an auto_bitmap. 9740 (back_threader::~back_threader): Do not release m_path. 9741 97422021-10-14 Andrew MacLeod <amacleod@redhat.com> 9743 9744 PR tree-optimization/102738 9745 * vr-values.c (simplify_using_ranges::simplify): Handle RSHIFT_EXPR. 9746 97472021-10-14 Kwok Cheung Yeung <kcy@codesourcery.com> 9748 9749 * omp-general.c (omp_check_context_selector): Move from c-omp.c. 9750 (omp_mark_declare_variant): Move from c-omp.c. 9751 (omp_context_name_list_prop): Update for Fortran strings. 9752 * omp-general.h (omp_check_context_selector): New prototype. 9753 (omp_mark_declare_variant): New prototype. 9754 97552021-10-14 Richard Sandiford <richard.sandiford@arm.com> 9756 9757 * config/rs6000/rs6000.c (rs6000_density_test): Move early 9758 exit test further up the function. 9759 97602021-10-14 Richard Sandiford <richard.sandiford@arm.com> 9761 9762 * config/arm/arm.c (arm_add_stmt_cost): Delete. 9763 (TARGET_VECTORIZE_ADD_STMT_COST): Delete. 9764 97652021-10-14 Martin Jambor <mjambor@suse.cz> 9766 9767 * doc/invoke.texi (Optimize Options): Add entry for 9768 ipa-cp-recursive-freq-factor. 9769 97702021-10-14 Tamar Christina <tamar.christina@arm.com> 9771 9772 * match.pd: New rule. 9773 97742021-10-14 Jan Hubicka <hubicka@ucw.cz> 9775 9776 PR ipa/102557 9777 * ipa-modref-tree.h (modref_access_node::update2): 9778 Also check that parm_offset is unchanged. 9779 (modref_ref_node::insert_access): Fix updating of 9780 parameter. 9781 97822021-10-14 Aldy Hernandez <aldyh@redhat.com> 9783 9784 * tree-ssa-threadbackward.c (back_threader::resolve_phi): Add 9785 FIXME note. 9786 97872021-10-14 Richard Biener <rguenther@suse.de> 9788 9789 PR tree-optimization/102659 9790 * tree-if-conv.c (if_convertible_gimple_assign_stmt_p): Also 9791 rewrite pointer typed undefined overflow operations. 9792 (predicate_statements): Likewise. Make sure to emit invariant 9793 conversions in the preheader. 9794 * tree-vectorizer.c (vect_loop_vectorized_call): Look through 9795 non-empty preheaders. 9796 * tree-data-ref.c (dr_analyze_indices): Strip useless 9797 conversions to the MEM_REF base type. 9798 97992021-10-14 Martin Liska <mliska@suse.cz> 9800 9801 * common.opt: Stop using AUTODETECT_VALUE 9802 and use EnabledBy where possible. 9803 * opts.c: Enable OPT_fvar_tracking with optimize >= 1. 9804 * toplev.c (AUTODETECT_VALUE): Remove macro. 9805 (process_options): Simplify by using EnabledBy and 9806 OPT_fvar_tracking. Use OPTION_SET_P macro instead of 9807 AUTODETECT_VALUE. 9808 98092021-10-14 Jonathan Wright <jonathan.wright@arm.com> 9810 9811 * config/aarch64/arm_neon.h (vld1_s8_x3): Use signed type for 9812 pointer parameter. 9813 (vld1_s32_x3): Likewise. 9814 98152021-10-14 Aldy Hernandez <aldyh@redhat.com> 9816 9817 PR tree-optimization/102736 9818 PR tree-optimization/102736 9819 * gimple-range-path.cc (path_range_query::range_on_path_entry): 9820 Assert that the requested range is defined outside the path. 9821 (path_range_query::ssa_range_in_phi): Do not call 9822 range_on_path_entry for SSA names that are defined within the 9823 path. 9824 98252021-10-14 Iain Sandoe <iain@sandoe.co.uk> 9826 9827 * config/darwin-driver.c (darwin_find_version_from_kernel): 9828 Quote internal identifiers and avoid contractions in 9829 warnings. 9830 (darwin_default_min_version): Likewise. 9831 (darwin_driver_init): Likewise. 9832 98332021-10-14 Martin Jambor <mjambor@suse.cz> 9834 9835 * params.opt (ipa-cp-recursive-freq-factor): New. 9836 * ipa-cp.c (ipcp_value): Switch to inline initialization. New members 9837 scc_no, self_recursion_generated_level, same_scc and 9838 self_recursion_generated_p. 9839 (ipcp_lattice::add_value): Replaced parameter unlimited with 9840 same_lat_gen_level, usit it determine limit of values and store it to 9841 the value. 9842 (ipcp_lattice<valtype>::print): Dump the new fileds. 9843 (allocate_and_init_ipcp_value): Take same_lat_gen_level as a new 9844 parameter and store it to the new value. 9845 (self_recursively_generated_p): Removed. 9846 (propagate_vals_across_arith_jfunc): Use self_recursion_generated_p 9847 instead of self_recursively_generated_p, store self generation level 9848 to such values. 9849 (value_topo_info<valtype>::add_val): Set scc_no. 9850 (value_topo_info<valtype>::propagate_effects): Multiply frequencies of 9851 recursively feeding values and self generated values by appropriate 9852 new factors. 9853 98542021-10-14 Richard Sandiford <richard.sandiford@arm.com> 9855 9856 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Remove 9857 redundant test for flag_vect_cost_model. 9858 98592021-10-14 Aldy Hernandez <aldyh@redhat.com> 9860 9861 * bitmap.c (debug): New overloaded function for auto_bitmaps. 9862 * bitmap.h (debug): Same. 9863 98642021-10-14 Hongyu Wang <hongyu.wang@intel.com> 9865 9866 * config/i386/avx512fp16intrin.h (_mm512_mask_fcmadd_pch): 9867 Adjust builtin call. 9868 (_mm512_mask3_fcmadd_pch): Likewise. 9869 (_mm512_mask_fmadd_pch): Likewise 9870 (_mm512_mask3_fmadd_pch): Likewise 9871 (_mm512_mask_fcmadd_round_pch): Likewise 9872 (_mm512_mask3_fcmadd_round_pch): Likewise 9873 (_mm512_mask_fmadd_round_pch): Likewise 9874 (_mm512_mask3_fmadd_round_pch): Likewise 9875 (_mm_mask_fcmadd_sch): Likewise 9876 (_mm_mask3_fcmadd_sch): Likewise 9877 (_mm_mask_fmadd_sch): Likewise 9878 (_mm_mask3_fmadd_sch): Likewise 9879 (_mm_mask_fcmadd_round_sch): Likewise 9880 (_mm_mask3_fcmadd_round_sch): Likewise 9881 (_mm_mask_fmadd_round_sch): Likewise 9882 (_mm_mask3_fmadd_round_sch): Likewise 9883 (_mm_fcmadd_round_sch): Likewise 9884 * config/i386/avx512fp16vlintrin.h (_mm_mask_fmadd_pch): 9885 Adjust builtin call. 9886 (_mm_mask3_fmadd_pch): Likewise 9887 (_mm256_mask_fmadd_pch): Likewise 9888 (_mm256_mask3_fmadd_pch): Likewise 9889 (_mm_mask_fcmadd_pch): Likewise 9890 (_mm_mask3_fcmadd_pch): Likewise 9891 (_mm256_mask_fcmadd_pch): Likewise 9892 (_mm256_mask3_fcmadd_pch): Likewise 9893 * config/i386/i386-builtin.def: Add mask3 builtin for complex 9894 fma, and adjust mask_builtin to corresponding expander. 9895 * config/i386/i386-expand.c (ix86_expand_round_builtin): 9896 Skip eraseing embedded rounding for expanders that emits 9897 multiple insns. 9898 * config/i386/sse.md (complexmove): New mode_attr. 9899 (<avx512>_fmaddc_<mode>_mask1<round_expand_name>): New expander. 9900 (<avx512>_fcmaddc_<mode>_mask1<round_expand_name>): Likewise. 9901 (avx512fp16_fmaddcsh_v8hf_mask1<round_expand_name>): Likewise. 9902 (avx512fp16_fcmaddcsh_v8hf_mask1<round_expand_name>): Likewise. 9903 (avx512fp16_fcmaddcsh_v8hf_mask3<round_expand_name>): Likewise. 9904 (avx512fp16_fmaddcsh_v8hf_mask3<round_expand_name>): Likewise. 9905 * config/i386/subst.md (round_embedded_complex): New subst. 9906 99072021-10-14 John David Anglin <danglin@gcc.gnu.org> 9908 9909 * config/pa/pa.md (cbranchsf4): Disable if TARGET_SOFT_FLOAT. 9910 (cbranchdf4): Likewise. 9911 Add missing move patterns for TARGET_SOFT_FLOAT. 9912 99132021-10-13 Roger Sayle <roger@nextmovesoftware.com> 9914 9915 * config/i386/i386-expand.c (ix86_expand_vector_move): Use a 9916 pseudo intermediate when moving a SUBREG into a hard register, 9917 by checking ix86_hardreg_mov_ok. 9918 (ix86_expand_vector_extract): Store zero-extended SImode 9919 intermediate in a pseudo, then set target using a SUBREG_PROMOTED 9920 annotated subreg. 9921 * config/i386/sse.md (mov<VMOVE>_internal): Prevent CSE creating 9922 complex (SUBREG) sets of (vector) hard registers before reload, by 9923 checking ix86_hardreg_mov_ok. 9924 99252021-10-13 Indu Bhagat <indu.bhagat@oracle.com> 9926 9927 * ctfc.h (enum ctf_dtu_d_union_enum): Remove redundant comma. 9928 99292021-10-13 Indu Bhagat <indu.bhagat@oracle.com> 9930 9931 * dwarf2ctf.c (gen_ctf_array_type): Fix typo in comment. 9932 99332021-10-13 Martin Sebor <msebor@redhat.com> 9934 9935 PR middle-end/102630 9936 * pointer-query.cc (compute_objsize_r): Handle named address spaces. 9937 99382021-10-13 Iain Sandoe <iain@sandoe.co.uk> 9939 9940 * collect2.c (is_lto_object_file): Release simple-object 9941 resources, close files. 9942 99432021-10-13 Andre Vieira <andre.simoesdiasvieira@arm.com> 9944 9945 * config/arm/arm.c (thumb2_legitimate_address_p): Use VALID_MVE_MODE 9946 when checking mve addressing modes. 9947 (mve_vector_mem_operand): Fix the way we handle pre, post and offset 9948 addressing modes. 9949 (arm_print_operand): Fix printing of POST_ and PRE_MODIFY. 9950 * config/arm/mve.md: Use mve_memory_operand predicate everywhere where 9951 there is a single Ux constraint. 9952 99532021-10-13 John David Anglin <danglin@gcc.gnu.org> 9954 9955 * config/pa/pa.md (muldi3): Add support for inlining 64-bit 9956 multiplication on 32-bit PA 1.1 and 2.0 targets. 9957 99582021-10-13 Martin Liska <mliska@suse.cz> 9959 9960 PR gcov-profile/90364 9961 * coverage.c (build_info): Emit checksum to the global variable. 9962 (build_info_type): Add new field for checksum. 9963 (coverage_obj_finish): Pass object_checksum. 9964 (coverage_init): Use 0 as checksum for .gcno files. 9965 * gcov-dump.c (dump_gcov_file): Dump also new checksum field. 9966 * gcov.c (read_graph_file): Read also checksum. 9967 * doc/invoke.texi: Document the behaviour change. 9968 99692021-10-13 Richard Biener <rguenther@suse.de> 9970 9971 * gimple-iterator.h (gsi_iterator_update): Add GSI_LAST_NEW_STMT, 9972 start at integer value 2. 9973 * gimple-iterator.c (gsi_insert_seq_nodes_before): Update 9974 the iterator for GSI_LAST_NEW_STMT. 9975 (gsi_insert_seq_nodes_after): Likewise. 9976 * tree-if-conv.c (predicate_statements): Use GSI_LAST_NEW_STMT. 9977 * tree-ssa.c (execute_update_addresses_taken): Correct bogus 9978 arguments to gsi_replace. 9979 99802021-10-13 Martin Liska <mliska@suse.cz> 9981 9982 PR target/102688 9983 * common.opt: Use EnabledBy instead of detection in 9984 finish_options and process_options. 9985 * opts.c (finish_options): Remove handling of 9986 x_flag_unroll_all_loops. 9987 * toplev.c (process_options): Likewise for flag_web and 9988 flag_rename_registers. 9989 99902021-10-13 Richard Biener <rguenther@suse.de> 9991 9992 PR tree-optimization/102659 9993 * tree-if-conv.c (need_to_rewrite_undefined): New flag. 9994 (if_convertible_gimple_assign_stmt_p): Mark the loop for 9995 rewrite when stmts with undefined behavior on integer 9996 overflow appear. 9997 (combine_blocks): Predicate also when we need to rewrite stmts. 9998 (predicate_statements): Rewrite affected stmts to something 9999 with well-defined behavior on overflow. 10000 (tree_if_conversion): Initialize need_to_rewrite_undefined. 10001 100022021-10-13 Richard Biener <rguenther@suse.de> 10003 10004 PR ipa/102714 10005 * ipa-sra.c (ptr_parm_has_nonarg_uses): Fix volatileness 10006 check. 10007 100082021-10-13 Jose E. Marchesi <jose.marchesi@oracle.com> 10009 10010 * dwarf2ctf.c: Fix typo in comment. 10011 100122021-10-12 Bill Schmidt <wschmidt@linux.ibm.com> 10013 10014 PR target/101985 10015 * config/rs6000/altivec.h (vec_cpsgn): Swap operand order. 10016 * config/rs6000/rs6000-overload.def (VEC_COPYSIGN): Use SKIP to 10017 avoid generating an automatic #define of vec_cpsgn. Use the 10018 correct built-in for V4SFmode that doesn't depend on VSX. 10019 100202021-10-12 Uro�� Bizjak <ubizjak@gmail.com> 10021 10022 PR target/85730 10023 PR target/82524 10024 * config/i386/i386.md (*add<mode>_1_slp): Rewrite as 10025 define_insn_and_split pattern. Add alternative 1 and split it 10026 post reload to insert operand 1 into the low part of operand 0. 10027 (*sub<mode>_1_slp): Ditto. 10028 (*and<mode>_1_slp): Ditto. 10029 (*<any_or:code><mode>_1_slp): Ditto. 10030 (*ashl<mode>3_1_slp): Ditto. 10031 (*<any_shiftrt:insn><mode>3_1_slp): Ditto. 10032 (*<any_rotate:insn><mode>3_1_slp): Ditto. 10033 (*neg<mode>_1_slp): New insn_and_split pattern. 10034 (*one_cmpl<mode>_1_slp): Ditto. 10035 100362021-10-12 David Edelsohn <dje.gcc@gmail.com> 10037 10038 * doc/install.texi: Update MinGW and mingw-64 Binaries 10039 download links. 10040 100412021-10-12 Daniel Le Duc Khoi Nguyen <greenrecyclebin@gmail.com> 10042 10043 * doc/extend.texi (Common Variable Attributes): Fix typos in 10044 alloc_size documentation. 10045 100462021-10-12 Richard Biener <rguenther@suse.de> 10047 10048 PR tree-optimization/102696 10049 * tree-vect-slp.c (vect_build_slp_tree_2): Properly mark 10050 the tree fatally failed when we reject a BIT_FIELD_REF. 10051 100522021-10-12 Richard Biener <rguenther@suse.de> 10053 10054 PR tree-optimization/102572 10055 * tree-vect-stmts.c (vect_build_gather_load_calls): When 10056 gathering the vectorized defs for the mask pass in the 10057 desired mask vector type so invariants will be handled 10058 correctly. 10059 100602021-10-12 Tamar Christina <tamar.christina@arm.com> 10061 10062 * config/aarch64/aarch64-sve.md (*fcm<cmp_op><mode>_bic_combine, 10063 *fcm<cmp_op><mode>_nor_combine, *fcmuo<mode>_bic_combine, 10064 *fcmuo<mode>_nor_combine): New. 10065 100662021-10-12 Eric Botcazou <ebotcazou@adacore.com> 10067 10068 PR target/102588 10069 * config/sparc/sparc-modes.def (OI): New integer mode. 10070 100712021-10-12 Jakub Jelinek <jakub@redhat.com> 10072 10073 * gimple-fold.h (clear_padding_type_may_have_padding_p): Declare. 10074 * gimple-fold.c (clear_padding_type_may_have_padding_p): No longer 10075 static. 10076 100772021-10-12 Jakub Jelinek <jakub@redhat.com> 10078 10079 * tree-vectorizer.h (loop_cost_model): New function. 10080 (unlimited_cost_model): Use it. 10081 * tree-vect-loop.c (vect_analyze_loop_costing): Use loop_cost_model 10082 call instead of flag_vect_cost_model. 10083 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. 10084 (vect_prune_runtime_alias_test_list): Likewise. Also use it instead 10085 of flag_simd_cost_model. 10086 100872021-10-12 liuhongt <hongtao.liu@intel.com> 10088 10089 PR target/102483 10090 * config/i386/i386-expand.c (emit_reduc_half): Handle 10091 V4QImode. 10092 * config/i386/mmx.md (reduc_<code>_scal_v4qi): New expander. 10093 (reduc_plus_scal_v4qi): Ditto. 10094 100952021-10-12 Paul A. Clarke <pc@us.ibm.com> 10096 10097 * config/rs6000/smmintrin.h (_mm_cmpeq_epi64, _mm_cmpgt_epi64, 10098 _mm_mullo_epi32, _mm_mul_epi32, _mm_packus_epi32): New. 10099 * config/rs6000/nmmintrin.h: Copy from i386, tweak to suit. 10100 101012021-10-12 Paul A. Clarke <pc@us.ibm.com> 10102 10103 * config/rs6000/smmintrin.h (_mm_cvtepi8_epi16, _mm_cvtepi8_epi32, 10104 _mm_cvtepi8_epi64, _mm_cvtepi16_epi32, _mm_cvtepi16_epi64, 10105 _mm_cvtepi32_epi64, _mm_cvtepu8_epi16, _mm_cvtepu8_epi32, 10106 _mm_cvtepu8_epi64, _mm_cvtepu16_epi32, _mm_cvtepu16_epi64, 10107 _mm_cvtepu32_epi64): New. 10108 101092021-10-12 Paul A. Clarke <pc@us.ibm.com> 10110 10111 * config/rs6000/smmintrin.h (_mm_test_all_zeros, 10112 _mm_test_all_ones, _mm_test_mix_ones_zeros): Rewrite as macro. 10113 101142021-10-12 Paul A. Clarke <pc@us.ibm.com> 10115 10116 * config/rs6000/smmintrin.h (_mm_min_epi8, _mm_min_epu16, 10117 _mm_min_epi32, _mm_min_epu32, _mm_max_epi8, _mm_max_epu16, 10118 _mm_max_epi32, _mm_max_epu32): New. 10119 101202021-10-11 Jan Hubicka <hubicka@ucw.cz> 10121 10122 * ipa-modref-tree.h (struct modref_access_node): Revert 10123 accidental change. 10124 (struct modref_ref_node): Likewise. 10125 101262021-10-11 Jan Hubicka <hubicka@ucw.cz> 10127 10128 * ipa-modref-tree.h (modref_tree::global_access_p): New member 10129 function. 10130 * ipa-modref.c: 10131 (implicint_const_eaf_flags,implicit_pure_eaf_flags, 10132 ignore_stores_eaf_flags): Move to ipa-modref.h 10133 (remove_useless_eaf_flags): Remove early exit on NOCLOBBER. 10134 (modref_summary::global_memory_read_p): New member function. 10135 (modref_summary::global_memory_written_p): New member function. 10136 * ipa-modref.h (modref_summary::global_memory_read_p, 10137 modref_summary::global_memory_written_p): Declare. 10138 (implicint_const_eaf_flags,implicit_pure_eaf_flags, 10139 ignore_stores_eaf_flags): move here. 10140 * tree-ssa-structalias.c: Include ipa-modref-tree.h, ipa-modref.h 10141 and attr-fnspec.h. 10142 (handle_rhs_call): Rewrite. 10143 (handle_call_arg): New function. 10144 (determine_global_memory_access): New function. 10145 (handle_const_call): Remove 10146 (handle_pure_call): Remove 10147 (find_func_aliases_for_call): Update use of handle_rhs_call. 10148 (compute_points_to_sets): Handle global memory acccesses 10149 selectively 10150 101512021-10-11 Diane Meirowitz <diane.meirowitz@oracle.com> 10152 10153 * doc/invoke.texi: Add link to UndefinedBehaviorSanitizer 10154 documentation, mention UBSAN_OPTIONS, similar to what is done 10155 for AddressSanitizer. 10156 101572021-10-11 Richard Biener <rguenther@suse.de> 10158 10159 PR middle-end/102683 10160 * internal-fn.c (expand_DEFERRED_INIT): Check for mode 10161 availability before building an integer type for storage 10162 purposes. 10163 101642021-10-11 Richard Biener <rguenther@suse.de> 10165 10166 PR middle-end/101480 10167 * gimple.c (gimple_call_fnspec): Do not mark operator new/delete 10168 as const. 10169 101702021-10-11 Martin Liska <mliska@suse.cz> 10171 10172 * common.opt: Remove Init(2) for some options. 10173 * toplev.c (process_options): Do not use AUTODETECT_VALUE, but 10174 use rather OPTION_SET_P. 10175 101762021-10-11 Martin Liska <mliska@suse.cz> 10177 10178 * common.opt: Remove usage of IRA_REGION_AUTODETECT. 10179 * flag-types.h (enum ira_region): Likewise. 10180 * toplev.c (process_options): Use OPTION_SET_P instead of 10181 IRA_REGION_AUTODETECT. 10182 101832021-10-11 Jakub Jelinek <jakub@redhat.com> 10184 10185 * omp-low.c (omp_runtime_api_call): Handle omp_get_max_teams, 10186 omp_[sg]et_teams_thread_limit and omp_set_num_teams. 10187 101882021-10-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 10189 10190 * config/s390/s390-protos.h (s390_rawmemchr): Add prototype. 10191 * config/s390/s390.c (s390_rawmemchr): New function. 10192 * config/s390/s390.md (rawmemchr<SINT:mode>): New expander. 10193 * config/s390/vector.md (@vec_vfees<mode>): Basically a copy of 10194 the pattern vfees<mode> from vx-builtins.md. 10195 * config/s390/vx-builtins.md (*vfees<mode>): Remove. 10196 101972021-10-11 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 10198 10199 * builtins.c (get_memory_rtx): Change to external linkage. 10200 * builtins.h (get_memory_rtx): Add function prototype. 10201 * doc/md.texi (rawmemchr<mode>): Document. 10202 * internal-fn.c (expand_RAWMEMCHR): Define. 10203 * internal-fn.def (RAWMEMCHR): Add. 10204 * optabs.def (rawmemchr_optab): Add. 10205 * tree-loop-distribution.c (find_single_drs): Change return code 10206 behaviour by also returning true if no single store was found 10207 but a single load. 10208 (loop_distribution::classify_partition): Respect the new return 10209 code behaviour of function find_single_drs. 10210 (loop_distribution::execute): Call new function 10211 transform_reduction_loop in order to replace rawmemchr or strlen 10212 like loops by calls into builtins. 10213 (generate_reduction_builtin_1): New function. 10214 (generate_rawmemchr_builtin): New function. 10215 (generate_strlen_builtin_1): New function. 10216 (generate_strlen_builtin): New function. 10217 (generate_strlen_builtin_using_rawmemchr): New function. 10218 (reduction_var_overflows_first): New function. 10219 (determine_reduction_stmt_1): New function. 10220 (determine_reduction_stmt): New function. 10221 (loop_distribution::transform_reduction_loop): New function. 10222 102232021-10-11 Martin Liska <mliska@suse.cz> 10224 10225 * tree.c (cl_option_hasher::hash): Use cl_optimization_hash 10226 and remove legacy hashing code. 10227 102282021-10-11 Kito Cheng <kito.cheng@sifive.com> 10229 10230 PR target/100316 10231 * builtins.c (maybe_emit_call_builtin___clear_cache): Allow 10232 CONST_INT for BEGIN and END, and use gcc_assert rather than 10233 error. 10234 102352021-10-10 Jakub Jelinek <jakub@redhat.com> 10236 10237 PR debug/102441 10238 * var-tracking.c (add_stores): For cselib_sp_derived_value_p values 10239 use MO_VAL_SET if loc is not sp. 10240 102412021-10-10 Andrew Pinski <apinski@marvell.com> 10242 10243 PR tree-optimization/102622 10244 * match.pd: Swap the order of a?pow2cst:0 and a?-1:0 transformations. 10245 Swap the order of a?0:pow2cst and a?0:-1 transformations. 10246 102472021-10-09 liuhongt <hongtao.liu@intel.com> 10248 10249 PR target/102639 10250 * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Handle 10251 HFmode. 10252 (ix86_use_mask_cmp_p): Ditto. 10253 (ix86_expand_sse_movcc): Ditto. 10254 * config/i386/i386.md (setcc_hf_mask): New define_insn. 10255 (movhf_mask): Ditto. 10256 (UNSPEC_MOVCC_MASK): New unspec. 10257 * config/i386/sse.md (UNSPEC_PCMP): Move to i386.md. 10258 102592021-10-08 Vladimir N. Makarov <vmakarov@redhat.com> 10260 10261 PR rtl-optimization/102627 10262 * lra-constraints.c (split_reg): Use at least natural mode of hard reg. 10263 102642021-10-08 Aldy Hernandez <aldyh@redhat.com> 10265 10266 * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Grow 10267 bitmap if needed. 10268 102692021-10-08 Aldy Hernandez <aldyh@redhat.com> 10270 10271 * value-range.cc (irange::debug): New. 10272 * value-range.h (irange::debug): New. 10273 102742021-10-08 Richard Sandiford <richard.sandiford@arm.com> 10275 10276 PR tree-optimization/102385 10277 * predict.h (change_edge_frequency): Declare. 10278 * predict.c (change_edge_frequency): New function. 10279 * tree-ssa-loop-manip.h (tree_transform_and_unroll_loop): Remove 10280 edge argument. 10281 (tree_unroll_loop): Likewise. 10282 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Update accordingly. 10283 * tree-predcom.c (pcom_worker::tree_predictive_commoning_loop): 10284 Likewise. 10285 * tree-ssa-loop-prefetch.c (loop_prefetch_arrays): Likewise. 10286 * tree-ssa-loop-manip.c (tree_unroll_loop): Likewise. 10287 (tree_transform_and_unroll_loop): Likewise. Use single_dom_exit 10288 to retrieve the exit edges. Make all the old profile update code 10289 conditional on !single_loop_p -- the case it was written for -- 10290 and use a different approach for the single-loop case. 10291 102922021-10-08 Martin Liska <mliska@suse.cz> 10293 10294 * config/alpha/alpha.c (alpha_option_override): Use new macro 10295 OPTION_SET_P. 10296 * config/arc/arc.c (arc_override_options): Likewise. 10297 * config/arm/arm.c (arm_option_override): Likewise. 10298 * config/bfin/bfin.c (bfin_load_pic_reg): Likewise. 10299 * config/c6x/c6x.c (c6x_option_override): Likewise. 10300 * config/csky/csky.c: Likewise. 10301 * config/darwin.c (darwin_override_options): Likewise. 10302 * config/frv/frv.c (frv_option_override): Likewise. 10303 * config/i386/djgpp.h: Likewise. 10304 * config/i386/i386.c (ix86_stack_protect_guard): Likewise. 10305 (ix86_max_noce_ifcvt_seq_cost): Likewise. 10306 * config/ia64/ia64.c (ia64_option_override): Likewise. 10307 (ia64_override_options_after_change): Likewise. 10308 * config/m32c/m32c.c (m32c_option_override): Likewise. 10309 * config/m32r/m32r.c (m32r_init): Likewise. 10310 * config/m68k/m68k.c (m68k_option_override): Likewise. 10311 * config/microblaze/microblaze.c (microblaze_option_override): Likewise. 10312 * config/mips/mips.c (mips_option_override): Likewise. 10313 * config/nios2/nios2.c (nios2_option_override): Likewise. 10314 * config/nvptx/nvptx.c (nvptx_option_override): Likewise. 10315 * config/pa/pa.c (pa_option_override): Likewise. 10316 * config/riscv/riscv.c (riscv_option_override): Likewise. 10317 * config/rs6000/aix71.h: Likewise. 10318 * config/rs6000/aix72.h: Likewise. 10319 * config/rs6000/aix73.h: Likewise. 10320 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Likewise. 10321 (rs6000_override_options_after_change): Likewise. 10322 (rs6000_linux64_override_options): Likewise. 10323 (glibc_supports_ieee_128bit): Likewise. 10324 (rs6000_option_override_internal): Likewise. 10325 (rs6000_file_start): Likewise. 10326 (rs6000_darwin_file_start): Likewise. 10327 * config/rs6000/rtems.h: Likewise. 10328 * config/rs6000/sysv4.h: Likewise. 10329 * config/rs6000/vxworks.h (SUB3TARGET_OVERRIDE_OPTIONS): Likewise. 10330 * config/s390/s390.c (s390_option_override): Likewise. 10331 * config/sh/linux.h: Likewise. 10332 * config/sh/netbsd-elf.h (while): Likewise. 10333 * config/sh/sh.c (sh_option_override): Likewise. 10334 * config/sol2.c (solaris_override_options): Likewise. 10335 * config/sparc/sparc.c (sparc_option_override): Likewise. 10336 * config/tilegx/tilegx.c (tilegx_option_override): Likewise. 10337 * config/visium/visium.c (visium_option_override): Likewise. 10338 * config/vxworks.c (vxworks_override_options): Likewise. 10339 * lto-opts.c (lto_write_options): Likewise. 10340 * omp-expand.c (expand_omp_simd): Likewise. 10341 * omp-general.c (omp_max_vf): Likewise. 10342 * omp-offload.c (oacc_xform_loop): Likewise. 10343 * opts.h (OPTION_SET_P): Likewise. 10344 * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise. 10345 * toplev.c (process_options): Likewise. 10346 * tree-predcom.c: Likewise. 10347 * tree-sra.c (analyze_all_variable_accesses): Likewise. 10348 103492021-10-08 liuhongt <hongtao.liu@intel.com> 10350 10351 PR target/102464 10352 * config/i386/i386.c (ix86_optab_supported_p): 10353 Return true for HFmode. 10354 * match.pd: Simplify (_Float16) ceil ((double) x) to 10355 __builtin_ceilf16 (a) when a is _Float16 type and 10356 direct_internal_fn_supported_p. 10357 103582021-10-08 liuhongt <hongtao.liu@intel.com> 10359 10360 PR target/102494 10361 * config/i386/i386-expand.c (emit_reduc_half): Hanlde V4HImode. 10362 * config/i386/mmx.md (reduc_plus_scal_v4hi): New. 10363 (reduc_<code>_scal_v4hi): New. 10364 103652021-10-08 liuhongt <hongtao.liu@intel.com> 10366 10367 * common.opt (ftree-vectorize): Add Var(flag_tree_vectorize). 10368 * doc/invoke.texi (Options That Control Optimization): Update 10369 documents. 10370 * opts.c (default_options_table): Enable auto-vectorization at 10371 O2 with very-cheap cost model. 10372 (finish_options): Use cheap cost model for 10373 explicit -ftree{,-loop}-vectorize. 10374 103752021-10-07 Indu Bhagat <indu.bhagat@oracle.com> 10376 10377 * ctfc.c (ctfc_delete_container): Free hash table contents. 10378 103792021-10-07 Indu Bhagat <indu.bhagat@oracle.com> 10380 10381 * toplev.c (process_options): Do not warn for GNU GIMPLE. 10382 103832021-10-07 Siddhesh Poyarekar <siddhesh@gotplt.org> 10384 10385 * tree-object-size.c (addr_object_size, 10386 compute_builtin_object_size): Drop PDECL and POFF arguments. 10387 (addr_object_size): Adjust calls. 10388 * tree-object-size.h (compute_builtin_object_size): Drop PDECL 10389 and POFF arguments. 10390 103912021-10-07 Roger Sayle <roger@nextmovesoftware.com> 10392 10393 * rtl.def (SMUL_HIGHPART, UMUL_HIGHPART): New RTX codes for 10394 representing signed and unsigned high-part multiplication resp. 10395 * simplify-rtx.c (simplify_binary_operation_1) [SMUL_HIGHPART, 10396 UMUL_HIGHPART]: Simplify high-part multiplications by zero. 10397 [SS_PLUS, US_PLUS, SS_MINUS, US_MINUS, SS_MULT, US_MULT, 10398 SS_DIV, US_DIV]: Similar simplifications for saturating 10399 arithmetic. 10400 (simplify_const_binary_operation) [SS_PLUS, US_PLUS, SS_MINUS, 10401 US_MINUS, SS_MULT, US_MULT, SMUL_HIGHPART, UMUL_HIGHPART]: 10402 Implement compile-time evaluation for constant operands. 10403 * dwarf2out.c (mem_loc_descriptor): Skip SMUL_HIGHPART and 10404 UMUL_HIGHPART. 10405 * doc/rtl.texi (smul_highpart, umul_highpart): Document RTX codes. 10406 * doc/md.texi (smul@var{m}3_highpart, umul@var{m3}_highpart): 10407 Mention the new smul_highpart and umul_highpart RTX codes. 10408 * doc/invoke.texi: Silence @xref "compilation" warnings. 10409 104102021-10-07 Martin Jambor <mjambor@suse.cz> 10411 10412 PR ipa/102388 10413 * ipa-prop.c (ipa_edge_args_sum_t::duplicate): Also handle the 10414 case when the source reference description corresponds to a 10415 referance taken in a function src->caller is inlined to. 10416 104172021-10-07 Jan Hubicka <hubicka@ucw.cz> 10418 10419 PR ipa/102581 10420 * ipa-modref-tree.h (modref_access_node::contains_p): Handle offsets 10421 better. 10422 (modref_access_node::try_merge_with): Add sanity check that there 10423 are no redundant entries in the list. 10424 104252021-10-07 Richard Biener <rguenther@suse.de> 10426 10427 PR tree-optimization/102608 10428 * tree-ssa-sccvn.c (visit_stmt): Drop .DEFERRED_INIT to 10429 varying. 10430 104312021-10-07 Martin Liska <mliska@suse.cz> 10432 10433 * toplev.c (toplev::main): Make 10434 save_opt_decoded_options a pointer type 10435 * toplev.h: Likewise. 10436 104372021-10-07 Andrew Stubbs <ams@codesourcery.com> 10438 10439 * config/gcn/gcn-valu.md (gather<mode>_insn_2offsets<exec>): Apply 10440 HAVE_GCN_ASM_GLOBAL_LOAD_FIXED. 10441 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. 10442 104432021-10-07 Andrew Stubbs <ams@codesourcery.com> 10444 10445 * config/gcn/gcn-hsa.h (SRAMOPT): Include the whole option string. 10446 Adjust for new -msram-ecc=any behaviour. 10447 (ASM_SPEC): Adjust -mxnack and -msram-ecc usage. 10448 * config/gcn/gcn.c (output_file_start): Implement -msram-ecc=any. 10449 * config/gcn/mkoffload.c (EF_AMDGPU_XNACK): Rename to ... 10450 (EF_AMDGPU_XNACK_V3): ... this. 10451 (EF_AMDGPU_SRAM_ECC): Rename to ... 10452 (EF_AMDGPU_SRAM_ECC_V3): ... this. 10453 (EF_AMDGPU_FEATURE_XNACK_V4): New. 10454 (EF_AMDGPU_FEATURE_XNACK_UNSUPPORTED_V4): New. 10455 (EF_AMDGPU_FEATURE_XNACK_ANY_V4): New. 10456 (EF_AMDGPU_FEATURE_XNACK_OFF_V4): New. 10457 (EF_AMDGPU_FEATURE_XNACK_ON_V4): New. 10458 (EF_AMDGPU_FEATURE_SRAMECC_V4): New. 10459 (EF_AMDGPU_FEATURE_SRAMECC_UNSUPPORTED_V4): New. 10460 (EF_AMDGPU_FEATURE_SRAMECC_ANY_V4): New. 10461 (EF_AMDGPU_FEATURE_SRAMECC_OFF_V4): New. 10462 (EF_AMDGPU_FEATURE_SRAMECC_ON_V4): New. 10463 (SET_XNACK_ON): New. 10464 (SET_XNACK_OFF): New. 10465 (TEST_XNACK): New. 10466 (SET_SRAM_ECC_ON): New. 10467 (SET_SRAM_ECC_ANY): New. 10468 (SET_SRAM_ECC_OFF): New. 10469 (TEST_SRAM_ECC_ANY): New. 10470 (TEST_SRAM_ECC_ON): New. 10471 (main): Implement HSACOv4 and -msram-ecc=any. 10472 104732021-10-07 Andrew Stubbs <ams@codesourcery.com> 10474 10475 * config.in: Regenerate. 10476 * config/gcn/gcn-hsa.h (X_FIJI): New macro. 10477 (X_900): New macro. 10478 (X_906): New macro. 10479 (X_908): New macro. 10480 (A_FIJI): Rename to ... 10481 (S_FIJI): ... this. 10482 (A_900): Rename to ... 10483 (S_900): ... this. 10484 (A_906): Rename to ... 10485 (S_906): ... this. 10486 (A_908): Rename to ... 10487 (S_908): ... this. 10488 (SRAMOPT): New macro. 10489 (ASM_SPEC): Adjust xnack option usage. 10490 * config/gcn/gcn.c (output_file_start): Adjust amdgcn_target usage. 10491 * configure: Regenerate. 10492 * configure.ac: Detect LLVM assembler dialect. 10493 104942021-10-07 Richard Biener <rguenther@suse.de> 10495 10496 * tree-pretty-print.c (dump_generic_node): Do not elide 10497 printing '&' when dumping with -gimple. 10498 104992021-10-06 Andrew MacLeod <amacleod@redhat.com> 10500 10501 * gimple-range-cache.cc (non_null_ref::adjust_range): Call new 10502 intersect routine. 10503 * gimple-range-fold.cc (adjust_pointer_diff_expr): Ditto. 10504 (adjust_imagpart_expr): Ditto. 10505 * value-range.cc (irange::irange_intersect): Call new routine if 10506 RHS is a single pair. 10507 (irange::intersect): New wide_int version. 10508 * value-range.h (class irange): New prototype. 10509 105102021-10-06 Andrew MacLeod <amacleod@redhat.com> 10511 10512 * gimple-range-edge.cc (gimple_outgoing_range::gimple_outgoing_range): 10513 Add parameter to limit size when recognizing switches. 10514 (gimple_outgoing_range::edge_range_p): Check size limit. 10515 * gimple-range-edge.h (gimple_outgoing_range): Add size field. 10516 * gimple-range-gori.cc (gori_map::calculate_gori): Ignore switches 10517 that exceed the size limit. 10518 (gori_compute::gori_compute): Add initializer. 10519 * params.opt (evrp-switch-limit): New. 10520 * doc/invoke.texi: Update docs. 10521 105222021-10-06 Andrew MacLeod <amacleod@redhat.com> 10523 10524 * value-range.h (irange::set_varying): Use TYPE_MIN_VALUE and 10525 TYPE_MAX_VALUE instead of creating new trees when possible. 10526 105272021-10-06 Andrew MacLeod <amacleod@redhat.com> 10528 10529 * gimple-range-cache.cc (non_null_ref::adjust_range): Check for 10530 zero and non-zero more efficently. 10531 105322021-10-06 Richard Biener <rguenther@suse.de> 10533 10534 PR c/102605 10535 * dumpfile.h (TDF_GIMPLE_VAL): New. 10536 (dump_flag): Re-order and adjust TDF_* flags. Make 10537 the enum uint32_t. Use std::underlying_type in the 10538 operator overloads. 10539 (optgroup_flag): Likewise for the operator overloads. 10540 * tree-pretty-print.c (dump_generic_node): Wrap ADDR_EXPR 10541 in _Literal if TDF_GIMPLE_VAL. 10542 * gimple-pretty-print.c (dump_gimple_assign): Add 10543 TDF_GIMPLE_VAL to flags when dumping operands where only 10544 is_gimple_val are allowed. 10545 (dump_gimple_cond): Likewise. 10546 105472021-10-06 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 10548 10549 * gimple-isel.cc (gimple_expand_vec_cond_expr): Remove redundant if 10550 condition. 10551 105522021-10-05 qing zhao <qing.zhao@oracle.com> 10553 10554 PR middle-end/102359 10555 * gimplify.c (gimplify_decl_expr): Not add initialization for an 10556 auto variable when it has been initialized by frontend. 10557 105582021-10-05 Aldy Hernandez <aldyh@redhat.com> 10559 10560 * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): 10561 Loosen restrictions 10562 105632021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> 10564 10565 * common/config/avr/avr-common.c (avr_handle_option): Mark 10566 argument as ATTRIBUTE_UNUSED. 10567 105682021-10-05 Jan-Benedict Glaw <jbglaw@lug-owl.de> 10569 10570 * config/lm32/uclinux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): 10571 Undefine before redefinition. 10572 105732021-10-05 Richard Biener <rguenther@suse.de> 10574 10575 * toplev.c (no_backend): Remove global var. 10576 (process_options): Pass in no_backend, move post_options 10577 langhook call to toplev::main. 10578 (do_compile): Pass in no_backend, move process_options call 10579 to toplev::main. 10580 (toplev::run_self_tests): Check no_backend at the caller. 10581 (toplev::main): Call post_options and process_options 10582 split out from do_compile, do self-tests only if 10583 no_backend is initialized. 10584 105852021-10-05 Richard Biener <rguenther@suse.de> 10586 10587 * tree-cfg.c (dump_function_to_file): Dump the UID of the 10588 function as part of the name when requested. 10589 * tree-pretty-print.c (dump_function_name): Dump the UID when 10590 requested and the langhook produced the actual name. 10591 105922021-10-05 Richard Biener <rguenther@suse.de> 10593 10594 PR middle-end/102587 10595 PR middle-end/102285 10596 * internal-fn.c (expand_DEFERRED_INIT): Fall back to 10597 zero-initialization as last resort, use the constant 10598 size as given by the DEFERRED_INIT argument to build 10599 the initializer. 10600 106012021-10-04 Marek Polacek <polacek@redhat.com> 10602 10603 PR c++/97573 10604 * doc/invoke.texi: Document -Warray-compare. 10605 106062021-10-04 Richard Biener <rguenther@suse.de> 10607 10608 * gimplify.c (is_var_need_auto_init): DECL_HARD_REGISTER 10609 variables are not to be initialized. 10610 106112021-10-04 Richard Biener <rguenther@suse.de> 10612 10613 * expr.h (non_mem_decl_p): Declare. 10614 (mem_ref_refers_to_non_mem_p): Likewise. 10615 * expr.c (non_mem_decl_p): Export. 10616 (mem_ref_refers_to_non_mem_p): Likewise. 10617 * internal-fn.c (expand_DEFERRED_INIT): Do not expand the LHS 10618 but check the base with mem_ref_refers_to_non_mem_p 10619 and non_mem_decl_p. 10620 106212021-10-04 Richard Biener <rguenther@suse.de> 10622 10623 PR tree-optimization/102570 10624 * tree-ssa-sccvn.h (vn_reference_op_struct): Document 10625 we are using clique for the internal function code. 10626 * tree-ssa-sccvn.c (vn_reference_op_eq): Compare the 10627 internal function code. 10628 (print_vn_reference_ops): Print the internal function code. 10629 (vn_reference_op_compute_hash): Hash it. 10630 (copy_reference_ops_from_call): Record it. 10631 (visit_stmt): Remove the restriction around internal function 10632 calls. 10633 (fully_constant_vn_reference_p): Use fold_const_call and handle 10634 internal functions. 10635 (vn_reference_eq): Compare call return types. 10636 * tree-ssa-pre.c (create_expression_by_pieces): Handle 10637 generating calls to internal functions. 10638 (compute_avail): Remove the restriction around internal function 10639 calls. 10640 106412021-10-04 Aldy Hernandez <aldyh@redhat.com> 10642 10643 PR tree-optimization/102560 10644 * gimple-ssa-warn-alloca.c (alloca_call_type): Remove static 10645 marker for invalid_range. 10646 106472021-10-04 Richard Biener <rguenther@suse.de> 10648 10649 PR middle-end/102587 10650 * internal-fn.c (expand_DEFERRED_INIT): Guard register 10651 initialization path an avoid initializing VLA registers 10652 with it. 10653 106542021-10-04 Eric Botcazou <ebotcazou@adacore.com> 10655 10656 * config/rs6000/vxworks.h (TARGET_INIT_LIBFUNCS): Delete. 10657 106582021-10-03 Martin Liska <mliska@suse.cz> 10659 10660 * toplev.c (toplev::main): Check opt_index if it is a part 10661 of cl_options. 10662 106632021-10-02 Aldy Hernandez <aldyh@redhat.com> 10664 10665 PR tree-optimization/102563 10666 * range-op.cc (operator_lshift::op1_range): Do not clobber 10667 range. 10668 106692021-10-02 Martin Liska <mliska@suse.cz> 10670 10671 * toplev.c (toplev::main): save_decoded_options[0] is program 10672 name and so it should be skipped. 10673 106742021-10-01 Aldy Hernandez <aldyh@redhat.com> 10675 10676 PR tree-optimization/102546 10677 * range-op.cc (operator_lshift::op1_range): Teach range-ops that 10678 X << Y is non-zero implies X is also non-zero. 10679 106802021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 10681 10682 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New 10683 Cortex-X2 core. 10684 * config/aarch64/aarch64-tune.md: Regenerate. 10685 * doc/invoke.texi: Update docs. 10686 106872021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 10688 10689 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New 10690 Cortex-A710 core. 10691 * config/aarch64/aarch64-tune.md: Regenerate. 10692 * doc/invoke.texi: Update docs. 10693 106942021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 10695 10696 * config/aarch64/aarch64-cores.def (AARCH64_CORE): New 10697 Cortex-A510 core. 10698 * config/aarch64/aarch64-tune.md: Regenerate. 10699 * doc/invoke.texi: Update docs. 10700 107012021-10-01 Martin Sebor <msebor@redhat.com> 10702 10703 PR c/102103 10704 * doc/invoke.texi (-Waddress): Update. 10705 * gengtype.c (write_types): Avoid -Waddress. 10706 * poly-int.h (POLY_SET_COEFF): Avoid using null. 10707 107082021-10-01 John David Anglin <danglin@gcc.gnu.org> 10709 10710 PR debug/102373 10711 * config/pa/pa.c (pa_option_override): Default to dwarf version 4 10712 on hppa64-hpux. 10713 107142021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 10715 10716 * config/aarch64/aarch64.h (AARCH64_FL_V9): Update value. 10717 107182021-10-01 Aldy Hernandez <aldyh@redhat.com> 10719 10720 * gimple-range-path.cc (path_range_query::compute_ranges): Use 10721 get_path_oracle. 10722 * gimple-range-path.h (class path_range_query): Remove shadowed 10723 m_oracle field. 10724 (path_range_query::get_path_oracle): New. 10725 107262021-10-01 Jakub Jelinek <jakub@redhat.com> 10727 Richard Biener <rguenther@suse.de> 10728 10729 PR sanitizer/102515 10730 * doc/invoke.texi (-fsanitize=integer-divide-by-zero): Remove 10731 INT_MIN / -1 division detection from here ... 10732 (-fsanitize=signed-integer-overflow): ... and add it here. 10733 107342021-10-01 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 10735 10736 * config/aarch64/aarch64-arches.def (AARCH64_ARCH): Added 10737 armv9-a. 10738 * config/aarch64/aarch64.h (AARCH64_FL_V9): New. 10739 (AARCH64_FL_FOR_ARCH9): New flags for Armv9-A. 10740 (AARCH64_ISA_V9): New ISA flag. 10741 * doc/invoke.texi: Update docs. 10742 107432021-10-01 Martin Liska <mliska@suse.cz> 10744 10745 * toplev.c (toplev::main): Save decoded optimization options. 10746 * toplev.h (save_opt_decoded_options): New. 10747 * doc/extend.texi: Be more clear about optimize and target 10748 attributes. 10749 107502021-10-01 Eric Botcazou <ebotcazou@adacore.com> 10751 10752 * explow.c: Include langhooks.h. 10753 (set_stack_check_libfunc): Build a proper function type. 10754 107552021-10-01 Eric Botcazou <ebotcazou@adacore.com> 10756 10757 PR c++/64697 10758 * config/i386/i386.c (legitimate_pic_address_disp_p): For PE-COFF do 10759 not return true for external weak function symbols in medium model. 10760 107612021-10-01 Jakub Jelinek <jakub@redhat.com> 10762 10763 * tree.h (OMP_CLAUSE_ORDER_REPRODUCIBLE): Define. 10764 * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_ORDER>: Print 10765 reproducible: for OMP_CLAUSE_ORDER_REPRODUCIBLE. 10766 * omp-general.c (omp_extract_for_data): If OMP_CLAUSE_ORDER is seen 10767 without OMP_CLAUSE_ORDER_UNCONSTRAINED, overwrite sched_kind to 10768 OMP_CLAUSE_SCHEDULE_STATIC. 10769 107702021-10-01 Richard Biener <rguenther@suse.de> 10771 10772 PR middle-end/102518 10773 * tree-inline.c (setup_one_parameter): Avoid substituting 10774 an invariant into contexts where a GIMPLE register is not valid. 10775 107762021-09-30 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> 10777 10778 * config/arm/arm-cpus.in: Add Cortex-R52+ CPU. 10779 * config/arm/arm-tables.opt: Regenerate. 10780 * config/arm/arm-tune.md: Regenerate. 10781 * doc/invoke.texi: Update docs. 10782 107832021-09-30 Uro�� Bizjak <ubizjak@gmail.com> 10784 10785 PR target/89954 10786 * config/i386/i386.md 10787 (sign_extend:WIDE (any_logic:NARROW (memory, immediate)) splitters): 10788 New splitters. 10789 107902021-09-30 Tobias Burnus <tobias@codesourcery.com> 10791 10792 * omp-low.c (omp_runtime_api_call): Add omp_aligned_{,c}alloc and 10793 omp_{c,re}alloc, fix omp_alloc/omp_free. 10794 107952021-09-30 Martin Liska <mliska@suse.cz> 10796 10797 * defaults.h (ASM_OUTPUT_ASCII): Do not hide global variable 10798 asm_out_file and stream directly to MYFILE. 10799 108002021-09-30 Richard Biener <rguenther@suse.de> 10801 10802 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): 10803 Restore and fix condition under which we apply npeel to 10804 the DRs misalignment value. 10805 108062021-09-30 Richard Biener <rguenther@suse.de> 10807 10808 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): 10809 Fix npeel check for variable amount of peeling. 10810 108112021-09-30 Aldy Hernandez <aldyh@redhat.com> 10812 10813 * lto-wrapper.c (run_gcc): Plug snprintf overflow. 10814 108152021-09-30 Aldy Hernandez <aldyh@redhat.com> 10816 10817 * gimple-range.cc (gimple_ranger::debug): New. 10818 * gimple-range.h (class gimple_ranger): Add debug. 10819 108202021-09-30 Aldy Hernandez <aldyh@redhat.com> 10821 10822 PR middle-end/102519 10823 * tree-vrp.c (hybrid_threader::~hybrid_threader): Free m_query. 10824 108252021-09-29 Indu Bhagat <indu.bhagat@oracle.com> 10826 10827 PR debug/102507 10828 * btfout.c (GTY): Add GTY (()) albeit for cosmetic only purpose. 10829 (btf_finalize): Empty the hash_map btf_var_ids. 10830 108312021-09-29 Aldy Hernandez <aldyh@redhat.com> 10832 10833 * tree-vrp.c (thread_through_all_blocks): Return bool. 10834 (execute_vrp_threader): Return TODO_* flags. 10835 (pass_data_vrp_threader): Set todo_flags_finish to 0. 10836 108372021-09-29 Aldy Hernandez <aldyh@redhat.com> 10838 10839 * timevar.def (TV_TREE_VRP_THREADER): New. 10840 * tree-vrp.c: Use TV_TREE_VRP_THREADER for VRP threader pass. 10841 108422021-09-29 David Faust <david.faust@oracle.com> 10843 10844 * config.gcc (bpf-*-*): Do not overwrite extra_headers. 10845 108462021-09-29 Jonathan Wright <jonathan.wright@arm.com> 10847 10848 * config/aarch64/aarch64-builtins.c (TYPES_BINOP_PPU): Define 10849 new type qualifier enum. 10850 (TYPES_TERNOP_SSSU): Likewise. 10851 (TYPES_TERNOP_PPPU): Likewise. 10852 * config/aarch64/aarch64-simd-builtins.def: Define PPU, SSU, 10853 PPPU and SSSU builtin generator macros for qtbl1 and qtbx1 10854 Neon builtins. 10855 * config/aarch64/arm_neon.h (vqtbl1_p8): Use type-qualified 10856 builtin and remove casts. 10857 (vqtbl1_s8): Likewise. 10858 (vqtbl1q_p8): Likewise. 10859 (vqtbl1q_s8): Likewise. 10860 (vqtbx1_s8): Likewise. 10861 (vqtbx1_p8): Likewise. 10862 (vqtbx1q_s8): Likewise. 10863 (vqtbx1q_p8): Likewise. 10864 (vtbl1_p8): Likewise. 10865 (vtbl2_p8): Likewise. 10866 (vtbx2_p8): Likewise. 10867 108682021-09-29 Richard Biener <rguenther@suse.de> 10869 10870 * tree-vect-data-refs.c (vect_dr_misalign_for_aligned_access): 10871 New helper. 10872 (vect_update_misalignment_for_peel): Use it to update 10873 misaligned to the value necessary for an aligned access. 10874 (vect_get_peeling_costs_all_drs): Likewise. 10875 (vect_enhance_data_refs_alignment): Likewise. 10876 108772021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10878 10879 * config/aarch64/aarch64.c (aarch64_expand_cpymem): Count number of 10880 emitted operations and adjust heuristic for code size. 10881 108822021-09-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10883 10884 * config/aarch64/aarch64.c (aarch64_expand_setmem): Count number of 10885 emitted operations and adjust heuristic for code size. 10886 108872021-09-29 Jakub Jelinek <jakub@redhat.com> 10888 10889 PR middle-end/102504 10890 * gimplify.c (gimplify_scan_omp_clauses): Use omp_check_private even 10891 in OMP_SCOPE clauses, not just on worksharing construct clauses. 10892 108932021-09-28 Geng Qi <gengqi@linux.alibaba.com> 10894 10895 * config/riscv/riscv.md (mulv<mode>4): Call gen_smul<mode>3_highpart. 10896 (<u>mulditi3): Call <su>muldi3_highpart. 10897 (<u>muldi3_highpart): Rename to <su>muldi3_highpart. 10898 (<u>mulsidi3): Call <su>mulsi3_highpart. 10899 (<u>mulsi3_highpart): Rename to <su>mulsi3_highpart. 10900 109012021-09-28 Iain Sandoe <iain@sandoe.co.uk> 10902 10903 * config/darwin.h (DSYMUTIL_SPEC): Recognize D sources. 10904 109052021-09-28 Iain Sandoe <iain@sandoe.co.uk> 10906 10907 * config/rs6000/darwin.h (FIXED_R13): Add for PPC64. 10908 (FIRST_SAVED_GP_REGNO): Save from R13 even when it is one 10909 of the fixed regs. 10910 109112021-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10912 10913 * config/aarch64/aarch64.h (AARCH64_FL_LS64): Define 10914 (AARCH64_FL_V8_7): Likewise. 10915 (AARCH64_FL_FOR_ARCH8_7): Likewise. 10916 * config/aarch64/aarch64-arches.def (armv8.7-a): Define. 10917 * config/aarch64/aarch64-option-extensions.def (ls64): Define. 10918 * doc/invoke.texi: Document the above. 10919 109202021-09-28 Aldy Hernandez <aldyh@redhat.com> 10921 10922 * dbgcnt.c (dbg_cnt_counter): New. 10923 * dbgcnt.h (dbg_cnt_counter): New. 10924 * dumpfile.c (dump_options): Add entry for TDF_THREADING. 10925 * dumpfile.h (enum dump_flag): Add TDF_THREADING. 10926 * gimple-range-path.cc (DEBUG_SOLVER): Use TDF_THREADING. 10927 * tree-ssa-threadupdate.c (dump_jump_thread_path): Dump out 10928 debug counter. 10929 109302021-09-28 Aldy Hernandez <aldyh@redhat.com> 10931 10932 * cfgcleanup.c (pass_jump::execute): Check 10933 flag_expensive_optimizations. 10934 (pass_jump_after_combine::gate): Same. 10935 * doc/invoke.texi (-fthread-jumps): Enable for -O1. 10936 * opts.c (default_options_table): Enable -fthread-jumps at -O1. 10937 * tree-ssa-threadupdate.c 10938 (fwd_jt_path_registry::remove_jump_threads_including): Bail unless 10939 flag_thread_jumps. 10940 109412021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> 10942 10943 * tree-ssa-reassoc.c (biased_names): New global. 10944 (propagate_bias_p): New function. 10945 (loop_carried_phi): Remove. 10946 (propagate_rank): Propagate bias along single uses. 10947 (get_rank): Update biased_names when needed. 10948 109492021-09-28 Ilya Leoshkevich <iii@linux.ibm.com> 10950 10951 * passes.def (pass_reassoc): Rename parameter to early_p. 10952 * tree-ssa-reassoc.c (reassoc_bias_loop_carried_phi_ranks_p): 10953 New variable. 10954 (phi_rank): Don't bias loop-carried phi ranks 10955 before vectorization pass. 10956 (execute_reassoc): Add bias_loop_carried_phi_ranks_p parameter. 10957 (pass_reassoc::pass_reassoc): Add bias_loop_carried_phi_ranks_p 10958 initializer. 10959 (pass_reassoc::set_param): Set bias_loop_carried_phi_ranks_p 10960 value. 10961 (pass_reassoc::execute): Pass bias_loop_carried_phi_ranks_p to 10962 execute_reassoc. 10963 (pass_reassoc::bias_loop_carried_phi_ranks_p): New member. 10964 109652021-09-28 Jakub Jelinek <jakub@redhat.com> 10966 10967 PR target/102498 10968 * config/i386/i386.c (standard_80387_constant_p): Don't recognize 10969 special 80387 instruction XFmode constants if flag_rounding_math. 10970 109712021-09-28 Richard Biener <rguenther@suse.de> 10972 10973 PR tree-optimization/100112 10974 * tree-ssa-sccvn.c (visit_reference_op_load): Record the 10975 referece into the hashtable twice in case last_vuse is 10976 different from the original vuse on the stmt. 10977 109782021-09-28 Jakub Jelinek <jakub@redhat.com> 10979 10980 PR middle-end/102492 10981 * gimplify.c (gimplify_adjust_omp_clauses_1): Don't call the 10982 omp_finish_clause langhook on implicitly added OMP_CLAUSE_PRIVATE 10983 clauses on SIMD constructs. 10984 109852021-09-28 Aldy Hernandez <aldyh@redhat.com> 10986 10987 PR tree-optimization/102511 10988 * gimple-range-path.cc (path_range_query::range_on_path_entry): 10989 Return VARYING when nothing found. 10990 109912021-09-28 Hongyu Wang <hongyu.wang@intel.com> 10992 10993 PR target/102230 10994 * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): Add 10995 V2HF mode check. 10996 (VALID_SSE2_REG_VHF_MODE): Add V4HFmode and V2HFmode. 10997 (VALID_MMX_REG_MODE): Add V4HFmode. 10998 (SSE_REG_MODE_P): Replace VALID_AVX512FP16_REG_MODE with 10999 vector mode condition. 11000 * config/i386/i386.c (classify_argument): Parse V4HF/V2HF 11001 via sse regs. 11002 (function_arg_32): Add V4HFmode. 11003 (function_arg_advance_32): Likewise. 11004 * config/i386/i386.md (mode): Add V4HF/V2HF. 11005 (MODE_SIZE): Likewise. 11006 * config/i386/mmx.md (MMXMODE): Add V4HF mode. 11007 (V_32): Add V2HF mode. 11008 (VHF_32_64): New mode iterator. 11009 (*mov<mode>_internal): Adjust sse alternatives to support 11010 V4HF mode move. 11011 (*mov<mode>_internal): Adjust sse alternatives to support 11012 V2HF mode move. 11013 (<insn><mode>3): New define_insn for add/sub/mul/div. 11014 110152021-09-28 Aldy Hernandez <aldyh@redhat.com> 11016 11017 * tree-ssa-threadbackward.c (pass_thread_jumps::gate): Check 11018 flag_thread_jumps. 11019 (pass_early_thread_jumps::gate): Same. 11020 * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): 11021 Return if !flag_thread_jumps. 11022 * tree-ssa-threadupdate.c 11023 (jt_path_registry::register_jump_thread): Assert that 11024 flag_thread_jumps is true. 11025 110262021-09-28 liuhongt <hongtao.liu@intel.com> 11027 11028 * simplify-rtx.c 11029 (simplify_context::simplify_binary_operation_1): Relax 11030 condition of simplifying (vec_concat:M (vec_select op0 11031 index0)(vec_select op1 index1)) to allow different modes 11032 between op0 and M, but have same inner mode. 11033 110342021-09-28 liuhongt <hongtao.liu@intel.com> 11035 11036 * config/i386/i386-expand.c (emit_reduc_half): Handle 11037 V8HF/V16HF/V32HFmode. 11038 * config/i386/sse.md (REDUC_SSE_PLUS_MODE): Add V8HF. 11039 (REDUC_SSE_SMINMAX_MODE): Ditto. 11040 (REDUC_PLUS_MODE): Add V16HF and V32HF. 11041 (REDUC_SMINMAX_MODE): Ditto. 11042 110432021-09-27 Aldy Hernandez <aldyh@redhat.com> 11044 11045 * gimple-range-path.cc 11046 (path_range_query::precompute_ranges_in_block): Rename to... 11047 (path_range_query::compute_ranges_in_block): ...this. 11048 (path_range_query::precompute_ranges): Rename to... 11049 (path_range_query::compute_ranges): ...this. 11050 (path_range_query::precompute_relations): Rename to... 11051 (path_range_query::compute_relations): ...this. 11052 (path_range_query::precompute_phi_relations): Rename to... 11053 (path_range_query::compute_phi_relations): ...this. 11054 * gimple-range-path.h: Rename precompute* to compute*. 11055 * tree-ssa-threadbackward.c 11056 (back_threader::find_taken_edge_switch): Same. 11057 (back_threader::find_taken_edge_cond): Same. 11058 * tree-ssa-threadedge.c 11059 (hybrid_jt_simplifier::compute_ranges_from_state): Same. 11060 (hybrid_jt_state::register_equivs_stmt): Inline... 11061 * tree-ssa-threadedge.h: ...here. 11062 110632021-09-27 Aldy Hernandez <aldyh@redhat.com> 11064 11065 * tree-vrp.c (lhs_of_dominating_assert): Remove. 11066 (class vrp_jt_state): Remove. 11067 (class vrp_jt_simplifier): Remove. 11068 (vrp_jt_simplifier::simplify): Remove. 11069 (class vrp_jump_threader): Remove. 11070 (vrp_jump_threader::vrp_jump_threader): Remove. 11071 (vrp_jump_threader::~vrp_jump_threader): Remove. 11072 (vrp_jump_threader::before_dom_children): Remove. 11073 (vrp_jump_threader::after_dom_children): Remove. 11074 110752021-09-27 Aldy Hernandez <aldyh@redhat.com> 11076 11077 * passes.def (pass_vrp_threader): New. 11078 * tree-pass.h (make_pass_vrp_threader): Add make_pass_vrp_threader. 11079 * tree-ssa-threadedge.c (hybrid_jt_state::register_equivs_stmt): New. 11080 (hybrid_jt_simplifier::hybrid_jt_simplifier): New. 11081 (hybrid_jt_simplifier::simplify): New. 11082 (hybrid_jt_simplifier::compute_ranges_from_state): New. 11083 * tree-ssa-threadedge.h (class hybrid_jt_state): New. 11084 (class hybrid_jt_simplifier): New. 11085 * tree-vrp.c (execute_vrp): Remove ASSERT_EXPR based jump 11086 threader. 11087 (class hybrid_threader): New. 11088 (hybrid_threader::hybrid_threader): New. 11089 (hybrid_threader::~hybrid_threader): New. 11090 (hybrid_threader::before_dom_children): New. 11091 (hybrid_threader::after_dom_children): New. 11092 (execute_vrp_threader): New. 11093 (class pass_vrp_threader): New. 11094 (make_pass_vrp_threader): New. 11095 110962021-09-27 Martin Liska <mliska@suse.cz> 11097 11098 * output.h (enum section_flag): New. 11099 (SECTION_FORGET): Remove. 11100 (SECTION_ENTSIZE): Make it (1UL << 8) - 1. 11101 (SECTION_STYLE_MASK): Define it based on other enum 11102 values. 11103 * varasm.c (switch_to_section): Remove unused handling of 11104 SECTION_FORGET. 11105 111062021-09-27 Martin Liska <mliska@suse.cz> 11107 11108 * common.opt: Add new variable flag_default_complex_method. 11109 * opts.c (finish_options): Handle flags related to 11110 x_flag_complex_method. 11111 * toplev.c (process_options): Remove option handling related 11112 to flag_complex_method. 11113 111142021-09-27 Richard Biener <rguenther@suse.de> 11115 11116 PR middle-end/102450 11117 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid using 11118 type_for_size, instead use int_mode_for_size. 11119 111202021-09-27 Andrew Pinski <apinski@marvell.com> 11121 11122 PR c/94726 11123 * gimplify.c (gimplify_save_expr): Return early 11124 if the type of val is error_mark_node. 11125 111262021-09-27 Aldy Hernandez <aldyh@redhat.com> 11127 11128 * tree-ssanames.c (ssa_name_has_boolean_range): Use 11129 get_range_query. 11130 111312021-09-27 Aldy Hernandez <aldyh@redhat.com> 11132 11133 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Remove 11134 vrp_visit_cond_stmt. 11135 * tree-ssa-dom.c (cprop_operand): Convert to range_query API. 11136 (cprop_into_stmt): Same. 11137 (dom_opt_dom_walker::optimize_stmt): Same. 11138 111392021-09-27 Richard Biener <rguenther@suse.de> 11140 11141 PR tree-optimization/97351 11142 PR tree-optimization/97352 11143 PR tree-optimization/82426 11144 * tree-vectorizer.h (dr_misalignment): Add vector type 11145 argument. 11146 (aligned_access_p): Likewise. 11147 (known_alignment_for_access_p): Likewise. 11148 (vect_supportable_dr_alignment): Likewise. 11149 (vect_known_alignment_in_bytes): Likewise. Refactor. 11150 (DR_MISALIGNMENT): Remove. 11151 (vect_update_shared_vectype): Likewise. 11152 * tree-vect-data-refs.c (dr_misalignment): Refactor, handle 11153 a vector type with larger alignment requirement and apply 11154 the negative step adjustment here. 11155 (vect_calculate_target_alignment): Remove. 11156 (vect_compute_data_ref_alignment): Get explicit vector type 11157 argument, do not apply a negative step alignment adjustment 11158 here. 11159 (vect_slp_analyze_node_alignment): Re-analyze alignment 11160 when we re-visit the DR with a bigger desired alignment but 11161 keep more precise results from smaller alignments. 11162 * tree-vect-slp.c (vect_update_shared_vectype): Remove. 11163 (vect_slp_analyze_node_operations_1): Do not update the 11164 shared vector type on stmts. 11165 * tree-vect-stmts.c (vect_analyze_stmt): Push/pop the 11166 vector type of an SLP node to the representative stmt-info. 11167 (vect_transform_stmt): Likewise. 11168 111692021-09-27 liuhongt <hongtao.liu@intel.com> 11170 11171 Revert: 11172 2021-09-09 liuhongt <hongtao.liu@intel.com> 11173 11174 PR target/101059 11175 * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. 11176 (reduc_plus_scal_v4sf): .. this, New define_expand. 11177 (reduc_plus_scal_v2df): .. and this, New define_expand. 11178 111792021-09-26 liuhongt <hongtao.liu@intel.com> 11180 11181 * doc/extend.texi (Half-Precision): Remove storage only 11182 description for _Float16 w/o avx512fp16. 11183 111842021-09-25 Dimitar Dimitrov <dimitar@dinux.eu> 11185 11186 * config/pru/constraints.md (Rrio): New constraint. 11187 * config/pru/predicates.md (regio_operand): New predicate. 11188 * config/pru/pru-pragma.c (pru_register_pragmas): Register 11189 the __regio_symbol address space. 11190 * config/pru/pru-protos.h (pru_symref2ioregno): Declaration. 11191 * config/pru/pru.c (pru_symref2ioregno): New helper function. 11192 (pru_legitimate_address_p): Remove. 11193 (pru_addr_space_legitimate_address_p): Use the address space 11194 aware hook variant. 11195 (pru_nongeneric_pointer_addrspace): New helper function. 11196 (pru_insert_attributes): New function to validate __regio_symbol 11197 usage. 11198 (TARGET_INSERT_ATTRIBUTES): New macro. 11199 (TARGET_LEGITIMATE_ADDRESS_P): Remove. 11200 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): New macro. 11201 * config/pru/pru.h (enum reg_class): Add REGIO_REGS class. 11202 * config/pru/pru.md (*regio_readsi): New pattern to read I/O 11203 registers. 11204 (*regio_nozext_writesi): New pattern to write to I/O registers. 11205 (*regio_zext_write_r30<EQS0:mode>): Ditto. 11206 * doc/extend.texi: Document the new PRU Named Address Space. 11207 112082021-09-24 Patrick Palka <ppalka@redhat.com> 11209 11210 PR c++/98216 11211 PR c++/91292 11212 * real.c (encode_ieee_double): Avoid unwanted sign extension. 11213 (encode_ieee_quad): Likewise. 11214 112152021-09-24 Vladimir Makarov <vmakarov@redhat.com> 11216 11217 PR rtl-optimization/102147 11218 * ira-build.c (ira_conflict_vector_profitable_p): Make 11219 profitability calculation independent of host compiler pointer and 11220 IRA_INT_BITS sizes. 11221 112222021-09-24 Aldy Hernandez <aldyh@redhat.com> 11223 11224 * gimple-range-path.cc (path_range_query::path_range_query): 11225 Move debugging header... 11226 (path_range_query::precompute_ranges): ...here. 11227 (path_range_query::internal_range_of_expr): Do not call 11228 range_on_path_entry if NAME is defined in the current block. 11229 112302021-09-24 Richard Biener <rguenther@suse.de> 11231 11232 * cfghooks.c (verify_flow_info): Verify unallocated BB and 11233 edge flags are not set. 11234 112352021-09-24 Aldy Hernandez <aldyh@redhat.com> 11236 11237 * tree-ssa-threadupdate.c (jt_path_registry::cancel_invalid_paths): 11238 New. 11239 (jt_path_registry::register_jump_thread): Call 11240 cancel_invalid_paths. 11241 * tree-ssa-threadupdate.h (class jt_path_registry): Add 11242 cancel_invalid_paths. 11243 112442021-09-24 Feng Xue <fxue@os.amperecomputing.com> 11245 11246 PR tree-optimization/102400 11247 * tree-ssa-sccvn.c (vn_reference_insert_pieces): Initialize 11248 result_vdef to zero value. 11249 112502021-09-24 Feng Xue <fxue@os.amperecomputing.com> 11251 11252 PR tree-optimization/102451 11253 * tree-ssa-dse.c (delete_dead_or_redundant_call): Record bb of stmt 11254 before removal. 11255 112562021-09-24 Hongyu Wang <hongyu.wang@intel.com> 11257 11258 * config/i386/sse.md (cond_<insn><mode>): Extend to support 11259 vector HFmodes. 11260 (cond_mul<mode>): Likewise. 11261 (cond_div<mode>): Likewise. 11262 (cond_<code><mode>): Likewise. 11263 (cond_fma<mode>): Likewise. 11264 (cond_fms<mode>): Likewise. 11265 (cond_fnma<mode>): Likewise. 11266 (cond_fnms<mode>): Likewise. 11267 112682021-09-23 Andrew MacLeod <amacleod@redhat.com> 11269 11270 PR tree-optimization/102463 11271 * gimple-range-fold.cc (fold_using_range::relation_fold_and_or): If 11272 there is no range-ops handler, don't look for a relation. 11273 112742021-09-23 Andrew MacLeod <amacleod@redhat.com> 11275 11276 * gimple-range-cache.cc (ranger_cache::ranger_cache): Take 11277 non-executable_edge flag as parameter. 11278 * gimple-range-cache.h (ranger_cache): Adjust prototype. 11279 * gimple-range-gori.cc (gori_compute::gori_compute): Take 11280 non-executable_edge flag as parameter. 11281 (gori_compute::outgoing_edge_range_p): Check new flag. 11282 * gimple-range-gori.h (gori_compute): Adjust prototype. 11283 * gimple-range.cc (gimple_ranger::gimple_ranger): Create new flag. 11284 (gimple_ranger::range_on_edge): Check new flag. 11285 * gimple-range.h (gimple_ranger::non_executable_edge_flag): New. 11286 * gimple-ssa-evrp.c (rvrp_folder): Pass ranger flag to simplifer. 11287 (hybrid_folder::hybrid_folder): Set ranger non-executable flag value. 11288 (hybrid_folder::fold_stmt): Set flag value in the simplifer. 11289 * vr-values.c (simplify_using_ranges::set_and_propagate_unexecutable): 11290 Use not_executable flag if provided inmstead of EDGE_EXECUTABLE. 11291 (simplify_using_ranges::simplify_switch_using_ranges): Clear 11292 EDGE_EXECUTABLE like it originally did. 11293 (simplify_using_ranges::cleanup_edges_and_switches): Clear any 11294 NON_EXECUTABLE flags. 11295 (simplify_using_ranges::simplify_using_ranges): Adjust. 11296 * vr-values.h (class simplify_using_ranges): Adjust. 11297 (simplify_using_ranges::set_range_query): Add non-executable flag param. 11298 112992021-09-23 Bill Schmidt <wschmidt@linux.ibm.com> 11300 11301 PR target/102024 11302 * config/rs6000/rs6000-call.c (rs6000_aggregate_candidate): Detect 11303 zero-width bit fields and return indicator. 11304 (rs6000_discover_homogeneous_aggregate): Diagnose when the 11305 presence of a zero-width bit field changes parameter passing in 11306 GCC 12. 11307 113082021-09-23 Aldy Hernandez <aldyh@redhat.com> 11309 11310 * gimple-range-fold.cc (fold_using_range::range_of_phi): 11311 Remove dominator check. 11312 113132021-09-23 Aldy Hernandez <aldyh@redhat.com> 11314 11315 * gimple-range-path.cc (path_range_query::precompute_relations): 11316 Hoist edge calculations before using EDGE_SUCC. 11317 113182021-09-23 Jonathan Wakely <jwakely@redhat.com> 11319 11320 * configure.ac: Fix --with-multilib-list description. 11321 * configure: Regenerate. 11322 113232021-09-23 Richard Biener <rguenther@suse.de> 11324 11325 PR tree-optimization/102448 11326 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): 11327 Clear alignment info copied from DR_PTR_INFO. 11328 113292021-09-23 Hongyu Wang <hongyu.wang@intel.com> 11330 11331 * config/i386/i386-expand.c (ix86_use_mask_cmp_p): Enable 11332 HFmode mask_cmp. 11333 * config/i386/sse.md (sseintvecmodelower): Add HF vector modes. 11334 (<avx512>_store<mode>_mask): Extend to support HF vector modes. 11335 (vec_cmp<mode><avx512fmaskmodelower>): Likewise. 11336 (vcond_mask_<mode><avx512fmaskmodelower>): Likewise. 11337 (vcond<mode><mode>): New expander. 11338 (vcond<mode><sseintvecmodelower>): Likewise. 11339 (vcond<sseintvecmodelower><mode>): Likewise. 11340 (vcondu<mode><sseintvecmodelower>): Likewise. 11341 113422021-09-23 Hongyu Wang <hongyu.wang@intel.com> 11343 11344 * config/i386/sse.md (extend<ssePHmodelower><mode>2): 11345 New expander. 11346 (extendv4hf<mode>2): Likewise. 11347 (extendv2hfv2df2): Likewise. 11348 (trunc<mode><ssePHmodelower>2): Likewise. 11349 (avx512fp16_vcvt<castmode>2ph_<mode>): Rename to ... 11350 (trunc<mode>v4hf2): ... this, and drop constraints. 11351 (avx512fp16_vcvtpd2ph_v2df): Rename to ... 11352 (truncv2dfv2hf2): ... this, and likewise. 11353 113542021-09-23 Hongyu Wang <hongyu.wang@intel.com> 11355 11356 * config/i386/sse.md (float<floatunssuffix><mode><ssePHmodelower>2): 11357 New expander. 11358 (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): 11359 Rename to ... 11360 (float<floatunssuffix><mode>v4hf2): ... this, and drop constraints. 11361 (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Rename to ... 11362 (float<floatunssuffix>v2div2hf2): ... this, and likewise. 11363 113642021-09-23 Hongyu Wang <hongyu.wang@intel.com> 11365 11366 * config/i386/i386.md (fix<fixunssuffix>_trunchf<mode>2): New expander. 11367 (fixuns_trunchfhi2): Likewise. 11368 (*fixuns_trunchfsi2zext): New define_insn. 11369 * config/i386/sse.md (ssePHmodelower): New mode_attr. 11370 (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): 11371 New expander for same element vector fix_truncate. 11372 (fix<fixunssuffix>_trunc<ssePHmodelower><mode>2): 11373 Likewise for V4HF to V4SI/V4DI fix_truncate. 11374 (fix<fixunssuffix>_truncv2hfv2di2): 11375 Likeise for V2HF to V2DI fix_truncate. 11376 113772021-09-23 Hongyu Wang <hongyu.wang@intel.com> 11378 11379 * config/i386/i386.md (<code>hf3): New expander. 11380 113812021-09-23 liuhongt <hongtao.liu@intel.com> 11382 11383 * config/i386/sse.md (FMAMODEM): extend to handle FP16. 11384 (VFH_SF_AVX512VL): Extend to handle HFmode. 11385 (VF_SF_AVX512VL): Deleted. 11386 113872021-09-23 liuhongt <hongtao.liu@intel.com> 11388 11389 * config/i386/i386.md (rinthf2): New expander. 11390 (nearbyinthf2): New expander. 11391 113922021-09-23 Aldy Hernandez <aldyh@redhat.com> 11393 11394 * tree-ssa-dom.c (class dom_jump_threader_simplifier): Rename... 11395 (class dom_jt_state): ...this and provide virtual overrides. 11396 (dom_jt_state::register_equiv): New. 11397 (class dom_jt_simplifier): Rename from 11398 dom_jump_threader_simplifier. 11399 (dom_jump_threader_simplifier::simplify): Rename... 11400 (dom_jt_simplifier::simplify): ...to this. 11401 (pass_dominator::execute): Use dom_jt_simplifier and 11402 dom_jt_state. 11403 * tree-ssa-threadedge.c (jump_threader::jump_threader): 11404 Clean-up. 11405 (jt_state::register_equivs_stmt): Abstract out... 11406 (jump_threader::record_temporary_equivalences_from_stmts_at_dest): 11407 ...from here. 11408 (jump_threader::thread_around_empty_blocks): Update state. 11409 (jump_threader::thread_through_normal_block): Same. 11410 (jt_state::jt_state): Remove. 11411 (jt_state::push): Remove pass specific bits. Keep block vector 11412 updated. 11413 (jt_state::append_path): New. 11414 (jt_state::pop): Remove pass specific bits. 11415 (jt_state::register_equiv): Same. 11416 (jt_state::record_ranges_from_stmt): Same. 11417 (jt_state::register_equivs_on_edge): Same. Rename... 11418 (jt_state::register_equivs_edge): ...to this. 11419 (jt_state::dump): New. 11420 (jt_state::debug): New. 11421 (jump_threader_simplifier::simplify): Remove. 11422 (jt_state::get_path): New. 11423 * tree-ssa-threadedge.h (class jt_simplifier): Make into a base 11424 class. Expose common functionality as virtual methods. 11425 (class jump_threader_simplifier): Same. Rename... 11426 (class jt_simplifier): ...to this. 11427 * tree-vrp.c (class vrp_jump_threader_simplifier): Rename... 11428 (class vrp_jt_simplifier): ...to this. Provide pass specific 11429 overrides. 11430 (class vrp_jt_state): New. 11431 (vrp_jump_threader_simplifier::simplify): Rename... 11432 (vrp_jt_simplifier::simplify): ...to this. Inline code from 11433 what used to be the base class. 11434 (vrp_jump_threader::vrp_jump_threader): Use vrp_jt_state and 11435 vrp_jt_simplifier. 11436 114372021-09-22 Tobias Burnus <tobias@codesourcery.com> 11438 11439 PR fortran/55534 11440 * doc/invoke.texi (-Wno-missing-include-dirs.): Document Fortran 11441 behavior. 11442 114432021-09-22 Roger Sayle <roger@nextmovesoftware.com> 11444 Richard Biener <rguenther@suse.de> 11445 11446 * match.pd (negation simplifications): Implement some negation 11447 folding transformations from fold-const.c's fold_negate_expr. 11448 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Add a SIMPLIFY 11449 argument, to control whether the op should be simplified prior 11450 to looking up/assigning a value number. 11451 (vn_nary_build_or_lookup): Update call to vn_nary_build_or_lookup_1. 11452 (vn_nary_simplify): Likewise. 11453 (visit_nary_op): Likewise, but when constructing a NEGATE_EXPR 11454 now call vn_nary_build_or_lookup_1 disabling simplification. 11455 114562021-09-22 Jiufu Guo <guojiufu@linux.ibm.com> 11457 11458 PR tree-optimization/102087 11459 * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): 11460 Update bound/cmp/control for niter. 11461 114622021-09-22 Aldy Hernandez <aldyh@redhat.com> 11463 11464 * gimple-range-fold.cc (fold_using_range::range_of_range_op): 11465 Move check for non-empty BB here. 11466 (fur_source::register_outgoing_edges): ...from here. 11467 114682021-09-22 Aldy Hernandez <aldyh@redhat.com> 11469 11470 * gimple-range-path.cc (path_range_query::internal_range_of_expr): 11471 Remove call to improve_range_with_equivs. 11472 (path_range_query::improve_range_with_equivs): Remove 11473 * gimple-range-path.h: Remove improve_range_with_equivs. 11474 114752021-09-22 dianhong xu <dianhong.xu@intel.com> 11476 11477 * config/i386/avx512fp16intrin.h: 11478 (_mm512_mask_blend_ph): New intrinsic. 11479 (_mm512_permutex2var_ph): Ditto. 11480 (_mm512_permutexvar_ph): Ditto. 11481 * config/i386/avx512fp16vlintrin.h: 11482 (_mm256_mask_blend_ph): New intrinsic. 11483 (_mm256_permutex2var_ph): Ditto. 11484 (_mm256_permutexvar_ph): Ditto. 11485 (_mm_mask_blend_ph): Ditto. 11486 (_mm_permutex2var_ph): Ditto. 11487 (_mm_permutexvar_ph): Ditto. 11488 114892021-09-22 dianhong xu <dianhong.xu@intel.com> 11490 11491 * config/i386/avx512fp16intrin.h: Add new intrinsics. 11492 (_mm512_conj_pch): New intrinsic. 11493 (_mm512_mask_conj_pch): Ditto. 11494 (_mm512_maskz_conj_pch): Ditto. 11495 * config/i386/avx512fp16vlintrin.h: Add new intrinsics. 11496 (_mm256_conj_pch): New intrinsic. 11497 (_mm256_mask_conj_pch): Ditto. 11498 (_mm256_maskz_conj_pch): Ditto. 11499 (_mm_conj_pch): Ditto. 11500 (_mm_mask_conj_pch): Ditto. 11501 (_mm_maskz_conj_pch): Ditto. 11502 115032021-09-22 dianhong xu <dianhong.xu@intel.com> 11504 11505 * config/i386/avx512fp16intrin.h (_MM512_REDUCE_OP): New macro 11506 (_mm512_reduce_add_ph): New intrinsic. 11507 (_mm512_reduce_mul_ph): Ditto. 11508 (_mm512_reduce_min_ph): Ditto. 11509 (_mm512_reduce_max_ph): Ditto. 11510 * config/i386/avx512fp16vlintrin.h 11511 (_MM256_REDUCE_OP/_MM_REDUCE_OP): New macro. 11512 (_mm256_reduce_add_ph): New intrinsic. 11513 (_mm256_reduce_mul_ph): Ditto. 11514 (_mm256_reduce_min_ph): Ditto. 11515 (_mm256_reduce_max_ph): Ditto. 11516 (_mm_reduce_add_ph): Ditto. 11517 (_mm_reduce_mul_ph): Ditto. 11518 (_mm_reduce_min_ph): Ditto. 11519 (_mm_reduce_max_ph): Ditto. 11520 115212021-09-22 dianhong xu <dianhong.xu@intel.com> 11522 11523 * config/i386/avx512fp16intrin.h (__m512h_u, __m256h_u, 11524 __m128h_u): New typedef. 11525 (_mm512_load_ph): New intrinsic. 11526 (_mm256_load_ph): Ditto. 11527 (_mm_load_ph): Ditto. 11528 (_mm512_loadu_ph): Ditto. 11529 (_mm256_loadu_ph): Ditto. 11530 (_mm_loadu_ph): Ditto. 11531 (_mm512_store_ph): Ditto. 11532 (_mm256_store_ph): Ditto. 11533 (_mm_store_ph): Ditto. 11534 (_mm512_storeu_ph): Ditto. 11535 (_mm256_storeu_ph): Ditto. 11536 (_mm_storeu_ph): Ditto. 11537 (_mm512_abs_ph): Ditto. 11538 * config/i386/avx512fp16vlintrin.h 11539 (_mm_abs_ph): Ditto. 11540 (_mm256_abs_ph): Ditto. 11541 115422021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> 11543 11544 * config/s390/tpf.md (prologue_tpf, epilogue_tpf): Add cc clobber. 11545 115462021-09-22 Andreas Krebbel <krebbel@linux.ibm.com> 11547 11548 PR target/102222 11549 * config/s390/s390.c (s390_expand_insv): Emit a normal move if it 11550 is actually a full copy of the source operand into the target. 11551 Don't emit a strict low part move if source and target mode match. 11552 115532021-09-22 Jakub Jelinek <jakub@redhat.com> 11554 11555 PR middle-end/102415 11556 * omp-expand.c (expand_omp_single): If region->exit is NULL, 11557 assert region->entry is GIMPLE_OMP_SCOPE region and return. 11558 115592021-09-22 Jakub Jelinek <jakub@redhat.com> 11560 11561 * tree.h (OMP_CLAUSE_ALLOCATE_ALIGN): Define. 11562 * tree.c (omp_clause_num_ops): Change number of OMP_CLAUSE_ALLOCATE 11563 arguments from 2 to 3. 11564 * tree-pretty-print.c (dump_omp_clause): Print allocator() around 11565 allocate clause allocator and print align if present. 11566 * omp-low.c (scan_sharing_clauses): Force allocate_map entry even 11567 for omp_default_mem_alloc if align modifier is present. If align 11568 modifier is present, use TREE_LIST to encode both allocator and 11569 align. 11570 (lower_private_allocate, lower_rec_input_clauses, create_task_copyfn): 11571 Handle align modifier on allocator clause if present. 11572 115732021-09-22 liuhongt <hongtao.liu@intel.com> 11574 11575 * config/i386/i386.md (define_attr "isa"): Add 11576 fma_or_avx512vl. 11577 (define_attr "enabled"): Correspond fma_or_avx512vl to 11578 TARGET_FMA || TARGET_AVX512VL. 11579 * config/i386/mmx.md (fmav2sf4): Extend to AVX512 fma. 11580 (fmsv2sf4): Ditto. 11581 (fnmav2sf4): Ditto. 11582 (fnmsv2sf4): Ditto. 11583 115842021-09-22 liuhongt <hongtao.liu@intel.com> 11585 11586 * config/i386/i386.md (cstorehf3): New define_expand. 11587 115882021-09-22 liuhongt <hongtao.liu@intel.com> 11589 11590 * config/i386/i386.md (<rounding_insn>hf2): New expander. 11591 (sse4_1_round<mode>2): Extend from MODEF to MODEFH. 11592 * config/i386/sse.md (*sse4_1_round<ssescalarmodesuffix>): 11593 Extend from VF_128 to VFH_128. 11594 115952021-09-22 liuhongt <hongtao.liu@intel.com> 11596 11597 * config/i386/i386-features.c (i386-features.c): Handle 11598 E_HFmode. 11599 * config/i386/i386.md (sqrthf2): New expander. 11600 (*sqrthf2): New define_insn. 11601 * config/i386/sse.md 11602 (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): 11603 Extend to VFH_128. 11604 116052021-09-22 liuhongt <hongtao.liu@intel.com> 11606 11607 * config/i386/avx512fp16intrin.h (_mm_mask_fcmadd_sch): 11608 New intrinsic. 11609 (_mm_mask3_fcmadd_sch): Likewise. 11610 (_mm_maskz_fcmadd_sch): Likewise. 11611 (_mm_fcmadd_sch): Likewise. 11612 (_mm_mask_fmadd_sch): Likewise. 11613 (_mm_mask3_fmadd_sch): Likewise. 11614 (_mm_maskz_fmadd_sch): Likewise. 11615 (_mm_fmadd_sch): Likewise. 11616 (_mm_mask_fcmadd_round_sch): Likewise. 11617 (_mm_mask3_fcmadd_round_sch): Likewise. 11618 (_mm_maskz_fcmadd_round_sch): Likewise. 11619 (_mm_fcmadd_round_sch): Likewise. 11620 (_mm_mask_fmadd_round_sch): Likewise. 11621 (_mm_mask3_fmadd_round_sch): Likewise. 11622 (_mm_maskz_fmadd_round_sch): Likewise. 11623 (_mm_fmadd_round_sch): Likewise. 11624 (_mm_fcmul_sch): Likewise. 11625 (_mm_mask_fcmul_sch): Likewise. 11626 (_mm_maskz_fcmul_sch): Likewise. 11627 (_mm_fmul_sch): Likewise. 11628 (_mm_mask_fmul_sch): Likewise. 11629 (_mm_maskz_fmul_sch): Likewise. 11630 (_mm_fcmul_round_sch): Likewise. 11631 (_mm_mask_fcmul_round_sch): Likewise. 11632 (_mm_maskz_fcmul_round_sch): Likewise. 11633 (_mm_fmul_round_sch): Likewise. 11634 (_mm_mask_fmul_round_sch): Likewise. 11635 (_mm_maskz_fmul_round_sch): Likewise. 11636 * config/i386/i386-builtin.def: Add corresponding new builtins. 11637 * config/i386/sse.md 11638 (avx512fp16_fmaddcsh_v8hf_maskz<round_expand_name>): New expander. 11639 (avx512fp16_fcmaddcsh_v8hf_maskz<round_expand_name>): Ditto. 11640 (avx512fp16_fma_<complexopname>sh_v8hf<mask_scalarcz_name><round_scalarcz_name>): 11641 New define insn. 11642 (avx512fp16_<complexopname>sh_v8hf_mask<round_name>): Ditto. 11643 (avx512fp16_<complexopname>sh_v8hf<mask_scalarc_name><round_scalarcz_name>): 11644 Ditto. 11645 * config/i386/subst.md (mask_scalarcz_name): New. 11646 (mask_scalarc_name): Ditto. 11647 (mask_scalarc_operand3): Ditto. 11648 (mask_scalarcz_operand4): Ditto. 11649 (round_scalarcz_name): Ditto. 11650 (round_scalarc_mask_operand3): Ditto. 11651 (round_scalarcz_mask_operand4): Ditto. 11652 (round_scalarc_mask_op3): Ditto. 11653 (round_scalarcz_mask_op4): Ditto. 11654 (round_scalarcz_constraint): Ditto. 11655 (round_scalarcz_nimm_predicate): Ditto. 11656 (mask_scalarcz): Ditto. 11657 (mask_scalarc): Ditto. 11658 (round_scalarcz): Ditto. 11659 116602021-09-22 liuhongt <hongtao.liu@intel.com> 11661 11662 * config/i386/avx512fp16intrin.h (_mm512_fcmadd_pch): 11663 New intrinsic. 11664 (_mm512_mask_fcmadd_pch): Likewise. 11665 (_mm512_mask3_fcmadd_pch): Likewise. 11666 (_mm512_maskz_fcmadd_pch): Likewise. 11667 (_mm512_fmadd_pch): Likewise. 11668 (_mm512_mask_fmadd_pch): Likewise. 11669 (_mm512_mask3_fmadd_pch): Likewise. 11670 (_mm512_maskz_fmadd_pch): Likewise. 11671 (_mm512_fcmadd_round_pch): Likewise. 11672 (_mm512_mask_fcmadd_round_pch): Likewise. 11673 (_mm512_mask3_fcmadd_round_pch): Likewise. 11674 (_mm512_maskz_fcmadd_round_pch): Likewise. 11675 (_mm512_fmadd_round_pch): Likewise. 11676 (_mm512_mask_fmadd_round_pch): Likewise. 11677 (_mm512_mask3_fmadd_round_pch): Likewise. 11678 (_mm512_maskz_fmadd_round_pch): Likewise. 11679 (_mm512_fcmul_pch): Likewise. 11680 (_mm512_mask_fcmul_pch): Likewise. 11681 (_mm512_maskz_fcmul_pch): Likewise. 11682 (_mm512_fmul_pch): Likewise. 11683 (_mm512_mask_fmul_pch): Likewise. 11684 (_mm512_maskz_fmul_pch): Likewise. 11685 (_mm512_fcmul_round_pch): Likewise. 11686 (_mm512_mask_fcmul_round_pch): Likewise. 11687 (_mm512_maskz_fcmul_round_pch): Likewise. 11688 (_mm512_fmul_round_pch): Likewise. 11689 (_mm512_mask_fmul_round_pch): Likewise. 11690 (_mm512_maskz_fmul_round_pch): Likewise. 11691 * config/i386/avx512fp16vlintrin.h (_mm_fmadd_pch): 11692 New intrinsic. 11693 (_mm_mask_fmadd_pch): Likewise. 11694 (_mm_mask3_fmadd_pch): Likewise. 11695 (_mm_maskz_fmadd_pch): Likewise. 11696 (_mm256_fmadd_pch): Likewise. 11697 (_mm256_mask_fmadd_pch): Likewise. 11698 (_mm256_mask3_fmadd_pch): Likewise. 11699 (_mm256_maskz_fmadd_pch): Likewise. 11700 (_mm_fcmadd_pch): Likewise. 11701 (_mm_mask_fcmadd_pch): Likewise. 11702 (_mm_mask3_fcmadd_pch): Likewise. 11703 (_mm_maskz_fcmadd_pch): Likewise. 11704 (_mm256_fcmadd_pch): Likewise. 11705 (_mm256_mask_fcmadd_pch): Likewise. 11706 (_mm256_mask3_fcmadd_pch): Likewise. 11707 (_mm256_maskz_fcmadd_pch): Likewise. 11708 (_mm_fmul_pch): Likewise. 11709 (_mm_mask_fmul_pch): Likewise. 11710 (_mm_maskz_fmul_pch): Likewise. 11711 (_mm256_fmul_pch): Likewise. 11712 (_mm256_mask_fmul_pch): Likewise. 11713 (_mm256_maskz_fmul_pch): Likewise. 11714 (_mm_fcmul_pch): Likewise. 11715 (_mm_mask_fcmul_pch): Likewise. 11716 (_mm_maskz_fcmul_pch): Likewise. 11717 (_mm256_fcmul_pch): Likewise. 11718 (_mm256_mask_fcmul_pch): Likewise. 11719 (_mm256_maskz_fcmul_pch): Likewise. 11720 * config/i386/i386-builtin-types.def (V8HF_FTYPE_V8HF_V8HF_V8HF, 11721 V8HF_FTYPE_V16HF_V16HF_V16HF, V16HF_FTYPE_V16HF_V16HF_V16HF_UQI, 11722 V32HF_FTYPE_V32HF_V32HF_V32HF_INT, 11723 V32HF_FTYPE_V32HF_V32HF_V32HF_UHI_INT): Add new builtin types. 11724 * config/i386/i386-builtin.def: Add new builtins. 11725 * config/i386/i386-expand.c: Handle new builtin types. 11726 * config/i386/subst.md (SUBST_CV): New. 11727 (maskc_name): Ditto. 11728 (maskc_operand3): Ditto. 11729 (maskc): Ditto. 11730 (sdc_maskz_name): Ditto. 11731 (sdc_mask_op4): Ditto. 11732 (sdc_mask_op5): Ditto. 11733 (sdc_mask_mode512bit_condition): Ditto. 11734 (sdc): Ditto. 11735 (round_maskc_operand3): Ditto. 11736 (round_sdc_mask_operand4): Ditto. 11737 (round_maskc_op3): Ditto. 11738 (round_sdc_mask_op4): Ditto. 11739 (round_saeonly_sdc_mask_operand5): Ditto. 11740 * config/i386/sse.md (unspec): Add complex fma unspecs. 11741 (avx512fmaskcmode): New. 11742 (UNSPEC_COMPLEX_F_C_MA): Ditto. 11743 (UNSPEC_COMPLEX_F_C_MUL): Ditto. 11744 (complexopname): Ditto. 11745 (<avx512>_fmaddc_<mode>_maskz<round_expand_name>): New expander. 11746 (<avx512>_fcmaddc_<mode>_maskz<round_expand_name>): Ditto. 11747 (fma_<complexopname>_<mode><sdc_maskz_name><round_name>): New 11748 define insn. 11749 (<avx512>_<complexopname>_<mode>_mask<round_name>): Ditto. 11750 (<avx512>_<complexopname>_<mode><maskc_name><round_name>): Ditto. 11751 117522021-09-22 Kewen Lin <linkw@linux.ibm.com> 11753 11754 * config/rs6000/rs6000.opt (rs6000-density-pct-threshold, 11755 rs6000-density-size-threshold, rs6000-density-penalty, 11756 rs6000-density-load-pct-threshold, 11757 rs6000-density-load-num-threshold): New parameter. 11758 * config/rs6000/rs6000.c (rs6000_density_test): Adjust with 11759 corresponding parameters. 11760 117612021-09-21 Aldy Hernandez <aldyh@redhat.com> 11762 11763 * gimple-range-path.cc (path_range_query::defined_outside_path): 11764 New. 11765 (path_range_query::range_on_path_entry): New. 11766 (path_range_query::internal_range_of_expr): Resolve unknowns 11767 with ranger. 11768 (path_range_query::improve_range_with_equivs): New. 11769 (path_range_query::ssa_range_in_phi): Resolve unknowns with 11770 ranger. 11771 * gimple-range-path.h (class path_range_query): Add 11772 defined_outside_path, range_on_path_entry, and 11773 improve_range_with_equivs. 11774 117752021-09-21 Aldy Hernandez <aldyh@redhat.com> 11776 11777 * gimple-range-path.cc (path_range_query::add_to_imports): New. 11778 (path_range_query::add_copies_to_imports): New. 11779 (path_range_query::precompute_ranges): Call 11780 add_copies_to_imports. 11781 * gimple-range-path.h (class path_range_query): Add prototypes 11782 for add_copies_to_imports and add_to_imports. 11783 117842021-09-21 Aldy Hernandez <aldyh@redhat.com> 11785 11786 * gimple-range-path.cc (path_range_query::range_defined_in_block): 11787 Remove useless code. 11788 117892021-09-21 Aldy Hernandez <aldyh@redhat.com> 11790 11791 * gimple-range-fold.h (class fur_source): Make oracle protected. 11792 * gimple-range-path.cc (path_range_query::path_range_query): Add 11793 resolve argument. Initialize oracle. 11794 (path_range_query::~path_range_query): Delete oracle. 11795 (path_range_query::range_of_stmt): Adapt to use relations. 11796 (path_range_query::precompute_ranges): Pre-compute relations. 11797 (class jt_fur_source): New 11798 (jt_fur_source::jt_fur_source): New. 11799 (jt_fur_source::register_relation): New. 11800 (jt_fur_source::query_relation): New. 11801 (path_range_query::precompute_relations): New. 11802 (path_range_query::precompute_phi_relations): New. 11803 * gimple-range-path.h (path_range_query): Add resolve argument. 11804 Add oracle, precompute_relations, precompute_phi_relations. 11805 * tree-ssa-threadbackward.c (back_threader::back_threader): Pass 11806 resolve argument to solver. 11807 118082021-09-21 Aldy Hernandez <aldyh@redhat.com> 11809 11810 * gimple-range-fold.cc (fold_using_range::range_of_range_op): 11811 Rename postfold_gcond_edges to register_outgoing_edges and 11812 adapt. 11813 (fold_using_range::postfold_gcond_edges): Rename... 11814 (fur_source::register_outgoing_edges): ...to this. 11815 * gimple-range-fold.h (postfold_gcond_edges): Rename to 11816 register_outgoing_edges and move to fur_source. 11817 118182021-09-21 Aldy Hernandez <aldyh@redhat.com> 11819 11820 * gimple-range-fold.cc (fold_using_range::range_of_phi): Check 11821 dom_info_available_p. 11822 118232021-09-21 Aldy Hernandez <aldyh@redhat.com> 11824 11825 * gimple-range-cache.cc (non_null_ref::non_null_ref): Use create 11826 and quick_grow_cleared instead of safe_grow_cleared. 11827 118282021-09-21 Thomas Schwinge <thomas@codesourcery.com> 11829 11830 PR other/102408 11831 * omp-oacc-neuter-broadcast.cc (oacc_do_neutering): Evaluate 11832 'random ()' to '0'. 11833 118342021-09-21 Richard Earnshaw <rearnsha@arm.com> 11835 11836 * configure.ac: Detect when the assembler supports new-style 11837 architecture extensions. 11838 * common/config/arm/arm-common.c (arm_rewrite_mcpu): Return 11839 the full CPU string if the assembler can grok it. 11840 (arm_rewrite_march): Likewise but for the architecture. 11841 * config.in: Regenerate. 11842 * configure: Regenerate. 11843 118442021-09-21 Richard Biener <rguenther@suse.de> 11845 11846 PR tree-optimization/102421 11847 * tree-vect-loop.c (vect_dissolve_slp_only_groups): Copy and 11848 adjust alignment info. 11849 118502021-09-21 Kewen Lin <linkw@linux.ibm.com> 11851 11852 * ipa-fnsummary.c (ipa_fn_summary_write): Remove inconsistent 11853 bitfield stream out. 11854 118552021-09-20 Andrew MacLeod <amacleod@redhat.com> 11856 11857 * gimple-range-fold.cc (fold_using_range::range_of_phi): Ignore 11858 undefined edges, apply an equivalence if appropriate. 11859 * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Return 11860 UNDEFINED if EDGE_EXECUTABLE is not set. 11861 * gimple-range.cc (gimple_ranger::gimple_ranger): Set all edges 11862 as EXECUTABLE upon startup. 11863 (gimple_ranger::range_on_edge): Return UNDEFINED for edges without 11864 EDGE_EXECUTABLE set. 11865 * vr-values.c (set_and_propagate_unexecutable): New. 11866 (simplify_using_ranges::fold_cond): Call set_and_propagate. 11867 (simplify_using_ranges::simplify_switch_using_ranges): Ditto. 11868 * vr-values.h: Add prototype. 11869 118702021-09-20 Andrew MacLeod <amacleod@redhat.com> 11871 11872 * value-relation.cc (equiv_oracle::register_initial_def): New. 11873 (equiv_oracle::register_relation): Call register_initial_def. 11874 (equiv_oracle::add_equiv_to_block): New. Split register_relation. 11875 (relation_oracle::register_stmt): Check def block of PHI arguments. 11876 * value-relation.h (equiv_oracle): Add new prototypes. 11877 118782021-09-20 Matthias Kretz <m.kretz@gsi.de> 11879 11880 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): 11881 Define __RECIPROCAL_MATH__, __NO_SIGNED_ZEROS__, 11882 __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, and 11883 __ROUNDING_MATH__ according to their corresponding flags. 11884 * doc/cpp.texi: Document __RECIPROCAL_MATH__, 11885 __NO_SIGNED_ZEROS__, __NO_TRAPPING_MATH__, __ASSOCIATIVE_MATH__, 11886 and __ROUNDING_MATH__. 11887 118882021-09-20 Richard Biener <rguenther@suse.de> 11889 11890 * tree-vect-stmts.c (vectorizable_load): Use the vectype 11891 from the SLP node. 11892 118932021-09-20 Richard Biener <rguenther@suse.de> 11894 11895 * tree-vect-data-refs.c (vect_duplicate_ssa_name_ptr_info): 11896 Do not compute alignment of the vectorized access here. 11897 118982021-09-20 Richard Biener <rguenther@suse.de> 11899 11900 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): 11901 Store -1 for runtime alias peeling iterations. 11902 119032021-09-20 Richard Biener <rguenther@suse.de> 11904 11905 * config.gcc: Obsolete hppa[12]*-*-hpux10* and hppa[12]*-*-hpux11*. 11906 119072021-09-20 Thomas Schwinge <thomas@codesourcery.com> 11908 11909 * input.c (string_concat_db::record_string_concatenation) 11910 (string_concat_db::get_string_concatenation): Skip for 11911 'RESERVED_LOCATION_P'. 11912 119132021-09-20 Richard Biener <rguenther@suse.de> 11914 11915 PR tree-optimization/65206 11916 * tree-data-ref.h (struct data_reference): Add alt_indices, 11917 order it last. 11918 * tree-data-ref.c (free_data_ref): Release alt_indices. 11919 (dr_analyze_indices): Work on struct indices and get DR_REF as tree. 11920 (create_data_ref): Adjust. 11921 (initialize_data_dependence_relation): Split into head 11922 and tail. When the base objects fail to match up try 11923 again with pointer-based analysis of indices. 11924 * tree-vectorizer.c (vec_info_shared::check_datarefs): Do 11925 not compare the lazily computed alternate set of indices. 11926 119272021-09-20 Iain Sandoe <iain@sandoe.co.uk> 11928 11929 * gcc.c: Test for execute OK when we find the 11930 programs for assembler linker and dsymutil and those 11931 were specified at configure-time. 11932 119332021-09-19 Martin Sebor <msebor@redhat.com> 11934 11935 PR middle-end/102403 11936 * gimple-predicate-analysis.cc (predicate::init_from_control_deps): 11937 Correct a function pre/postcondition. 11938 119392021-09-19 Martin Sebor <msebor@redhat.com> 11940 11941 PR middle-end/102243 11942 * tree-ssa-strlen.c (get_range): Handle null cfun. 11943 119442021-09-19 Iain Sandoe <iain@sandoe.co.uk> 11945 11946 * config/darwin.h (LINK_COMMAND_SPEC_A): Use Darwin10 11947 unwinder shim as a convenience library. 11948 119492021-09-19 Andrew Pinski <apinski@marvell.com> 11950 11951 * doc/install.texi: Add note about 11952 binutils 2.35 is required for LTO usage. 11953 119542021-09-19 Aldy Hernandez <aldyh@redhat.com> 11955 11956 * tree-ssa-threadbackward.c 11957 (back_threader_registry::register_path): Use push_edge. 11958 * tree-ssa-threadedge.c 11959 (jump_threader::thread_around_empty_blocks): Same. 11960 (jump_threader::thread_through_normal_block): Same. 11961 (jump_threader::thread_across_edge): Same. Also, use auto_bitmap. 11962 Tidy up code. 11963 * tree-ssa-threadupdate.c 11964 (jt_path_registry::allocate_thread_edge): Remove. 11965 (jt_path_registry::push_edge): New. 11966 (dump_jump_thread_path): Make static. 11967 * tree-ssa-threadupdate.h (allocate_thread_edge): Remove. 11968 (push_edge): New. 11969 119702021-09-19 Aldy Hernandez <aldyh@redhat.com> 11971 11972 * gimple-range-path.cc (path_range_query::path_range_query): Add 11973 header. 11974 (path_range_query::dump): Remove extern declaration of dump_ranger. 11975 * gimple-range-trace.cc (dump_ranger): Add DEBUG_FUNCTION marker. 11976 * gimple-range-trace.h (dump_ranger): Add prototype. 11977 119782021-09-19 John Ericson <git@JohnEricson.me> 11979 11980 * gcc.c (find_a_program): New function, factored out of... 11981 (find_a_file): Here. 11982 (execute): Use find_a_program when looking for programs rather 11983 than find_a_file. 11984 119852021-09-19 Matwey V. Kornilov <matwey.kornilov@gmail.com> 11986 11987 * config/avr/avr-mcus.def: Add atmega324pb. 11988 * doc/avr-mmcu.texi: Corresponding changes. 11989 119902021-09-19 Roger Sayle <roger@nextmovesoftware.com> 11991 11992 PR middle-end/88173 11993 * match.pd (cmp @0 REAL_CST@1): When @0 is also REAL_CST, apply 11994 the same transformations as to @1. For comparisons against NaN, 11995 don't check HONOR_SNANS but confirm that neither operand is a 11996 signaling NaN. 11997 119982021-09-19 Benjamin Peterson <benjamin@locrian.net> 11999 12000 * attribs.c (make_unique_name): Delete. 12001 * attribs.h (make_unique_name): Delete. 12002 120032021-09-19 Andrew Pinski <apinski@marvell.com> 12004 12005 * lra-constraints.c (check_and_process_move): Assert 12006 that dclass and sclass are greater than or equal to NO_REGS. 12007 120082021-09-18 Jakub Jelinek <jakub@redhat.com> 12009 12010 * tree.h (OMP_CLAUSE_ORDER_UNCONSTRAINED): Define. 12011 * tree-pretty-print.c (dump_omp_clause): Print unconstrained: 12012 for OMP_CLAUSE_ORDER_UNCONSTRAINED. 12013 120142021-09-18 liuhongt <hongtao.liu@intel.com> 12015 12016 * config/i386/i386-features.c (remove_partial_avx_dependency): 12017 Restrict TARGET_USE_VECTOR_FP_CONVERTS and 12018 TARGET_USE_VECTOR_CONVERTS to conversion instructions only. 12019 120202021-09-18 Jakub Jelinek <jakub@redhat.com> 12021 12022 * gimplify.c (omp_default_clause): For C/C++ default({,first}private), 12023 if file/namespace scope variable doesn't have predetermined sharing, 12024 treat it as if there was default(none). 12025 120262021-09-18 liuhongt <hongtao.liu@intel.com> 12027 12028 * config/i386/avx512fp16intrin.h (_mm_fmadd_sh): 12029 New intrinsic. 12030 (_mm_mask_fmadd_sh): Likewise. 12031 (_mm_mask3_fmadd_sh): Likewise. 12032 (_mm_maskz_fmadd_sh): Likewise. 12033 (_mm_fmadd_round_sh): Likewise. 12034 (_mm_mask_fmadd_round_sh): Likewise. 12035 (_mm_mask3_fmadd_round_sh): Likewise. 12036 (_mm_maskz_fmadd_round_sh): Likewise. 12037 (_mm_fnmadd_sh): Likewise. 12038 (_mm_mask_fnmadd_sh): Likewise. 12039 (_mm_mask3_fnmadd_sh): Likewise. 12040 (_mm_maskz_fnmadd_sh): Likewise. 12041 (_mm_fnmadd_round_sh): Likewise. 12042 (_mm_mask_fnmadd_round_sh): Likewise. 12043 (_mm_mask3_fnmadd_round_sh): Likewise. 12044 (_mm_maskz_fnmadd_round_sh): Likewise. 12045 (_mm_fmsub_sh): Likewise. 12046 (_mm_mask_fmsub_sh): Likewise. 12047 (_mm_mask3_fmsub_sh): Likewise. 12048 (_mm_maskz_fmsub_sh): Likewise. 12049 (_mm_fmsub_round_sh): Likewise. 12050 (_mm_mask_fmsub_round_sh): Likewise. 12051 (_mm_mask3_fmsub_round_sh): Likewise. 12052 (_mm_maskz_fmsub_round_sh): Likewise. 12053 (_mm_fnmsub_sh): Likewise. 12054 (_mm_mask_fnmsub_sh): Likewise. 12055 (_mm_mask3_fnmsub_sh): Likewise. 12056 (_mm_maskz_fnmsub_sh): Likewise. 12057 (_mm_fnmsub_round_sh): Likewise. 12058 (_mm_mask_fnmsub_round_sh): Likewise. 12059 (_mm_mask3_fnmsub_round_sh): Likewise. 12060 (_mm_maskz_fnmsub_round_sh): Likewise. 12061 * config/i386/i386-builtin-types.def 12062 (V8HF_FTYPE_V8HF_V8HF_V8HF_UQI_INT): New builtin type. 12063 * config/i386/i386-builtin.def: Add new builtins. 12064 * config/i386/i386-expand.c: Handle new builtin type. 12065 * config/i386/sse.md (fmai_vmfmadd_<mode><round_name>): 12066 Ajdust to support FP16. 12067 (fmai_vmfmsub_<mode><round_name>): Ditto. 12068 (fmai_vmfnmadd_<mode><round_name>): Ditto. 12069 (fmai_vmfnmsub_<mode><round_name>): Ditto. 12070 (*fmai_fmadd_<mode>): Ditto. 12071 (*fmai_fmsub_<mode>): Ditto. 12072 (*fmai_fnmadd_<mode><round_name>): Ditto. 12073 (*fmai_fnmsub_<mode><round_name>): Ditto. 12074 (avx512f_vmfmadd_<mode>_mask<round_name>): Ditto. 12075 (avx512f_vmfmadd_<mode>_mask3<round_name>): Ditto. 12076 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): Ditto. 12077 (avx512f_vmfmadd_<mode>_maskz_1<round_name>): Ditto. 12078 (*avx512f_vmfmsub_<mode>_mask<round_name>): Ditto. 12079 (avx512f_vmfmsub_<mode>_mask3<round_name>): Ditto. 12080 (*avx512f_vmfmsub_<mode>_maskz_1<round_name>): Ditto. 12081 (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. 12082 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): Ditto. 12083 (*avx512f_vmfnmsub_<mode>_mask<round_name>): Ditto. 12084 (*avx512f_vmfnmadd_<mode>_mask<round_name>): Renamed to ... 12085 (avx512f_vmfnmadd_<mode>_mask<round_name>) ... this, and 12086 adjust to support FP16. 12087 (avx512f_vmfnmadd_<mode>_mask3<round_name>): Ditto. 12088 (avx512f_vmfnmadd_<mode>_maskz_1<round_name>): Ditto. 12089 (avx512f_vmfnmadd_<mode>_maskz<round_expand_name>): New 12090 expander. 12091 120922021-09-18 H.J. Lu <hjl.tools@gmail.com> 12093 12094 * config/i386/sse.md (avx512fmaskmodelower): Extend to support 12095 HF modes. 12096 (maskload<mode><avx512fmaskmodelower>): Ditto. 12097 (maskstore<mode><avx512fmaskmodelower>): Ditto. 12098 120992021-09-18 H.J. Lu <hjl.tools@gmail.com> 12100 12101 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): 12102 Handle HFmode. 12103 (ix86_expand_copysign): Ditto. 12104 (ix86_expand_xorsign): Ditto. 12105 * config/i386/i386.c (ix86_build_const_vector): Handle HF vector 12106 modes. 12107 (ix86_build_signbit_mask): Ditto. 12108 (ix86_can_change_mode_class): Ditto. 12109 * config/i386/i386.md 12110 (SSEMODEF): Add HFmode. 12111 (ssevecmodef): Ditto. 12112 (<code>hf2): New define_expand. 12113 (*<code>hf2_1): New define_insn_and_split. 12114 (copysign<mode>): Extend to support HFmode under AVX512FP16. 12115 (xorsign<mode>): Ditto. 12116 * config/i386/sse.md (VFB): New mode iterator. 12117 (VFB_128_256): Ditto. 12118 (VFB_512): Ditto. 12119 (sseintvecmode2): Support HF vector mode. 12120 (<code><mode>2): Use new mode iterator. 12121 (*<code><mode>2): Ditto. 12122 (copysign<mode>3): Ditto. 12123 (xorsign<mode>3): Ditto. 12124 (<code><mode>3<mask_name>): Ditto. 12125 (<code><mode>3<mask_name>): Ditto. 12126 (<sse>_andnot<mode>3<mask_name>): Adjust for HF vector mode. 12127 (<sse>_andnot<mode>3<mask_name>): Ditto. 12128 (*<code><mode>3<mask_name>): Ditto. 12129 (*<code><mode>3<mask_name>): Ditto. 12130 121312021-09-18 liuhongt <hongtao.liu@intel.com> 12132 12133 * config/i386/avx512fp16intrin.h (_mm512_mask_fmadd_ph): 12134 New intrinsic. 12135 (_mm512_mask3_fmadd_ph): Likewise. 12136 (_mm512_maskz_fmadd_ph): Likewise. 12137 (_mm512_fmadd_round_ph): Likewise. 12138 (_mm512_mask_fmadd_round_ph): Likewise. 12139 (_mm512_mask3_fmadd_round_ph): Likewise. 12140 (_mm512_maskz_fmadd_round_ph): Likewise. 12141 (_mm512_fnmadd_ph): Likewise. 12142 (_mm512_mask_fnmadd_ph): Likewise. 12143 (_mm512_mask3_fnmadd_ph): Likewise. 12144 (_mm512_maskz_fnmadd_ph): Likewise. 12145 (_mm512_fnmadd_round_ph): Likewise. 12146 (_mm512_mask_fnmadd_round_ph): Likewise. 12147 (_mm512_mask3_fnmadd_round_ph): Likewise. 12148 (_mm512_maskz_fnmadd_round_ph): Likewise. 12149 (_mm512_fmsub_ph): Likewise. 12150 (_mm512_mask_fmsub_ph): Likewise. 12151 (_mm512_mask3_fmsub_ph): Likewise. 12152 (_mm512_maskz_fmsub_ph): Likewise. 12153 (_mm512_fmsub_round_ph): Likewise. 12154 (_mm512_mask_fmsub_round_ph): Likewise. 12155 (_mm512_mask3_fmsub_round_ph): Likewise. 12156 (_mm512_maskz_fmsub_round_ph): Likewise. 12157 (_mm512_fnmsub_ph): Likewise. 12158 (_mm512_mask_fnmsub_ph): Likewise. 12159 (_mm512_mask3_fnmsub_ph): Likewise. 12160 (_mm512_maskz_fnmsub_ph): Likewise. 12161 (_mm512_fnmsub_round_ph): Likewise. 12162 (_mm512_mask_fnmsub_round_ph): Likewise. 12163 (_mm512_mask3_fnmsub_round_ph): Likewise. 12164 (_mm512_maskz_fnmsub_round_ph): Likewise. 12165 * config/i386/avx512fp16vlintrin.h (_mm256_fmadd_ph): 12166 New intrinsic. 12167 (_mm256_mask_fmadd_ph): Likewise. 12168 (_mm256_mask3_fmadd_ph): Likewise. 12169 (_mm256_maskz_fmadd_ph): Likewise. 12170 (_mm_fmadd_ph): Likewise. 12171 (_mm_mask_fmadd_ph): Likewise. 12172 (_mm_mask3_fmadd_ph): Likewise. 12173 (_mm_maskz_fmadd_ph): Likewise. 12174 (_mm256_fnmadd_ph): Likewise. 12175 (_mm256_mask_fnmadd_ph): Likewise. 12176 (_mm256_mask3_fnmadd_ph): Likewise. 12177 (_mm256_maskz_fnmadd_ph): Likewise. 12178 (_mm_fnmadd_ph): Likewise. 12179 (_mm_mask_fnmadd_ph): Likewise. 12180 (_mm_mask3_fnmadd_ph): Likewise. 12181 (_mm_maskz_fnmadd_ph): Likewise. 12182 (_mm256_fmsub_ph): Likewise. 12183 (_mm256_mask_fmsub_ph): Likewise. 12184 (_mm256_mask3_fmsub_ph): Likewise. 12185 (_mm256_maskz_fmsub_ph): Likewise. 12186 (_mm_fmsub_ph): Likewise. 12187 (_mm_mask_fmsub_ph): Likewise. 12188 (_mm_mask3_fmsub_ph): Likewise. 12189 (_mm_maskz_fmsub_ph): Likewise. 12190 (_mm256_fnmsub_ph): Likewise. 12191 (_mm256_mask_fnmsub_ph): Likewise. 12192 (_mm256_mask3_fnmsub_ph): Likewise. 12193 (_mm256_maskz_fnmsub_ph): Likewise. 12194 (_mm_fnmsub_ph): Likewise. 12195 (_mm_mask_fnmsub_ph): Likewise. 12196 (_mm_mask3_fnmsub_ph): Likewise. 12197 (_mm_maskz_fnmsub_ph): Likewise. 12198 * config/i386/i386-builtin.def: Add corresponding new builtins. 12199 * config/i386/sse.md 12200 (<avx512>_fmadd_<mode>_maskz<round_expand_name>): Adjust to 12201 support HF vector modes. 12202 (<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name><round_name>): 12203 Ditto. 12204 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): Ditto. 12205 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): Ditto. 12206 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): Ditto. 12207 (<avx512>_fmadd_<mode>_mask<round_name>): Ditto. 12208 (<avx512>_fmadd_<mode>_mask3<round_name>): Ditto. 12209 (<avx512>_fmsub_<mode>_maskz<round_expand_name>): Ditto. 12210 (<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name><round_name>): 12211 Ditto. 12212 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): Ditto. 12213 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): Ditto. 12214 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): Ditto. 12215 (<avx512>_fmsub_<mode>_mask<round_name>): Ditto. 12216 (<avx512>_fmsub_<mode>_mask3<round_name>): Ditto. 12217 (<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name><round_name>): 12218 Ditto. 12219 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): Ditto. 12220 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): Ditto. 12221 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): Ditto. 12222 (<avx512>_fnmadd_<mode>_mask<round_name>): Ditto. 12223 (<avx512>_fnmadd_<mode>_mask3<round_name>): Ditto. 12224 (<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Ditto. 12225 (<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name><round_name>): 12226 Ditto. 12227 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): Ditto. 12228 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): Ditto. 12229 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): Ditto. 12230 (<avx512>_fnmsub_<mode>_mask<round_name>): Ditto. 12231 (<avx512>_fnmsub_<mode>_mask3<round_name>): Ditto. 12232 122332021-09-18 liuhongt <hongtao.liu@intel.com> 12234 12235 * config/i386/avx512fp16intrin.h (_mm512_fmaddsub_ph): 12236 New intrinsic. 12237 (_mm512_mask_fmaddsub_ph): Likewise. 12238 (_mm512_mask3_fmaddsub_ph): Likewise. 12239 (_mm512_maskz_fmaddsub_ph): Likewise. 12240 (_mm512_fmaddsub_round_ph): Likewise. 12241 (_mm512_mask_fmaddsub_round_ph): Likewise. 12242 (_mm512_mask3_fmaddsub_round_ph): Likewise. 12243 (_mm512_maskz_fmaddsub_round_ph): Likewise. 12244 (_mm512_mask_fmsubadd_ph): Likewise. 12245 (_mm512_mask3_fmsubadd_ph): Likewise. 12246 (_mm512_maskz_fmsubadd_ph): Likewise. 12247 (_mm512_fmsubadd_round_ph): Likewise. 12248 (_mm512_mask_fmsubadd_round_ph): Likewise. 12249 (_mm512_mask3_fmsubadd_round_ph): Likewise. 12250 (_mm512_maskz_fmsubadd_round_ph): Likewise. 12251 * config/i386/avx512fp16vlintrin.h (_mm256_fmaddsub_ph): 12252 New intrinsic. 12253 (_mm256_mask_fmaddsub_ph): Likewise. 12254 (_mm256_mask3_fmaddsub_ph): Likewise. 12255 (_mm256_maskz_fmaddsub_ph): Likewise. 12256 (_mm_fmaddsub_ph): Likewise. 12257 (_mm_mask_fmaddsub_ph): Likewise. 12258 (_mm_mask3_fmaddsub_ph): Likewise. 12259 (_mm_maskz_fmaddsub_ph): Likewise. 12260 (_mm256_fmsubadd_ph): Likewise. 12261 (_mm256_mask_fmsubadd_ph): Likewise. 12262 (_mm256_mask3_fmsubadd_ph): Likewise. 12263 (_mm256_maskz_fmsubadd_ph): Likewise. 12264 (_mm_fmsubadd_ph): Likewise. 12265 (_mm_mask_fmsubadd_ph): Likewise. 12266 (_mm_mask3_fmsubadd_ph): Likewise. 12267 (_mm_maskz_fmsubadd_ph): Likewise. 12268 * config/i386/i386-builtin.def: Add corresponding new builtins. 12269 * config/i386/sse.md (VFH_SF_AVX512VL): New mode iterator. 12270 * (<avx512>_fmsubadd_<mode>_maskz<round_expand_name>): New expander. 12271 * (<avx512>_fmaddsub_<mode>_maskz<round_expand_name>): Use 12272 VFH_SF_AVX512VL. 12273 * (<sd_mask_codefor>fma_fmaddsub_<mode><sd_maskz_name><round_name>): 12274 Ditto. 12275 * (<avx512>_fmaddsub_<mode>_mask<round_name>): Ditto. 12276 * (<avx512>_fmaddsub_<mode>_mask3<round_name>): Ditto. 12277 * (<sd_mask_codefor>fma_fmsubadd_<mode><sd_maskz_name><round_name>): 12278 Ditto. 12279 * (<avx512>_fmsubadd_<mode>_mask<round_name>): Ditto. 12280 * (<avx512>_fmsubadd_<mode>_mask3<round_name>): Ditto. 12281 122822021-09-18 liuhongt <hongtao.liu@intel.com> 12283 12284 PR target/87767 12285 * config/i386/i386.c (ix86_print_operand): Handle 12286 V8HF/V16HF/V32HFmode. 12287 * config/i386/i386.h (VALID_BCST_MODE_P): Add HFmode. 12288 * config/i386/sse.md (avx512bcst): Remove. 12289 122902021-09-17 Martin Sebor <msebor@redhat.com> 12291 12292 * Makefile.in (OBJS): Add gimple-predicate-analysis.o. 12293 * tree-ssa-uninit.c (max_phi_args): Move to gimple-predicate-analysis. 12294 (MASK_SET_BIT, MASK_TEST_BIT, MASK_EMPTY): Same. 12295 (check_defs): Add comment. 12296 (can_skip_redundant_opnd): Update comment. 12297 (compute_uninit_opnds_pos): Adjust to namespace change. 12298 (find_pdom): Move to gimple-predicate-analysis.cc. 12299 (find_dom): Same. 12300 (struct uninit_undef_val_t): New. 12301 (is_non_loop_exit_postdominating): Move to gimple-predicate-analysis.cc. 12302 (find_control_equiv_block): Same. 12303 (MAX_NUM_CHAINS, MAX_CHAIN_LEN, MAX_POSTDOM_CHECK): Same. 12304 (MAX_SWITCH_CASES): Same. 12305 (compute_control_dep_chain): Same. 12306 (find_uninit_use): Use predicate analyzer. 12307 (struct pred_info): Move to gimple-predicate-analysis. 12308 (convert_control_dep_chain_into_preds): Same. 12309 (find_predicates): Same. 12310 (collect_phi_def_edges): Same. 12311 (warn_uninitialized_phi): Use predicate analyzer. 12312 (find_def_preds): Move to gimple-predicate-analysis. 12313 (dump_pred_info): Same. 12314 (dump_pred_chain): Same. 12315 (dump_predicates): Same. 12316 (destroy_predicate_vecs): Remove. 12317 (execute_late_warn_uninitialized): New. 12318 (get_cmp_code): Move to gimple-predicate-analysis. 12319 (is_value_included_in): Same. 12320 (value_sat_pred_p): Same. 12321 (find_matching_predicate_in_rest_chains): Same. 12322 (is_use_properly_guarded): Same. 12323 (prune_uninit_phi_opnds): Same. 12324 (find_var_cmp_const): Same. 12325 (use_pred_not_overlap_with_undef_path_pred): Same. 12326 (pred_equal_p): Same. 12327 (is_neq_relop_p): Same. 12328 (is_neq_zero_form_p): Same. 12329 (pred_expr_equal_p): Same. 12330 (is_pred_expr_subset_of): Same. 12331 (is_pred_chain_subset_of): Same. 12332 (is_included_in): Same. 12333 (is_superset_of): Same. 12334 (pred_neg_p): Same. 12335 (simplify_pred): Same. 12336 (simplify_preds_2): Same. 12337 (simplify_preds_3): Same. 12338 (simplify_preds_4): Same. 12339 (simplify_preds): Same. 12340 (push_pred): Same. 12341 (push_to_worklist): Same. 12342 (get_pred_info_from_cmp): Same. 12343 (is_degenerated_phi): Same. 12344 (normalize_one_pred_1): Same. 12345 (normalize_one_pred): Same. 12346 (normalize_one_pred_chain): Same. 12347 (normalize_preds): Same. 12348 (can_one_predicate_be_invalidated_p): Same. 12349 (can_chain_union_be_invalidated_p): Same. 12350 (uninit_uses_cannot_happen): Same. 12351 (pass_late_warn_uninitialized::execute): Define. 12352 * gimple-predicate-analysis.cc: New file. 12353 * gimple-predicate-analysis.h: New file. 12354 123552021-09-17 Julian Brown <julian@codesourcery.com> 12356 12357 * config/gcn/gcn.c (gimple.h): Include. 12358 (gcn_fork_join): Emit barrier for worker-level joins. 12359 * omp-oacc-neuter-broadcast.cc (find_local_vars_to_propagate): Add 12360 writes_gang_private bitmap parameter. Set bit for blocks 12361 containing gang-private variable writes. 12362 (worker_single_simple): Don't emit barrier after predicated block. 12363 (worker_single_copy): Don't emit barrier if we're not broadcasting 12364 anything and the block contains no gang-private writes. 12365 (neuter_worker_single): Don't predicate blocks that only contain 12366 NOPs or internal marker functions. Pass has_gang_private_write 12367 argument to worker_single_copy. 12368 (oacc_do_neutering): Add writes_gang_private bitmap handling. 12369 123702021-09-17 Julian Brown <julian@codesourcery.com> 12371 12372 * config/gcn/gcn-protos.h 12373 (gcn_goacc_create_worker_broadcast_record): Update prototype. 12374 * config/gcn/gcn-tree.c (gcn_goacc_get_worker_red_decl): Use 12375 preallocated block of LDS memory. Do not cache/share decls for 12376 reduction temporaries between invocations. 12377 (gcn_goacc_reduction_teardown): Unshare VAR on second use. 12378 (gcn_goacc_create_worker_broadcast_record): Add OFFSET parameter 12379 and return temporary LDS space at that offset. Return pointer in 12380 "sender" case. 12381 * config/gcn/gcn.c (acc_lds_size, gang_private_hwm, lds_allocs): 12382 New global vars. 12383 (ACC_LDS_SIZE): Define as acc_lds_size. 12384 (gcn_init_machine_status): Don't initialise lds_allocated, 12385 lds_allocs, reduc_decls fields of machine function struct. 12386 (gcn_option_override): Handle default size for gang-private 12387 variables and -mgang-private-size option. 12388 (gcn_expand_prologue): Use LDS_SIZE instead of LDS_SIZE-1 when 12389 initialising M0_REG. 12390 (gcn_shared_mem_layout): New function. 12391 (gcn_print_lds_decl): Update comment. Use global lds_allocs map and 12392 gang_private_hwm variable. 12393 (TARGET_GOACC_SHARED_MEM_LAYOUT): Define target hook. 12394 * config/gcn/gcn.h (machine_function): Remove lds_allocated, 12395 lds_allocs, reduc_decls. Add reduction_base, reduction_limit. 12396 * config/gcn/gcn.opt (gang_private_size_opt): New global. 12397 (mgang-private-size=): New option. 12398 * doc/tm.texi.in (TARGET_GOACC_SHARED_MEM_LAYOUT): Place 12399 documentation hook. 12400 * doc/tm.texi: Regenerate. 12401 * omp-oacc-neuter-broadcast.cc (targhooks.h, diagnostic-core.h): 12402 Add includes. 12403 (build_sender_ref): Handle sender_decl being pointer. 12404 (worker_single_copy): Add PLACEMENT and ISOLATE_BROADCASTS 12405 parameters. Pass placement argument to 12406 create_worker_broadcast_record hook invocations. Handle 12407 sender_decl being pointer and isolate_broadcasts inserting extra 12408 barriers. 12409 (blk_offset_map_t): Add typedef. 12410 (neuter_worker_single): Add BLK_OFFSET_MAP parameter. Pass 12411 preallocated range to worker_single_copy call. 12412 (dfs_broadcast_reachable_1): New function. 12413 (idx_decl_pair_t, used_range_vec_t): New typedefs. 12414 (sort_size_descending): New function. 12415 (addr_range): New class. 12416 (splay_tree_compare_addr_range, splay_tree_free_key) 12417 (first_fit_range, merge_ranges_1, merge_ranges): New functions. 12418 (execute_omp_oacc_neuter_broadcast): Rename to... 12419 (oacc_do_neutering): ... this. Add BOUNDS_LO, BOUNDS_HI 12420 parameters. Arrange layout of shared memory for broadcast 12421 operations. 12422 (execute_omp_oacc_neuter_broadcast): New function. 12423 (pass_omp_oacc_neuter_broadcast::gate): Remove num_workers==1 12424 handling from here. Enable pass for all OpenACC routines in order 12425 to call shared memory-layout hook. 12426 * target.def (create_worker_broadcast_record): Add OFFSET 12427 parameter. 12428 (shared_mem_layout): New hook. 12429 124302021-09-17 Julian Brown <julian@codesourcery.com> 12431 Thomas Schwinge <thomas@codesourcery.com> 12432 12433 * omp-oacc-neuter-broadcast.cc 12434 (pass_omp_oacc_neuter_broadcast::gate): Disable if num_workers is 12435 1. 12436 (execute_omp_oacc_neuter_broadcast): Adjust. 12437 124382021-09-17 Andrew MacLeod <amacleod@redhat.com> 12439 12440 * value-relation.cc (class equiv_chain): Move to header file. 12441 (path_oracle::path_oracle): New. 12442 (path_oracle::~path_oracle): New. 12443 (path_oracle::register_relation): New. 12444 (path_oracle::query_relation): New. 12445 (path_oracle::reset_path): New. 12446 (path_oracle::dump): New. 12447 * value-relation.h (class equiv_chain): Move to here. 12448 (class path_oracle): New. 12449 124502021-09-17 Andrew MacLeod <amacleod@redhat.com> 12451 12452 * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a DOM 12453 based oracle. 12454 * gimple-range-fold.cc (fur_depend::register_relation): Use 12455 register_stmt/edge routines. 12456 * value-relation.cc (equiv_chain::find): Relocate from equiv_oracle. 12457 (equiv_oracle::equiv_oracle): Create self equivalence cache. 12458 (equiv_oracle::~equiv_oracle): Release same. 12459 (equiv_oracle::equiv_set): Return entry from self equiv cache if there 12460 are no equivalences. 12461 (equiv_oracle::find_equiv_block): Move list find to equiv_chain. 12462 (equiv_oracle::register_relation): Rename from register_equiv. 12463 (relation_chain_head::find_relation): Relocate from dom_oracle. 12464 (relation_oracle::register_stmt): New. 12465 (relation_oracle::register_edge): New. 12466 (dom_oracle::*): Rename from relation_oracle. 12467 (dom_oracle::register_relation): Adjust to call equiv_oracle. 12468 (dom_oracle::set_one_relation): Split from register_relation. 12469 (dom_oracle::register_transitives): Consolidate 2 methods. 12470 (dom_oracle::find_relation_block): Move core to relation_chain. 12471 (dom_oracle::query_relation): Rename from find_relation_dom and adjust. 12472 * value-relation.h (class relation_oracle): New pure virtual base. 12473 (class equiv_oracle): Inherit from relation_oracle and adjust. 12474 (class dom_oracle): Rename from old relation_oracle and adjust. 12475 124762021-09-17 Martin Sebor <msebor@redhat.com> 12477 12478 PR middle-end/102200 12479 * pointer-query.cc (access_ref::inform_access): Handle MIN/MAX_EXPR. 12480 (handle_min_max_size): Change argument. Store original SSA_NAME for 12481 operands to potentially distinct (sub)objects. 12482 (compute_objsize_r): Adjust call to the above. 12483 124842021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> 12485 12486 * config/rs6000/rs6000.c (rs6000-builtins.h): New include. 12487 (rs6000_new_builtin_vectorized_function): New function. 12488 (rs6000_new_builtin_md_vectorized_function): Likewise. 12489 (rs6000_builtin_vectorized_function): Call 12490 rs6000_new_builtin_vectorized_function. 12491 (rs6000_builtin_md_vectorized_function): Call 12492 rs6000_new_builtin_md_vectorized_function. 12493 124942021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> 12495 12496 * config/rs6000/rs6000-builtin-new.def (ASSEMBLE_ACC): Add mmaint flag. 12497 (ASSEMBLE_PAIR): Likewise. 12498 (BUILD_ACC): Likewise. 12499 (DISASSEMBLE_ACC): Likewise. 12500 (DISASSEMBLE_PAIR): Likewise. 12501 (PMXVBF16GER2): Likewise. 12502 (PMXVBF16GER2NN): Likewise. 12503 (PMXVBF16GER2NP): Likewise. 12504 (PMXVBF16GER2PN): Likewise. 12505 (PMXVBF16GER2PP): Likewise. 12506 (PMXVF16GER2): Likewise. 12507 (PMXVF16GER2NN): Likewise. 12508 (PMXVF16GER2NP): Likewise. 12509 (PMXVF16GER2PN): Likewise. 12510 (PMXVF16GER2PP): Likewise. 12511 (PMXVF32GER): Likewise. 12512 (PMXVF32GERNN): Likewise. 12513 (PMXVF32GERNP): Likewise. 12514 (PMXVF32GERPN): Likewise. 12515 (PMXVF32GERPP): Likewise. 12516 (PMXVF64GER): Likewise. 12517 (PMXVF64GERNN): Likewise. 12518 (PMXVF64GERNP): Likewise. 12519 (PMXVF64GERPN): Likewise. 12520 (PMXVF64GERPP): Likewise. 12521 (PMXVI16GER2): Likewise. 12522 (PMXVI16GER2PP): Likewise. 12523 (PMXVI16GER2S): Likewise. 12524 (PMXVI16GER2SPP): Likewise. 12525 (PMXVI4GER8): Likewise. 12526 (PMXVI4GER8PP): Likewise. 12527 (PMXVI8GER4): Likewise. 12528 (PMXVI8GER4PP): Likewise. 12529 (PMXVI8GER4SPP): Likewise. 12530 (XVBF16GER2): Likewise. 12531 (XVBF16GER2NN): Likewise. 12532 (XVBF16GER2NP): Likewise. 12533 (XVBF16GER2PN): Likewise. 12534 (XVBF16GER2PP): Likewise. 12535 (XVF16GER2): Likewise. 12536 (XVF16GER2NN): Likewise. 12537 (XVF16GER2NP): Likewise. 12538 (XVF16GER2PN): Likewise. 12539 (XVF16GER2PP): Likewise. 12540 (XVF32GER): Likewise. 12541 (XVF32GERNN): Likewise. 12542 (XVF32GERNP): Likewise. 12543 (XVF32GERPN): Likewise. 12544 (XVF32GERPP): Likewise. 12545 (XVF64GER): Likewise. 12546 (XVF64GERNN): Likewise. 12547 (XVF64GERNP): Likewise. 12548 (XVF64GERPN): Likewise. 12549 (XVF64GERPP): Likewise. 12550 (XVI16GER2): Likewise. 12551 (XVI16GER2PP): Likewise. 12552 (XVI16GER2S): Likewise. 12553 (XVI16GER2SPP): Likewise. 12554 (XVI4GER8): Likewise. 12555 (XVI4GER8PP): Likewise. 12556 (XVI8GER4): Likewise. 12557 (XVI8GER4PP): Likewise. 12558 (XVI8GER4SPP): Likewise. 12559 (XXMFACC): Likewise. 12560 (XXMTACC): Likewise. 12561 (XXSETACCZ): Likewise. 12562 (ASSEMBLE_PAIR_V): Likewise. 12563 (BUILD_PAIR): Likewise. 12564 (DISASSEMBLE_PAIR_V): Likewise. 12565 (LXVP): New. 12566 (STXVP): New. 12567 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_mma_builtin): 12568 Handle RS6000_BIF_LXVP and RS6000_BIF_STXVP. 12569 * config/rs6000/rs6000-gen-builtins.c (attrinfo): Add ismmaint. 12570 (parse_bif_attrs): Handle ismmaint. 12571 (write_decls): Add bif_mmaint_bit and bif_is_mmaint. 12572 (write_bif_static_init): Handle ismmaint. 12573 125742021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> 12575 12576 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_new_builtin): New 12577 forward decl. 12578 (rs6000_gimple_fold_builtin): Call rs6000_gimple_fold_new_builtin. 12579 (rs6000_new_builtin_valid_without_lhs): New function. 12580 (rs6000_gimple_fold_new_mma_builtin): Likewise. 12581 (rs6000_gimple_fold_new_builtin): Likewise. 12582 125832021-09-17 Thomas Schwinge <thomas@codesourcery.com> 12584 12585 * hash-table.h (hash_table<Descriptor, Lazy, Allocator>::expand): 12586 Destruct stale Value objects. 12587 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): 12588 Update. 12589 125902021-09-17 Roger Sayle <roger@nextmovesoftware.com> 12591 12592 PR c/102245 12593 * match.pd (shift optimizations): Disable recent sign-changing 12594 optimization for shifts by zero, these will be folded later. 12595 125962021-09-17 Bill Schmidt <wschmidt@linux.ibm.com> 12597 12598 * config/rs6000/rs6000-builtin-new.def (__builtin_mffsl): Move from 12599 [power9] to [always]. 12600 126012021-09-17 Richard Biener <rguenther@suse.de> 12602 12603 * tree-vect-stmts.c (vectorizable_load): Do not frob 12604 stmt_info for SLP. 12605 126062021-09-17 H.J. Lu <hjl.tools@gmail.com> 12607 12608 * config/i386/i386-features.c (remove_partial_avx_dependency): 12609 Also check TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY and 12610 and TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY before generating 12611 vxorps. 12612 * config/i386/i386.h (TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): 12613 New. 12614 (TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. 12615 * config/i386/i386.md (SSE FP to FP splitters): Replace 12616 TARGET_SSE_PARTIAL_REG_DEPENDENCY with 12617 TARGET_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY. 12618 (SSE INT to FP splitter): Replace TARGET_SSE_PARTIAL_REG_DEPENDENCY 12619 with TARGET_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY. 12620 * config/i386/x86-tune.def 12621 (X86_TUNE_SSE_PARTIAL_REG_FP_CONVERTS_DEPENDENCY): New. 12622 (X86_TUNE_SSE_PARTIAL_REG_CONVERTS_DEPENDENCY): Likewise. 12623 126242021-09-17 H.J. Lu <hjl.tools@gmail.com> 12625 12626 PR target/101900 12627 * config/i386/i386-features.c (remove_partial_avx_dependency): 12628 Check TARGET_USE_VECTOR_FP_CONVERTS and TARGET_USE_VECTOR_CONVERTS 12629 before generating vxorps. 12630 126312021-09-17 H.J. Lu <hjl.tools@gmail.com> 12632 12633 * config/i386/i386-options.c (processor_cost_table): Use 12634 tremont_cost for Tremont. 12635 * config/i386/x86-tune-costs.h (tremont_memcpy): New. 12636 (tremont_memset): Likewise. 12637 (tremont_cost): Likewise. 12638 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): 12639 Enable for Tremont. 12640 126412021-09-17 H.J. Lu <hjl.tools@gmail.com> 12642 12643 * common/config/i386/i386-common.c: Use Haswell scheduling model 12644 for Tremont. 12645 * config/i386/i386.c (ix86_sched_init_global): Prepare for Tremont 12646 scheduling pass. 12647 * config/i386/x86-tune-sched.c (ix86_issue_rate): Change Tremont 12648 issue rate to 4. 12649 (ix86_adjust_cost): Handle Tremont. 12650 * config/i386/x86-tune.def (X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY): 12651 Enable for Tremont. 12652 (X86_TUNE_USE_LEAVE): Likewise. 12653 (X86_TUNE_PUSH_MEMORY): Likewise. 12654 (X86_TUNE_MISALIGNED_MOVE_STRING_PRO_EPILOGUES): Likewise. 12655 (X86_TUNE_USE_CLTD): Likewise. 12656 (X86_TUNE_AVOID_FALSE_DEP_FOR_BMI): Likewise. 12657 (X86_TUNE_AVOID_MFENCE): Likewise. 12658 (X86_TUNE_SSE_TYPELESS_STORES): Likewise. 12659 (X86_TUNE_SSE_LOAD0_BY_PXOR): Likewise. 12660 (X86_TUNE_ACCUMULATE_OUTGOING_ARGS): Disable for Tremont. 12661 (X86_TUNE_FOUR_JUMP_LIMIT): Likewise. 12662 (X86_TUNE_OPT_AGU): Likewise. 12663 (X86_TUNE_AVOID_LEA_FOR_ADDR): Likewise. 12664 (X86_TUNE_AVOID_MEM_OPND_FOR_CMOVE): Likewise. 12665 (X86_TUNE_EXPAND_ABS): Likewise. 12666 (X86_TUNE_SPLIT_MEM_OPND_FOR_FP_CONVERTS): Likewise. 12667 (X86_TUNE_SLOW_PSHUFB): Likewise. 12668 126692021-09-17 Eric Botcazou <ebotcazou@adacore.com> 12670 12671 PR rtl-optimization/102306 12672 * combine.c (try_combine): Abort the combination if we are about to 12673 duplicate volatile references. 12674 126752021-09-17 liuhongt <hongtao.liu@intel.com> 12676 12677 * config/i386/avx512fp16intrin.h (_mm_undefined_ph): 12678 New intrinsic. 12679 (_mm256_undefined_ph): Likewise. 12680 (_mm512_undefined_ph): Likewise. 12681 (_mm_cvtsh_h): Likewise. 12682 (_mm256_cvtsh_h): Likewise. 12683 (_mm512_cvtsh_h): Likewise. 12684 (_mm512_castph_ps): Likewise. 12685 (_mm512_castph_pd): Likewise. 12686 (_mm512_castph_si512): Likewise. 12687 (_mm512_castph512_ph128): Likewise. 12688 (_mm512_castph512_ph256): Likewise. 12689 (_mm512_castph128_ph512): Likewise. 12690 (_mm512_castph256_ph512): Likewise. 12691 (_mm512_zextph128_ph512): Likewise. 12692 (_mm512_zextph256_ph512): Likewise. 12693 (_mm512_castps_ph): Likewise. 12694 (_mm512_castpd_ph): Likewise. 12695 (_mm512_castsi512_ph): Likewise. 12696 * config/i386/avx512fp16vlintrin.h (_mm_castph_ps): 12697 New intrinsic. 12698 (_mm256_castph_ps): Likewise. 12699 (_mm_castph_pd): Likewise. 12700 (_mm256_castph_pd): Likewise. 12701 (_mm_castph_si128): Likewise. 12702 (_mm256_castph_si256): Likewise. 12703 (_mm_castps_ph): Likewise. 12704 (_mm256_castps_ph): Likewise. 12705 (_mm_castpd_ph): Likewise. 12706 (_mm256_castpd_ph): Likewise. 12707 (_mm_castsi128_ph): Likewise. 12708 (_mm256_castsi256_ph): Likewise. 12709 (_mm256_castph256_ph128): Likewise. 12710 (_mm256_castph128_ph256): Likewise. 12711 (_mm256_zextph128_ph256): Likewise. 12712 127132021-09-17 liuhongt <hongtao.liu@intel.com> 12714 12715 * config/i386/avx512fp16intrin.h (_mm_cvtsh_ss): 12716 New intrinsic. 12717 (_mm_mask_cvtsh_ss): Likewise. 12718 (_mm_maskz_cvtsh_ss): Likewise. 12719 (_mm_cvtsh_sd): Likewise. 12720 (_mm_mask_cvtsh_sd): Likewise. 12721 (_mm_maskz_cvtsh_sd): Likewise. 12722 (_mm_cvt_roundsh_ss): Likewise. 12723 (_mm_mask_cvt_roundsh_ss): Likewise. 12724 (_mm_maskz_cvt_roundsh_ss): Likewise. 12725 (_mm_cvt_roundsh_sd): Likewise. 12726 (_mm_mask_cvt_roundsh_sd): Likewise. 12727 (_mm_maskz_cvt_roundsh_sd): Likewise. 12728 (_mm_cvtss_sh): Likewise. 12729 (_mm_mask_cvtss_sh): Likewise. 12730 (_mm_maskz_cvtss_sh): Likewise. 12731 (_mm_cvtsd_sh): Likewise. 12732 (_mm_mask_cvtsd_sh): Likewise. 12733 (_mm_maskz_cvtsd_sh): Likewise. 12734 (_mm_cvt_roundss_sh): Likewise. 12735 (_mm_mask_cvt_roundss_sh): Likewise. 12736 (_mm_maskz_cvt_roundss_sh): Likewise. 12737 (_mm_cvt_roundsd_sh): Likewise. 12738 (_mm_mask_cvt_roundsd_sh): Likewise. 12739 (_mm_maskz_cvt_roundsd_sh): Likewise. 12740 * config/i386/i386-builtin-types.def 12741 (V8HF_FTYPE_V2DF_V8HF_V8HF_UQI_INT, 12742 V8HF_FTYPE_V4SF_V8HF_V8HF_UQI_INT, 12743 V2DF_FTYPE_V8HF_V2DF_V2DF_UQI_INT, 12744 V4SF_FTYPE_V8HF_V4SF_V4SF_UQI_INT): Add new builtin types. 12745 * config/i386/i386-builtin.def: Add corrresponding new builtins. 12746 * config/i386/i386-expand.c: Handle new builtin types. 12747 * config/i386/sse.md (VF48_128): New mode iterator. 12748 (avx512fp16_vcvtsh2<ssescalarmodesuffix><mask_scalar_name><round_saeonly_scalar_name>): 12749 New. 12750 (avx512fp16_vcvt<ssescalarmodesuffix>2sh<mask_scalar_name><round_scalar_name>): 12751 Ditto. 12752 127532021-09-17 liuhongt <hongtao.liu@intel.com> 12754 12755 * config/i386/avx512fp16intrin.h (_mm512_cvtph_pd): 12756 New intrinsic. 12757 (_mm512_mask_cvtph_pd): Likewise. 12758 (_mm512_maskz_cvtph_pd): Likewise. 12759 (_mm512_cvt_roundph_pd): Likewise. 12760 (_mm512_mask_cvt_roundph_pd): Likewise. 12761 (_mm512_maskz_cvt_roundph_pd): Likewise. 12762 (_mm512_cvtxph_ps): Likewise. 12763 (_mm512_mask_cvtxph_ps): Likewise. 12764 (_mm512_maskz_cvtxph_ps): Likewise. 12765 (_mm512_cvtx_roundph_ps): Likewise. 12766 (_mm512_mask_cvtx_roundph_ps): Likewise. 12767 (_mm512_maskz_cvtx_roundph_ps): Likewise. 12768 (_mm512_cvtxps_ph): Likewise. 12769 (_mm512_mask_cvtxps_ph): Likewise. 12770 (_mm512_maskz_cvtxps_ph): Likewise. 12771 (_mm512_cvtx_roundps_ph): Likewise. 12772 (_mm512_mask_cvtx_roundps_ph): Likewise. 12773 (_mm512_maskz_cvtx_roundps_ph): Likewise. 12774 (_mm512_cvtpd_ph): Likewise. 12775 (_mm512_mask_cvtpd_ph): Likewise. 12776 (_mm512_maskz_cvtpd_ph): Likewise. 12777 (_mm512_cvt_roundpd_ph): Likewise. 12778 (_mm512_mask_cvt_roundpd_ph): Likewise. 12779 (_mm512_maskz_cvt_roundpd_ph): Likewise. 12780 * config/i386/avx512fp16vlintrin.h (_mm_cvtph_pd): 12781 New intrinsic. 12782 (_mm_mask_cvtph_pd): Likewise. 12783 (_mm_maskz_cvtph_pd): Likewise. 12784 (_mm256_cvtph_pd): Likewise. 12785 (_mm256_mask_cvtph_pd): Likewise. 12786 (_mm256_maskz_cvtph_pd): Likewise. 12787 (_mm_cvtxph_ps): Likewise. 12788 (_mm_mask_cvtxph_ps): Likewise. 12789 (_mm_maskz_cvtxph_ps): Likewise. 12790 (_mm256_cvtxph_ps): Likewise. 12791 (_mm256_mask_cvtxph_ps): Likewise. 12792 (_mm256_maskz_cvtxph_ps): Likewise. 12793 (_mm_cvtxps_ph): Likewise. 12794 (_mm_mask_cvtxps_ph): Likewise. 12795 (_mm_maskz_cvtxps_ph): Likewise. 12796 (_mm256_cvtxps_ph): Likewise. 12797 (_mm256_mask_cvtxps_ph): Likewise. 12798 (_mm256_maskz_cvtxps_ph): Likewise. 12799 (_mm_cvtpd_ph): Likewise. 12800 (_mm_mask_cvtpd_ph): Likewise. 12801 (_mm_maskz_cvtpd_ph): Likewise. 12802 (_mm256_cvtpd_ph): Likewise. 12803 (_mm256_mask_cvtpd_ph): Likewise. 12804 (_mm256_maskz_cvtpd_ph): Likewise. 12805 * config/i386/i386-builtin.def: Add corresponding new builtins. 12806 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 12807 * config/i386/i386-expand.c: Handle new builtin types. 12808 * config/i386/sse.md 12809 (VF4_128_8_256): New. 12810 (VF48H_AVX512VL): Ditto. 12811 (ssePHmode): Add HF vector modes. 12812 (castmode): Add new convertable modes. 12813 (qq2phsuff): Ditto. 12814 (ph2pssuffix): New. 12815 (avx512fp16_vcvt<castmode>2ph_<mode><mask_name><round_name>): Ditto. 12816 (avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. 12817 (*avx512fp16_vcvt<castmode>2ph_<mode>): Ditto. 12818 (avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. 12819 (*avx512fp16_vcvt<castmode>2ph_<mode>_mask): Ditto. 12820 (*avx512fp16_vcvt<castmode>2ph_<mode>_mask_1): Ditto. 12821 (avx512fp16_float_extend_ph<mode>2<mask_name><round_saeonly_name>): 12822 Ditto. 12823 (avx512fp16_float_extend_ph<mode>2<mask_name>): Ditto. 12824 (*avx512fp16_float_extend_ph<mode>2_load<mask_name>): Ditto. 12825 (avx512fp16_float_extend_phv2df2<mask_name>): Ditto. 12826 (*avx512fp16_float_extend_phv2df2_load<mask_name>): Ditto. 12827 128282021-09-17 liuhongt <hongtao.liu@intel.com> 12829 12830 * config/i386/avx512fp16intrin.h (_mm_cvttsh_i32): 12831 New intrinsic. 12832 (_mm_cvttsh_u32): Likewise. 12833 (_mm_cvtt_roundsh_i32): Likewise. 12834 (_mm_cvtt_roundsh_u32): Likewise. 12835 (_mm_cvttsh_i64): Likewise. 12836 (_mm_cvttsh_u64): Likewise. 12837 (_mm_cvtt_roundsh_i64): Likewise. 12838 (_mm_cvtt_roundsh_u64): Likewise. 12839 * config/i386/i386-builtin.def: Add corresponding new builtins. 12840 * config/i386/sse.md 12841 (avx512fp16_fix<fixunssuffix>_trunc<mode>2<round_saeonly_name>): 12842 New. 12843 128442021-09-17 liuhongt <hongtao.liu@intel.com> 12845 12846 * config/i386/avx512fp16intrin.h (_mm512_cvttph_epi32): 12847 New intrinsic. 12848 (_mm512_mask_cvttph_epi32): Likewise. 12849 (_mm512_maskz_cvttph_epi32): Likewise. 12850 (_mm512_cvtt_roundph_epi32): Likewise. 12851 (_mm512_mask_cvtt_roundph_epi32): Likewise. 12852 (_mm512_maskz_cvtt_roundph_epi32): Likewise. 12853 (_mm512_cvttph_epu32): Likewise. 12854 (_mm512_mask_cvttph_epu32): Likewise. 12855 (_mm512_maskz_cvttph_epu32): Likewise. 12856 (_mm512_cvtt_roundph_epu32): Likewise. 12857 (_mm512_mask_cvtt_roundph_epu32): Likewise. 12858 (_mm512_maskz_cvtt_roundph_epu32): Likewise. 12859 (_mm512_cvttph_epi64): Likewise. 12860 (_mm512_mask_cvttph_epi64): Likewise. 12861 (_mm512_maskz_cvttph_epi64): Likewise. 12862 (_mm512_cvtt_roundph_epi64): Likewise. 12863 (_mm512_mask_cvtt_roundph_epi64): Likewise. 12864 (_mm512_maskz_cvtt_roundph_epi64): Likewise. 12865 (_mm512_cvttph_epu64): Likewise. 12866 (_mm512_mask_cvttph_epu64): Likewise. 12867 (_mm512_maskz_cvttph_epu64): Likewise. 12868 (_mm512_cvtt_roundph_epu64): Likewise. 12869 (_mm512_mask_cvtt_roundph_epu64): Likewise. 12870 (_mm512_maskz_cvtt_roundph_epu64): Likewise. 12871 (_mm512_cvttph_epi16): Likewise. 12872 (_mm512_mask_cvttph_epi16): Likewise. 12873 (_mm512_maskz_cvttph_epi16): Likewise. 12874 (_mm512_cvtt_roundph_epi16): Likewise. 12875 (_mm512_mask_cvtt_roundph_epi16): Likewise. 12876 (_mm512_maskz_cvtt_roundph_epi16): Likewise. 12877 (_mm512_cvttph_epu16): Likewise. 12878 (_mm512_mask_cvttph_epu16): Likewise. 12879 (_mm512_maskz_cvttph_epu16): Likewise. 12880 (_mm512_cvtt_roundph_epu16): Likewise. 12881 (_mm512_mask_cvtt_roundph_epu16): Likewise. 12882 (_mm512_maskz_cvtt_roundph_epu16): Likewise. 12883 * config/i386/avx512fp16vlintrin.h (_mm_cvttph_epi32): 12884 New intirnsic. 12885 (_mm_mask_cvttph_epi32): Likewise. 12886 (_mm_maskz_cvttph_epi32): Likewise. 12887 (_mm256_cvttph_epi32): Likewise. 12888 (_mm256_mask_cvttph_epi32): Likewise. 12889 (_mm256_maskz_cvttph_epi32): Likewise. 12890 (_mm_cvttph_epu32): Likewise. 12891 (_mm_mask_cvttph_epu32): Likewise. 12892 (_mm_maskz_cvttph_epu32): Likewise. 12893 (_mm256_cvttph_epu32): Likewise. 12894 (_mm256_mask_cvttph_epu32): Likewise. 12895 (_mm256_maskz_cvttph_epu32): Likewise. 12896 (_mm_cvttph_epi64): Likewise. 12897 (_mm_mask_cvttph_epi64): Likewise. 12898 (_mm_maskz_cvttph_epi64): Likewise. 12899 (_mm256_cvttph_epi64): Likewise. 12900 (_mm256_mask_cvttph_epi64): Likewise. 12901 (_mm256_maskz_cvttph_epi64): Likewise. 12902 (_mm_cvttph_epu64): Likewise. 12903 (_mm_mask_cvttph_epu64): Likewise. 12904 (_mm_maskz_cvttph_epu64): Likewise. 12905 (_mm256_cvttph_epu64): Likewise. 12906 (_mm256_mask_cvttph_epu64): Likewise. 12907 (_mm256_maskz_cvttph_epu64): Likewise. 12908 (_mm_cvttph_epi16): Likewise. 12909 (_mm_mask_cvttph_epi16): Likewise. 12910 (_mm_maskz_cvttph_epi16): Likewise. 12911 (_mm256_cvttph_epi16): Likewise. 12912 (_mm256_mask_cvttph_epi16): Likewise. 12913 (_mm256_maskz_cvttph_epi16): Likewise. 12914 (_mm_cvttph_epu16): Likewise. 12915 (_mm_mask_cvttph_epu16): Likewise. 12916 (_mm_maskz_cvttph_epu16): Likewise. 12917 (_mm256_cvttph_epu16): Likewise. 12918 (_mm256_mask_cvttph_epu16): Likewise. 12919 (_mm256_maskz_cvttph_epu16): Likewise. 12920 * config/i386/i386-builtin.def: Add new builtins. 12921 * config/i386/sse.md 12922 (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name><round_saeonly_name>): 12923 New. 12924 (avx512fp16_fix<fixunssuffix>_trunc<mode>2<mask_name>): Ditto. 12925 (*avx512fp16_fix<fixunssuffix>_trunc<mode>2_load<mask_name>): Ditto. 12926 (avx512fp16_fix<fixunssuffix>_truncv2di2<mask_name>): Ditto. 12927 (avx512fp16_fix<fixunssuffix>_truncv2di2_load<mask_name>): Ditto. 12928 129292021-09-17 liuhongt <hongtao.liu@intel.com> 12930 12931 * config/i386/avx512fp16intrin.h (_mm_cvtsh_i32): New intrinsic. 12932 (_mm_cvtsh_u32): Likewise. 12933 (_mm_cvt_roundsh_i32): Likewise. 12934 (_mm_cvt_roundsh_u32): Likewise. 12935 (_mm_cvtsh_i64): Likewise. 12936 (_mm_cvtsh_u64): Likewise. 12937 (_mm_cvt_roundsh_i64): Likewise. 12938 (_mm_cvt_roundsh_u64): Likewise. 12939 (_mm_cvti32_sh): Likewise. 12940 (_mm_cvtu32_sh): Likewise. 12941 (_mm_cvt_roundi32_sh): Likewise. 12942 (_mm_cvt_roundu32_sh): Likewise. 12943 (_mm_cvti64_sh): Likewise. 12944 (_mm_cvtu64_sh): Likewise. 12945 (_mm_cvt_roundi64_sh): Likewise. 12946 (_mm_cvt_roundu64_sh): Likewise. 12947 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 12948 * config/i386/i386-builtin.def: Add corresponding new builtins. 12949 * config/i386/i386-expand.c (ix86_expand_round_builtin): 12950 Handle new builtin types. 12951 * config/i386/sse.md 12952 (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix><round_name>): 12953 New define_insn. 12954 (avx512fp16_vcvtsh2<sseintconvertsignprefix>si<rex64namesuffix>_2): Likewise. 12955 (avx512fp16_vcvt<floatsuffix>si2sh<rex64namesuffix><round_name>): Likewise. 12956 129572021-09-16 Bill Schmidt <wschmidt@linux.ibm.com> 12958 12959 * config/rs6000/rs6000-c.c (rs6000-builtins.h): New include. 12960 (altivec_resolve_new_overloaded_builtin): New forward decl. 12961 (rs6000_new_builtin_type_compatible): New function. 12962 (altivec_resolve_overloaded_builtin): Call 12963 altivec_resolve_new_overloaded_builtin. 12964 (altivec_build_new_resolved_builtin): New function. 12965 (altivec_resolve_new_overloaded_builtin): Likewise. 12966 * config/rs6000/rs6000-call.c (rs6000_new_builtin_is_supported): 12967 Likewise. 12968 * config/rs6000/rs6000-gen-builtins.c (write_decls): Remove _p from 12969 name of rs6000_new_builtin_is_supported. 12970 129712021-09-16 Uro�� Bizjak <ubizjak@gmail.com> 12972 12973 * config/i386/i386-protos.h (ix86_decompose_address): 12974 Change return type to bool. 12975 * config/i386/i386.c (ix86_decompose_address): Ditto. 12976 129772021-09-16 Tobias Burnus <tobias@codesourcery.com> 12978 12979 PR target/102353 12980 * config/rs6000/t-rs6000 (build/rs6000-gen-builtins.o, build/rbtree.o): 12981 Added 'build/' to target, use build/%.o rule. 12982 (build/rs6000-gen-builtins$(build_exeext)): Add 'build/' and 12983 '$(build_exeext)' to target and 'build/' for the *.o files. 12984 (rs6000-builtins.c): Update for those changes; run rs6000-gen-builtins 12985 with $(RUN_GEN). 12986 129872021-09-16 Martin Jambor <mjambor@suse.cz> 12988 12989 * cgraph.c (cgraph_node::dump): Do not check caller count sums if 12990 the body has been removed. Remove trailing whitespace. 12991 129922021-09-16 Richard Biener <rguenther@suse.de> 12993 12994 PR middle-end/102360 12995 * internal-fn.c (expand_DEFERRED_INIT): Make pattern-init 12996 of non-memory more robust. 12997 129982021-09-16 Daniel Cederman <cederman@gaisler.com> 12999 13000 * config/sparc/sparc-opts.h (enum sparc_processor_type): Add LEON5 13001 * config/sparc/sparc.c (struct processor_costs): Add LEON5 costs 13002 (leon5_adjust_cost): Increase cost of store with data dependency 13003 on ALU instruction and FPU anti-dependencies. 13004 (sparc_option_override): Add LEON5 costs 13005 (sparc_adjust_cost): Add LEON5 cost adjustments 13006 * config/sparc/sparc.h: Add LEON5 13007 * config/sparc/sparc.md: Include LEON5 scheduling information 13008 * config/sparc/sparc.opt: Add LEON5 13009 * doc/invoke.texi: Add LEON5 13010 * config/sparc/leon5.md: New file. 13011 130122021-09-16 Daniel Cederman <cederman@gaisler.com> 13013 13014 * config/sparc/sparc.md (stack_protect_set32): Add NOP to prevent 13015 sensitive sequence for B2BST errata workaround. 13016 130172021-09-16 Daniel Cederman <cederman@gaisler.com> 13018 13019 * config/sparc/sparc.c (sparc_do_work_around_errata): Do not begin 13020 functions with atomic instruction in the UT700 errata workaround. 13021 130222021-09-16 Daniel Cederman <cederman@gaisler.com> 13023 13024 * config/sparc/sparc.c (next_active_non_empty_insn): New function 13025 that returns next active non empty assembly instruction. 13026 (sparc_do_work_around_errata): Use new function. 13027 130282021-09-16 Daniel Cederman <cederman@gaisler.com> 13029 13030 * config/sparc/sparc.c (store_insn_p): Add predicate for store 13031 attributes. 13032 (load_insn_p): Add predicate for load attributes. 13033 (sparc_do_work_around_errata): Use new predicates. 13034 130352021-09-16 Andreas Larsson <andreas@gaisler.com> 13036 13037 * config/sparc/sparc.c (dump_target_flag_bits): Print bit names for 13038 LEON and LEON3. 13039 130402021-09-16 Martin Liska <mliska@suse.cz> 13041 13042 * config/mips/netbsd.h: Fix typo in name of a macro. 13043 130442021-09-16 liuhongt <hongtao.liu@intel.com> 13045 13046 PR middle-end/102080 13047 * match.pd: Check mask type when doing cond_op related gimple 13048 simplification. 13049 * tree.c (is_truth_type_for): New function. 13050 * tree.h (is_truth_type_for): New declaration. 13051 130522021-09-16 liuhongt <hongtao.liu@intel.com> 13053 13054 * config/i386/avx512fp16intrin.h (_mm512_cvtepi32_ph): New 13055 intrinsic. 13056 (_mm512_mask_cvtepi32_ph): Likewise. 13057 (_mm512_maskz_cvtepi32_ph): Likewise. 13058 (_mm512_cvt_roundepi32_ph): Likewise. 13059 (_mm512_mask_cvt_roundepi32_ph): Likewise. 13060 (_mm512_maskz_cvt_roundepi32_ph): Likewise. 13061 (_mm512_cvtepu32_ph): Likewise. 13062 (_mm512_mask_cvtepu32_ph): Likewise. 13063 (_mm512_maskz_cvtepu32_ph): Likewise. 13064 (_mm512_cvt_roundepu32_ph): Likewise. 13065 (_mm512_mask_cvt_roundepu32_ph): Likewise. 13066 (_mm512_maskz_cvt_roundepu32_ph): Likewise. 13067 (_mm512_cvtepi64_ph): Likewise. 13068 (_mm512_mask_cvtepi64_ph): Likewise. 13069 (_mm512_maskz_cvtepi64_ph): Likewise. 13070 (_mm512_cvt_roundepi64_ph): Likewise. 13071 (_mm512_mask_cvt_roundepi64_ph): Likewise. 13072 (_mm512_maskz_cvt_roundepi64_ph): Likewise. 13073 (_mm512_cvtepu64_ph): Likewise. 13074 (_mm512_mask_cvtepu64_ph): Likewise. 13075 (_mm512_maskz_cvtepu64_ph): Likewise. 13076 (_mm512_cvt_roundepu64_ph): Likewise. 13077 (_mm512_mask_cvt_roundepu64_ph): Likewise. 13078 (_mm512_maskz_cvt_roundepu64_ph): Likewise. 13079 (_mm512_cvtepi16_ph): Likewise. 13080 (_mm512_mask_cvtepi16_ph): Likewise. 13081 (_mm512_maskz_cvtepi16_ph): Likewise. 13082 (_mm512_cvt_roundepi16_ph): Likewise. 13083 (_mm512_mask_cvt_roundepi16_ph): Likewise. 13084 (_mm512_maskz_cvt_roundepi16_ph): Likewise. 13085 (_mm512_cvtepu16_ph): Likewise. 13086 (_mm512_mask_cvtepu16_ph): Likewise. 13087 (_mm512_maskz_cvtepu16_ph): Likewise. 13088 (_mm512_cvt_roundepu16_ph): Likewise. 13089 (_mm512_mask_cvt_roundepu16_ph): Likewise. 13090 (_mm512_maskz_cvt_roundepu16_ph): Likewise. 13091 * config/i386/avx512fp16vlintrin.h (_mm_cvtepi32_ph): New 13092 intrinsic. 13093 (_mm_mask_cvtepi32_ph): Likewise. 13094 (_mm_maskz_cvtepi32_ph): Likewise. 13095 (_mm256_cvtepi32_ph): Likewise. 13096 (_mm256_mask_cvtepi32_ph): Likewise. 13097 (_mm256_maskz_cvtepi32_ph): Likewise. 13098 (_mm_cvtepu32_ph): Likewise. 13099 (_mm_mask_cvtepu32_ph): Likewise. 13100 (_mm_maskz_cvtepu32_ph): Likewise. 13101 (_mm256_cvtepu32_ph): Likewise. 13102 (_mm256_mask_cvtepu32_ph): Likewise. 13103 (_mm256_maskz_cvtepu32_ph): Likewise. 13104 (_mm_cvtepi64_ph): Likewise. 13105 (_mm_mask_cvtepi64_ph): Likewise. 13106 (_mm_maskz_cvtepi64_ph): Likewise. 13107 (_mm256_cvtepi64_ph): Likewise. 13108 (_mm256_mask_cvtepi64_ph): Likewise. 13109 (_mm256_maskz_cvtepi64_ph): Likewise. 13110 (_mm_cvtepu64_ph): Likewise. 13111 (_mm_mask_cvtepu64_ph): Likewise. 13112 (_mm_maskz_cvtepu64_ph): Likewise. 13113 (_mm256_cvtepu64_ph): Likewise. 13114 (_mm256_mask_cvtepu64_ph): Likewise. 13115 (_mm256_maskz_cvtepu64_ph): Likewise. 13116 (_mm_cvtepi16_ph): Likewise. 13117 (_mm_mask_cvtepi16_ph): Likewise. 13118 (_mm_maskz_cvtepi16_ph): Likewise. 13119 (_mm256_cvtepi16_ph): Likewise. 13120 (_mm256_mask_cvtepi16_ph): Likewise. 13121 (_mm256_maskz_cvtepi16_ph): Likewise. 13122 (_mm_cvtepu16_ph): Likewise. 13123 (_mm_mask_cvtepu16_ph): Likewise. 13124 (_mm_maskz_cvtepu16_ph): Likewise. 13125 (_mm256_cvtepu16_ph): Likewise. 13126 (_mm256_mask_cvtepu16_ph): Likewise. 13127 (_mm256_maskz_cvtepu16_ph): Likewise. 13128 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 13129 * config/i386/i386-builtin.def: Add corresponding new builtins. 13130 * config/i386/i386-expand.c 13131 (ix86_expand_args_builtin): Handle new builtin types. 13132 (ix86_expand_round_builtin): Ditto. 13133 * config/i386/i386-modes.def: Declare V2HF and V6HF. 13134 * config/i386/sse.md (VI2H_AVX512VL): New. 13135 (qq2phsuff): Ditto. 13136 (sseintvecmode): Add HF vector modes. 13137 (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode><mask_name><round_name>): 13138 New. 13139 (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. 13140 (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>): Ditto. 13141 (avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. 13142 (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask): Ditto. 13143 (*avx512fp16_vcvt<floatsuffix><sseintconvert>2ph_<mode>_mask_1): Ditto. 13144 (avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. 13145 (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di): Ditto. 13146 (avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. 13147 (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask): Ditto. 13148 (*avx512fp16_vcvt<floatsuffix>qq2ph_v2di_mask_1): Ditto. 13149 * config/i386/subst.md (round_qq2phsuff): New subst_attr. 13150 131512021-09-16 liuhongt <hongtao.liu@intel.com> 13152 13153 * config/i386/avx512fp16intrin.h (_mm512_cvtph_epi32): 13154 New intrinsic/ 13155 (_mm512_mask_cvtph_epi32): Likewise. 13156 (_mm512_maskz_cvtph_epi32): Likewise. 13157 (_mm512_cvt_roundph_epi32): Likewise. 13158 (_mm512_mask_cvt_roundph_epi32): Likewise. 13159 (_mm512_maskz_cvt_roundph_epi32): Likewise. 13160 (_mm512_cvtph_epu32): Likewise. 13161 (_mm512_mask_cvtph_epu32): Likewise. 13162 (_mm512_maskz_cvtph_epu32): Likewise. 13163 (_mm512_cvt_roundph_epu32): Likewise. 13164 (_mm512_mask_cvt_roundph_epu32): Likewise. 13165 (_mm512_maskz_cvt_roundph_epu32): Likewise. 13166 (_mm512_cvtph_epi64): Likewise. 13167 (_mm512_mask_cvtph_epi64): Likewise. 13168 (_mm512_maskz_cvtph_epi64): Likewise. 13169 (_mm512_cvt_roundph_epi64): Likewise. 13170 (_mm512_mask_cvt_roundph_epi64): Likewise. 13171 (_mm512_maskz_cvt_roundph_epi64): Likewise. 13172 (_mm512_cvtph_epu64): Likewise. 13173 (_mm512_mask_cvtph_epu64): Likewise. 13174 (_mm512_maskz_cvtph_epu64): Likewise. 13175 (_mm512_cvt_roundph_epu64): Likewise. 13176 (_mm512_mask_cvt_roundph_epu64): Likewise. 13177 (_mm512_maskz_cvt_roundph_epu64): Likewise. 13178 (_mm512_cvtph_epi16): Likewise. 13179 (_mm512_mask_cvtph_epi16): Likewise. 13180 (_mm512_maskz_cvtph_epi16): Likewise. 13181 (_mm512_cvt_roundph_epi16): Likewise. 13182 (_mm512_mask_cvt_roundph_epi16): Likewise. 13183 (_mm512_maskz_cvt_roundph_epi16): Likewise. 13184 (_mm512_cvtph_epu16): Likewise. 13185 (_mm512_mask_cvtph_epu16): Likewise. 13186 (_mm512_maskz_cvtph_epu16): Likewise. 13187 (_mm512_cvt_roundph_epu16): Likewise. 13188 (_mm512_mask_cvt_roundph_epu16): Likewise. 13189 (_mm512_maskz_cvt_roundph_epu16): Likewise. 13190 * config/i386/avx512fp16vlintrin.h (_mm_cvtph_epi32): 13191 New intrinsic. 13192 (_mm_mask_cvtph_epi32): Likewise. 13193 (_mm_maskz_cvtph_epi32): Likewise. 13194 (_mm256_cvtph_epi32): Likewise. 13195 (_mm256_mask_cvtph_epi32): Likewise. 13196 (_mm256_maskz_cvtph_epi32): Likewise. 13197 (_mm_cvtph_epu32): Likewise. 13198 (_mm_mask_cvtph_epu32): Likewise. 13199 (_mm_maskz_cvtph_epu32): Likewise. 13200 (_mm256_cvtph_epu32): Likewise. 13201 (_mm256_mask_cvtph_epu32): Likewise. 13202 (_mm256_maskz_cvtph_epu32): Likewise. 13203 (_mm_cvtph_epi64): Likewise. 13204 (_mm_mask_cvtph_epi64): Likewise. 13205 (_mm_maskz_cvtph_epi64): Likewise. 13206 (_mm256_cvtph_epi64): Likewise. 13207 (_mm256_mask_cvtph_epi64): Likewise. 13208 (_mm256_maskz_cvtph_epi64): Likewise. 13209 (_mm_cvtph_epu64): Likewise. 13210 (_mm_mask_cvtph_epu64): Likewise. 13211 (_mm_maskz_cvtph_epu64): Likewise. 13212 (_mm256_cvtph_epu64): Likewise. 13213 (_mm256_mask_cvtph_epu64): Likewise. 13214 (_mm256_maskz_cvtph_epu64): Likewise. 13215 (_mm_cvtph_epi16): Likewise. 13216 (_mm_mask_cvtph_epi16): Likewise. 13217 (_mm_maskz_cvtph_epi16): Likewise. 13218 (_mm256_cvtph_epi16): Likewise. 13219 (_mm256_mask_cvtph_epi16): Likewise. 13220 (_mm256_maskz_cvtph_epi16): Likewise. 13221 (_mm_cvtph_epu16): Likewise. 13222 (_mm_mask_cvtph_epu16): Likewise. 13223 (_mm_maskz_cvtph_epu16): Likewise. 13224 (_mm256_cvtph_epu16): Likewise. 13225 (_mm256_mask_cvtph_epu16): Likewise. 13226 (_mm256_maskz_cvtph_epu16): Likewise. 13227 * config/i386/i386-builtin-types.def: Add new builtin types. 13228 * config/i386/i386-builtin.def: Add new builtins. 13229 * config/i386/i386-expand.c 13230 (ix86_expand_args_builtin): Handle new builtin types. 13231 (ix86_expand_round_builtin): Ditto. 13232 * config/i386/sse.md (sseintconvert): New. 13233 (ssePHmode): Ditto. 13234 (UNSPEC_US_FIX_NOTRUNC): Ditto. 13235 (sseintconvertsignprefix): Ditto. 13236 (avx512fp16_vcvtph2<sseintconvertsignprefix><sseintconvert>_<mode><mask_name><round_name>): 13237 Ditto. 13238 132392021-09-16 liuhongt <hongtao.liu@intel.com> 13240 13241 * config/i386/avx512fp16intrin.h: (_mm_cvtsi16_si128): 13242 New intrinsic. 13243 (_mm_cvtsi128_si16): Likewise. 13244 (_mm_mask_load_sh): Likewise. 13245 (_mm_maskz_load_sh): Likewise. 13246 (_mm_mask_store_sh): Likewise. 13247 (_mm_move_sh): Likewise. 13248 (_mm_mask_move_sh): Likewise. 13249 (_mm_maskz_move_sh): Likewise. 13250 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 13251 * config/i386/i386-builtin.def: Add corresponding new builtins. 13252 * config/i386/i386-expand.c 13253 (ix86_expand_special_args_builtin): Handle new builtin types. 13254 (ix86_expand_vector_init_one_nonzero): Adjust for FP16 target. 13255 * config/i386/sse.md (VI2F): New mode iterator. 13256 (vec_set<mode>_0): Use new mode iterator. 13257 (avx512f_mov<ssescalarmodelower>_mask): Adjust for HF vector mode. 13258 (avx512f_store<mode>_mask): Ditto. 13259 132602021-09-16 Kewen Lin <linkw@linux.ibm.com> 13261 13262 * config/rs6000/rs6000.opt (-mtoc-fusion): Remove. 13263 132642021-09-15 David Edelsohn <dje.gcc@gmail.com> 13265 13266 * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): 13267 Proceed if no symbol summary or the symbol alias flag is false. 13268 132692021-09-15 Jakub Jelinek <jakub@redhat.com> 13270 13271 PR c++/88578 13272 PR c++/102295 13273 * varasm.c (output_constructor_regular_field): Instead of assertion 13274 that array_size_for_constructor result is equal to size of 13275 TREE_TYPE (local->val) in bytes, assert that the type size is greater 13276 or equal to array_size_for_constructor result and use type size as 13277 fieldsize. 13278 132792021-09-15 Martin Liska <mliska@suse.cz> 13280 13281 PR target/102351 13282 * config/i386/vxworks.h: Use new macro TARGET_CPU_P. 13283 132842021-09-15 Martin Liska <mliska@suse.cz> 13285 13286 PR target/102349 13287 * config/rs6000/rs6000.c (rs6000_xcoff_encode_section_info): 13288 Check that we have a symbol summary for a symbol. 13289 132902021-09-15 Richard Biener <rguenther@suse.de> 13291 13292 PR target/102348 13293 * config/rs6000/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE 13294 to inherit from elfos.h 13295 132962021-09-15 liuhongt <hongtao.liu@intel.com> 13297 13298 PR target/102327 13299 * config/i386/i386-expand.c 13300 (ix86_expand_vector_init_interleave): Use puncklwd to pack 2 13301 HFmodes. 13302 (ix86_expand_vector_set): Use blendw instead of pinsrw. 13303 * config/i386/i386.c (ix86_can_change_mode_class): Adjust for 13304 AVX512FP16 which supports 16bit vector load. 13305 * config/i386/sse.md (avx512bw_interleave_highv32hi<mask_name>): 13306 Rename to .. 13307 (avx512bw_interleave_high<mode><mask_name>): .. this, and 13308 extend to V32HFmode. 13309 (avx2_interleave_highv16hi<mask_name>): Rename to .. 13310 (avx2_interleave_high<mode><mask_name>): .. this, and extend 13311 to V16HFmode. 13312 (vec_interleave_highv8hi<mask_name>): Rename to .. 13313 (vec_interleave_high<mode><mask_name>): .. this, and extend to V8HFmode. 13314 (<mask_codefor>avx512bw_interleave_lowv32hi<mask_name>): 13315 Rename to .. 13316 (<mask_codefor>avx512bw_interleave_low<mode><mask_name>): 13317 this, and extend to V32HFmode. 13318 (avx2_interleave_lowv16hi<mask_name>): Rename to .. 13319 (avx2_interleave_low<mode><mask_name>): .. this, and extend to V16HFmode. 13320 (vec_interleave_lowv8hi<mask_name>): Rename to .. 13321 (vec_interleave_low<mode><mask_name>): .. this, and extend to V8HFmode. 13322 (sse4_1_pblendw): Rename to .. 13323 (sse4_1_pblend<blendsuf>): .. this, and extend to V8HFmode. 13324 (avx2_pblendph): New define_expand. 13325 (<sse2p4_1>_pinsr<ssemodesuffix>): Refactor, use 13326 sseintmodesuffix instead of ssemodesuffix. 13327 (blendsuf): New mode attr. 13328 133292021-09-15 Richard Biener <rguenther@suse.de> 13330 13331 * tree-vectorizer.h (dr_misalignment): Move out of line. 13332 (dr_target_alignment): New. 13333 (DR_TARGET_ALIGNMENT): Wrap dr_target_alignment. 13334 (set_dr_target_alignment): New. 13335 (SET_DR_TARGET_ALIGNMENT): Wrap set_dr_target_alignment. 13336 * tree-vect-data-refs.c (dr_misalignment): Compute and 13337 return the group members misalignment. 13338 (vect_compute_data_ref_alignment): Use SET_DR_TARGET_ALIGNMENT. 13339 (vect_analyze_data_refs_alignment): Compute alignment only 13340 for the first element of a DR group. 13341 (vect_slp_analyze_node_alignment): Likewise. 13342 133432021-09-15 Hongyu Wang <hongyu.wang@intel.com> 13344 13345 * config/i386/avx512fp16intrin.h: Adjust all builtin calls. 13346 * config/i386/avx512fp16vlintrin.h: Likewise. 13347 * config/i386/i386-builtin.def: Adjust builtin name and 13348 enumeration to match AVX512F style. 13349 133502021-09-15 Richard Biener <rguenther@suse.de> 13351 13352 PR tree-optimization/102318 13353 * tree-vect-loop.c (vect_transform_cycle_phi): Revert 13354 previous change and do the mode conversion separately from 13355 the sign conversion. 13356 133572021-09-15 Hongtao Liu <hongtao.liu@intel.com> 13358 Peter Cordes <peter@cordes.ca> 13359 13360 PR target/91103 13361 * config/i386/sse.md (extract_suf): Add V8SF/V8SI/V4DF/V4DI. 13362 (*vec_extract<mode><ssescalarmodelower>_valign): Output 13363 vextract{i,f}{32x4,64x2} instruction when byte_offset % 16 == 13364 0. 13365 133662021-09-15 Richard Biener <rguenther@suse.de> 13367 13368 * config.gcc: Remove vax-*-openbsd* configuration. 13369 133702021-09-15 Richard Biener <rguenther@suse.de> 13371 13372 * config.gcc: Remove m68k-openbsd. 13373 133742021-09-15 Max Filippov <jcmvbkbc@gmail.com> 13375 13376 PR target/102336 13377 * config/xtensa/t-xtensa (TM_H): Add include/xtensa-config.h. 13378 133792021-09-14 Peter Bergner <bergner@linux.ibm.com> 13380 13381 * config/rs6000/mma.md (unspec): Delete UNSPEC_MMA_XXSETACCZ. 13382 (unspecv): Add UNSPECV_MMA_XXSETACCZ. 13383 (*mma_xxsetaccz): Delete. 13384 (mma_xxsetaccz): Change to define_insn. Remove operand 1. 13385 Use UNSPECV_MMA_XXSETACCZ. Update comment. 13386 * config/rs6000/rs6000.c (rs6000_rtx_costs): Use UNSPECV_MMA_XXSETACCZ. 13387 133882021-09-14 Iain Sandoe <iain@sandoe.co.uk> 13389 13390 * Makefile.in: Remove variables related to applying no-PIE 13391 to the exes on $build. 13392 * configure: Regenerate. 13393 * configure.ac: Remove configuration related to applying 13394 no-PIE to the exes on $build. 13395 133962021-09-14 Claudiu Zissulescu <claziss@synopsys.com> 13397 13398 * config/arc/arc.md (doloop_end): Add missing mode. 13399 (loop_end): Likewise. 13400 134012021-09-14 Jakub Jelinek <jakub@redhat.com> 13402 13403 * gimplify.c (goa_stabilize_expr): Add depth argument, propagate 13404 it to recursive calls, for depth above 7 just gimplify or return. 13405 Perform a test even for MODIFY_EXPR, ADDR_EXPR, COMPOUND_EXPR with 13406 __builtin_clear_padding and TARGET_EXPR. 13407 (gimplify_omp_atomic): Adjust goa_stabilize_expr callers. 13408 134092021-09-14 liuhongt <hongtao.liu@intel.com> 13410 13411 * config/i386/avx512fp16intrin.h (_mm_fpclass_sh_mask): 13412 New intrinsic. 13413 (_mm_mask_fpclass_sh_mask): Likewise. 13414 (_mm512_mask_fpclass_ph_mask): Likewise. 13415 (_mm512_fpclass_ph_mask): Likewise. 13416 (_mm_getexp_sh): Likewise. 13417 (_mm_mask_getexp_sh): Likewise. 13418 (_mm_maskz_getexp_sh): Likewise. 13419 (_mm512_getexp_ph): Likewise. 13420 (_mm512_mask_getexp_ph): Likewise. 13421 (_mm512_maskz_getexp_ph): Likewise. 13422 (_mm_getexp_round_sh): Likewise. 13423 (_mm_mask_getexp_round_sh): Likewise. 13424 (_mm_maskz_getexp_round_sh): Likewise. 13425 (_mm512_getexp_round_ph): Likewise. 13426 (_mm512_mask_getexp_round_ph): Likewise. 13427 (_mm512_maskz_getexp_round_ph): Likewise. 13428 (_mm_getmant_sh): Likewise. 13429 (_mm_mask_getmant_sh): Likewise. 13430 (_mm_maskz_getmant_sh): Likewise. 13431 (_mm512_getmant_ph): Likewise. 13432 (_mm512_mask_getmant_ph): Likewise. 13433 (_mm512_maskz_getmant_ph): Likewise. 13434 (_mm_getmant_round_sh): Likewise. 13435 (_mm_mask_getmant_round_sh): Likewise. 13436 (_mm_maskz_getmant_round_sh): Likewise. 13437 (_mm512_getmant_round_ph): Likewise. 13438 (_mm512_mask_getmant_round_ph): Likewise. 13439 (_mm512_maskz_getmant_round_ph): Likewise. 13440 * config/i386/avx512fp16vlintrin.h (_mm_mask_fpclass_ph_mask): 13441 New intrinsic. 13442 (_mm_fpclass_ph_mask): Likewise. 13443 (_mm256_mask_fpclass_ph_mask): Likewise. 13444 (_mm256_fpclass_ph_mask): Likewise. 13445 (_mm256_getexp_ph): Likewise. 13446 (_mm256_mask_getexp_ph): Likewise. 13447 (_mm256_maskz_getexp_ph): Likewise. 13448 (_mm_getexp_ph): Likewise. 13449 (_mm_mask_getexp_ph): Likewise. 13450 (_mm_maskz_getexp_ph): Likewise. 13451 (_mm256_getmant_ph): Likewise. 13452 (_mm256_mask_getmant_ph): Likewise. 13453 (_mm256_maskz_getmant_ph): Likewise. 13454 (_mm_getmant_ph): Likewise. 13455 (_mm_mask_getmant_ph): Likewise. 13456 (_mm_maskz_getmant_ph): Likewise. 13457 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 13458 * config/i386/i386-builtin.def: Add corresponding new builtins. 13459 * config/i386/i386-expand.c 13460 (ix86_expand_args_builtin): Handle new builtin types. 13461 (ix86_expand_round_builtin): Ditto. 13462 * config/i386/sse.md (vecmemsuffix): Add HF vector modes. 13463 (<avx512>_getexp<mode><mask_name><round_saeonly_name>): Adjust 13464 to support HF vector modes. 13465 (avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name): 13466 Ditto. 13467 (avx512dq_fpclass<mode><mask_scalar_merge_name>): Ditto. 13468 (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Ditto. 13469 (<avx512>_getmant<mode><mask_name><round_saeonly_name>): Ditto. 13470 (avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): 13471 Ditto. 13472 134732021-09-14 liuhongt <hongtao.liu@intel.com> 13474 13475 * config/i386/avx512fp16intrin.h (_mm512_reduce_ph): 13476 New intrinsic. 13477 (_mm512_mask_reduce_ph): Likewise. 13478 (_mm512_maskz_reduce_ph): Likewise. 13479 (_mm512_reduce_round_ph): Likewise. 13480 (_mm512_mask_reduce_round_ph): Likewise. 13481 (_mm512_maskz_reduce_round_ph): Likewise. 13482 (_mm_reduce_sh): Likewise. 13483 (_mm_mask_reduce_sh): Likewise. 13484 (_mm_maskz_reduce_sh): Likewise. 13485 (_mm_reduce_round_sh): Likewise. 13486 (_mm_mask_reduce_round_sh): Likewise. 13487 (_mm_maskz_reduce_round_sh): Likewise. 13488 (_mm512_roundscale_ph): Likewise. 13489 (_mm512_mask_roundscale_ph): Likewise. 13490 (_mm512_maskz_roundscale_ph): Likewise. 13491 (_mm512_roundscale_round_ph): Likewise. 13492 (_mm512_mask_roundscale_round_ph): Likewise. 13493 (_mm512_maskz_roundscale_round_ph): Likewise. 13494 (_mm_roundscale_sh): Likewise. 13495 (_mm_mask_roundscale_sh): Likewise. 13496 (_mm_maskz_roundscale_sh): Likewise. 13497 (_mm_roundscale_round_sh): Likewise. 13498 (_mm_mask_roundscale_round_sh): Likewise. 13499 (_mm_maskz_roundscale_round_sh): Likewise. 13500 * config/i386/avx512fp16vlintrin.h: (_mm_reduce_ph): 13501 New intrinsic. 13502 (_mm_mask_reduce_ph): Likewise. 13503 (_mm_maskz_reduce_ph): Likewise. 13504 (_mm256_reduce_ph): Likewise. 13505 (_mm256_mask_reduce_ph): Likewise. 13506 (_mm256_maskz_reduce_ph): Likewise. 13507 (_mm_roundscale_ph): Likewise. 13508 (_mm_mask_roundscale_ph): Likewise. 13509 (_mm_maskz_roundscale_ph): Likewise. 13510 (_mm256_roundscale_ph): Likewise. 13511 (_mm256_mask_roundscale_ph): Likewise. 13512 (_mm256_maskz_roundscale_ph): Likewise. 13513 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 13514 * config/i386/i386-builtin.def: Add corresponding new builtins. 13515 * config/i386/i386-expand.c 13516 (ix86_expand_args_builtin): Handle new builtin types. 13517 (ix86_expand_round_builtin): Ditto. 13518 * config/i386/sse.md (<mask_codefor>reducep<mode><mask_name>): 13519 Renamed to ... 13520 (<mask_codefor>reducep<mode><mask_name><round_saeonly_name>): 13521 ... this, and adjust for round operands. 13522 (reduces<mode><mask_scalar_name>): Likewise, with ... 13523 (reduces<mode><mask_scalar_name><round_saeonly_scalar_name): 13524 ... this. 13525 (<avx512>_rndscale<mode><mask_name><round_saeonly_name>): 13526 Adjust for HF vector modes. 13527 (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>): 13528 Ditto. 13529 (*avx512f_rndscale<mode><round_saeonly_name>): Ditto. 13530 135312021-09-14 liuhongt <hongtao.liu@intel.com> 13532 13533 * config/i386/avx512fp16intrin.h: (_mm512_rcp_ph): 13534 New intrinsic. 13535 (_mm512_mask_rcp_ph): Likewise. 13536 (_mm512_maskz_rcp_ph): Likewise. 13537 (_mm_rcp_sh): Likewise. 13538 (_mm_mask_rcp_sh): Likewise. 13539 (_mm_maskz_rcp_sh): Likewise. 13540 (_mm512_scalef_ph): Likewise. 13541 (_mm512_mask_scalef_ph): Likewise. 13542 (_mm512_maskz_scalef_ph): Likewise. 13543 (_mm512_scalef_round_ph): Likewise. 13544 (_mm512_mask_scalef_round_ph): Likewise. 13545 (_mm512_maskz_scalef_round_ph): Likewise. 13546 (_mm_scalef_sh): Likewise. 13547 (_mm_mask_scalef_sh): Likewise. 13548 (_mm_maskz_scalef_sh): Likewise. 13549 (_mm_scalef_round_sh): Likewise. 13550 (_mm_mask_scalef_round_sh): Likewise. 13551 (_mm_maskz_scalef_round_sh): Likewise. 13552 * config/i386/avx512fp16vlintrin.h (_mm_rcp_ph): 13553 New intrinsic. 13554 (_mm256_rcp_ph): Likewise. 13555 (_mm_mask_rcp_ph): Likewise. 13556 (_mm256_mask_rcp_ph): Likewise. 13557 (_mm_maskz_rcp_ph): Likewise. 13558 (_mm256_maskz_rcp_ph): Likewise. 13559 (_mm_scalef_ph): Likewise. 13560 (_mm256_scalef_ph): Likewise. 13561 (_mm_mask_scalef_ph): Likewise. 13562 (_mm256_mask_scalef_ph): Likewise. 13563 (_mm_maskz_scalef_ph): Likewise. 13564 (_mm256_maskz_scalef_ph): Likewise. 13565 * config/i386/i386-builtin.def: Add new builtins. 13566 * config/i386/sse.md (VFH_AVX512VL): New. 13567 (avx512fp16_rcp<mode>2<mask_name>): Ditto. 13568 (avx512fp16_vmrcpv8hf2<mask_scalar_name>): Ditto. 13569 (avx512f_vmscalef<mode><mask_scalar_name><round_scalar_name>): 13570 Adjust to support HF vector modes. 13571 (<avx512>_scalef<mode><mask_name><round_name>): Ditto. 13572 135732021-09-14 liuhongt <hongtao.liu@intel.com> 13574 13575 * config/i386/avx512fp16intrin.h: (_mm512_sqrt_ph): 13576 New intrinsic. 13577 (_mm512_mask_sqrt_ph): Likewise. 13578 (_mm512_maskz_sqrt_ph): Likewise. 13579 (_mm512_sqrt_round_ph): Likewise. 13580 (_mm512_mask_sqrt_round_ph): Likewise. 13581 (_mm512_maskz_sqrt_round_ph): Likewise. 13582 (_mm512_rsqrt_ph): Likewise. 13583 (_mm512_mask_rsqrt_ph): Likewise. 13584 (_mm512_maskz_rsqrt_ph): Likewise. 13585 (_mm_rsqrt_sh): Likewise. 13586 (_mm_mask_rsqrt_sh): Likewise. 13587 (_mm_maskz_rsqrt_sh): Likewise. 13588 (_mm_sqrt_sh): Likewise. 13589 (_mm_mask_sqrt_sh): Likewise. 13590 (_mm_maskz_sqrt_sh): Likewise. 13591 (_mm_sqrt_round_sh): Likewise. 13592 (_mm_mask_sqrt_round_sh): Likewise. 13593 (_mm_maskz_sqrt_round_sh): Likewise. 13594 * config/i386/avx512fp16vlintrin.h (_mm_sqrt_ph): New intrinsic. 13595 (_mm256_sqrt_ph): Likewise. 13596 (_mm_mask_sqrt_ph): Likewise. 13597 (_mm256_mask_sqrt_ph): Likewise. 13598 (_mm_maskz_sqrt_ph): Likewise. 13599 (_mm256_maskz_sqrt_ph): Likewise. 13600 (_mm_rsqrt_ph): Likewise. 13601 (_mm256_rsqrt_ph): Likewise. 13602 (_mm_mask_rsqrt_ph): Likewise. 13603 (_mm256_mask_rsqrt_ph): Likewise. 13604 (_mm_maskz_rsqrt_ph): Likewise. 13605 (_mm256_maskz_rsqrt_ph): Likewise. 13606 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 13607 * config/i386/i386-builtin.def: Add corresponding new builtins. 13608 * config/i386/i386-expand.c 13609 (ix86_expand_args_builtin): Handle new builtins. 13610 (ix86_expand_round_builtin): Ditto. 13611 * config/i386/sse.md (VF_AVX512FP16VL): New. 13612 (sqrt<mode>2): Adjust for HF vector modes. 13613 (<sse>_sqrt<mode>2<mask_name><round_name>): Likewise. 13614 (<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): 13615 Likewise. 13616 (<sse>_rsqrt<mode>2<mask_name>): New. 13617 (avx512fp16_vmrsqrtv8hf2<mask_scalar_name>): Likewise. 13618 136192021-09-13 Thomas Schwinge <thomas@codesourcery.com> 13620 13621 PR bootstrap/101574 13622 * diagnostic-spec.c (warning_suppressed_at, copy_warning): Handle 13623 'RESERVED_LOCATION_P' locations. 13624 * warning-control.cc (get_nowarn_spec, suppress_warning) 13625 (copy_warning): Likewise. 13626 136272021-09-13 Thomas Schwinge <thomas@codesourcery.com> 13628 13629 * diagnostic-spec.h (typedef xint_hash_t): Use 'location_t' instead of... 13630 (typedef key_type_t): ... this. Remove. 13631 (nowarn_map): Document. 13632 * diagnostic-spec.c (nowarn_map): Likewise. 13633 * warning-control.cc (convert_to_key): Evolve functions into... 13634 (get_location): ... these. Adjust all users. 13635 136362021-09-13 Thomas Schwinge <thomas@codesourcery.com> 13637 13638 * warning-control.cc (copy_warning): Remove 'nowarn_map' setup. 13639 136402021-09-13 Jason Merrill <jason@redhat.com> 13641 13642 * params.opt: Add destructive-interference-size and 13643 constructive-interference-size. 13644 * doc/invoke.texi: Document them. 13645 * config/aarch64/aarch64.c (aarch64_override_options_internal): 13646 Set them. 13647 * config/arm/arm.c (arm_option_override): Set them. 13648 * config/i386/i386-options.c (ix86_option_override_internal): 13649 Set them. 13650 136512021-09-13 Martin Liska <mliska@suse.cz> 13652 H.J. Lu <hjl.tools@gmail.com> 13653 13654 PR target/101696 13655 * common/config/i386/cpuinfo.h (cpu_indicator_init): Add support 13656 for x86-64 micro levels for __builtin_cpu_supports. 13657 * common/config/i386/i386-cpuinfo.h (enum feature_priority): 13658 Add priorities for the micro-arch levels. 13659 (enum processor_features): Add new features. 13660 * common/config/i386/i386-isas.h: Add micro-arch features. 13661 * config/i386/i386-builtins.c (get_builtin_code_for_version): 13662 Support the micro-arch levels by callsing 13663 __builtin_cpu_supports. 13664 * doc/extend.texi: Document that the levels are support by 13665 __builtin_cpu_supports. 13666 136672021-09-13 Andrew Pinski <apinski@marvell.com> 13668 13669 PR target/95969 13670 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin_lane_check): 13671 New function. 13672 (aarch64_general_fold_builtin): Handle AARCH64_SIMD_BUILTIN_LANE_CHECK. 13673 (aarch64_general_gimple_fold_builtin): Likewise. 13674 136752021-09-13 Andrew Pinski <apinski@marvell.com> 13676 13677 * config.gcc: Add m32r-*-linux* and m32rle-*-linux* 13678 to the Unsupported targets list. 13679 Remove support for m32r-*-linux* and m32rle-*-linux*. 13680 * config/m32r/linux.h: Removed. 13681 * config/m32r/t-linux: Removed. 13682 136832021-09-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13684 13685 PR target/102252 13686 * config/aarch64/aarch64.c (aarch64_classify_address): Don't allow 13687 register index for SVE predicate modes. 13688 136892021-09-13 Aldy Hernandez <aldyh@redhat.com> 13690 13691 * tree-ssa-threadbackward.c 13692 (back_threader_profitability::profitable_path_p): Remove FSM 13693 references. 13694 (back_threader_registry::register_path): Same. 13695 * tree-ssa-threadedge.c 13696 (jump_threader::simplify_control_stmt_condition): Same. 13697 * tree-ssa-threadupdate.c (jt_path_registry::jt_path_registry): 13698 Add backedge_threads argument. 13699 (fwd_jt_path_registry::fwd_jt_path_registry): Pass 13700 backedge_threads argument. 13701 (back_jt_path_registry::back_jt_path_registry): Same. 13702 (dump_jump_thread_path): Adjust for FSM removal. 13703 (back_jt_path_registry::rewire_first_differing_edge): Same. 13704 (back_jt_path_registry::adjust_paths_after_duplication): Same. 13705 (back_jt_path_registry::update_cfg): Same. 13706 (jt_path_registry::register_jump_thread): Same. 13707 * tree-ssa-threadupdate.h (enum jump_thread_edge_type): Remove 13708 EDGE_FSM_THREAD. 13709 (class back_jt_path_registry): Add backedge_threads to 13710 constructor. 13711 137122021-09-13 Martin Liska <mliska@suse.cz> 13713 13714 PR c++/101331 13715 * asan.h (sanitize_coverage_p): Handle when fn == NULL. 13716 137172021-09-13 H.J. Lu <hjl.tools@gmail.com> 13718 13719 PR target/101935 13720 * config/i386/i386.h (TARGET_AVX256_MOVE_BY_PIECES): New. 13721 (TARGET_AVX256_STORE_BY_PIECES): Likewise. 13722 (MOVE_MAX): Check TARGET_AVX256_MOVE_BY_PIECES and 13723 TARGET_AVX256_STORE_BY_PIECES instead of 13724 TARGET_AVX256_SPLIT_UNALIGNED_LOAD and 13725 TARGET_AVX256_SPLIT_UNALIGNED_STORE. 13726 (STORE_MAX_PIECES): Check TARGET_AVX256_STORE_BY_PIECES instead 13727 of TARGET_AVX256_SPLIT_UNALIGNED_STORE. 13728 * config/i386/x86-tune.def (X86_TUNE_AVX256_MOVE_BY_PIECES): New. 13729 (X86_TUNE_AVX256_STORE_BY_PIECES): Likewise. 13730 137312021-09-13 liuhongt <hongtao.liu@intel.com> 13732 13733 PR bootstrap/102302 13734 * expmed.c (extract_bit_field_using_extv): Use 13735 gen_lowpart_if_possible instead of gen_lowpart to avoid ICE. 13736 137372021-09-13 Aldy Hernandez <aldyh@redhat.com> 13738 13739 * Makefile.in (OBJS): Add value-pointer-equiv.o. 13740 * gimple-ssa-evrp.c (class ssa_equiv_stack): Move to 13741 value-pointer-equiv.*. 13742 (ssa_equiv_stack::ssa_equiv_stack): Same. 13743 (ssa_equiv_stack::enter): Same. 13744 (ssa_equiv_stack::leave): Same. 13745 (ssa_equiv_stack::push_replacement): Same. 13746 (ssa_equiv_stack::get_replacement): Same. 13747 (is_pointer_ssa): Same. 13748 (class pointer_equiv_analyzer): Same. 13749 (pointer_equiv_analyzer::pointer_equiv_analyzer): Same. 13750 (pointer_equiv_analyzer::~pointer_equiv_analyzer): Same. 13751 (pointer_equiv_analyzer::set_global_equiv): Same. 13752 (pointer_equiv_analyzer::set_cond_equiv): Same. 13753 (pointer_equiv_analyzer::get_equiv): Same. 13754 (pointer_equiv_analyzer::enter): Same. 13755 (pointer_equiv_analyzer::leave): Same. 13756 (pointer_equiv_analyzer::get_equiv_expr): Same. 13757 (pta_valueize): Same. 13758 (pointer_equiv_analyzer::visit_stmt): Same. 13759 (pointer_equiv_analyzer::visit_edge): Same. 13760 (hybrid_folder::value_of_expr): Same. 13761 (hybrid_folder::value_on_edge): Same. 13762 * value-pointer-equiv.cc: New file. 13763 * value-pointer-equiv.h: New file. 13764 137652021-09-13 Richard Earnshaw <rearnsha@arm.com> 13766 13767 PR target/102125 13768 * gimple-fold.c (gimple_fold_builtin_memory_op): Allow folding 13769 memcpy if the size is not more than MOVE_MAX * MOVE_RATIO. 13770 137712021-09-13 Richard Earnshaw <rearnsha@arm.com> 13772 13773 PR target/102125 13774 * config/arm/arm.md (movmisaligndi): New define_expand. 13775 * config/arm/vec-common.md (movmisalign<mode>): Iterate over VDQ mode. 13776 137772021-09-13 Richard Earnshaw <rearnsha@arm.com> 13778 13779 PR target/102125 13780 * emit-rtl.c (gen_highpart): Use adjust_address to handle 13781 MEM rather than calling simplify_gen_subreg. 13782 137832021-09-13 Jan-Benedict Glaw <jbglaw@��ug-owl.de> 13784 13785 * config/alpha/vms.h (INIT_CUMULATIVE_ARGS): Wrap multi-statment 13786 define into a block. 13787 137882021-09-13 Richard Biener <rguenther@suse.de> 13789 13790 * config/darwin.h (DARWIN_PREFER_DWARF): Do not define. 13791 * config/i386/darwin.h (PREFERRED_DEBUGGING_TYPE): Do not 13792 change based on DARWIN_PREFER_DWARF not being defined. 13793 137942021-09-13 Richard Biener <rguenther@suse.de> 13795 13796 * config/i386/lynx.h: Remove undef of PREFERRED_DEBUGGING_TYPE 13797 to inherit from elfos.h 13798 137992021-09-13 Richard Biener <rguenther@suse.de> 13800 13801 * config.gcc: Add cr16-*-* to the list of obsoleted targets. 13802 138032021-09-13 Richard Biener <rguenther@suse.de> 13804 13805 * config/avr/elf.h (PREFERRED_DEBUGGING_TYPE): Remove 13806 override, pick up DWARF2_DEBUG define from elfos.h 13807 138082021-09-13 Richard Biener <rguenther@suse.de> 13809 13810 * config/rx/rx.h (PREFERRED_DEBUGGING_TYPE): Always define to 13811 DWARF2_DEBUG. 13812 138132021-09-13 Richard Biener <rguenther@suse.de> 13814 13815 * config/alpha/vms.h (PREFERRED_DEBUGGING_TYPE): Define to 13816 DWARF2_DEBUG. 13817 138182021-09-13 Richard Biener <rguenther@suse.de> 13819 13820 * config/i386/cygming.h: Always default to DWARF2 debugging. 13821 Do not define DBX_DEBUGGING_INFO, that's done via dbxcoff.h 13822 already. 13823 * doc/install.texi: Document binutils 2.16 as minimum 13824 requirement for mingw. 13825 138262021-09-13 Kewen Lin <linkw@linux.ibm.com> 13827 13828 * config/rs6000/rs6000.c (struct rs6000_cost_data): New members 13829 nstmts, nloads and extra_ctor_cost. 13830 (rs6000_density_test): Add load density related heuristics. Do 13831 extra costing on vector construction statements if need. 13832 (rs6000_init_cost): Init new members. 13833 (rs6000_update_target_cost_per_stmt): New function. 13834 (rs6000_add_stmt_cost): Factor vect_nonmem hunk out to function 13835 rs6000_update_target_cost_per_stmt and call it. 13836 138372021-09-13 Kewen Lin <linkw@linux.ibm.com> 13838 13839 * config/rs6000/rs6000.c (struct rs6000_cost_data): Remove typedef. 13840 (rs6000_init_cost): Adjust. 13841 138422021-09-13 liuhongt <hongtao.liu@intel.com> 13843 13844 * config/i386/i386.md: (UNSPEC_COPYSIGN): Remove. 13845 (UNSPEC_XORSIGN): Ditto. 13846 138472021-09-12 Roger Sayle <roger@nextmovesoftware.com> 13848 13849 * expr.c (convert_move): Preserve SUBREG_PROMOTED_VAR_P when 13850 creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P 13851 subreg. 13852 138532021-09-11 Aldy Hernandez <aldyh@redhat.com> 13854 13855 * tree-ssa-threadbackward.c (class back_threader_registry): Use 13856 back_jt_path_registry. 13857 * tree-ssa-threadedge.c (jump_threader::jump_threader): Use 13858 fwd_jt_path_registry. 13859 * tree-ssa-threadedge.h (class jump_threader): Same.. 13860 * tree-ssa-threadupdate.c 13861 (jump_thread_path_registry::jump_thread_path_registry): Rename... 13862 (jt_path_registry::jt_path_registry): ...to this. 13863 (jump_thread_path_registry::~jump_thread_path_registry): Rename... 13864 (jt_path_registry::~jt_path_registry): ...this. 13865 (fwd_jt_path_registry::fwd_jt_path_registry): New. 13866 (fwd_jt_path_registry::~fwd_jt_path_registry): New. 13867 (jump_thread_path_registry::allocate_thread_edge): Rename... 13868 (jt_path_registry::allocate_thread_edge): ...to this. 13869 (jump_thread_path_registry::allocate_thread_path): Rename... 13870 (jt_path_registry::allocate_thread_path): ...to this. 13871 (jump_thread_path_registry::lookup_redirection_data): Rename... 13872 (fwd_jt_path_registry::lookup_redirection_data): ...to this. 13873 (jump_thread_path_registry::thread_block_1): Rename... 13874 (fwd_jt_path_registry::thread_block_1): ...to this. 13875 (jump_thread_path_registry::thread_block): Rename... 13876 (fwd_jt_path_registry::thread_block): ...to this. 13877 (jt_path_registry::thread_through_loop_header): Rename... 13878 (fwd_jt_path_registry::thread_through_loop_header): ...to this. 13879 (jump_thread_path_registry::mark_threaded_blocks): Rename... 13880 (fwd_jt_path_registry::mark_threaded_blocks): ...to this. 13881 (jump_thread_path_registry::debug_path): Rename... 13882 (jt_path_registry::debug_path): ...to this. 13883 (jump_thread_path_registry::dump): Rename... 13884 (jt_path_registry::debug): ...to this. 13885 (jump_thread_path_registry::rewire_first_differing_edge): Rename... 13886 (back_jt_path_registry::rewire_first_differing_edge): ...to this. 13887 (jump_thread_path_registry::adjust_paths_after_duplication): Rename... 13888 (back_jt_path_registry::adjust_paths_after_duplication): ...to this. 13889 (jump_thread_path_registry::duplicate_thread_path): Rename... 13890 (back_jt_path_registry::duplicate_thread_path): ...to this. Also, 13891 drop ill-formed candidates. 13892 (jump_thread_path_registry::remove_jump_threads_including): Rename... 13893 (fwd_jt_path_registry::remove_jump_threads_including): ...to this. 13894 (jt_path_registry::thread_through_all_blocks): New. 13895 (back_jt_path_registry::update_cfg): New. 13896 (fwd_jt_path_registry::update_cfg): New. 13897 (jump_thread_path_registry::register_jump_thread): Rename... 13898 (jt_path_registry::register_jump_thread): ...to this. 13899 * tree-ssa-threadupdate.h (class jump_thread_path_registry): 13900 Abstract to... 13901 (class jt_path_registry): ...here. 13902 (class fwd_jt_path_registry): New. 13903 (class back_jt_path_registry): New. 13904 139052021-09-10 liuhongt <hongtao.liu@intel.com> 13906 13907 Revert: 13908 2021-09-01 liuhongt <hongtao.liu@intel.com> 13909 13910 * emit-rtl.c (validate_subreg): Get rid of all float-int 13911 special cases. 13912 139132021-09-10 Jakub Jelinek <jakub@redhat.com> 13914 13915 * tree-core.h (enum omp_memory_order): Add OMP_MEMORY_ORDER_MASK, 13916 OMP_FAIL_MEMORY_ORDER_UNSPECIFIED, OMP_FAIL_MEMORY_ORDER_RELAXED, 13917 OMP_FAIL_MEMORY_ORDER_ACQUIRE, OMP_FAIL_MEMORY_ORDER_RELEASE, 13918 OMP_FAIL_MEMORY_ORDER_ACQ_REL, OMP_FAIL_MEMORY_ORDER_SEQ_CST and 13919 OMP_FAIL_MEMORY_ORDER_MASK enumerators. 13920 (OMP_FAIL_MEMORY_ORDER_SHIFT): Define. 13921 * gimple-pretty-print.c (dump_gimple_omp_atomic_load, 13922 dump_gimple_omp_atomic_store): Print [weak] for weak atomic 13923 load/store. 13924 * gimple.h (enum gf_mask): Change GF_OMP_ATOMIC_MEMORY_ORDER 13925 to 6-bit mask, adjust GF_OMP_ATOMIC_NEED_VALUE value and add 13926 GF_OMP_ATOMIC_WEAK. 13927 (gimple_omp_atomic_weak_p, gimple_omp_atomic_set_weak): New inline 13928 functions. 13929 * tree.h (OMP_ATOMIC_WEAK): Define. 13930 * tree-pretty-print.c (dump_omp_atomic_memory_order): Adjust for 13931 fail memory order being encoded in the same enum and also print 13932 fail clause if present. 13933 (dump_generic_node): Print weak clause if OMP_ATOMIC_WEAK. 13934 * gimplify.c (goa_stabilize_expr): Add target_expr and rhs arguments, 13935 handle pre_p == NULL case as a test mode that only returns value 13936 but doesn't change gimplify nor change anything otherwise, adjust 13937 recursive calls, add MODIFY_EXPR, ADDR_EXPR, COND_EXPR, TARGET_EXPR 13938 and CALL_EXPR handling, adjust COMPOUND_EXPR handling for 13939 __builtin_clear_padding calls, for !rhs gimplify as lvalue rather 13940 than rvalue. 13941 (gimplify_omp_atomic): Adjust goa_stabilize_expr caller. Handle 13942 COND_EXPR rhs. Set weak flag on gimple load/store for 13943 OMP_ATOMIC_WEAK. 13944 * omp-expand.c (omp_memory_order_to_fail_memmodel): New function. 13945 (omp_memory_order_to_memmodel): Adjust for fail clause encoded 13946 in the same enum. 13947 (expand_omp_atomic_cas): New function. 13948 (expand_omp_atomic_pipeline): Use omp_memory_order_to_fail_memmodel 13949 function. 13950 (expand_omp_atomic): Attempt to optimize atomic compare and exchange 13951 using expand_omp_atomic_cas. 13952 139532021-09-10 Aldy Hernandez <aldyh@redhat.com> 13954 Michael Matz <matz@suse.de> 13955 13956 * tree-pass.h (PROP_loop_opts_done): New. 13957 * gimple-range-path.cc (path_range_query::internal_range_of_expr): 13958 Intersect with global range. 13959 * tree-ssa-loop.c (tree_ssa_loop_done): Set PROP_loop_opts_done. 13960 * tree-ssa-threadbackward.c 13961 (back_threader_profitability::profitable_path_p): Disable 13962 threading through latches until after loop optimizations have run. 13963 139642021-09-10 David Faust <david.faust@oracle.com> 13965 13966 * doc/invoke.texi: Document BPF -mcpu, -mjmpext, -mjmp32 and -malu32 13967 options. 13968 139692021-09-10 David Faust <david.faust@oracle.com> 13970 13971 * config/bpf/bpf-opts.h (bpf_isa_version): New enum. 13972 * config/bpf/bpf-protos.h (bpf_expand_cbranch): New. 13973 * config/bpf/bpf.c (bpf_option_override): Handle -mcpu option. 13974 (bpf_expand_cbranch): New function. 13975 * config/bpf/bpf.md (AM mode iterator): Conditionalize support for SI 13976 mode. 13977 (zero_extendsidi2): Only use mov32 instruction if it is available. 13978 (SIM mode iterator): Conditionalize support for SI mode. 13979 (JM mode iterator): New. 13980 (cbranchdi4): Update name, use new JM iterator. Use bpf_expand_cbranch. 13981 (*branch_on_di): Update name, use new JM iterator. 13982 * config/bpf/bpf.opt: (mjmpext): New option. 13983 (malu32): Likewise. 13984 (mjmp32): Likewise. 13985 (mcpu): Likewise. 13986 (bpf_isa): New enum. 13987 139882021-09-10 David Faust <david.faust@oracle.com> 13989 13990 * config/bpf/bpf.md (zero_extendhidi2): Add new output template 13991 for register-to-register extensions. 13992 (zero_extendqidi2): Likewise. 13993 139942021-09-10 Richard Biener <rguenther@suse.de> 13995 13996 PR middle-end/102273 13997 * internal-fn.c (expand_DEFERRED_INIT): Always expand non-SSA vars. 13998 139992021-09-10 Richard Biener <rguenther@suse.de> 14000 14001 PR middle-end/102269 14002 * gimplify.c (is_var_need_auto_init): Empty types do not need 14003 initialization. 14004 140052021-09-10 Richard Biener <rguenther@suse.de> 14006 14007 * configure.ac (--with-stabs): Remove. 14008 * configure: Regenerate. 14009 * doc/install.texi: Remove --with-stabs documentation. 14010 140112021-09-10 liuhongt <hongtao.liu@intel.com> 14012 14013 * config/i386/avx512fp16intrin.h: (_mm512_cmp_ph_mask): 14014 New intrinsic. 14015 (_mm512_mask_cmp_ph_mask): Likewise. 14016 (_mm512_cmp_round_ph_mask): Likewise. 14017 (_mm512_mask_cmp_round_ph_mask): Likewise. 14018 (_mm_cmp_sh_mask): Likewise. 14019 (_mm_mask_cmp_sh_mask): Likewise. 14020 (_mm_cmp_round_sh_mask): Likewise. 14021 (_mm_mask_cmp_round_sh_mask): Likewise. 14022 (_mm_comieq_sh): Likewise. 14023 (_mm_comilt_sh): Likewise. 14024 (_mm_comile_sh): Likewise. 14025 (_mm_comigt_sh): Likewise. 14026 (_mm_comige_sh): Likewise. 14027 (_mm_comineq_sh): Likewise. 14028 (_mm_ucomieq_sh): Likewise. 14029 (_mm_ucomilt_sh): Likewise. 14030 (_mm_ucomile_sh): Likewise. 14031 (_mm_ucomigt_sh): Likewise. 14032 (_mm_ucomige_sh): Likewise. 14033 (_mm_ucomineq_sh): Likewise. 14034 (_mm_comi_round_sh): Likewise. 14035 (_mm_comi_sh): Likewise. 14036 * config/i386/avx512fp16vlintrin.h (_mm_cmp_ph_mask): New intrinsic. 14037 (_mm_mask_cmp_ph_mask): Likewise. 14038 (_mm256_cmp_ph_mask): Likewise. 14039 (_mm256_mask_cmp_ph_mask): Likewise. 14040 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 14041 * config/i386/i386-builtin.def: Add corresponding new builtins. 14042 * config/i386/i386-expand.c 14043 (ix86_expand_args_builtin): Handle new builtin types. 14044 (ix86_expand_round_builtin): Ditto. 14045 * config/i386/i386.md (ssevecmode): Add HF mode. 14046 (MODEFH): New mode iterator. 14047 * config/i386/sse.md 14048 (V48H_AVX512VL): New mode iterator to support HF vector modes. 14049 Ajdust corresponding description. 14050 (ssecmpintprefix): New. 14051 (VI12_AVX512VL): Adjust to support HF vector modes. 14052 (cmp_imm_predicate): Likewise. 14053 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>): 14054 Likewise. 14055 (avx512f_vmcmp<mode>3<round_saeonly_name>): Likewise. 14056 (avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Likewise. 14057 (<sse>_<unord>comi<round_saeonly_name>): Likewise. 14058 140592021-09-10 liuhongt <hongtao.liu@intel.com> 14060 14061 * config/i386/avx512fp16intrin.h: (_mm512_max_ph): New intrinsic. 14062 (_mm512_mask_max_ph): Likewise. 14063 (_mm512_maskz_max_ph): Likewise. 14064 (_mm512_min_ph): Likewise. 14065 (_mm512_mask_min_ph): Likewise. 14066 (_mm512_maskz_min_ph): Likewise. 14067 (_mm512_max_round_ph): Likewise. 14068 (_mm512_mask_max_round_ph): Likewise. 14069 (_mm512_maskz_max_round_ph): Likewise. 14070 (_mm512_min_round_ph): Likewise. 14071 (_mm512_mask_min_round_ph): Likewise. 14072 (_mm512_maskz_min_round_ph): Likewise. 14073 (_mm_max_sh): Likewise. 14074 (_mm_mask_max_sh): Likewise. 14075 (_mm_maskz_max_sh): Likewise. 14076 (_mm_min_sh): Likewise. 14077 (_mm_mask_min_sh): Likewise. 14078 (_mm_maskz_min_sh): Likewise. 14079 (_mm_max_round_sh): Likewise. 14080 (_mm_mask_max_round_sh): Likewise. 14081 (_mm_maskz_max_round_sh): Likewise. 14082 (_mm_min_round_sh): Likewise. 14083 (_mm_mask_min_round_sh): Likewise. 14084 (_mm_maskz_min_round_sh): Likewise. 14085 * config/i386/avx512fp16vlintrin.h (_mm_max_ph): New intrinsic. 14086 (_mm256_max_ph): Likewise. 14087 (_mm_mask_max_ph): Likewise. 14088 (_mm256_mask_max_ph): Likewise. 14089 (_mm_maskz_max_ph): Likewise. 14090 (_mm256_maskz_max_ph): Likewise. 14091 (_mm_min_ph): Likewise. 14092 (_mm256_min_ph): Likewise. 14093 (_mm_mask_min_ph): Likewise. 14094 (_mm256_mask_min_ph): Likewise. 14095 (_mm_maskz_min_ph): Likewise. 14096 (_mm256_maskz_min_ph): Likewise. 14097 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 14098 * config/i386/i386-builtin.def: Add corresponding new builtins. 14099 * config/i386/i386-expand.c 14100 (ix86_expand_args_builtin): Handle new builtin types. 14101 * config/i386/sse.md 14102 (<code><mode>3<mask_name><round_saeonly_name>): Adjust to 14103 support HF vector modes. 14104 (*<code><mode>3<mask_name><round_saeonly_name>): Likewise. 14105 (ieee_<ieee_maxmin><mode>3<mask_name><round_saeonly_name>): 14106 Likewise. 14107 (<sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>): 14108 Likewise. 14109 * config/i386/subst.md (round_saeonly_mode512bit_condition): 14110 Adjust for HF vector modes. 14111 141122021-09-10 Liu, Hongtao <hongtao.liu@intel.com> 14113 14114 * config/i386/avx512fp16intrin.h (_mm_add_sh): New intrinsic. 14115 (_mm_mask_add_sh): Likewise. 14116 (_mm_maskz_add_sh): Likewise. 14117 (_mm_sub_sh): Likewise. 14118 (_mm_mask_sub_sh): Likewise. 14119 (_mm_maskz_sub_sh): Likewise. 14120 (_mm_mul_sh): Likewise. 14121 (_mm_mask_mul_sh): Likewise. 14122 (_mm_maskz_mul_sh): Likewise. 14123 (_mm_div_sh): Likewise. 14124 (_mm_mask_div_sh): Likewise. 14125 (_mm_maskz_div_sh): Likewise. 14126 (_mm_add_round_sh): Likewise. 14127 (_mm_mask_add_round_sh): Likewise. 14128 (_mm_maskz_add_round_sh): Likewise. 14129 (_mm_sub_round_sh): Likewise. 14130 (_mm_mask_sub_round_sh): Likewise. 14131 (_mm_maskz_sub_round_sh): Likewise. 14132 (_mm_mul_round_sh): Likewise. 14133 (_mm_mask_mul_round_sh): Likewise. 14134 (_mm_maskz_mul_round_sh): Likewise. 14135 (_mm_div_round_sh): Likewise. 14136 (_mm_mask_div_round_sh): Likewise. 14137 (_mm_maskz_div_round_sh): Likewise. 14138 * config/i386/i386-builtin-types.def: Add corresponding builtin types. 14139 * config/i386/i386-builtin.def: Add corresponding new builtins. 14140 * config/i386/i386-expand.c 14141 (ix86_expand_round_builtin): Handle new builtins. 14142 * config/i386/sse.md (VF_128): Change description. 14143 (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>): 14144 Adjust to support HF vector modes. 14145 (<sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>): 14146 Likewise. 14147 141482021-09-10 H.J. Lu <hjl.tools@gmail.com> 14149 14150 * config/i386/i386-expand.c 14151 (ix86_avx256_split_vector_move_misalign): Handle V16HF mode. 14152 * config/i386/i386.c 14153 (ix86_preferred_simd_mode): Handle HF mode. 14154 * config/i386/sse.md (V_256H): New mode iterator. 14155 (avx_vextractf128<mode>): Use it. 14156 (VEC_INIT_MODE): Align vector HFmode condition to vector 14157 HImodes since there're no real HF instruction used. 14158 (VEC_INIT_HALF_MODE): Ditto. 14159 (VIHF): Ditto. 14160 (VIHF_AVX512BW): Ditto. 14161 (*vec_extracthf): Ditto. 14162 (VEC_EXTRACT_MODE): Ditto. 14163 141642021-09-10 Richard Biener <rguenther@suse.de> 14165 14166 PR target/102255 14167 * config/dbx.h: Remove. 14168 * config/dbxcoff.h: Do not define PREFERRED_DEBUGGING_TYPE. 14169 * config/lynx.h: Likewise. 14170 141712021-09-10 liuhongt <hongtao.liu@intel.com> 14172 14173 * config/i386/i386-expand.c (ix86_expand_copysign): Expand 14174 right into ANDNOT + AND + IOR, using paradoxical subregs. 14175 (ix86_split_copysign_const): Remove. 14176 (ix86_split_copysign_var): Ditto. 14177 * config/i386/i386-protos.h (ix86_split_copysign_const): Dotto. 14178 (ix86_split_copysign_var): Ditto. 14179 * config/i386/i386.md (@copysign<mode>3_const): Ditto. 14180 (@copysign<mode>3_var): Ditto. 14181 141822021-09-09 qing zhao <qing.zhao@oracle.com> 14183 14184 * builtins.c (expand_builtin_memset): Make external visible. 14185 * builtins.h (expand_builtin_memset): Declare extern. 14186 * common.opt (ftrivial-auto-var-init=): New option. 14187 * doc/extend.texi: Document the uninitialized attribute. 14188 * doc/invoke.texi: Document -ftrivial-auto-var-init. 14189 * flag-types.h (enum auto_init_type): New enumerated type 14190 auto_init_type. 14191 * gimple-fold.c (clear_padding_type): Add one new parameter. 14192 (clear_padding_union): Likewise. 14193 (clear_padding_emit_loop): Likewise. 14194 (clear_type_padding_in_mask): Likewise. 14195 (gimple_fold_builtin_clear_padding): Handle this new parameter. 14196 * gimplify.c (gimple_add_init_for_auto_var): New function. 14197 (gimple_add_padding_init_for_auto_var): New function. 14198 (is_var_need_auto_init): New function. 14199 (gimplify_decl_expr): Add initialization to automatic variables per 14200 users' requests. 14201 (gimplify_call_expr): Add one new parameter for call to 14202 __builtin_clear_padding. 14203 (gimplify_init_constructor): Add padding initialization in the end. 14204 * internal-fn.c (INIT_PATTERN_VALUE): New macro. 14205 (expand_DEFERRED_INIT): New function. 14206 * internal-fn.def (DEFERRED_INIT): New internal function. 14207 * tree-cfg.c (verify_gimple_call): Verify calls to .DEFERRED_INIT. 14208 * tree-sra.c (generate_subtree_deferred_init): New function. 14209 (scan_function): Avoid setting cannot_scalarize_away_bitmap for 14210 calls to .DEFERRED_INIT. 14211 (sra_modify_deferred_init): New function. 14212 (sra_modify_function_body): Handle calls to DEFERRED_INIT specially. 14213 * tree-ssa-structalias.c (find_func_aliases_for_call): Likewise. 14214 * tree-ssa-uninit.c (warn_uninit): Handle calls to DEFERRED_INIT 14215 specially. 14216 (check_defs): Likewise. 14217 (warn_uninitialized_vars): Likewise. 14218 * tree-ssa.c (ssa_undefined_value_p): Likewise. 14219 * tree.c (build_common_builtin_nodes): Build tree node for 14220 BUILT_IN_CLEAR_PADDING when needed. 14221 142222021-09-09 Richard Biener <rguenther@suse.de> 14223 14224 * tree-ssa-loop-im.c (fill_always_executed_in_1): Walk 14225 into all subloops. 14226 142272021-09-09 Richard Biener <rguenther@suse.de> 14228 14229 * tree-ssa-loop-im.c (fill_always_executed_in_1): Integrate 14230 DOM walk from get_loop_body_in_dom_order using a worklist 14231 approach. 14232 142332021-09-09 liuhongt <hongtao.liu@intel.com> 14234 14235 * config.gcc: Add avx512fp16vlintrin.h. 14236 * config/i386/avx512fp16intrin.h: (_mm512_add_ph): New intrinsic. 14237 (_mm512_mask_add_ph): Likewise. 14238 (_mm512_maskz_add_ph): Likewise. 14239 (_mm512_sub_ph): Likewise. 14240 (_mm512_mask_sub_ph): Likewise. 14241 (_mm512_maskz_sub_ph): Likewise. 14242 (_mm512_mul_ph): Likewise. 14243 (_mm512_mask_mul_ph): Likewise. 14244 (_mm512_maskz_mul_ph): Likewise. 14245 (_mm512_div_ph): Likewise. 14246 (_mm512_mask_div_ph): Likewise. 14247 (_mm512_maskz_div_ph): Likewise. 14248 (_mm512_add_round_ph): Likewise. 14249 (_mm512_mask_add_round_ph): Likewise. 14250 (_mm512_maskz_add_round_ph): Likewise. 14251 (_mm512_sub_round_ph): Likewise. 14252 (_mm512_mask_sub_round_ph): Likewise. 14253 (_mm512_maskz_sub_round_ph): Likewise. 14254 (_mm512_mul_round_ph): Likewise. 14255 (_mm512_mask_mul_round_ph): Likewise. 14256 (_mm512_maskz_mul_round_ph): Likewise. 14257 (_mm512_div_round_ph): Likewise. 14258 (_mm512_mask_div_round_ph): Likewise. 14259 (_mm512_maskz_div_round_ph): Likewise. 14260 * config/i386/avx512fp16vlintrin.h: New header. 14261 * config/i386/i386-builtin-types.def (V16HF, V8HF, V32HF): 14262 Add new builtin types. 14263 * config/i386/i386-builtin.def: Add corresponding builtins. 14264 * config/i386/i386-expand.c 14265 (ix86_expand_args_builtin): Handle new builtin types. 14266 (ix86_expand_round_builtin): Likewise. 14267 * config/i386/immintrin.h: Include avx512fp16vlintrin.h 14268 * config/i386/sse.md (VFH): New mode_iterator. 14269 (VF2H): Likewise. 14270 (avx512fmaskmode): Add HF vector modes. 14271 (avx512fmaskhalfmode): Likewise. 14272 (<plusminus_insn><mode>3<mask_name><round_name>): Adjust to for 14273 HF vector modes. 14274 (*<plusminus_insn><mode>3<mask_name><round_name>): Likewise. 14275 (mul<mode>3<mask_name><round_name>): Likewise. 14276 (*mul<mode>3<mask_name><round_name>): Likewise. 14277 (div<mode>3): Likewise. 14278 (<sse>_div<mode>3<mask_name><round_name>): Likewise. 14279 * config/i386/subst.md (SUBST_V): Add HF vector modes. 14280 (SUBST_A): Likewise. 14281 (round_mode512bit_condition): Adjust for V32HFmode. 14282 142832021-09-09 liuhongt <hongtao.liu@intel.com> 14284 14285 PR target/101059 14286 * config/i386/sse.md (reduc_plus_scal_<mode>): Split to .. 14287 (reduc_plus_scal_v4sf): .. this, New define_expand. 14288 (reduc_plus_scal_v2df): .. and this, New define_expand. 14289 142902021-09-09 liuhongt <hongtao.liu@intel.com> 14291 14292 PR target/91103 14293 * config/i386/sse.md (*vec_extract<mode><ssescalarmodelower>_valign): 14294 New define_insn. 14295 142962021-09-08 Jonathan Wakely <jwakely@redhat.com> 14297 14298 PR c++/60318 14299 * doc/trouble.texi (Copy Assignment): Fix description of 14300 behaviour and fix code in example. 14301 143022021-09-08 Segher Boessenkool <segher@kernel.crashing.org> 14303 14304 PR target/102107 14305 * config/rs6000/rs6000-logue.c (rs6000_emit_epilogue): For ELFv2 use 14306 r11 instead of r12 for restoring CR. 14307 143082021-09-08 Jakub Jelinek <jakub@redhat.com> 14309 liuhongt <hongtao.liu@intel.com> 14310 14311 PR target/89984 14312 * config/i386/i386.md (@xorsign<mode>3_1): Remove. 14313 * config/i386/i386-expand.c (ix86_expand_xorsign): Expand right away 14314 into AND with mask and XOR, using paradoxical subregs. 14315 (ix86_split_xorsign): Remove. 14316 * config/i386/i386-protos.h (ix86_split_xorsign): Remove. 14317 143182021-09-08 Di Zhao <dizhao@os.amperecomputing.com> 14319 14320 * tree-ssa-sccvn.c (vn_nary_op_insert_into): fix result compare 14321 143222021-09-08 Jakub Jelinek <jakub@redhat.com> 14323 14324 PR target/102224 14325 * config/i386/i386.md (xorsign<mode>3): If operands[1] is equal to 14326 operands[2], emit abs<mode>2 instead. 14327 (@xorsign<mode>3_1): Add early-clobbers for output operand, enable 14328 first alternative even for avx, add another alternative with 14329 =&Yv <- 0, Yv, Yvm constraints. 14330 * config/i386/i386-expand.c (ix86_split_xorsign): If op0 is equal 14331 to op1, emit vpandn instead. 14332 143332021-09-08 liuhongt <hongtao.liu@intel.com> 14334 14335 * config/i386/avx512fp16intrin.h (_mm_set_ph): New intrinsic. 14336 (_mm256_set_ph): Likewise. 14337 (_mm512_set_ph): Likewise. 14338 (_mm_setr_ph): Likewise. 14339 (_mm256_setr_ph): Likewise. 14340 (_mm512_setr_ph): Likewise. 14341 (_mm_set1_ph): Likewise. 14342 (_mm256_set1_ph): Likewise. 14343 (_mm512_set1_ph): Likewise. 14344 (_mm_setzero_ph): Likewise. 14345 (_mm256_setzero_ph): Likewise. 14346 (_mm512_setzero_ph): Likewise. 14347 (_mm_set_sh): Likewise. 14348 (_mm_load_sh): Likewise. 14349 (_mm_store_sh): Likewise. 14350 * config/i386/i386-builtin-types.def (V8HF): New type. 14351 (DEF_FUNCTION_TYPE (V8HF, V8HI)): New builtin function type 14352 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): 14353 Support vector HFmodes. 14354 (ix86_expand_vector_init_one_nonzero): Likewise. 14355 (ix86_expand_vector_init_one_var): Likewise. 14356 (ix86_expand_vector_init_interleave): Likewise. 14357 (ix86_expand_vector_init_general): Likewise. 14358 (ix86_expand_vector_set): Likewise. 14359 (ix86_expand_vector_extract): Likewise. 14360 (ix86_expand_vector_init_concat): Likewise. 14361 (ix86_expand_sse_movcc): Handle vector HFmodes. 14362 (ix86_expand_vector_set_var): Ditto. 14363 * config/i386/i386-modes.def: Add HF vector modes in comment. 14364 * config/i386/i386.c (classify_argument): Add HF vector modes. 14365 (ix86_hard_regno_mode_ok): Allow HF vector modes for AVX512FP16. 14366 (ix86_vector_mode_supported_p): Likewise. 14367 (ix86_set_reg_reg_cost): Handle vector HFmode. 14368 (ix86_get_ssemov): Handle vector HFmode. 14369 (function_arg_advance_64): Pass unamed V16HFmode and V32HFmode 14370 by stack. 14371 (function_arg_advance_32): Pass V8HF/V16HF/V32HF by sse reg for 32bit 14372 mode. 14373 (function_arg_advance_32): Ditto. 14374 * config/i386/i386.h (VALID_AVX512FP16_REG_MODE): New. 14375 (VALID_AVX256_REG_OR_OI_MODE): Rename to .. 14376 (VALID_AVX256_REG_OR_OI_VHF_MODE): .. this, and add V16HF. 14377 (VALID_SSE2_REG_VHF_MODE): New. 14378 (VALID_AVX512VL_128_REG_MODE): Add V8HF and TImode. 14379 (SSE_REG_MODE_P): Add vector HFmode. 14380 * config/i386/i386.md (mode): Add HF vector modes. 14381 (MODE_SIZE): Likewise. 14382 (ssemodesuffix): Add ph suffix for HF vector modes. 14383 * config/i386/sse.md (VFH_128): New mode iterator. 14384 (VMOVE): Adjust for HF vector modes. 14385 (V): Likewise. 14386 (V_256_512): Likewise. 14387 (avx512): Likewise. 14388 (avx512fmaskmode): Likewise. 14389 (shuffletype): Likewise. 14390 (sseinsnmode): Likewise. 14391 (ssedoublevecmode): Likewise. 14392 (ssehalfvecmode): Likewise. 14393 (ssehalfvecmodelower): Likewise. 14394 (ssePScmode): Likewise. 14395 (ssescalarmode): Likewise. 14396 (ssescalarmodelower): Likewise. 14397 (sseintprefix): Likewise. 14398 (i128): Likewise. 14399 (bcstscalarsuff): Likewise. 14400 (xtg_mode): Likewise. 14401 (VI12HF_AVX512VL): New mode_iterator. 14402 (VF_AVX512FP16): Likewise. 14403 (VIHF): Likewise. 14404 (VIHF_256): Likewise. 14405 (VIHF_AVX512BW): Likewise. 14406 (V16_256): Likewise. 14407 (V32_512): Likewise. 14408 (sseintmodesuffix): New mode_attr. 14409 (sse): Add scalar and vector HFmodes. 14410 (ssescalarmode): Add vector HFmode mapping. 14411 (ssescalarmodesuffix): Add sh suffix for HFmode. 14412 (*<sse>_vm<insn><mode>3): Use VFH_128. 14413 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. 14414 (*ieee_<ieee_maxmin><mode>3): Likewise. 14415 (<avx512>_blendm<mode>): New define_insn. 14416 (vec_setv8hf): New define_expand. 14417 (vec_set<mode>_0): New define_insn for HF vector set. 14418 (*avx512fp16_movsh): Likewise. 14419 (avx512fp16_movsh): Likewise. 14420 (vec_extract_lo_v32hi): Rename to ... 14421 (vec_extract_lo_<mode>): ... this, and adjust to allow HF 14422 vector modes. 14423 (vec_extract_hi_v32hi): Likewise. 14424 (vec_extract_hi_<mode>): Likewise. 14425 (vec_extract_lo_v16hi): Likewise. 14426 (vec_extract_lo_<mode>): Likewise. 14427 (vec_extract_hi_v16hi): Likewise. 14428 (vec_extract_hi_<mode>): Likewise. 14429 (vec_set_hi_v16hi): Likewise. 14430 (vec_set_hi_<mode>): Likewise. 14431 (vec_set_lo_v16hi): Likewise. 14432 (vec_set_lo_<mode>): Likewise. 14433 (*vec_extract<mode>_0): New define_insn_and_split for HF 14434 vector extract. 14435 (*vec_extracthf): New define_insn. 14436 (VEC_EXTRACT_MODE): Add HF vector modes. 14437 (PINSR_MODE): Add V8HF. 14438 (sse2p4_1): Likewise. 14439 (pinsr_evex_isa): Likewise. 14440 (<sse2p4_1>_pinsr<ssemodesuffix>): Adjust to support 14441 insert for V8HFmode. 14442 (pbroadcast_evex_isa): Add HF vector modes. 14443 (AVX2_VEC_DUP_MODE): Likewise. 14444 (VEC_INIT_MODE): Likewise. 14445 (VEC_INIT_HALF_MODE): Likewise. 14446 (avx2_pbroadcast<mode>): Adjust to support HF vector mode 14447 broadcast. 14448 (avx2_pbroadcast<mode>_1): Likewise. 14449 (<avx512>_vec_dup<mode>_1): Likewise. 14450 (<avx512>_vec_dup<mode><mask_name>): Likewise. 14451 (<mask_codefor><avx512>_vec_dup_gpr<mode><mask_name>): 14452 Likewise. 14453 144542021-09-08 Guo, Xuepeng <xuepeng.guo@intel.com> 14455 H.J. Lu <hongjiu.lu@intel.com> 14456 Liu Hongtao <hongtao.liu@intel.com> 14457 Wang Hongyu <hongyu.wang@intel.com> 14458 Xu Dianhong <dianhong.xu@intel.com> 14459 14460 * common/config/i386/cpuinfo.h (get_available_features): 14461 Detect FEATURE_AVX512FP16. 14462 * common/config/i386/i386-common.c 14463 (OPTION_MASK_ISA_AVX512FP16_SET, 14464 OPTION_MASK_ISA_AVX512FP16_UNSET, 14465 OPTION_MASK_ISA2_AVX512FP16_SET, 14466 OPTION_MASK_ISA2_AVX512FP16_UNSET): New. 14467 (OPTION_MASK_ISA2_AVX512BW_UNSET, 14468 OPTION_MASK_ISA2_AVX512BF16_UNSET): Add AVX512FP16. 14469 (ix86_handle_option): Handle -mavx512fp16. 14470 * common/config/i386/i386-cpuinfo.h (enum processor_features): 14471 Add FEATURE_AVX512FP16. 14472 * common/config/i386/i386-isas.h: Add entry for AVX512FP16. 14473 * config.gcc: Add avx512fp16intrin.h. 14474 * config/i386/avx512fp16intrin.h: New intrinsic header. 14475 * config/i386/cpuid.h: Add bit_AVX512FP16. 14476 * config/i386/i386-builtin-types.def: (FLOAT16): New primitive type. 14477 * config/i386/i386-builtins.c: Support _Float16 type for i386 14478 backend. 14479 (ix86_register_float16_builtin_type): New function. 14480 (ix86_float16_type_node): New. 14481 * config/i386/i386-c.c (ix86_target_macros_internal): Define 14482 __AVX512FP16__. 14483 * config/i386/i386-expand.c (ix86_expand_branch): Support 14484 HFmode. 14485 (ix86_prepare_fp_compare_args): Adjust TARGET_SSE_MATH && 14486 SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. 14487 (ix86_expand_fp_movcc): Ditto. 14488 * config/i386/i386-isa.def: Add PTA define for AVX512FP16. 14489 * config/i386/i386-options.c (isa2_opts): Add -mavx512fp16. 14490 (ix86_valid_target_attribute_inner_p): Add avx512fp16 attribute. 14491 * config/i386/i386.c (ix86_get_ssemov): Use 14492 vmovdqu16/vmovw/vmovsh for HFmode/HImode scalar or vector. 14493 (ix86_get_excess_precision): Use 14494 FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when TARGET_AVX512FP16 14495 existed. 14496 (sse_store_index): Use SFmode cost for HFmode cost. 14497 (inline_memory_move_cost): Add HFmode, and perfer SSE cost over 14498 GPR cost for HFmode. 14499 (ix86_hard_regno_mode_ok): Allow HImode in sse register. 14500 (ix86_mangle_type): Add manlging for _Float16 type. 14501 (inline_secondary_memory_needed): No memory is needed for 14502 16bit movement between gpr and sse reg under 14503 TARGET_AVX512FP16. 14504 (ix86_multiplication_cost): Adjust TARGET_SSE_MATH && 14505 SSE_FLOAT_MODE_P to SSE_FLOAT_MODE_SSEMATH_OR_HF_P. 14506 (ix86_division_cost): Ditto. 14507 (ix86_rtx_costs): Ditto. 14508 (ix86_add_stmt_cost): Ditto. 14509 (ix86_optab_supported_p): Ditto. 14510 * config/i386/i386.h (VALID_AVX512F_SCALAR_MODE): Add HFmode. 14511 (SSE_FLOAT_MODE_SSEMATH_OR_HF_P): Add HFmode. 14512 (PTA_SAPPHIRERAPIDS): Add PTA_AVX512FP16. 14513 * config/i386/i386.md (mode): Add HFmode. 14514 (MODE_SIZE): Add HFmode. 14515 (isa): Add avx512fp16. 14516 (enabled): Handle avx512fp16. 14517 (ssemodesuffix): Add sh suffix for HFmode. 14518 (comm): Add mult, div. 14519 (plusminusmultdiv): New code iterator. 14520 (insn): Add mult, div. 14521 (*movhf_internal): Adjust for avx512fp16 instruction. 14522 (*movhi_internal): Ditto. 14523 (*cmpi<unord>hf): New define_insn for HFmode. 14524 (*ieee_s<ieee_maxmin>hf3): Likewise. 14525 (extendhf<mode>2): Likewise. 14526 (trunc<mode>hf2): Likewise. 14527 (float<floatunssuffix><mode>hf2): Likewise. 14528 (*<insn>hf): Likewise. 14529 (cbranchhf4): New expander. 14530 (movhfcc): Likewise. 14531 (<insn>hf3): Likewise. 14532 (mulhf3): Likewise. 14533 (divhf3): Likewise. 14534 * config/i386/i386.opt: Add mavx512fp16. 14535 * config/i386/immintrin.h: Include avx512fp16intrin.h. 14536 * doc/invoke.texi: Add mavx512fp16. 14537 * doc/extend.texi: Add avx512fp16 Usage Notes. 14538 145392021-09-08 liuhongt <hongtao.liu@intel.com> 14540 14541 * common.opt: Support -fexcess-precision=16. 14542 * config/aarch64/aarch64.c (aarch64_excess_precision): Return 14543 FLT_EVAL_METHOD_PROMOTE_TO_FLOAT16 when 14544 EXCESS_PRECISION_TYPE_FLOAT16. 14545 * config/arm/arm.c (arm_excess_precision): Ditto. 14546 * config/i386/i386.c (ix86_get_excess_precision): Ditto. 14547 * config/m68k/m68k.c (m68k_excess_precision): Issue an error 14548 when EXCESS_PRECISION_TYPE_FLOAT16. 14549 * config/s390/s390.c (s390_excess_precision): Ditto. 14550 * coretypes.h (enum excess_precision_type): Add 14551 EXCESS_PRECISION_TYPE_FLOAT16. 14552 * doc/tm.texi (TARGET_C_EXCESS_PRECISION): Update documents. 14553 * doc/tm.texi.in (TARGET_C_EXCESS_PRECISION): Ditto. 14554 * doc/extend.texi (Half-Precision): Document 14555 -fexcess-precision=16. 14556 * flag-types.h (enum excess_precision): Add 14557 EXCESS_PRECISION_FLOAT16. 14558 * target.def (excess_precision): Update document. 14559 * tree.c (excess_precision_type): Set excess_precision_type to 14560 EXCESS_PRECISION_FLOAT16 when -fexcess-precision=16. 14561 145622021-09-08 liuhongt <hongtao.liu@intel.com> 14563 14564 * doc/extend.texi: (@node Floating Types): Adjust the wording. 14565 (@node Half-Precision): Ditto. 14566 145672021-09-07 Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> 14568 14569 PR target/102115 14570 * config/xtensa/xtensa.c (xtensa_emit_move_sequence): Add 14571 'CONST_INT_P (src)' to the condition of the block that tries to 14572 eliminate literal when loading integer contant. 14573 145742021-09-07 David Faust <david.faust@oracle.com> 14575 14576 * doc/extend.texi (BPF Type Attributes) New node. 14577 Document new preserve_access_index attribute. 14578 Document new preserve_access_index builtin. 14579 * doc/invoke.texi: Document -mco-re and -mno-co-re options. 14580 145812021-09-07 David Faust <david.faust@oracle.com> 14582 14583 * config/bpf/bpf.c: Adjust includes. 14584 (bpf_handle_preserve_access_index_attribute): New function. 14585 (bpf_attribute_table): Use it here. 14586 (bpf_builtins): Add BPF_BUILTIN_PRESERVE_ACCESS_INDEX. 14587 (bpf_option_override): Handle "-mco-re" option. 14588 (bpf_asm_init_sections): New. 14589 (TARGET_ASM_INIT_SECTIONS): Redefine. 14590 (bpf_file_end): New. 14591 (TARGET_ASM_FILE_END): Redefine. 14592 (bpf_init_builtins): Add "__builtin_preserve_access_index". 14593 (bpf_core_compute, bpf_core_get_index): New. 14594 (is_attr_preserve_access): New. 14595 (bpf_expand_builtin): Handle new builtins. 14596 (bpf_core_newdecl, bpf_core_is_maybe_aggregate_access): New. 14597 (bpf_core_walk): New. 14598 (bpf_resolve_overloaded_builtin): New. 14599 (TARGET_RESOLVE_OVERLOADED_BUILTIN): Redefine. 14600 (handle_attr): New. 14601 (pass_bpf_core_attr): New RTL pass. 14602 * config/bpf/bpf-passes.def: New file. 14603 * config/bpf/bpf-protos.h (make_pass_bpf_core_attr): New. 14604 * config/bpf/coreout.c: New file. 14605 * config/bpf/coreout.h: Likewise. 14606 * config/bpf/t-bpf (TM_H): Add $(srcdir)/config/bpf/coreout.h. 14607 (coreout.o): New rule. 14608 (PASSES_EXTRA): Add $(srcdir)/config/bpf/bpf-passes.def. 14609 * config.gcc (bpf): Add coreout.h to extra_headers. 14610 Add coreout.o to extra_objs. 14611 Add $(srcdir)/config/bpf/coreout.c to target_gtfiles. 14612 146132021-09-07 David Faust <david.faust@oracle.com> 14614 14615 * btfout.c (get_btf_id): Function is no longer static. 14616 * ctfc.h: Expose it here. 14617 146182021-09-07 David Faust <david.faust@oracle.com> 14619 14620 * ctfc.c (ctf_lookup_tree_type): New function. 14621 * ctfc.h: Likewise. 14622 146232021-09-07 David Faust <david.faust@oracle.com> 14624 14625 * ctfc.c (ctf_dtd_lookup): Function is no longer static. 14626 * ctfc.h: Analogous change. 14627 146282021-09-07 David Faust <david.faust@oracle.com> 14629 14630 * dwarf2out.c (lookup_type_die): Function is no longer static. 14631 * dwarf2out.h: Expose it here. 14632 146332021-09-07 Indu Bhagat <indu.bhagat@oracle.com> 14634 14635 * dwarf2ctf.c (ctf_debug_finalize): Make it static. 14636 (ctf_debug_early_finish): New definition. 14637 (ctf_debug_finish): Likewise. 14638 * dwarf2ctf.h (ctf_debug_finalize): Remove declaration. 14639 (ctf_debug_early_finish): New declaration. 14640 (ctf_debug_finish): Likewise. 14641 * dwarf2out.c (dwarf2out_finish): Invoke ctf_debug_finish. 14642 (dwarf2out_early_finish): Invoke ctf_debug_early_finish. 14643 146442021-09-07 Indu Bhagat <indu.bhagat@oracle.com> 14645 14646 * config/bpf/bpf.c (bpf_option_override): For BPF backend, disable LTO 14647 support when compiling for CO-RE. 14648 * config/bpf/bpf.opt: Add new command line option -mco-re. 14649 146502021-09-07 Indu Bhagat <indu.bhagat@oracle.com> 14651 14652 * flag-types.h (enum debug_info_type): Add new enum 14653 DINFO_TYPE_BTF_WITH_CORE. 14654 (BTF_WITH_CORE_DEBUG): New bitmask. 14655 * flags.h (btf_with_core_debuginfo_p): New declaration. 14656 * opts.c (btf_with_core_debuginfo_p): New definition. 14657 146582021-09-07 Jason Merrill <jason@redhat.com> 14659 14660 * tree.h (error_operand_p): Change to inline function. 14661 146622021-09-07 Aldy Hernandez <aldyh@redhat.com> 14663 14664 * tree-ssa-threadedge.c (forwarder_block_p): Rename to... 14665 (empty_block_with_phis_p): ...this. 14666 (potentially_threadable_block): Same. 14667 (jump_threader::thread_through_normal_block): Same. 14668 146692021-09-07 Eric Botcazou <ebotcazou@adacore.com> 14670 14671 PR debug/101947 14672 * dwarf2out.c (mark_base_types): New overloaded function. 14673 (dwarf2out_early_finish): Invoke it on the COMDAT type list as well 14674 as the compilation unit, and call move_marked_base_types afterward. 14675 146762021-09-07 H.J. Lu <hjl.tools@gmail.com> 14677 14678 PR target/85819 14679 * config/i386/i386-expand.c (ix86_expand_convert_uns_sisf_sse): 14680 Enable FMA. 14681 (ix86_expand_vector_convert_uns_vsivsf): Likewise. 14682 146832021-09-07 Richard Biener <rguenther@suse.de> 14684 14685 PR tree-optimization/102226 14686 * tree-vect-loop.c (vect_transform_cycle_phi): Record 14687 the converted value for the epilogue PHI use. 14688 146892021-09-07 Martin Liska <mliska@suse.cz> 14690 14691 PR gcov-profile/80223 14692 * ipa-inline.c (can_inline_edge_p): Similarly to sanitizer 14693 options, do not inline when no_profile_instrument_function 14694 attributes are different in early inliner. It's fine to inline 14695 it after PGO instrumentation. 14696 146972021-09-07 Richard Biener <rguenther@suse.de> 14698 14699 PR tree-optimization/101555 14700 * tree-ssa-pre.c (translate_vuse_through_block): Do not 14701 perform an alias walk to determine the validity of the 14702 mem at the start of the block which is already guaranteed 14703 by means of prune_clobbered_mems. 14704 (phi_translate_1): Pass edge to translate_vuse_through_block. 14705 147062021-09-07 Xionghu Luo <luoxhu@linux.ibm.com> 14707 14708 PR target/97142 14709 * config/rs6000/rs6000.md (fmod<mode>3): New define_expand. 14710 (remainder<mode>3): Likewise. 14711 147122021-09-07 YunQiang Su <yunqiang.su@cipunited.com> 14713 14714 * config/mips/mips.c (mips_file_start): add .module for 14715 arch and ase. 14716 147172021-09-06 Roger Sayle <roger@nextmovesoftware.com> 14718 14719 * wide-int.cc (wi::clz): Reorder tests to ensure the result 14720 is zero for all negative values. 14721 147222021-09-06 Tobias Burnus <tobias@codesourcery.com> 14723 14724 * doc/invoke.texi (-foffload-options): Fix @opindex. 14725 147262021-09-06 H.J. Lu <hjl.tools@gmail.com> 14727 14728 PR target/89984 14729 * config/i386/i386-expand.c (ix86_split_xorsign): Use operands[2]. 14730 * config/i386/i386.md (@xorsign<mode>3_1): Add non-destructive 14731 source alternative for AVX. 14732 147332021-09-06 liuhongt <hongtao.liu@intel.com> 14734 14735 PR middle-end/102182 14736 * optabs.c (expand_fix): Add from1 to avoid from being 14737 overwritten. 14738 147392021-09-06 Eric Botcazou <ebotcazou@adacore.com> 14740 14741 * dwarf2out.c (modified_type_die): Deal with all array types earlier 14742 and use local variable consistently throughout the function. 14743 147442021-09-06 Jakub Jelinek <jakub@redhat.com> 14745 14746 PR tree-optimization/102207 14747 * match.pd: Don't demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they 14748 were promoted from signed to wider unsigned type. 14749 147502021-09-06 Andrew Pinski <apinski@marvell.com> 14751 14752 PR tree-optimization/63184 14753 * match.pd: Add simplification of pointer_diff of two pointer_plus 14754 with addr_expr in the first operand of each pointer_plus. 14755 Add simplificatoin of ne/eq of two pointer_plus with addr_expr 14756 in the first operand of each pointer_plus. 14757 147582021-09-06 Richard Biener <rguenther@suse.de> 14759 14760 PR tree-optimization/102176 14761 * tree-vect-slp.c (vect_slp_gather_vectorized_scalar_stmts): 14762 New function. 14763 (vect_bb_slp_scalar_cost): Use the computed set of 14764 vectorized scalar stmts instead of relying on the out-of-date 14765 and not accurate PURE_SLP_STMT. 14766 (vect_bb_vectorization_profitable_p): Compute the set 14767 of vectorized scalar stmts. 14768 147692021-09-05 Aldy Hernandez <aldyh@redhat.com> 14770 14771 * gimple-range-path.cc (path_range_query::range_of_stmt): Remove 14772 GIMPLE_COND special casing. 14773 (path_range_query::range_defined_in_block): Use range_of_stmt 14774 instead of calling fold_range directly. 14775 147762021-09-05 Aldy Hernandez <aldyh@redhat.com> 14777 14778 * gimple-range-path.cc (path_range_query::range_of_expr): Set 14779 m_undefined_path when appropriate. 14780 (path_range_query::internal_range_of_expr): Copy from range_of_expr. 14781 (path_range_query::unreachable_path_p): New. 14782 (path_range_query::precompute_ranges): Set m_undefined_path. 14783 * gimple-range-path.h (path_range_query::unreachable_path_p): New. 14784 (path_range_query::internal_range_of_expr): New. 14785 * tree-ssa-threadbackward.c (back_threader::find_taken_edge_cond): 14786 Use unreachable_path_p. 14787 147882021-09-05 Aldy Hernandez <aldyh@redhat.com> 14789 14790 * tree-ssa-threadbackward.c (back_threader::maybe_register_path): 14791 Remove argument and call find_taken_edge. 14792 (back_threader::resolve_phi): Do not calculate taken edge before 14793 calling maybe_register_path. 14794 (back_threader::find_paths_to_names): Same. 14795 147962021-09-05 Jeff Law <jlaw@localhost.localdomain> 14797 14798 * config/h8300/h8300.md (QHSI2 mode iterator): New mode iterator. 14799 * config/h8300/testcompare.md (store_c): Update name, use new 14800 QHSI2 iterator. 14801 (store_neg_c, store_shifted_c): New patterns. 14802 148032021-09-03 Segher Boessenkool <segher@kernel.crashing.org> 14804 14805 PR target/102107 14806 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): On ELFv2 use r11 14807 instead of r12 for CR save, in all cases. 14808 148092021-09-03 Andrew Pinski <apinski@marvell.com> 14810 14811 * config/aarch64/aarch64-sve-builtins.cc (register_vector_type): 14812 Handle error_mark_node as the type of the type_decl. 14813 148142021-09-03 Andrew Pinski <apinski@marvell.com> 14815 14816 * config/aarch64/aarch64-builtins.c (struct aarch64_simd_type_info): 14817 Mark with GTY. 14818 (aarch64_simd_types): Likewise. 14819 (aarch64_simd_intOI_type_node): Likewise. 14820 (aarch64_simd_intCI_type_node): Likewise. 14821 (aarch64_simd_intXI_type_node): Likewise. 14822 * config/aarch64/aarch64.h (aarch64_fp16_type_node): Likewise. 14823 (aarch64_fp16_ptr_type_node): Likewise. 14824 (aarch64_bf16_type_node): Likewise. 14825 (aarch64_bf16_ptr_type_node): Likewise. 14826 148272021-09-03 Aldy Hernandez <aldyh@redhat.com> 14828 14829 * range-op.cc (operator_minus::op1_op2_relation_effect): Abstract 14830 out to... 14831 (minus_op1_op2_relation_effect): ...here. 14832 (class operator_pointer_diff): New. 14833 (operator_pointer_diff::op1_op2_relation_effect): Call 14834 minus_op1_op2_relation_effect. 14835 (integral_table::integral_table): Add entry for POINTER_DIFF_EXPR. 14836 148372021-09-03 Aldy Hernandez <aldyh@redhat.com> 14838 14839 * tree-ssa-threadbackward.c (back_threader::thread_through_all_blocks): 14840 Add may_peel_loop_headers. 14841 (back_threader_registry::thread_through_all_blocks): Same. 14842 (try_thread_blocks): Pass may_peel_loop_headers argument. 14843 (pass_early_thread_jumps::execute): Same. 14844 148452021-09-03 Aldy Hernandez <aldyh@redhat.com> 14846 14847 * tree-ssa-threadedge.c (has_phis_p): New. 14848 (forwarder_block_p): New. 14849 (potentially_threadable_block): Call forwarder_block_p. 14850 (jump_threader::thread_around_empty_blocks): Call has_phis_p. 14851 (jump_threader::thread_through_normal_block): Call 14852 forwarder_block_p. 14853 148542021-09-03 Aldy Hernandez <aldyh@redhat.com> 14855 14856 * tree-ssa-threadbackward.c (back_threader::dump): New. 14857 (back_threader::debug): New. 14858 (back_threader_profitability::profitable_path_p): Dump blocks 14859 even if we are bailing early. 14860 148612021-09-03 Aldy Hernandez <aldyh@redhat.com> 14862 14863 * tree-ssa-threadupdate.c (cancel_thread): New. 14864 (jump_thread_path_registry::thread_block_1): Use cancel_thread. 14865 (jump_thread_path_registry::mark_threaded_blocks): Same. 14866 (jump_thread_path_registry::register_jump_thread): Same. 14867 148682021-09-03 Aldy Hernandez <aldyh@redhat.com> 14869 14870 * tree-ssa-threadedge.c (jt_state::push): Only call methods for 14871 which objects are available. 14872 (jt_state::pop): Same. 14873 (jt_state::register_equiv): Same. 14874 (jt_state::register_equivs_on_edge): Same. 14875 148762021-09-03 Aldy Hernandez <aldyh@redhat.com> 14877 14878 * tree-ssa-threadedge.c (jump_threader::thread_across_edge): 14879 Move pop until after a thread is registered. 14880 148812021-09-03 Aldy Hernandez <aldyh@redhat.com> 14882 14883 * tree-ssa-threadupdate.c (debug): New. 14884 148852021-09-03 Aldy Hernandez <aldyh@redhat.com> 14886 14887 * gimple-range-trace.cc (push_dump_file::push_dump_file): New. 14888 (push_dump_file::~push_dump_file): New. 14889 (dump_ranger): Change dump_file temporarily while dumping 14890 ranger. 14891 * gimple-range-trace.h (class push_dump_file): New. 14892 148932021-09-03 Aldy Hernandez <aldyh@redhat.com> 14894 14895 * gimple-range-trace.cc (debug_seed_ranger): Remove static. 14896 (dump_ranger): Dump function name. 14897 148982021-09-03 Aldy Hernandez <aldyh@redhat.com> 14899 14900 * gimple-range-path.cc (path_range_query::range_defined_in_block): 14901 Adjust for non-null. 14902 (path_range_query::adjust_for_non_null_uses): New. 14903 (path_range_query::precompute_ranges): Call 14904 adjust_for_non_null_uses. 14905 * gimple-range-path.h: Add m_non_null and 14906 adjust_for_non_null_uses. 14907 149082021-09-03 Aldy Hernandez <aldyh@redhat.com> 14909 14910 * gimple-range-path.cc (path_range_query::dump): Dump path 14911 length. 14912 (path_range_query::precompute_ranges): Dump entire path. 14913 149142021-09-03 Aldy Hernandez <aldyh@redhat.com> 14915 14916 * value-relation.cc (relation_oracle::debug): New. 14917 * value-relation.h (relation_oracle::debug): New. 14918 149192021-09-03 Aldy Hernandez <aldyh@redhat.com> 14920 14921 * tree-ssa-loop-ch.c: Remove unnecessary include file. 14922 149232021-09-03 Aldy Hernandez <aldyh@redhat.com> 14924 14925 * gimple-range-fold.cc (fold_using_range::postfold_gcond_edges): 14926 Skip statements with no defining BB. 14927 * gimple-range-path.cc (path_range_query::range_defined_in_block): 14928 Do not get confused by statements with no defining BB. 14929 149302021-09-03 Aldy Hernandez <aldyh@redhat.com> 14931 14932 * gimple-range-fold.cc (adjust_imagpart_expr): Move from 14933 gimple_range_adjustment. Add support for constants. 14934 (adjust_realpart_expr): New. 14935 (gimple_range_adjustment): Move IMAGPART_EXPR code to 14936 adjust_imagpart_expr. 14937 * range-op.cc (integral_table::integral_table): Add entry for 14938 REALPART_CST. 14939 149402021-09-03 Jakub Jelinek <jakub@redhat.com> 14941 14942 * omp-expand.c (expand_omp_atomic_pipeline): Use 14943 IFN_ATOMIC_COMPARE_EXCHANGE instead of 14944 BUILT_IN_SYNC_VAL_COMPARE_AND_SWAP_? so that memory order 14945 can be provided. 14946 149472021-09-03 Jakub Jelinek <jakub@redhat.com> 14948 14949 PR target/102024 14950 * tree.h (DECL_FIELD_ABI_IGNORED): Changed into rvalue only macro 14951 that is false if DECL_BIT_FIELD. 14952 (SET_DECL_FIELD_ABI_IGNORED, DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD, 14953 SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD): Define. 14954 * tree-streamer-out.c (pack_ts_decl_common_value_fields): For 14955 DECL_BIT_FIELD stream DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead 14956 of DECL_FIELD_ABI_IGNORED. 14957 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use 14958 SET_DECL_FIELD_ABI_IGNORED instead of writing to 14959 DECL_FIELD_ABI_IGNORED and for DECL_BIT_FIELD use 14960 SET_DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead. 14961 * lto-streamer-out.c (hash_tree): For DECL_BIT_FIELD hash 14962 DECL_FIELD_CXX_ZERO_WIDTH_BIT_FIELD instead of DECL_FIELD_ABI_IGNORED. 14963 149642021-09-03 liuhongt <hongtao.liu@intel.com> 14965 14966 PR target/102166 14967 * config/i386/amxbf16intrin.h : Remove macro check for __AMX_BF16__. 14968 * config/i386/amxint8intrin.h : Remove macro check for __AMX_INT8__. 14969 * config/i386/amxtileintrin.h : Remove macro check for __AMX_TILE__. 14970 149712021-09-02 Martin Sebor <msebor@redhat.com> 14972 14973 PR tree-optimization/17506 14974 PR testsuite/37182 14975 * tree-ssa-uninit.c (warn_uninit): Remove conditional guarding note. 14976 149772021-09-02 Richard Biener <rguenther@suse.de> 14978 14979 * tree-ssa-loop-im.c (fill_always_executed_in_1): Refine 14980 fix for PR78185 and continue processing when leaving 14981 finite inner loops. 14982 149832021-09-02 Jakub Jelinek <jakub@redhat.com> 14984 14985 PR tree-optimization/99591 14986 * match.pd: Demote operands of IFN_{ADD,SUB,MUL}_OVERFLOW if they 14987 were promoted. 14988 149892021-09-02 Richard Biener <rguenther@suse.de> 14990 14991 Revert: 14992 2021-09-02 Richard Biener <rguenther@suse.de> 14993 14994 PR tree-optimization/102155 14995 * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate 14996 over a part of the RPO array and do not recurse here. 14997 Dump blocks marked as always executed. 14998 (fill_always_executed_in): Walk over the RPO array and 14999 process loops whose header we run into. 15000 (loop_invariant_motion_in_fun): Compute the first RPO 15001 using rev_post_order_and_mark_dfs_back_seme in iteration 15002 order and pass that to fill_always_executed_in. 15003 150042021-09-02 liuhongt <hongtao.liu@intel.com> 15005 15006 * config/i386/i386-modes.def (FLOAT_MODE): Define ieee HFmode. 15007 * config/i386/i386.c (enum x86_64_reg_class): Add 15008 X86_64_SSEHF_CLASS. 15009 (merge_classes): Handle X86_64_SSEHF_CLASS. 15010 (examine_argument): Ditto. 15011 (construct_container): Ditto. 15012 (classify_argument): Ditto, and set HFmode/HCmode to 15013 X86_64_SSEHF_CLASS. 15014 (function_value_32): Return _FLoat16/Complex Float16 by 15015 %xmm0. 15016 (function_value_64): Return _Float16/Complex Float16 by SSE 15017 register. 15018 (ix86_print_operand): Handle CONST_DOUBLE HFmode. 15019 (ix86_secondary_reload): Require gpr as intermediate register 15020 to store _Float16 from sse register when sse4 is not 15021 available. 15022 (ix86_libgcc_floating_mode_supported_p): Enable _FLoat16 under 15023 sse2. 15024 (ix86_scalar_mode_supported_p): Ditto. 15025 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Defined. 15026 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add HFmode. 15027 (VALID_INT_MODE_P): Add HFmode and HCmode. 15028 * config/i386/i386.md (*pushhf_rex64): New define_insn. 15029 (*pushhf): Ditto. 15030 (*movhf_internal): Ditto. 15031 * doc/extend.texi (Half-Precision Floating Point): Documemt 15032 _Float16 for x86. 15033 150342021-09-02 Richard Biener <rguenther@suse.de> 15035 15036 PR tree-optimization/102155 15037 * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate 15038 over a part of the RPO array and do not recurse here. 15039 Dump blocks marked as always executed. 15040 (fill_always_executed_in): Walk over the RPO array and 15041 process loops whose header we run into. 15042 (loop_invariant_motion_in_fun): Compute the first RPO 15043 using rev_post_order_and_mark_dfs_back_seme in iteration 15044 order and pass that to fill_always_executed_in. 15045 150462021-09-02 YunQiang Su <syq@debian.org> 15047 15048 Revert: 15049 2021-08-31 YunQiang Su <yunqiang.su@cipunited.com> 15050 15051 * config/mips/mips.c (mips_module_isa_name): New. 15052 mips_file_start: add .module mipsREV to all asm output 15053 150542021-09-01 Jeff Law <jlaw@localhost.localdomain> 15055 15056 PR tree-optimization/102152 15057 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Reduce a vector 15058 comparison to a scalar comparison before calling 15059 update_stmt_if_modified. 15060 150612021-09-01 Andrew Pinski <apinski@marvell.com> 15062 15063 PR target/101934 15064 * config/aarch64/aarch64.c (aarch64_expand_setmem): 15065 Check STRICT_ALIGNMENT before creating an overlapping 15066 store. 15067 150682021-09-01 Martin Sebor <msebor@redhat.com> 15069 15070 * gimple-ssa-warn-access.cc (get_size_range): Add argument. 15071 (check_access): Pass additional argument. 15072 (check_memop_access): Remove template and make a member function. 15073 (maybe_check_dealloc_call): Make a pass_waccess member function. 15074 (class pass_waccess): Add, rename, and remove members. 15075 (pass_waccess::pass_waccess): Adjust to name change. 15076 (pass_waccess::~pass_waccess): Same. 15077 (check_alloca): Make a member function. 15078 (check_alloc_size_call): Same. 15079 (check_strcat): Same. 15080 (check_strncat): Same. 15081 (check_stxcpy): Same. 15082 (check_stxncpy): Same. 15083 (check_strncmp): Same. 15084 (maybe_warn_rdwr_sizes): Rename... 15085 (pass_waccess::maybe_check_access_sizes): ...to this. 15086 (pass_waccess::check_call): Adjust to name changes. 15087 (pass_waccess::maybe_check_dealloc_call): Make a pass_waccess member 15088 function. 15089 (pass_waccess::execute): Adjust to name changes. 15090 * gimple-ssa-warn-access.h (check_memop_access): Remove. 15091 * pointer-query.cc (access_ref::phi): Handle null pointer. 15092 (access_ref::inform_access): Same. 15093 (pointer_query::put_ref): Modify a cached value, not a copy of it. 15094 (pointer_query::dump): New function. 15095 (compute_objsize_r): Avoid overwriting access_ref::bndrng. Cache 15096 more results. 15097 * pointer-query.h (pointer_query::dump): Declare. 15098 * tree-ssa-strlen.c (get_range): Simplify. Use function query. 15099 (dump_strlen_info): Use function query. 15100 (printf_strlen_execute): Factor code out into pointer_query::put_ref. 15101 151022021-09-01 Thomas Schwinge <thomas@codesourcery.com> 15103 15104 * tree.c (walk_tree_1) <OMP_CLAUSE>: Simplify. 15105 151062021-09-01 Iain Sandoe <iain@sandoe.co.uk> 15107 15108 * doc/extend.texi: Document unavailable attribute. 15109 * print-tree.c (print_node): Handle unavailable attribute. 15110 * tree-core.h (struct tree_base): Add a bit to carry unavailability. 15111 * tree.c (error_unavailable_use): New. 15112 * tree.h (TREE_UNAVAILABLE): New. 15113 (error_unavailable_use): New. 15114 151152021-09-01 Jakub Jelinek <jakub@redhat.com> 15116 15117 PR tree-optimization/102124 15118 * tree-vect-patterns.c (vect_recog_widen_op_pattern): For ORIG_CODE 15119 MINUS_EXPR, if itype is unsigned with smaller precision than type, 15120 add an extra cast to signed variant of itype to ensure sign-extension. 15121 151222021-09-01 Martin Liska <mliska@suse.cz> 15123 15124 * graph.c (draw_cfg_node_succ_edges): Do not color fallthru 15125 edges and rather use colors for TRUE and FALSE edges. 15126 151272021-09-01 Richard Biener <rguenther@suse.de> 15128 15129 PR tree-optimization/93491 15130 * tree-ssa-pre.c (compute_avail): Set BB_MAY_NOTRETURN 15131 after processing the stmt itself. Do not consider 15132 pure functions possibly not returning. Properly avoid 15133 adding possibly trapping calls to EXP_GEN when there's 15134 a preceeding possibly not returning call. 15135 * tree-ssa-sccvn.c (vn_reference_may_trap): Conservatively 15136 not handle calls. 15137 151382021-09-01 Richard Biener <rguenther@suse.de> 15139 15140 PR tree-optimization/102139 15141 * tree-vectorizer.h (vec_base_alignments): Adjust hash-map 15142 type to record a std::pair of the stmt-info and the innermost 15143 loop behavior. 15144 (dr_vec_info::group): New member. 15145 * tree-vect-data-refs.c (vect_record_base_alignment): Adjust. 15146 (vect_compute_data_ref_alignment): Verify the recorded 15147 base alignment can be used. 15148 (data_ref_pair): Remove. 15149 (dr_group_sort_cmp): Adjust. 15150 (vect_analyze_data_ref_accesses): Store the group-ID in the 15151 dr_vec_info and operate on a vector of dr_vec_infos. 15152 151532021-09-01 YunQiang Su <yunqiang.su@cipunited.com> 15154 15155 * read-md.c (md_reader::handle_enum): support value assignation. 15156 * doc/md.texi: record define_c_enum value assignation support. 15157 151582021-09-01 Jakub Jelinek <jakub@redhat.com> 15159 15160 PR tree-optimization/102141 15161 * gimple-ssa-store-merging.c (bswap_view_convert): Add BEFORE 15162 argument. If false, emit stmts after gsi instead of before, and 15163 with GSI_NEW_STMT. 15164 (bswap_replace): Adjust callers. When converting output of bswap, 15165 emit VIEW_CONVERT prepratation stmts after a copy of gsi instead 15166 of before it. 15167 151682021-09-01 liuhongt <hongtao.liu@intel.com> 15169 15170 * emit-rtl.c (validate_subreg): Get rid of all float-int 15171 special cases. 15172 151732021-09-01 liuhongt <hongtao.liu@intel.com> 15174 15175 Revert: 15176 2021-08-30 liuhongt <hongtao.liu@intel.com> 15177 15178 * expmed.c (extract_bit_field_1): Make sure we're playing with 15179 integral modes before call extract_integral_bit_field. 15180 (extract_integral_bit_field): Add a parameter of type 15181 scalar_int_mode which corresponds to of tmode. 15182 And call extract_and_convert_fixed_bit_field instead of 15183 extract_fixed_bit_field and convert_extracted_bit_field. 15184 (extract_and_convert_fixed_bit_field): New function, it's a 15185 combination of extract_fixed_bit_field and 15186 convert_extracted_bit_field. 15187 151882021-08-31 Thomas Schwinge <thomas@codesourcery.com> 15189 15190 * tree.c (walk_tree_1) <OMP_CLAUSE_TILE>: Handle three operands. 15191 151922021-08-31 Thomas Schwinge <thomas@codesourcery.com> 15193 15194 * omp-general.h (omp_is_reference): Rename to... 15195 (omp_privatize_by_reference): ... this. Adjust all users... 15196 * omp-general.c: ... here, ... 15197 * gimplify.c: ... here, ... 15198 * omp-expand.c: ... here, ... 15199 * omp-low.c: ... here. 15200 152012021-08-31 Martin Sebor <msebor@redhat.com> 15202 15203 * gimple-ssa-warn-access.cc (maybe_warn_alloc_args_overflow): Test 15204 pointer element for equality to zero, not that of the cotaining 15205 array. 15206 152072021-08-31 Martin Sebor <msebor@redhat.com> 15208 15209 * gcc-rich-location.h (gcc_rich_location): Make ctor explicit. 15210 152112021-08-31 Martin Sebor <msebor@redhat.com> 15212 15213 * function.h (function): Add comments. 15214 (get_range_query): Same. Add attribute returns nonnull. 15215 152162021-08-31 Roger Sayle <roger@nextmovesoftware.com> 15217 15218 * expr.c (convert_modes): Don't use subreg_promoted_mode on a 15219 SUBREG if it can't be guaranteed to a SUBREG_PROMOTED_VAR_P set. 15220 Instead use the standard (safer) is_a <scalar_int_mode> idiom. 15221 152222021-08-31 Jeff Law <jlaw@localhost.localdomain> 15223 15224 * config.gcc (cris-*-elf, cris-*-none): Remove dbxelf.h from 15225 tm_file. 15226 (m32r-*-elf, m32rle-*-elf, m32r-*-linux): Likewise. 15227 (mn10300-*-*, am33_2.0-*-linux*): Likewise. 15228 (xtensa*-*-elf, xtensa*-*-linux, xtensa*-*-uclinux): Likewise. 15229 (m32c-*-elf*, m32c-*-rtems*): Likewise. 15230 * config/cris/cris.h (DBX_NO_XREFS): Remove. 15231 (DBX_CONTIN_LENGTH, DBX_CONTIN_CHAR): Likewise. 15232 * config/m32r/m32r.h (DBXOUT_SOURCE_LINE): Likewise. 15233 (DBX_DEBUGGING_INFO, DBX_CONTIN_LENGTH): Likewise. 15234 * config/mn10300/mn10300.h (DEFAULT_GDB_EXTENSIONS): Likewise. 15235 * config/mn10300/linux.h (DBX_REGISTER_NAMES): Likewise. 15236 152372021-08-31 Marcel Vollweiler <marcel@codesourcery.com> 15238 15239 * gimplify.c (gimplify_scan_omp_clauses): Error handling. 'ancestor' only 15240 allowed on target constructs and only with particular other clauses. 15241 * omp-expand.c (expand_omp_target): Output of 'sorry, not supported' if 15242 'ancestor' is used. 15243 * omp-low.c (check_omp_nesting_restrictions): Error handling. No nested OpenMP 15244 structs when 'ancestor' is used. 15245 (scan_omp_1_stmt): No usage of OpenMP runtime routines in a target region when 15246 'ancestor' is used. 15247 * tree-pretty-print.c (dump_omp_clause): Append 'ancestor'. 15248 * tree.h (OMP_CLAUSE_DEVICE_ANCESTOR): Define macro. 15249 152502021-08-31 Roger Sayle <roger@nextmovesoftware.com> 15251 15252 * expr.c (convert_modes): Preserve SUBREG_PROMOTED_VAR_P when 15253 creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P 15254 subreg. 15255 * simplify-rtx.c (simplify_unary_operation_1) [SIGN_EXTEND]: 15256 Likewise, preserve SUBREG_PROMOTED_VAR_P when creating a (wider) 15257 partial subreg from a SUBREG_PROMOTED_VAR_P subreg. Generate 15258 SIGN_EXTEND of the SUBREG_REG when a subreg would be paradoxical. 15259 [ZERO_EXTEND]: Likewise, preserve SUBREG_PROMOTED_VAR_P when 15260 creating a (wider) partial subreg from a SUBREG_PROMOTED_VAR_P 15261 subreg. Generate ZERO_EXTEND of the SUBREG_REG when a subreg 15262 would be paradoxical. 15263 152642021-08-31 Roger Sayle <roger@nextmovesoftware.com> 15265 15266 * combine.c (combine_simplify_rtx): Avoid converting an explicit 15267 TRUNCATE into a lowpart SUBREG on !TRULY_NOOP_TRUNCATION targets. 15268 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 15269 152702021-08-31 Richard Biener <rguenther@suse.de> 15271 15272 PR tree-optimization/102142 15273 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Fix 15274 condition under which to unset the visited flag. 15275 152762021-08-31 Richard Biener <rguenther@suse.de> 15277 15278 PR middle-end/102129 15279 * tree-ssa-ter.c (find_replaceable_in_bb): Do not move 15280 possibly trapping expressions across calls. 15281 152822021-08-31 Jakub Jelinek <jakub@redhat.com> 15283 15284 PR tree-optimization/102134 15285 * tree-ssa-ccp.c (bit_value_binop) <case RSHIFT_EXPR>: If sgn is 15286 UNSIGNED and r1val | r1mask has MSB set, ensure lzcount doesn't 15287 become negative. 15288 152892021-08-31 Andrew Pinski <apinski@marvell.com> 15290 15291 PR driver/79181 15292 * collect-utils.c (setup_signals): New declaration. 15293 * collect-utils.h (setup_signals): New function. 15294 * collect2.c (handler): Delete. 15295 (main): Instead of manually setting up the signals, 15296 just call setup_signals. 15297 * lto-wrapper.c (main): Likewise. 15298 152992021-08-31 Andrew Pinski <apinski@marvell.com> 15300 15301 PR target/56337 15302 * config/i386/i386-protos.h (x86_output_aligned_bss): 15303 Change align argument to unsigned type. 15304 (x86_elf_aligned_decl_common): Likewise. 15305 * config/i386/i386.c (x86_elf_aligned_decl_common): Likewise. 15306 (x86_output_aligned_bss): Likewise. 15307 153082021-08-31 YunQiang Su <yunqiang.su@cipunited.com> 15309 15310 * config/mips/mips.c (mips_module_isa_name): New. 15311 mips_file_start: add .module mipsREV to all asm output 15312 153132021-08-31 YunQiang Su <yunqiang.su@cipunited.com> 15314 15315 * config/mips/mips.h (struct mips_cpu_info): define enum mips_isa; 15316 use enum instead of int for 'isa' member. 15317 * config.gcc, config/mips/mips.c, config/mips/mips-cpus.def, 15318 config/mips/netbsd.h: replace hardcoded numbers with enum. 15319 153202021-08-31 liuhongt <hongtao.liu@intel.com> 15321 15322 * config/i386/sse.md (*<avx512>_ucmp<mode>3_1): Change from 15323 define_split to define_insn_and_split. 15324 (*avx2_eq<mode>3): Removed. 15325 (<avx512>_eq<mode>3<mask_scalar_merge_name>): Adjust pattern 15326 (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): Rename to .. 15327 (*<avx512>_eq<mode>3<mask_scalar_merge_name>_1): .. this, and 15328 adjust pattern. 15329 (*avx2_gt<mode>3): Removed. 15330 (<avx512>_gt<mode>3<mask_scalar_merge_name>): Change from 15331 define_insn to define_expand, and adjust pattern. 15332 (UNSPEC_MASKED_EQ, UNSPEC_MASKED_GT): Removed. 15333 153342021-08-30 David Malcolm <dmalcolm@redhat.com> 15335 15336 PR analyzer/99260 15337 * Makefile.in (ANALYZER_OBJS): Add analyzer/call-info.o. 15338 153392021-08-30 Jason Merrill <jason@redhat.com> 15340 15341 * doc/invoke.texi: Document -Wmissing-requires. 15342 153432021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> 15344 15345 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Remove 15346 TARGET_EXTRA_BUILTINS guard. 15347 153482021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> 15349 15350 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Change 15351 initialization of V2DI_type_node and unsigned_V2DI_type_node. 15352 153532021-08-30 Bill Schmidt <wschmidt@linux.ibm.com> 15354 15355 * config/rs6000/darwin.h (SUBTARGET_INIT_BUILTINS): Use the new 15356 decl when new_builtins_are_live. 15357 * config/rs6000/rs6000-builtin-new.def (__builtin_cfstring): New 15358 built-in. 15359 153602021-08-30 Pat Haugen <pthaugen@linux.ibm.com> 15361 15362 * config/rs6000/rs6000-cpus.def (ISA_3_1_MASKS_SERVER): Add 15363 OPTION_MASK_P10_FUSION_2STORE. 15364 (POWERPC_MASKS): Likewise. 15365 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable 15366 store fusion for Power10. 15367 (is_fusable_store): New. 15368 (power10_sched_reorder): Likewise. 15369 (rs6000_sched_reorder): Do Power10 specific reordering. 15370 (rs6000_sched_reorder2): Likewise. 15371 * config/rs6000/rs6000.opt: Add new option. 15372 153732021-08-30 Richard Biener <rguenther@suse.de> 15374 15375 PR tree-optimization/102128 15376 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): 15377 Move scanning for if-converted scalar code to the caller 15378 and instead delay clearing the visited flag for profitable 15379 subgraphs. 15380 (vect_slp_region): Cost all subgraphs before scheduling. 15381 For if-converted BB vectorization scan for scalar COND_EXPRs 15382 and do not vectorize if any found and the cost model is 15383 very-cheap. 15384 153852021-08-30 Richard Biener <rguenther@suse.de> 15386 15387 * common.opt (fexceptions): Mark 15388 EnabledBy(fnon-call-exceptions). 15389 * doc/invoke.texi (fnon-call-exceptions): Document this 15390 enables -fexceptions. 15391 153922021-08-30 Sebastian Huber <sebastian.huber@embedded-brains.de> 15393 15394 * tsystem.h (abort): Define abort() if inhibit_libc is defined and it 15395 is not already defined. 15396 153972021-08-30 liuhongt <hongtao.liu@intel.com> 15398 15399 * expmed.c (extract_bit_field_1): Make sure we're playing with 15400 integral modes before call extract_integral_bit_field. 15401 (extract_integral_bit_field): Add a parameter of type 15402 scalar_int_mode which corresponds to of tmode. 15403 And call extract_and_convert_fixed_bit_field instead of 15404 extract_fixed_bit_field and convert_extracted_bit_field. 15405 (extract_and_convert_fixed_bit_field): New function, it's a 15406 combination of extract_fixed_bit_field and 15407 convert_extracted_bit_field. 15408 154092021-08-29 Iain Sandoe <iain@sandoe.co.uk> 15410 15411 * config/darwin.c (darwin_libc_has_function): Do not run 15412 the checks for x86 or modern Darwin. Make sure that there 15413 is a value set for darwin_macosx_version_min before testing. 15414 154152021-08-29 Iain Sandoe <iain@sandoe.co.uk> 15416 15417 * config/i386/darwin.h (CLEAR_INSN_CACHE): New. 15418 154192021-08-28 Jan Hubicka <hubicka@ucw.cz> 15420 15421 * ipa-modref-tree.h (modref_access_node::merge): Break out 15422 logic combining offsets and logic merging ranges to ... 15423 (modref_access_node::combined_offsets): ... here 15424 (modref_access_node::update2): ... here 15425 (modref_access_node::closer_pair_p): New member function. 15426 (modref_access_node::forced_merge): New member function. 15427 (modre_ref_node::insert): Do merging when table is full. 15428 154292021-08-28 YunQiang Su <yunqiang.su@cipunited.com> 15430 15431 PR target/102089 15432 * config.gcc: MIPS: use N64 ABI by default if the triple end 15433 with -gnuabi64, which is used by Debian since 2013. 15434 154352021-08-28 Alexandre Oliva <oliva@adacore.com> 15436 15437 * ipa-modref.c (analyze_function): Skip debug stmts. 15438 * tree-inline.c (estimate_num_insn): Consider builtins even 15439 without a cgraph_node. 15440 154412021-08-27 Jeff Law <jlaw@localhost.localdomain> 15442 15443 * config/h8300/bitfield.md (cstore<mode>4): Remove expander. 15444 * config/h8300/h8300.c (h8300_expand_branch): Remove function. 15445 * config/h8300/h8300-protos.h (h8300_expadn_branch): Remove prototype. 15446 * config/h8300/h8300.md (eqne): New code iterator. 15447 (geultu, geultu_to_c): Similarly. 15448 * config/h8300/testcompare.md (cstore<mode>4): Dummy expander. 15449 (store_c_<mode>, store_c_i_<mode>): New define_insn_and_splits 15450 (cmp<mode>_c): New pattern 15451 154522021-08-27 Jeff Law <jlaw@localhost.localdomain> 15453 15454 * tree-ssa-dom.c (reduce_vector_comparison_to_scalar_comparison): New 15455 function. 15456 (dom_opt_dom_walker::optimize_stmt): Use it. 15457 154582021-08-27 Iain Sandoe <iain@sandoe.co.uk> 15459 15460 * config/darwin.c (finalize_ctors): Add a section-start linker- 15461 visible symbol. 15462 (finalize_dtors): Likewise. 15463 * config/darwin.h (MIN_LD64_INIT_TERM_START_LABELS): New. 15464 154652021-08-27 Bill Schmidt <wschmidt@linux.ibm.com> 15466 15467 * config/rs6000/rs6000-call.c (rs6000-builtins.h): New #include. 15468 (rs6000_init_builtins): Call rs6000_init_generated_builtins. Skip the 15469 old initialization logic when new builtins are enabled. 15470 * config/rs6000/rs6000-gen-builtins.c (write_decls): Rename 15471 rs6000_autoinit_builtins to rs6000_init_generated_builtins. 15472 (write_init_file): Likewise. 15473 154742021-08-27 Iain Sandoe <iain@sandoe.co.uk> 15475 15476 * configure.ac (darwin2[[0-9]]* | darwin19*): Alter use of 15477 gcc_GAS_CHECK_FEATURE to remove an extraneous parameter. 15478 (amdgcn-* | gcn-*) Likewise. 15479 154802021-08-27 Anthony Sharp <anthonysharp15@gmail.com> 15481 15482 * symbol-summary.h: Added missing template keyword. 15483 154842021-08-27 Richard Biener <rguenther@suse.de> 15485 15486 PR tree-optimization/45178 15487 * tree-ssa-dce.c (find_obviously_necessary_stmts): For 15488 infinite loops without exit do not mark control dependent 15489 edges of the latch necessary. 15490 154912021-08-27 konglin1 <lingling.kong@intel.com> 15492 15493 PR target/101472 15494 * config/i386/sse.md: (<avx512>scattersi<mode>): Add mask operand to 15495 UNSPEC_VSIBADDR. 15496 (<avx512>scattersi<mode>): Likewise. 15497 (*avx512f_scattersi<VI48F:mode>): Merge mask operand to set_dest. 15498 (*avx512f_scatterdi<VI48F:mode>): Likewise 15499 155002021-08-27 Kewen Lin <linkw@linux.ibm.com> 15501 15502 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function): Add 15503 support for built-in functions MISC_BUILTIN_DIVWE, MISC_BUILTIN_DIVWEU, 15504 MISC_BUILTIN_DIVDE, MISC_BUILTIN_DIVDEU, P10_BUILTIN_CFUGED, 15505 P10_BUILTIN_CNTLZDM, P10_BUILTIN_CNTTZDM, P10_BUILTIN_PDEPD and 15506 P10_BUILTIN_PEXTD on Power10. 15507 155082021-08-27 Kewen Lin <linkw@linux.ibm.com> 15509 15510 * config/rs6000/rs6000-call.c (builtin_function_type): Add unsigned 15511 signedness for some Power10 bifs. 15512 155132021-08-27 David Edelsohn <dje.gcc@gmail.com> 15514 15515 PR target/102068 15516 * config/rs6000/rs6000.c (rs6000_adjust_field_align): Use 15517 computed alignment if the entire struct has attribute packed. 15518 155192021-08-27 liuhongt <hongtao.liu@intel.com> 15520 15521 PR target/98167 15522 PR target/43147 15523 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold 15524 IX86_BUILTIN_SHUFPD512, IX86_BUILTIN_SHUFPS512, 15525 IX86_BUILTIN_SHUFPD256��� IX86_BUILTIN_SHUFPS��� 15526 IX86_BUILTIN_SHUFPS256. 15527 (ix86_masked_all_ones): New function. 15528 155292021-08-26 Uro�� Bizjak <ubizjak@gmail.com> 15530 15531 * config/i386/i386.md (*btr<mode>_1): Call force_reg unconditionally. 15532 (conditional moves with memory inputs splitters): Ditto. 15533 * config/i386/sse.md (one_cmpl<mode>2): Simplify. 15534 155352021-08-26 Jan Hubicka <hubicka@ucw.cz> 15536 15537 * ipa-modref-tree.h (modref_access_node::try_merge_with): Restart 15538 search after merging. 15539 155402021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> 15541 15542 * config/rs6000/rs6000-overload.def: Add remaining overloads. 15543 155442021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> 15545 15546 * config/rs6000/rs6000-builtin-new.def: Add cell stanza. 15547 155482021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> 15549 15550 * config/rs6000/rs6000-builtin-new.def: Add ieee128-hw, dfp, 15551 crypto, and htm stanzas. 15552 155532021-08-26 Bill Schmidt <wschmidt@linux.ibm.com> 15554 15555 * config/rs6000/rs6000-builtin-new.def: Add mma stanza. 15556 155572021-08-26 Martin Sebor <msebor@redhat.com> 15558 15559 * tree-ssa-uninit.c (warn_uninit): Refactor and simplify. 15560 (warn_uninit_phi_uses): Remove argument from calls to warn_uninit. 15561 (warn_uninitialized_vars): Same. Reduce visibility of locals. 15562 (warn_uninitialized_phi): Same. 15563 155642021-08-26 Roger Sayle <roger@nextmovesoftware.com> 15565 15566 * tree-ssa-ccp.c (get_individual_bits): Helper function to 15567 extract the individual bits from a widest_int constant (mask). 15568 (gray_code_bit_flips): New read-only table for effiently 15569 enumerating permutations/combinations of bits. 15570 (bit_value_binop) [LROTATE_EXPR, RROTATE_EXPR]: Handle rotates 15571 by unknown counts that are guaranteed less than the target 15572 precision and four or fewer unknown bits by enumeration. 15573 [LSHIFT_EXPR, RSHIFT_EXPR]: Likewise, also handle shifts by 15574 enumeration under the same conditions. Handle remaining 15575 shifts as a mask based upon the minimum possible shift value. 15576 155772021-08-26 Roger Sayle <roger@nextmovesoftware.com> 15578 Richard Biener <rguenther@suse.de> 15579 15580 * match.pd (shift transformations): Remove a redundant 15581 !POINTER_TYPE_P check. 15582 155832021-08-26 Uro�� Bizjak <ubizjak@gmail.com> 15584 15585 PR target/102057 15586 * config/i386/i386.md (cmove reg-reg move elimination peephole2s): 15587 Set all_regs to true in the call to replace_rtx. 15588 155892021-08-26 Jan Hubicka <hubicka@ucw.cz> 15590 15591 * ipa-modref-tree.c (test_insert_search_collapse): Update test. 15592 * ipa-modref-tree.h (modref_base_node::insert): Be smarter when 15593 hiting --param modref-max-refs limit. 15594 (modref_tree:insert_base): Be smarter when hitting 15595 --param modref-max-bases limit. Add new parameter REF. 15596 (modref_tree:insert): Update. 15597 (modref_tree:merge): Update. 15598 * ipa-modref.c (read_modref_records): Update. 15599 156002021-08-26 Jan Hubicka <hubicka@ucw.cz> 15601 15602 * params.opt: (modref-max-adjustments): Add full stop. 15603 156042021-08-26 Jan Hubicka <hubicka@ucw.cz> 15605 15606 * ipa-modref-tree.h (modref_ref_node::verify): New member 15607 functoin. 15608 (modref_ref_node::insert): Use it. 15609 (modref_ref_node::try_mere_with): Fix off by one error. 15610 156112021-08-26 Martin Liska <mliska@suse.cz> 15612 Stefan Kneifel <stefan.kneifel@bluewin.ch> 15613 15614 * cgraph.h (create_version_clone_with_body): Add new parameter. 15615 * cgraphclones.c: Likewise. 15616 * multiple_target.c (create_dispatcher_calls): Do not use 15617 numbered suffixes. 15618 (create_target_clone): Likewise here. 15619 156202021-08-26 Jonathan Yong <10walls@gmail.com> 15621 15622 * doc/extend.texi: Add note about reserved priorities 15623 to the constructor attribute. 15624 156252021-08-25 Martin Sebor <msebor@redhat.com> 15626 15627 * gimple-range-cache.cc (ssa_global_cache::dump): Avoid printing 15628 range table header alone. 15629 * gimple-range.cc (gimple_ranger::export_global_ranges): Same. 15630 156312021-08-25 Jan Hubicka <hubicka@ucw.cz> 15632 15633 * doc/invoke.texi: Document --param modref-max-adjustments. 15634 * ipa-modref-tree.c (test_insert_search_collapse): Update. 15635 (test_merge): Update. 15636 * ipa-modref-tree.h (struct modref_access_node): Add adjustments; 15637 (modref_access_node::operator==): Fix handling of access ranges. 15638 (modref_access_node::contains): Constify parameter; handle also 15639 mismatched parm offsets. 15640 (modref_access_node::update): New function. 15641 (modref_access_node::merge): New function. 15642 (unspecified_modref_access_node): Update constructor. 15643 (modref_ref_node::insert_access): Add record_adjustments parameter; 15644 handle merging. 15645 (modref_ref_node::try_merge_with): New private function. 15646 (modref_tree::insert): New record_adjustments parameter. 15647 (modref_tree::merge): New record_adjustments parameter. 15648 (modref_tree::copy_from): Update. 15649 * ipa-modref.c (dump_access): Dump adjustments field. 15650 (get_access): Update constructor. 15651 (record_access): Update call of insert. 15652 (record_access_lto): Update call of insert. 15653 (merge_call_side_effects): Add record_adjustments parameter. 15654 (get_access_for_fnspec): Update. 15655 (process_fnspec): Update. 15656 (analyze_call): Update. 15657 (analyze_function): Update. 15658 (read_modref_records): Update. 15659 (ipa_merge_modref_summary_after_inlining): Update. 15660 (propagate_unknown_call): Update. 15661 (modref_propagate_in_scc): Update. 15662 * params.opt (param-max-modref-adjustments=): New. 15663 156642021-08-25 Michael Meissner <meissner@linux.ibm.com> 15665 15666 * config/rs6000/vsx.md (UNSPEC_XXSPLTIDP): Rename from 15667 UNSPEC_XXSPLTID. 15668 (xxspltiw_v4si): Use vecperm type attribute. 15669 (xxspltiw_v4si_inst): Use vecperm type attribute. 15670 (xxspltiw_v4sf_inst): Likewise. 15671 (xxspltidp_v2df): Use vecperm type attribute. Use 15672 UNSPEC_XXSPLTIDP instead of UNSPEC_XXSPLTID. 15673 (xxspltidp_v2df_inst): Likewise. 15674 (xxsplti32dx_v4si): Use vecperm type attribute. 15675 (xxsplti32dx_v4si_inst): Likewise. 15676 (xxsplti32dx_v4sf_inst): Likewise. 15677 (xxblend_<mode>): Likewise. 15678 (xxpermx): Likewise. 15679 (xxpermx_inst): Likewise. 15680 (xxeval): Likewise. 15681 156822021-08-25 Lewis Hyatt <lhyatt@gmail.com> 15683 15684 PR other/93067 15685 * coretypes.h (typedef diagnostic_input_charset_callback): Declare. 15686 * diagnostic.c (diagnostic_initialize_input_context): New function. 15687 * diagnostic.h (diagnostic_initialize_input_context): Declare. 15688 * input.c (default_charset_callback): New function. 15689 (file_cache::initialize_input_context): New function. 15690 (file_cache_slot::create): Added ability to convert the input 15691 according to the input context. 15692 (file_cache::file_cache): Initialize the new input context. 15693 (class file_cache_slot): Added new m_alloc_offset member. 15694 (file_cache_slot::file_cache_slot): Initialize the new member. 15695 (file_cache_slot::~file_cache_slot): Handle potentially offset buffer. 15696 (file_cache_slot::maybe_grow): Likewise. 15697 (file_cache_slot::needs_read_p): Handle NULL fp, which is now possible. 15698 (file_cache_slot::get_next_line): Likewise. 15699 * input.h (class file_cache): Added input context member. 15700 157012021-08-25 Richard Biener <rguenther@suse.de> 15702 15703 PR tree-optimization/102046 15704 * tree-vect-slp.c (vect_build_slp_tree_2): Conservatively 15705 update ->any_pattern when swapping operands. 15706 157072021-08-25 Hongyu Wang <hongyu.wang@intel.com> 15708 15709 PR target/101716 15710 * config/i386/i386.c (ix86_live_on_entry): Adjust comment. 15711 (ix86_decompose_address): Remove retval check for ASHIFT, 15712 allow non-canonical zero extend if AND mask covers ASHIFT 15713 count. 15714 (ix86_legitimate_address_p): Adjust condition for decompose. 15715 (ix86_rtx_costs): Adjust cost for lea with non-canonical 15716 zero-extend. 15717 Co-Authored by: Uros Bizjak <ubizjak@gmail.com> 15718 157192021-08-25 Jiufu Guo <guojiufu@linux.ibm.com> 15720 15721 PR tree-optimization/101145 15722 * tree-ssa-loop-niter.c (number_of_iterations_until_wrap): 15723 New function. 15724 (number_of_iterations_lt): Invoke above function. 15725 (adjust_cond_for_loop_until_wrap): 15726 Merge to number_of_iterations_until_wrap. 15727 (number_of_iterations_cond): Update invokes for 15728 adjust_cond_for_loop_until_wrap and number_of_iterations_lt. 15729 157302021-08-25 konglin1 <lingling.kong@intel.com> 15731 15732 PR target/101471 15733 * config/i386/avx512dqintrin.h (_mm512_fpclass_ps_mask): Fix 15734 macro define in O0. 15735 (_mm512_mask_fpclass_ps_mask): Ditto. 15736 157372021-08-25 Kewen Lin <linkw@linux.ibm.com> 15738 15739 * config/rs6000/altivec.md (vec_unpacku_hi_v16qi): Remove. 15740 (vec_unpacku_hi_v8hi): Likewise. 15741 (vec_unpacku_lo_v16qi): Likewise. 15742 (vec_unpacku_lo_v8hi): Likewise. 15743 (vec_unpacku_hi_<VP_small_lc>): New define_expand. 15744 (vec_unpacku_lo_<VP_small_lc>): Likewise. 15745 157462021-08-24 David Edelsohn <dje.gcc@gmail.com> 15747 15748 * config/rs6000/aix.h (SYSTEM_IMPLICIT_EXTERN_C): Delete. 15749 * config/rs6000/aix71.h (SYSTEM_IMPLICIT_EXTERN_C): Define. 15750 * config/rs6000/aix72.h (SYSTEM_IMPLICIT_EXTERN_C): Define. 15751 * config/rs6000/aix73.h (TARGET_AIX_VERSION): Increase to 73. 15752 157532021-08-24 Roger Sayle <roger@nextmovesoftware.com> 15754 15755 PR middle-end/102031 15756 * simplify-rtx.c (simplify_truncation): When comparing precisions 15757 use "subreg_prec" variable, not "subreg_mode". 15758 157592021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> 15760 15761 * config/rs6000/rs6000-builtin-new.def: Add power10 and power10-64 15762 stanzas. 15763 157642021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> 15765 15766 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Initialize 15767 various pointer type nodes. 15768 * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add enum 15769 values for various pointer types. 15770 (ptr_V16QI_type_node): New macro. 15771 (ptr_V1TI_type_node): New macro. 15772 (ptr_V2DI_type_node): New macro. 15773 (ptr_V2DF_type_node): New macro. 15774 (ptr_V4SI_type_node): New macro. 15775 (ptr_V4SF_type_node): New macro. 15776 (ptr_V8HI_type_node): New macro. 15777 (ptr_unsigned_V16QI_type_node): New macro. 15778 (ptr_unsigned_V1TI_type_node): New macro. 15779 (ptr_unsigned_V8HI_type_node): New macro. 15780 (ptr_unsigned_V4SI_type_node): New macro. 15781 (ptr_unsigned_V2DI_type_node): New macro. 15782 (ptr_bool_V16QI_type_node): New macro. 15783 (ptr_bool_V8HI_type_node): New macro. 15784 (ptr_bool_V4SI_type_node): New macro. 15785 (ptr_bool_V2DI_type_node): New macro. 15786 (ptr_bool_V1TI_type_node): New macro. 15787 (ptr_pixel_type_node): New macro. 15788 (ptr_intQI_type_node): New macro. 15789 (ptr_uintQI_type_node): New macro. 15790 (ptr_intHI_type_node): New macro. 15791 (ptr_uintHI_type_node): New macro. 15792 (ptr_intSI_type_node): New macro. 15793 (ptr_uintSI_type_node): New macro. 15794 (ptr_intDI_type_node): New macro. 15795 (ptr_uintDI_type_node): New macro. 15796 (ptr_intTI_type_node): New macro. 15797 (ptr_uintTI_type_node): New macro. 15798 (ptr_long_integer_type_node): New macro. 15799 (ptr_long_unsigned_type_node): New macro. 15800 (ptr_float_type_node): New macro. 15801 (ptr_double_type_node): New macro. 15802 (ptr_long_double_type_node): New macro. 15803 (ptr_dfloat64_type_node): New macro. 15804 (ptr_dfloat128_type_node): New macro. 15805 (ptr_ieee128_type_node): New macro. 15806 (ptr_ibm128_type_node): New macro. 15807 (ptr_vector_pair_type_node): New macro. 15808 (ptr_vector_quad_type_node): New macro. 15809 (ptr_long_long_integer_type_node): New macro. 15810 (ptr_long_long_unsigned_type_node): New macro. 15811 158122021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> 15813 15814 * config/rs6000/rs6000-builtin-new.def: Add power9-vector, power9, 15815 and power9-64 stanzas. 15816 158172021-08-24 Roger Sayle <roger@nextmovesoftware.com> 15818 Tom de Vries <tdevries@suse.de> 15819 15820 * config.gcc (nvptx-*-*): Define {c,c++}_target_objs. 15821 * config/nvptx/nvptx-protos.h (nvptx_cpu_cpp_builtins): Prototype. 15822 * config/nvptx/nvptx.h (TARGET_CPU_CPP_BUILTINS): Implement with 15823 a call to the new nvptx_cpu_cpp_builtins function in nvptx-c.c. 15824 * config/nvptx/t-nvptx (nvptx-c.o): New rule. 15825 * config/nvptx/nvptx-c.c: New source file. 15826 (nvptx_cpu_cpp_builtins): Move implementation here. 15827 158282021-08-24 Martin Sebor <msebor@redhat.com> 15829 15830 PR middle-end/101600 15831 PR middle-end/101977 15832 * gimple-ssa-warn-access.cc (maybe_warn_for_bound): Tighten up 15833 the phrasing of a warning. 15834 (check_access): Use the remaining size after subtracting any offset 15835 rather than the whole object size. 15836 * pointer-query.cc (access_ref::get_ref): Clear BASE0 flag if it's 15837 clear for any nonnull PHI argument. 15838 (compute_objsize): Clear argument. 15839 158402021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> 15841 15842 * config/rs6000/rs6000-builtin-new.def: Add power8-vector stanza. 15843 158442021-08-24 Bill Schmidt <wschmidt@linux.ibm.com> 15845 15846 * config/rs6000/rs6000-builtin-new.def: Add power7 and power7-64 15847 stanzas. 15848 158492021-08-24 Andrew MacLeod <amacleod@redhat.com> 15850 15851 * value-relation.cc (rr_transitive_table): New. 15852 (relation_transitive): New. 15853 (value_relation::swap): Remove. 15854 (value_relation::apply_transitive): New. 15855 (relation_oracle::relation_oracle): Allocate a new tmp bitmap. 15856 (relation_oracle::register_relation): Call register_transitives. 15857 (relation_oracle::register_transitives): New. 15858 * value-relation.h (relation_oracle): Add new temporary bitmap and 15859 methods. 15860 158612021-08-24 H.J. Lu <hjl.tools@gmail.com> 15862 15863 PR target/102021 15864 * config/i386/i386-expand.c (ix86_expand_vector_move): Broadcast 15865 from integer to a pseudo vector register. 15866 158672021-08-24 Richard Biener <rguenther@suse.de> 15868 15869 PR tree-optimization/100089 15870 * tree-vectorizer.h (vect_slp_bb): Rename to ... 15871 (vect_slp_if_converted_bb): ... this and get the original 15872 loop as new argument. 15873 * tree-vectorizer.c (try_vectorize_loop_1): Revert previous fix, 15874 pass original loop to vect_slp_if_converted_bb. 15875 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): 15876 If orig_loop was passed scan the not vectorized stmts 15877 for COND_EXPRs and force not profitable if found. 15878 (vect_slp_region): Pass down all SLP instances to costing 15879 if orig_loop was specified. 15880 (vect_slp_bbs): Pass through orig_loop. 15881 (vect_slp_bb): Rename to ... 15882 (vect_slp_if_converted_bb): ... this and get the original 15883 loop as new argument. 15884 (vect_slp_function): Adjust. 15885 158862021-08-24 Richard Earnshaw <rearnsha@arm.com> 15887 15888 PR target/102035 15889 * config/arm/arm.md (attribute arch): Add fix_vlldm. 15890 (arch_enabled): Use it. 15891 * config/arm/vfp.md (lazy_store_multiple_insn): Add alternative to 15892 use when erratum mitigation is needed. 15893 158942021-08-24 Richard Earnshaw <rearnsha@arm.com> 15895 15896 PR target/102035 15897 * config/arm/arm.opt (mfix-cmse-cve-2021-35465): New option. 15898 * doc/invoke.texi (Arm Options): Document it. 15899 * config/arm/arm-cpus.in (quirk_vlldm): New feature bit. 15900 (ALL_QUIRKS): Add quirk_vlldm. 15901 (cortex-m33): Add quirk_vlldm. 15902 (cortex-m35p, cortex-m55): Likewise. 15903 * config/arm/arm.c (arm_option_override): Enable fix_vlldm if 15904 targetting an affected CPU and not explicitly controlled on 15905 the command line. 15906 159072021-08-24 Richard Earnshaw <rearnsha@arm.com> 15908 15909 * config/arm/vfp.md (lazy_store_multiple_insn): Rewrite as valid RTL. 15910 (lazy_load_multiple_insn): Likewise. 15911 159122021-08-24 liuhongt <hongtao.liu@intel.com> 15913 15914 PR target/101989 15915 * config/i386/sse.md (<avx512>_vternlog<mode><sd_maskz_name>): 15916 Enable avx512 embedded broadcast. 15917 (*<avx512>_vternlog<mode>_all): Ditto. 15918 (<avx512>_vternlog<mode>_mask): Ditto. 15919 159202021-08-24 liuhongt <hongtao.liu@intel.com> 15921 15922 PR target/101989 15923 * config/i386/i386.c (ix86_rtx_costs): Define cost for 15924 UNSPEC_VTERNLOG. 15925 * config/i386/i386.h (STRIP_UNARY): New macro. 15926 * config/i386/predicates.md (reg_or_notreg_operand): New 15927 predicate. 15928 * config/i386/sse.md (*<avx512>_vternlog<mode>_all): New define_insn. 15929 (*<avx512>_vternlog<mode>_1): New pre_reload 15930 define_insn_and_split. 15931 (*<avx512>_vternlog<mode>_2): Ditto. 15932 (*<avx512>_vternlog<mode>_3): Ditto. 15933 (any_logic1,any_logic2): New code iterator. 15934 (logic_op): New code attribute. 15935 (ternlogsuffix): Extend to VNxDF and VNxSF. 15936 159372021-08-24 Richard Biener <rguenther@suse.de> 15938 15939 * doc/invoke.texi (vect-inner-loop-cost-factor): Adjust. 15940 * params.opt (--param vect-inner-loop-cost-factor): Adjust 15941 maximum value. 15942 * tree-vect-loop.c (vect_analyze_loop_form): Initialize 15943 inner_loop_cost_factor to the minimum of the estimated number 15944 of iterations of the inner loop and vect-inner-loop-cost-factor. 15945 159462021-08-24 Roger Sayle <roger@nextmovesoftware.com> 15947 Richard Biener <rguenther@suse.de> 15948 15949 * config/i386/i386-features.c (compute_convert_gain): Provide 15950 more accurate values for CONST_INT, when optimizing for size. 15951 * config/i386/i386.c (COSTS_N_BYTES): Move definition from here... 15952 * config/i386/i386.h (COSTS_N_BYTES): to here. 15953 159542021-08-24 Roger Sayle <roger@nextmovesoftware.com> 15955 Jakub Jelinek <jakub@redhat.com> 15956 15957 PR middle-end/102029 15958 * match.pd (shift transformations): Add an additional check for 15959 !POINTER_TYPE_P in the recently added left shift transformation. 15960 159612021-08-24 liuhongt <hongtao.liu@intel.com> 15962 15963 PR tree-optimization/100089 15964 * tree-vectorizer.c (try_vectorize_loop_1): Disable slp in 15965 loop vectorizer when cost model is very-cheap. 15966 159672021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> 15968 15969 * config/rs6000/rs6000-gen-builtins.c (parse_bif_entry): Don't call 15970 asprintf, which is not available on AIX. 15971 159722021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> 15973 15974 * config.gcc (target_gtfiles): Add ./rs6000-builtins.h. 15975 * config/rs6000/t-rs6000 (EXTRA_GTYPE_DEPS): Set. 15976 159772021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> 15978 15979 * config.gcc (powerpc*-*-*): Add rs6000-builtins.o to extra_objs. 15980 * config/rs6000/rs6000-gen-builtins.c (main): Close init_file 15981 last. 15982 * config/rs6000/t-rs6000 (rs6000-gen-builtins.o): New target. 15983 (rbtree.o): Likewise. 15984 (rs6000-gen-builtins): Likewise. 15985 (rs6000-builtins.c): Likewise. 15986 (rs6000-builtins.h): Likewise. 15987 (rs6000.o): Add dependency. 15988 (EXTRA_HEADERS): Add rs6000-vecdefines.h. 15989 (rs6000-vecdefines.h): New target. 15990 (rs6000-builtins.o): Likewise. 15991 (rs6000-call.o): Add rs6000-builtins.h as a dependency. 15992 (rs6000-c.o): Likewise. 15993 159942021-08-23 Bill Schmidt <wschmidt@linux.ibm.com> 15995 15996 PR target/101830 15997 * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): 15998 Diagnose buffer overrun. 15999 (safe_inc_pos): Fix overrun detection. 16000 (match_identifier): Diagnose buffer overrun. 16001 (match_integer): Likewise. 16002 (match_to_right_bracket): Likewise. 16003 160042021-08-23 Jan Hubicka <hubicka@ucw.cz> 16005 16006 * ipa-modref-tree.h (modref_access_node::range_info_useful_p): 16007 Improve range compare. 16008 (modref_access_node::contains): New member function. 16009 (modref_access_node::search): Remove. 16010 (modref_access_node::insert): Be smarter about subaccesses. 16011 160122021-08-23 Thomas Schwinge <thomas@codesourcery.com> 16013 16014 * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa) 16015 <omp_device_arch> [ACCEL_COMPILER]: Match "intel_mic". 16016 * config/i386/t-omp-device (omp-device-properties-i386) <arch>: 16017 Add "intel_mic". 16018 160192021-08-23 Jeff Law <jlaw@localhost.localdomain> 16020 16021 * config/h8300/h8300-protos.h (h8300_expand_epilogue): Add new 16022 argument. 16023 * config/h8300/jumpcall.md (call, call_value): Restrict to 16024 !SIBLING_CALL_P cases. 16025 (subcall, sibcall_value): New patterns & expanders. 16026 * config/h8300/proepi.md (epilogue): Pass new argument to 16027 h8300_expand_epilogue. 16028 (sibcall_epilogue): New expander. 16029 * config/h8300/h8300.c (h8300_expand_epilogue): Handle sibcall 16030 epilogues too. 16031 (h8300_ok_for_sibcall_p): New function. 16032 (TARGET_FUNCTION_OK_FOR_SIBCALL): define. 16033 160342021-08-23 Roger Sayle <roger@nextmovesoftware.com> 16035 16036 * simplify-rtx.c (simplify_unary_operation_1): [TRUNCATE]: 16037 Handle case where the operand is already the desired mode. 16038 160392021-08-23 Richard Biener <rguenther@suse.de> 16040 16041 PR ipa/97565 16042 * tree-ssa-structalias.c (ipa_pta_execute): Check in_other_partition 16043 in addition to has_gimple_body. 16044 160452021-08-23 Jan Hubicka <hubicka@ucw.cz> 16046 16047 PR middle-end/101949 16048 * ipa-modref.c (analyze_ssa_name_flags): Fix merging of 16049 EAF_NOCLOBBER 16050 160512021-08-23 Martin Liska <mliska@suse.cz> 16052 16053 * doc/invoke.texi: Put the option out of -mxl-mode-app-model 16054 table. 16055 160562021-08-23 Richard Biener <rguenther@suse.de> 16057 16058 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 16059 Properly scale the inner loop cost only once. 16060 160612021-08-23 Roger Sayle <roger@nextmovesoftware.com> 16062 16063 * tree-ssa-ccp.c (bit_value_binop) [TRUNC_MOD_EXPR, TRUNC_DIV_EXPR]: 16064 Provide bounds for unsigned (and signed with non-negative operands) 16065 division and modulus. 16066 160672021-08-23 Roger Sayle <roger@nextmovesoftware.com> 16068 16069 * simplify-rtx.c (simplify_truncation): Generalize simplification 16070 of (truncate:A (subreg:B X)). 16071 (simplify_unary_operation_1) [FLOAT_TRUNCATE, FLOAT_EXTEND, 16072 SIGN_EXTEND, ZERO_EXTEND]: Handle cases where the operand 16073 already has the desired machine mode. 16074 (test_scalar_int_ops): Add tests that useless extensions and 16075 truncations are optimized away. 16076 (test_scalar_int_ext_ops): New self-test function to confirm 16077 that truncations of extensions are correctly simplified. 16078 (test_scalar_int_ext_ops2): New self-test function to check 16079 truncations of truncations, extensions of extensions, and 16080 truncations of extensions. 16081 (test_scalar_ops): Call the above two functions with a 16082 representative sampling of integer machine modes. 16083 160842021-08-23 Roger Sayle <roger@nextmovesoftware.com> 16085 16086 * match.pd (shift transformations): Change the sign of an 16087 LSHIFT_EXPR if it reduces the number of explicit conversions. 16088 160892021-08-23 Jakub Jelinek <jakub@redhat.com> 16090 16091 PR tree-optimization/86723 16092 * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Add 16093 cast64_to_32 argument, set *cast64_to_32 to false, unless n is 16094 non-memory permutation of 64-bit src which only has bytes of 16095 0 or [5..8] and n->range is 4. 16096 (find_bswap_or_nop): Add cast64_to_32 and mask arguments, adjust 16097 find_bswap_or_nop_finalize caller, support bswap with some bytes 16098 zeroed, as long as at least two bytes are not zeroed. 16099 (bswap_replace): Add mask argument and handle masking of bswap 16100 result. 16101 (maybe_optimize_vector_constructor): Adjust find_bswap_or_nop 16102 caller, punt if cast64_to_32 or mask is not all ones. 16103 (pass_optimize_bswap::execute): Adjust find_bswap_or_nop_finalize 16104 caller, for now punt if cast64_to_32. 16105 161062021-08-23 Richard Biener <rguenther@suse.de> 16107 16108 PR tree-optimization/79334 16109 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Record 16110 a type also for COMPONENT_REFs. 16111 (vn_reference_may_trap): Check ARRAY_REF with constant index 16112 against the array domain. 16113 161142021-08-23 liuhongt <hongtao.liu@intel.com> 16115 16116 PR target/102016 16117 * config/i386/sse.md (*avx512f_pshufb_truncv8hiv8qi_1): Add 16118 TARGET_AVX512BW to condition. 16119 161202021-08-23 Jakub Jelinek <jakub@redhat.com> 16121 16122 PR debug/101905 16123 * dwarf2out.c (gen_variable_die): Add DW_AT_location for global 16124 register variables already during early_dwarf if possible. 16125 161262021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> 16127 16128 * config/arm/arm_mve.h: Fix __arm_vctp16q return type. 16129 161302021-08-23 Christophe Lyon <christophe.lyon@foss.st.com> 16131 16132 PR target/100856 16133 * config/arm/arm.opt: Fix typo. 16134 * config/arm/t-rmprofile: Fix typo. 16135 161362021-08-23 Jakub Jelinek <jakub@redhat.com> 16137 16138 * tree.h (OMP_CLAUSE_GRAINSIZE_STRICT): Define. 16139 (OMP_CLAUSE_NUM_TASKS_STRICT): Define. 16140 * tree-pretty-print.c (dump_omp_clause) <case OMP_CLAUSE_GRAINSIZE, 16141 case OMP_CLAUSE_NUM_TASKS>: Print strict: modifier. 16142 * omp-expand.c (expand_task_call): Use GOMP_TASK_FLAG_STRICT in iflags 16143 if either grainsize or num_tasks clause has the strict modifier. 16144 161452021-08-23 Martin Liska <mliska@suse.cz> 16146 16147 * dbgcnt.def (DEBUG_COUNTER): New counter. 16148 * gimple.c (gimple_call_arg_flags): Use it in IPA PTA. 16149 161502021-08-23 Jan Hubicka <hubicka@ucw.cz> 16151 16152 * ipa-modref.c (analyze_ssa_name_flags): Improve handling of return slot. 16153 161542021-08-23 Xi Ruoyao <xry111@mengyan1223.wang> 16155 16156 PR target/101922 16157 * config/mips/mips-protos.h (mips_msa_output_shift_immediate): 16158 Declare. 16159 * config/mips/mips.c (mips_msa_output_shift_immediate): New 16160 function. 16161 * config/mips/mips-msa.md (vashl<mode>3, vashr<mode>3, 16162 vlshr<mode>3): Call it. 16163 161642021-08-22 Jan Hubicka <hubicka@ucw.cz> 16165 Martin Liska <mliska@suse.cz> 16166 16167 PR middle-end/101949 16168 * ipa-modref.c (analyze_ssa_name_flags): Indirect call implies 16169 ~EAF_NOCLOBBER. 16170 161712021-08-21 Dragan Mladjenovic <OT_Dragan.Mladjenovic@mediatek.com> 16172 16173 * config/mips/mips.c (mips_function_rodata_section, 16174 TARGET_ASM_FUNCTION_RODATA_SECTION): Removed. 16175 161762021-08-21 John David Anglin <danglin@gcc.gnu.org> 16177 16178 * config/pa/pa.c (pa_asm_output_aligned_common): Remove warning. 16179 161802021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> 16181 16182 * configure.ac (thread-local storage support): Remove tls_first_major 16183 and tls_first_minor. Use "$conftest_s" to check support. 16184 * configure: Regenerate. 16185 161862021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> 16187 16188 * configure.ac: Fixup formatting. 16189 161902021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> 16191 16192 * acinclude.m4 (gcc_GAS_CHECK_FEATURE): Remove third argument and ... 16193 * configure.ac: ... update all callers. 16194 161952021-08-20 Serge Belyshev <belyshev@depni.sinp.msu.ru> 16196 16197 PR target/91602 16198 * acinclude.m4 (_gcc_COMPUTE_GAS_VERSION, _gcc_GAS_VERSION_GTE_IFELSE) 16199 (gcc_GAS_VERSION_GTE_IFELSE): Remove. 16200 (gcc_GAS_CHECK_FEATURE): Do not handle in-tree case specially. 16201 * configure.ac: Remove gcc_cv_gas_major_version, gcc_cv_gas_minor_version. 16202 Remove remaining checks for in-tree assembler. 16203 * configure: Regenerate. 16204 162052021-08-20 Jeff Law <jlaw@localhost.localdomain> 16206 16207 * config/h8300/h8300.c (shift_alg_hi): Improve arithmetic shift right 16208 by 15 bits for H8/300H and H8/S. Improve logical shifts by 12 16209 bits for H8/S. 16210 (shift_alg_si): Improve arithmetic right shift by 28-30 bits for 16211 H8/300H. Improve arithmetic shift right by 15 bits for H8/S. 16212 Improve logical shifts by 27 bits for H8/S. 16213 (get_shift_alg): Corresponding changes. 16214 (h8300_option_override): Revert to loops for -Os when profitable. 16215 162162021-08-20 Richard Biener <rguenther@suse.de> 16217 16218 * tree-vect-data-refs.c (dr_group_sort_cmp): Do not compare 16219 BBs. 16220 (vect_analyze_data_ref_accesses): Likewise. Assign the BB 16221 index as group_id when dataref_groups were not computed. 16222 * tree-vect-slp.c (vect_slp_bbs): Bump current_group when 16223 we advace to the next BB. 16224 162252021-08-20 Jakub Jelinek <jakub@redhat.com> 16226 16227 * omp-builtins.def (BUILT_IN_GOMP_WARNING, BUILT_IN_GOMP_ERROR): New 16228 builtins. 16229 162302021-08-20 Martin Liska <mliska@suse.cz> 16231 16232 PR gcov-profile/89961 16233 * gcov.c (make_gcov_file_name): Rewrite using std::string. 16234 (mangle_name): Simplify, do not used the second argument. 16235 (strip_extention): New function. 16236 (get_md5sum): Likewise. 16237 (get_gcov_intermediate_filename): Handle properly -p and -x 16238 options. 16239 (output_gcov_file): Use string type. 16240 (generate_results): Likewise. 16241 (md5sum_to_hex): Remove. 16242 162432021-08-20 Michael Meissner <meissner@linux.ibm.com> 16244 16245 * config/rs6000/altivec.md (UNSPEC_XXEVAL): Move to vsx.md. 16246 (UNSPEC_XXSPLTIW): Move to vsx.md. 16247 (UNSPEC_XXSPLTID): Move to vsx.md. 16248 (UNSPEC_XXSPLTI32DX): Move to vsx.md. 16249 (UNSPEC_XXBLEND): Move to vsx.md. 16250 (UNSPEC_XXPERMX): Move to vsx.md. 16251 (VM3): Move to vsx.md. 16252 (VM3_char): Move to vsx.md. 16253 (xxspltiw_v4si): Move to vsx.md. 16254 (xxspltiw_v4sf): Move to vsx.md. 16255 (xxspltiw_v4sf_inst): Move to vsx.md. 16256 (xxspltidp_v2df): Move to vsx.md. 16257 (xxspltidp_v2df_inst): Move to vsx.md. 16258 (xxsplti32dx_v4si_inst): Move to vsx.md. 16259 (xxsplti32dx_v4sf): Move to vsx.md. 16260 (xxsplti32dx_v4sf_inst): Move to vsx.md. 16261 (xxblend_<mode>): Move to vsx.md. 16262 (xxpermx): Move to vsx.md. 16263 (xxpermx_inst): Move to vsx.md. 16264 * config/rs6000/vsx.md (UNSPEC_XXEVAL): Move from altivec.md. 16265 (UNSPEC_XXSPLTIW): Move from altivec.md. 16266 (UNSPEC_XXSPLTID): Move from altivec.md. 16267 (UNSPEC_XXSPLTI32DX): Move from altivec.md. 16268 (UNSPEC_XXBLEND): Move from altivec.md. 16269 (UNSPEC_XXPERMX): Move from altivec.md. 16270 (VM3): Move from altivec.md. 16271 (VM3_char): Move from altivec.md. 16272 (xxspltiw_v4si): Move from altivec.md. 16273 (xxspltiw_v4sf): Move from altivec.md. 16274 (xxspltiw_v4sf_inst): Move from altivec.md. 16275 (xxspltidp_v2df): Move from altivec.md. 16276 (xxspltidp_v2df_inst): Move from altivec.md. 16277 (xxsplti32dx_v4si_inst): Move from altivec.md. 16278 (xxsplti32dx_v4sf): Move from altivec.md. 16279 (xxsplti32dx_v4sf_inst): Move from altivec.md. 16280 (xxblend_<mode>): Move from altivec.md. 16281 (xxpermx): Move from altivec.md. 16282 (xxpermx_inst): Move from altivec.md. 16283 162842021-08-19 Roger Sayle <roger@nextmovesoftware.com> 16285 16286 * tree-vect-generic.c (expand_vector_operations_1): Use either 16287 gimplify_build1 or gimplify_build2 instead of gimple_build_assign 16288 when constructing scalar splat expressions. 16289 162902021-08-19 Peter Bergner <bergner@linux.ibm.com> 16291 16292 PR target/101849 16293 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Cast 16294 pointer to __vector_pair *. 16295 162962021-08-19 Martin Sebor <msebor@redhat.com> 16297 16298 * gimple-range.cc: Add comments. 16299 * gimple-range.h: Same. 16300 163012021-08-19 Martin Sebor <msebor@redhat.com> 16302 16303 PR middle-end/101984 16304 * gimple-ssa-warn-access.cc (pass_waccess::execute): Also call 16305 disable_ranger. 16306 163072021-08-19 Jeff Law <jlaw@localhost.localdomain> 16308 16309 * config.gcc (h8300-*-elf*): Do not include dbxelf.h. 16310 (h8300-*-linux*, v850-*-rtems*, v850*-elf*): Likewise. 16311 * config/v850/v850.h (DEFAULT_GDB_EXTENSIONS): Remove. 16312 163132021-08-19 Jakub Jelinek <jakub@redhat.com> 16314 16315 PR middle-end/101950 16316 * optabs.c (expand_clrsb_using_clz): New function. 16317 (expand_unop): Use it as another clrsb expansion fallback. 16318 163192021-08-19 liuhongt <hongtao.liu@intel.com> 16320 16321 Revert: 16322 2021-07-28 liuhongt <hongtao.liu@intel.com> 16323 16324 PR target/99881 16325 * config/i386/i386.h (processor_costs): Add new member 16326 integer_to_sse. 16327 * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, 16328 i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, 16329 geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, 16330 bdver_cost, znver1_cost, znver2_cost, znver3_cost, 16331 btver1_cost, btver2_cost, btver3_cost, pentium4_cost, 16332 nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, 16333 generic_cost, core_cost): Initialize integer_to_sse same value 16334 as sse_op. 16335 (skylake_cost): Initialize integer_to_sse twice as much as sse_op. 16336 * config/i386/i386.c (ix86_builtin_vectorization_cost): 16337 Use integer_to_sse instead of sse_op to calculate the cost of 16338 vec_construct. 16339 163402021-08-18 Iain Sandoe <iain@sandoe.co.uk> 16341 16342 * config.gcc: Include rpath.opt for Darwin. 16343 * config/darwin.h (DRIVER_SELF_SPECS): Handle -rpath. 16344 163452021-08-18 Thomas Schwinge <thomas@codesourcery.com> 16346 16347 PR bootstrap/101959 16348 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor_expand): 16349 Use an 'int_hash'. 16350 163512021-08-18 Jonathan Wright <jonathan.wright@arm.com> 16352 16353 * config/aarch64/arm_neon.h (vld3_lane_f64): Use float RTL 16354 pattern and type cast. 16355 (vld4_lane_f32): Use float RTL pattern. 16356 (vld4q_lane_f64): Use float type cast. 16357 163582021-08-18 Jan Hubicka <hubicka@ucw.cz> 16359 16360 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Check also 16361 EAF_NOREAD. 16362 163632021-08-18 Thomas Schwinge <thomas@codesourcery.com> 16364 16365 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Extend. 16366 (test_map_of_type_with_ctor_and_dtor_expand): Add function. 16367 (hash_map_tests_c_tests): Call it. 16368 163692021-08-18 Thomas Schwinge <thomas@codesourcery.com> 16370 16371 * ggc.h (enum ggc_collect): New. 16372 (ggc_collect): Use it. 16373 * ggc-page.c: Adjust. 16374 * ggc-common.c: Likewise. 16375 * ggc-tests.c: Likewise. 16376 * read-rtl-function.c: Likewise. 16377 * selftest-run-tests.c: Likewise. 16378 * doc/gty.texi (Invoking the garbage collector): Likewise. 16379 163802021-08-18 liuhongt <hongtao.liu@intel.com> 16381 16382 PR target/97147 16383 * config/i386/i386.h (TARGET_V2DF_REDUCTION_PREFER_HADDPD): 16384 New macro. 16385 * config/i386/sse.md (*sse3_haddv2df3_low): Add 16386 TARGET_V2DF_REDUCTION_PREFER_HADDPD. 16387 (*sse3_hsubv2df3_low): Ditto. 16388 * config/i386/x86-tune.def 16389 (X86_TUNE_V2DF_REDUCTION_PREFER_HADDPD): New tune. 16390 163912021-08-17 Andrew MacLeod <amacleod@redhat.com> 16392 16393 * gimple-range-gori.cc (gori_compute::gori_compute): Enable tracing. 16394 (gori_compute::compute_operand_range): Add tracing. 16395 (gori_compute::logical_combine): Ditto. 16396 (gori_compute::compute_logical_operands): Ditto. 16397 (gori_compute::compute_operand1_range): Ditto. 16398 (gori_compute::compute_operand2_range): Ditto. 16399 (gori_compute::outgoing_edge_range_p): Ditto. 16400 * gimple-range-gori.h (class gori_compute): Add range_tracer. 16401 164022021-08-17 Andrew MacLeod <amacleod@redhat.com> 16403 16404 * flag-types.h (enum evrp_mode): Adjust evrp-mode values. 16405 * gimple-range-cache.cc (DEBUG_RANGE_CACHE): Relocate from. 16406 * gimple-range-trace.h (DEBUG_RANGE_CACHE): Here. 16407 * params.opt (--param=evrp-mode): Adjust options. 16408 164092021-08-17 Andrew MacLeod <amacleod@redhat.com> 16410 16411 * Makefile.in (OBJS): Add gimple-range-trace.o. 16412 * gimple-range-cache.h (enable_new_values): Remove unused prototype. 16413 * gimple-range-fold.cc: Adjust headers. 16414 * gimple-range-trace.cc: New. 16415 * gimple-range-trace.h: New. 16416 * gimple-range.cc (gimple_ranger::gimple_ranger): Enable tracer. 16417 (gimple_ranger::range_of_expr): Add tracing. 16418 (gimple_ranger::range_on_entry): Ditto. 16419 (gimple_ranger::range_on_exit): Ditto. 16420 (gimple_ranger::range_on_edge): Ditto. 16421 (gimple_ranger::fold_range_internal): Ditto. 16422 (gimple_ranger::dump_bb): Do not calculate edge range twice. 16423 (trace_ranger::*): Remove. 16424 (enable_ranger): Never create a trace_ranger. 16425 (debug_seed_ranger): Move to gimple-range-trace.cc. 16426 (dump_ranger): Ditto. 16427 (debug_ranger): Ditto. 16428 * gimple-range.h: Include gimple-range-trace.h. 16429 (range_on_entry, range_on_exit): No longer virtual. 16430 (class trace_ranger): Remove. 16431 (DEBUG_RANGE_CACHE): Move to gimple-range-trace.h. 16432 164332021-08-17 Martin Sebor <msebor@redhat.com> 16434 16435 PR middle-end/101854 16436 * builtins.c (expand_builtin_alloca): Move warning code to check_alloca 16437 in gimple-ssa-warn-access.cc. 16438 * calls.c (alloc_max_size): Move code to check_alloca. 16439 (get_size_range): Move to pointer-query.cc. 16440 (maybe_warn_alloc_args_overflow): Move to gimple-ssa-warn-access.cc. 16441 (get_attr_nonstring_decl): Move to tree.c. 16442 (fntype_argno_type): Move to gimple-ssa-warn-access.cc. 16443 (append_attrname): Same. 16444 (maybe_warn_rdwr_sizes): Same. 16445 (initialize_argument_information): Move code to 16446 gimple-ssa-warn-access.cc. 16447 * calls.h (maybe_warn_alloc_args_overflow): Move to 16448 gimple-ssa-warn-access.h. 16449 (get_attr_nonstring_decl): Move to tree.h. 16450 (maybe_warn_nonstring_arg): Move to gimple-ssa-warn-access.h. 16451 (enum size_range_flags): Move to pointer-query.h. 16452 (get_size_range): Same. 16453 * gimple-ssa-warn-access.cc (has_location): Remove unused overload 16454 to avoid Clang -Wunused-function. 16455 (get_size_range): Declare static. 16456 (maybe_emit_free_warning): Rename... 16457 (maybe_check_dealloc_call): ...to this for consistency. 16458 (class pass_waccess): Add members. 16459 (pass_waccess::~pass_waccess): Defined. 16460 (alloc_max_size): Move here from calls.c. 16461 (maybe_warn_alloc_args_overflow): Same. 16462 (check_alloca): New function. 16463 (check_alloc_size_call): New function. 16464 (check_strncat): Handle another warning flag. 16465 (pass_waccess::check_builtin): Handle alloca. 16466 (fntype_argno_type): Move here from calls.c. 16467 (append_attrname): Same. 16468 (maybe_warn_rdwr_sizes): Same. 16469 (pass_waccess::check_call): Define. 16470 (check_nonstring_args): New function. 16471 (pass_waccess::check): Call new member functions. 16472 (pass_waccess::execute): Enable ranger. 16473 * gimple-ssa-warn-access.h (get_size_range): Move here from calls.h. 16474 (maybe_warn_nonstring_arg): Same. 16475 * gimple-ssa-warn-restrict.c: Remove #include. 16476 * pointer-query.cc (get_size_range): Move here from calls.c. 16477 * pointer-query.h (enum size_range_flags): Same. 16478 (get_size_range): Same. 16479 * tree.c (get_attr_nonstring_decl): Move here from calls.c. 16480 * tree.h (get_attr_nonstring_decl): Move here from calls.h. 16481 164822021-08-17 Thomas Schwinge <thomas@codesourcery.com> 16483 16484 * ggc.h (ggc_collect): Add 'force_collect' parameter. 16485 * ggc-page.c (ggc_collect): Use that one instead of global 16486 'ggc_force_collect'. Adjust all users. 16487 * doc/gty.texi (Invoking the garbage collector): Update. 16488 * ggc-internal.h (ggc_force_collect): Remove. 16489 * ggc-common.c (ggc_force_collect): Likewise. 16490 * selftest.h (forcibly_ggc_collect): Remove. 16491 * ggc-tests.c (selftest::forcibly_ggc_collect): Likewise. 16492 * read-rtl-function.c (test_loading_labels): Adjust. 16493 * selftest-run-tests.c (run_tests): Likewise. 16494 164952021-08-17 Iain Sandoe <iain@sandoe.co.uk> 16496 16497 * config/darwin.c (darwin_file_end): Reset and reclaim the 16498 section names table at the end of compile. 16499 165002021-08-17 Iain Sandoe <iain@sandoe.co.uk> 16501 16502 PR target/100340 16503 * config.in: Regenerate. 16504 * config/i386/darwin.h (EXTRA_ASM_OPTS): New 16505 (ASM_SPEC): Pass options to disable branch shortening where 16506 needed. 16507 * configure: Regenerate. 16508 * configure.ac: Detect versions of 'as' that support the 16509 optimisation which has the bug. 16510 165112021-08-17 Richard Biener <rguenther@suse.de> 16512 16513 * optabs-query.c (supports_vec_gather_load_p): Also check 16514 for masked optabs. 16515 (supports_vec_scatter_store_p): Likewise. 16516 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Fall 16517 back to masked variants if non-masked are not supported. 16518 * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): 16519 When we need to use masked gather/scatter but do not have 16520 a mask set up a constant true one. 16521 * tree-vect-stmts.c (vect_check_scalar_mask): Also allow 16522 non-SSA_NAME masks. 16523 165242021-08-17 Roger Sayle <roger@nextmovesoftware.com> 16525 16526 * tree-ssa-ccp.c (bit_value_binop) [MINUS_EXPR]: Use same 16527 algorithm as PLUS_EXPR to improve subtraction bit bounds. 16528 [POINTER_DIFF_EXPR]: Treat as synonymous with MINUS_EXPR. 16529 165302021-08-17 Roger Sayle <roger@nextmovesoftware.com> 16531 16532 * tree-ssa-ccp.c (bit_value_mult_const): New helper function to 16533 calculate the mask-value pair result of a multiplication by an 16534 unsigned constant. 16535 (bit_value_binop) [MULT_EXPR]: Call it from here for 16536 multiplications by (sparse) non-negative constants. 16537 165382021-08-17 Christophe Lyon <christophe.lyon@foss.st.com> 16539 16540 PR target/100896 16541 * config.gcc (gcc_cv_initfini_array): Leave undefined for 16542 uclinuxfdpiceabi targets. 16543 165442021-08-17 Alexandre Oliva <oliva@adacore.com> 16545 16546 * tree-inline.c (maybe_move_debug_stmts_to_successors): Don't 16547 reverse debug stmts. 16548 165492021-08-17 Alexandre Oliva <oliva@adacore.com> 16550 16551 * tree-cfg.c (dump_function_to_file): Use fun, not cfun. 16552 165532021-08-17 Jonathan Wright <jonathan.wright@arm.com> 16554 16555 * config/aarch64/arm_neon.h (__LD4_LANE_FUNC): Delete. 16556 (__LD4Q_LANE_FUNC): Likewise. 16557 (vld4_lane_u8): Define without macro. 16558 (vld4_lane_u16): Likewise. 16559 (vld4_lane_u32): Likewise. 16560 (vld4_lane_u64): Likewise. 16561 (vld4_lane_s8): Likewise. 16562 (vld4_lane_s16): Likewise. 16563 (vld4_lane_s32): Likewise. 16564 (vld4_lane_s64): Likewise. 16565 (vld4_lane_f16): Likewise. 16566 (vld4_lane_f32): Likewise. 16567 (vld4_lane_f64): Likewise. 16568 (vld4_lane_p8): Likewise. 16569 (vld4_lane_p16): Likewise. 16570 (vld4_lane_p64): Likewise. 16571 (vld4q_lane_u8): Likewise. 16572 (vld4q_lane_u16): Likewise. 16573 (vld4q_lane_u32): Likewise. 16574 (vld4q_lane_u64): Likewise. 16575 (vld4q_lane_s8): Likewise. 16576 (vld4q_lane_s16): Likewise. 16577 (vld4q_lane_s32): Likewise. 16578 (vld4q_lane_s64): Likewise. 16579 (vld4q_lane_f16): Likewise. 16580 (vld4q_lane_f32): Likewise. 16581 (vld4q_lane_f64): Likewise. 16582 (vld4q_lane_p8): Likewise. 16583 (vld4q_lane_p16): Likewise. 16584 (vld4q_lane_p64): Likewise. 16585 (vld4_lane_bf16): Likewise. 16586 (vld4q_lane_bf16): Likewise. 16587 165882021-08-17 Jonathan Wright <jonathan.wright@arm.com> 16589 16590 * config/aarch64/arm_neon.h (__LD3_LANE_FUNC): Delete. 16591 (__LD3Q_LANE_FUNC): Delete. 16592 (vld3_lane_u8): Define without macro. 16593 (vld3_lane_u16): Likewise. 16594 (vld3_lane_u32): Likewise. 16595 (vld3_lane_u64): Likewise. 16596 (vld3_lane_s8): Likewise. 16597 (vld3_lane_s16): Likewise. 16598 (vld3_lane_s32): Likewise. 16599 (vld3_lane_s64): Likewise. 16600 (vld3_lane_f16): Likewise. 16601 (vld3_lane_f32): Likewise. 16602 (vld3_lane_f64): Likewise. 16603 (vld3_lane_p8): Likewise. 16604 (vld3_lane_p16): Likewise. 16605 (vld3_lane_p64): Likewise. 16606 (vld3q_lane_u8): Likewise. 16607 (vld3q_lane_u16): Likewise. 16608 (vld3q_lane_u32): Likewise. 16609 (vld3q_lane_u64): Likewise. 16610 (vld3q_lane_s8): Likewise. 16611 (vld3q_lane_s16): Likewise. 16612 (vld3q_lane_s32): Likewise. 16613 (vld3q_lane_s64): Likewise. 16614 (vld3q_lane_f16): Likewise. 16615 (vld3q_lane_f32): Likewise. 16616 (vld3q_lane_f64): Likewise. 16617 (vld3q_lane_p8): Likewise. 16618 (vld3q_lane_p16): Likewise. 16619 (vld3q_lane_p64): Likewise. 16620 (vld3_lane_bf16): Likewise. 16621 (vld3q_lane_bf16): Likewise. 16622 166232021-08-17 Jonathan Wright <jonathan.wright@arm.com> 16624 16625 * config/aarch64/arm_neon.h (__LD2_LANE_FUNC): Delete. 16626 (__LD2Q_LANE_FUNC): Likewise. 16627 (vld2_lane_u8): Define without macro. 16628 (vld2_lane_u16): Likewise. 16629 (vld2_lane_u32): Likewise. 16630 (vld2_lane_u64): Likewise. 16631 (vld2_lane_s8): Likewise. 16632 (vld2_lane_s16): Likewise. 16633 (vld2_lane_s32): Likewise. 16634 (vld2_lane_s64): Likewise. 16635 (vld2_lane_f16): Likewise. 16636 (vld2_lane_f32): Likewise. 16637 (vld2_lane_f64): Likewise. 16638 (vld2_lane_p8): Likewise. 16639 (vld2_lane_p16): Likewise. 16640 (vld2_lane_p64): Likewise. 16641 (vld2q_lane_u8): Likewise. 16642 (vld2q_lane_u16): Likewise. 16643 (vld2q_lane_u32): Likewise. 16644 (vld2q_lane_u64): Likewise. 16645 (vld2q_lane_s8): Likewise. 16646 (vld2q_lane_s16): Likewise. 16647 (vld2q_lane_s32): Likewise. 16648 (vld2q_lane_s64): Likewise. 16649 (vld2q_lane_f16): Likewise. 16650 (vld2q_lane_f32): Likewise. 16651 (vld2q_lane_f64): Likewise. 16652 (vld2q_lane_p8): Likewise. 16653 (vld2q_lane_p16): Likewise. 16654 (vld2q_lane_p64): Likewise. 16655 (vld2_lane_bf16): Likewise. 16656 (vld2q_lane_bf16): Likewise. 16657 166582021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 16659 16660 * haifa-sched.c (advance_one_cycle): Output more context-synchronization 16661 lines for diff. 16662 166632021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 16664 16665 * haifa-sched.c (enum rfs_decision, rfs_str): Add RFS_AUTOPREF. 16666 (rank_for_schedule): Use it. 16667 166682021-08-17 Maxim Kuvyrkov <maxim.kuvyrkov@linaro.org> 16669 16670 PR rtl-optimization/91598 16671 * haifa-sched.c (autopref_rank_for_schedule): Prioritize "irrelevant" 16672 insns after memory reads and before memory writes. 16673 166742021-08-17 Alistair_Lee <alistair.lee@arm.com> 16675 16676 * rtl.h (CONST_VECTOR_P): New macro. 16677 * config/aarch64/aarch64.c (aarch64_get_sve_pred_bits): Use RTL 16678 code testing macros. 16679 (aarch64_ptrue_all_mode): Likewise. 16680 (aarch64_expand_mov_immediate): Likewise. 16681 (aarch64_const_vec_all_in_range_p): Likewise. 16682 (aarch64_rtx_costs): Likewise. 16683 (aarch64_legitimate_constant_p): Likewise. 16684 (aarch64_simd_valid_immediate): Likewise. 16685 (aarch64_simd_make_constant): Likewise. 16686 (aarch64_convert_mult_to_shift): Likewise. 16687 (aarch64_expand_sve_vec_perm): Likewise. 16688 (aarch64_vec_fpconst_pow_of_2): Likewise. 16689 166902021-08-17 Andrew MacLeod <amacleod@redhat.com> 16691 16692 PR tree-optimization/101938 16693 * range-op.cc (operator_abs::op1_range): Special case 16694 -TYPE_MIN_VALUE for flag_wrapv. 16695 166962021-08-17 Kewen Lin <linkw@linux.ibm.com> 16697 16698 * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Add the cost for 16699 value extraction. 16700 167012021-08-17 Jakub Jelinek <jakub@redhat.com> 16702 16703 * tree.def (OMP_SCOPE): New tree code. 16704 * tree.h (OMP_SCOPE_BODY, OMP_SCOPE_CLAUSES): Define. 16705 * tree-nested.c (convert_nonlocal_reference_stmt, 16706 convert_local_reference_stmt, convert_gimple_call): Handle 16707 GIMPLE_OMP_SCOPE. 16708 * tree-pretty-print.c (dump_generic_node): Handle OMP_SCOPE. 16709 * gimple.def (GIMPLE_OMP_SCOPE): New gimple code. 16710 * gimple.c (gimple_build_omp_scope): New function. 16711 (gimple_copy): Handle GIMPLE_OMP_SCOPE. 16712 * gimple.h (gimple_build_omp_scope): Declare. 16713 (gimple_has_substatements): Handle GIMPLE_OMP_SCOPE. 16714 (gimple_omp_scope_clauses, gimple_omp_scope_clauses_ptr, 16715 gimple_omp_scope_set_clauses): New inline functions. 16716 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_SCOPE. 16717 * gimple-pretty-print.c (dump_gimple_omp_scope): New function. 16718 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCOPE. 16719 * gimple-walk.c (walk_gimple_stmt): Likewise. 16720 * gimple-low.c (lower_stmt): Likewise. 16721 * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. 16722 (gimplify_scan_omp_clauses): For task reductions, handle OMP_SCOPE 16723 like ORT_WORKSHARE constructs. Adjust diagnostics for %<scope%> 16724 allowing task reductions. Reject inscan reductions on scope. 16725 (omp_find_stores_stmt): Handle GIMPLE_OMP_SCOPE. 16726 (gimplify_omp_workshare, gimplify_expr): Handle OMP_SCOPE. 16727 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_SCOPE. 16728 (estimate_num_insns): Likewise. 16729 * omp-low.c (build_outer_var_ref): Look through GIMPLE_OMP_SCOPE 16730 contexts if var isn't privatized there. 16731 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_SCOPE. 16732 (scan_omp_1_stmt): Likewise. 16733 (maybe_add_implicit_barrier_cancel): Look through outer 16734 scope constructs. 16735 (lower_omp_scope): New function. 16736 (lower_omp_task_reductions): Handle OMP_SCOPE. 16737 (lower_omp_1): Handle GIMPLE_OMP_SCOPE. 16738 (diagnose_sb_1, diagnose_sb_2): Likewise. 16739 * omp-expand.c (expand_omp_single): Support also GIMPLE_OMP_SCOPE. 16740 (expand_omp): Handle GIMPLE_OMP_SCOPE. 16741 (omp_make_gimple_edges): Likewise. 16742 * omp-builtins.def (BUILT_IN_GOMP_SCOPE_START): New built-in. 16743 167442021-08-17 Richard Biener <rguenther@suse.de> 16745 16746 PR tree-optimization/101925 16747 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Set 16748 reverse on COMPONENT_REF and ARRAY_REF according to 16749 what reverse_storage_order_for_component_p does. 16750 (vn_reference_eq): Compare reversed on reference ops. 16751 (reverse_storage_order_for_component_p): New overload. 16752 (vn_reference_lookup_3): Check reverse_storage_order_for_component_p 16753 on the reference looked up. 16754 167552021-08-17 Jeff Law <jlaw@localhost.localdomain> 16756 16757 * config/h8300/h8300.c (shift_alg_si): Avoid loops for most SImode 16758 shifts on the H8/S. 16759 (h8300_option_override): Use loops on H8/S more often when optimizing 16760 for size. 16761 (get_shift_alg): Handle new "special" cases on H8/S. Simplify 16762 accordingly. Handle various arithmetic right shifts with special 16763 sequences that we couldn't handle before. 16764 167652021-08-16 Jeff Law <jlaw@localhost.localdomain> 16766 16767 * config.gcc (rl78-*-elf*): Do not include dbxelf.h. 16768 167692021-08-16 Sebastian Huber <sebastian.huber@embedded-brains.de> 16770 16771 * config/sparc/rtemself.h (SPARC_GCOV_TYPE_SIZE): Define. 16772 * config/sparc/sparc.c (sparc_gcov_type_size): New. 16773 (TARGET_GCOV_TYPE_SIZE): Redefine if SPARC_GCOV_TYPE_SIZE is defined. 16774 * coverage.c (get_gcov_type): Use targetm.gcov_type_size(). 16775 * doc/tm.texi (TARGET_GCOV_TYPE_SIZE): Add hook under "Misc". 16776 * doc/tm.texi.in: Regenerate. 16777 * target.def (gcov_type_size): New target hook. 16778 * targhooks.c (default_gcov_type_size): New. 16779 * targhooks.h (default_gcov_type_size): Declare. 16780 * tree-profile.c (gimple_gen_edge_profiler): Use precision of 16781 gcov_type_node. 16782 (gimple_gen_time_profiler): Likewise. 16783 167842021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> 16785 16786 * dwarf2out.c (add_scalar_info): Deal with DW_AT_data_bit_offset. 16787 167882021-08-16 Tobias Burnus <tobias@codesourcery.com> 16789 16790 PR middle-end/101931 16791 * omp-low.c (omp_runtime_api_call): Update for routines 16792 added in the meanwhile. 16793 167942021-08-16 Martin Liska <mliska@suse.cz> 16795 16796 PR tree-optimization/100393 16797 * tree-switch-conversion.c (group_cluster::dump): Use 16798 get_comparison_count. 16799 (jump_table_cluster::find_jump_tables): Pre-compute number of 16800 comparisons and then decrement it. Cache also max_ratio. 16801 (jump_table_cluster::can_be_handled): Change signature. 16802 * tree-switch-conversion.h (get_comparison_count): New. 16803 168042021-08-16 Eric Botcazou <ebotcazou@gcc.gnu.org> 16805 16806 * dwarf2out.c (add_data_member_location_attribute): Use GNAT 16807 encodings only when -fgnat-encodings=all is specified. 16808 (add_bound_info): Likewise. 16809 (add_byte_size_attribute): Likewise. 16810 (gen_member_die): Likewise. 16811 168122021-08-16 Thomas Schwinge <thomas@codesourcery.com> 16813 16814 * omp-oacc-neuter-broadcast.cc 16815 (execute_omp_oacc_neuter_broadcast): Plug 'par' memory leak. 16816 168172021-08-16 Thomas Schwinge <thomas@codesourcery.com> 16818 16819 * omp-oacc-neuter-broadcast.cc 16820 (execute_omp_oacc_neuter_broadcast): Clarify memory management for 16821 'prop_set'. 16822 168232021-08-16 Thomas Schwinge <thomas@codesourcery.com> 16824 16825 * omp-oacc-neuter-broadcast.cc (field_map): Move variable into... 16826 (execute_omp_oacc_neuter_broadcast): ... here. 16827 (install_var_field, build_receiver_ref, build_sender_ref): Take 16828 'field_map_t *' parameter. Adjust all users. 16829 (worker_single_copy, neuter_worker_single): Take a 16830 'record_field_map_t *' parameter. Adjust all users. 16831 168322021-08-16 liuhongt <hongtao.liu@intel.com> 16833 16834 PR target/101930 16835 * config/i386/i386.md (ldexp<mode>3): Force operands[1] to 16836 reg. 16837 168382021-08-16 Martin Liska <mliska@suse.cz> 16839 16840 PR ipa/101726 16841 * multiple_target.c (create_dispatcher_calls): Make default 16842 function local only if it is a definition. 16843 168442021-08-16 Martin Liska <mliska@suse.cz> 16845 16846 PR ipa/100600 16847 * ipa-icf-gimple.c (func_checker::compare_ssa_name): Do not 16848 consider equal SSA_NAMEs when one is a param. 16849 168502021-08-16 liuhongt <hongtao.liu@intel.com> 16851 16852 PR target/101846 16853 * config/i386/i386-expand.c (ix86_expand_vec_perm_vpermt2): 16854 Support vpermi2b for V32QI/V16QImode. 16855 (ix86_extract_perm_from_pool_constant): New function. 16856 (ix86_expand_vec_one_operand_perm_avx512): Support 16857 vpermw/vpermb under TARGET_AVX512BW/TARGET_AVX512VBMI. 16858 (expand_vec_perm_1): Adjust comments for upper. 16859 * config/i386/i386-protos.h (ix86_extract_perm_from_pool_constant): 16860 New declare. 16861 * config/i386/predicates.md (permvar_truncate_operand): New predicate. 16862 (pshufb_truncv4siv4hi_operand): Ditto. 16863 (pshufb_truncv8hiv8qi_operand): Ditto. 16864 * config/i386/sse.md (*avx512bw_permvar_truncv16siv16hi_1): 16865 New pre_reload define_insn_and_split. 16866 (*avx512f_permvar_truncv8siv8hi_1): Ditto. 16867 (*avx512f_vpermvar_truncv8div8si_1): Ditto. 16868 (*avx512f_permvar_truncv32hiv32qi_1): Ditto. 16869 (*avx512f_permvar_truncv16hiv16qi_1): Ditto. 16870 (*avx512f_permvar_truncv4div4si_1): Ditto. 16871 (*avx512f_pshufb_truncv8hiv8qi_1): Ditto. 16872 (*avx512f_pshufb_truncv4siv4hi_1): Ditto. 16873 (*avx512f_pshufd_truncv2div2si_1): Ditto. 16874 168752021-08-16 Kito Cheng <kito.cheng@sifive.com> 16876 16877 * config/riscv/multilib-generator: Support code model option for 16878 multi-lib. 16879 * doc/install.texi: Add document of new option for 16880 --with-multilib-generator. 16881 168822021-08-15 Cl��ment Chigot <clement.chigot@atos.net> 16883 16884 * config/rs6000/rs6000.c (xcoff_tls_exec_model_detected): New. 16885 (rs6000_legitimize_tls_address_aix): Use it. 16886 (rs6000_xcoff_file_end): Add ".ref __tls_get_addr" when 16887 xcoff_tls_exec_model_detected is true. 16888 168892021-08-15 Jeff Law <jlaw@localhost.localdomain> 16890 16891 * config/h8300/h8300.c (shift_alg_si): Retune H8/300H shifts 16892 to allow a bit more code growth, saving many dozens of cycles. 16893 (h8300_option_override): Adjus shift_alg_si if optimizing for 16894 code size. 16895 (get_shift_alg): Use special + inline shifts for residuals 16896 in more cases. 16897 168982021-08-14 Stafford Horne <shorne@gmail.com> 16899 16900 PR target/99783 16901 * config/or1k/or1k-opts.h: New file. 16902 * config/or1k/or1k.c (or1k_legitimize_address_1, print_reloc): 16903 Support generating gotha relocations if -mcmodel=large is 16904 specified. 16905 * config/or1k/or1k.h (TARGET_CMODEL_SMALL, TARGET_CMODEL_LARGE): 16906 New macros. 16907 * config/or1k/or1k.opt (mcmodel=): New option. 16908 * doc/invoke.texi (OpenRISC Options): Document mcmodel. 16909 169102021-08-14 Martin Sebor <msebor@redhat.com> 16911 16912 PR middle-end/101791 16913 * gimple-ssa-warn-access.cc (new_delete_mismatch_p): Use new argument 16914 to valid_new_delete_pair_p. 16915 * tree.c (valid_new_delete_pair_p): Add argument. 16916 * tree.h (valid_new_delete_pair_p): Same. 16917 169182021-08-14 Jakub Jelinek <jakub@redhat.com> 16919 16920 PR target/101896 16921 * config/i386/i386-expand.c (expand_vec_perm_broadcast_1) 16922 <case E_V64QImode>: For this mode assert 16923 !TARGET_AVX512BW || d->perm[0] rather than !TARGET_AVX2 || d->perm[0]. 16924 169252021-08-13 Michael Meissner <meissner@linux.ibm.com> 16926 16927 PR target/99921 16928 * config/rs6000/altivec.md (xxeval): Use register_predicate 16929 instead of altivec_register_predicate. 16930 169312021-08-13 Martin Sebor <msebor@redhat.com> 16932 16933 PR middle-end/101734 16934 * tree-ssa-uninit.c (maybe_warn_read_write_only): New function. 16935 (maybe_warn_operand): Call it. 16936 169372021-08-13 Martin Liska <mliska@suse.cz> 16938 16939 PR ipa/101354 16940 * attribs.c (decl_attributes): Make naked functions "noipa" 16941 functions. 16942 169432021-08-13 Martin Liska <mliska@suse.cz> 16944 16945 PR ipa/101261 16946 * symtab.c (symtab_node::noninterposable_alias): Do not create 16947 local aliases for target_clone functions as the clonning pass 16948 rejects aliases. 16949 169502021-08-13 Martin Liska <mliska@suse.cz> 16951 16952 * opts.c (LIVE_PATCHING_OPTION): Define. 16953 (control_options_for_live_patching): Use it in error messages. 16954 169552021-08-13 Jan Hubicka <hubicka@ucw.cz> 16956 16957 * ipa-modref.c (dump_eaf_flags): Dump EAF_NOREAD. 16958 (implicit_const_eaf_flags, implicit_pure_eaf_flags, 16959 ignore_stores_eaf_flags): New constants. 16960 (remove_useless_eaf_flags): New function. 16961 (eaf_flags_useful_p): Use it. 16962 (deref_flags): Add EAF_NOT_RETURNED if flag is unused; 16963 handle EAF_NOREAD. 16964 (modref_lattice::init): Add EAF_NOREAD. 16965 (modref_lattice::add_escape_point): Do not reacord escape point if 16966 result is unused. 16967 (modref_lattice::merge): EAF_NOESCAPE implies EAF_NODIRECTESCAPE; 16968 use remove_useless_eaf_flags. 16969 (modref_lattice::merge_deref): Use ignore_stores_eaf_flags. 16970 (modref_lattice::merge_direct_load): Add EAF_NOREAD 16971 (analyze_ssa_name_flags): Fix handling EAF_NOT_RETURNED 16972 (analyze_parms): Use remove_useless_eaf_flags. 16973 (ipa_merge_modref_summary_after_inlining): Use ignore_stores_eaf_flags. 16974 (modref_merge_call_site_flags): Add caller and ecf_flags parameter; 16975 use remove_useless_eaf_flags. 16976 (modref_propagate_flags_in_scc): Update. 16977 * ipa-modref.h: Turn eaf_flags_t back to char. 16978 * tree-core.h (EAF_NOT_RETURNED): Fix. 16979 (EAF_NOREAD): New constant 16980 * tree-ssa-alias.c: (ref_maybe_used_by_call_p_1): Check for 16981 EAF_NOREAD. 16982 * tree-ssa-structalias.c (handle_rhs_call): Handle new flags. 16983 (handle_pure_call): Likewise. 16984 169852021-08-12 Jakub Jelinek <jakub@redhat.com> 16986 16987 * tree.def (OMP_MASKED): New tree code. 16988 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_FILTER. 16989 * tree.h (OMP_MASKED_BODY, OMP_MASKED_CLAUSES, OMP_MASKED_COMBINED, 16990 OMP_CLAUSE_FILTER_EXPR): Define. 16991 * tree.c (omp_clause_num_ops): Add OMP_CLAUSE_FILTER entry. 16992 (omp_clause_code_name): Likewise. 16993 (walk_tree_1): Handle OMP_CLAUSE_FILTER. 16994 * tree-nested.c (convert_nonlocal_omp_clauses, 16995 convert_local_omp_clauses): Handle OMP_CLAUSE_FILTER. 16996 (convert_nonlocal_reference_stmt, convert_local_reference_stmt, 16997 convert_gimple_call): Handle GIMPLE_OMP_MASTER. 16998 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_FILTER. 16999 (dump_generic_node): Handle OMP_MASTER. 17000 * gimple.def (GIMPLE_OMP_MASKED): New gimple code. 17001 * gimple.c (gimple_build_omp_masked): New function. 17002 (gimple_copy): Handle GIMPLE_OMP_MASKED. 17003 * gimple.h (gimple_build_omp_masked): Declare. 17004 (gimple_has_substatements): Handle GIMPLE_OMP_MASKED. 17005 (gimple_omp_masked_clauses, gimple_omp_masked_clauses_ptr, 17006 gimple_omp_masked_set_clauses): New inline functions. 17007 (CASE_GIMPLE_OMP): Add GIMPLE_OMP_MASKED. 17008 * gimple-pretty-print.c (dump_gimple_omp_masked): New function. 17009 (pp_gimple_stmt_1): Handle GIMPLE_OMP_MASKED. 17010 * gimple-walk.c (walk_gimple_stmt): Likewise. 17011 * gimple-low.c (lower_stmt): Likewise. 17012 * gimplify.c (is_gimple_stmt): Handle OMP_MASTER. 17013 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_FILTER. For clauses 17014 that take one expression rather than decl or constant, force 17015 gimplification of that into a SSA_NAME or temporary unless min 17016 invariant. 17017 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_FILTER. 17018 (gimplify_expr): Handle OMP_MASKED. 17019 * tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_MASKED. 17020 (estimate_num_insns): Likewise. 17021 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_FILTER. 17022 (check_omp_nesting_restrictions): Handle GIMPLE_OMP_MASKED. Adjust 17023 diagnostics for existence of masked construct. 17024 (scan_omp_1_stmt, lower_omp_master, lower_omp_1, diagnose_sb_1, 17025 diagnose_sb_2): Handle GIMPLE_OMP_MASKED. 17026 * omp-expand.c (expand_omp_synch, expand_omp, omp_make_gimple_edges): 17027 Likewise. 17028 170292021-08-12 Uro�� Bizjak <ubizjak@gmail.com> 17030 17031 PR target/98309 17032 * config/i386/i386.md (avx512f_scalef<mode>2): New insn pattern. 17033 (ldexp<mode>3): Use avx512f_scalef<mode>2. 17034 (UNSPEC_SCALEF): Move from ... 17035 * config/i386/sse.md (UNSPEC_SCALEF): ... here. 17036 170372021-08-12 Jan Hubicka <hubicka@ucw.cz> 17038 17039 * ipa-split.c (consider_split): Fix condition testing void functions. 17040 170412021-08-12 Aldy Hernandez <aldyh@redhat.com> 17042 17043 * doc/invoke.texi: Remove docs for threader-mode param. 17044 * flag-types.h (enum threader_mode): Remove. 17045 * params.opt: Remove threader-mode param. 17046 * tree-ssa-threadbackward.c (class back_threader): Remove 17047 path_is_unreachable_p. 17048 Make find_paths private. 17049 Add maybe_thread and thread_through_all_blocks. 17050 Remove reference marker for m_registry. 17051 Remove reference marker for m_profit. 17052 (back_threader::back_threader): Adjust for registry and profit not 17053 being references. 17054 (dump_path): Move down. 17055 (debug): Move down. 17056 (class thread_jumps): Remove. 17057 (class back_threader_registry): Remove m_all_paths. 17058 Remove destructor. 17059 (thread_jumps::thread_through_all_blocks): Move to back_threader 17060 class. 17061 (fsm_find_thread_path): Remove 17062 (back_threader::maybe_thread): New. 17063 (back_threader::thread_through_all_blocks): Move from 17064 thread_jumps. 17065 (back_threader_registry::back_threader_registry): Remove 17066 m_all_paths. 17067 (back_threader_registry::~back_threader_registry): Remove. 17068 (thread_jumps::find_taken_edge): Remove. 17069 (thread_jumps::check_subpath_and_update_thread_path): Remove. 17070 (thread_jumps::maybe_register_path): Remove. 17071 (thread_jumps::handle_phi): Remove. 17072 (handle_assignment_p): Remove. 17073 (thread_jumps::handle_assignment): Remove. 17074 (thread_jumps::fsm_find_control_statement_thread_paths): Remove. 17075 (thread_jumps::find_jump_threads_backwards): Remove. 17076 (thread_jumps::find_jump_threads_backwards_with_ranger): Remove. 17077 (try_thread_blocks): Rename find_jump_threads_backwards to 17078 maybe_thread. 17079 (pass_early_thread_jumps::execute): Same. 17080 170812021-08-12 Tobias Burnus <tobias@codesourcery.com> 17082 17083 * tree-core.h (omp_clause_proc_bind_kind): Add 17084 OMP_CLAUSE_PROC_BIND_PRIMARY. 17085 * tree-pretty-print.c (dump_omp_clause): Add TODO comment to 17086 change 'master' to 'primary' in proc_bind for OpenMP 5.1. 17087 170882021-08-12 Claudiu Zissulescu <claziss@synopsys.com> 17089 17090 * common/config/arc/arc-common.c (arc_option_init_struct): Remove 17091 fno-common reference. 17092 * config/arc/arc.c (arc_override_options): Remove overriding of 17093 flag_no_common. 17094 170952021-08-12 Jakub Jelinek <jakub@redhat.com> 17096 17097 PR target/101860 17098 * config/i386/i386-expand.c (ix86_expand_vec_one_operand_perm_avx512): 17099 If d->testing_p, return true after performing checks instead of 17100 actually expanding the insn. 17101 (expand_vec_perm_broadcast_1): Handle V32HImode - assert 17102 !TARGET_AVX512BW and return false. 17103 171042021-08-12 Eric Botcazou <ebotcazou@gcc.gnu.org> 17105 17106 * configure.ac (PE linker --disable-dynamicbase support): New check. 17107 * configure: Regenerate. 17108 * config.in: Likewise. 17109 * config/i386/mingw32.h (LINK_SPEC_DISABLE_DYNAMICBASE): New define. 17110 (LINK_SPEC): Use it. 17111 * config/i386/mingw-w64.h (LINK_SPEC_DISABLE_DYNAMICBASE): Likewise. 17112 (LINK_SPEC): Likewise. 17113 171142021-08-12 liuhongt <hongtao.liu@intel.com> 17115 17116 PR target/101846 17117 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_2): New 17118 post_reload define_insn_and_split. 17119 (*avx512bw_zero_extendv32qiv32hi2_2): Ditto. 17120 (*sse4_1_zero_extendv8qiv8hi2_4): Ditto. 17121 (*avx512f_zero_extendv16hiv16si2_2): Ditto. 17122 (*avx2_zero_extendv8hiv8si2_2): Ditto. 17123 (*sse4_1_zero_extendv4hiv4si2_4): Ditto. 17124 (*avx512f_zero_extendv8siv8di2_2): Ditto. 17125 (*avx2_zero_extendv4siv4di2_2): Ditto. 17126 (*sse4_1_zero_extendv2siv2di2_4): Ditto. 17127 (VI248_256, VI248_512, VI148_512, VI148_256, VI148_128): New 17128 mode iterator. 17129 171302021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> 17131 17132 * config/rs6000/rs6000-builtin-new.def: Add always, power5, and 17133 power6 stanzas. 17134 171352021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> 17136 17137 * config/rs6000/rs6000-builtin-new.def: Add vsx stanza. 17138 171392021-08-11 Bill Schmidt <wschmidt@linux.ibm.com> 17140 17141 * config/rs6000/rs6000-builtin-new.def: Finish altivec stanza. 17142 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Move 17143 initialization of pcvoid_type_node here... 17144 (altivec_init_builtins): ...from here. 17145 * config/rs6000/rs6000.h (rs6000_builtin_type_index): Add 17146 RS6000_BTI_const_ptr_void. 17147 (pcvoid_type_node): New macro. 17148 171492021-08-11 Richard Biener <rguenther@suse.de> 17150 17151 PR target/101877 17152 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not decompose 17153 hard-register accesses. 17154 171552021-08-11 Richard Biener <rguenther@suse.de> 17156 17157 * tree-ssa-operands.c (operands_scanner::get_expr_operands): 17158 Do not look at COMPONENT_REF FIELD_DECLs TREE_THIS_VOLATILE 17159 to determine has_volatile_ops. 17160 171612021-08-11 Eric Botcazou <ebotcazou@gcc.gnu.org> 17162 17163 * cfgexpand.c (expand_used_vars): Reuse attribs local variable. 17164 171652021-08-11 Jan Hubicka <hubicka@ucw.cz> 17166 Alexandre Oliva <oliva@adacore.com> 17167 17168 * ipa-modref.c (modref_lattice::dump): Fix escape_point's min_flags 17169 dumping. 17170 (modref_lattice::merge_deref): Fix handling of indirect scape points. 17171 (update_escape_summary_1): Likewise. 17172 (update_escape_summary): Likewise. 17173 (ipa_merge_modref_summary_after_inlining): Likewise. 17174 171752021-08-11 Richard Biener <rguenther@suse.de> 17176 17177 PR middle-end/101858 17178 * fold-const.c (fold_binary_loc): Guard simplification 17179 of X < (cast) (1 << Y) to integer types. 17180 171812021-08-11 Richard Biener <rguenther@suse.de> 17182 17183 PR tree-optimization/101861 17184 * tree-vect-stmts.c (vectorizable_load): Fix error in 17185 previous change with regard to gather vectorization. 17186 171872021-08-11 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 17188 17189 PR target/66791 17190 * config/arm/arm_neon.h (vdup_n_s8): Replace call to builtin 17191 with constructor. 17192 (vdup_n_s16): Likewise. 17193 (vdup_n_s32): Likewise. 17194 (vdup_n_s64): Likewise. 17195 (vdup_n_u8): Likewise. 17196 (vdup_n_u16): Likewise. 17197 (vdup_n_u32): Likewise. 17198 (vdup_n_u64): Likewise. 17199 (vdup_n_p8): Likewise. 17200 (vdup_n_p16): Likewise. 17201 (vdup_n_p64): Likewise. 17202 (vdup_n_f16): Likewise. 17203 (vdup_n_f32): Likewise. 17204 (vdupq_n_s8): Likewise. 17205 (vdupq_n_s16): Likewise. 17206 (vdupq_n_s32): Likewise. 17207 (vdupq_n_s64): Likewise. 17208 (vdupq_n_u8): Likewise. 17209 (vdupq_n_u16): Likewise. 17210 (vdupq_n_u32): Likewise. 17211 (vdupq_n_u64): Likewise. 17212 (vdupq_n_p8): Likewise. 17213 (vdupq_n_p16): Likewise. 17214 (vdupq_n_p64): Likewise. 17215 (vdupq_n_f16): Likewise. 17216 (vdupq_n_f32): Likewise. 17217 (vmov_n_s8): Replace call to builtin with call to corresponding 17218 vdup_n intrinsic. 17219 (vmov_n_s16): Likewise. 17220 (vmov_n_s32): Likewise. 17221 (vmov_n_s64): Likewise. 17222 (vmov_n_u8): Likewise. 17223 (vmov_n_u16): Likewise. 17224 (vmov_n_u32): Likewise. 17225 (vmov_n_u64): Likewise. 17226 (vmov_n_p8): Likewise. 17227 (vmov_n_p16): Likewise. 17228 (vmov_n_f16): Likewise. 17229 (vmov_n_f32): Likewise. 17230 (vmovq_n_s8): Likewise. 17231 (vmovq_n_s16): Likewise. 17232 (vmovq_n_s32): Likewise. 17233 (vmovq_n_s64): Likewise. 17234 (vmovq_n_u8): Likewise. 17235 (vmovq_n_u16): Likewise. 17236 (vmovq_n_u32): Likewise. 17237 (vmovq_n_u64): Likewise. 17238 (vmovq_n_p8): Likewise. 17239 (vmovq_n_p16): Likewise. 17240 (vmovq_n_f16): Likewise. 17241 (vmovq_n_f32): Likewise. 17242 * config/arm/arm_neon_builtins.def: Remove entries for vdup_n. 17243 172442021-08-11 liuhongt <hongtao.liu@intel.com> 17245 17246 PR target/98309 17247 * config/i386/i386.md (ldexp<mode>3): Extend to vscalefs[sd] 17248 when TARGET_AVX512F and TARGET_SSE_MATH. 17249 172502021-08-10 Jakub Jelinek <jakub@redhat.com> 17251 17252 PR target/80355 17253 * config/i386/i386-expand.c (expand_vec_perm_even_odd): Return false 17254 for V32HImode if !TARGET_AVX512BW. 17255 (ix86_vectorize_vec_perm_const) <case E_V32HImode, case E_V64QImode>: 17256 If !TARGET_AVX512BW and TARGET_AVX512F and d.testing_p, don't fail 17257 early, but actually check the permutation. 17258 172592021-08-10 Richard Biener <rguenther@suse.de> 17260 17261 PR tree-optimization/101809 17262 * tree-vect-stmts.c (get_load_store_type): Allow emulated 17263 gathers with offset vector nunits being a constant multiple 17264 of the data vector nunits. 17265 (vect_get_gather_scatter_ops): Use the appropriate nunits 17266 for the offset vector defs. 17267 (vectorizable_store): Adjust call to 17268 vect_get_gather_scatter_ops. 17269 (vectorizable_load): Likewise. Handle the case of less 17270 offset vectors than data vectors. 17271 172722021-08-10 Jakub Jelinek <jakub@redhat.com> 17273 17274 PR target/80355 17275 * config/i386/sse.md (*avx512f_shuf_<shuffletype>64x2_1<mask_name>_1, 17276 *avx512f_shuf_<shuffletype>32x4_1<mask_name>_1): New define_insn 17277 patterns. 17278 172792021-08-10 Richard Biener <rguenther@suse.de> 17280 17281 PR tree-optimization/101801 17282 PR tree-optimization/101819 17283 * tree-vectorizer.h (vect_emulated_vector_p): Declare. 17284 * tree-vect-loop.c (vect_emulated_vector_p): New function. 17285 (vectorizable_reduction): Re-instantiate a check for emulated 17286 operations. 17287 * tree-vect-stmts.c (vectorizable_shift): Likewise. 17288 (vectorizable_operation): Likewise. Cost emulated vector 17289 operations according to the scalar sequence synthesized by 17290 vector lowering. 17291 172922021-08-10 Richard Biener <rguenther@suse.de> 17293 17294 PR middle-end/101824 17295 * tree-nested.c (get_frame_field): Mark the COMPONENT_REF as 17296 volatile in case the variable was. 17297 172982021-08-10 H.J. Lu <hjl.tools@gmail.com> 17299 17300 PR target/101804 17301 * config/i386/constraints.md (BC): Document for integer SSE 17302 constant all bits set operand. 17303 (BF): New constraint for const floating-point all bits set 17304 vectors. 17305 * config/i386/i386.c (standard_sse_constant_p): Likewise. 17306 (standard_sse_constant_opcode): Likewise. 17307 * config/i386/sse.md (sseconstm1): New mode attribute. 17308 (mov<mode>_internal): Replace BC with <sseconstm1>. 17309 173102021-08-10 liuhongt <hongtao.liu@intel.com> 17311 17312 * config/i386/sse.md (cond_<insn><mode>): New expander. 17313 (VI248_AVX512VLBW): New mode iterator. 17314 * config/i386/predicates.md 17315 (nonimmediate_or_const_vec_dup_operand): New predicate. 17316 173172021-08-09 Andrew MacLeod <amacleod@redhat.com> 17318 17319 PR tree-optimization/101741 17320 * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Check 17321 type of parameter for toupper/tolower. 17322 173232021-08-09 Martin Jambor <mjambor@suse.cz> 17324 17325 PR testsuite/101654 17326 * ipa-prop.c (propagate_controlled_uses): Removed a spurious space. 17327 173282021-08-09 Pat Haugen <pthaugen@linux.ibm.com> 17329 17330 * config/rs6000/rs6000.c (is_load_insn1): Verify destination is a 17331 register. 17332 (is_store_insn1): Verify source is a register. 17333 173342021-08-09 Uro�� Bizjak <ubizjak@gmail.com> 17335 17336 PR target/101812 17337 * config/i386/mmx.md (<any_logic:code>v2sf3): 17338 Rename from *mmx_<any_logic:code>v2sf3 17339 173402021-08-09 Thomas Schwinge <thomas@codesourcery.com> 17341 17342 * config/nvptx/nvptx.c: Cross-reference parts adapted in 17343 'gcc/omp-oacc-neuter-broadcast.cc'. 17344 * omp-low.c: Likewise. 17345 * omp-oacc-neuter-broadcast.cc: Cross-reference parts adapted from 17346 the above files. 17347 173482021-08-09 Julian Brown <julian@codesourcery.com> 17349 Kwok Cheung Yeung <kcy@codesourcery.com> 17350 Thomas Schwinge <thomas@codesourcery.com> 17351 17352 * config/gcn/gcn.c (gcn_init_builtins): Override decls for 17353 BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START, 17354 BUILT_IN_GOACC_SINGLE_COPY_END and BUILT_IN_GOACC_BARRIER. 17355 (gcn_goacc_validate_dims): Turn on worker partitioning unconditionally. 17356 (gcn_fork_join): Update comment. 17357 * config/gcn/gcn.opt (flag_worker_partitioning): Remove. 17358 (macc_experimental_workers): Remove unused option. 17359 173602021-08-09 Julian Brown <julian@codesourcery.com> 17361 Nathan Sidwell <nathan@codesourcery.com> (via 'gcc/config/nvptx/nvptx.c' master) 17362 Kwok Cheung Yeung <kcy@codesourcery.com> 17363 Thomas Schwinge <thomas@codesourcery.com> 17364 17365 * Makefile.in (OBJS): Add omp-oacc-neuter-broadcast.o. 17366 * doc/tm.texi.in (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): 17367 Add documentation hook. 17368 * doc/tm.texi: Regenerate. 17369 * omp-oacc-neuter-broadcast.cc: New file. 17370 * omp-builtins.def (BUILT_IN_GOACC_BARRIER) 17371 (BUILT_IN_GOACC_SINGLE_START, BUILT_IN_GOACC_SINGLE_COPY_START) 17372 (BUILT_IN_GOACC_SINGLE_COPY_END): New builtins. 17373 * passes.def (pass_omp_oacc_neuter_broadcast): Add pass. 17374 * target.def (goacc.create_worker_broadcast_record): Add target 17375 hook. 17376 * tree-pass.h (make_pass_omp_oacc_neuter_broadcast): Add 17377 prototype. 17378 * config/gcn/gcn-protos.h (gcn_goacc_adjust_propagation_record): 17379 Rename prototype to... 17380 (gcn_goacc_create_worker_broadcast_record): ... this. 17381 * config/gcn/gcn-tree.c (gcn_goacc_adjust_propagation_record): Rename 17382 function to... 17383 (gcn_goacc_create_worker_broadcast_record): ... this. 17384 * config/gcn/gcn.c (TARGET_GOACC_ADJUST_PROPAGATION_RECORD): 17385 Rename to... 17386 (TARGET_GOACC_CREATE_WORKER_BROADCAST_RECORD): ... this. 17387 173882021-08-09 Tejas Belagod <tejas.belagod@arm.com> 17389 17390 PR target/101609 17391 * config/aarch64/aarch64-simd.md (vlshr<mode>3, vashr<mode>3): Use 17392 the right iterator. 17393 173942021-08-09 Thomas Schwinge <thomas@codesourcery.com> 17395 17396 * Makefile.in (GTFILES): Remove '$(srcdir)/omp-offload.c'. 17397 173982021-08-09 Thomas Schwinge <thomas@codesourcery.com> 17399 17400 * builtins.def (DEF_GOACC_BUILTIN, DEF_GOMP_BUILTIN): Don't 17401 consider '-foffload-abi'. 17402 * common.opt (-foffload-abi): Remove 'Var', 'Init'. 17403 * opts.c (common_handle_option) <-foffload-abi> [ACCEL_COMPILER]: 17404 Ignore. 17405 174062021-08-09 Thomas Schwinge <thomas@codesourcery.com> 17407 17408 * optc-gen.awk: Sanity check that 'Init' doesn't appear without 17409 'Var'. 17410 174112021-08-09 Thomas Schwinge <thomas@codesourcery.com> 17412 17413 * omp-builtins.def (BUILT_IN_ACC_GET_DEVICE_TYPE): Remove. 17414 174152021-08-09 Thomas Schwinge <thomas@codesourcery.com> 17416 17417 * doc/gty.texi (Files): Update. 17418 174192021-08-09 Thomas Schwinge <thomas@codesourcery.com> 17420 17421 * doc/gty.texi (Files): Fix GTY header file example. 17422 174232021-08-09 Roger Sayle <roger@nextmovesoftware.com> 17424 17425 * tree-ssa-ccp.c (value_mask_to_min_max): Helper function to 17426 determine the upper and lower bounds from a mask-value pair. 17427 (bit_value_unop) [ABS_EXPR, ABSU_EXPR]: Add support for 17428 absolute value and unsigned absolute value expressions. 17429 (bit_value_binop): Initialize *VAL's precision. 17430 [LT_EXPR, LE_EXPR]: Use value_mask_to_min_max to determine 17431 upper and lower bounds of operands. Add LE_EXPR/GE_EXPR 17432 support when the operands are unknown but potentially equal. 17433 [MIN_EXPR, MAX_EXPR]: Support minimum/maximum expressions. 17434 174352021-08-09 Bin Cheng <bin.cheng@linux.alibaba.com> 17436 17437 * config/aarch64/aarch64.md 17438 (*extend<SHORT:mode><GPI:mode>2_aarch64): Use %<GPI:w>0. 17439 174402021-08-08 Sergei Trofimovich <siarheit@google.com> 17441 17442 * lra-constraints.c: Fix s/otput/output/ typo. 17443 174442021-08-06 Martin Sebor <msebor@redhat.com> 17445 17446 * builtins.c (expand_builtin_memchr): Move to gimple-ssa-warn-access.cc. 17447 (expand_builtin_strcat): Same. 17448 (expand_builtin_stpncpy): Same. 17449 (expand_builtin_strncat): Same. 17450 (check_read_access): Same. 17451 (check_memop_access): Same. 17452 (expand_builtin_strlen): Move checks to gimple-ssa-warn-access.cc. 17453 (expand_builtin_strnlen): Same. 17454 (expand_builtin_memcpy): Same. 17455 (expand_builtin_memmove): Same. 17456 (expand_builtin_mempcpy): Same. 17457 (expand_builtin_strcpy): Same. 17458 (expand_builtin_strcpy_args): Same. 17459 (expand_builtin_stpcpy_1): Same. 17460 (expand_builtin_strncpy): Same. 17461 (expand_builtin_memset): Same. 17462 (expand_builtin_bzero): Same. 17463 (expand_builtin_strcmp): Same. 17464 (expand_builtin_strncmp): Same. 17465 (expand_builtin): Remove handlers. 17466 (fold_builtin_strlen): Add a comment. 17467 * builtins.h (check_access): Move to gimple-ssa-warn-access.cc. 17468 * calls.c (maybe_warn_nonstring_arg): Same. 17469 * diagnostic-spec.c (nowarn_spec_t::nowarn_spec_t): Add warning option. 17470 * gimple-fold.c (gimple_fold_builtin_strcpy): Pass argument to callee. 17471 (gimple_fold_builtin_stpcpy): Same. 17472 * gimple-ssa-warn-access.cc (has_location): New function. 17473 (get_location): Same. 17474 (get_callee_fndecl): Same. 17475 (call_nargs): Same. 17476 (call_arg): Same. 17477 (warn_string_no_nul): Define. 17478 (unterminated_array): Same. 17479 (check_nul_terminated_array): Same. 17480 (maybe_warn_nonstring_arg): Same. 17481 (maybe_warn_for_bound): Same. 17482 (warn_for_access): Same. 17483 (check_access): Same. 17484 (check_memop_access): Same. 17485 (check_read_access): Same. 17486 (warn_dealloc_offset): Use helper functions. 17487 (maybe_emit_free_warning): Same. 17488 (class pass_waccess): Add members. 17489 (check_strcat): New function. 17490 (check_strncat): New function. 17491 (check_stxcpy): New function. 17492 (check_stxncpy): New function. 17493 (check_strncmp): New function. 17494 (pass_waccess::check_builtin): New function. 17495 (pass_waccess::check): Call it. 17496 * gimple-ssa-warn-access.h (warn_string_no_nul): Move here from 17497 builtins.h. 17498 (maybe_warn_for_bound): Same. 17499 (check_access): Same. 17500 (check_memop_access): Same. 17501 (check_read_access): Same. 17502 * pointer-query.h (struct access_data): Define a ctor overload. 17503 175042021-08-06 Richard Biener <rguenther@suse.de> 17505 17506 PR tree-optimization/101801 17507 * tree-vectorizer.h (vect_worthwhile_without_simd_p): Rename... 17508 (vect_can_vectorize_without_simd_p): ... to this. 17509 * tree-vect-loop.c (vect_worthwhile_without_simd_p): Rename... 17510 (vect_can_vectorize_without_simd_p): ... to this and fold 17511 in vect_min_worthwhile_factor. 17512 (vect_min_worthwhile_factor): Remove. 17513 (vectorizable_reduction): Adjust and remove the cost part. 17514 * tree-vect-stmts.c (vectorizable_shift): Likewise. 17515 (vectorizable_operation): Likewise. 17516 175172021-08-06 Uro�� Bizjak <ubizjak@gmail.com> 17518 17519 PR target/101797 17520 * config/i386/i386.md (cmove reg-to-reg move elimination peephole2s): 17521 Add general_gr_operand predicate to operand 3. 17522 175232021-08-06 Roger Sayle <roger@nextmovesoftware.com> 17524 17525 * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): Use 17526 CFN_BUILT_IN_CLRSB* instead of BUILT_IN_CLRSB* for consistency. 17527 175282021-08-06 Tamar Christina <tamar.christina@arm.com> 17529 17530 * config/aarch64/aarch64-sve-builtins.cc (register_svpattern, 17531 register_svprfop): Pass vec<> by pointer. 17532 * langhooks-def.h (lhd_simulate_enum_decl): Likewise. 17533 * langhooks.c (lhd_simulate_enum_decl): Likewise. 17534 * langhooks.h (struct lang_hooks_for_types): Likewise. 17535 175362021-08-06 Jonathan Wright <jonathan.wright@arm.com> 17537 17538 * config/aarch64/arm_neon.h (vst1_bf16_x2): Use 17539 __builtin_memcpy instead of constructing an additional 17540 __builtin_aarch64_simd_oi one vector at a time. 17541 (vst1q_bf16_x2): Likewise. 17542 (vst1_bf16_x3): Use __builtin_memcpy instead of constructing 17543 an additional __builtin_aarch64_simd_ci one vector at a time. 17544 (vst1q_bf16_x3): Likewise. 17545 (vst1_bf16_x4): Use __builtin_memcpy instead of a union. 17546 (vst1q_bf16_x4): Likewise. 17547 (vst2_bf16): Use __builtin_memcpy instead of constructing an 17548 additional __builtin_aarch64_simd_oi one vector at a time. 17549 (vst2q_bf16): Likewise. 17550 (vst3_bf16): Use __builtin_memcpy instead of constructing an 17551 additional __builtin_aarch64_simd_ci mode one vector at a 17552 time. 17553 (vst3q_bf16): Likewise. 17554 (vst4_bf16): Use __builtin_memcpy instead of constructing an 17555 additional __builtin_aarch64_simd_xi one vector at a time. 17556 (vst4q_bf16): Likewise. 17557 175582021-08-06 Jonathan Wright <jonathan.wright@arm.com> 17559 17560 * config/aarch64/arm_neon.h (__ST2_LANE_FUNC): Delete. 17561 (__ST2Q_LANE_FUNC): Delete. 17562 (vst2_lane_f16): Use __builtin_memcpy to copy vector 17563 structure instead of constructing __builtin_aarch64_simd_oi 17564 one vector at a time. 17565 (vst2_lane_f32): Likewise. 17566 (vst2_lane_f64): Likewise. 17567 (vst2_lane_p8): Likewise. 17568 (vst2_lane_p16): Likewise. 17569 (vst2_lane_p64): Likewise. 17570 (vst2_lane_s8): Likewise. 17571 (vst2_lane_s16): Likewise. 17572 (vst2_lane_s32): Likewise. 17573 (vst2_lane_s64): Likewise. 17574 (vst2_lane_u8): Likewise. 17575 (vst2_lane_u16): Likewise. 17576 (vst2_lane_u32): Likewise. 17577 (vst2_lane_u64): Likewise. 17578 (vst2_lane_bf16): Likewise. 17579 (vst2q_lane_f16): Use __builtin_memcpy to copy vector 17580 structure instead of using a union. 17581 (vst2q_lane_f32): Likewise. 17582 (vst2q_lane_f64): Likewise. 17583 (vst2q_lane_p8): Likewise. 17584 (vst2q_lane_p16): Likewise. 17585 (vst2q_lane_p64): Likewise. 17586 (vst2q_lane_s8): Likewise. 17587 (vst2q_lane_s16): Likewise. 17588 (vst2q_lane_s32): Likewise. 17589 (vst2q_lane_s64): Likewise. 17590 (vst2q_lane_u8): Likewise. 17591 (vst2q_lane_u16): Likewise. 17592 (vst2q_lane_u32): Likewise. 17593 (vst2q_lane_u64): Likewise. 17594 (vst2q_lane_bf16): Likewise. 17595 175962021-08-06 Jonathan Wright <jonathan.wright@arm.com> 17597 17598 * config/aarch64/arm_neon.h (__ST3_LANE_FUNC): Delete. 17599 (__ST3Q_LANE_FUNC): Delete. 17600 (vst3_lane_f16): Use __builtin_memcpy to copy vector 17601 structure instead of constructing __builtin_aarch64_simd_ci 17602 one vector at a time. 17603 (vst3_lane_f32): Likewise. 17604 (vst3_lane_f64): Likewise. 17605 (vst3_lane_p8): Likewise. 17606 (vst3_lane_p16): Likewise. 17607 (vst3_lane_p64): Likewise. 17608 (vst3_lane_s8): Likewise. 17609 (vst3_lane_s16): Likewise. 17610 (vst3_lane_s32): Likewise. 17611 (vst3_lane_s64): Likewise. 17612 (vst3_lane_u8): Likewise. 17613 (vst3_lane_u16): Likewise. 17614 (vst3_lane_u32): Likewise. 17615 (vst3_lane_u64): Likewise. 17616 (vst3_lane_bf16): Likewise. 17617 (vst3q_lane_f16): Use __builtin_memcpy to copy vector 17618 structure instead of using a union. 17619 (vst3q_lane_f32): Likewise. 17620 (vst3q_lane_f64): Likewise. 17621 (vst3q_lane_p8): Likewise. 17622 (vst3q_lane_p16): Likewise. 17623 (vst3q_lane_p64): Likewise. 17624 (vst3q_lane_s8): Likewise. 17625 (vst3q_lane_s16): Likewise. 17626 (vst3q_lane_s32): Likewise. 17627 (vst3q_lane_s64): Likewise. 17628 (vst3q_lane_u8): Likewise. 17629 (vst3q_lane_u16): Likewise. 17630 (vst3q_lane_u32): Likewise. 17631 (vst3q_lane_u64): Likewise. 17632 (vst3q_lane_bf16): Likewise. 17633 176342021-08-06 Jonathan Wright <jonathan.wright@arm.com> 17635 17636 * config/aarch64/arm_neon.h (__ST4_LANE_FUNC): Delete. 17637 (__ST4Q_LANE_FUNC): Delete. 17638 (vst4_lane_f16): Use __builtin_memcpy to copy vector 17639 structure instead of constructing __builtin_aarch64_simd_xi 17640 one vector at a time. 17641 (vst4_lane_f32): Likewise. 17642 (vst4_lane_f64): Likewise. 17643 (vst4_lane_p8): Likewise. 17644 (vst4_lane_p16): Likewise. 17645 (vst4_lane_p64): Likewise. 17646 (vst4_lane_s8): Likewise. 17647 (vst4_lane_s16): Likewise. 17648 (vst4_lane_s32): Likewise. 17649 (vst4_lane_s64): Likewise. 17650 (vst4_lane_u8): Likewise. 17651 (vst4_lane_u16): Likewise. 17652 (vst4_lane_u32): Likewise. 17653 (vst4_lane_u64): Likewise. 17654 (vst4_lane_bf16): Likewise. 17655 (vst4q_lane_f16): Use __builtin_memcpy to copy vector 17656 structure instead of using a union. 17657 (vst4q_lane_f32): Likewise. 17658 (vst4q_lane_f64): Likewise. 17659 (vst4q_lane_p8): Likewise. 17660 (vst4q_lane_p16): Likewise. 17661 (vst4q_lane_p64): Likewise. 17662 (vst4q_lane_s8): Likewise. 17663 (vst4q_lane_s16): Likewise. 17664 (vst4q_lane_s32): Likewise. 17665 (vst4q_lane_s64): Likewise. 17666 (vst4q_lane_u8): Likewise. 17667 (vst4q_lane_u16): Likewise. 17668 (vst4q_lane_u32): Likewise. 17669 (vst4q_lane_u64): Likewise. 17670 (vst4q_lane_bf16): Likewise. 17671 176722021-08-06 Martin Liska <mliska@suse.cz> 17673 17674 * config/rs6000/rs6000.c (rs6000_option_override_internal): When 17675 a target option is restored, it can have 17676 rs6000_long_double_type_size set to FLOAT_PRECISION_TFmode 17677 and error should not be emitted. 17678 176792021-08-06 Sebastian Huber <sebastian.huber@embedded-brains.de> 17680 17681 * gcov-io.h (gcov_write): Declare. 17682 * gcov-io.c (gcov_write): New. 17683 (gcov_write_counter): Remove. 17684 (gcov_write_tag_length): Likewise. 17685 (gcov_write_summary): Replace gcov_write_tag_length() with calls to 17686 gcov_write_unsigned(). 17687 * doc/invoke.texi (fprofile-info-section): Mention 17688 __gcov_info_to_gdca(). 17689 176902021-08-06 Martin Sebor <msebor@redhat.com> 17691 17692 * dominance.c (prune_bbs_to_update_dominators): Adjust by-value vec 17693 arguments to by-reference. 17694 (iterate_fix_dominators): Same. 17695 * dominance.h (iterate_fix_dominators): Same. 17696 * ipa-prop.h: Call auto_vec::to_vec_legacy. 17697 * tree-data-ref.c (dump_data_dependence_relation): Adjust by-value vec 17698 arguments to by-reference. 17699 (debug_data_dependence_relation): Same. 17700 (dump_data_dependence_relations): Same. 17701 * tree-data-ref.h (debug_data_dependence_relation): Same. 17702 (dump_data_dependence_relations): Same. 17703 * tree-predcom.c (dump_chains): Same. 17704 (initialize_root_vars_lm): Same. 17705 (determine_unroll_factor): Same. 17706 (replace_phis_by_defined_names): Same. 17707 (insert_init_seqs): Same. 17708 (pcom_worker::tree_predictive_commoning_loop): Call 17709 auto_vec::to_vec_legacy. 17710 * tree-ssa-pre.c (insert_into_preds_of_block): Adjust by-value vec 17711 arguments to by-reference. 17712 * tree-ssa-threadbackward.c (populate_worklist): Same. 17713 (back_threader::resolve_def): Same. 17714 * tree-vect-data-refs.c (vect_check_nonzero_value): Same. 17715 (vect_enhance_data_refs_alignment): Same. 17716 (vect_check_lower_bound): Same. 17717 (vect_prune_runtime_alias_test_list): Same. 17718 (vect_permute_store_chain): Same. 17719 * tree-vect-slp-patterns.c (vect_normalize_conj_loc): Same. 17720 * tree-vect-stmts.c (vect_create_vectorized_demotion_stmts): Same. 17721 * tree-vectorizer.h (vect_permute_store_chain): Same. 17722 * vec.c (test_init): New function. 17723 (vec_c_tests): Call new function. 17724 * vec.h (vec): Declare ctors, dtor, and assignment. 17725 (auto_vec::vec_to_legacy): New function. 17726 (vec::copy): Adjust initialization. 17727 177282021-08-05 H.J. Lu <hjl.tools@gmail.com> 17729 17730 PR target/99744 17731 * config/i386/i386.c (ix86_can_inline_p): Ignore MASK_80387 if 17732 callee only uses GPRs. 17733 * config/i386/ia32intrin.h: Revert commit 5463cee2770. 17734 * config/i386/serializeintrin.h: Revert commit 71958f740f1. 17735 * config/i386/x86gprintrin.h: Add 17736 #pragma GCC target("general-regs-only") and #pragma GCC pop_options 17737 to disable non-GPR ISAs. 17738 177392021-08-05 Richard Sandiford <richard.sandiford@arm.com> 17740 17741 PR middle-end/101787 17742 * doc/md.texi (cond_ashl, cond_ashr, cond_lshr): Document. 17743 177442021-08-05 Richard Sandiford <richard.sandiford@arm.com> 17745 17746 * tree-vectorizer.h (vect_is_store_elt_extraction, vect_is_reduction) 17747 (vect_reduc_type, vect_embedded_comparison_type, vect_comparison_type) 17748 (vect_is_extending_load, vect_is_integer_truncation): New functions, 17749 moved from aarch64.c but given different names. 17750 * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction) 17751 (aarch64_is_reduction, aarch64_reduc_type) 17752 (aarch64_embedded_comparison_type, aarch64_comparison_type) 17753 (aarch64_extending_load_p, aarch64_integer_truncation_p): Delete 17754 in favor of the above. Update callers accordingly. 17755 177562021-08-05 Richard Earnshaw <rearnsha@arm.com> 17757 17758 PR target/101723 17759 * config/arm/arm-cpus.in (generic-armv7-a): Add quirk to suppress 17760 writing .cpu directive in asm output. 17761 * config/arm/arm.c (arm_identify_fpu_from_isa): New variable. 17762 (arm_last_printed_arch_string): Delete. 17763 (arm_last-printed_fpu_string): Delete. 17764 (arm_configure_build_target): If use of floating-point/SIMD is 17765 disabled, remove all fp/simd related features from the target ISA. 17766 (last_arm_targ_options): New variable. 17767 (arm_print_asm_arch_directives): Add new parameters. Change order 17768 of emitted directives and handle all cases here. 17769 (arm_file_start): Always call arm_print_asm_arch_directives, move 17770 all generation of .arch/.arch_extension here. 17771 (arm_file_end): Call arm_print_asm_arch. 17772 (arm_declare_function_name): Call arm_print_asm_arch_directives 17773 instead of printing .arch/.fpu directives directly. 17774 177752021-08-05 Richard Earnshaw <rearnsha@arm.com> 17776 17777 * config/arm/arm.c (arm_configure_build_target): Don't call 17778 arm_option_reconfigure_globals. 17779 (arm_option_restore): Call arm_option_reconfigure_globals after 17780 reconfiguring the target. 17781 * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. 17782 177832021-08-05 Richard Earnshaw <rearnsha@arm.com> 17784 17785 * config/arm/arm.c (arm_configure_build_target): Ensure the target's 17786 arch_name is always set. 17787 177882021-08-05 Jonathan Wright <jonathan.wright@arm.com> 17789 17790 * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost 17791 of vec_select high-half from being added into Neon subtract 17792 cost. 17793 177942021-08-05 Jonathan Wright <jonathan.wright@arm.com> 17795 17796 * config/aarch64/aarch64.c: Traverse RTL tree to prevent cost 17797 of vec_select high-half from being added into Neon add cost. 17798 177992021-08-05 Kewen Lin <linkw@linux.ibm.com> 17800 17801 * cfgloop.h (loops_list::loops_list): Add one optional argument 17802 root and adjust accordingly, update loop tree walking and factor 17803 out to ... 17804 * cfgloop.c (loops_list::walk_loop_tree): ... this. New function. 17805 178062021-08-05 Eric Botcazou <ebotcazou@gcc.gnu.org> 17807 17808 PR tree-optimization/101626 17809 * tree-sra.c (propagate_subaccesses_from_rhs): Do not set the 17810 reverse scalar storage order on a pointer or vector component. 17811 178122021-08-05 liuhongt <hongtao.liu@intel.com> 17813 17814 * config/i386/sse.md (cond_<code><mode>): New expander. 17815 178162021-08-05 liuhongt <hongtao.liu@intel.com> 17817 17818 * config/i386/sse.md (cond_<code><mode>): New expander. 17819 178202021-08-05 liuhongt <hongtao.liu@intel.com> 17821 17822 * config/i386/sse.md (cond_<code><mode>): New expander. 17823 178242021-08-04 David Malcolm <dmalcolm@redhat.com> 17825 17826 PR analyzer/101570 17827 * Makefile.in (ANALYZER_OBJS): Add analyzer/region-model-asm.o. 17828 178292021-08-04 H.J. Lu <hjl.tools@gmail.com> 17830 17831 PR target/101742 17832 * config/i386/i386.h (STORE_MAX_PIECES): Allow 16/32/64 bytes 17833 only if TARGET_INTER_UNIT_MOVES_TO_VEC is true. 17834 178352021-08-04 H.J. Lu <hjl.tools@gmail.com> 17836 17837 PR target/101772 17838 * config/i386/i386-expand.c (ix86_expand_vector_move): Call 17839 ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy 17840 data with SSE register from one memory location to another. 17841 178422021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> 17843 17844 * config/s390/s390.c (expand_perm_with_vpdi): New function. 17845 (vectorize_vec_perm_const_1): Call expand_perm_with_vpdi. 17846 * config/s390/vector.md (*vpdi1<mode>, @vpdi1<mode>): Enable a 17847 parameterized expander. 17848 (*vpdi4<mode>, @vpdi4<mode>): Likewise. 17849 178502021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> 17851 17852 * config/s390/s390.c (MAX_VECT_LEN): Define macro. 17853 (struct expand_vec_perm_d): Define struct. 17854 (expand_perm_with_merge): New function. 17855 (vectorize_vec_perm_const_1): New function. 17856 (s390_vectorize_vec_perm_const): New function. 17857 (TARGET_VECTORIZE_VEC_PERM_CONST): Define target macro. 17858 178592021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> 17860 17861 * config/s390/vector.md (V_HW_64): Remove mode iterator. 17862 (*vec_load_pair<mode>): Use V_HW_2 instead of V_HW_64. 17863 * config/s390/vx-builtins.md 17864 (vec_scatter_element<V_HW_2:mode>_SI): Use V_HW_2 instead of 17865 V_HW_64. 17866 178672021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> 17868 17869 * config/s390/s390.md (UNSPEC_VEC_PERMI): Remove constant 17870 definition. 17871 * config/s390/vector.md (*vpdi1<mode>, *vpdi4<mode>): New pattern 17872 definitions. 17873 * config/s390/vx-builtins.md (*vec_permi<mode>): Emit generic rtx 17874 instead of an unspec. 17875 178762021-08-04 Andreas Krebbel <krebbel@linux.ibm.com> 17877 17878 * config/s390/s390-modes.def: Add more vector modes to support 17879 concatenation of two vectors. 17880 * config/s390/s390-protos.h (s390_expand_merge_perm_const): Add 17881 prototype. 17882 (s390_expand_merge): Likewise. 17883 * config/s390/s390.c (s390_expand_merge_perm_const): New function. 17884 (s390_expand_merge): New function. 17885 * config/s390/s390.md (UNSPEC_VEC_MERGEH, UNSPEC_VEC_MERGEL): 17886 Remove constant definitions. 17887 * config/s390/vector.md (V_HW_2): Add mode iterators. 17888 (VI_HW_4, V_HW_4): Rename VI_HW_4 to V_HW_4. 17889 (vec_2x_nelts, vec_2x_wide): New mode attributes. 17890 (*vmrhb, *vmrlb, *vmrhh, *vmrlh, *vmrhf, *vmrlf, *vmrhg, *vmrlg): 17891 New pattern definitions. 17892 (vec_widen_umult_lo_<mode>, vec_widen_umult_hi_<mode>) 17893 (vec_widen_smult_lo_<mode>, vec_widen_smult_hi_<mode>) 17894 (vec_unpacks_lo_v4sf, vec_unpacks_hi_v4sf, vec_unpacks_lo_v2df) 17895 (vec_unpacks_hi_v2df): Adjust expanders to emit non-unspec RTX for 17896 vec merge. 17897 * config/s390/vx-builtins.md (V_HW_4): Remove mode iterator. Now 17898 in vector.md. 17899 (vec_mergeh<mode>, vec_mergel<mode>): Use s390_expand_merge to 17900 emit vec merge pattern. 17901 179022021-08-04 Jonathan Wright <jonathan.wright@arm.com> 17903 17904 * config/aarch64/aarch64.c (aarch64_strip_extend_vec_half): 17905 Define. 17906 (aarch64_rtx_mult_cost): Traverse RTL tree to prevent cost of 17907 vec_select high-half from being added into Neon multiply 17908 cost. 17909 * rtlanal.c (vec_series_highpart_p): Define. 17910 * rtlanal.h (vec_series_highpart_p): Declare. 17911 179122021-08-04 Jonathan Wright <jonathan.wright@arm.com> 17913 17914 * config/aarch64/aarch64.c (aarch64_strip_duplicate_vec_elt): 17915 Define. 17916 (aarch64_rtx_mult_cost): Traverse RTL tree to prevent 17917 vec_select cost from being added into Neon multiply cost. 17918 179192021-08-04 Richard Sandiford <richard.sandiford@arm.com> 17920 17921 * tree-vect-loop.c (vect_better_loop_vinfo_p): Detect cases in 17922 which old_loop_vinfo is an epilogue loop that handles a constant 17923 number of iterations. 17924 179252021-08-04 Richard Sandiford <richard.sandiford@arm.com> 17926 17927 * tree-vect-loop.c (vect_analyze_loop): Print a dump message 17928 when a reanalyzed loop fails to be cheaper than the current 17929 main loop. 17930 179312021-08-04 Richard Sandiford <richard.sandiford@arm.com> 17932 17933 * config/aarch64/aarch64.c: Fix a typo. 17934 179352021-08-04 Vincent Lef��vre <vincent-gcc@vinc17.net> 17936 17937 PR gcov-profile/101773 17938 * gcov-io.c (gcov_close): Check return code of a fclose. 17939 179402021-08-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 17941 17942 PR ada/101575 17943 * dwarf2out.c (dwarf2out_assembly_start): Emit a dummy 17944 .file statement when needed. 17945 179462021-08-04 Richard Biener <rguenther@suse.de> 17947 17948 * tree-vect-data-refs.c (vect_check_gather_scatter): 17949 Include widening conversions only when the result is 17950 still handed by native gather or the current offset 17951 size not already matches the data size. 17952 Also succeed analysis in case there's no native support, 17953 noted by a IFN_LAST ifn and a NULL decl. 17954 (vect_analyze_data_refs): Always consider gathers. 17955 * tree-vect-patterns.c (vect_recog_gather_scatter_pattern): 17956 Test for no IFN gather rather than decl gather. 17957 * tree-vect-stmts.c (vect_model_load_cost): Pass in the 17958 gather-scatter info and cost emulated gathers accordingly. 17959 (vect_truncate_gather_scatter_offset): Properly test for 17960 no IFN gather. 17961 (vect_use_strided_gather_scatters_p): Likewise. 17962 (get_load_store_type): Handle emulated gathers and its 17963 restrictions. 17964 (vectorizable_load): Likewise. Emulate them by extracting 17965 scalar offsets, doing scalar loads and a vector construct. 17966 179672021-08-04 H.J. Lu <hjl.tools@gmail.com> 17968 17969 PR target/101742 17970 * expr.c (op_by_pieces_d::op_by_pieces_d): Add a max_pieces 17971 argument to set m_max_size. 17972 (move_by_pieces_d): Pass MOVE_MAX_PIECES to op_by_pieces_d. 17973 (store_by_pieces_d): Pass STORE_MAX_PIECES to op_by_pieces_d. 17974 (compare_by_pieces_d): Pass COMPARE_MAX_PIECES to op_by_pieces_d. 17975 179762021-08-04 Roger Sayle <roger@nextmovesoftware.com> 17977 Marc Glisse <marc.glisse@inria.fr> 17978 17979 * match.pd (bit_ior, bit_xor): Canonicalize (X*C1)|(X*C2) and 17980 (X*C1)^(X*C2) as X*(C1+C2), and related variants, using 17981 tree_nonzero_bits to ensure that operands are bit-wise disjoint. 17982 179832021-08-04 Richard Biener <rguenther@suse.de> 17984 17985 * tree-ssa-forwprop.c (pass_forwprop::execute): Split 17986 out code to decompose vector loads ... 17987 (optimize_vector_load): ... here. Generalize it to 17988 handle intermediate widening and TARGET_MEM_REF loads 17989 and apply it to loads with a supported vector mode as well. 17990 179912021-08-04 Richard Biener <rguenther@suse.de> 17992 17993 PR tree-optimization/101756 17994 * tree-vect-slp.c (vectorizable_bb_reduc_epilogue): Make sure 17995 the result of the reduction epilogue is compatible to the original 17996 scalar result. 17997 179982021-08-04 liuhongt <hongtao.liu@intel.com> 17999 18000 PR target/101743 18001 * config/i386/i386.md (peephole2): Refine predicate from 18002 register_operand to general_reg_operand. 18003 180042021-08-04 Aldy Hernandez <aldyh@redhat.com> 18005 18006 * gimple-range-path.h (path_range_query::dump): Mark override. 18007 180082021-08-04 Richard Biener <rguenther@suse.de> 18009 18010 PR tree-optimization/101769 18011 * tree-tailcall.c (eliminate_tail_call): Add the created loop 18012 for the first recursion and return it via the new output parameter. 18013 (optimize_tail_call): Pass through new output param. 18014 (tree_optimize_tail_calls_1): After creating all latches, 18015 add the created loop to the loop tree. Do not mark loops for fixup. 18016 180172021-08-04 Martin Liska <mliska@suse.cz> 18018 18019 * doc/invoke.texi: Document threader-mode param. 18020 180212021-08-04 liuhongt <hongtao.liu@intel.com> 18022 18023 * config/i386/sse.md (cond_fma<mode>): New expander. 18024 (cond_fms<mode>): Ditto. 18025 (cond_fnma<mode>): Ditto. 18026 (cond_fnms<mode>): Ditto. 18027 180282021-08-03 Segher Boessenkool <segher@kernel.crashing.org> 18029 18030 * config/rs6000/vsx.md (*vsx_le_perm_store_<mode>): Use && instead of &. 18031 180322021-08-03 Segher Boessenkool <segher@kernel.crashing.org> 18033 18034 * config/rs6000/constraints.md: Remove "e" from the list of available 18035 constraint characters. 18036 180372021-08-03 Eugene Rozenfeld <erozen@microsoft.com> 18038 18039 PR gcov-profile/71672 18040 * auto-profile.c (afdo_indirect_call): Fix setup of the historgram value for indirect calls. 18041 180422021-08-03 Paul A. Clarke <pc@us.ibm.com> 18043 18044 * config/rs6000/smmintrin.h (_mm_minpos_epu16): New. 18045 180462021-08-03 H.J. Lu <hjl.tools@gmail.com> 18047 18048 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): In 64-bit mode, 18049 try XMM31 to avoid vzeroupper. 18050 180512021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18052 18053 * doc/invoke.texi: Document -mtune=neoverse-512tvb and 18054 -mcpu=neoverse-512tvb. 18055 * config/aarch64/aarch64-cores.def (neoverse-512tvb): New entry. 18056 * config/aarch64/aarch64-tune.md: Regenerate. 18057 * config/aarch64/aarch64.c (neoverse512tvb_sve_vector_cost) 18058 (neoverse512tvb_sve_issue_info, neoverse512tvb_vec_issue_info) 18059 (neoverse512tvb_vector_cost, neoverse512tvb_tunings): New structures. 18060 (aarch64_adjust_body_cost_sve): Handle -mtune=neoverse-512tvb. 18061 (aarch64_adjust_body_cost): Likewise. 18062 180632021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18064 18065 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Only 18066 record issue information for operations that occur in the 18067 innermost loop. 18068 180692021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18070 18071 * config/aarch64/aarch64.c (aarch64_multiply_add_p): Add a vec_flags 18072 parameter. Detect cases in which an Advanced SIMD MLA would almost 18073 certainly require a MOV. 18074 (aarch64_count_ops): Update accordingly. 18075 180762021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18077 18078 * config/aarch64/aarch64.c (aarch64_is_store_elt_extraction): New 18079 function, split out from... 18080 (aarch64_detect_vector_stmt_subtype): ...here. 18081 (aarch64_add_stmt_cost): Treat extracting element 0 as free. 18082 180832021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18084 18085 * config/aarch64/aarch64-protos.h (sve_vec_cost): 18086 Add gather_load_x32_cost and gather_load_x64_cost. 18087 * config/aarch64/aarch64.c (generic_sve_vector_cost) 18088 (a64fx_sve_vector_cost, neoversev1_sve_vector_cost): Update 18089 accordingly, using the values given by the scalar_load * number 18090 of elements calculation that we used previously. 18091 (aarch64_detect_vector_stmt_subtype): Use the new fields. 18092 180932021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18094 18095 * config/aarch64/aarch64.c (aarch64_adjust_body_cost_sve): New 18096 function, split out from... 18097 (aarch64_adjust_body_cost): ...here. 18098 180992021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18100 18101 * config/aarch64/fractional-cost.h: New file. 18102 * config/aarch64/aarch64.c: Include <algorithm> (indirectly) 18103 and cost_fraction.h. 18104 (vec_cost_fraction): New typedef. 18105 (aarch64_detect_scalar_stmt_subtype): Use it for statement costs. 18106 (aarch64_detect_vector_stmt_subtype): Likewise. 18107 (aarch64_sve_adjust_stmt_cost, aarch64_adjust_stmt_cost): Likewise. 18108 (aarch64_estimate_min_cycles_per_iter): Use vec_cost_fraction 18109 for cycle counts. 18110 (aarch64_adjust_body_cost): Likewise. 18111 (aarch64_test_cost_fraction): New function. 18112 (aarch64_run_selftests): Call it. 18113 181142021-08-03 Richard Sandiford <richard.sandiford@arm.com> 18115 18116 * config/aarch64/aarch64-protos.h (tune_params::sve_width): Turn 18117 into a bitmask. 18118 * config/aarch64/aarch64.c (aarch64_cmp_autovec_modes): Update 18119 accordingly. 18120 (aarch64_estimated_poly_value): Likewise. Use the least significant 18121 set bit for the minimum and likely values. Use the most significant 18122 set bit for the maximum value. 18123 181242021-08-03 liuhongt <hongtao.liu@intel.com> 18125 18126 * config/i386/sse.md (cond_<insn><mode>): New expander. 18127 (cond_mul<mode>): Ditto. 18128 181292021-08-03 Kewen Lin <linkw@linux.ibm.com> 18130 18131 * tree-cfg.c (move_sese_region_to_fn): Fix typos on dloop. 18132 181332021-08-03 liuhongt <hongtao.liu@intel.com> 18134 18135 * config/i386/sse.md (cond_<insn><mode>):New expander. 18136 (cond_mul<mode>): Ditto. 18137 (cond_div<mode>): Ditto. 18138 181392021-08-02 H.J. Lu <hjl.tools@gmail.com> 18140 18141 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Also 18142 check stack_realign_needed for stack realignment. 18143 (ix86_legitimate_constant_p): Always allow CONST_WIDE_INT smaller 18144 than the largest integer supported by vector register. 18145 * config/i386/i386.h (MAX_MOVE_MAX): New. Set to 64. 18146 (MOVE_MAX): Set to bytes of the largest integer supported by 18147 vector register. 18148 (STORE_MAX_PIECES): New. 18149 181502021-08-02 H.J. Lu <hjl.tools@gmail.com> 18151 18152 * config/i386/i386-expand.c (ix86_expand_vector_move): Call 18153 ix86_gen_scratch_sse_rtx to get a scratch SSE register to copy 18154 data from one memory location to another. 18155 181562021-08-02 H.J. Lu <hjl.tools@gmail.com> 18157 18158 PR middle-end/90773 18159 * config/i386/i386.c (TARGET_GEN_MEMSET_SCRATCH_RTX): New. 18160 181612021-08-02 Aldy Hernandez <aldyh@redhat.com> 18162 18163 PR tree-optimization/101724 18164 * params.opt: Remove --param=threader-iterative. 18165 * tree-ssa-threadbackward.c (pass_thread_jumps::execute): Remove 18166 iterative mode. 18167 181682021-08-02 Tom de Vries <tdevries@suse.de> 18169 18170 PR middle-end/101665 18171 * doc/extend.texi (nonnull attribute): Improve documentation. 18172 181732021-08-02 Andrew Pinski <apinski@marvell.com> 18174 18175 PR rtl-optimization/101683 18176 * rtlanal.c (may_trap_p_1): Handle UNSIGNED_FIX. 18177 181782021-08-02 Roger Sayle <roger@nextmovesoftware.com> 18179 18180 * tree-ssa-phiopt.c (cond_removal_in_builtin_zero_pattern): 18181 Renamed from cond_removal_in_popcount_clz_ctz_pattern. 18182 Add support for BSWAP, FFS, PARITY and CLRSB builtins. 18183 (tree_ssa_phiop_worker): Update call to function above. 18184 181852021-08-01 H.J. Lu <hjl.tools@gmail.com> 18186 18187 PR target/78103 18188 * config/i386/i386.md (bsr_rex64_1_zext): New. 18189 (combine splitter for constant - clzll): Replace gen_bsr_rex64_1 18190 with gen_bsr_rex64_1_zext. 18191 181922021-07-31 Jakub Jelinek <jakub@redhat.com> 18193 18194 PR target/78103 18195 * config/i386/i386.md (bsr_rex64_1, bsr_1, bsr_zext_1): New 18196 define_insn patterns. 18197 (*bsr_rex64_2, *bsr_2): New define_insn_and_split patterns. 18198 Add combine splitters for constant - clz. 18199 (clz<mode>2): Use a temporary pseudo for bsr result. 18200 182012021-07-30 Paul A. Clarke <pc@us.ibm.com> 18202 18203 * config/rs6000/smmintrin.h (_mm_floor_pd, _mm_floor_ps, 18204 _mm_floor_sd, _mm_floor_ss): New. 18205 182062021-07-30 Paul A. Clarke <pc@us.ibm.com> 18207 18208 * config/rs6000/smmintrin.h (_mm_ceil_pd, _mm_ceil_ps, 18209 _mm_ceil_sd, _mm_ceil_ss): New. 18210 182112021-07-30 Paul A. Clarke <pc@us.ibm.com> 18212 18213 * config/rs6000/smmintrin.h (_mm_blend_pd, _mm_blendv_pd, 18214 _mm_blend_ps, _mm_blendv_ps): New. 18215 182162021-07-30 Roger Sayle <roger@nextmovesoftware.com> 18217 Uro�� Bizjak <ubizjak@gmail.com> 18218 18219 * config/i386/i386.md (*dec_cmov<mode>): New define_insn_and_split 18220 to generate a conditional move using the carry flag after sub $1. 18221 (peephole2): Eliminate a register-to-register move by inverting 18222 the condition of a conditional move. 18223 182242021-07-30 Hans-Peter Nilsson <hp@bitrange.com> 18225 18226 * config/mmix/mmix.md ("call", "call_value", "*call_real") 18227 ("*call_value_real"): Don't generate rtx mentioning the generic 18228 operands 1 and 2 to "call", and similarly for "call_value". 18229 * config/mmix/mmix.c (mmix_print_operand_punct_valid_p) 18230 (mmix_print_operand): Use '!' instead of 'p'. 18231 182322021-07-30 Hans-Peter Nilsson <hp@bitrange.com> 18233 18234 * doc/md.texi (call): Correct information about operand 2. 18235 * config/mmix/mmix.md ("call", "call_value"): Remove fixed FIXMEs. 18236 182372021-07-30 Andrew MacLeod <amacleod@redhat.com> 18238 18239 * range-op.cc (operator_trunc_mod::wi_fold): Fold constants. 18240 182412021-07-30 Andrew MacLeod <amacleod@redhat.com> 18242 18243 * range-op.cc (operator_div::wi_fold): Return UNDEFINED for [0, 0] divisor. 18244 182452021-07-30 Andrew MacLeod <amacleod@redhat.com> 18246 18247 * gimple-range-cache.cc (*::set_bb_range): Change const basic_block to 18248 const_basic_block.. 18249 (*::get_bb_range): Ditto. 18250 (*::bb_range_p): Ditto. 18251 * gimple-range-cache.h: Change prototypes. 18252 182532021-07-30 H.J. Lu <hjl.tools@gmail.com> 18254 18255 PR middle-end/90773 18256 * builtins.c (builtin_memcpy_read_str): Change the mode argument 18257 from scalar_int_mode to fixed_size_mode. 18258 (builtin_strncpy_read_str): Likewise. 18259 (gen_memset_value_from_prev): New function. 18260 (builtin_memset_read_str): Change the mode argument from 18261 scalar_int_mode to fixed_size_mode. Use gen_memset_value_from_prev 18262 and support CONST_VECTOR. 18263 (builtin_memset_gen_str): Likewise. 18264 (try_store_by_multiple_pieces): Use by_pieces_constfn to declare 18265 constfun. 18266 * builtins.h (builtin_strncpy_read_str): Replace scalar_int_mode 18267 with fixed_size_mode. 18268 (builtin_memset_read_str): Likewise. 18269 * expr.c (widest_int_mode_for_size): Renamed to ... 18270 (widest_fixed_size_mode_for_size): Add a bool argument to 18271 indicate if QI vector mode can be used. 18272 (by_pieces_ninsns): Call widest_fixed_size_mode_for_size 18273 instead of widest_int_mode_for_size. 18274 (pieces_addr::adjust): Change the mode argument from 18275 scalar_int_mode to fixed_size_mode. 18276 (op_by_pieces_d): Make m_len read-only. Add a bool member, 18277 m_qi_vector_mode, to indicate that QI vector mode can be used. 18278 (op_by_pieces_d::op_by_pieces_d): Add a bool argument to 18279 initialize m_qi_vector_mode. Call widest_fixed_size_mode_for_size 18280 instead of widest_int_mode_for_size. 18281 (op_by_pieces_d::get_usable_mode): Change the mode argument from 18282 scalar_int_mode to fixed_size_mode. Call 18283 widest_fixed_size_mode_for_size instead of 18284 widest_int_mode_for_size. 18285 (op_by_pieces_d::smallest_fixed_size_mode_for_size): New member 18286 function to return the smallest integer or QI vector mode. 18287 (op_by_pieces_d::run): Call widest_fixed_size_mode_for_size 18288 instead of widest_int_mode_for_size. Call 18289 smallest_fixed_size_mode_for_size instead of 18290 smallest_int_mode_for_size. 18291 (store_by_pieces_d::store_by_pieces_d): Add a bool argument to 18292 indicate that QI vector mode can be used and pass it to 18293 op_by_pieces_d::op_by_pieces_d. 18294 (can_store_by_pieces): Call widest_fixed_size_mode_for_size 18295 instead of widest_int_mode_for_size. Pass memsetp to 18296 widest_fixed_size_mode_for_size to support QI vector mode. 18297 Allow all CONST_VECTORs for memset if vec_duplicate is supported. 18298 (store_by_pieces): Pass memsetp to 18299 store_by_pieces_d::store_by_pieces_d. 18300 (clear_by_pieces_1): Removed. 18301 (clear_by_pieces): Replace clear_by_pieces_1 with 18302 builtin_memset_read_str and pass true to store_by_pieces_d to 18303 support vector mode broadcast. 18304 (string_cst_read_str): Change the mode argument from 18305 scalar_int_mode to fixed_size_mode. 18306 * expr.h (by_pieces_constfn): Change scalar_int_mode to 18307 fixed_size_mode. 18308 (by_pieces_prev): Likewise. 18309 * rtl.h (lowpart_subreg_regno): New. 18310 * rtlanal.c (lowpart_subreg_regno): New. A wrapper around 18311 simplify_subreg_regno. 18312 * target.def (gen_memset_scratch_rtx): New hook. 18313 * doc/tm.texi.in: Add TARGET_GEN_MEMSET_SCRATCH_RTX. 18314 * doc/tm.texi: Regenerated. 18315 183162021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> 18317 18318 PR target/94780 18319 * config/mips/mips.c (mips_atomic_assign_expand_fenv): Use 18320 TARGET_EXPR instead of MODIFY_EXPR. 18321 183222021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> 18323 18324 PR target/101132 18325 * config/mips/mips-protos.h (mips_expand_vec_cmp_expr): Declare. 18326 * config/mips/mips.c (mips_expand_vec_cmp_expr): New function. 18327 * config/mips/mips-msa.md (vec_cmp<MSA:mode><mode_i>): New 18328 expander. 18329 (vec_cmpu<IMSA:mode><mode_i>): New expander. 18330 183312021-07-30 H.J. Lu <hjl.tools@gmail.com> 18332 18333 PR target/101685 18334 * config/i386/i386-options.c (ix86_option_override_internal): 18335 Don't enable LZCNT/POPCNT if they have been disabled explicitly. 18336 183372021-07-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 18338 18339 PR target/66791 18340 * config/arm/arm_neon.h (vld1_p64): Replace call to builtin by 18341 explicitly dereferencing __a. 18342 (vld1_s64): Likewise. 18343 (vld1_u64): Likewise. 18344 * config/arm/arm_neon_builtins.def (vld1): Remove entry for di 18345 and change to VAR13. 18346 183472021-07-30 Aldy Hernandez <aldyh@redhat.com> 18348 18349 * gimple-loop-versioning.cc (lv_dom_walker::lv_dom_walker): Remove 18350 use of m_range_analyzer. 18351 (loop_versioning::lv_dom_walker::before_dom_children): Same. 18352 (loop_versioning::lv_dom_walker::after_dom_children): Remove. 18353 (loop_versioning::prune_loop_conditions): Replace vr_values use 18354 with range_query interface. 18355 (pass_loop_versioning::execute): Use ranger. 18356 183572021-07-30 Xi Ruoyao <xry111@mengyan1223.wang> 18358 18359 PR ipa/101396 18360 * ipa-devirt.c (ipa_odr_read_section): Compare the precision of 18361 enum values, and emit a warning if they mismatch. 18362 183632021-07-30 Kewen Lin <linkw@linux.ibm.com> 18364 18365 * cfgloop.h (as_const): New function. 18366 (class loop_iterator): Rename to ... 18367 (class loops_list): ... this. 18368 (loop_iterator::next): Rename to ... 18369 (loops_list::Iter::fill_curr_loop): ... this and adjust. 18370 (loop_iterator::loop_iterator): Rename to ... 18371 (loops_list::loops_list): ... this and adjust. 18372 (loops_list::Iter): New class. 18373 (loops_list::iterator): New type. 18374 (loops_list::const_iterator): New type. 18375 (loops_list::begin): New function. 18376 (loops_list::end): Likewise. 18377 (loops_list::begin const): Likewise. 18378 (loops_list::end const): Likewise. 18379 (FOR_EACH_LOOP): Remove. 18380 (FOR_EACH_LOOP_FN): Remove. 18381 * cfgloop.c (flow_loops_dump): Adjust FOR_EACH_LOOP* with range-based 18382 for loop with loops_list instance. 18383 (sort_sibling_loops): Likewise. 18384 (disambiguate_loops_with_multiple_latches): Likewise. 18385 (verify_loop_structure): Likewise. 18386 * cfgloopmanip.c (create_preheaders): Likewise. 18387 (force_single_succ_latches): Likewise. 18388 * config/aarch64/falkor-tag-collision-avoidance.c 18389 (execute_tag_collision_avoidance): Likewise. 18390 * config/mn10300/mn10300.c (mn10300_scan_for_setlb_lcc): Likewise. 18391 * config/s390/s390.c (s390_adjust_loops): Likewise. 18392 * doc/loop.texi: Likewise. 18393 * gimple-loop-interchange.cc (pass_linterchange::execute): Likewise. 18394 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. 18395 * gimple-loop-versioning.cc (loop_versioning::analyze_blocks): Likewise. 18396 (loop_versioning::make_versioning_decisions): Likewise. 18397 * gimple-ssa-split-paths.c (split_paths): Likewise. 18398 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. 18399 * graphite.c (canonicalize_loop_form): Likewise. 18400 (graphite_transform_loops): Likewise. 18401 * ipa-fnsummary.c (analyze_function_body): Likewise. 18402 * ipa-pure-const.c (analyze_function): Likewise. 18403 * loop-doloop.c (doloop_optimize_loops): Likewise. 18404 * loop-init.c (loop_optimizer_finalize): Likewise. 18405 (fix_loop_structure): Likewise. 18406 * loop-invariant.c (calculate_loop_reg_pressure): Likewise. 18407 (move_loop_invariants): Likewise. 18408 * loop-unroll.c (decide_unrolling): Likewise. 18409 (unroll_loops): Likewise. 18410 * modulo-sched.c (sms_schedule): Likewise. 18411 * predict.c (predict_loops): Likewise. 18412 (pass_profile::execute): Likewise. 18413 * profile.c (branch_prob): Likewise. 18414 * sel-sched-ir.c (sel_finish_pipelining): Likewise. 18415 (sel_find_rgns): Likewise. 18416 * tree-cfg.c (replace_loop_annotate): Likewise. 18417 (replace_uses_by): Likewise. 18418 (move_sese_region_to_fn): Likewise. 18419 * tree-if-conv.c (pass_if_conversion::execute): Likewise. 18420 * tree-loop-distribution.c (loop_distribution::execute): Likewise. 18421 * tree-parloops.c (parallelize_loops): Likewise. 18422 * tree-predcom.c (tree_predictive_commoning): Likewise. 18423 * tree-scalar-evolution.c (scev_initialize): Likewise. 18424 (scev_reset): Likewise. 18425 * tree-ssa-dce.c (find_obviously_necessary_stmts): Likewise. 18426 * tree-ssa-live.c (remove_unused_locals): Likewise. 18427 * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. 18428 * tree-ssa-loop-im.c (analyze_memory_references): Likewise. 18429 (tree_ssa_lim_initialize): Likewise. 18430 * tree-ssa-loop-ivcanon.c (canonicalize_induction_variables): Likewise. 18431 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Likewise. 18432 * tree-ssa-loop-manip.c (get_loops_exits): Likewise. 18433 * tree-ssa-loop-niter.c (estimate_numbers_of_iterations): Likewise. 18434 (free_numbers_of_iterations_estimates): Likewise. 18435 * tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Likewise. 18436 * tree-ssa-loop-split.c (tree_ssa_split_loops): Likewise. 18437 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Likewise. 18438 * tree-ssa-loop.c (gate_oacc_kernels): Likewise. 18439 (pass_scev_cprop::execute): Likewise. 18440 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise. 18441 * tree-ssa-sccvn.c (do_rpo_vn): Likewise. 18442 * tree-ssa-threadupdate.c 18443 (jump_thread_path_registry::thread_through_all_blocks): Likewise. 18444 * tree-vectorizer.c (vectorize_loops): Likewise. 18445 * tree-vrp.c (vrp_asserts::find_assert_locations): Likewise. 18446 184472021-07-29 Hans-Peter Nilsson <hp@bitrange.com> 18448 18449 * config/mmix/mmix.c (mmix_function_arg_1): Avoid 18450 generating a VOIDmode register for e.g the 18451 function_arg_info::end_marker. 18452 184532021-07-29 Jeff Law <jeffreyalaw@gmail.com> 18454 18455 * config/h8300/h8300-modes.def: Add CCZ, CCV and CCC, drop CCZNV. 18456 * config/h8300/h8300.md (H8cc mode iterator): Add CCZ. 18457 (cc mode_attr): Similarly. 18458 (ccz subst_attr): Similarly. 18459 * config/h8300/jumpcall.md: Add new patterns for branch-on-bit. 18460 * config/h8300/testcompare.md: Remove various cc0 based patterns 18461 that had been commented out. Add pattern to set CCZ from a bit 18462 test. 18463 184642021-07-29 Thomas Schwinge <thomas@codesourcery.com> 18465 Julian Brown <julian@codesourcery.com> 18466 Kwok Cheung Yeung <kcy@codesourcery.com> 18467 18468 * omp-offload.c (oacc_loop_xform_head_tail, oacc_loop_process): 18469 'update_stmt' after modification. 18470 (pass_oacc_loop_designation): New function, extracted out of... 18471 (pass_oacc_device_lower): ... this. 18472 (pass_data_oacc_loop_designation, pass_oacc_loop_designation) 18473 (make_pass_oacc_loop_designation): New 18474 * passes.def: Add it. 18475 * tree-parloops.c (create_parallel_loop): Adjust. 18476 * tree-pass.h (make_pass_oacc_loop_designation): New. 18477 184782021-07-29 Aldy Hernandez <aldyh@redhat.com> 18479 18480 * flag-types.h (enum threader_mode): New. 18481 * params.opt: Add entry for --param=threader-mode. 18482 * tree-ssa-threadbackward.c (THREADER_ITERATIVE_MODE): New. 18483 (class back_threader): New. 18484 (back_threader::back_threader): New. 18485 (back_threader::~back_threader): New. 18486 (back_threader::maybe_register_path): New. 18487 (back_threader::find_taken_edge): New. 18488 (back_threader::find_taken_edge_switch): New. 18489 (back_threader::find_taken_edge_cond): New. 18490 (back_threader::resolve_def): New. 18491 (back_threader::resolve_phi): New. 18492 (back_threader::find_paths_to_names): New. 18493 (back_threader::find_paths): New. 18494 (dump_path): New. 18495 (debug): New. 18496 (thread_jumps::find_jump_threads_backwards): Call ranger threader. 18497 (thread_jumps::find_jump_threads_backwards_with_ranger): New. 18498 (pass_thread_jumps::execute): Abstract out code... 18499 (try_thread_blocks): ...here. 18500 * tree-ssa-threadedge.c (jump_threader::thread_outgoing_edges): 18501 Abstract out threading candidate code to... 18502 (single_succ_to_potentially_threadable_block): ...here. 18503 * tree-ssa-threadedge.h (single_succ_to_potentially_threadable_block): 18504 New. 18505 * tree-ssa-threadupdate.c (register_jump_thread): Return boolean. 18506 * tree-ssa-threadupdate.h (class jump_thread_path_registry): 18507 Return bool from register_jump_thread. 18508 185092021-07-29 Andreas Krebbel <krebbel@linux.ibm.com> 18510 18511 * target.def: in0 and in1 do not need to be registers. 18512 * doc/tm.texi: Regenerate. 18513 185142021-07-29 liuhongt <hongtao.liu@intel.com> 18515 18516 PR target/39821 18517 * config/i386/i386.c (ix86_widen_mult_cost): New function. 18518 (ix86_add_stmt_cost): Use ix86_widen_mult_cost for 18519 WIDEN_MULT_EXPR. 18520 185212021-07-29 Jiufu Guo <guojiufu@linux.ibm.com> 18522 18523 PR target/61837 18524 * config/rs6000/rs6000.c (TARGET_PREFERRED_DOLOOP_MODE): New hook. 18525 (rs6000_preferred_doloop_mode): New hook. 18526 * doc/tm.texi: Regenerate. 18527 * doc/tm.texi.in: Add hook preferred_doloop_mode. 18528 * target.def (preferred_doloop_mode): New hook. 18529 * targhooks.c (default_preferred_doloop_mode): New hook. 18530 * targhooks.h (default_preferred_doloop_mode): New hook. 18531 * tree-ssa-loop-ivopts.c (compute_doloop_base_on_mode): New function. 18532 (add_iv_candidate_for_doloop): Call targetm.preferred_doloop_mode 18533 and compute_doloop_base_on_mode. 18534 185352021-07-28 Martin Sebor <msebor@redhat.com> 18536 18537 PR middle-end/101494 18538 * tree-ssa-uninit.c (maybe_warn_operand): Correct object offset 18539 and size computation. 18540 185412021-07-28 Martin Sebor <msebor@redhat.com> 18542 18543 PR middle-end/101601 18544 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Remove 18545 a pointless test. 18546 Handle pointers to functions. 18547 185482021-07-28 Martin Sebor <msebor@redhat.com> 18549 18550 * Makefile.in (OBJS): Add gimple-ssa-warn-access.o and pointer-query.o. 18551 * attribs.h (fndecl_dealloc_argno): Move fndecl_dealloc_argno to tree.h. 18552 * builtins.c (compute_objsize_r): Move to pointer-query.cc. 18553 (access_ref::access_ref): Same. 18554 (access_ref::phi): Same. 18555 (access_ref::get_ref): Same. 18556 (access_ref::size_remaining): Same. 18557 (access_ref::offset_in_range): Same. 18558 (access_ref::add_offset): Same. 18559 (access_ref::inform_access): Same. 18560 (ssa_name_limit_t::visit_phi): Same. 18561 (ssa_name_limit_t::leave_phi): Same. 18562 (ssa_name_limit_t::next): Same. 18563 (ssa_name_limit_t::next_phi): Same. 18564 (ssa_name_limit_t::~ssa_name_limit_t): Same. 18565 (pointer_query::pointer_query): Same. 18566 (pointer_query::get_ref): Same. 18567 (pointer_query::put_ref): Same. 18568 (pointer_query::flush_cache): Same. 18569 (warn_string_no_nul): Move to gimple-ssa-warn-access.cc. 18570 (check_nul_terminated_array): Same. 18571 (unterminated_array): Same. 18572 (maybe_warn_for_bound): Same. 18573 (check_read_access): Same. 18574 (warn_for_access): Same. 18575 (get_size_range): Same. 18576 (check_access): Same. 18577 (gimple_call_alloc_size): Move to tree.c. 18578 (gimple_parm_array_size): Move to pointer-query.cc. 18579 (get_offset_range): Same. 18580 (gimple_call_return_array): Same. 18581 (handle_min_max_size): Same. 18582 (handle_array_ref): Same. 18583 (handle_mem_ref): Same. 18584 (compute_objsize): Same. 18585 (gimple_call_alloc_p): Move to gimple-ssa-warn-access.cc. 18586 (call_dealloc_argno): Same. 18587 (fndecl_dealloc_argno): Same. 18588 (new_delete_mismatch_p): Same. 18589 (matching_alloc_calls_p): Same. 18590 (warn_dealloc_offset): Same. 18591 (maybe_emit_free_warning): Same. 18592 * builtins.h (check_nul_terminated_array): Move to 18593 gimple-ssa-warn-access.h. 18594 (check_nul_terminated_array): Same. 18595 (warn_string_no_nul): Same. 18596 (unterminated_array): Same. 18597 (class ssa_name_limit_t): Same. 18598 (class pointer_query): Same. 18599 (struct access_ref): Same. 18600 (class range_query): Same. 18601 (struct access_data): Same. 18602 (gimple_call_alloc_size): Same. 18603 (gimple_parm_array_size): Same. 18604 (compute_objsize): Same. 18605 (class access_data): Same. 18606 (maybe_emit_free_warning): Same. 18607 * calls.c (initialize_argument_information): Remove call to 18608 maybe_emit_free_warning. 18609 * gimple-array-bounds.cc: Include new header.. 18610 * gimple-fold.c: Same. 18611 * gimple-ssa-sprintf.c: Same. 18612 * gimple-ssa-warn-restrict.c: Same. 18613 * passes.def: Add pass_warn_access. 18614 * tree-pass.h (make_pass_warn_access): Declare. 18615 * tree-ssa-strlen.c: Include new headers. 18616 * tree.c (fndecl_dealloc_argno): Move here from builtins.c. 18617 * tree.h (fndecl_dealloc_argno): Move here from attribs.h. 18618 * gimple-ssa-warn-access.cc: New file. 18619 * gimple-ssa-warn-access.h: New file. 18620 * pointer-query.cc: New file. 18621 * pointer-query.h: New file. 18622 186232021-07-28 Jakub Jelinek <jakub@redhat.com> 18624 18625 PR middle-end/101624 18626 * ubsan.c (maybe_instrument_pointer_overflow, 18627 instrument_object_size): Only test DECL_REGISTER on VAR_DECLs, 18628 PARM_DECLs or RESULT_DECLs. 18629 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Likewise. 18630 186312021-07-28 Jakub Jelinek <jakub@redhat.com> 18632 18633 PR middle-end/101642 18634 * match.pd (bswap16 (x) == bswap16 (y)): Cast both operands 18635 to type of bswap16 for comparison. 18636 (bswap16 (x) == cst): Cast bswap16 operand to type of cst. 18637 186382021-07-28 Richard Biener <rguenther@suse.de> 18639 18640 PR tree-optimization/101615 18641 * tree-vect-slp.c (vect_optimize_slp): Materialize permutes 18642 at CTOR SLP graph entries. 18643 186442021-07-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18645 18646 * config/aarch64/aarch64.md (*extend<SHORT:mode><GPI:mode>2_aarch64): 18647 Add "r,w" alternative. 18648 186492021-07-28 H.J. Lu <hjl.tools@gmail.com> 18650 18651 PR target/101456 18652 * config/i386/i386.c (ix86_avx_u128_mode_needed): Don't set 18653 AVX_U128_DIRTY when all bits are zero. 18654 186552021-07-28 Richard Biener <rguenther@suse.de> 18656 18657 PR tree-optimization/101615 18658 * tree-vect-slp.c (vect_optimize_slp): Pre-existing vector 18659 external nodes cannot be permuted so make them perm_out 0. 18660 186612021-07-28 Andrew Stubbs <ams@codesourcery.com> 18662 18663 PR target/100208 18664 * config.in: Regenerate. 18665 * config/gcn/gcn-hsa.h (A_FIJI): New define. 18666 (A_900): New define. 18667 (A_906): New define. 18668 (A_908): New define. 18669 (ASM_SPEC): Use A_FIJI, A_900, A_906 and A_908. 18670 * config/gcn/gcn.c (output_file_start): Adjust attributes according 18671 to the assembler capabilities. 18672 * config/gcn/mkoffload.c (main): Likewise. 18673 * configure: Regenerate. 18674 * configure.ac: Add tests for LLVM assembler attribute features. 18675 186762021-07-28 Andrew MacLeod <amacleod@redhat.com> 18677 18678 * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Check for 18679 cond_false and cond_true on branches. 18680 186812021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com> 18682 18683 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): use 18684 gcc_stablesort. 18685 186862021-07-28 Bin Cheng <bin.cheng@linux.alibaba.com> 18687 18688 * alias.c (init_alias_analysis): Don't skip prologue/epilogue. 18689 186902021-07-28 Jakub Jelinek <jakub@redhat.com> 18691 18692 PR target/101611 18693 * config/i386/sse.md (vashr<mode>3): Split into vashrv8di3 expander 18694 and vashrv4di3 expander, where the latter requires just TARGET_AVX2 18695 and has special !TARGET_AVX512VL expansion. 18696 (vashrv2di3<mask_name>): Rename to ... 18697 (vashrv2di3): ... this. Change condition to TARGET_XOP || TARGET_AVX2 18698 and add special !TARGET_XOP && !TARGET_AVX512VL expansion. 18699 187002021-07-28 Martin Uecker <muecker@gwdg.de> 18701 18702 * calls.c (maybe_warn_rdwr_sizes): Correct argument 18703 numbers in warning that were switched. 18704 187052021-07-28 Kewen Lin <linkw@linux.ibm.com> 18706 18707 PR tree-optimization/101596 18708 * tree-vect-patterns.c (vect_recog_mulhs_pattern): Fix wrong check 18709 by using new_type's precision instead. 18710 187112021-07-28 liuhongt <hongtao.liu@intel.com> 18712 18713 PR target/99881 18714 * config/i386/i386.h (processor_costs): Add new member 18715 integer_to_sse. 18716 * config/i386/x86-tune-costs.h (ix86_size_cost, i386_cost, 18717 i486_cost, pentium_cost, lakemont_cost, pentiumpro_cost, 18718 geode_cost, k6_cost, athlon_cost, k8_cost, amdfam10_cost, 18719 bdver_cost, znver1_cost, znver2_cost, znver3_cost, 18720 btver1_cost, btver2_cost, btver3_cost, pentium4_cost, 18721 nocona_cost, atom_cost, atom_cost, slm_cost, intel_cost, 18722 generic_cost, core_cost): Initialize integer_to_sse same value 18723 as sse_op. 18724 (skylake_cost): Initialize integer_to_sse twice as much as sse_op. 18725 * config/i386/i386.c (ix86_builtin_vectorization_cost): 18726 Use integer_to_sse instead of sse_op to calculate the cost of 18727 vec_construct. 18728 187292021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> 18730 18731 * config/rs6000/rs6000-gen-builtins.c (write_ovld_static_init): New 18732 function. 18733 (write_init_file): Call write_ovld_static_init. 18734 187352021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> 18736 18737 * config/rs6000/rs6000-gen-builtins.c (write_bif_static_init): New 18738 function. 18739 (write_init_file): Call write_bif_static_init. 18740 187412021-07-27 Bill Schmidt <wschmidt@linux.ibm.com> 18742 18743 * config/rs6000/rs6000-gen-builtins.c (typemap): New struct. 18744 (TYPE_MAP_SIZE): New macro. 18745 (type_map): New initialized variable. 18746 (typemap_cmp): New function. 18747 (write_type_node): Likewise. 18748 (write_fntype_init): Implement. 18749 187502021-07-27 Martin Sebor <msebor@redhat.com> 18751 18752 PR tree-optimization/101584 18753 * tree-ssa-uninit.c (builtin_call_nomodifying_p): New function. 18754 (check_defs): Call it. 18755 187562021-07-27 Aldy Hernandez <aldyh@redhat.com> 18757 18758 * tree-ssa-dom.c (dom_jump_threader_simplifier): 18759 Put avail_exprs_stack in the class, instead of passing it to 18760 jump_threader_simplifier. 18761 (dom_jump_threader_simplifier::simplify): Add state argument. 18762 (dom_opt_dom_walker): Add state. 18763 (pass_dominator::execute): Pass state to threader. 18764 (dom_opt_dom_walker::before_dom_children): Use state. 18765 * tree-ssa-threadedge.c (jump_threader::jump_threader): Replace 18766 arguments by state. 18767 (jump_threader::record_temporary_equivalences_from_phis): 18768 Register equivalences through the state variable. 18769 (jump_threader::record_temporary_equivalences_from_stmts_at_dest): 18770 Record ranges in a statement through the state variable. 18771 (jump_threader::simplify_control_stmt_condition): Pass state to 18772 simplify. 18773 (jump_threader::simplify_control_stmt_condition_1): Same. 18774 (jump_threader::thread_around_empty_blocks): Remove obsolete 18775 comment. 18776 (jump_threader::thread_through_normal_block): Record equivalences 18777 on edge through the state variable. 18778 (jump_threader::thread_across_edge): Abstract state pushing. 18779 (jt_state::jt_state): New. 18780 (jt_state::push): New. 18781 (jt_state::pop): New. 18782 (jt_state::register_equiv): New. 18783 (jt_state::record_ranges_from_stmt): New. 18784 (jt_state::register_equivs_on_edge): New. 18785 (jump_threader_simplifier::jump_threader_simplifier): Move from 18786 header. 18787 (jump_threader_simplifier::simplify): Add state argument. 18788 * tree-ssa-threadedge.h (class jt_state): New. 18789 (class jump_threader): Add state to constructor. 18790 (class jump_threader_simplifier): Add state to simplify. Remove 18791 avail_exprs_stack from class. 18792 * tree-vrp.c (vrp_jump_threader_simplifier::simplify): Add state 18793 argument. 18794 (vrp_jump_threader::vrp_jump_threader): Add state. 18795 (vrp_jump_threader::~vrp_jump_threader): Cleanup state. 18796 187972021-07-27 Aldy Hernandez <aldyh@redhat.com> 18798 18799 * Makefile.in (OBJS): Add gimple-range-path.o. 18800 * gimple-range-path.cc: New file. 18801 * gimple-range-path.h: New file. 18802 188032021-07-27 Jonathan Wright <jonathan.wright@arm.com> 18804 18805 * config/aarch64/aarch64-simd.md: Push sign/zero-extension 18806 inside vec_duplicate for all patterns. 18807 * simplify-rtx.c (simplify_context::simplify_unary_operation_1): 18808 Push sign/zero-extension inside vec_duplicate. 18809 188102021-07-27 Richard Biener <rguenther@suse.de> 18811 18812 PR tree-optimization/101573 18813 * tree-ssa-uninit.c (warn_uninit_phi_uses): New function 18814 looking at uninitialized PHI arg defs in some constrained cases. 18815 (warn_uninitialized_vars): Call it. 18816 (execute_early_warn_uninitialized): Calculate dominators. 18817 188182021-07-27 Richard Biener <rguenther@suse.de> 18819 18820 PR tree-optimization/39821 18821 * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Use 18822 vector_stmt for widening arithmetic. 18823 (vectorizable_conversion): Adjust. 18824 188252021-07-27 Martin Jambor <mjambor@suse.cz> 18826 18827 * cgraph.h (ipa_replace_map): New field force_load_ref. 18828 * ipa-prop.h (ipa_param_descriptor): Reduce precision of move_cost, 18829 aded new flag load_dereferenced, adjusted comments. 18830 (ipa_get_param_dereferenced): New function. 18831 (ipa_set_param_dereferenced): Likewise. 18832 * cgraphclones.c (cgraph_node::create_virtual_clone): Follow it. 18833 * ipa-cp.c: Include gimple.h. 18834 (ipcp_discover_new_direct_edges): Take into account dereferenced flag. 18835 (get_replacement_map): New parameter force_load_ref, set the 18836 appropriate flag in ipa_replace_map if set. 18837 (struct symbol_and_index_together): New type. 18838 (adjust_refs_in_act_callers): New function. 18839 (adjust_references_in_caller): Likewise. 18840 (create_specialized_node): When appropriate, call 18841 adjust_references_in_caller and force only load references. 18842 * ipa-prop.c (load_from_dereferenced_name): New function. 18843 (ipa_analyze_controlled_uses): Also detect loads from a 18844 dereference, harden testing of call statements. 18845 (ipa_write_node_info): Stream the dereferenced flag. 18846 (ipa_read_node_info): Likewise. 18847 (ipa_set_jf_constant): Also create refdesc when jump function 18848 references a variable. 18849 (cgraph_node_for_jfunc): Rename to symtab_node_for_jfunc, work 18850 also on references of variables and return a symtab_node. Adjust 18851 all callers. 18852 (propagate_controlled_uses): Also remove references to VAR_DECLs. 18853 188542021-07-27 Jakub Jelinek <jakub@redhat.com> 18855 18856 PR middle-end/101586 18857 * gimple-fold.c (clear_padding_type): Ignore FIELD_DECLs with byte 18858 positions above or equal to sz except for diagnostics of flexible 18859 array members. 18860 188612021-07-26 Andrew MacLeod <amacleod@redhat.com> 18862 18863 PR tree-optimization/78888 18864 * gimple-range-fold.cc (get_letter_range): New. 18865 (fold_using_range::range_of_builtin_call): Call get_letter_range. 18866 188672021-07-26 Andrew MacLeod <amacleod@redhat.com> 18868 18869 PR tree-optimization/78888 18870 * gimple-range-fold.cc (fold_using_range::range_of_builtin_call): Add cases 18871 for CFN_BUILT_IN_TOUPPER and CFN_BUILT_IN_TOLOWER. 18872 188732021-07-26 Roger Sayle <roger@nextmovesoftware.com> 18874 Marc Glisse <marc.glisse@inria.fr> 18875 18876 * match.pd (rotate): Simplify equality/inequality of rotations. 18877 (bswap): Simplify equality/inequality tests of byte swapping. 18878 188792021-07-26 Aldy Hernandez <aldyh@redhat.com> 18880 18881 * range-op.cc (operator_bitwise_xor::op1_op2_relation_effect): 18882 New. 18883 188842021-07-26 Aldy Hernandez <aldyh@redhat.com> 18885 18886 * range-op.cc (operator_lshift::fold_range): Pass rel to 18887 base class fold_range. 18888 (operator_rshift::fold_range): Same. 18889 188902021-07-26 Ashimida <ashimida@linux.alibaba.com> 18891 18892 PR driver/101447 18893 * toplev.h (min_align_loops_log): Remove declaration. 18894 (min_align_jumps_log, min_align_labels_log): Likewise. 18895 (min_align_functions_log): Likewise. 18896 188972021-07-26 Aldy Hernandez <aldyh@redhat.com> 18898 18899 * tree-vrp.c (vrp_simplify_cond_using_ranges): Rename vr_values 18900 with range_query. 18901 (execute_vrp): Abstract out simplification of conditionals... 18902 (simplify_casted_conds): ...here. 18903 189042021-07-26 Aldy Hernandez <aldyh@redhat.com> 18905 18906 * gimple-array-bounds.cc (array_bounds_checker::get_value_range): 18907 Add gimple argument. 18908 (array_bounds_checker::check_array_ref): Same. 18909 (array_bounds_checker::check_addr_expr): Same. 18910 (array_bounds_checker::check_array_bounds): Pass statement to 18911 check_array_bounds and check_addr_expr. 18912 * gimple-array-bounds.h (check_array_bounds): Add gimple argument. 18913 (check_addr_expr): Same. 18914 (get_value_range): Same. 18915 189162021-07-26 Tamar Christina <tamar.christina@arm.com> 18917 18918 * config/aarch64/aarch64-simd-builtins.def (sdot, udot): Rename to.. 18919 (sdot_prod, udot_prod): ... This. 18920 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): Merged 18921 into... 18922 (<sur>dot_prod<vsi2qi>): ... this. 18923 (aarch64_<sur>dot_lane<vsi2qi>, aarch64_<sur>dot_laneq<vsi2qi>): 18924 Change operands order. 18925 (<sur>sadv16qi): Use new operands order. 18926 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, 18927 vdotq_s32): Use new RTL ordering. 18928 189292021-07-26 Tamar Christina <tamar.christina@arm.com> 18930 18931 * config/aarch64/aarch64-builtins.c (TYPES_TERNOP_SUSS, 18932 aarch64_types_ternop_suss_qualifiers): New. 18933 * config/aarch64/aarch64-simd-builtins.def (usdot_prod): Use it. 18934 * config/aarch64/aarch64-simd.md (usdot_prod<vsi2qi>): Re-organize RTL. 18935 * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Use it. 18936 189372021-07-23 Jakub Jelinek <jakub@redhat.com> 18938 18939 PR rtl-optimization/101562 18940 * expmed.c (store_integral_bit_field): Only use movstrict_optab 18941 if the operand isn't paradoxical. 18942 189432021-07-23 Aldy Hernandez <aldyh@redhat.com> 18944 18945 * gimple-array-bounds.h (class array_bounds_checker): Change 18946 ranges type to range_query. 18947 189482021-07-23 Jonathan Wright <jonathan.wright@arm.com> 18949 18950 * config/aarch64/arm_neon.h (vst1_s64_x2): Use 18951 __builtin_memcpy instead of constructing 18952 __builtin_aarch64_simd_oi one vector at a time. 18953 (vst1_u64_x2): Likewise. 18954 (vst1_f64_x2): Likewise. 18955 (vst1_s8_x2): Likewise. 18956 (vst1_p8_x2): Likewise. 18957 (vst1_s16_x2): Likewise. 18958 (vst1_p16_x2): Likewise. 18959 (vst1_s32_x2): Likewise. 18960 (vst1_u8_x2): Likewise. 18961 (vst1_u16_x2): Likewise. 18962 (vst1_u32_x2): Likewise. 18963 (vst1_f16_x2): Likewise. 18964 (vst1_f32_x2): Likewise. 18965 (vst1_p64_x2): Likewise. 18966 (vst1q_s8_x2): Likewise. 18967 (vst1q_p8_x2): Likewise. 18968 (vst1q_s16_x2): Likewise. 18969 (vst1q_p16_x2): Likewise. 18970 (vst1q_s32_x2): Likewise. 18971 (vst1q_s64_x2): Likewise. 18972 (vst1q_u8_x2): Likewise. 18973 (vst1q_u16_x2): Likewise. 18974 (vst1q_u32_x2): Likewise. 18975 (vst1q_u64_x2): Likewise. 18976 (vst1q_f16_x2): Likewise. 18977 (vst1q_f32_x2): Likewise. 18978 (vst1q_f64_x2): Likewise. 18979 (vst1q_p64_x2): Likewise. 18980 189812021-07-23 Jonathan Wright <jonathan.wright@arm.com> 18982 18983 * config/aarch64/arm_neon.h (vst1_s64_x3): Use 18984 __builtin_memcpy instead of constructing 18985 __builtin_aarch64_simd_ci one vector at a time. 18986 (vst1_u64_x3): Likewise. 18987 (vst1_f64_x3): Likewise. 18988 (vst1_s8_x3): Likewise. 18989 (vst1_p8_x3): Likewise. 18990 (vst1_s16_x3): Likewise. 18991 (vst1_p16_x3): Likewise. 18992 (vst1_s32_x3): Likewise. 18993 (vst1_u8_x3): Likewise. 18994 (vst1_u16_x3): Likewise. 18995 (vst1_u32_x3): Likewise. 18996 (vst1_f16_x3): Likewise. 18997 (vst1_f32_x3): Likewise. 18998 (vst1_p64_x3): Likewise. 18999 (vst1q_s8_x3): Likewise. 19000 (vst1q_p8_x3): Likewise. 19001 (vst1q_s16_x3): Likewise. 19002 (vst1q_p16_x3): Likewise. 19003 (vst1q_s32_x3): Likewise. 19004 (vst1q_s64_x3): Likewise. 19005 (vst1q_u8_x3): Likewise. 19006 (vst1q_u16_x3): Likewise. 19007 (vst1q_u32_x3): Likewise. 19008 (vst1q_u64_x3): Likewise. 19009 (vst1q_f16_x3): Likewise. 19010 (vst1q_f32_x3): Likewise. 19011 (vst1q_f64_x3): Likewise. 19012 (vst1q_p64_x3): Likewise. 19013 190142021-07-23 H.J. Lu <hjl.tools@gmail.com> 19015 19016 PR target/101504 19017 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): Don't return 19018 hard register when LRA is in progress. 19019 190202021-07-23 Jonathan Wright <jonathan.wright@arm.com> 19021 19022 * config/aarch64/arm_neon.h (vst1_s8_x4): Use 19023 __builtin_memcpy instead of using a union. 19024 (vst1q_s8_x4): Likewise. 19025 (vst1_s16_x4): Likewise. 19026 (vst1q_s16_x4): Likewise. 19027 (vst1_s32_x4): Likewise. 19028 (vst1q_s32_x4): Likewise. 19029 (vst1_u8_x4): Likewise. 19030 (vst1q_u8_x4): Likewise. 19031 (vst1_u16_x4): Likewise. 19032 (vst1q_u16_x4): Likewise. 19033 (vst1_u32_x4): Likewise. 19034 (vst1q_u32_x4): Likewise. 19035 (vst1_f16_x4): Likewise. 19036 (vst1q_f16_x4): Likewise. 19037 (vst1_f32_x4): Likewise. 19038 (vst1q_f32_x4): Likewise. 19039 (vst1_p8_x4): Likewise. 19040 (vst1q_p8_x4): Likewise. 19041 (vst1_p16_x4): Likewise. 19042 (vst1q_p16_x4): Likewise. 19043 (vst1_s64_x4): Likewise. 19044 (vst1_u64_x4): Likewise. 19045 (vst1_p64_x4): Likewise. 19046 (vst1q_s64_x4): Likewise. 19047 (vst1q_u64_x4): Likewise. 19048 (vst1q_p64_x4): Likewise. 19049 (vst1_f64_x4): Likewise. 19050 (vst1q_f64_x4): Likewise. 19051 190522021-07-23 Jonathan Wrightt <jonathan.wright@arm.com> 19053 19054 * config/aarch64/arm_neon.h (vst2_s64): Use __builtin_memcpy 19055 instead of constructing __builtin_aarch64_simd_oi one vector 19056 at a time. 19057 (vst2_u64): Likewise. 19058 (vst2_f64): Likewise. 19059 (vst2_s8): Likewise. 19060 (vst2_p8): Likewise. 19061 (vst2_s16): Likewise. 19062 (vst2_p16): Likewise. 19063 (vst2_s32): Likewise. 19064 (vst2_u8): Likewise. 19065 (vst2_u16): Likewise. 19066 (vst2_u32): Likewise. 19067 (vst2_f16): Likewise. 19068 (vst2_f32): Likewise. 19069 (vst2_p64): Likewise. 19070 (vst2q_s8): Likewise. 19071 (vst2q_p8): Likewise. 19072 (vst2q_s16): Likewise. 19073 (vst2q_p16): Likewise. 19074 (vst2q_s32): Likewise. 19075 (vst2q_s64): Likewise. 19076 (vst2q_u8): Likewise. 19077 (vst2q_u16): Likewise. 19078 (vst2q_u32): Likewise. 19079 (vst2q_u64): Likewise. 19080 (vst2q_f16): Likewise. 19081 (vst2q_f32): Likewise. 19082 (vst2q_f64): Likewise. 19083 (vst2q_p64): Likewise. 19084 190852021-07-23 Jonathan Wright <jonathan.wright@arm.com> 19086 19087 * config/aarch64/arm_neon.h (vst3_s64): Use __builtin_memcpy 19088 instead of constructing __builtin_aarch64_simd_ci one vector 19089 at a time. 19090 (vst3_u64): Likewise. 19091 (vst3_f64): Likewise. 19092 (vst3_s8): Likewise. 19093 (vst3_p8): Likewise. 19094 (vst3_s16): Likewise. 19095 (vst3_p16): Likewise. 19096 (vst3_s32): Likewise. 19097 (vst3_u8): Likewise. 19098 (vst3_u16): Likewise. 19099 (vst3_u32): Likewise. 19100 (vst3_f16): Likewise. 19101 (vst3_f32): Likewise. 19102 (vst3_p64): Likewise. 19103 (vst3q_s8): Likewise. 19104 (vst3q_p8): Likewise. 19105 (vst3q_s16): Likewise. 19106 (vst3q_p16): Likewise. 19107 (vst3q_s32): Likewise. 19108 (vst3q_s64): Likewise. 19109 (vst3q_u8): Likewise. 19110 (vst3q_u16): Likewise. 19111 (vst3q_u32): Likewise. 19112 (vst3q_u64): Likewise. 19113 (vst3q_f16): Likewise. 19114 (vst3q_f32): Likewise. 19115 (vst3q_f64): Likewise. 19116 (vst3q_p64): Likewise. 19117 191182021-07-23 Jonathan Wright <jonathan.wright@arm.com> 19119 19120 * config/aarch64/arm_neon.h (vst4_s64): Use __builtin_memcpy 19121 instead of constructing __builtin_aarch64_simd_xi one vector 19122 at a time. 19123 (vst4_u64): Likewise. 19124 (vst4_f64): Likewise. 19125 (vst4_s8): Likewise. 19126 (vst4_p8): Likewise. 19127 (vst4_s16): Likewise. 19128 (vst4_p16): Likewise. 19129 (vst4_s32): Likewise. 19130 (vst4_u8): Likewise. 19131 (vst4_u16): Likewise. 19132 (vst4_u32): Likewise. 19133 (vst4_f16): Likewise. 19134 (vst4_f32): Likewise. 19135 (vst4_p64): Likewise. 19136 (vst4q_s8): Likewise. 19137 (vst4q_p8): Likewise. 19138 (vst4q_s16): Likewise. 19139 (vst4q_p16): Likewise. 19140 (vst4q_s32): Likewise. 19141 (vst4q_s64): Likewise. 19142 (vst4q_u8): Likewise. 19143 (vst4q_u16): Likewise. 19144 (vst4q_u32): Likewise. 19145 (vst4q_u64): Likewise. 19146 (vst4q_f16): Likewise. 19147 (vst4q_f32): Likewise. 19148 (vst4q_f64): Likewise. 19149 (vst4q_p64): Likewise. 19150 191512021-07-23 Jonathan Wright <jonathan.wright@arm.com> 19152 19153 * config/aarch64/arm_neon.h (vtbx4_s8): Use __builtin_memcpy 19154 instead of constructing __builtin_aarch64_simd_oi one vector 19155 at a time. 19156 (vtbx4_u8): Likewise. 19157 (vtbx4_p8): Likewise. 19158 191592021-07-23 Jonathan Wright <jonathan.wright@arm.com> 19160 19161 * config/aarch64/arm_neon.h (vtbl3_s8): Use __builtin_memcpy 19162 instead of constructing __builtin_aarch64_simd_oi one vector 19163 at a time. 19164 (vtbl3_u8): Likewise. 19165 (vtbl3_p8): Likewise. 19166 (vtbl4_s8): Likewise. 19167 (vtbl4_u8): Likewise. 19168 (vtbl4_p8): Likewise. 19169 191702021-07-23 Jonathan Wright <jonathan.wright@arm.com> 19171 19172 * config/aarch64/arm_neon.h (vqtbx2_s8): Use __builtin_memcpy 19173 instead of constructing __builtin_aarch64_simd_oi one vector 19174 at a time. 19175 (vqtbx2_u8): Likewise. 19176 (vqtbx2_p8): Likewise. 19177 (vqtbx2q_s8): Likewise. 19178 (vqtbx2q_u8): Likewise. 19179 (vqtbx2q_p8): Likewise. 19180 (vqtbx3_s8): Use __builtin_memcpy instead of constructing 19181 __builtin_aarch64_simd_ci one vector at a time. 19182 (vqtbx3_u8): Likewise. 19183 (vqtbx3_p8): Likewise. 19184 (vqtbx3q_s8): Likewise. 19185 (vqtbx3q_u8): Likewise. 19186 (vqtbx3q_p8): Likewise. 19187 (vqtbx4_s8): Use __builtin_memcpy instead of constructing 19188 __builtin_aarch64_simd_xi one vector at a time. 19189 (vqtbx4_u8): Likewise. 19190 (vqtbx4_p8): Likewise. 19191 (vqtbx4q_s8): Likewise. 19192 (vqtbx4q_u8): Likewise. 19193 (vqtbx4q_p8): Likewise. 19194 191952021-07-23 Jonathan Wright <jonathan.wright@arm.com> 19196 19197 * config/aarch64/arm_neon.h (vqtbl2_s8): Use __builtin_memcpy 19198 instead of constructing __builtin_aarch64_simd_oi one vector 19199 at a time. 19200 (vqtbl2_u8): Likewise. 19201 (vqtbl2_p8): Likewise. 19202 (vqtbl2q_s8): Likewise. 19203 (vqtbl2q_u8): Likewise. 19204 (vqtbl2q_p8): Likewise. 19205 (vqtbl3_s8): Use __builtin_memcpy instead of constructing 19206 __builtin_aarch64_simd_ci one vector at a time. 19207 (vqtbl3_u8): Likewise. 19208 (vqtbl3_p8): Likewise. 19209 (vqtbl3q_s8): Likewise. 19210 (vqtbl3q_u8): Likewise. 19211 (vqtbl3q_p8): Likewise. 19212 (vqtbl4_s8): Use __builtin_memcpy instead of constructing 19213 __builtin_aarch64_simd_xi one vector at a time. 19214 (vqtbl4_u8): Likewise. 19215 (vqtbl4_p8): Likewise. 19216 (vqtbl4q_s8): Likewise. 19217 (vqtbl4q_u8): Likewise. 19218 (vqtbl4q_p8): Likewise. 19219 192202021-07-23 Haochen Gui <guihaoc@gcc.gnu.org> 19221 19222 PR target/100952 19223 * config/rs6000/rs6000.md (cstore<mode>4): Fix wrong fall through. 19224 192252021-07-22 Andrew Pinski <apinski@marvell.com> 19226 19227 PR tree-optimization/10153 19228 * tree-tailcall.c (create_tailcall_accumulator): 19229 Don't call fold_convert as the type should be correct already. 19230 (tree_optimize_tail_calls_1): Use build_{one,zero}_cst instead 19231 of integer_{one,zero}_node for the call of create_tailcall_accumulator. 19232 192332021-07-22 Aldy Hernandez <aldyh@redhat.com> 19234 19235 * gimple-range-cache.cc (non_null_ref::adjust_range): Replace 19236 varying_p check for null/non-null check. 19237 192382021-07-22 Andrew MacLeod <amacleod@redhat.com> 19239 19240 PR tree-optimization/101511 19241 * value-relation.cc (relation_oracle::query_relation): Check if ssa1 19242 is in ssa2's equiv set, and don't trap if so. 19243 192442021-07-22 Andrew MacLeod <amacleod@redhat.com> 19245 19246 PR tree-optimization/101497 19247 * gimple-range-fold.cc (fold_using_range::range_of_cond_expr): Check 19248 for undefined. 19249 192502021-07-22 Andrew MacLeod <amacleod@redhat.com> 19251 19252 PR tree-optimization/101496 19253 * vr-values.c (simplify_using_ranges::fold_cond): Call range_of_stmt 19254 first, then vrp_visit_cond_Stmt. 19255 192562021-07-22 liuhongt <hongtao.liu@intel.com> 19257 19258 * config/i386/i386-expand.c 19259 (ix86_broadcast_from_integer_constant): Rename to .. 19260 (ix86_broadcast_from_constant): .. this, and extend it to 19261 handle float mode. 19262 (ix86_expand_vector_move): Extend to float mode. 19263 * config/i386/i386-features.c 19264 (replace_constant_pool_with_broadcast): Remove. 19265 (remove_partial_avx_dependency_gate): Ditto. 19266 (constant_pool_broadcast): Ditto. 19267 (class pass_constant_pool_broadcast): Ditto. 19268 (make_pass_constant_pool_broadcast): Ditto. 19269 (remove_partial_avx_dependency): Adjust gate. 19270 * config/i386/i386-passes.def: Remove pass_constant_pool_broadcast. 19271 * config/i386/i386-protos.h 19272 (make_pass_constant_pool_broadcast): Remove. 19273 192742021-07-22 liuhongt <hongtao.liu@intel.com> 19275 19276 * config/i386/constraints.md (Wb): New constraint. 19277 (Ww): Ditto. 19278 * config/i386/i386.md (*ashlhi3_1): Extend to avx512 mask 19279 shift. 19280 (*ashlqi3_1): Ditto. 19281 (*<insn><mode>3_1): Split to .. 19282 (*ashr<mode>3_1): this, ... 19283 (*lshr<mode>3_1): and this, also extend this pattern to avx512 19284 mask registers. 19285 (*<insn><mode>3_1): Split to .. 19286 (*ashr<mode>3_1): this, ... 19287 (*lshrqi3_1): and this, also extend this pattern to avx512 19288 mask registers. 19289 (*lshrhi3_1): And this, also extend this pattern to avx512 19290 mask registers. 19291 * config/i386/sse.md (k<code><mode>): New define_split after 19292 it to convert generic shift pattern to mask shift ones. 19293 192942021-07-21 Thomas Schwinge <thomas@codesourcery.com> 19295 Joseph Myers <joseph@codesourcery.com> 19296 Cesar Philippidis <cesar@codesourcery.com> 19297 19298 * tree-core.h (omp_clause_code): Add 'OMP_CLAUSE_NOHOST'. 19299 * tree.c (omp_clause_num_ops, omp_clause_code_name, walk_tree_1): 19300 Handle it. 19301 * tree-pretty-print.c (dump_omp_clause): Likewise. 19302 * omp-general.c (oacc_verify_routine_clauses): Likewise. 19303 * gimplify.c (gimplify_scan_omp_clauses) 19304 (gimplify_adjust_omp_clauses): Likewise. 19305 * tree-nested.c (convert_nonlocal_omp_clauses) 19306 (convert_local_omp_clauses): Likewise. 19307 * omp-low.c (scan_sharing_clauses): Likewise. 19308 * omp-offload.c (execute_oacc_device_lower): Update. 19309 193102021-07-21 Martin Sebor <msebor@redhat.com> 19311 19312 * tree-ssa-alias.c (walk_aliased_vdefs_1): Fix typos in a comment. 19313 193142021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19315 19316 * config/rs6000/rs6000-gen-builtins.c (write_init_bif_table): 19317 Implement. 19318 193192021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19320 19321 * config/rs6000/rs6000-gen-builtins.c (write_fntype): New 19322 callback function. 19323 (write_fntype_init): New stub function. 19324 (write_init_bif_table): Likewise. 19325 (write_init_ovld_table): New function. 19326 (write_init_file): Implement. 19327 193282021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19329 19330 * config/rs6000/rs6000-gen-builtins.c 19331 (write_autogenerated_header): New function. 19332 (write_decls): Likewise. 19333 (write_extern_fntype): New callback function. 19334 (write_header_file): Implement. 19335 193362021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19337 19338 * config/rs6000/rs6000-gen-builtins.c (write_defines_file): 19339 Implement. 19340 193412021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19342 19343 * config/rs6000/rs6000-gen-builtins.c (complete_vector_type): New 19344 function. 19345 (complete_base_type): Likewise. 19346 (construct_fntype_id): Likewise. 19347 (parse_bif_entry): Call contruct_fntype_id. 19348 (parse_ovld_entry): Likewise. 19349 193502021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19351 19352 * config/rs6000/rs6000-gen-builtins.c (ovld_stanza): New struct. 19353 (MAXOVLDSTANZAS): New macro. 19354 (ovld_stanzas): New variable. 19355 (curr_ovld_stanza): Likewise. 19356 (MAXOVLDS): New macro. 19357 (ovlddata): New struct. 19358 (ovlds): New variable. 19359 (curr_ovld): Likewise. 19360 (max_ovld_args): Likewise. 19361 (parse_ovld_entry): New function. 19362 (parse_ovld_stanza): Likewise. 19363 (parse_ovld): Implement. 19364 193652021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19366 19367 * config/rs6000/rs6000-gen-builtins.c (parse_bif_attrs): 19368 Implement. 19369 193702021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19371 19372 * config/rs6000/rs6000-gen-builtins.c (parse_args): New function. 19373 (parse_prototype): Implement. 19374 193752021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19376 19377 * config/rs6000/rs6000-gen-builtins.c (bif_stanza): New enum. 19378 (curr_bif_stanza): New variable. 19379 (stanza_entry): New struct. 19380 (stanza_map): New initialized variable. 19381 (enable_string): Likewise. 19382 (fnkinds): New enum. 19383 (typelist): New struct. 19384 (attrinfo): Likewise. 19385 (MAXRESTROPNDS): New macro. 19386 (prototype): New struct. 19387 (MAXBIFS): New macro. 19388 (bifdata): New struct. 19389 (bifs): New variable. 19390 (curr_bif): Likewise. 19391 (bif_order): Likewise. 19392 (bif_index): Likewise. 19393 (fatal): New function. 19394 (stanza_name_to_stanza): Likewise. 19395 (parse_bif_attrs): New stub function. 19396 (parse_prototype): Likewise. 19397 (parse_bif_entry): New function. 19398 (parse_bif_stanza): Likewise. 19399 (parse_bif): Implement. 19400 (set_bif_order): New function. 19401 (create_bif_order): Implement. 19402 194032021-07-21 Bill Schmidt <wschmidt@linux.ibm.com> 19404 19405 * config/rs6000/rs6000-gen-builtins.c (rbtree.h): New #include. 19406 (num_bifs): New variable. 19407 (num_ovld_stanzas): Likewise. 19408 (num_ovlds): Likewise. 19409 (parse_codes): New enum. 19410 (bif_rbt): New variable. 19411 (ovld_rbt): Likewise. 19412 (fntype_rbt): Likewise. 19413 (bifo_rbt): Likewise. 19414 (parse_bif): New stub function. 19415 (create_bif_order): Likewise. 19416 (parse_ovld): Likewise. 19417 (write_header_file): Likewise. 19418 (write_init_file): Likewise. 19419 (write_defines_file): Likewise. 19420 (delete_output_files): New function. 19421 (main): Likewise. 19422 194232021-07-21 H.J. Lu <hjl.tools@gmail.com> 19424 19425 PR target/101549 19426 * config/i386/i386-builtin.def: Remove OPTION_MASK_ISA_SSE4_2 19427 from CRC32 _builtin functions. 19428 194292021-07-21 Sebastian Huber <sebastian.huber@embedded-brains.de> 19430 19431 * coverage.c (build_gcov_info_var_registration): Mark the object placed 19432 in the linker set as referenced so that it does not get optimized away. 19433 194342021-07-21 Kito Cheng <kito.cheng@sifive.com> 19435 19436 Revert: 19437 2021-07-20 Kito Cheng <kito.cheng@sifive.com> 19438 19439 * config.gcc (riscv*-*-*): Detect which python is available. 19440 194412021-07-21 Jakub Jelinek <jakub@redhat.com> 19442 19443 PR middle-end/101535 19444 * gimplify.c (omp_check_private): Properly skip ORT_TARGET_DATA 19445 contexts in which decl isn't privatized and for ORT_TARGET return 19446 false if decl is mapped. 19447 194482021-07-21 Richard Sandiford <richard.sandiford@arm.com> 19449 19450 * gimple-loop-jam.c: Include tree-ssa-sccvn.h. 19451 (tree_loop_unroll_and_jam): Run value-numbering on a loop that 19452 has been successfully unrolled. 19453 194542021-07-21 Richard Sandiford <richard.sandiford@arm.com> 19455 19456 * tree-ssa-loop-manip.c (determine_exit_conditions): Return a null 19457 exit condition if no tail loop is needed, and if the original exit 19458 condition should therefore be kept as-is. 19459 (tree_transform_and_unroll_loop): Handle that case here too. 19460 194612021-07-21 Kewen Lin <linkw@linux.ibm.com> 19462 19463 * tree-data-ref.c (free_dependence_relations): Adjust to pass vec 19464 by reference. 19465 (free_data_refs): Likewise. 19466 * tree-data-ref.h (free_dependence_relations): Likewise. 19467 (free_data_refs): Likewise. 19468 * tree-predcom.c (struct chain): Use auto_vec instead of vec for 19469 members. 19470 (struct component): Likewise. 19471 (pcom_worker::pcom_worker): Adjust for auto_vec and renaming changes. 19472 (pcom_worker::~pcom_worker): Likewise. 19473 (pcom_worker::release_chain): Adjust as auto_vec changes. 19474 (pcom_worker::loop): Rename to ... 19475 (pcom_worker::m_loop): ... this. 19476 (pcom_worker::datarefs): Rename to ... 19477 (pcom_worker::m_datarefs): ... this. Use auto_vec instead of vec. 19478 (pcom_worker::dependences): Rename to ... 19479 (pcom_worker::m_dependences): ... this. Use auto_vec instead of vec. 19480 (pcom_worker::chains): Rename to ... 19481 (pcom_worker::m_chains): ... this. Use auto_vec instead of vec. 19482 (pcom_worker::looparound_phis): Rename to ... 19483 (pcom_worker::m_looparound_phis): ... this. Use auto_vec instead of 19484 vec. 19485 (pcom_worker::cache): Rename to ... 19486 (pcom_worker::m_cache): ... this. Use auto_vec instead of vec. 19487 (pcom_worker::release_chain): Adjust for auto_vec changes. 19488 (pcom_worker::release_chains): Adjust for auto_vec and renaming 19489 changes. 19490 (release_component): Remove. 19491 (release_components): Adjust for release_component removal. 19492 (component_of): Adjust to use vec. 19493 (merge_comps): Likewise. 19494 (pcom_worker::aff_combination_dr_offset): Adjust for renaming changes. 19495 (pcom_worker::determine_offset): Likewise. 19496 (class comp_ptrs): Remove. 19497 (pcom_worker::split_data_refs_to_components): Adjust for renaming 19498 changes, for comp_ptrs removal with auto_vec. 19499 (pcom_worker::suitable_component_p): Adjust for renaming changes. 19500 (pcom_worker::filter_suitable_components): Adjust for release_component 19501 removal. 19502 (pcom_worker::valid_initializer_p): Adjust for renaming changes. 19503 (pcom_worker::find_looparound_phi): Likewise. 19504 (pcom_worker::add_looparound_copies): Likewise. 19505 (pcom_worker::determine_roots_comp): Likewise. 19506 (pcom_worker::single_nonlooparound_use): Likewise. 19507 (pcom_worker::execute_pred_commoning_chain): Likewise. 19508 (pcom_worker::execute_pred_commoning): Likewise. 19509 (pcom_worker::try_combine_chains): Likewise. 19510 (pcom_worker::prepare_initializers_chain): Likewise. 19511 (pcom_worker::prepare_initializers): Likewise. 19512 (pcom_worker::prepare_finalizers_chain): Likewise. 19513 (pcom_worker::prepare_finalizers): Likewise. 19514 (pcom_worker::tree_predictive_commoning_loop): Likewise. 19515 195162021-07-20 Martin Sebor <msebor@redhat.com> 19517 19518 PR middle-end/101397 19519 * builtins.c (gimple_call_return_array): Add argument. Correct 19520 offsets for memchr, mempcpy, stpcpy, and stpncpy. 19521 (compute_objsize_r): Adjust offset computation for argument returning 19522 built-ins. 19523 195242021-07-20 Martin Sebor <msebor@redhat.com> 19525 19526 PR middle-end/101300 19527 * tree-ssa-uninit.c (check_defs): Handle UBSAN built-ins. 19528 195292021-07-20 Jeff Law <jlaw@localhost.localdomain> 19530 19531 * function.c (assign_parm_setup_block): Use adjust_address instead 19532 of change_address to preserve MEM_EXPR and friends. 19533 195342021-07-20 Martin Sebor <msebor@redhat.com> 19535 19536 * cfgloop.h (single_likely_exit): Adjust by-value argument to 19537 by-const-reference. 19538 * cfgloopanal.c (single_likely_exit): Same. 19539 * cgraph.h (struct cgraph_node): Same. 19540 * cgraphclones.c (cgraph_node::create_virtual_clone): Same. 19541 * genautomata.c (merge_states): Same. 19542 * genextract.c (VEC_char_to_string): Same. 19543 * genmatch.c (dt_node::gen_kids_1): Same. 19544 (walk_captures): Adjust by-value argument to by-reference. 19545 * gimple-ssa-store-merging.c (check_no_overlap): Adjust by-value argument 19546 to by-const-reference. 19547 * gimple.c (gimple_build_call_vec): Same. 19548 (gimple_build_call_internal_vec): Same. 19549 (gimple_build_switch): Same. 19550 (sort_case_labels): Same. 19551 (preprocess_case_label_vec_for_gimple): Adjust by-value argument to 19552 by-reference. 19553 * gimple.h (gimple_build_call_vec): Adjust by-value argument to 19554 by-const-reference. 19555 (gimple_build_call_internal_vec): Same. 19556 (gimple_build_switch): Same. 19557 (sort_case_labels): Same. 19558 (preprocess_case_label_vec_for_gimple): Adjust by-value argument to 19559 by-reference. 19560 * haifa-sched.c (calc_priorities): Adjust by-value argument to 19561 by-const-reference. 19562 (sched_init_luids): Same. 19563 (haifa_init_h_i_d): Same. 19564 * ipa-cp.c (ipa_get_indirect_edge_target_1): Same. 19565 (adjust_callers_for_value_intersection): Adjust by-value argument to 19566 by-reference. 19567 (find_more_scalar_values_for_callers_subset): Adjust by-value argument to 19568 by-const-reference. 19569 (find_more_contexts_for_caller_subset): Same. 19570 (find_aggregate_values_for_callers_subset): Same. 19571 (copy_useful_known_contexts): Same. 19572 * ipa-fnsummary.c (remap_edge_summaries): Same. 19573 (remap_freqcounting_predicate): Same. 19574 * ipa-inline.c (add_new_edges_to_heap): Adjust by-value argument to 19575 by-reference. 19576 * ipa-predicate.c (predicate::remap_after_inlining): Adjust by-value argument 19577 to by-const-reference. 19578 * ipa-predicate.h (predicate::remap_after_inlining): Same. 19579 * ipa-prop.c (ipa_find_agg_cst_for_param): Same. 19580 * ipa-prop.h (ipa_find_agg_cst_for_param): Same. 19581 * ira-build.c (ira_loop_tree_body_rev_postorder): Same. 19582 * read-rtl.c (add_overload_instance): Same. 19583 * rtl.h (native_decode_rtx): Same. 19584 (native_decode_vector_rtx): Same. 19585 * sched-int.h (sched_init_luids): Same. 19586 (haifa_init_h_i_d): Same. 19587 * simplify-rtx.c (native_decode_vector_rtx): Same. 19588 (native_decode_rtx): Same. 19589 * tree-call-cdce.c (gen_shrink_wrap_conditions): Same. 19590 (shrink_wrap_one_built_in_call_with_conds): Same. 19591 (shrink_wrap_conditional_dead_built_in_calls): Same. 19592 * tree-data-ref.c (create_runtime_alias_checks): Same. 19593 (compute_all_dependences): Same. 19594 * tree-data-ref.h (compute_all_dependences): Same. 19595 (create_runtime_alias_checks): Same. 19596 (index_in_loop_nest): Same. 19597 * tree-if-conv.c (mask_exists): Same. 19598 * tree-loop-distribution.c (class loop_distribution): Same. 19599 (loop_distribution::create_rdg_vertices): Same. 19600 (dump_rdg_partitions): Same. 19601 (debug_rdg_partitions): Same. 19602 (partition_contains_all_rw): Same. 19603 (loop_distribution::distribute_loop): Same. 19604 * tree-parloops.c (oacc_entry_exit_ok_1): Same. 19605 (oacc_entry_exit_single_gang): Same. 19606 * tree-ssa-loop-im.c (hoist_memory_references): Same. 19607 (loop_suitable_for_sm): Same. 19608 * tree-ssa-loop-niter.c (bound_index): Same. 19609 * tree-ssa-reassoc.c (update_ops): Same. 19610 (swap_ops_for_binary_stmt): Same. 19611 (rewrite_expr_tree): Same. 19612 (rewrite_expr_tree_parallel): Same. 19613 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Same. 19614 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Same. 19615 * tree-ssa-structalias.c (process_all_all_constraints): Same. 19616 (make_constraints_to): Same. 19617 (handle_lhs_call): Same. 19618 (find_func_aliases_for_builtin_call): Same. 19619 (sort_fieldstack): Same. 19620 (check_for_overlaps): Same. 19621 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Same. 19622 (vect_create_cond_for_unequal_addrs): Same. 19623 (vect_create_cond_for_lower_bounds): Same. 19624 (vect_create_cond_for_alias_checks): Same. 19625 * tree-vect-slp-patterns.c (vect_validate_multiplication): Same. 19626 * tree-vect-slp.c (vect_analyze_slp_instance): Same. 19627 (vect_make_slp_decision): Same. 19628 (vect_slp_bbs): Same. 19629 (duplicate_and_interleave): Same. 19630 (vect_transform_slp_perm_load): Same. 19631 (vect_schedule_slp): Same. 19632 * tree-vectorizer.h (vect_transform_slp_perm_load): Same. 19633 (vect_schedule_slp): Same. 19634 (duplicate_and_interleave): Same. 19635 * tree.c (build_vector_from_ctor): Same. 19636 (build_vector): Same. 19637 (check_vector_cst): Same. 19638 (check_vector_cst_duplicate): Same. 19639 (check_vector_cst_fill): Same. 19640 (check_vector_cst_stepped): Same. 19641 * tree.h (build_vector_from_ctor): Same. 19642 196432021-07-20 Jakub Jelinek <jakub@redhat.com> 19644 19645 PR target/101384 19646 * config/rs6000/rs6000-protos.h (easy_altivec_constant): Change return 19647 type from bool to int. 19648 * config/rs6000/rs6000.c (vspltis_constant): Fix up handling the 19649 EASY_VECTOR_MSB case if either step or copies is not 1. 19650 (vspltis_shifted): Fix comment typo. 19651 (easy_altivec_constant): Change return type from bool to int, instead 19652 of returning true return byte size of the element mode that should be 19653 used to synthetize the constant. 19654 * config/rs6000/predicates.md (easy_vector_constant_msb): Require 19655 that vspltis_shifted is 0, handle the case where easy_altivec_constant 19656 assumes using different vector mode from CONST_VECTOR's mode. 19657 * config/rs6000/altivec.md (easy_vector_constant_msb splitter): Use 19658 easy_altivec_constant to determine mode in which -1 >> -1 should be 19659 performed, use rs6000_expand_vector_init instead of gen_vec_initv4sisi. 19660 196612021-07-20 Richard Biener <rguenther@suse.de> 19662 19663 PR debug/101473 19664 * dwarf2out.h (dwarf_file_data): Add key member. 19665 * dwarf2out.c (dwarf_file_hasher::equal): Compare key. 19666 (dwarf_file_hasher::hash): Hash key. 19667 (lookup_filename): Remap the filename and store it in the 19668 filename member of dwarf_file_data when creating a new 19669 dwarf_file_data. 19670 (file_name_acquire): Do not remap the filename again. 19671 (maybe_emit_file): Likewise. 19672 196732021-07-20 Jonathan Wright <jonathan.wright@arm.com> 19674 19675 * config/aarch64/aarch64-simd-builtins.def: Use two variant 19676 generators for all TBL/TBX intrinsics and rename to 19677 consistent forms: qtbl[1234] or qtbx[1234]. 19678 * config/aarch64/aarch64-simd.md (aarch64_tbl1<mode>): 19679 Rename to... 19680 (aarch64_qtbl1<mode>): This. 19681 (aarch64_tbx1<mode>): Rename to... 19682 (aarch64_qtbx1<mode>): This. 19683 (aarch64_tbl2v16qi): Delete. 19684 (aarch64_tbl3<mode>): Rename to... 19685 (aarch64_qtbl2<mode>): This. 19686 (aarch64_tbx4<mode>): Rename to... 19687 (aarch64_qtbx2<mode>): This. 19688 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_1): Use 19689 renamed qtbl1 and qtbl2 RTL patterns. 19690 * config/aarch64/arm_neon.h (vqtbl1_p8): Use renamed qtbl1 19691 RTL pattern. 19692 (vqtbl1_s8): Likewise. 19693 (vqtbl1_u8): Likewise. 19694 (vqtbl1q_p8): Likewise. 19695 (vqtbl1q_s8): Likewise. 19696 (vqtbl1q_u8): Likewise. 19697 (vqtbx1_s8): Use renamed qtbx1 RTL pattern. 19698 (vqtbx1_u8): Likewise. 19699 (vqtbx1_p8): Likewise. 19700 (vqtbx1q_s8): Likewise. 19701 (vqtbx1q_u8): Likewise. 19702 (vqtbx1q_p8): Likewise. 19703 (vtbl1_s8): Use renamed qtbl1 RTL pattern. 19704 (vtbl1_u8): Likewise. 19705 (vtbl1_p8): Likewise. 19706 (vtbl2_s8): Likewise 19707 (vtbl2_u8): Likewise. 19708 (vtbl2_p8): Likewise. 19709 (vtbl3_s8): Use renamed qtbl2 RTL pattern. 19710 (vtbl3_u8): Likewise. 19711 (vtbl3_p8): Likewise. 19712 (vtbl4_s8): Likewise. 19713 (vtbl4_u8): Likewise. 19714 (vtbl4_p8): Likewise. 19715 (vtbx2_s8): Use renamed qtbx2 RTL pattern. 19716 (vtbx2_u8): Likewise. 19717 (vtbx2_p8): Likewise. 19718 (vqtbl2_s8): Use renamed qtbl2 RTL pattern. 19719 (vqtbl2_u8): Likewise. 19720 (vqtbl2_p8): Likewise. 19721 (vqtbl2q_s8): Likewise. 19722 (vqtbl2q_u8): Likewise. 19723 (vqtbl2q_p8): Likewise. 19724 (vqtbx2_s8): Use renamed qtbx2 RTL pattern. 19725 (vqtbx2_u8): Likewise. 19726 (vqtbx2_p8): Likewise. 19727 (vqtbx2q_s8): Likewise. 19728 (vqtbx2q_u8): Likewise. 19729 (vqtbx2q_p8): Likewise. 19730 (vtbx4_s8): Likewise. 19731 (vtbx4_u8): Likewise. 19732 (vtbx4_p8): Likewise. 19733 197342021-07-20 Uro�� Bizjak <ubizjak@gmail.com> 19735 19736 PR target/100182 19737 * config/i386/sync.md (define_peephole2 atomic_storedi_fpu): 19738 Remove. 19739 (define_peephole2 atomic_loaddi_fpu): Ditto. 19740 197412021-07-20 Kito Cheng <kito.cheng@sifive.com> 19742 19743 * config.gcc (riscv*-*-*): Detect which python is available. 19744 197452021-07-20 Kewen Lin <linkw@linux.ibm.com> 19746 19747 * config/rs6000/vsx.md (mulhs_<mode>): Rename to... 19748 (smul<mode>3_highpart): ... this. 19749 (mulhu_<mode>): Rename to... 19750 (umul<mode>3_highpart): ... this. 19751 * config/rs6000/rs6000-builtin.def (MULHS_V2DI, MULHS_V4SI, 19752 MULHU_V2DI, MULHU_V4SI): Adjust. 19753 197542021-07-20 Kewen Lin <linkw@linux.ibm.com> 19755 19756 PR tree-optimization/100696 19757 * internal-fn.c (first_commutative_argument): Add info for IFN_MULH. 19758 * internal-fn.def (IFN_MULH): New internal function. 19759 * tree-vect-patterns.c (vect_recog_mulhs_pattern): Add support to 19760 recog normal multiply highpart as IFN_MULH. 19761 * config/i386/i386.c (ix86_add_stmt_cost): Adjust for combined 19762 function CFN_MULH. 19763 197642021-07-19 Indu Bhagat <indu.bhagat@oracle.com> 19765 19766 * config/elfos.h (CTF_DEBUGGING_INFO): New definition. 19767 (BTF_DEBUGGING_INFO): Likewise. 19768 * doc/tm.texi.in: Document the new macros. 19769 * doc/tm.texi: Regenerated. 19770 * toplev.c: Guard initialization of debug hooks. 19771 197722021-07-19 Indu Bhagat <indu.bhagat@oracle.com> 19773 19774 * flags.h (ctf_debuginfo_p): New function declaration. 19775 * opts.c (ctf_debuginfo_p): New function definition. 19776 197772021-07-19 Andrew Stubbs <ams@codesourcery.com> 19778 19779 PR target/100208 19780 * config/gcn/gcn-hsa.h (DRIVER_SELF_SPECS): New. 19781 (ASM_SPEC): Set -mattr for xnack and sram-ecc. 19782 * config/gcn/gcn-opts.h (enum sram_ecc_type): New. 19783 * config/gcn/gcn-valu.md: Add a warning comment. 19784 * config/gcn/gcn.c (gcn_option_override): Add "sorry" for -mxnack. 19785 (output_file_start): Add xnack and sram-ecc state to ".amdgcn_target". 19786 * config/gcn/gcn.md: Add a warning comment. 19787 * config/gcn/gcn.opt: Add -mxnack and -msram-ecc. 19788 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): Remove 19789 SRAM-ECC flag. 19790 (EF_AMDGPU_XNACK): New. 19791 (EF_AMDGPU_SRAM_ECC): New. 19792 (elf_flags): New. 19793 (copy_early_debug_info): Use elf_flags. 19794 (main): Handle -mxnack and -msram-ecc options. 19795 * doc/invoke.texi: Document -mxnack and -msram-ecc. 19796 197972021-07-19 Andrew Pinski <apinski@marvell.com> 19798 19799 PR target/101205 19800 * config/aarch64/aarch64.md (csneg3_uxtw_insn): Rename to ... 19801 (*cs<neg_not_cs>3_uxtw_insn4): and extend to NEG_NOT. 19802 198032021-07-19 Richard Biener <rguenther@suse.de> 19804 19805 PR tree-optimization/101505 19806 * tree-vect-patterns.c (vect_determine_precisions): Walk 19807 PHIs also for loop vectorization. 19808 198092021-07-19 Richard Biener <rguenther@suse.de> 19810 19811 * gimple.h (gimple_expr_type): Remove. 19812 * doc/gimple.texi: Remove gimple_expr_type documentation. 19813 198142021-07-19 Richard Biener <rguenther@suse.de> 19815 19816 * tree-ssa-sccvn.c (vn_reference_eq): Handle NULL vr->type. 19817 (ao_ref_init_from_vn_reference): Likewise. 19818 (fully_constant_reference): Likewise. 19819 (vn_reference_lookup_call): Do not set vr->type to random 19820 values. 19821 * tree-ssa-pre.c (compute_avail): Do not try to PRE calls 19822 without a value. 19823 * tree-vect-generic.c (expand_vector_piecewise): Pass in 19824 whether we expanded parallel. 19825 (expand_vector_parallel): Adjust. 19826 (expand_vector_addition): Likewise. 19827 (expand_vector_comparison): Likewise. 19828 (expand_vector_operation): Likewise. 19829 (expand_vector_scalar_condition): Likewise. 19830 (expand_vector_conversion): Likewise. 19831 198322021-07-19 Richard Biener <rguenther@suse.de> 19833 19834 * tree-vrp.c (register_edge_assert_for_2): Use the 19835 type from the LHS. 19836 (vrp_folder::fold_predicate_in): Likewise. 19837 * vr-values.c (gimple_assign_nonzero_p): Likewise. 19838 (vr_values::extract_range_from_comparison): Likewise. 19839 (vr_values::extract_range_from_ubsan_builtin): Use the 19840 type of the first operand. 19841 (vr_values::extract_range_basic): Push down type 19842 computation, use the appropriate LHS. 19843 (vr_values::extract_range_from_assignment): Use the 19844 type of the LHS. 19845 198462021-07-18 H.J. Lu <hjl.tools@gmail.com> 19847 19848 PR target/101492 19849 * common/config/i386/i386-common.c (ix86_handle_option): For 19850 -mgeneral-regs-only, enable the GPR only instructions which are 19851 enabled implicitly by SSE ISAs unless they have been disabled 19852 explicitly. 19853 198542021-07-18 H.J. Lu <hjl.tools@gmail.com> 19855 19856 PR target/101495 19857 * config/i386/i386.c (ix86_check_avx_upper_stores): Moved before 19858 ix86_avx_u128_mode_needed. 19859 (ix86_avx_u128_mode_needed): Return AVX_U128_DIRTY if callee 19860 returns AVX register. 19861 198622021-07-17 Jan Hubicka <hubicka@ucw.cz> 19863 19864 * tree-ssa-structalias.c (handle_rhs_call): Support EAF_NOT_RETURNED. 19865 (handle_const_call): Liekise 19866 (handle_pure_call): Liekise 19867 198682021-07-17 Andrew MacLeod <amacleod@redhat.com> 19869 19870 PR tree-optimization/96542 19871 * range-op.cc (range_operator::wi_fold_in_parts): New. 19872 (range_operator::fold_range): Call wi_fold_in_parts. 19873 (operator_lshift::wi_fold): Fix broken lshift by [0,0]. 19874 * range-op.h (wi_fold_in_parts): Add prototype. 19875 198762021-07-16 David Malcolm <dmalcolm@redhat.com> 19877 19878 * doc/analyzer.texi: Add __analyzer_dump_state. 19879 198802021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19881 19882 * config/rs6000/rbtree.c: New file. 19883 * config/rs6000/rbtree.h: New file. 19884 198852021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19886 19887 * config/rs6000/rs6000-gen-builtins.c (restriction): New enum. 19888 (typeinfo): Add restr field. 19889 (match_bracketed_pair): New function. 19890 (match_const_restriction): Implement. 19891 198922021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19893 19894 * config/rs6000/rs6000-gen-builtins.c (match_basetype): Implement. 19895 198962021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19897 19898 * config/rs6000/rs6000-gen-builtins.c (void_status): New enum. 19899 (basetype): Likewise. 19900 (typeinfo): Likewise. 19901 (handle_pointer): New function. 19902 (match_basetype): New stub function. 19903 (match_const_restriction): Likewise. 19904 (match_type): New function. 19905 199062021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19907 19908 * config/rs6000/rs6000-gen-builtins.c (consume_whitespace): New 19909 function. 19910 (advance_line): Likewise. 19911 (safe_inc_pos): Likewise. 19912 (match_identifier): Likewise. 19913 (match_integer): Likewise. 19914 (match_to_right_bracket): Likewise. 19915 199162021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19917 19918 * config/rs6000/rs6000-gen-builtins.c (bif_file): New variable. 19919 (ovld_file): Likewise. 19920 (header_file): Likewise. 19921 (init_file): Likewise. 19922 (defines_file): Likewise. 19923 (pgm_path): Likewise. 19924 (bif_path): Likewise. 19925 (ovld_path): Likewise. 19926 (header_path): Likewise. 19927 (init_path): Likewise. 19928 (defines_path): Likewise. 19929 (LINELEN): New macro. 19930 (linebuf): New variable. 19931 (line): Likewise. 19932 (pos): Likewise. 19933 (diag): Likewise. 19934 (bif_diag): New function. 19935 (ovld_diag): Likewise. 19936 199372021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19938 19939 * config/rs6000/rs6000-builtin-new.def: New. 19940 * config/rs6000/rs6000-overload.def: New. 19941 199422021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19943 19944 * config/rs6000/rs6000-gen-builtins.c: New. 19945 199462021-07-16 Bill Schmidt <wschmidt@linux.ibm.com> 19947 19948 * Makefile.in (EXTRA_GTYPE_DEPS): New variable. 19949 (s-gtype): Depend on EXTRA_GTYPE_DEPS. 19950 * gengtype-state.c (state_writer::write_state_file_list): Add a 19951 parameter to the fileslist expression for the number of build 19952 headers to scan. 19953 (read_state_files_list): Detect build headers and strip the 19954 initial "./" or ".\" from their names. 19955 * gengtype.c (build_headers): New global variable. 19956 (num_build_headers): Likewise. 19957 (open_base_files): Emit #include for each build header. 19958 (main): Detect and count build headers. 19959 * gengtype.h (build_headers): New extern variable. 19960 (num_build_headers): Likewise. 19961 199622021-07-16 Richard Biener <rguenther@suse.de> 19963 19964 * gimple-ssa-store-merging.c (verify_symbolic_number_p): Use 19965 the type of the LHS. 19966 (find_bswap_or_nop_1): Likewise. 19967 (find_bswap_or_nop): Likewise. 19968 * tree-vectorizer.h (vect_get_smallest_scalar_type): Adjust 19969 prototype. 19970 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): 19971 Remove unused parameters, pass in the scalar type. Fix 19972 internal store function handling. 19973 * tree-vect-stmts.c (vect_analyze_stmt): Remove assert. 19974 (vect_get_vector_types_for_stmt): Move down check for 19975 existing vector stmt after we've determined a scalar type. 19976 Pass down the used scalar type to vect_get_smallest_scalar_type. 19977 * tree-vect-generic.c (expand_vector_condition): Use 19978 the type of the LHS. 19979 (expand_vector_scalar_condition): Likewise. 19980 (expand_vector_operations_1): Likewise. 19981 * tree-vect-patterns.c (vect_widened_op_tree): Likewise. 19982 (vect_recog_dot_prod_pattern): Likewise. 19983 (vect_recog_sad_pattern): Likewise. 19984 (vect_recog_widen_op_pattern): Likewise. 19985 (vect_recog_widen_sum_pattern): Likewise. 19986 (vect_recog_mixed_size_cond_pattern): Likewise. 19987 199882021-07-16 Jan Hubicka <hubicka@ucw.cz> 19989 19990 * ipa-modref.c (struct escape_entry): Use eaf_fleags_t. 19991 (dump_eaf_flags): Dump EAF_NOT_RETURNED 19992 (eaf_flags_useful_p): Use eaf_fleags_t; handle const functions 19993 and EAF_NOT_RETURNED. 19994 (modref_summary::useful_p): Likewise. 19995 (modref_summary_lto::useful_p): Likewise. 19996 (struct) modref_summary_lto: Use eaf_fleags_t. 19997 (deref_flags): Handle EAF_NOT_RETURNED. 19998 (struct escape_point): Use min_flags. 19999 (modref_lattice::init): Add EAF_NOT_RETURNED. 20000 (merge_call_lhs_flags): Ignore EAF_NOT_RETURNED functions 20001 (analyze_ssa_name_flags): Clear EAF_NOT_RETURNED on return; 20002 handle call flags. 20003 (analyze_parms): Also analyze const functions; update conition on 20004 flags usefulness. 20005 (modref_write): Update streaming. 20006 (read_section): Update streaming. 20007 (remap_arg_flags): Use eaf_flags_t. 20008 (modref_merge_call_site_flags): Hanlde EAF_NOT_RETURNED. 20009 * ipa-modref.h: (eaf_flags_t): New typedef. 20010 (struct modref_summary): Use eaf_flags_t. 20011 * tree-core.h (EAF_NOT_RETURNED): New constant. 20012 200132021-07-16 Richard Biener <rguenther@suse.de> 20014 20015 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Use 20016 the type of the LHS. 20017 (gimple_assign_nonnegative_warnv_p): Likewise. 20018 (gimple_call_nonnegative_warnv_p): Likewise. Return false 20019 if the call has no LHS. 20020 * gimple.c (gimple_could_trap_p_1): Use the type of the LHS. 20021 * tree-eh.c (stmt_could_throw_1_p): Likewise. 20022 * tree-inline.c (insert_init_stmt): Likewise. 20023 * tree-ssa-loop-niter.c (get_val_for): Likewise. 20024 * tree-outof-ssa.c (ssa_is_replaceable_p): Use the type of 20025 the def. 20026 * tree-ssa-sccvn.c (init_vn_nary_op_from_stmt): Take a 20027 gassign *. Use the type of the lhs. 20028 (vn_nary_op_lookup_stmt): Adjust. 20029 (vn_nary_op_insert_stmt): Likewise. 20030 200312021-07-16 Ilya Leoshkevich <iii@linux.ibm.com> 20032 20033 * config/s390/predicates.md (bras_sym_operand): Accept all 20034 functions in 64-bit mode, use UNSPEC_PLT31. 20035 (larl_operand): Use UNSPEC_PLT31. 20036 * config/s390/s390.c (s390_loadrelative_operand_p): Likewise. 20037 (legitimize_pic_address): Likewise. 20038 (s390_emit_tls_call_insn): Mark __tls_get_offset as function, 20039 use UNSPEC_PLT31. 20040 (s390_delegitimize_address): Use UNSPEC_PLT31. 20041 (s390_output_addr_const_extra): Likewise. 20042 (print_operand): Add @PLT to TLS calls, handle %K. 20043 (s390_function_profiler): Mark __fentry__/_mcount as function, 20044 use %K, use UNSPEC_PLT31. 20045 (s390_output_mi_thunk): Use only UNSPEC_GOT, use %K. 20046 (s390_emit_call): Use UNSPEC_PLT31. 20047 (s390_emit_tpf_eh_return): Mark __tpf_eh_return as function. 20048 * config/s390/s390.md (UNSPEC_PLT31): Rename from UNSPEC_PLT. 20049 (*movdi_64): Use %K. 20050 (reload_base_64): Likewise. 20051 (*sibcall_brc): Likewise. 20052 (*sibcall_brcl): Likewise. 20053 (*sibcall_value_brc): Likewise. 20054 (*sibcall_value_brcl): Likewise. 20055 (*bras): Likewise. 20056 (*brasl): Likewise. 20057 (*bras_r): Likewise. 20058 (*brasl_r): Likewise. 20059 (*bras_tls): Likewise. 20060 (*brasl_tls): Likewise. 20061 (main_base_64): Likewise. 20062 (reload_base_64): Likewise. 20063 (@split_stack_call<mode>): Likewise. 20064 200652021-07-16 Richard Biener <rguenther@suse.de> 20066 20067 PR tree-optimization/101467 20068 * tree-vect-stmts.c (vect_gen_while): Properly guard 20069 make_temp_ssa_name usage. 20070 200712021-07-16 Cooper Qu <cooper.qu@linux.alibaba.com> 20072 20073 * config.gcc: Don't use forked print-sysroot-suffix.sh and 20074 t-sysroot-suffix for C-SKY. 20075 * config/csky/print-sysroot-suffix.sh: Delete. 20076 * config/csky/t-csky-linux: Delete. 20077 * config/csky/t-sysroot-suffix: Define MULTILIB_DIRNAMES 20078 instead of CSKY_MULTILIB_DIRNAMES. 20079 200802021-07-16 Richard Biener <rguenther@suse.de> 20081 20082 * tree-vect-loop.c (vect_transform_cycle_phi): Correct sign 20083 conversion issues with the partial reduction of the reused 20084 vector accumulator. 20085 200862021-07-16 Richard Biener <rguenther@suse.de> 20087 20088 * config/i386/i386-options.c (ix86_option_override_internal): Set 20089 param_vect_partial_vector_usage to zero if not set. 20090 200912021-07-15 Uro�� Bizjak <ubizjak@gmail.com> 20092 20093 PR target/101346 20094 * config/i386/i386.h (VALID_SSE_REG_MODE): Add TDmode. 20095 (VALID_INT_MODE_P): Add SDmode and DDmode. 20096 Add TDmode for TARGET_64BIT. 20097 (VALID_DFP_MODE_P): Remove. 20098 * config/i386/i386.c (ix86_hard_regno_mode_ok): 20099 Do not use VALID_DFP_MODE_P. 20100 201012021-07-15 Andrew MacLeod <amacleod@redhat.com> 20102 20103 * gimple-range-fold.cc (adjust_pointer_diff_expr): Use 20104 gimple_range_type. 20105 (fold_using_range::fold_stmt): Ditto. 20106 (fold_using_range::range_of_range_op): Ditto. 20107 (fold_using_range::range_of_phi): Ditto. 20108 (fold_using_range::range_of_call): Ditto. 20109 (fold_using_range::range_of_builtin_ubsan_call): Ditto. 20110 (fold_using_range::range_of_builtin_call): Ditto. 20111 (fold_using_range::range_of_cond_expr): Ditto. 20112 * gimple-range-fold.h (gimple_range_type): New. 20113 201142021-07-15 Martin Sebor <msebor@redhat.com> 20115 20116 PR middle-end/97027 20117 * tree-ssa-strlen.c (handle_assign): New function. 20118 (maybe_warn_overflow): Add argument. 20119 (nonzero_bytes_for_type): New function. 20120 (count_nonzero_bytes): Handle more tree types. Call 20121 nonzero_bytes_for_tye. 20122 (count_nonzero_bytes): Handle types. 20123 (handle_store): Handle stores from function calls. 20124 (strlen_check_and_optimize_call): Move code to handle_assign. Call 20125 it for assignments from function calls. 20126 201272021-07-15 David Malcolm <dmalcolm@redhat.com> 20128 20129 PR analyzer/95006 20130 PR analyzer/94713 20131 PR analyzer/94714 20132 * doc/invoke.texi: Add -Wanalyzer-use-of-uninitialized-value. 20133 201342021-07-15 David Malcolm <dmalcolm@redhat.com> 20135 20136 * doc/invoke.texi (-fdump-analyzer-exploded-paths): New. 20137 201382021-07-15 Martin Sebor <msebor@redhat.com> 20139 20140 PR c/101289 20141 PR c/97548 20142 * fold-const.c (operand_compare::operand_equal_p): Handle OEP_DECL_NAME. 20143 (operand_compare::verify_hash_value): Same. 20144 * tree-core.h (OEP_DECL_NAME): New. 20145 201462021-07-15 Martin Jambor <mjambor@suse.cz> 20147 20148 * profile-count.h (profile_count::value): Change the return type to 20149 uint64_t. 20150 * gimple-pretty-print.c (dump_gimple_bb_header): Adjust print 20151 statement. 20152 * tree-cfg.c (dump_function_to_file): Likewise. 20153 201542021-07-15 Bill Schmidt <wschmidt@linux.ibm.com> 20155 20156 PR target/101129 20157 * config/rs6000/rs6000-p8swap.c (has_part_mult): New. 20158 (rs6000_analyze_swaps): Insns containing a subreg of a mult are 20159 not swappable. 20160 201612021-07-15 Richard Biener <rguenther@suse.de> 20162 20163 * tree-vectorizer.h (vect_gen_while): Match up with 20164 vect_gen_while_not. 20165 * tree-vect-stmts.c (vect_gen_while): Adjust API to that 20166 of vect_gen_while_not. 20167 (vect_gen_while_not): Adjust. 20168 * tree-vect-loop-manip.c (vect_set_loop_controls_directly): Likewise. 20169 201702021-07-15 Aldy Hernandez <aldyh@redhat.com> 20171 20172 * gimple-range-cache.cc (non_null_ref::adjust_range): New. 20173 (ranger_cache::range_of_def): Call adjust_range. 20174 (ranger_cache::entry_range): Same. 20175 * gimple-range-cache.h (non_null_ref::adjust_range): New. 20176 * gimple-range.cc (gimple_ranger::range_of_expr): Call 20177 adjust_range. 20178 (gimple_ranger::range_on_entry): Same. 20179 201802021-07-15 Tamar Christina <tamar.christina@arm.com> 20181 20182 Revert: 20183 2021-07-14 Tamar Christina <tamar.christina@arm.com> 20184 20185 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements. 20186 201872021-07-15 Tamar Christina <tamar.christina@arm.com> 20188 20189 Revert: 20190 2021-07-14 Tamar Christina <tamar.christina@arm.com> 20191 20192 * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... 20193 (sdot_prod, udot_prod): ...These. 20194 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove. 20195 (aarch64_<sur>dot<vsi2qi>): Rename to... 20196 (<sur>dot_prod<vsi2qi>): ...This. 20197 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): 20198 Update builtins. 20199 202002021-07-15 Jakub Jelinek <jakub@redhat.com> 20201 20202 PR middle-end/101437 20203 * gimplify.c (gimplify_expr): Throw away volatile reads from empty 20204 types even if they have non-BLKmode TYPE_MODE. 20205 202062021-07-15 Richard Biener <rguenther@suse.de> 20207 20208 PR driver/101383 20209 * gcc.c (process_command): Process -gtoggle like process_options 20210 would after parsing options. 20211 202122021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> 20213 20214 * cfgexpand.c (expand_asm_loc): Adjust. 20215 (expand_asm_stmt): Likewise. 20216 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Likewise. 20217 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. 20218 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. 20219 * config/avr/avr.c (avr_md_asm_adjust): Likewise. 20220 * config/cris/cris.c (cris_md_asm_adjust): Likewise. 20221 * config/i386/i386.c (ix86_md_asm_adjust): Likewise. 20222 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. 20223 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. 20224 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. 20225 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. 20226 * config/s390/s390.c (s390_md_asm_adjust): Likewise. 20227 * config/vax/vax.c (vax_md_asm_adjust): Likewise. 20228 * config/visium/visium.c (visium_md_asm_adjust): Likewise. 20229 * doc/tm.texi: Regenerate. 20230 * target.def: Add location argument to md_asm_adjust. 20231 202322021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> 20233 20234 * tree-diagnostic.c (diagnostic_report_current_function): Use the 20235 diagnostic's location, not input_location. 20236 202372021-07-15 Trevor Saunders <tbsaunde@tbsaunde.org> 20238 20239 * cfgexpand.c (tree_conflicts_with_clobbers_p): Pass location to 20240 diagnostics. 20241 (expand_asm_stmt): Likewise. 20242 202432021-07-14 Peter Bergner <bergner@linux.ibm.com> 20244 20245 * config/rs6000/rs6000.c (adjacent_mem_locations): Return the lower 20246 addressed memory rtx, if any. 20247 (rs6000_split_multireg_move): Fix code formatting. 20248 Handle MMA build built-ins with operands in adjacent memory locations. 20249 202502021-07-14 Peter Bergner <bergner@linux.ibm.com> 20251 20252 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Move to later 20253 in the file. 20254 202552021-07-14 Jason Merrill <jason@redhat.com> 20256 20257 * sel-sched-ir.h (get_all_loop_exits): Use auto_vec. 20258 202592021-07-14 Jason Merrill <jason@redhat.com> 20260 20261 * doc/invoke.texi: -fdelete-dead-exceptions is on by default for 20262 C++. 20263 202642021-07-14 Tamar Christina <tamar.christina@arm.com> 20265 20266 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): 20267 Remove erroneous line. 20268 202692021-07-14 Andrew MacLeod <amacleod@redhat.com> 20270 20271 * params.opt (param_evrp_mode): Change default. 20272 202732021-07-14 Tamar Christina <tamar.christina@arm.com> 20274 20275 * config/aarch64/aarch64-simd-builtins.def (udot, sdot): Rename to... 20276 (sdot_prod, udot_prod): ...These. 20277 * config/aarch64/aarch64-simd.md (<sur>dot_prod<vsi2qi>): Remove. 20278 (aarch64_<sur>dot<vsi2qi>): Rename to... 20279 (<sur>dot_prod<vsi2qi>): ...This. 20280 * config/aarch64/arm_neon.h (vdot_u32, vdotq_u32, vdot_s32, vdotq_s32): 20281 Update builtins. 20282 202832021-07-14 Tamar Christina <tamar.christina@arm.com> 20284 20285 * config/arm/neon.md (<sup>dot_prod<vsi2qi>): Drop statements. 20286 202872021-07-14 Tamar Christina <tamar.christina@arm.com> 20288 20289 * doc/sourcebuild.texi (arm_v8_2a_i8mm_neon_hw): Document. 20290 202912021-07-14 Tamar Christina <tamar.christina@arm.com> 20292 20293 * config/arm/neon.md (usdot_prod<vsi2qi>): New. 20294 202952021-07-14 Tamar Christina <tamar.christina@arm.com> 20296 20297 * config/aarch64/aarch64-simd.md (aarch64_usdot<vsi2qi>): Rename to... 20298 (usdot_prod<vsi2qi>): ... This. 20299 * config/aarch64/aarch64-simd-builtins.def (usdot): Rename to... 20300 (usdot_prod): ...This. 20301 * config/aarch64/arm_neon.h (vusdot_s32, vusdotq_s32): Likewise. 20302 * config/aarch64/aarch64-sve.md (@aarch64_<sur>dot_prod<vsi2qi>): 20303 Rename to... 20304 (@<sur>dot_prod<vsi2qi>): ...This. 20305 * config/aarch64/aarch64-sve-builtins-base.cc 20306 (svusdot_impl::expand): Use it. 20307 203082021-07-14 Tamar Christina <tamar.christina@arm.com> 20309 20310 * optabs.def (usdot_prod_optab): New. 20311 * doc/md.texi: Document it and clarify other dot prod optabs. 20312 * optabs-tree.h (enum optab_subtype): Add optab_vector_mixed_sign. 20313 * optabs-tree.c (optab_for_tree_code): Support usdot_prod_optab. 20314 * optabs.c (expand_widen_pattern_expr): Likewise. 20315 * tree-cfg.c (verify_gimple_assign_ternary): Likewise. 20316 * tree-vect-loop.c (vectorizable_reduction): Query dot-product kind. 20317 * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take optional 20318 optab subtype. 20319 (vect_widened_op_tree): Optionally ignore 20320 mismatch types. 20321 (vect_recog_dot_prod_pattern): Support usdot_prod_optab. 20322 203232021-07-14 H.J. Lu <hjl.tools@gmail.com> 20324 20325 PR target/101395 20326 * config/i386/driver-i386.c (host_detect_local_cpu): Check 20327 "arch [32|64]" and "tune [32|64]" for 32-bit and 64-bit codegen. 20328 Enable UINTR only for 64-bit codegen. 20329 * config/i386/i386-options.c 20330 (ix86_option_override_internal::DEF_PTA): Skip PTA_UINTR if not 20331 in 64-bit mode. 20332 * config/i386/i386.h (ARCH_ARG): New. 20333 (CC1_CPU_SPEC): Pass "[arch|tune] 32" for 32-bit codegen and 20334 "[arch|tune] 64" for 64-bit codegen. 20335 203362021-07-14 Richard Biener <rguenther@suse.de> 20337 20338 PR tree-optimization/101445 20339 * tree-vect-stmts.c (vectorizable_load): Do the gap adjustment 20340 of the IV in the correct direction for negative stride 20341 accesses. 20342 203432021-07-14 Jakub Jelinek <jakub@redhat.com> 20344 20345 PR go/101407 20346 * godump.c (godump_str_hash): New type. 20347 (godump_container::pot_dummy_types): Use string_hash instead of 20348 ptr_hash in the hash_set. 20349 203502021-07-14 Richard Biener <rguenther@suse.de> 20351 20352 * tree-vect-loop.c (vect_find_reusable_accumulator): Handle 20353 vector types where the old vector type has a multiple of 20354 the new vector type elements. 20355 (vect_create_partial_epilog): New function, split out from... 20356 (vect_create_epilog_for_reduction): ... here. 20357 (vect_transform_cycle_phi): Reduce the re-used accumulator 20358 to the new vector type. 20359 203602021-07-14 Alexandre Oliva <oliva@adacore.com> 20361 20362 * tree-ssa-alias.c (attr_fnspec::verify): Fix index in 20363 non-'t'-sized arg check. 20364 203652021-07-14 Alexandre Oliva <oliva@adacore.com> 20366 20367 * tree-cfg.c (cleanup_dead_labels_eh): Update 20368 post_landing_pad label upon change of landing pad block's 20369 primary label. 20370 (cleanup_dead_labels): Check that a removed label is not that 20371 of a landing pad. 20372 203732021-07-13 Jonathan Wright <jonathan.wright@arm.com> 20374 20375 * combine.c (combine_simplify_rtx): Add vec_select -> subreg 20376 simplification. 20377 * config/aarch64/aarch64.md (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): 20378 Add Neon to general purpose register case for zero-extend 20379 pattern. 20380 * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r 20381 case to prevent some cases opting to go through memory. 20382 * cse.c (fold_rtx): Add vec_select -> subreg simplification. 20383 * rtl.c (rtvec_series_p): Define predicate to determine 20384 whether a vector contains a linear series of integers. 20385 * rtl.h (rtvec_series_p): Define. 20386 * rtlanal.c (vec_series_lowpart_p): Define predicate to 20387 determine if a vector selection is equivalent to the low part 20388 of the vector. 20389 * rtlanal.h (vec_series_lowpart_p): Define. 20390 * simplify-rtx.c (simplify_context::simplify_binary_operation_1): 20391 Add vec_select -> subreg simplification. 20392 203932021-07-13 Paul A. Clarke <pc@us.ibm.com> 20394 20395 * config/rs6000/smmintrin.h (_mm_testz_si128, _mm_testc_si128, 20396 _mm_testnzc_si128, _mm_test_all_ones, _mm_test_all_zeros, 20397 _mm_test_mix_ones_zeros): New. 20398 203992021-07-13 Roger Sayle <roger@nextmovesoftware.com> 20400 Richard Biener <rguenther@suse.de> 20401 20402 * gimple.c (gimple_could_trap_p_1): Make S argument a 20403 "const gimple*". Preserve constness in call to 20404 gimple_asm_volatile_p. 20405 (gimple_could_trap_p): Make S argument a "const gimple*". 20406 * gimple.h (gimple_could_trap_p_1, gimple_could_trap_p): 20407 Update function prototypes. 20408 204092021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20410 20411 * tree-vectorizer.h (vect_reusable_accumulator): New structure. 20412 (_loop_vec_info::main_loop_edge): New field. 20413 (_loop_vec_info::skip_main_loop_edge): Likewise. 20414 (_loop_vec_info::skip_this_loop_edge): Likewise. 20415 (_loop_vec_info::reusable_accumulators): Likewise. 20416 (_stmt_vec_info::reduc_scalar_results): Likewise. 20417 (_stmt_vec_info::reused_accumulator): Likewise. 20418 (vect_get_main_loop_result): Declare. 20419 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize 20420 reduc_scalar_inputs. 20421 (vec_info::free_stmt_vec_info): Free reduc_scalar_inputs. 20422 * tree-vect-loop-manip.c (vect_get_main_loop_result): New function. 20423 (vect_do_peeling): Fill an epilogue loop's main_loop_edge, 20424 skip_main_loop_edge and skip_this_loop_edge fields. 20425 * tree-vect-loop.c (INCLUDE_ALGORITHM): Define. 20426 (vect_emit_reduction_init_stmts): New function. 20427 (get_initial_def_for_reduction): Use it. 20428 (get_initial_defs_for_reduction): Likewise. Change the vinfo 20429 parameter to a loop_vec_info. 20430 (vect_create_epilog_for_reduction): Store the scalar results 20431 in the reduc_info. If an epilogue loop is reusing an accumulator 20432 from the main loop, and if the epilogue loop can also be skipped, 20433 try to place the reduction code in the join block. Record 20434 accumulators that could potentially be reused by epilogue loops. 20435 (vect_transform_cycle_phi): When vectorizing epilogue loops, 20436 try to reuse accumulators from the main loop. Record the initial 20437 value in reduc_info for non-SLP reductions too. 20438 204392021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20440 20441 * tree-vect-loop.c (get_initial_def_for_reduction): Remove 20442 adjustment handling. Take the neutral value as an argument, 20443 in place of the code argument. 20444 (vect_transform_cycle_phi): Update accordingly. Handle the 20445 initial values of cond reductions separately from code reductions. 20446 Choose the adjustment here rather than in 20447 get_initial_def_for_reduction. Sink the splat of vec_initial_def. 20448 204492021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20450 20451 * tree-vect-loop.c (neutral_op_for_slp_reduction): Replace with... 20452 (neutral_op_for_reduction): ...this, providing a more general 20453 interface. 20454 (vect_create_epilog_for_reduction): Update accordingly. 20455 (vectorizable_reduction): Likewise. 20456 (vect_transform_cycle_phi): Likewise. 20457 204582021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20459 20460 * tree-vect-loop.c (get_initial_def_for_reduction): Take the 20461 reduc_info instead of the original stmt_vec_info. 20462 (vect_transform_cycle_phi): Update accordingly. 20463 204642021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20465 20466 * tree-vect-loop.c (get_initial_defs_for_reduction): Take the 20467 reduc_info as an additional parameter. 20468 (vect_transform_cycle_phi): Update accordingly. 20469 204702021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20471 20472 * tree-vectorizer.h: Include tree-ssa-operands.h. 20473 (vect_phi_initial_value): New function. 20474 * tree-vect-loop.c (neutral_op_for_slp_reduction): Use it. 20475 (get_initial_defs_for_reduction, info_for_reduction): Likewise. 20476 (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. 20477 (vect_transform_cycle_phi, vectorizable_induction): Likewise. 20478 204792021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20480 20481 * tree-vect-loop.c (vect_create_epilog_for_reduction): Convert 20482 the phi results to vectype after creating them. Remove later 20483 conversion code that thus becomes redundant. 20484 204852021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20486 20487 * tree-vect-loop.c (vect_create_epilog_for_reduction): Replace 20488 the new_phis vector with a reduc_inputs vector. Combine handling 20489 of reduction chains and ncopies > 1. 20490 204912021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20492 20493 * tree-vect-loop.c (vect_create_epilog_for_reduction): Truncate 20494 scalar_results to group_size elements after reducing down from 20495 N*group_size elements. Construct an array_slice of the live-out 20496 stmts and assert that there is one stmt per scalar result. 20497 204982021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20499 20500 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove 20501 nested_in_vect_loop and use double_reduc everywhere. Remove dead 20502 assignment to "loop". 20503 205042021-07-13 Richard Sandiford <richard.sandiford@arm.com> 20505 20506 * internal-fn.c (vectorized_internal_fn_supported_p): Handle 20507 vector types first. For scalar types, consider both the preferred 20508 vector mode and the alternative vector modes. 20509 * optabs-query.c (can_vec_mask_load_store_p): Use the same 20510 structure as above, in particular using related_vector_mode 20511 for modes provided by autovectorize_vector_modes. 20512 205132021-07-13 Jakub Jelinek <jakub@redhat.com> 20514 Richard Biener <rguenther@suse.de> 20515 20516 PR tree-optimization/101419 20517 * tree-pass.h (PROP_objsz): Define. 20518 (make_pass_early_object_sizes): Declare. 20519 * passes.def (pass_all_early_optimizations): Rename pass_object_sizes 20520 there to pass_early_object_sizes, drop parameter. 20521 (pass_all_optimizations): Move pass_object_sizes right after pass_ccp, 20522 drop parameter, move pass_post_ipa_warn right after that. 20523 * tree-object-size.c (pass_object_sizes::execute): Rename to... 20524 (object_sizes_execute): ... this. Add insert_min_max_p argument. 20525 (pass_data_object_sizes): Move after object_sizes_execute. 20526 (pass_object_sizes): Likewise. In execute method call 20527 object_sizes_execute, drop set_pass_param method and insert_min_max_p 20528 non-static data member and its initializer in the ctor. 20529 (pass_data_early_object_sizes, pass_early_object_sizes, 20530 make_pass_early_object_sizes): New. 20531 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Use 20532 (cfun->curr_properties & PROP_objsz) instead of cfun->after_inlining. 20533 205342021-07-13 Kito Cheng <kito.cheng@sifive.com> 20535 20536 PR target/101275 20537 * config/riscv/constraints.md ("S"): Update description and remove 20538 @internal. 20539 * doc/md.texi (Machine Constraints): Document the 'S' constraints 20540 for RISC-V. 20541 205422021-07-13 Richard Biener <rguenther@suse.de> 20543 20544 Revert: 20545 2021-07-12 Richard Biener <rguenther@suse.de> 20546 20547 * tree-vect-slp.c (vect_slp_region): Show the number of 20548 SLP graph entries in the optimization message. 20549 205502021-07-13 Michael Meissner <meissner@linux.ibm.com> 20551 20552 * config/rs6000/altivec.md (xxspltiw_v4sf): Change local variable 20553 value to to long. 20554 * config/rs6000/rs6000-protos.h (rs6000_const_f32_to_i32): Change 20555 return type to long. 20556 * config/rs6000/rs6000.c (rs6000_const_f32_to_i32): Change return 20557 type to long. 20558 205592021-07-12 Andrew MacLeod <amacleod@redhat.com> 20560 20561 * gimple-range-fold.cc (fold_using_range::range_of_builtin_ubsan_call): 20562 Query relation between the 2 operands and use it. 20563 205642021-07-12 Sergei Trofimovich <siarheit@google.com> 20565 20566 * doc/cfg.texi: Fix s/ei_safe_safe/ei_safe_edge/ typo. 20567 205682021-07-12 Uro�� Bizjak <ubizjak@gmail.com> 20569 20570 PR target/101424 20571 * config/i386/predicates.md (vec_setm_sse41_operand): 20572 Rename from vec_setm_operand. 20573 (vec_setm_avx2_operand): New predicate. 20574 * config/i386/sse.md (vec_set<V_128:mode>): Use V_128 mode iterator. 20575 Use vec_setm_sse41_operand as operand 2 predicate. 20576 (vec_set<V_256_512:mode): New expander. 20577 * config/i386/mmx.md (vec_setv2hi): Use vec_setm_sse41_operand 20578 as operand 2 predicate. 20579 205802021-07-12 Andrew MacLeod <amacleod@redhat.com> 20581 20582 PR tree-optimization/101335 20583 * range-op.cc (operator_cast::lhs_op1_relation): Delete. 20584 205852021-07-12 Andrew Pinski <apinski@marvell.com> 20586 20587 * tree-ssa-phiopt.c (match_simplify_replacement): Move 20588 insert of the sequence before the movement of the 20589 statement. Check if to see if the statement is used 20590 outside of the original phi to see if we should move it. 20591 205922021-07-12 Richard Biener <rguenther@suse.de> 20593 20594 * dump-context.h (debug_dump_context::debug_dump_context): 20595 Add FILE * parameter defaulted to stderr. 20596 * dumpfile.c (debug_dump_context::debug_dump_context): Adjust. 20597 * tree-vect-slp.c (dot_slp_tree): New functions. 20598 205992021-07-12 Richard Biener <rguenther@suse.de> 20600 20601 PR tree-optimization/101373 20602 * tree-ssa-pre.c (prune_clobbered_mems): Also prune trapping 20603 references when the BB may not return. 20604 (compute_avail): Pass in the function we're working on and 20605 replace cfun references with it. Externally throwing 20606 const calls also possibly terminate the function. 20607 (pass_pre::execute): Pass down the function we're working on. 20608 * gcse.c (compute_hash_table_work): Externally throwing 20609 const/pure calls also need record_last_mem_set_info. 20610 * postreload-gcse.c (record_opr_changes): Looping or externally 20611 throwing const/pure calls also need record_last_mem_set_info. 20612 206132021-07-12 Uro�� Bizjak <ubizjak@gmail.com> 20614 20615 * recog.c (memory_address_addr_space_p): Change the type to bool. 20616 Return true/false instead of 1/0. 20617 (offsettable_memref_p): Ditto. 20618 (offsettable_nonstrict_memref_p): Ditto. 20619 (offsettable_address_addr_space_p): Ditto. 20620 Change the type of addressp indirect function to bool. 20621 * recog.h (memory_address_addr_space_p): Change the type to bool. 20622 (strict_memory_address_addr_space_p): Ditto. 20623 (offsettable_memref_p): Ditto. 20624 (offsettable_nonstrict_memref_p): Ditto. 20625 (offsettable_address_addr_space_p): Ditto. 20626 * reload.c (maybe_memory_address_addr_space_p): Ditto. 20627 (strict_memory_address_addr_space_p): Change the type to bool. 20628 Return true/false instead of 1/0. 20629 (maybe_memory_address_addr_space_p): Change the type to bool. 20630 206312021-07-12 Richard Biener <rguenther@suse.de> 20632 20633 * tree-vect-slp.c (vect_slp_region): Show the number of 20634 SLP graph entries in the optimization message. 20635 206362021-07-12 Richard Biener <rguenther@suse.de> 20637 20638 PR tree-optimization/101394 20639 * tree-ssa-pre.c (do_pre_regular_insertion): Avoid inserting 20640 copies from abnormals for a full redundancy. 20641 206422021-07-12 Richard Biener <rguenther@suse.de> 20643 20644 PR middle-end/101423 20645 * gimple.c (gimple_could_trap_p_1): Internal function calls 20646 do not trap. 20647 * tree-eh.c (tree_could_trap_p): Likewise. 20648 206492021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 20650 20651 PR target/66791 20652 * config/arm/arm_neon.h (vmul_n_u32): Replace call to builtin with 20653 __a * __b. 20654 (vmulq_n_u32): Likewise. 20655 (vmul_n_f32): Gate __a * __b on __FAST_MATH__. 20656 (vmulq_n_f32): Likewise. 20657 (vmul_n_f16): Likewise. 20658 (vmulq_n_f16): Likewise. 20659 206602021-07-12 Martin Liska <mliska@suse.cz> 20661 20662 PR sanitizer/101425 20663 * gcc.c (check_offload_target_name): Call 20664 candidates_list_and_hint only if we have a candidate. 20665 206662021-07-12 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 20667 20668 PR target/98435 20669 * config/arm/neon.md (vec_init): Move to ... 20670 * config/arm/vec-common.md (vec_init): ... here. 20671 Change the pattern's mode to VDQX and gate it on VALID_MVE_MODE. 20672 206732021-07-12 Roger Sayle <roger@nextmovesoftware.com> 20674 20675 PR tree-optimization/101403 20676 * match.pd ((T)bswap(X)>>C): Correctly handle cases where 20677 signedness of the shift is not the same as the signedness of 20678 the type extension. 20679 206802021-07-09 Roger Sayle <roger@nextmovesoftware.com> 20681 Uro�� Bizjak <ubizjak@gmail.com> 20682 20683 * config/i386/i386.md (*divmodsi4_const): Optimize SImode 20684 divmod of a constant numerator with new define_insn_and_split. 20685 206862021-07-09 Iain Sandoe <iain@sandoe.co.uk> 20687 20688 PR target/100152 20689 * config/i386/i386-expand.c (ix86_expand_call): If a call is 20690 to a non-local-binding, or local but to a public symbol, then 20691 assume that it might be indirected via the lazy symbol binder. 20692 Mark R10 and R10 as clobbered in that case. 20693 206942021-07-09 Eric Botcazou <ebotcazou@adacore.com> 20695 20696 PR target/101377 20697 * gcc.c (ASM_DEBUG_DWARF_OPTION): Set again to --gdwarf2 in 20698 the case where HAVE_AS_WORKING_DWARF_N_FLAG is not defined 20699 and HAVE_LD_BROKEN_PE_DWARF5 is defined. 20700 207012021-07-09 Uro�� Bizjak <ubizjak@gmail.com> 20702 20703 * config/i386/i386.md (*udivmodsi4_pow2_zext_1): Limit the 20704 log2 range of operands[3] to [1,31]. 20705 (*udivmodsi4_pow2_zext_2): Ditto. Correct insn RTX pattern. 20706 207072021-07-09 Sergei Trofimovich <siarheit@google.com> 20708 20709 * doc/md.texi: Don't split @smallexample in multiple @groups. 20710 207112021-07-09 Sergei Trofimovich <siarheit@google.com> 20712 20713 * doc/md.texi: Add missing 'see' word. 20714 207152021-07-09 Andrew Pinski <apinski@marvell.com> 20716 20717 * tree-ssa-phiopt.c (phiopt_early_allow): Change arguments 20718 to take sequence and gimple_match_op. Accept the case where 20719 op is a SSA_NAME and one statement in the sequence. 20720 Also allow constants. 20721 (gimple_simplify_phiopt): Always pass a sequence to resimplify. 20722 Update call to phiopt_early_allow. Discard the sequence if not 20723 used. 20724 207252021-07-09 Xi Ruoyao <xry111@mengyan1223.wang> 20726 20727 PR target/100760 20728 PR target/100761 20729 PR target/100762 20730 * config/mips/mips.c (mips_const_insns): Use MSA_SUPPORTED_MODE_P 20731 instead of ISA_HAS_MSA. 20732 (mips_expand_vec_unpack): Likewise. 20733 (mips_expand_vector_init): Likewise. 20734 207352021-07-09 Kewen Lin <linkw@linux.ibm.com> 20736 20737 * config/rs6000/vsx.md (mods_<mode>): Rename to... 20738 (mod<mode>3): ... this. 20739 (modu_<mode>): Rename to... 20740 (umod<mode>3): ... this. 20741 * config/rs6000/rs6000-builtin.def (MODS_V2DI, MODS_V4SI, MODU_V2DI, 20742 MODU_V4SI): Adjust. 20743 207442021-07-08 Jeff Law <jeffreyalaw@gmail.com> 20745 20746 * config/h8300/shiftrotate.md (variable shifts): Expose condition 20747 code handling for the test before the loop. 20748 207492021-07-08 Martin Jambor <mjambor@suse.cz> 20750 20751 PR ipa/101066 20752 * ipa-sra.c (class isra_call_summary): New member 20753 m_before_any_store, initialize it in the constructor. 20754 (isra_call_summary::dump): Dump the new field. 20755 (ipa_sra_call_summaries::duplicate): Copy it. 20756 (process_scan_results): Set it. 20757 (isra_write_edge_summary): Stream it. 20758 (isra_read_edge_summary): Likewise. 20759 (param_splitting_across_edge): Only override 20760 safe_to_import_accesses if m_before_any_store is set. 20761 207622021-07-08 Martin Sebor <msebor@redhat.com> 20763 20764 PR bootstrap/101374 20765 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): 20766 Use Object Size Type 0 instead of 1. 20767 207682021-07-08 Richard Sandiford <richard.sandiford@arm.com> 20769 20770 * tree-vect-loop.c (vectorizable_reduction): Remove always-true 20771 if condition. 20772 207732021-07-08 Richard Sandiford <richard.sandiford@arm.com> 20774 20775 * match.pd: Simplify an extend-operate-truncate sequence involving 20776 a POLY_INT_CST. 20777 207782021-07-08 Roger Sayle <roger@nextmovesoftware.com> 20779 Richard Biener <rguenther@suse.de> 20780 20781 PR tree-optimization/40210 20782 * match.pd (bswap optimizations): Simplify (bswap(x)>>C1)&C2 as 20783 (x>>C3)&C2 when possible. Simplify bswap(x)>>C1 as ((T)x)>>C2 20784 when possible. Simplify bswap(x)&C1 as (x>>C2)&C1 when 0<=C1<=255. 20785 207862021-07-08 Uro�� Bizjak <ubizjak@gmail.com> 20787 20788 PR target/100637 20789 * config/i386/i386-expand.c (ix86_expand_sse_unpack): 20790 Handle V4QI mode. 20791 * config/i386/mmx.md (V_32): New mode iterator. 20792 (mov<V_32:mode>): Use V_32 mode iterator. 20793 (*mov<V_32:mode>_internal): Ditto. 20794 (*push<V_32:mode>2_rex64): Ditto. 20795 (*push<V_32:mode>2): Ditto. 20796 (movmisalign<V_32:mode>): Ditto. 20797 (mmx_<any_shiftrt:insn>v1si3): New insn pattern. 20798 (sse4_1_<any_extend:code>v2qiv2hi2): Ditto. 20799 (vec_unpacks_lo_v4qi): New expander. 20800 (vec_unpacks_hi_v4qi): Ditto. 20801 (vec_unpacku_lo_v4qi): Ditto. 20802 (vec_unpacku_hi_v4qi): Ditto. 20803 * config/i386/i386.h (VALID_SSE2_REG_MODE): Add V1SImode. 20804 (VALID_INT_MODE_P): Ditto. 20805 208062021-07-08 Michael Meissner <meissner@linux.ibm.com> 20807 20808 PR target/100809 20809 * config/rs6000/rs6000.md (udivti3): New insn. 20810 (divti3): New insn. 20811 (umodti3): New insn. 20812 (modti3): New insn. 20813 208142021-07-07 Martin Sebor <msebor@redhat.com> 20815 20816 PR tree-optimization/100137 20817 PR tree-optimization/99121 20818 PR tree-optimization/97027 20819 * builtins.c (access_ref::access_ref): Also set offmax. 20820 (access_ref::offset_in_range): Define new function. 20821 (access_ref::add_offset): Set offmax. 20822 (access_ref::inform_access): Handle access_none. 20823 (handle_mem_ref): Clear ostype. 20824 (compute_objsize_r): Handle ASSERT_EXPR. 20825 * builtins.h (struct access_ref): Add offmax member. 20826 * gimple-array-bounds.cc (array_bounds_checker::check_mem_ref): Use 20827 compute_objsize() and simplify. 20828 208292021-07-07 Peter Bergner <bergner@linux.ibm.com> 20830 20831 * config/rs6000/rs6000-call.c (mma_init_builtins): Use VSX_BUILTIN_LXVP 20832 and VSX_BUILTIN_STXVP. 20833 208342021-07-07 Martin Sebor <msebor@redhat.com> 20835 20836 PR target/101363 20837 * config/aarch64/aarch64.c (aarch64_simd_lane_bounds): Remove 20838 a stray %K from error_at() missed in r12-2088. 20839 208402021-07-07 Richard Biener <rguenther@suse.de> 20841 20842 PR tree-optimization/99728 20843 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Record 20844 aggregate copies. 20845 (mem_refs_may_alias_p): Add assert we handled aggregate 20846 copies elsewhere. 20847 (sm_seq_valid_bb): Give up when running into aggregate copies. 20848 (ref_indep_loop_p): Handle aggregate copies as never 20849 being invariant themselves but allow other refs to be 20850 disambiguated against them. 20851 (can_sm_ref_p): Do not try to apply store-motion to aggregate 20852 copies. 20853 208542021-07-06 Indu Bhagat <indu.bhagat@oracle.com> 20855 20856 PR debug/101283 20857 * dwarf2ctf.c (ctf_get_AT_data_member_location): Multiply by 8 to get 20858 number of bits. 20859 208602021-07-06 Martin Sebor <msebor@redhat.com> 20861 20862 * gimple-pretty-print.c (percent_G_format): Remove. 20863 * tree-diagnostic.c (default_tree_printer): Remove calls. 20864 * tree-pretty-print.c (percent_K_format): Remove. 20865 * tree-pretty-print.h (percent_K_format): Remove. 20866 208672021-07-06 Martin Sebor <msebor@redhat.com> 20868 20869 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_builtin): 20870 Remove %K and use error_at. 20871 (aarch64_expand_fcmla_builtin): Same. 20872 (aarch64_expand_builtin_tme): Same. 20873 (aarch64_expand_builtin_memtag): Same. 20874 * config/arm/arm-builtins.c (arm_expand_acle_builtin): Same. 20875 (arm_expand_builtin): Same. 20876 * config/arm/arm.c (bounds_check): Same. 20877 208782021-07-06 Martin Sebor <msebor@redhat.com> 20879 20880 * builtins.c (warn_string_no_nul): Remove %G. 20881 (maybe_warn_for_bound): Same. 20882 (warn_for_access): Same. 20883 (check_access): Same. 20884 (check_strncat_sizes): Same. 20885 (expand_builtin_strncat): Same. 20886 (expand_builtin_strncmp): Same. 20887 (expand_builtin): Same. 20888 (expand_builtin_object_size): Same. 20889 (warn_dealloc_offset): Same. 20890 (maybe_emit_free_warning): Same. 20891 * calls.c (maybe_warn_alloc_args_overflow): Same. 20892 (maybe_warn_nonstring_arg): Same. 20893 (maybe_warn_rdwr_sizes): Same. 20894 * expr.c (expand_expr_real_1): Remove %K. 20895 * gimple-fold.c (gimple_fold_builtin_strncpy): Remove %G. 20896 (gimple_fold_builtin_strncat): Same. 20897 * gimple-ssa-sprintf.c (format_directive): Same. 20898 (handle_printf_call): Same. 20899 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Same. 20900 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same. 20901 (maybe_diag_access_bounds): Same. Call gimple_location. 20902 (check_bounds_or_overlap): Same. 20903 * trans-mem.c (ipa_tm_scan_irr_block): Remove %K. Simplify. 20904 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Remove %G. 20905 * tree-ssa-strlen.c (maybe_warn_overflow): Same. 20906 (maybe_diag_stxncpy_trunc): Same. 20907 (handle_builtin_stxncpy_strncat): Same. 20908 (maybe_warn_pointless_strcmp): Same. 20909 * tree-ssa-uninit.c (maybe_warn_operand): Same. 20910 209112021-07-06 Uro�� Bizjak <ubizjak@gmail.com> 20912 20913 PR target/97194 20914 * config/i386/predicates.md (vec_setm_operand): Enable 20915 register_operand for TARGET_SSE4_1. 20916 * config/i386/mmx.md (vec_setv2hi): Use vec_setm_operand 20917 as operand 2 predicate. Call ix86_expand_vector_set_var 20918 for non-constant index operand. 20919 (vec_setv4qi): Use vec_setm_mmx_operand as operand 2 predicate. 20920 Call ix86_expand_vector_set_var for non-constant index operand. 20921 209222021-07-06 Jeff Law <jeffreyalaw@gmail.com> 20923 20924 * config/h8300/jumpcall.md (*branch): When possible, generate 20925 the comparison in CCZN mode. 20926 * config/h8300/predicates.md (simple_memory_operand): Reject all 20927 auto-increment addressing modes. 20928 209292021-07-06 Iain Sandoe <iain@sandoe.co.uk> 20930 20931 PR bootstrap/100246 20932 * config/i386/i386.h (struct stringop_algs): Define a CTOR for 20933 this type. 20934 209352021-07-06 Richard Biener <rguenther@suse.de> 20936 20937 * doc/md.texi (vec_fmaddsub<mode>4): Document. 20938 (vec_fmsubadd<mode>4): Likewise. 20939 * optabs.def (vec_fmaddsub$a4): Add. 20940 (vec_fmsubadd$a4): Likewise. 20941 * internal-fn.def (IFN_VEC_FMADDSUB): Add. 20942 (IFN_VEC_FMSUBADD): Likewise. 20943 * tree-vect-slp-patterns.c (addsub_pattern::recognize): 20944 Refactor to handle IFN_VEC_FMADDSUB and IFN_VEC_FMSUBADD. 20945 (addsub_pattern::build): Likewise. 20946 * tree-vect-slp.c (vect_optimize_slp): CFN_VEC_FMADDSUB 20947 and CFN_VEC_FMSUBADD are not transparent for permutes. 20948 * config/i386/sse.md (vec_fmaddsub<mode>4): New expander. 20949 (vec_fmsubadd<mode>4): Likewise. 20950 209512021-07-06 Richard Biener <rguenther@suse.de> 20952 20953 * doc/invoke.texi (fmove-loop-stores): Document. 20954 * common.opt (fmove-loop-stores): New option. 20955 * opts.c (default_options_table): Enable -fmove-loop-stores 20956 at -O1 but not -Og. 20957 * tree-ssa-loop-im.c (pass_lim::execute): Pass 20958 flag_move_loop_stores instead of true to 20959 loop_invariant_motion_in_fun. 20960 209612021-07-06 Iain Sandoe <iain@sandoe.co.uk> 20962 20963 * doc/install.texi: Document --with-dsymutil. 20964 209652021-07-06 Andrew Pinski <apinski@marvell.com> 20966 20967 PR tree-optimization/101256 20968 * dbgcnt.def (phiopt_edge_range): New counter. 20969 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): 20970 Check to make sure the new name is defined in the same 20971 bb as the conditional before duplicating range info. 20972 Also add debug counter. 20973 209742021-07-06 Kewen Lin <linkw@linux.ibm.com> 20975 20976 PR rtl-optimization/100328 20977 * config/i386/i386-options.c (ix86_option_override_internal): 20978 Set param_ira_consider_dup_in_all_alts to 0. 20979 209802021-07-06 Kewen Lin <linkw@linux.ibm.com> 20981 20982 PR rtl-optimization/100328 20983 * doc/invoke.texi (ira-consider-dup-in-all-alts): Document new 20984 parameter. 20985 * ira.c (ira_get_dup_out_num): Adjust as parameter 20986 param_ira_consider_dup_in_all_alts. 20987 * params.opt (ira-consider-dup-in-all-alts): New. 20988 * ira-conflicts.c (process_regs_for_copy): Add one parameter 20989 single_input_op_has_cstr_p. 20990 (get_freq_for_shuffle_copy): New function. 20991 (add_insn_allocno_copies): Adjust as single_input_op_has_cstr_p. 20992 * ira-int.h (ira_get_dup_out_num): Add one bool parameter. 20993 209942021-07-05 Jeff Law <jeffreyalaw@gmail.com> 20995 20996 * config/h8300/shiftrotate.md (shift-by-variable patterns): Update to 20997 generate condition code aware RTL directly. 20998 209992021-07-05 Andrew Pinski <apinski@marvell.com> 21000 21001 PR tree-optimization/101039 21002 * match.pd (A CMP 0 ? A : -A): New patterns. 21003 * tree-ssa-phiopt.c (abs_replacement): Delete function. 21004 (tree_ssa_phiopt_worker): Don't call abs_replacement. 21005 Update comment about abs_replacement. 21006 210072021-07-05 Andrew Pinski <apinski@marvell.com> 21008 21009 * tree-ssa-phiopt.c (gimple_simplify_phiopt): 21010 If "A ? B : C" fails to simplify, try "(!A) ? C : B". 21011 210122021-07-05 Andrew Pinski <apinski@marvell.com> 21013 21014 * tree-ssa-phiopt.c (match_simplify_replacement): 21015 Add early_p argument. Call gimple_simplify_phiopt 21016 instead of gimple_simplify. 21017 (tree_ssa_phiopt_worker): Update call to 21018 match_simplify_replacement and allow unconditionally. 21019 (phiopt_early_allow): New function. 21020 (gimple_simplify_phiopt): New function. 21021 210222021-07-05 Andrew Pinski <apinski@marvell.com> 21023 21024 PR middle-end/101237 21025 * fold-const.c (negate_expr_p): Remove call to element_mode 21026 and TREE_MODE/TREE_TYPE when calling HONOR_SIGNED_ZEROS, 21027 HONOR_SIGN_DEPENDENT_ROUNDING, and HONOR_SNANS. 21028 (fold_negate_expr_1): Likewise. 21029 (const_unop): Likewise. 21030 (fold_cond_expr_with_comparison): Likewise. 21031 (fold_binary_loc): Likewise. 21032 (fold_ternary_loc): Likewise. 21033 (tree_call_nonnegative_warnv_p): Likewise. 21034 * match.pd (-(A + B) -> (-B) - A): Likewise. 21035 210362021-07-05 Iain Sandoe <iain@sandoe.co.uk> 21037 21038 * configure.ac: Handle --with-dsymutil in the same way as we 21039 do for the assembler and linker. (DEFAULT_DSYMUTIL): New. 21040 Extract the type and version for the dsymutil configured or 21041 found by the default searches. 21042 * config.in: Regenerated. 21043 * configure: Regenerated. 21044 * collect2.c (do_dsymutil): Handle locating dsymutil in the 21045 same way as for the assembler and linker. 21046 * config/darwin.h (DSYMUTIL): Delete. 21047 * gcc.c: Report a configured dsymutil correctly. 21048 * exec-tool.in: Allow for dsymutil. 21049 210502021-07-05 Uro�� Bizjak <ubizjak@gmail.com> 21051 21052 * config/i386/i386-expand.c (ix86_split_mmx_punpck): 21053 Handle V4QI and V2HI modes. 21054 (expand_vec_perm_blend): Allow 4-byte vector modes with TARGET_SSE4_1. 21055 Handle V4QI mode. Emit mmx_pblendvb32 for 4-byte modes. 21056 (expand_vec_perm_pshufb): Rewrite to use switch statemets. 21057 Handle 4-byte dual operands with TARGET_XOP and single operands 21058 with TARGET_SSSE3. Emit mmx_ppermv32 for TARGET_XOP and 21059 mmx_pshufbv4qi3 for TARGET_SSSE3. 21060 (expand_vec_perm_pblendv): Allow 4-byte vector modes with TARGET_SSE4_1. 21061 (expand_vec_perm_interleave2): Allow 4-byte vector modes. 21062 (expand_vec_perm_pshufb2): Allow 4-byte vector modes with TARGET_SSSE3. 21063 (expand_vec_perm_even_odd_1): Handle V4QI mode. 21064 (expand_vec_perm_broadcast_1): Handle V4QI mode. 21065 (ix86_vectorize_vec_perm_const): Handle V4QI mode. 21066 * config/i386/mmx.md (mmx_ppermv32): New insn pattern. 21067 (mmx_pshufbv4qi3): Ditto. 21068 (*mmx_pblendw32): Ditto. 21069 (*mmx_pblendw64): Rename from *mmx_pblendw. 21070 (mmx_punpckhbw_low): New insn_and_split pattern. 21071 (mmx_punpcklbw_low): Ditto. 21072 210732021-07-05 Richard Biener <rguenther@suse.de> 21074 21075 * tree-vect-loop-manip.c (vect_loop_versioning): Do not 21076 set LOOP_C_INFINITE on the vectorized loop. 21077 210782021-07-05 Richard Biener <rguenther@suse.de> 21079 21080 PR middle-end/101291 21081 * cfgloopmanip.c (loop_version): Set the loop copy of the 21082 versioned loop to the new loop. 21083 210842021-07-04 Iain Sandoe <iain@sandoe.co.uk> 21085 21086 PR target/100269 21087 * config.gcc: Ensure that Darwin biarch definitions are 21088 added before i386.h. 21089 * config/i386/darwin.h (TARGET_64BIT): Remove. 21090 (PR80556_WORKAROUND): New. 21091 (REAL_LIBGCC_SPEC): Amend to use PR80556_WORKAROUND. 21092 (DARWIN_SUBARCH_SPEC): New. 21093 * config/i386/darwin32-biarch.h (TARGET_64BIT_DEFAULT, 21094 TARGET_BI_ARCH, PR80556_WORKAROUND): New. 21095 (REAL_LIBGCC_SPEC): Remove. 21096 * config/i386/darwin64-biarch.h (TARGET_64BIT_DEFAULT, 21097 TARGET_BI_ARCH, PR80556_WORKAROUND): New. 21098 (REAL_LIBGCC_SPEC): Remove. 21099 211002021-07-03 H.J. Lu <hjl.tools@gmail.com> 21101 21102 PR middle-end/101294 21103 * expr.c (store_constructor): Don't use vec_duplicate on vector. 21104 211052021-07-02 Martin Sebor <msebor@redhat.com> 21106 21107 PR middle-end/98871 21108 PR middle-end/98512 21109 * diagnostic.c (get_any_inlining_info): New. 21110 (update_effective_level_from_pragmas): Handle inlining context. 21111 (diagnostic_enabled): Same. 21112 (diagnostic_report_diagnostic): Same. 21113 * diagnostic.h (struct diagnostic_info): Add ctor. 21114 (struct diagnostic_context): Add new member. 21115 * tree-diagnostic.c (set_inlining_locations): New. 21116 (tree_diagnostics_defaults): Set new callback pointer. 21117 211182021-07-02 Peter Bergner <bergner@linux.ibm.com> 21119 21120 * config/rs6000/rs6000-builtin.def (BU_MMA_PAIR_LD, BU_MMA_PAIR_ST): 21121 New macros. 21122 (__builtin_vsx_lxvp, __builtin_vsx_stxvp): New built-ins. 21123 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Expand 21124 lxvp and stxvp built-ins. 21125 (mma_init_builtins): Handle lxvp and stxvp built-ins. 21126 (builtin_function_type): Likewise. 21127 * doc/extend.texi (__builtin_vsx_lxvp, __builtin_mma_stxvp): Document. 21128 211292021-07-02 Jeff Law <jeffreyalaw@gmail.com> 21130 21131 * config/h8300/h8300-protos.h (compute_a_shift_cc): Accept 21132 additional argument for the code. 21133 * config/h8300/h8300.c (compute_a_shift_cc): Accept additional 21134 argument for the code. Just return if the ZN bits are useful or 21135 not rather than the old style CC_* enums. 21136 * config/h8300/shiftrotate.md (shiftqi_noscratch): Move before 21137 more generic shiftqi patterns. 21138 (shifthi_noscratch, shiftsi_noscratch): Similarly. 21139 (shiftqi_noscratch_set_flags): New pattern. 21140 (shifthi_noscratch_set_flags, shiftsi_noscratch_set_flags): Likewise. 21141 211422021-07-02 Andrew MacLeod <amacleod@redhat.com> 21143 21144 PR tree-optimization/101223 21145 * range-op.cc (build_lt): Add -1 for signed values. 21146 (built_gt): Subtract -1 for signed values. 21147 211482021-07-02 David Faust <david.faust@oracle.com> 21149 21150 * btfout.c (get_btf_kind): Support BTF_KIND_FLOAT. 21151 (btf_asm_type): Likewise. 21152 211532021-07-02 Jeff Law <jeffreyalaw@gmail.com> 21154 21155 * config/h8300/h8300-protos.h (output_a_shift): Make first argument 21156 an array of rtx rather than a pointer to rtx. Add code argument. 21157 (compute_a_shift_length): Similarly. 21158 * config/h8300/h8300.c (h8300_shift_costs): Adjust now that the 21159 shift itself isn't an operand. Create dummy operand[0] to carry 21160 a mode and pass a suitable rtx code to compute_a_shift_length. 21161 (get_shift_alg): Adjust operand number of clobber in output templates. 21162 (output_a_shift): Make first argument an array of rtx rather than 21163 a pointer to rtx. Add code argument for the type of shift. 21164 Adjust now that the shift itself is no longer an operand. 21165 (compute_a_shift_length): Similarly. 21166 * config/h8300/shiftrotate.md (shiftqi, shifthi, shiftsi): Use an 21167 iterator rather than nshift_operator. 21168 (shiftqi_noscratch, shifthi_noscratch, shiftsi_noscratch): Likewise. 21169 (shiftqi_clobber_flags): Adjust to API changes in output_a_shift 21170 and compute_a_shift_length. 21171 (shiftqi_noscratch_clobber_flags): Likewise. 21172 (shifthi_noscratch_clobber_flags): Likewise. 21173 (shiftsi_noscratch_clobber_flags): Likewise. 21174 211752021-07-02 Iain Sandoe <iain@sandoe.co.uk> 21176 21177 PR debug/101283 21178 * config/darwin.h (DSYMUTIL_SPEC): Do not try to run 21179 dsymutil for BTF/CTF. 21180 211812021-07-02 Iain Sandoe <iain@sandoe.co.uk> 21182 21183 PR debug/101283 21184 * config/darwin.h (CTF_INFO_SECTION_NAME): Update the 21185 segment to include BTF. 21186 (BTF_INFO_SECTION_NAME): New. 21187 211882021-07-02 Jeff Law <jeffreyalaw@gmail.com> 21189 21190 * config/m32r/m32r-protos.h (call_operand): Adjust return type. 21191 (small_data_operand, memreg_operand, small_insn_p): Likewise. 21192 * config/m32r/m32r.c (call_operand): Adjust return type. 21193 (small_data_operand, memreg_operand): Likewise. 21194 211952021-07-02 Jeff Law <jeffreyalaw@gmail.com> 21196 21197 * config/frv/frv-protos.h (integer_register_operand): Adjust return 21198 type. 21199 (frv_load_operand, gpr_or_fpr_operand, gpr_no_subreg_operand): Likewise. 21200 (fpr_or_int6_operand, gpr_or_int_operand); Likewise. 21201 (gpr_or_int12_operand, gpr_or_int10_operand); Likewise. 21202 (move_source_operand, move_destination_operand): Likewise. 21203 (condexec_source_operand, condexec_dest_operand): Likewise. 21204 (lr_operand, gpr_or_memory_operand, fpr_or_memory_operand): Likewise. 21205 (reg_or_0_operand, fcc_operand, icc_operand, cc_operand): Likewise. 21206 (fcr_operand, icr_operand, cr_operand, call_operand): Likewise. 21207 (fpr_operand, even_reg_operand, odd_reg_operand): Likewise. 21208 (even_gpr_operand, odd_gpr_operand, quad_fpr_operand): Likewise. 21209 (even_fpr_operand, odd_fpr_operand): Likewise. 21210 (dbl_memory_one_insn_operand, dbl_memory_two_insn_operand): Likewise. 21211 (int12_operand, int6_operand, int5_operand, uint5_operand): Likewise. 21212 (uint4_operand, uint1_operand, int_2word_operand): Likewise 21213 (upper_int16_operand, uint16_operand, symbolic_operand): Likewise. 21214 (relational_operator, float_relational_operator): Likewise. 21215 (ccr_eqne_operator, minmax_operator): Likewise. 21216 (condexec_si_binary_operator, condexec_si_media_operator): Likewise. 21217 (condexec_si_divide_operator, condexec_si_unary_operator): Likewise. 21218 (condexec_sf_conv_operator, condexec_sf_add_operator): Likewise. 21219 (intop_compare_operator, acc_operand, even_acc_operand): Likewise. 21220 (quad_acc_operand, accg_operand): Likewise. 21221 212222021-07-02 Jeff Law <jeffreyalaw@gmail.com> 21223 21224 * config/stormy16/stormy16-protos.h (xstormy16_below_100_symbol): Change 21225 return type to a bool. 21226 (nonimmediate_nonstack_operand): Likewise. 21227 (xstormy16_splittable_below100_operand): Likewise. 21228 * config/stormy16/stormy16.c (xstormy16_below_100_symbol): Fix 21229 return type. 21230 (xstormy16_splittable_below100_operand): Likewise. 21231 212322021-07-02 Richard Biener <rguenther@suse.de> 21233 21234 PR tree-optimization/101293 21235 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Compare MEM_REF bases 21236 with combined offsets. 21237 (gather_mem_refs_stmt): Hash MEM_REFs as if their offset were 21238 combined with the rest of the offset. 21239 212402021-07-02 Eric Botcazou <ebotcazou@adacore.com> 21241 21242 * config/i386/i386.c (asm_preferred_eh_data_format): Always use the 21243 PIC encodings for PE-COFF targets. 21244 212452021-07-02 Jakub Jelinek <jakub@redhat.com> 21246 21247 PR target/101286 21248 * config/i386/i386-expand.c (ix86_broadcast_from_integer_constant): 21249 Return nullptr for TImode inner mode. 21250 212512021-07-02 Richard Biener <rguenther@suse.de> 21252 21253 PR tree-optimization/101280 21254 PR tree-optimization/101173 21255 * gimple-loop-interchange.cc 21256 (tree_loop_interchange::valid_data_dependences): Properly 21257 guard all dependence checks with DDR_REVERSED_P or its 21258 inverse. 21259 212602021-07-02 Hongyu Wang <hongyu.wang@intel.com> 21261 21262 * config/i386/i386-expand.c (ix86_expand_builtin): 21263 Add branch to clear odata when ZF is set for asedecenc_expand 21264 and wideaesdecenc_expand. 21265 212662021-07-02 Eugene Rozenfeld <erozen@microsoft.com> 21267 21268 * config/i386/gcc-auto-profile: regenerate 21269 212702021-07-02 liuhongt <hongtao.liu@intel.com> 21271 21272 * config/i386/sse.md (trunc<mode><pmov_dst_4>2): Refined to .. 21273 (trunc<mode><pmov_dst_4_lower>2): this. 21274 212752021-07-01 David Malcolm <dmalcolm@redhat.com> 21276 21277 * diagnostic.h (diagnostic_context::m_file_cache): New field. 21278 * input.c (class fcache): Rename to... 21279 (class file_cache_slot): ...this, making most members private and 21280 prefixing fields with "m_". 21281 (file_cache_slot::get_file_path): New accessor. 21282 (file_cache_slot::get_use_count): New accessor. 21283 (file_cache_slot::missing_trailing_newline_p): New accessor. 21284 (file_cache_slot::inc_use_count): New. 21285 (fcache_buffer_size): Move to... 21286 (file_cache_slot::buffer_size): ...here. 21287 (fcache_line_record_size): Move to... 21288 (file_cache_slot::line_record_size): ...here. 21289 (fcache_tab): Delete, in favor of global_dc->m_file_cache. 21290 (fcache_tab_size): Move to file_cache::num_file_slots. 21291 (diagnostic_file_cache_init): Update for move of fcache_tab 21292 to global_dc->m_file_cache. 21293 (diagnostic_file_cache_fini): Likewise. 21294 (lookup_file_in_cache_tab): Convert to... 21295 (file_cache::lookup_file): ...this. 21296 (diagnostics_file_cache_forcibly_evict_file): Update for move of 21297 fcache_tab to global_dc->m_file_cache, moving most of 21298 implementation to... 21299 (file_cache::forcibly_evict_file): ...this new function and... 21300 (file_cache_slot::evict): ...this new function. 21301 (evicted_cache_tab_entry): Convert to... 21302 (file_cache::evicted_cache_tab_entry): ...this. 21303 (add_file_to_cache_tab): Convert to... 21304 (file_cache::add_file): ...this, moving bulk of implementation 21305 to... 21306 (file_cache_slot::create): ..this new function. 21307 (file_cache::file_cache): New. 21308 (file_cache::~file_cache): New. 21309 (lookup_or_add_file_to_cache_tab): Convert to... 21310 (file_cache::lookup_or_add_file): ..this new function. 21311 (fcache::fcache): Rename to... 21312 (file_cache_slot::file_cache_slot): ...this, adding "m_" prefixes 21313 to fields. 21314 (fcache::~fcache): Rename to... 21315 (file_cache_slot::~file_cache_slot): ...this, adding "m_" prefixes 21316 to fields. 21317 (needs_read): Convert to... 21318 (file_cache_slot::needs_read_p): ...this. 21319 (needs_grow): Convert to... 21320 (file_cache_slot::needs_grow_p): ...this. 21321 (maybe_grow): Convert to... 21322 (file_cache_slot::maybe_grow): ...this. 21323 (read_data): Convert to... 21324 (file_cache_slot::read_data): ...this. 21325 (maybe_read_data): Convert to... 21326 (file_cache_slot::maybe_read_data): ...this. 21327 (get_next_line): Convert to... 21328 (file_cache_slot::get_next_line): ...this. 21329 (goto_next_line): Convert to... 21330 (file_cache_slot::goto_next_line): ...this. 21331 (read_line_num): Convert to... 21332 (file_cache_slot::read_line_num): ...this. 21333 (location_get_source_line): Update for moving of globals to 21334 global_dc->m_file_cache. 21335 (location_missing_trailing_newline): Likewise. 21336 * input.h (class file_cache_slot): New forward decl. 21337 (class file_cache): New. 21338 213392021-07-01 Michael Meissner <meissner@linux.ibm.com> 21340 21341 * config/rs6000/rs6000.c (rs6000_maybe_emit_fp_cmove): Add IEEE 21342 128-bit floating point conditional move support. 21343 (have_compare_and_set_mask): Add IEEE 128-bit floating point 21344 types. 21345 * config/rs6000/rs6000.md (mov<mode>cc, IEEE128 iterator): New insn. 21346 (mov<mode>cc_p10, IEEE128 iterator): New insn. 21347 (mov<mode>cc_invert_p10, IEEE128 iterator): New insn. 21348 (fpmask<mode>, IEEE128 iterator): New insn. 21349 (xxsel<mode>, IEEE128 iterator): New insn. 21350 213512021-07-01 Iain Sandoe <iain@sandoe.co.uk> 21352 21353 PR debug/101283 21354 * config/darwin.h (CTF_INFO_SECTION_NAME): New. 21355 213562021-07-01 H.J. Lu <hjl.tools@gmail.com> 21357 21358 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): 21359 Make it global. 21360 * config/i386/i386-protos.h (ix86_expand_vector_init_duplicate): 21361 New prototype. 21362 * config/i386/sse.md (INT_BROADCAST_MODE): New mode iterator. 21363 (vec_duplicate<mode>): New expander. 21364 213652021-07-01 H.J. Lu <hjl.tools@gmail.com> 21366 21367 PR target/100865 21368 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): 21369 New prototype. 21370 (ix86_byte_broadcast): New function. 21371 (ix86_convert_const_wide_int_to_broadcast): Likewise. 21372 (ix86_expand_move): Convert CONST_WIDE_INT to broadcast if mode 21373 size is 16 bytes or bigger. 21374 (ix86_broadcast_from_integer_constant): New function. 21375 (ix86_expand_vector_move): Convert CONST_WIDE_INT and CONST_VECTOR 21376 to broadcast if mode size is 16 bytes or bigger. 21377 * config/i386/i386-protos.h (ix86_gen_scratch_sse_rtx): New 21378 prototype. 21379 * config/i386/i386.c (ix86_gen_scratch_sse_rtx): New function. 21380 213812021-07-01 Uro�� Bizjak <ubizjak@gmail.com> 21382 21383 * config/i386/predicates.md (ix86_endbr_immediate_operand): 21384 Return true/false instead of 1/0. 21385 (movq_parallel): Ditto. 21386 213872021-07-01 Uro�� Bizjak <ubizjak@gmail.com> 21388 21389 * recog.c (general_operand): Return true/false instead of 1/0. 21390 (register_operand): Ditto. 21391 (immediate_operand): Ditto. 21392 (const_int_operand): Ditto. 21393 (const_scalar_int_operand): Ditto. 21394 (const_double_operand): Ditto. 21395 (push_operand): Ditto. 21396 (pop_operand): Ditto. 21397 (memory_operand): Ditto. 21398 (indirect_operand): Ditto. 21399 214002021-07-01 Uro�� Bizjak <ubizjak@gmail.com> 21401 21402 * genpreds.c (write_predicate_subfunction): 21403 Change the type of written subfunction to bool. 21404 (write_one_predicate_function): 21405 Change the type of written function to bool. 21406 (write_tm_preds_h): Ditto. 21407 * recog.h (*insn_operand_predicate_fn): Change the type to bool. 21408 * recog.c (general_operand): Change the type to bool. 21409 (address_operand): Ditto. 21410 (register_operand): Ditto. 21411 (pmode_register_operand): Ditto. 21412 (scratch_operand): Ditto. 21413 (immediate_operand): Ditto. 21414 (const_int_operand): Ditto. 21415 (const_scalar_int_operand): Ditto. 21416 (const_double_operand): Ditto. 21417 (nonimmediate_operand): Ditto. 21418 (nonmemory_operand): Ditto. 21419 (push_operand): Ditto. 21420 (pop_operand): Ditto. 21421 (memory_operand): Ditto. 21422 (indirect_operand): Ditto. 21423 (ordered_comparison_operator): Ditto. 21424 (comparison_operator): Ditto. 21425 * config/i386/i386-expand.c (ix86_expand_sse_cmp): 21426 Change the type of indirect predicate function to bool. 21427 * config/rs6000/rs6000.c (easy_vector_constant): 21428 Change the type to bool. 21429 * config/mips/mips-protos.h (m16_based_address_p): 21430 Change the type of operand 3 to bool. 21431 214322021-07-01 Richard Biener <rguenther@suse.de> 21433 21434 PR tree-optimization/101280 21435 PR tree-optimization/101173 21436 * gimple-loop-interchange.cc 21437 (tree_loop_interchange::valid_data_dependences): Revert 21438 previous change and instead correctly handle DDR_REVERSED_P 21439 dependence. 21440 214412021-07-01 Richard Biener <rguenther@suse.de> 21442 21443 PR tree-optimization/101278 21444 * tree-ssa-dse.c (dse_classify_store): First check for 21445 uses, then ignore stmt for chaining purposes. 21446 214472021-07-01 Richard Biener <rguenther@suse.de> 21448 21449 PR tree-optimization/100778 21450 * tree-vect-slp.c (vect_schedule_slp_node): Do not place trapping 21451 vectorized ops ahead of their scalar BB. 21452 214532021-07-01 Uro�� Bizjak <ubizjak@gmail.com> 21454 21455 PR target/101044 21456 * config/i386/i386.md (*nabs<dwi>2_doubleword): 21457 New insn_and_split pattern. 21458 (*nabs<dwi>2_1): Ditto. 21459 * config/i386/i386-features.c 21460 (general_scalar_chain::compute_convert_gain): 21461 Handle (NEG (ABS (...))) RTX. Rewrite src code 21462 scanner as switch statement. 21463 (general_scalar_chain::convert_insn): 21464 Handle (NEG (ABS (...))) RTX. 21465 (general_scalar_to_vector_candidate_p): 21466 Detect (NEG (ABS (...))) RTX. Reorder case statements 21467 for (AND (NOT (...) ...)) fallthrough. 21468 214692021-07-01 Richard Biener <rguenther@suse.de> 21470 21471 PR tree-optimization/101178 21472 * tree-vect-slp.c (slpg_vertex::materialize): Remove. 21473 (slpg::perm_in): Add. 21474 (slpg::get_perm_in): Remove. 21475 (slpg::get_perm_materialized): Add. 21476 (vect_optimize_slp): Handle VEC_PERM nodes more optimally 21477 during permute propagation and materialization. 21478 214792021-07-01 Jakub Jelinek <jakub@redhat.com> 21480 21481 PR debug/101266 21482 * dwarf2out.c (loc_list_from_tree_1): Handle COMPOUND_LITERAL_EXPR. 21483 214842021-07-01 Jakub Jelinek <jakub@redhat.com> 21485 21486 PR middle-end/94366 21487 * omp-low.c (lower_rec_input_clauses): Rename is_fp_and_or to 21488 is_truth_op, set it for TRUTH_*IF_EXPR regardless of new_var's type, 21489 use boolean_type_node instead of integer_type_node as NE_EXPR type. 21490 (lower_reduction_clauses): Likewise. 21491 214922021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com> 21493 21494 * config/gcn/gcn.c: Include dwarf2.h. 21495 (gcn_addr_space_debug): New function. 21496 (TARGET_ADDR_SPACE_DEBUG): New hook. 21497 214982021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com> 21499 21500 * common/config/gcn/gcn-common.c 21501 (gcn_option_optimization_table): Change OPT_fomit_frame_pointer to -O3. 21502 * config/gcn/gcn.c (gcn_expand_prologue): Prefer the frame pointer 21503 when emitting CFI. 21504 (gcn_expand_prologue): Prefer the frame pointer when emitting CFI. 21505 (gcn_frame_pointer_rqd): New function. 21506 (TARGET_FRAME_POINTER_REQUIRED): New hook. 21507 215082021-06-30 Hafiz Abid Qadeer <abidh@codesourcery.com> 21509 21510 * config/gcn/gcn.c (move_callee_saved_registers): Emit CFI notes for 21511 prologue register saves. 21512 (gcn_debug_unwind_info): Use UI_DWARF2. 21513 (gcn_dwarf_register_number): Map DWARF_LINK_REGISTER to DWARF PC. 21514 (gcn_dwarf_register_span): DWARF_LINK_REGISTER doesn't span. 21515 * config/gcn/gcn.h: (DWARF_FRAME_RETURN_COLUMN): New define. 21516 (DWARF_LINK_REGISTER): New define. 21517 (FIRST_PSEUDO_REGISTER): Increment. 21518 (FIXED_REGISTERS): Add entry for DWARF_LINK_REGISTER. 21519 (CALL_USED_REGISTERS): Likewise. 21520 (REGISTER_NAMES): Likewise. 21521 215222021-06-30 Richard Biener <rguenther@suse.de> 21523 21524 PR tree-optimization/101267 21525 * tree-vect-stmts.c (vect_check_scalar_mask): Adjust 21526 API and use SLP compatible interface of vect_is_simple_use. 21527 Reject not vectorized SLP defs for callers that do not support 21528 that. 21529 (vect_check_store_rhs): Handle masked stores and pass down 21530 the appropriate operator index. 21531 (vectorizable_call): Adjust. 21532 (vectorizable_store): Likewise. 21533 (vectorizable_load): Likewise. Handle SLP pecularity of 21534 masked loads. 21535 (vect_is_simple_use): Remove special-casing of masked stores. 21536 215372021-06-30 Tobias Burnus <tobias@codesourcery.com> 21538 21539 * common.opt (foffload): Remove help as Driver only. 21540 * gcc.c (display_help): Add -foffload. 21541 215422021-06-30 Tobias Burnus <tobias@codesourcery.com> 21543 21544 * gcc.c (close_at_file, execute): Replace alloca by XALLOCAVEC. 21545 (check_offload_target_name): Fix splitting OFFLOAD_TARGETS into 21546 a candidate list; better inform no offload target is configured 21547 and fix hint extraction when passed target is not '\0' at [len]. 21548 * common.opt (foffload): Add tailing '.'. 21549 (foffload-options): Likewise; fix flag name in the help string. 21550 215512021-06-30 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 21552 21553 PR target/66791 21554 * config/arm/arm_neon.h: Move vabs intrinsics before vcage_f32. 21555 (vcage_f32): Gate comparison on __FAST_MATH__. 21556 (vcageq_f32): Likewise. 21557 (vcale_f32): Likewise. 21558 (vcaleq_f32): Likewise. 21559 (vcagt_f32): Likewise. 21560 (vcagtq_f32): Likewise. 21561 (vcalt_f32): Likewise. 21562 (vcaltq_f32): Likewise. 21563 (vcage_f16): Likewise. 21564 (vcageq_f16): Likewise. 21565 (vcale_f16): Likewise. 21566 (vcaleq_f16): Likewise. 21567 (vcagt_f16): Likewise. 21568 (vcagtq_f16): Likewise. 21569 (vcalt_f16): Likewise. 21570 (vcaltq_f16): Likewise. 21571 215722021-06-30 Richard Biener <rguenther@suse.de> 21573 21574 PR tree-optimization/101264 21575 * tree-vect-slp.c (vect_optimize_slp): Propagate the 21576 computed perm_in to all "any" permute successors 21577 we cannot de-duplicate immediately. 21578 215792021-06-30 liuhongt <hongtao.liu@intel.com> 21580 21581 PR target/101248 21582 * config/i386/sse.md 21583 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): 21584 Refined to .. 21585 (avx512f_sfixupimm<mode><maskz_scalar_name><round_saeonly_name>): 21586 this. 21587 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>"): Refined. 21588 * config/i386/subst.md (maskz_scalar): New define_subst. 21589 (maskz_scalar_name): New subst_attr. 21590 (maskz_scalar_op5): Ditto. 21591 (round_saeonly_maskz_scalar_op5): Ditto. 21592 (round_saeonly_maskz_scalar_operand5): Ditto. 21593 215942021-06-30 David Edelsohn <dje.gcc@gmail.com> 21595 21596 * config/rs6000/rs6000.c (rs6000_xcoff_section_type_flags): 21597 Increase code CSECT alignment to at least 32 bytes. 21598 * config/rs6000/xcoff.h (TEXT_SECTION_ASM_OP): Add 32 byte 21599 alignment designation. 21600 216012021-06-29 Sergei Trofimovich <siarheit@google.com> 21602 21603 * doc/generic.texi: Fix s/net yet/not yet/ typo. 21604 216052021-06-29 Andrew MacLeod <amacleod@redhat.com> 21606 21607 PR tree-optimization/101254 21608 * range-op.cc (operator_minus::op1_op2_relation_effect): Check for 21609 wrapping/non-wrapping when setting the result range. 21610 216112021-06-29 Andrew MacLeod <amacleod@redhat.com> 21612 21613 * value-query.cc (gimple_range_global): Allow phis. 21614 216152021-06-29 Andrew MacLeod <amacleod@redhat.com> 21616 21617 * vr-values.c (vr_values::vrp_stmt_computes_nonzero): Use stmt. 21618 (simplify_using_ranges::op_with_boolean_value_range_p): Add a 21619 statement for location context. 21620 (check_for_binary_op_overflow): Ditto. 21621 (simplify_using_ranges::get_vr_for_comparison): Ditto. 21622 (simplify_using_ranges::compare_name_with_value): Ditto. 21623 (simplify_using_ranges::compare_names): Ditto. 21624 (vrp_evaluate_conditional_warnv_with_ops_using_ranges): Ditto. 21625 (simplify_using_ranges::simplify_truth_ops_using_ranges): Ditto. 21626 (simplify_using_ranges::simplify_min_or_max_using_ranges): Ditto. 21627 (simplify_using_ranges::simplify_internal_call_using_ranges): Ditto. 21628 (simplify_using_ranges::two_valued_val_range_p): Ditto. 21629 (simplify_using_ranges::simplify): Ditto. 21630 * vr-values.h: Adjust prototypes. 21631 216322021-06-29 Uro�� Bizjak <ubizjak@gmail.com> 21633 21634 PR target/95046 21635 * config/i386/mmx.md (vec_addsubv2sf3): New insn pattern. 21636 216372021-06-29 Julian Brown <julian@codesourcery.com> 21638 21639 * config/gcn/gcn.c (gcn_init_libfuncs): New function. 21640 (TARGET_INIT_LIBFUNCS): Define target hook using above function. 21641 * config/gcn/gcn.h (UNITS_PER_WORD): Define to 8 for IN_LIBGCC2, 4 21642 otherwise. 21643 (LIBGCC2_UNITS_PER_WORD, BITS_PER_WORD): Remove definitions. 21644 (MAX_FIXED_MODE_SIZE): Change to 128. 21645 216462021-06-29 Julian Brown <julian@codesourcery.com> 21647 21648 * config/gcn/gcn.md (UNSPEC_FLBIT_INT): New unspec constant. 21649 (s_mnemonic): Add clrsb. 21650 (gcn_flbit<mode>_int): Add insn pattern for SImode/DImode. 21651 (clrsb<mode>2): Add expander for SImode/DImode. 21652 216532021-06-29 Julian Brown <julian@codesourcery.com> 21654 21655 * config/gcn/gcn.md (<su>mulsidi3, <su>mulsidi3_reg, <su>mulsidi3_imm, 21656 muldi3): Add patterns. 21657 216582021-06-29 Julian Brown <julian@codesourcery.com> 21659 21660 * config/gcn/gcn.md (<su>mulsi3_highpart): Change to expander. 21661 (<su>mulsi3_highpart_reg, <su>mulsi3_highpart_imm): New patterns. 21662 216632021-06-29 Julian Brown <julian@codesourcery.com> 21664 21665 * config/gcn/gcn.md (mulsi3): Make s_mulk_i32 variant clobber SCC. 21666 216672021-06-29 Joseph Myers <joseph@codesourcery.com> 21668 21669 * btfout.c, ctfout.c: Include "memmodel.h". 21670 216712021-06-29 Tobias Burnus <tobias@codesourcery.com> 21672 21673 * gcc.c (check_offload_target_name): Cast len argument to 21674 %q.*s to 'int'; avoid -Wstringop-truncation warning. 21675 216762021-06-29 Richard Biener <rguenther@suse.de> 21677 21678 * tree-vect-slp.c (vect_optimize_slp): Forward propagate 21679 to "any" permute nodes and relax "any" permute proapgation 21680 during iterative backward propagation. 21681 216822021-06-29 Tobias Burnus <tobias@codesourcery.com> 21683 21684 PR other/67300 21685 * common.opt (-foffload=): Update description. 21686 (-foffload-options=): New. 21687 * doc/invoke.texi (C Language Options): Document 21688 -foffload and -foffload-options. 21689 * gcc.c (check_offload_target_name): New, split off from 21690 handle_foffload_option. 21691 (check_foffload_target_names): New. 21692 (handle_foffload_option): Handle -foffload=default. 21693 (driver_handle_option): Update for -foffload-options. 21694 * lto-opts.c (lto_write_options): Use -foffload-options 21695 instead of -foffload. 21696 * lto-wrapper.c (merge_and_complain, append_offload_options): 21697 Likewise. 21698 * opts.c (common_handle_option): Likewise. 21699 217002021-06-29 Tobias Burnus <tobias@codesourcery.com> 21701 21702 * doc/invoke.texi (C Language Options): Sort options 21703 alphabetically in optlist and also the description itself. 21704 Remove leftover -fallow-single-precision from and add missing 21705 -fgnu-tm to the optlist. 21706 217072021-06-29 Richard Biener <rguenther@suse.de> 21708 21709 * tree-vect-slp.c (slpg_vertex::visited): Remove. 21710 (vect_slp_perms_eq): Handle -1 permutes. 21711 (vect_optimize_slp): Rewrite permute propagation. 21712 217132021-06-29 Jakub Jelinek <jakub@redhat.com> 21714 21715 PR c++/101210 21716 * match.pd ((intptr_t)x eq/ne CST to x eq/ne (typeof x) CST): Don't 21717 perform the optimization in GENERIC when sanitizing and x has a 21718 reference type. 21719 217202021-06-29 Richard Biener <rguenther@suse.de> 21721 21722 PR tree-optimization/101242 21723 * tree-vect-slp.c (vect_slp_build_vertices): Force-add 21724 PHIs with not represented initial values as leafs. 21725 217262021-06-29 Jan-Benedict Glaw <jbglaw@getslash.de> 21727 21728 * config/pdp11/pdp11.h (ASM_OUTPUT_SKIP): Fix signedness warning. 21729 * config/pdp11/pdp11.c (pdp11_asm_print_operand_punct_valid_p): Remove 21730 "register" keyword. 21731 (pdp11_initial_elimination_offset) Remove unused variable. 21732 (pdp11_cmp_length) Ditto. 21733 (pdp11_insn_cost): Ditto, and fix signedness warning. 21734 217352021-06-29 David Edelsohn <dje.gcc@gmail.com> 21736 21737 * btfout.c: Include tm_p.h. 21738 * ctfout.c: Same. 21739 217402021-06-28 Indu Bhagat <indu.bhagat@oracle.com> 21741 21742 * config/bpf/bpf.c (bpf_expand_prologue): Do not mark insns as 21743 frame related. 21744 (bpf_expand_epilogue): Likewise. 21745 * config/bpf/bpf.h (DWARF2_FRAME_INFO): Define to 0. 21746 Do not define DBX_DEBUGGING_INFO. 21747 217482021-06-28 Indu Bhagat <indu.bhagat@oracle.com> 21749 21750 * doc/invoke.texi: Document the CTF and BTF debug info options. 21751 217522021-06-28 Indu Bhagat <indu.bhagat@oracle.com> 21753 David Faust <david.faust@oracle.com> 21754 Jose E. Marchesi <jose.marchesi@oracle.com> 21755 Weimin Pan <weimin.pan@oracle.com> 21756 21757 * Makefile.in: Add ctfc.*, ctfout.c and btfout.c files to 21758 GTFILES. Add new object files. 21759 * common.opt: Add CTF and BTF debug info options. 21760 * btfout.c: New file. 21761 * ctfc.c: Likewise. 21762 * ctfc.h: Likewise. 21763 * ctfout.c: Likewise. 21764 * dwarf2ctf.c: Likewise. 21765 * dwarf2ctf.h: Likewise. 21766 * dwarf2cfi.c (dwarf2out_do_frame): Acknowledge CTF_DEBUG and 21767 BTF_DEBUG. 21768 * dwarf2out.c (dwarf2out_source_line): Likewise. 21769 (dwarf2out_finish): Skip emitting DWARF if CTF or BTF are to 21770 be generated. 21771 (debug_format_do_cu): New function. 21772 (dwarf2out_early_finish): Traverse DIEs and emit CTF/BTF for 21773 them if requested. 21774 Include dwarf2ctf.c. 21775 * final.c (dwarf2_debug_info_emitted_p): Acknowledge DWARF-based debug 21776 formats. 21777 * flag-types.h (enum debug_info_type): Add CTF_DEBUG and BTF_DEBUG. 21778 (CTF_DEBUG): New bitmask. 21779 (BTF_DEBUG): Likewise. 21780 (enum ctf_debug_info_levels): New enum. 21781 * gengtype.c (open_base_files): Handle ctfc.h. 21782 (main): Handle uint32_t type. 21783 * flags.h (btf_debuginfo_p): New definition. 21784 (dwarf_based_debuginfo_p): Likewise. 21785 * opts.c (debug_type_names): Add entries for CTF and BTF. 21786 (btf_debuginfo_p): New function. 21787 (dwarf_based_debuginfo_p): Likewise. 21788 (common_handle_option): Handle -gctfN and -gbtf options. 21789 (set_debug_level): Set CTF_DEBUG, BTF_DEBUG whenever appropriate. 21790 * toplev.c (process_options): Inform the user and ignore -gctfLEVEL if 21791 frontend is not C. 21792 217932021-06-28 Jose E. Marchesi <jose.marchesi@oracle.com> 21794 21795 * dwarf2out.c (AT_class): Function is no longer static. 21796 (AT_int): Likewise. 21797 (AT_unsigned): Likewise. 21798 (AT_loc): Likewise. 21799 (get_AT): Likewise. 21800 (get_AT_string): Likewise. 21801 (get_AT_flag): Likewise. 21802 (get_AT_unsigned): Likewise. 21803 (get_AT_ref): Likewise. 21804 (new_die_raw): Likewise. 21805 (lookup_decl_die): Likewise. 21806 (base_type_die): Likewise. 21807 (add_name_attribute): Likewise. 21808 (add_AT_int): Likewise. 21809 (add_AT_unsigned): Likewise. 21810 (add_AT_loc): Likewise. 21811 (dw_get_die_tag): New function. 21812 (dw_get_die_child): Likewise. 21813 (dw_get_die_sib): Likewise. 21814 (struct dwarf_file_data): Move from here to dwarf2out.h 21815 (struct dw_attr_struct): Likewise. 21816 * dwarf2out.h: Analogous changes. 21817 218182021-06-28 Martin Jambor <mjambor@suse.cz> 21819 21820 PR ipa/93385 21821 * ipa-param-manipulation.h (class ipa_param_body_adjustments): New 21822 members m_dead_stmts and m_dead_ssas. 21823 * ipa-param-manipulation.c 21824 (ipa_param_body_adjustments::mark_dead_statements): New function. 21825 (ipa_param_body_adjustments::common_initialization): Call it on 21826 all removed but not split parameters. 21827 (ipa_param_body_adjustments::ipa_param_body_adjustments): Initialize 21828 new mwmbers. 21829 (ipa_param_body_adjustments::modify_call_stmt): Remove arguments that 21830 are dead. 21831 * tree-inline.c (remap_gimple_stmt): Do not copy dead statements, reset 21832 dead debug statements. 21833 (copy_phis_for_bb): Do not copy dead PHI nodes. 21834 218352021-06-28 Martin Jambor <mjambor@suse.cz> 21836 21837 PR ipa/93385 21838 * symtab-clones.h (clone_info): Removed member param_adjustments. 21839 * ipa-param-manipulation.h: Adjust initial comment to reflect how we 21840 deal with pass-through splits now. 21841 (ipa_param_performed_split): Removed. 21842 (ipa_param_adjustments::modify_call): Adjusted parameters. 21843 (class ipa_param_body_adjustments): Adjusted parameters of 21844 register_replacement, modify_gimple_stmt and modify_call_stmt. 21845 (ipa_verify_edge_has_no_modifications): Declare. 21846 (ipa_edge_modifications_finalize): Declare. 21847 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Remove 21848 performed_splits processing, pas only edge to padjs->modify_call, 21849 check that call arguments were not modified if they should not have 21850 been. 21851 * cgraphclones.c (cgraph_node::create_clone): Do not copy performed 21852 splits. 21853 * ipa-param-manipulation.c (struct pass_through_split_map): New type. 21854 (ipa_edge_modification_info): Likewise. 21855 (ipa_edge_modification_sum): Likewise. 21856 (ipa_edge_modifications): New edge summary. 21857 (ipa_verify_edge_has_no_modifications): New function. 21858 (transitive_split_p): Removed. 21859 (transitive_split_map): Likewise. 21860 (init_transitive_splits): Likewise. 21861 (ipa_param_adjustments::modify_call): Adjusted to use the new edge 21862 summary instead of performed_splits. 21863 (ipa_param_body_adjustments::register_replacement): Drop dummy 21864 parameter, set base_index of the created ipa_param_body_replacement. 21865 (phi_arg_will_live_p): New function. 21866 (ipa_param_body_adjustments::common_initialization): Do not create 21867 IPA_SRA dummy decls. 21868 (simple_tree_swap_info): Removed. 21869 (remap_split_decl_to_dummy): Likewise. 21870 (record_argument_state_1): New function. 21871 (record_argument_state): Likewise. 21872 (ipa_param_body_adjustments::modify_call_stmt): New parameter 21873 orig_stmt. Do not work with dummy decls, save necessary info about 21874 changes to ipa_edge_modifications. 21875 (ipa_param_body_adjustments::modify_gimple_stmt): New parameter 21876 orig_stmt, pass it to modify_call_stmt. 21877 (ipa_param_body_adjustments::modify_cfun_body): Adjust call to 21878 modify_gimple_stmt. 21879 (ipa_edge_modifications_finalize): New function. 21880 * tree-inline.c (remap_gimple_stmt): Pass original statement to 21881 modify_gimple_stmt. 21882 (copy_phis_for_bb): Do not copy dead PHI nodes. 21883 (expand_call_inline): Do not remap performed_splits. 21884 (update_clone_info): Likewise. 21885 * toplev.c: Include ipa-param-manipulation.h. 21886 (toplev::finalize): Call ipa_edge_modifications_finalize. 21887 218882021-06-28 Andrew Pinski <apinski@marvell.com> 21889 21890 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Duplicate range 21891 info if we're the only things setting the target PHI. 21892 (value_replacement): Don't duplicate range here. 21893 (minmax_replacement): Likewise. 21894 218952021-06-28 Richard Biener <rguenther@suse.de> 21896 21897 PR tree-optimization/101229 21898 * gimple-walk.c (gimple_walk_op): Handle PHIs. 21899 219002021-06-28 Martin Liska <mliska@suse.cz> 21901 21902 * config/v850/v850.c (construct_dispose_instruction): Allocate 21903 a bigger buffer. 21904 (construct_prepare_instruction): Likewise. 21905 219062021-06-28 Martin Liska <mliska@suse.cz> 21907 21908 * config/v850/v850.c (v850_option_override): Build default 21909 target node. 21910 (v850_can_inline_p): New. Allow MASK_PROLOG_FUNCTION to be 21911 ignored for inlining. 21912 (TARGET_CAN_INLINE_P): New. 21913 219142021-06-28 Richard Biener <rguenther@suse.de> 21915 21916 PR tree-optimization/101207 21917 * tree-vect-slp.c (vect_optimize_slp): Do BB reduction 21918 permute eliding for load permutations properly. 21919 219202021-06-28 Richard Biener <rguenther@suse.de> 21921 21922 PR tree-optimization/101173 21923 * gimple-loop-interchange.cc 21924 (tree_loop_interchange::valid_data_dependences): Disallow outer 21925 loop dependence distance of zero. 21926 219272021-06-28 liuhongt <hongtao.liu@intel.com> 21928 21929 PR target/100648 21930 * config/i386/sse.md (*avx_cmp<mode>3_lt): New 21931 define_insn_and_split. 21932 (*avx_cmp<mode>3_ltint): Ditto. 21933 (*avx2_pcmp<mode>3_3): Ditto. 21934 (*avx2_pcmp<mode>3_4): Ditto. 21935 (*avx2_pcmp<mode>3_5): Ditto. 21936 219372021-06-28 liuhongt <hongtao.liu@intel.com> 21938 21939 * config/i386/i386-builtin.def (IX86_BUILTIN_BLENDVPD256, 21940 IX86_BUILTIN_BLENDVPS256, IX86_BUILTIN_PBLENDVB256, 21941 IX86_BUILTIN_BLENDVPD, IX86_BUILTIN_BLENDVPS, 21942 IX86_BUILTIN_PBLENDVB128): Replace icode with 21943 CODE_FOR_nothing. 21944 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold blendv 21945 builtins. 21946 * config/i386/sse.md (*<sse4_1_avx2>_pblendvb_lt_subreg_not): 21947 New pre_reload splitter. 21948 219492021-06-27 Andrew Pinski <apinski@marvell.com> 21950 21951 PR middle-end/101230 21952 * fold-const.c (fold_ternary_loc): Check 21953 the return value of invert_tree_comparison. 21954 219552021-06-27 David Edelsohn <dje.gcc@gmail.com> 21956 21957 * config.gcc: Add SPDX License Identifier. 21958 (powerpc-ibm-aix789): Default to aix73.h. 21959 (powerpc-ibm-aix7.2.*.*): New stanza. 21960 * config/rs6000/aix72.h: Add SPDX License Identifier. 21961 * config/rs6000/aix73.h: New file. 21962 219632021-06-26 Jason Merrill <jason@redhat.com> 21964 21965 * except.c: #include "dwarf2.h" instead of "dwarf2out.h". 21966 219672021-06-26 Andrew Pinski <apinski@marvell.com> 21968 21969 * genmatch.c (lower_cond): Copy for_subst_vec 21970 for the simplify also. 21971 (lower): Swap the order for lower_for and lower_cond. 21972 219732021-06-26 Andrew Pinski <apinski@marvell.com> 21974 21975 * tree-ssa-phiopt.c (match_simplify_replacement): Reset 21976 flow senatitive info on the moved ssa set. 21977 219782021-06-26 Andrew Pinski <apinski@marvell.com> 21979 21980 * fold-const.c (fold_cond_expr_with_comparison): 21981 Exand arg0 into comp_code, arg00, and arg01. 21982 (fold_ternary_loc): Use invert_tree_comparison 21983 instead of fold_invert_truthvalue for the case 21984 where we have A CMP B ? C : A. 21985 219862021-06-25 Martin Sebor <msebor@redhat.com> 21987 21988 PR middle-end/101216 21989 * calls.c (maybe_warn_rdwr_sizes): Use the no_warning constant. 21990 219912021-06-25 Jeff Law <jeffreyalaw@gmail.com> 21992 21993 * config/h8300/h8300.c (select_cc_mode): Handle ASHIFTRT and LSHIFTRT. 21994 219952021-06-25 Richard Biener <rguenther@suse.de> 21996 21997 PR tree-optimization/101202 21998 * tree-vect-slp.c (vect_optimize_slp): Explicitely handle 21999 failed nodes. 22000 220012021-06-25 Richard Biener <rguenther@suse.de> 22002 22003 * tree-vect-slp-patterns.c (addsub_pattern::build): Copy 22004 STMT_VINFO_REDUC_DEF from the original representative. 22005 220062021-06-25 Martin Sebor <msebor@redhat.com> 22007 22008 * builtins.c (warn_string_no_nul): Replace uses of TREE_NO_WARNING, 22009 gimple_no_warning_p and gimple_set_no_warning with 22010 warning_suppressed_p, and suppress_warning. 22011 (c_strlen): Same. 22012 (maybe_warn_for_bound): Same. 22013 (warn_for_access): Same. 22014 (check_access): Same. 22015 (expand_builtin_strncmp): Same. 22016 (fold_builtin_varargs): Same. 22017 * calls.c (maybe_warn_nonstring_arg): Same. 22018 (maybe_warn_rdwr_sizes): Same. 22019 * cfgexpand.c (expand_call_stmt): Same. 22020 * cgraphunit.c (check_global_declaration): Same. 22021 * fold-const.c (fold_undefer_overflow_warnings): Same. 22022 (fold_truth_not_expr): Same. 22023 (fold_unary_loc): Same. 22024 (fold_checksum_tree): Same. 22025 * gimple-array-bounds.cc (array_bounds_checker::check_array_ref): Same. 22026 (array_bounds_checker::check_mem_ref): Same. 22027 (array_bounds_checker::check_addr_expr): Same. 22028 (array_bounds_checker::check_array_bounds): Same. 22029 * gimple-expr.c (copy_var_decl): Same. 22030 * gimple-fold.c (gimple_fold_builtin_strcpy): Same. 22031 (gimple_fold_builtin_strncat): Same. 22032 (gimple_fold_builtin_stxcpy_chk): Same. 22033 (gimple_fold_builtin_stpcpy): Same. 22034 (gimple_fold_builtin_sprintf): Same. 22035 (fold_stmt_1): Same. 22036 * gimple-ssa-isolate-paths.c (diag_returned_locals): Same. 22037 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same. 22038 * gimple-ssa-sprintf.c (handle_printf_call): Same. 22039 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Same. 22040 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Same. 22041 * gimple-ssa-warn-restrict.h: Adjust declarations. 22042 (maybe_diag_access_bounds): Replace uses of TREE_NO_WARNING, 22043 gimple_no_warning_p and gimple_set_no_warning with 22044 warning_suppressed_p, and suppress_warning. 22045 (check_call): Same. 22046 (check_bounds_or_overlap): Same. 22047 * gimple.c (gimple_build_call_from_tree): Same. 22048 * gimplify.c (gimplify_return_expr): Same. 22049 (gimplify_cond_expr): Same. 22050 (gimplify_modify_expr_complex_part): Same. 22051 (gimplify_modify_expr): Same. 22052 (gimple_push_cleanup): Same. 22053 (gimplify_expr): Same. 22054 * omp-expand.c (expand_omp_for_generic): Same. 22055 (expand_omp_taskloop_for_outer): Same. 22056 * omp-low.c (lower_rec_input_clauses): Same. 22057 (lower_lastprivate_clauses): Same. 22058 (lower_send_clauses): Same. 22059 (lower_omp_target): Same. 22060 * tree-cfg.c (pass_warn_function_return::execute): Same. 22061 * tree-complex.c (create_one_component_var): Same. 22062 * tree-inline.c (remap_gimple_op_r): Same. 22063 (copy_tree_body_r): Same. 22064 (declare_return_variable): Same. 22065 (expand_call_inline): Same. 22066 * tree-nested.c (lookup_field_for_decl): Same. 22067 * tree-sra.c (create_access_replacement): Same. 22068 (generate_subtree_copies): Same. 22069 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Same. 22070 * tree-ssa-forwprop.c (combine_cond_expr_cond): Same. 22071 * tree-ssa-loop-ch.c (ch_base::copy_headers): Same. 22072 * tree-ssa-loop-im.c (execute_sm): Same. 22073 * tree-ssa-phiopt.c (cond_store_replacement): Same. 22074 * tree-ssa-strlen.c (maybe_warn_overflow): Same. 22075 (handle_builtin_strcpy): Same. 22076 (maybe_diag_stxncpy_trunc): Same. 22077 (handle_builtin_stxncpy_strncat): Same. 22078 (handle_builtin_strcat): Same. 22079 * tree-ssa-uninit.c (get_no_uninit_warning): Same. 22080 (set_no_uninit_warning): Same. 22081 (uninit_undefined_value_p): Same. 22082 (warn_uninit): Same. 22083 (maybe_warn_operand): Same. 22084 * tree-vrp.c (compare_values_warnv): Same. 22085 * vr-values.c (vr_values::extract_range_for_var_from_comparison_expr): Same. 22086 (test_for_singularity): Same. 22087 * gimple.h (warning_suppressed_p): New function. 22088 (suppress_warning): Same. 22089 (copy_no_warning): Same. 22090 (gimple_set_block): Call gimple_set_location. 22091 (gimple_set_location): Call copy_warning. 22092 220932021-06-25 Martin Sebor <msebor@redhat.com> 22094 22095 * tree.h (warning_suppressed_at, copy_warning, 22096 warning_suppressed_p, suppress_warning): New functions. 22097 220982021-06-25 Martin Sebor <msebor@redhat.com> 22099 22100 * Makefile.in (OBJS-libcommon): Add diagnostic-spec.o. 22101 * gengtype.c (open_base_files): Add diagnostic-spec.h. 22102 * diagnostic-spec.c: New file. 22103 * diagnostic-spec.h: New file. 22104 * tree.h (no_warning, all_warnings, suppress_warning_at): New 22105 declarations. 22106 * warning-control.cc: New file. 22107 221082021-06-25 liuhongt <hongtao.liu@intel.com> 22109 22110 PR target/101185 22111 * config/i386/i386.c (x86_order_regs_for_local_alloc): 22112 Revert r12-1669. 22113 221142021-06-24 Andrew MacLeod <amacleod@redhat.com> 22115 22116 PR tree-optimization/101189 22117 * gimple-range-fold.cc (fold_using_range::range_of_range_op): Pass 22118 LHS range of condition to postfold routine. 22119 (fold_using_range::postfold_gcond_edges): Only process the TRUE or 22120 FALSE edge if the LHS range supports it being taken. 22121 * gimple-range-fold.h (postfold_gcond_edges): Add range parameter. 22122 221232021-06-24 Andrew MacLeod <amacleod@redhat.com> 22124 22125 * value-relation.cc (equiv_oracle::dump): Do not dump NULL blocks. 22126 (relation_oracle::find_relation_block): Check correct bitmap. 22127 (relation_oracle::dump): Do not dump NULL blocks. 22128 221292021-06-24 Andrew MacLeod <amacleod@redhat.com> 22130 22131 * gimple-range-cache.cc (ranger_cache::propagate_cache): Call 22132 range_on_edge instead of manually calculating. 22133 221342021-06-24 Andrew MacLeod <amacleod@redhat.com> 22135 22136 * range-op.cc: Fix comment. 22137 221382021-06-24 Uro�� Bizjak <ubizjak@gmail.com> 22139 22140 PR target/89021 22141 * config/i386/i386-expand.c (ix86_expand_sse_unpack): 22142 Handle V8QI and V4HI modes. 22143 * config/i386/mmx.md (sse4_1_<any_extend:code>v4qiv4hi2): 22144 New insn pattern. 22145 (sse4_1_<any_extend:code>v4qiv4hi2): Ditto. 22146 (mmxpackmode): New mode attribute. 22147 (vec_pack_trunc_<mmxpackmode:mode>): New expander. 22148 (mmxunpackmode): New mode attribute. 22149 (vec_unpacks_lo_<mmxunpackmode:mode>): New expander. 22150 (vec_unpacks_hi_<mmxunpackmode:mode>): Ditto. 22151 (vec_unpacku_lo_<mmxunpackmode:mode>): Ditto. 22152 (vec_unpacku_hi_<mmxunpackmode:mode>): Ditto. 22153 * config/i386/i386.md (extsuffix): Move from ... 22154 * config/i386/sse.md: ... here. 22155 221562021-06-24 Eric Botcazou <ebotcazou@adacore.com> 22157 22158 * dwarf2out.c (dwarf2out_assembly_start): Emit .file 0 marker here.. 22159 (dwarf2out_finish): ...instead of here. 22160 221612021-06-24 Eric Botcazou <ebotcazou@adacore.com> 22162 22163 * configure.ac (--gdwarf-5 option): Use objdump instead of readelf. 22164 (working --gdwarf-4/--gdwarf-5 for all sources): Likewise. 22165 (--gdwarf-4 not refusing generated .debug_line): Adjust for Windows. 22166 * configure: Regenerate. 22167 221682021-06-24 Richard Biener <rguenther@suse.de> 22169 22170 * config/i386/sse.md (vec_addsubv4df3, vec_addsubv2df3, 22171 vec_addsubv8sf3, vec_addsubv4sf3): Merge into ... 22172 (vec_addsub<mode>3): ... using a new addsub_cst mode attribute. 22173 221742021-06-24 Richard Biener <rguenther@suse.de> 22175 22176 * config/i386/sse.md (avx_addsubv4df3): Rename to 22177 vec_addsubv4df3. 22178 (avx_addsubv8sf3): Rename to vec_addsubv8sf3. 22179 (sse3_addsubv2df3): Rename to vec_addsubv2df3. 22180 (sse3_addsubv4sf3): Rename to vec_addsubv4sf3. 22181 * config/i386/i386-builtin.def: Adjust. 22182 * internal-fn.def (VEC_ADDSUB): New internal optab fn. 22183 * optabs.def (vec_addsub_optab): New optab. 22184 * tree-vect-slp-patterns.c (class addsub_pattern): New. 22185 (slp_patterns): Add addsub_pattern. 22186 * tree-vect-slp.c (vect_optimize_slp): Disable propagation 22187 across CFN_VEC_ADDSUB. 22188 * tree-vectorizer.h (vect_pattern::vect_pattern): Make 22189 m_ops optional. 22190 * doc/md.texi (vec_addsub<mode>3): Document. 22191 221922021-06-24 Jakub Jelinek <jakub@redhat.com> 22193 22194 PR middle-end/101170 22195 * df-scan.c (df_ref_record): For paradoxical big-endian SUBREGs 22196 where regno + subreg_regno_offset wraps around use 0 as starting 22197 regno. 22198 221992021-06-24 Jakub Jelinek <jakub@redhat.com> 22200 22201 PR middle-end/101172 22202 * stor-layout.c (finish_bitfield_representative): If nextf has 22203 error_mark_node type, set repr type to error_mark_node too. 22204 222052021-06-24 Ilya Leoshkevich <iii@linux.ibm.com> 22206 22207 * config/s390/s390.c (s390_function_profiler): Ignore labelno 22208 parameter. 22209 * config/s390/s390.h (NO_PROFILE_COUNTERS): Define. 22210 222112021-06-24 Richard Biener <rguenther@suse.de> 22212 22213 * tree-vect-slp.c (vect_optimize_slp): Do not propagate 22214 across operations that have different semantics on different 22215 lanes. 22216 222172021-06-24 Jakub Jelinek <jakub@redhat.com> 22218 22219 * tree.h (OMP_CLAUSE_MAP_IN_REDUCTION): Document meaning for OpenMP. 22220 * gimplify.c (gimplify_scan_omp_clauses): For OpenMP map clauses 22221 with OMP_CLAUSE_MAP_IN_REDUCTION flag partially defer gimplification 22222 of non-decl OMP_CLAUSE_DECL. For OMP_CLAUSE_IN_REDUCTION on 22223 OMP_TARGET user outer_ctx instead of ctx for placeholders and 22224 initializer/combiner gimplification. 22225 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE_MAP_IN_REDUCTION 22226 on target constructs. 22227 (lower_rec_input_clauses): Likewise. 22228 (lower_omp_target): Likewise. 22229 * omp-expand.c (expand_omp_target): Temporarily ignore nowait clause 22230 on target if in_reduction is present. 22231 222322021-06-24 Kewen Lin <linkw@linux.ibm.com> 22233 22234 * tree-predcom.c (class pcom_worker): New class. 22235 (release_chain): Renamed to... 22236 (pcom_worker::release_chain): ...this. 22237 (release_chains): Renamed to... 22238 (pcom_worker::release_chains): ...this. 22239 (aff_combination_dr_offset): Renamed to... 22240 (pcom_worker::aff_combination_dr_offset): ...this. 22241 (determine_offset): Renamed to... 22242 (pcom_worker::determine_offset): ...this. 22243 (class comp_ptrs): New class. 22244 (split_data_refs_to_components): Renamed to... 22245 (pcom_worker::split_data_refs_to_components): ...this, 22246 and update with class comp_ptrs. 22247 (suitable_component_p): Renamed to... 22248 (pcom_worker::suitable_component_p): ...this. 22249 (filter_suitable_components): Renamed to... 22250 (pcom_worker::filter_suitable_components): ...this. 22251 (valid_initializer_p): Renamed to... 22252 (pcom_worker::valid_initializer_p): ...this. 22253 (find_looparound_phi): Renamed to... 22254 (pcom_worker::find_looparound_phi): ...this. 22255 (add_looparound_copies): Renamed to... 22256 (pcom_worker::add_looparound_copies): ...this. 22257 (determine_roots_comp): Renamed to... 22258 (pcom_worker::determine_roots_comp): ...this. 22259 (determine_roots): Renamed to... 22260 (pcom_worker::determine_roots): ...this. 22261 (single_nonlooparound_use): Renamed to... 22262 (pcom_worker::single_nonlooparound_use): ...this. 22263 (remove_stmt): Renamed to... 22264 (pcom_worker::remove_stmt): ...this. 22265 (execute_pred_commoning_chain): Renamed to... 22266 (pcom_worker::execute_pred_commoning_chain): ...this. 22267 (execute_pred_commoning): Renamed to... 22268 (pcom_worker::execute_pred_commoning): ...this. 22269 (struct epcc_data): New member worker. 22270 (execute_pred_commoning_cbck): Call execute_pred_commoning 22271 with pcom_worker pointer. 22272 (find_use_stmt): Renamed to... 22273 (pcom_worker::find_use_stmt): ...this. 22274 (find_associative_operation_root): Renamed to... 22275 (pcom_worker::find_associative_operation_root): ...this. 22276 (find_common_use_stmt): Renamed to... 22277 (pcom_worker::find_common_use_stmt): ...this. 22278 (combinable_refs_p): Renamed to... 22279 (pcom_worker::combinable_refs_p): ...this. 22280 (reassociate_to_the_same_stmt): Renamed to... 22281 (pcom_worker::reassociate_to_the_same_stmt): ...this. 22282 (stmt_combining_refs): Renamed to... 22283 (pcom_worker::stmt_combining_refs): ...this. 22284 (combine_chains): Renamed to... 22285 (pcom_worker::combine_chains): ...this. 22286 (try_combine_chains): Renamed to... 22287 (pcom_worker::try_combine_chains): ...this. 22288 (prepare_initializers_chain): Renamed to... 22289 (pcom_worker::prepare_initializers_chain): ...this. 22290 (prepare_initializers): Renamed to... 22291 (pcom_worker::prepare_initializers): ...this. 22292 (prepare_finalizers_chain): Renamed to... 22293 (pcom_worker::prepare_finalizers_chain): ...this. 22294 (prepare_finalizers): Renamed to... 22295 (pcom_worker::prepare_finalizers): ...this. 22296 (tree_predictive_commoning_loop): Renamed to... 22297 (pcom_worker::tree_predictive_commoning_loop): ...this, adjust 22298 some calls and remove some cleanup code. 22299 (tree_predictive_commoning): Adjusted to use pcom_worker instance. 22300 (static variable looparound_phis): Remove. 22301 (static variable name_expansions): Remove. 22302 223032021-06-24 Richard Biener <rguenther@suse.de> 22304 22305 * tree-vect-slp.c (slpg_vertex): New struct. 22306 (vect_slp_build_vertices): Adjust. 22307 (vect_optimize_slp): Likewise. Maintain an outgoing permute 22308 and a materialized one. 22309 223102021-06-24 Richard Biener <rguenther@suse.de> 22311 22312 PR tree-optimization/101105 22313 * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): 22314 Only ignore steps when they are equal or scalar order is preserved. 22315 223162021-06-24 liuhongt <hongtao.liu@intel.com> 22317 22318 PR target/98434 22319 * config/i386/i386-expand.c (ix86_expand_vec_interleave): 22320 Adjust comments for ix86_expand_vecop_qihi2. 22321 (ix86_expand_vecmul_qihi): Renamed to .. 22322 (ix86_expand_vecop_qihi2): Adjust function prototype to 22323 support shift operation, add static to definition. 22324 (ix86_expand_vec_shift_qihi_constant): Add static to definition. 22325 (ix86_expand_vecop_qihi): Call ix86_expand_vecop_qihi2 and 22326 ix86_expand_vec_shift_qihi_constant. 22327 * config/i386/i386-protos.h (ix86_expand_vecmul_qihi): Deleted. 22328 (ix86_expand_vec_shift_qihi_constant): Deleted. 22329 * config/i386/sse.md (VI12_256_512_AVX512VL): New mode 22330 iterator. 22331 (mulv8qi3): Call ix86_expand_vecop_qihi directly, add 22332 condition TARGET_64BIT. 22333 (mul<mode>3): Ditto. 22334 (<insn><mode>3): Ditto. 22335 (vlshr<mode>3): Extend to support avx512 vlshr. 22336 (v<insn><mode>3): New expander for 22337 vashr/vlshr/vashl. 22338 (v<insn>v8qi3): Ditto. 22339 (vashrv8hi3<mask_name>): Renamed to .. 22340 (vashr<mode>3): And extend to support V16QImode for avx512. 22341 (vashrv16qi3): Deleted. 22342 (vashrv2di3<mask_name>): Extend expander to support avx512 22343 instruction. 22344 223452021-06-23 Dimitar Dimitrov <dimitar@dinux.eu> 22346 22347 * doc/lto.texi (Design Overview): Update that slim objects are 22348 the default. 22349 223502021-06-23 Aaron Sawdey <acsawdey@linux.ibm.com> 22351 22352 * config/rs6000/rs6000-cpus.def: Take OPTION_MASK_PCREL_OPT out 22353 of OTHER_POWER10_MASKS so it will not be enabled by default. 22354 223552021-06-23 Richard Biener <rguenther@suse.de> 22356 Martin Jambor <mjambor@suse.cz> 22357 22358 * tree-inline.c (setup_one_parameter): Set TREE_READONLY of the 22359 param replacement unconditionally. Adjust comment. 22360 223612021-06-23 Andrew MacLeod <amacleod@redhat.com> 22362 22363 * Makefile.in (OBJS): Add gimple-range-fold.o 22364 * gimple-range-fold.cc: New. 22365 * gimple-range-fold.h: New. 22366 * gimple-range-gori.cc (gimple_range_calc_op1): Move to here. 22367 (gimple_range_calc_op2): Ditto. 22368 * gimple-range-gori.h: Move prototypes to here. 22369 * gimple-range.cc: Adjust include files. 22370 (fur_source:fur_source): Relocate to gimple-range-fold.cc. 22371 (fur_source::get_operand): Ditto. 22372 (fur_source::get_phi_operand): Ditto. 22373 (fur_source::query_relation): Ditto. 22374 (fur_source::register_relation): Ditto. 22375 (class fur_edge): Ditto. 22376 (fur_edge::fur_edge): Ditto. 22377 (fur_edge::get_operand): Ditto. 22378 (fur_edge::get_phi_operand): Ditto. 22379 (fur_stmt::fur_stmt): Ditto. 22380 (fur_stmt::get_operand): Ditto. 22381 (fur_stmt::get_phi_operand): Ditto. 22382 (fur_stmt::query_relation): Ditto. 22383 (class fur_depend): Relocate to gimple-range-fold.h. 22384 (fur_depend::fur_depend): Relocate to gimple-range-fold.cc. 22385 (fur_depend::register_relation): Ditto. 22386 (fur_depend::register_relation): Ditto. 22387 (class fur_list): Ditto. 22388 (fur_list::fur_list): Ditto. 22389 (fur_list::get_operand): Ditto. 22390 (fur_list::get_phi_operand): Ditto. 22391 (fold_range): Ditto. 22392 (adjust_pointer_diff_expr): Ditto. 22393 (gimple_range_adjustment): Ditto. 22394 (gimple_range_base_of_assignment): Ditto. 22395 (gimple_range_operand1): Ditto. 22396 (gimple_range_operand2): Ditto. 22397 (gimple_range_calc_op1): Relocate to gimple-range-gori.cc. 22398 (gimple_range_calc_op2): Ditto. 22399 (fold_using_range::fold_stmt): Relocate to gimple-range-fold.cc. 22400 (fold_using_range::range_of_range_op): Ditto. 22401 (fold_using_range::range_of_address): Ditto. 22402 (fold_using_range::range_of_phi): Ditto. 22403 (fold_using_range::range_of_call): Ditto. 22404 (fold_using_range::range_of_builtin_ubsan_call): Ditto. 22405 (fold_using_range::range_of_builtin_call): Ditto. 22406 (fold_using_range::range_of_cond_expr): Ditto. 22407 (fold_using_range::range_of_ssa_name_with_loop_info): Ditto. 22408 (fold_using_range::relation_fold_and_or): Ditto. 22409 (fold_using_range::postfold_gcond_edges): Ditto. 22410 * gimple-range.h: Add gimple-range-fold.h to include files. Change 22411 GIMPLE_RANGE_STMT_H to GIMPLE_RANGE_H. 22412 (gimple_range_handler): Relocate to gimple-range-fold.h. 22413 (gimple_range_ssa_p): Ditto. 22414 (range_compatible_p): Ditto. 22415 (class fur_source): Ditto. 22416 (class fur_stmt): Ditto. 22417 (class fold_using_range): Ditto. 22418 (gimple_range_calc_op1): Relocate to gimple-range-gori.h 22419 (gimple_range_calc_op2): Ditto. 22420 224212021-06-23 Andrew MacLeod <amacleod@redhat.com> 22422 22423 PR tree-optimization/101148 22424 PR tree-optimization/101014 22425 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust. 22426 (ranger_cache::~ranger_cache): Adjust. 22427 (ranger_cache::block_range): Check if propagation disallowed. 22428 (ranger_cache::propagate_cache): Disallow propagation if new value 22429 can't be stored properly. 22430 * gimple-range-cache.h (ranger_cache::m_propfail): New member. 22431 224322021-06-23 Andrew MacLeod <amacleod@redhat.com> 22433 22434 * gimple-range-cache.cc (class ssa_block_ranges): Adjust prototype. 22435 (sbr_vector::set_bb_range): Return true. 22436 (class sbr_sparse_bitmap): Adjust. 22437 (sbr_sparse_bitmap::set_bb_range): Return value. 22438 (block_range_cache::set_bb_range): Return value. 22439 (ranger_cache::propagate_cache): Use return value to print msg. 22440 * gimple-range-cache.h (class block_range_cache): Adjust. 22441 224422021-06-23 Andrew MacLeod <amacleod@redhat.com> 22443 22444 * gimple-range.cc (dump_bb): Use range_on_edge from the cache. 22445 224462021-06-23 Jeff Law <jeffreyalaw@gmail.com> 22447 22448 * config/h8300/logical.md (<code><mode>3<ccnz>): Use <cczn> 22449 so this pattern can be used for test/compare removal. Pass 22450 current insn to compute_logical_op_length and output_logical_op. 22451 * config/h8300/h8300.c (compute_logical_op_cc): Remove. 22452 (h8300_and_costs): Add argument to compute_logical_op_length. 22453 (output_logical_op): Add new argument. Use it to determine if the 22454 condition codes are used and adjust the output accordingly. 22455 (compute_logical_op_length): Add new argument and update length 22456 computations when condition codes are used. 22457 * config/h8300/h8300-protos.h (compute_logical_op_length): Update 22458 prototype. 22459 (output_logical_op): Likewise. 22460 224612021-06-23 Uro�� Bizjak <ubizjak@gmail.com> 22462 22463 PR target/89021 22464 * config/i386/i386-expand.c (expand_vec_perm_pshufb): 22465 Handle 64bit modes for TARGET_XOP. Use indirect gen_* functions. 22466 * config/i386/mmx.md (mmx_ppermv64): New insn pattern. 22467 * config/i386/i386.md (unspec): Move UNSPEC_XOP_PERMUTE from ... 22468 * config/i386/sse.md (unspec): ... here. 22469 224702021-06-23 Martin Liska <mliska@suse.cz> 22471 22472 PR target/98636 22473 * optc-save-gen.awk: Put back arm_fp16_format to 22474 checked_options. 22475 224762021-06-23 Uro�� Bizjak <ubizjak@gmail.com> 22477 22478 PR target/101175 22479 * config/i386/i386.md (bsr_rex64): Add zero-flag setting RTX. 22480 (bsr): Ditto. 22481 (*bsrhi): Remove. 22482 (clz<mode>2): Update RTX pattern for additions. 22483 224842021-06-23 Jakub Jelinek <jakub@redhat.com> 22485 22486 PR middle-end/101167 22487 * omp-low.c (lower_omp_regimplify_p): Regimplify also PARM_DECLs 22488 and RESULT_DECLs that have DECL_HAS_VALUE_EXPR_P set. 22489 224902021-06-22 Sergei Trofimovich <siarheit@google.com> 22491 22492 * doc/rtl.texi: drop unbalanced parenthesis. 22493 224942021-06-22 Richard Biener <rguenther@suse.de> 22495 22496 PR middle-end/101156 22497 * gimplify.c (gimplify_expr): Remove premature incorrect 22498 optimization. 22499 225002021-06-22 Jakub Jelinek <jakub@redhat.com> 22501 22502 PR tree-optimization/101159 22503 * tree-vect-patterns.c (vect_recog_popcount_pattern): Fix some 22504 comment typos. 22505 225062021-06-22 Jakub Jelinek <jakub@redhat.com> 22507 22508 PR middle-end/101160 22509 * function.c (assign_parms): For decl_result with TYPE_EMPTY_P type 22510 clear crtl->return_rtx instead of keeping it referencing a pseudo. 22511 225122021-06-22 Jakub Jelinek <jakub@redhat.com> 22513 Andrew Pinski <apinski@marvell.com> 22514 22515 PR tree-optimization/101162 22516 * fold-const.c (range_check_type): Handle OFFSET_TYPE like pointer 22517 types. 22518 225192021-06-22 Andrew MacLeod <amacleod@redhat.com> 22520 22521 * range-op.cc (range_relational_tests): New. 22522 (range_op_tests): Call range_relational_tests. 22523 225242021-06-22 Andrew MacLeod <amacleod@redhat.com> 22525 22526 * range-op.cc (operator_cast::lhs_op1_relation): New. 22527 (operator_identity::lhs_op1_relation): Mew. 22528 225292021-06-22 Andrew MacLeod <amacleod@redhat.com> 22530 22531 * range-op.cc (operator_minus::op1_op2_relation_effect): New. 22532 225332021-06-22 Andrew MacLeod <amacleod@redhat.com> 22534 22535 * range-op.cc (operator_plus::lhs_op1_relation): New. 22536 (operator_plus::lhs_op2_relation): New. 22537 225382021-06-22 Andrew MacLeod <amacleod@redhat.com> 22539 22540 * gimple-range-cache.cc (ranger_cache::ranger_cache): Create a 22541 relation_oracle if dominators exist. 22542 (ranger_cache::~ranger_cache): Dispose of oracle. 22543 (ranger_cache::dump_bb): Dump oracle. 22544 * gimple-range.cc (fur_source::fur_source): New. 22545 (fur_source::get_operand): Use mmeber query. 22546 (fur_source::get_phi_operand): Use member_query. 22547 (fur_source::query_relation): New. 22548 (fur_source::register_dependency): Delete. 22549 (fur_source::register_relation): New. 22550 (fur_edge::fur_edge): Adjust. 22551 (fur_edge::get_phi_operand): Fix comment. 22552 (fur_edge::query): Delete. 22553 (fur_stmt::fur_stmt): Adjust. 22554 (fur_stmt::query): Delete. 22555 (fur_depend::fur_depend): Adjust. 22556 (fur_depend::register_relation): New. 22557 (fur_depend::register_relation): New. 22558 (fur_list::fur_list): Adjust. 22559 (fur_list::get_operand): Use member query. 22560 (fold_using_range::range_of_range_op): Process and query relations. 22561 (fold_using_range::range_of_address): Adjust dependency call. 22562 (fold_using_range::range_of_phi): Ditto. 22563 (gimple_ranger::gimple_ranger): New. Use ranger_ache oracle. 22564 (fold_using_range::relation_fold_and_or): New. 22565 (fold_using_range::postfold_gcond_edges): New. 22566 * gimple-range.h (class gimple_ranger): Adjust. 22567 (class fur_source): Adjust members. 22568 (class fur_stmt): Ditto. 22569 (class fold_using_range): Ditto. 22570 225712021-06-22 Andrew MacLeod <amacleod@redhat.com> 22572 22573 * range-op.cc (range_operator::wi_fold): Apply relation effect. 22574 (range_operator::fold_range): Adjust and apply relation effect. 22575 (*::fold_range): Add relation parameters. 22576 (*::op1_range): Ditto. 22577 (*::op2_range): Ditto. 22578 (range_operator::lhs_op1_relation): New. 22579 (range_operator::lhs_op2_relation): New. 22580 (range_operator::op1_op2_relation): New. 22581 (range_operator::op1_op2_relation_effect): New. 22582 (relop_early_resolve): New. 22583 (operator_equal::op1_op2_relation): New. 22584 (operator_equal::fold_range): Call relop_early_resolve. 22585 (operator_not_equal::op1_op2_relation): New. 22586 (operator_not_equal::fold_range): Call relop_early_resolve. 22587 (operator_lt::op1_op2_relation): New. 22588 (operator_lt::fold_range): Call relop_early_resolve. 22589 (operator_le::op1_op2_relation): New. 22590 (operator_le::fold_range): Call relop_early_resolve. 22591 (operator_gt::op1_op2_relation): New. 22592 (operator_gt::fold_range): Call relop_early_resolve. 22593 (operator_ge::op1_op2_relation): New. 22594 (operator_ge::fold_range): Call relop_early_resolve. 22595 * range-op.h (class range_operator): Adjust parameters and methods. 22596 225972021-06-22 Andrew MacLeod <amacleod@redhat.com> 22598 22599 * Makefile.in (OBJS): Add value-relation.o. 22600 * gimple-range.h: Adjust include files. 22601 * tree-data-ref.c: Adjust include file order. 22602 * value-query.cc (range_query::get_value_range): Default to no oracle. 22603 (range_query::query_relation): New. 22604 (range_query::query_relation): New. 22605 * value-query.h (class range_query): Adjust. 22606 * value-relation.cc: New. 22607 * value-relation.h: New. 22608 226092021-06-22 Richard Biener <rguenther@suse.de> 22610 22611 PR tree-optimization/101151 22612 * tree-ssa-sink.c (statement_sink_location): Expand irreducible 22613 region check. 22614 226152021-06-22 Jojo R <rjiejie@linux.alibaba.com> 22616 22617 * config/riscv/riscv.c (thead_c906_tune_info): New. 22618 (riscv_tune_info_table): Use new tune. 22619 226202021-06-22 Richard Biener <rguenther@suse.de> 22621 22622 PR tree-optimization/101158 22623 * tree-vect-slp.c (vect_build_slp_tree_1): Move same operand 22624 checking after checking for matching operation. 22625 226262021-06-22 Richard Biener <rguenther@suse.de> 22627 22628 PR tree-optimization/101159 22629 * tree-vect-patterns.c (vect_recog_popcount_pattern): Add 22630 missing NULL vectype check. 22631 226322021-06-22 Richard Biener <rguenther@suse.de> 22633 22634 PR tree-optimization/101154 22635 * tree-vect-slp.c (vect_build_slp_tree_2): Fix out-of-bound access. 22636 226372021-06-22 Jakub Jelinek <jakub@redhat.com> 22638 22639 PR target/11877 22640 * config/i386/i386-protos.h (ix86_last_zero_store_uid): Declare. 22641 * config/i386/i386-expand.c (ix86_last_zero_store_uid): New variable. 22642 * config/i386/i386.c (ix86_expand_prologue): Clear it. 22643 * config/i386/i386.md (peephole2s for 1/2/4 stores of const0_rtx): 22644 Remove "" from match_operand. Emit new insns using emit_move_insn and 22645 set ix86_last_zero_store_uid to INSN_UID of the last store. 22646 Add peephole2s for 1/2/4 stores of const0_rtx following previous 22647 successful peep2s. 22648 226492021-06-22 Martin Liska <mliska@suse.cz> 22650 22651 * auto-profile.c (AUTO_PROFILE_VERSION): Bump as string format 22652 was changed. 22653 226542021-06-22 Martin Liska <mliska@suse.cz> 22655 22656 * gcov-io.h: Remove padding entries. 22657 226582021-06-22 liuhongt <hongtao.liu@intel.com> 22659 22660 PR tree-optimization/97770 22661 * tree-vect-patterns.c (vect_recog_popcount_pattern): 22662 New. 22663 (vect_recog_func vect_vect_recog_func_ptrs): Add new pattern. 22664 226652021-06-22 liuhongt <hongtao.liu@intel.com> 22666 22667 PR target/100267 22668 * config/i386/i386-builtin.def (BDESC): Adjust builtin name. 22669 * config/i386/sse.md (<avx512>_expand<mode>_mask): Rename to .. 22670 (expand<mode>_mask): this .. 22671 (*expand<mode>_mask): New pre_reload splitter to transform 22672 v{,p}expand* to vmov* when mask is zero, all ones, or has all 22673 ones in it's lower part, otherwise still generate 22674 v{,p}expand*. 22675 226762021-06-22 liuhongt <hongtao.liu@intel.com> 22677 22678 PR target/100310 22679 * config/i386/i386-expand.c 22680 (ix86_expand_special_args_builtin): Keep constm1_operand only 22681 if it satisfies insn's operand predicate. 22682 226832021-06-21 Jason Merrill <jason@redhat.com> 22684 22685 PR target/88529 22686 * df-scan.c (df_ref_record): Check that regno < endregno. 22687 * function.c (assign_parms, expand_function_end): Do nothing with a 22688 TYPE_EMPTY_P result. 22689 226902021-06-21 Richard Biener <rguenther@suse.de> 22691 22692 PR tree-optimization/101120 22693 * tree-vect-data-refs.c (bump_vector_ptr): Fold the 22694 built increment. 22695 * tree-vect-slp.c (vect_transform_slp_perm_load): Add 22696 DR chain DCE capability. 22697 * tree-vectorizer.h (vect_transform_slp_perm_load): Adjust. 22698 * tree-vect-stmts.c (vectorizable_load): Remove unused 22699 loads in the DR chain for SLP. 22700 227012021-06-21 Jakub Jelinek <jakub@redhat.com> 22702 22703 PR inline-asm/100785 22704 * gimplify.c (gimplify_asm_expr): Don't diagnose errors if 22705 output or input operands were already error_mark_node. 22706 * cfgexpand.c (expand_asm_stmt): If errors are emitted, 22707 remove all inputs, outputs and clobbers from the asm and 22708 set template to "". 22709 227102021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 22711 22712 * config/arm/arm_neon.h (vceq_s8): Replace builtin with __a == __b. 22713 (vceq_s16): Likewise. 22714 (vceq_s32): Likewise. 22715 (vceq_u8): Likewise. 22716 (vceq_u16): Likewise. 22717 (vceq_u32): Likewise. 22718 (vceq_p8): Likewise. 22719 (vceqq_s8): Likewise. 22720 (vceqq_s16): Likewise. 22721 (vceqq_s32): Likewise. 22722 (vceqq_u8): Likewise. 22723 (vceqq_u16): Likewise. 22724 (vceqq_u32): Likewise. 22725 (vceqq_p8): Likewise. 22726 (vceq_f32): Gate __a == __b on __FAST_MATH__. 22727 (vceqq_f32): Likewise. 22728 (vceq_f16): Likewise. 22729 (vceqq_f16): Likewise. 22730 227312021-06-21 prathamesh.kulkarni <prathamesh.kulkarni@linaro.org> 22732 22733 PR target/97906 22734 * config/arm/iterators.md (NEON_VACMP): Remove. 22735 * config/arm/neon.md (neon_vca<cmp_op><mode>): Use GLTE instead of GTGE 22736 iterator. 22737 (neon_vca<cmp_op><mode>_insn): Likewise. 22738 (neon_vca<cmp_op_unsp><mode>_insn_unspec): Use NEON_VAGLTE instead of 22739 NEON_VACMP. 22740 227412021-06-21 Richard Biener <rguenther@suse.de> 22742 22743 PR tree-optimization/101121 22744 * tree-vect-slp.c (vect_build_slp_tree_2): To not fail fatally 22745 when we just lack a stmt with the desired op when doing permutation. 22746 (vect_build_slp_tree): When caching a failed SLP build attempt 22747 assert that at least one lane is marked as not matching. 22748 227492021-06-21 liuhongt <hongtao.liu@intel.com> 22750 22751 PR target/101142 22752 * config/i386/i386.md: (*anddi_1): Disparage slightly the mask 22753 register alternative. 22754 (*and<mode>_1): Ditto. 22755 (*andqi_1): Ditto. 22756 (*andn<mode>_1): Ditto. 22757 (*<code><mode>_1): Ditto. 22758 (*<code>qi_1): Ditto. 22759 (*one_cmpl<mode>2_1): Ditto. 22760 (*one_cmplsi2_1_zext): Ditto. 22761 (*one_cmplqi2_1): Ditto. 22762 * config/i386/i386.c (x86_order_regs_for_local_alloc): Change 22763 the order of mask registers to be before general registers. 22764 227652021-06-21 Roger Sayle <roger@nextmovesoftware.com> 22766 22767 PR target/11877 22768 * config/i386/i386.md: New define_peephole2s to shrink writing 22769 1, 2 or 4 consecutive zeros to memory when optimizing for size. 22770 227712021-06-18 Jeff Law <jeffreyalaw@gmail.com> 22772 22773 * config/h8300/h8300.c (h8300_select_cc_mode): Handle SYMBOL_REF. 22774 * config/h8300/logical.md (<code><mode>3 logcial expander): Generate 22775 more efficient code when the source can be trivially simplified. 22776 227772021-06-18 Andrew MacLeod <amacleod@redhat.com> 22778 22779 * gimple-range-cache.cc (ranger_cache::range_of_def): Calculate 22780 a range if global is not available. 22781 (ranger_cache::entry_range): Fallback to range_of_def. 22782 * gimple-range-cache.h (range_of_def): Adjust prototype. 22783 227842021-06-18 Andrew MacLeod <amacleod@redhat.com> 22785 22786 PR tree-optimization/101014 22787 * gimple-range-cache.cc (ranger_cache::ranger_cache): Remove poor 22788 value list. 22789 (ranger_cache::~ranger_cache): Ditto. 22790 (ranger_cache::enable_new_values): Delete. 22791 (ranger_cache::push_poor_value): Delete. 22792 (ranger_cache::range_of_def): Remove poor value processing. 22793 (ranger_cache::entry_range): Ditto. 22794 (ranger_cache::fill_block_cache): Ditto. 22795 * gimple-range-cache.h (class ranger_cache): Remove poor value members. 22796 * gimple-range.cc (gimple_ranger::range_of_expr): Remove call. 22797 * gimple-range.h (class gimple_ranger): Adjust. 22798 227992021-06-18 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 22800 22801 PR target/100856 22802 * common/config/arm/arm-common.c (arm_canon_arch_option_1): New function 22803 derived from arm_canon_arch. 22804 (arm_canon_arch_option): Call it. 22805 (arm_canon_arch_multilib_option): New function. 22806 * config/arm/arm-cpus.in (IGNORE_FOR_MULTILIB): New fgroup. 22807 * config/arm/arm.h (arm_canon_arch_multilib_option): New prototype. 22808 (CANON_ARCH_MULTILIB_SPEC_FUNCTION): New macro. 22809 (MULTILIB_ARCH_CANONICAL_SPECS): New macro. 22810 (DRIVER_SELF_SPECS): Add MULTILIB_ARCH_CANONICAL_SPECS. 22811 * config/arm/arm.opt (mlibarch): New option. 22812 * config/arm/t-rmprofile (MULTILIB_MATCHES): For armv8*-m, replace use 22813 of march on RHS with mlibarch. 22814 228152021-06-18 Marcel Vollweiler <marcel@codesourcery.com> 22816 22817 * config.in: Regenerate. 22818 * config/gcn/gcn.c (print_operand_address): Fix for global_load assembler 22819 functions. 22820 * configure: Regenerate. 22821 * configure.ac: Fix for global_load assembler functions. 22822 228232021-06-18 Richard Biener <rguenther@suse.de> 22824 22825 PR tree-optimization/101112 22826 * tree-vect-slp.c (vect_slp_linearize_chain): Fix condition 22827 to lookup a pattern stmt def. 22828 228292021-06-18 Jakub Jelinek <jakub@redhat.com> 22830 22831 PR middle-end/101062 22832 * stor-layout.c (finish_bitfield_layout): Don't add bitfield 22833 representatives in QUAL_UNION_TYPE. 22834 228352021-06-18 Andrew Pinski <apinski@marvell.com> 22836 22837 * tree-ssa-phiopt.c (replace_phi_edge_with_variable): 22838 Add counting of how many times it is done. 22839 (factor_out_conditional_conversion): Likewise. 22840 (match_simplify_replacement): Likewise. 22841 (value_replacement): Likewise. 22842 (spaceship_replacement): Likewise. 22843 (cond_store_replacement): Likewise. 22844 (cond_if_else_store_replacement_1): Likewise. 22845 (hoist_adjacent_loads): Likewise. 22846 228472021-06-18 Andrew Pinski <apinski@marvell.com> 22848 22849 * tree-cfg.c (verify_gimple_assign_unary): Reject point and offset 22850 types on NEGATE_EXPR, ABS_EXPR, BIT_NOT_EXPR, PAREN_EXPR and CNONJ_EXPR. 22851 (verify_gimple_assign_binary): Reject point and offset types on 22852 MULT_EXPR, MULT_HIGHPART_EXPR, TRUNC_DIV_EXPR, CEIL_DIV_EXPR, 22853 FLOOR_DIV_EXPR, ROUND_DIV_EXPR, TRUNC_MOD_EXPR, CEIL_MOD_EXPR, 22854 FLOOR_MOD_EXPR, ROUND_MOD_EXPR, RDIV_EXPR, and EXACT_DIV_EXPR. 22855 228562021-06-18 Michael Meissner <meissner@linux.ibm.com> 22857 22858 * config/rs6000/rs6000.c (rs6000_emit_minmax): Add support for ISA 22859 3.1 IEEE 128-bit floating point xsmaxcqp/xsmincqp instructions. 22860 * config/rs6000/rs6000.md (s<minmax><mode>3, IEEE128 iterator): 22861 New insns. 22862 228632021-06-17 Aaron Sawdey <acsawdey@linux.ibm.com> 22864 22865 * config/rs6000/genfusion.pl (gen_logical_addsubf): Add 22866 earlyclobber to alts 0/1. 22867 (gen_addadd): Add earlyclobber to alts 0/1. 22868 * config/rs6000/fusion.md: Regenerate file. 22869 228702021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> 22871 22872 * cfgloopanal.c (get_loop_hot_path): Make path an auto_vec. 22873 228742021-06-17 Andrew MacLeod <amacleod@redhat.com> 22875 22876 * gimple-range-cache.cc: Comment cleanups. 22877 * gimple-range-gori.cc: Comment cleanups. 22878 * gimple-range.cc: Comment/spacing cleanups 22879 * value-range.h: Comment cleanups. 22880 228812021-06-17 H.J. Lu <hjl.tools@gmail.com> 22882 22883 PR target/100704 22884 * calls.c (expand_call): Replace PUSH_ARGS with 22885 targetm.calls.push_argument (0). 22886 (emit_library_call_value_1): Likewise. 22887 * defaults.h (PUSH_ARGS): Removed. 22888 (PUSH_ARGS_REVERSED): Replace PUSH_ARGS with 22889 targetm.calls.push_argument (0). 22890 * expr.c (block_move_libcall_safe_for_call_parm): Likewise. 22891 (emit_push_insn): Pass the number bytes to push to 22892 targetm.calls.push_argument and pass 0 if ARGS_ADDR is 0. 22893 * hooks.c (hook_bool_uint_true): New. 22894 * hooks.h (hook_bool_uint_true): Likewise. 22895 * rtlanal.c (nonzero_bits1): Replace PUSH_ARGS with 22896 targetm.calls.push_argument (0). 22897 * target.def (push_argument): Add a targetm.calls hook. 22898 * targhooks.c (default_push_argument): New. 22899 * targhooks.h (default_push_argument): Likewise. 22900 * config/bpf/bpf.h (PUSH_ARGS): Removed. 22901 * config/cr16/cr16.c (TARGET_PUSH_ARGUMENT): New. 22902 * config/cr16/cr16.h (PUSH_ARGS): Removed. 22903 * config/i386/i386.c (ix86_push_argument): New. 22904 (TARGET_PUSH_ARGUMENT): Likewise. 22905 * config/i386/i386.h (PUSH_ARGS): Removed. 22906 * config/m32c/m32c.c (TARGET_PUSH_ARGUMENT): New. 22907 * config/m32c/m32c.h (PUSH_ARGS): Removed. 22908 * config/nios2/nios2.h (PUSH_ARGS): Likewise. 22909 * config/pru/pru.h (PUSH_ARGS): Likewise. 22910 * doc/tm.texi.in: Remove PUSH_ARGS documentation. Add 22911 TARGET_PUSH_ARGUMENT hook. 22912 * doc/tm.texi: Regenerated. 22913 229142021-06-17 Uro�� Bizjak <ubizjak@gmail.com> 22915 22916 PR target/97194 22917 * config/i386/i386-expand.c (expand_vector_set_var): 22918 Handle V2FS mode remapping. Pass TARGET_MMX_WITH_SSE to 22919 ix86_expand_vector_init_duplicate. 22920 (ix86_expand_vector_init_duplicate): Emit insv_1 for 22921 QImode for !TARGET_PARTIAL_REG_STALL. 22922 * config/i386/predicates.md (vec_setm_mmx_operand): New predicate. 22923 * config/i386/mmx.md (vec_setv2sf): Use vec_setm_mmx_operand 22924 as operand 2 predicate. Call ix86_expand_vector_set_var 22925 for non-constant index operand. 22926 (vec_setv2si): Ditto. 22927 (vec_setv4hi): Ditto. 22928 (vec_setv8qi): ditto. 22929 229302021-06-17 Aldy Hernandez <aldyh@redhat.com> 22931 22932 PR tree-optimization/100790 22933 * gimple-range.cc (range_of_builtin_call): Cleanup clz and ctz 22934 code. 22935 229362021-06-17 Martin Liska <mliska@suse.cz> 22937 22938 * doc/invoke.texi: Use consistently -O1 instead of -O. 22939 229402021-06-17 Martin Liska <mliska@suse.cz> 22941 22942 * gcov-io.h: Update documentation entry about string format. 22943 229442021-06-17 Marius Hillenbrand <mhillen@linux.ibm.com> 22945 22946 PR target/100871 22947 * config/s390/vecintrin.h (vec_doublee): Fix to use 22948 __builtin_s390_vflls. 22949 (vec_floate): Fix to use __builtin_s390_vflrd. 22950 229512021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> 22952 22953 * dominance.c (get_dominated_to_depth): Return auto_vec<basic_block>. 22954 * dominance.h (get_dominated_to_depth): Likewise. 22955 (get_all_dominated_blocks): Likewise. 22956 * cfgcleanup.c (delete_unreachable_blocks): Adjust. 22957 * gcse.c (hoist_code): Likewise. 22958 * tree-cfg.c (remove_edge_and_dominated_blocks): Likewise. 22959 * tree-parloops.c (oacc_entry_exit_ok): Likewise. 22960 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise. 22961 * tree-ssa-phiprop.c (pass_phiprop::execute): Likewise. 22962 229632021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> 22964 22965 * dominance.c (get_dominated_by_region): Return auto_vec<basic_block>. 22966 * dominance.h (get_dominated_by_region): Likewise. 22967 * tree-cfg.c (gimple_duplicate_sese_region): Adjust. 22968 (gimple_duplicate_sese_tail): Likewise. 22969 (move_sese_region_to_fn): Likewise. 22970 229712021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> 22972 22973 * dominance.c (get_dominated_by): Return auto_vec<basic_block>. 22974 * dominance.h (get_dominated_by): Likewise. 22975 * auto-profile.c (afdo_find_equiv_class): Adjust. 22976 * cfgloopmanip.c (duplicate_loop_to_header_edge): Likewise. 22977 * loop-unroll.c (unroll_loop_runtime_iterations): Likewise. 22978 * tree-cfg.c (test_linear_chain): Likewise. 22979 (test_diamond): Likewise. 22980 229812021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> 22982 22983 * cfgloop.h (get_loop_hot_path): Return auto_vec<basic_block>. 22984 * cfgloopanal.c (get_loop_hot_path): Likewise. 22985 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Likewise. 22986 229872021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> 22988 22989 * cgraph.c (cgraph_node::collect_callers): Return 22990 auto_vec<cgraph_edge *>. 22991 * cgraph.h (cgraph_node::collect_callers): Likewise. 22992 * ipa-cp.c (create_specialized_node): Adjust. 22993 (decide_about_value): Likewise. 22994 (decide_whether_version_node): Likewise. 22995 * ipa-sra.c (process_isra_node_results): Likewise. 22996 229972021-06-17 Trevor Saunders <tbsaunde@tbsaunde.org> 22998 22999 * vec.h (vl_ptr>::using_auto_storage): Handle null m_vec. 23000 (auto_vec<T, 0>::auto_vec): Define move constructor, and delete copy 23001 constructor. 23002 (auto_vec<T, 0>::operator=): Define move assignment and delete copy 23003 assignment. 23004 230052021-06-17 Aldy Hernandez <aldyh@redhat.com> 23006 23007 * gimple-range.cc (debug_seed_ranger): New. 23008 (dump_ranger): New. 23009 (debug_ranger): New. 23010 230112021-06-17 Richard Biener <rguenther@suse.de> 23012 23013 PR tree-optimization/54400 23014 * tree-vectorizer.h (enum slp_instance_kind): Add 23015 slp_inst_kind_bb_reduc. 23016 (reduction_fn_for_scalar_code): Declare. 23017 * tree-vect-data-refs.c (vect_slp_analyze_instance_dependence): 23018 Check SLP_INSTANCE_KIND instead of looking at the 23019 representative. 23020 (vect_slp_analyze_instance_alignment): Likewise. 23021 * tree-vect-loop.c (reduction_fn_for_scalar_code): Export. 23022 * tree-vect-slp.c (vect_slp_linearize_chain): Split out 23023 chain linearization from vect_build_slp_tree_2 and generalize 23024 for the use of BB reduction vectorization. 23025 (vect_build_slp_tree_2): Adjust accordingly. 23026 (vect_optimize_slp): Elide permutes at the root of BB reduction 23027 instances. 23028 (vectorizable_bb_reduc_epilogue): New function. 23029 (vect_slp_prune_covered_roots): Likewise. 23030 (vect_slp_analyze_operations): Use them. 23031 (vect_slp_check_for_constructors): Recognize associatable 23032 chains for BB reduction vectorization. 23033 (vectorize_slp_instance_root_stmt): Generate code for the 23034 BB reduction epilogue. 23035 230362021-06-17 Andrew MacLeod <amacleod@redhat.com> 23037 23038 * gimple-range-gori.cc (gori_compute::has_edge_range_p): Check with 23039 may_recompute_p. 23040 (gori_compute::may_recompute_p): New. 23041 (gori_compute::outgoing_edge_range_p): Perform recomputations. 23042 * gimple-range-gori.h (class gori_compute): Add prototype. 23043 230442021-06-17 Andrew MacLeod <amacleod@redhat.com> 23045 23046 * gimple-range-cache.cc (ranger_cache::range_on_edge): Always return 23047 true when a range can be calculated. 23048 * gimple-range.cc (gimple_ranger::dump_bb): Check has_edge_range_p. 23049 230502021-06-16 Martin Sebor <msebor@redhat.com> 23051 23052 * doc/invoke.texi (-Wmismatched-dealloc, -Wmismatched-new-delete): 23053 Correct documented defaults. 23054 230552021-06-16 Andrew MacLeod <amacleod@redhat.com> 23056 23057 * gimple-range-cache.cc (ranger_cache::ranger_cache): Initialize 23058 m_new_value_p directly. 23059 230602021-06-16 Uro�� Bizjak <ubizjak@gmail.com> 23061 23062 PR target/89021 23063 * config/i386/i386-expand.c (expand_vec_perm_2perm_pblendv): 23064 Handle 64bit modes for TARGET_SSE4_1. 23065 (expand_vec_perm_pshufb2): Handle 64bit modes for TARGET_SSSE3. 23066 (expand_vec_perm_even_odd_pack): Handle V4HI mode. 23067 (expand_vec_perm_even_odd_1) <case E_V4HImode>: Expand via 23068 expand_vec_perm_pshufb2 for TARGET_SSSE3 and via 23069 expand_vec_perm_even_odd_pack for TARGET_SSE4_1. 23070 * config/i386/mmx.md (mmx_packusdw): New insn pattern. 23071 230722021-06-16 Jonathan Wright <jonathan.wright@arm.com> 23073 23074 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn<mode>): 23075 Change to an expander that emits the correct instruction 23076 depending on endianness. 23077 (aarch64_<sur><addsub>hn<mode>_insn_le): Define. 23078 (aarch64_<sur><addsub>hn<mode>_insn_be): Define. 23079 230802021-06-16 Jonathan Wright <jonathan.wright@arm.com> 23081 23082 * config/aarch64/aarch64-simd-builtins.def: Split generator 23083 for aarch64_<su>qmovn builtins into scalar and vector 23084 variants. 23085 * config/aarch64/aarch64-simd.md (aarch64_<su>qmovn<mode>_insn_le): 23086 Define. 23087 (aarch64_<su>qmovn<mode>_insn_be): Define. 23088 (aarch64_<su>qmovn<mode>): Split into scalar and vector 23089 variants. Change vector variant to an expander that emits the 23090 correct instruction depending on endianness. 23091 230922021-06-16 Jonathan Wright <jonathan.wright@arm.com> 23093 23094 * config/aarch64/aarch64-simd-builtins.def: Split generator 23095 for aarch64_sqmovun builtins into scalar and vector variants. 23096 * config/aarch64/aarch64-simd.md (aarch64_sqmovun<mode>): 23097 Split into scalar and vector variants. Change vector variant 23098 to an expander that emits the correct instruction depending 23099 on endianness. 23100 (aarch64_sqmovun<mode>_insn_le): Define. 23101 (aarch64_sqmovun<mode>_insn_be): Define. 23102 231032021-06-16 Jonathan Wright <jonathan.wright@arm.com> 23104 23105 * config/aarch64/aarch64-simd.md (aarch64_xtn<mode>_insn_le): 23106 Define - modeling zero-high-half semantics. 23107 (aarch64_xtn<mode>): Change to an expander that emits the 23108 appropriate instruction depending on endianness. 23109 (aarch64_xtn<mode>_insn_be): Define - modeling zero-high-half 23110 semantics. 23111 (aarch64_xtn2<mode>_le): Rename to... 23112 (aarch64_xtn2<mode>_insn_le): This. 23113 (aarch64_xtn2<mode>_be): Rename to... 23114 (aarch64_xtn2<mode>_insn_be): This. 23115 (vec_pack_trunc_<mode>): Emit truncation instruction instead 23116 of aarch64_xtn. 23117 * config/aarch64/iterators.md (Vnarrowd): Add Vnarrowd mode 23118 attribute iterator. 23119 231202021-06-16 Martin Jambor <mjambor@suse.cz> 23121 23122 PR tree-optimization/100453 23123 * tree-sra.c (create_access): Disqualify any const candidates 23124 which are written to. 23125 (sra_modify_expr): Do not store sub-replacements back to a const base. 23126 (handle_unscalarized_data_in_subtree): Likewise. 23127 (sra_modify_assign): Likewise. Earlier, use TREE_READONLy test 23128 instead of constant_decl_p. 23129 231302021-06-16 Jakub Jelinek <jakub@redhat.com> 23131 23132 PR middle-end/101062 23133 * stor-layout.c (finish_bitfield_representative): For fields in unions 23134 assume nextf is always NULL. 23135 (finish_bitfield_layout): Compute bit field representatives also in 23136 unions, but handle it as if each bitfield was the only field in the 23137 aggregate. 23138 231392021-06-16 Richard Biener <rguenther@suse.de> 23140 23141 PR tree-optimization/101088 23142 * tree-ssa-loop-im.c (sm_seq_valid_bb): Only look for 23143 supported refs on edges. Do not assert same ref but 23144 different kind stores are unsuported but mark them so. 23145 (hoist_memory_references): Only look for supported refs 23146 on exits. 23147 231482021-06-16 Roger Sayle <roger@nextmovesoftware.com> 23149 23150 PR rtl-optimization/46235 23151 * config/i386/i386.md: New define_split for bt followed by cmov. 23152 (*bt<mode>_setcqi): New define_insn_and_split for bt followed by setc. 23153 (*bt<mode>_setncqi): New define_insn_and_split for bt then setnc. 23154 (*bt<mode>_setnc<mode>): New define_insn_and_split for bt followed 23155 by setnc with zero extension. 23156 231572021-06-16 Richard Biener <rguenther@suse.de> 23158 23159 PR tree-optimization/101083 23160 * tree-vect-slp.c (vect_slp_build_two_operator_nodes): Get 23161 vectype as argument. 23162 (vect_build_slp_tree_2): Adjust. 23163 231642021-06-15 Martin Sebor <msebor@redhat.com> 23165 23166 PR middle-end/100876 23167 * builtins.c: (gimple_call_return_array): Account for size_t 23168 mangling as either unsigned int or unsigned long 23169 231702021-06-15 Jeff Law <jeffreyalaw@gmail.com> 23171 23172 * compare-elim.c (try_eliminate_compare): Run DCE to clean things 23173 up before eliminating comparisons. 23174 231752021-06-15 Aldy Hernandez <aldyh@redhat.com> 23176 23177 * range-op.cc (operator_bitwise_or::wi_fold): Make sure 23178 nonzero|X is nonzero. 23179 (range_op_bitwise_and_tests): Add tests for above. 23180 231812021-06-15 Carl Love <cel@us.ibm.com> 23182 23183 PR target/101022 23184 * config/rs6000/rs6000-builtin.def (VCMPEQUT): Fix the ICODE for the 23185 enum definition. 23186 (VRLQ, VSLQ, VSRQ, VSRAQ): Remove unused BU_P10_OVERLOAD_2 23187 definitions. 23188 231892021-06-15 Tobias Burnus <tobias@codesourcery.com> 23190 23191 PR fortran/92568 23192 * gimplify.c (enum gimplify_defaultmap_kind): Add GDMK_SCALAR_TARGET. 23193 (struct gimplify_omp_ctx): Extend defaultmap array by one. 23194 (new_omp_context): Init defaultmap[GDMK_SCALAR_TARGET]. 23195 (omp_notice_variable): Update type classification for Fortran. 23196 (gimplify_scan_omp_clauses): Update calls for new argument; handle 23197 GDMK_SCALAR_TARGET; for Fortran, GDMK_POINTER avoid GOVD_MAP_0LEN_ARRAY. 23198 * langhooks-def.h (lhd_omp_scalar_p): Add 'ptr_ok' argument. 23199 * langhooks.c (lhd_omp_scalar_p): Likewise. 23200 (LANG_HOOKS_OMP_ALLOCATABLE_P, LANG_HOOKS_OMP_SCALAR_TARGET_P): New. 23201 (LANG_HOOKS_DECLS): Add them. 23202 * langhooks.h (struct lang_hooks_for_decls): Add new hooks, update 23203 omp_scalar_p pointer type to include the new bool argument. 23204 232052021-06-15 David Malcolm <dmalcolm@redhat.com> 23206 23207 * doc/analyzer.texi 23208 (Special Functions for Debugging the Analyzer): Add 23209 __analyzer_dump_capacity. 23210 232112021-06-15 Jakub Jelinek <jakub@redhat.com> 23212 23213 PR target/101046 23214 * expr.c (expand_expr_real_2) <case VEC_PACK_FIX_TRUNC_EXPR, 23215 case VEC_PACK_TRUNC_EXPR>: Clear subtarget when changing mode. 23216 232172021-06-15 Richard Biener <rguenther@suse.de> 23218 23219 * cfgloopanal.c (mark_irreducible_loops): Use a dominance 23220 check to identify loop latches. 23221 * cfgloop.c (verify_loop_structure): Likewise. 23222 * loop-init.c (apply_loop_flags): Allow marked irreducible 23223 regions even with multiple latches. 23224 * predict.c (rebuild_frequencies): Simplify. 23225 232262021-06-15 Richard Biener <rguenther@suse.de> 23227 23228 * tree-ssa-threadupdate.c 23229 (jump_thread_path_registry::mark_threaded_blocks): Assert we 23230 have marked irreducible regions. 23231 232322021-06-14 Martin Sebor <msebor@redhat.com> 23233 23234 PR c++/100876 23235 * builtins.c (gimple_call_return_array): Check for attribute fn spec. 23236 Handle calls to placement new. 23237 (ndecl_dealloc_argno): Avoid placement delete. 23238 232392021-06-14 Peter Bergner <bergner@linux.ibm.com> 23240 23241 PR target/100777 23242 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_mma_builtin): Use 23243 create_tmp_reg_or_ssa_name(). 23244 232452021-06-14 Andrew MacLeod <amacleod@redhat.com> 23246 23247 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust. 23248 (ranger_cache::enable_new_values): Set to specified value and 23249 return the old value. 23250 (ranger_cache::disable_new_values): Delete. 23251 (ranger_cache::fill_block_cache): Disable non 1st order derived 23252 poor values. 23253 * gimple-range-cache.h (ranger_cache): Adjust prototypes. 23254 * gimple-range.cc (gimple_ranger::range_of_expr): Adjust. 23255 232562021-06-14 Uro�� Bizjak <ubizjak@gmail.com> 23257 23258 PR target/101058 23259 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): 23260 Return true early when testing with V2HImode. 23261 * config/i386/mmx.md (*punpckwd): Split to sse2_pshuflw_1. 23262 232632021-06-14 Christophe Lyon <christophe.lyon@linaro.org> 23264 23265 * config/arm/mve.md (mve_vec_unpack<US>_lo_<mode>): New pattern. 23266 (mve_vec_unpack<US>_hi_<mode>): New pattern. 23267 (@mve_vec_pack_trunc_lo_<mode>): New pattern. 23268 (mve_vmovntq_<supf><mode>): Prefix with '@'. 23269 * config/arm/neon.md (vec_unpack<US>_hi_<mode>): Move to 23270 vec-common.md. 23271 (vec_unpack<US>_lo_<mode>): Likewise. 23272 (vec_pack_trunc_<mode>): Rename to 23273 neon_quad_vec_pack_trunc_<mode>. 23274 * config/arm/vec-common.md (vec_unpack<US>_hi_<mode>): New 23275 pattern. 23276 (vec_unpack<US>_lo_<mode>): New. 23277 (vec_pack_trunc_<mode>): New. 23278 232792021-06-14 Richard Biener <rguenther@suse.de> 23280 23281 PR tree-optimization/100934 23282 * tree-ssa-dom.c (pass_dominator::execute): Properly 23283 mark irreducible regions. 23284 232852021-06-14 Martin Liska <mliska@suse.cz> 23286 23287 * doc/invoke.texi: Put r{...} on the same line as @item. 23288 232892021-06-14 Martin Liska <mliska@suse.cz> 23290 23291 * doc/invoke.texi: Add missing newline. 23292 232932021-06-14 Martin Liska <mliska@suse.cz> 23294 23295 * doc/invoke.texi: Remove '+' charasters. 23296 232972021-06-14 Claudiu Zissulescu <claziss@synopsys.com> 23298 23299 * config.gcc (arc): Add support for with_cpu option. 23300 * config/arc/arc.h (OPTION_DEFAULT_SPECS): Add fpu. 23301 233022021-06-14 Richard Biener <rguenther@suse.de> 23303 23304 PR tree-optimization/101031 23305 * tree-ssa-strlen.c (maybe_invalidate): Increment max_size 23306 instead of size when accounting for a possibly string 23307 terminating nul. 23308 233092021-06-14 Martin Liska <mliska@suse.cz> 23310 23311 * gimple-ssa-evrp.c (pointer_equiv_analyzer::~pointer_equiv_analyzer): Use delete[]. 23312 233132021-06-14 Aldy Hernandez <aldyh@redhat.com> 23314 23315 * value-query.cc (gimple_range_global): Call get_range_global 23316 if called after inlining. 23317 233182021-06-13 Uro�� Bizjak <ubizjak@gmail.com> 23319 23320 PR target/101021 23321 * config/i386/i386-expand.c (expand_vec_perm_pshufb): 23322 Emit constant permutation insn directly from here. 23323 233242021-06-13 Trevor Saunders <tbsaunde@tbsaunde.org> 23325 23326 * attribs.c (find_attribute_namespace): Iterate over vec<> with 23327 range based for. 23328 * auto-profile.c (afdo_find_equiv_class): Likewise. 23329 * gcc.c (do_specs_vec): Likewise. 23330 (do_spec_1): Likewise. 23331 (driver::set_up_specs): Likewise. 23332 * gimple-loop-jam.c (any_access_function_variant_p): Likewise. 23333 * gimple-ssa-store-merging.c (compatible_load_p): Likewise. 23334 (imm_store_chain_info::try_coalesce_bswap): Likewise. 23335 (imm_store_chain_info::coalesce_immediate_stores): Likewise. 23336 (get_location_for_stmts): Likewise. 23337 * graphite-poly.c (print_iteration_domains): Likewise. 23338 (free_poly_bb): Likewise. 23339 (remove_gbbs_in_scop): Likewise. 23340 (free_scop): Likewise. 23341 (dump_gbb_cases): Likewise. 23342 (dump_gbb_conditions): Likewise. 23343 (print_pdrs): Likewise. 23344 (print_scop): Likewise. 23345 * ifcvt.c (cond_move_process_if_block): Likewise. 23346 * lower-subreg.c (decompose_multiword_subregs): Likewise. 23347 * regcprop.c (pass_cprop_hardreg::execute): Likewise. 23348 * sanopt.c (sanitize_rewrite_addressable_params): Likewise. 23349 * sel-sched-dump.c (dump_insn_vector): Likewise. 23350 * store-motion.c (store_ops_ok): Likewise. 23351 (store_killed_in_insn): Likewise. 23352 * timevar.c (timer::named_items::print): Likewise. 23353 * tree-cfgcleanup.c (cleanup_control_flow_pre): Likewise. 23354 (cleanup_tree_cfg_noloop): Likewise. 23355 * tree-data-ref.c (dump_data_references): Likewise. 23356 (print_dir_vectors): Likewise. 23357 (print_dist_vectors): Likewise. 23358 (dump_data_dependence_relations): Likewise. 23359 (dump_dist_dir_vectors): Likewise. 23360 (dump_ddrs): Likewise. 23361 (create_runtime_alias_checks): Likewise. 23362 (free_subscripts): Likewise. 23363 (save_dist_v): Likewise. 23364 (save_dir_v): Likewise. 23365 (invariant_access_functions): Likewise. 23366 (same_access_functions): Likewise. 23367 (access_functions_are_affine_or_constant_p): Likewise. 23368 (find_data_references_in_stmt): Likewise. 23369 (graphite_find_data_references_in_stmt): Likewise. 23370 (free_dependence_relations): Likewise. 23371 (free_data_refs): Likewise. 23372 * tree-inline.c (copy_debug_stmts): Likewise. 23373 * tree-into-ssa.c (dump_currdefs): Likewise. 23374 (rewrite_update_phi_arguments): Likewise. 23375 * tree-ssa-propagate.c (clean_up_loop_closed_phi): Likewise. 23376 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): 23377 Likewise. 23378 (vect_slp_analyze_node_dependences): Likewise. 23379 (vect_slp_analyze_instance_dependence): Likewise. 23380 (vect_record_base_alignments): Likewise. 23381 (vect_get_peeling_costs_all_drs): Likewise. 23382 (vect_peeling_supportable): Likewise. 23383 * tree-vectorizer.c (vec_info::~vec_info): Likewise. 23384 (vec_info::free_stmt_vec_infos): Likewise. 23385 233862021-06-13 Jeff Law <jeffreyalaw@gmail.com> 23387 23388 * config/h8300/logical.md (<code>qi3_1<cczn>): New pattern. 23389 (andqi3_1<cczn>): Removed. 23390 (<ors>qi3_1): Do not split for IOR/XOR a single bit. 23391 (H8/SX bit logicals): Split out from other patterns. 23392 * config/h8300/multiply.md (mulqihi3_const<cczn>): Renamed from 23393 mulqihi3_const_clobber_flags. 23394 (mulqihi3<cczn>, mulhisi3_const<cczn>, mulhisi3<cczn>): Similarly 23395 233962021-06-13 H.J. Lu <hjl.tools@gmail.com> 23397 23398 PR target/101023 23399 * config/i386/i386.c (ix86_expand_prologue): Set red_zone_used 23400 to true if red zone is used. 23401 (ix86_output_indirect_jmp): Replace ix86_red_zone_size with 23402 ix86_red_zone_used. 23403 * config/i386/i386.h (machine_function): Add red_zone_used. 23404 (ix86_red_zone_size): Removed. 23405 (ix86_red_zone_used): New. 23406 * config/i386/i386.md (peephole2 patterns): Replace 23407 ix86_red_zone_size with ix86_red_zone_used. 23408 234092021-06-12 Jason Merrill <jason@redhat.com> 23410 23411 * doc/extend.texi (unused variable attribute): Applies to 23412 structure fields as well. 23413 234142021-06-12 Eugene Rozenfeld <erozen@microsoft.com> 23415 23416 * auto-profile.c (read_profile): fix a typo in an error string 23417 234182021-06-11 Thomas Schwinge <thomas@codesourcery.com> 23419 23420 * tree-pretty-print.h (dump_omp_clauses): Add 'bool = true' 23421 default argument. 23422 * tree-pretty-print.c (dump_omp_clauses): Update. 23423 (dump_generic_node) <OMP_CLAUSE>: Use it. 23424 234252021-06-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 23426 23427 PR target/101016 23428 * config/arm/arm_mve.h (__arm_vld1q): Change __ARM_mve_coerce(p0, 23429 int8_t const *) to __ARM_mve_coerce1(p0, int8_t *) in the argument for 23430 the polymorphic variants matching code. 23431 (__arm_vld1q_z): Likewise. 23432 (__arm_vld2q): Likewise. 23433 (__arm_vld4q): Likewise. 23434 (__arm_vldrbq_gather_offset): Likewise. 23435 (__arm_vldrbq_gather_offset_z): Likewise. 23436 234372021-06-11 Roger Sayle <roger@nextmovesoftware.com> 23438 23439 PR tree-optimization/96392 23440 * fold-const.h (tree_expr_maybe_real_minus_zero_p): Fix prototype. 23441 234422021-06-11 Roger Sayle <roger@nextmovesoftware.com> 23443 23444 PR tree-optimization/96392 23445 * fold-const.c (fold_real_zero_addition_p): Take both arguments 23446 of the addition or subtraction, not just the zero. Use this 23447 other argument in tests for signaling NaNs and signed zeros. 23448 (tree_expr_maybe_real_minus_zero_p): New predicate. 23449 * fold-const.h (fold_real_zero_addition_p): Update prototype. 23450 (tree_expr_maybe_real_minus_zero_p): New function prototype. 23451 * match.pd: Update calls to fold_real_zero_addition_p. 23452 Replace HONOR_NANS with tree_expr_maybe_nan_p. 23453 Replace HONOR_SIGNED_ZEROS with tree_expr_maybe_real_minus_zero_p. 23454 Replace HONOR_SNANS with tree_expr_maybe_signaling_nan_p. 23455 * tree-ssa-reassoc.c (eliminate_using_constants): Update 23456 call to fold_real_zero_addition_p. 23457 234582021-06-11 Richard Biener <rguenther@suse.de> 23459 23460 PR tree-optimization/101025 23461 * tree-ssa-loop-im.c (sm_seq_valid_bb): Make sure to process 23462 all refs that require dependence checking. 23463 234642021-06-11 Richard Biener <rguenther@suse.de> 23465 23466 PR tree-optimization/101028 23467 * tree-vect-slp.c (vect_build_slp_tree_2): When SLP 23468 reassoc discovery fails fatally, mark appropriate lanes 23469 in matches[] so. 23470 234712021-06-11 Richard Biener <rguenther@suse.de> 23472 23473 PR tree-optimization/101026 23474 * tree-vect-slp.c (vect_build_slp_tree_2): Make sure we 23475 have a representative for the associated chain nodes. 23476 234772021-06-11 Jakub Jelinek <jakub@redhat.com> 23478 23479 PR rtl-optimization/101008 23480 * simplify-rtx.c (relational_result): New function. 23481 (simplify_logical_relational_operation, 23482 simplify_relational_operation): Use it. 23483 234842021-06-11 Jakub Jelinek <jakub@redhat.com> 23485 23486 PR target/101007 23487 * config/i386/sse.md (*vec_concat<mode>_0_1): Require TARGET_SSE2. 23488 234892021-06-11 Uro�� Bizjak <ubizjak@gmail.com> 23490 23491 PR target/101021 23492 * config/i386/i386-expand.c (expand_vec_perm_pshufb): Return 23493 false if the permutation can be implemented with constant 23494 permutation instruction in wider mode. 23495 (canonicalize_vector_int_perm): Move above expand_vec_perm_pshufb. 23496 Handle V8QImode and V4HImode. 23497 234982021-06-11 Martin Liska <mliska@suse.cz> 23499 23500 PR gcov-profile/100788 23501 * common.opt: Add new option. 23502 * coverage.c (coverage_begin_function): Emit warning instead on 23503 the internal compiler error. 23504 * doc/invoke.texi: Document the option. 23505 * toplev.c (process_options): Enable it by default. 23506 235072021-06-11 Richard Biener <rguenther@suse.de> 23508 23509 PR middle-end/101009 23510 * tree-data-ref.c (build_classic_dist_vector_1): Make sure 23511 to set *init_b to true when we encounter a constant equal 23512 index pair. 23513 (compute_affine_dependence): Also dump the actual DR_REF. 23514 235152021-06-10 Aldy Hernandez <aldyh@redhat.com> 23516 23517 PR tree-optimization/100984 23518 * gimple-ssa-evrp.c (ssa_equiv_stack): Use auto_vec for 23519 replacements table. 23520 (ssa_equiv_stack::~ssa_equiv_stack): Remove. 23521 235222021-06-11 Kewen Lin <linkw@linux.ibm.com> 23523 23524 * config/rs6000/rs6000.md 23525 (floatsi<SFDF:mode>2_lfiwax_<QHI:mode>_mem_zext): New 23526 define_insn_and_split. 23527 235282021-06-11 Richard Biener <rguenther@suse.de> 23529 23530 * tree-vect-slp.c (vect_build_slp_tree_2): Use stablesort 23531 to sort operands of the associative chain. 23532 235332021-06-11 Richard Biener <rguenther@suse.de> 23534 23535 * system.h (gcc_stablesort_r): Declare. 23536 * sort.cc (gcc_sort_r): Support stable sort. 23537 (gcc_stablesort_r): Define. 23538 * vec.h (vec<>::stablesort): Add. 23539 235402021-06-10 Uro�� Bizjak <ubizjak@gmail.com> 23541 23542 PR target/89021 23543 * config/i386/i386-expand.c (ix86_split_mmx_punpck): 23544 Handle V2SF mode. Emit SHUFPS to fixup unpack-high for V2SF mode. 23545 (expand_vec_perm_blend): Handle 64bit modes for TARGET_SSE4_1. 23546 (expand_vec_perm_pshufb): Handle 64bit modes for TARGET_SSSE3. 23547 (expand_vec_perm_pblendv): Handle 64bit modes for TARGET_SSE4_1. 23548 (expand_vec_perm_interleave2): Handle 64bit modes. 23549 (expand_vec_perm_even_odd_pack): Handle V8QI mode. 23550 (expand_vec_perm_even_odd_1): Ditto. 23551 (ix86_vectorize_vec_perm_const): Ditto. 23552 * config/i386/i386.md (UNSPEC_PSHUFB): Move from ... 23553 * config/i386/sse.md: ... here. 23554 * config/i386/mmx.md (*vec_interleave_lowv2sf): 23555 New insn_and_split pattern. 23556 (*vec_interleave_highv2sf): Ditto. 23557 (mmx_pshufbv8qi3): New insn pattern. 23558 (*mmx_pblendw): Ditto. 23559 235602021-06-10 Peter Bergner <bergner@linux.ibm.com> 23561 23562 * config/rs6000/rs6000-builtin.def (build_pair): New built-in. 23563 (build_acc): Likewise. 23564 * config/rs6000/rs6000-call.c (mma_expand_builtin): Swap assemble 23565 source operands in little-endian mode. 23566 (rs6000_gimple_fold_mma_builtin): Handle VSX_BUILTIN_BUILD_PAIR. 23567 (mma_init_builtins): Likewise. 23568 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Handle endianness 23569 ordering for the MMA assemble and build source operands. 23570 * doc/extend.texi (__builtin_vsx_build_acc, __builtin_mma_build_pair): 23571 Document. 23572 (__builtin_mma_assemble_acc, __builtin_mma_assemble_pair): Remove 23573 documentation. 23574 235752021-06-10 Jeff Law <jeffreyalaw@gmail.com> 23576 23577 * config/h8300/h8300.c (select_cc_mode): Handle MEM. Use 23578 REG_P. 23579 * config/h8300/extensions.md: Replace _clobber_flags patterns 23580 with <cczn>. 23581 235822021-06-10 Robin Dapp <rdapp@linux.ibm.com> 23583 23584 * config/s390/vector.md (vcond_mask_<mode><mode>): Change to 23585 (vcond_mask_<mode><tointvec>): this. 23586 235872021-06-10 Andrew Stubbs <ams@codesourcery.com> 23588 Thomas Schwinge <thomas@codesourcery.com> 23589 23590 * omp-builtins.def (BUILT_IN_GOACC_ENTER_EXIT_DATA): Split into... 23591 (BUILT_IN_GOACC_ENTER_DATA, BUILT_IN_GOACC_EXIT_DATA): ... these. 23592 * gimple.h (enum gf_mask): Split 23593 'GF_OMP_TARGET_KIND_OACC_ENTER_EXIT_DATA' into 23594 'GF_OMP_TARGET_KIND_OACC_ENTER_DATA' and 23595 'GF_OMP_TARGET_KIND_OACC_EXIT_DATA'. 23596 (is_gimple_omp_oacc): Update. 23597 * gimple-pretty-print.c (dump_gimple_omp_target): Likewise. 23598 * gimplify.c (gimplify_omp_target_update): Likewise. 23599 * omp-expand.c (expand_omp_target, build_omp_regions_1) 23600 (omp_make_gimple_edges): Likewise. 23601 * omp-low.c (check_omp_nesting_restrictions, lower_omp_target): 23602 Likewise. 23603 236042021-06-10 Aldy Hernandez <aldyh@redhat.com> 23605 23606 * value-query.cc (value_query::value_on_edge): Rename name to 23607 expr. 23608 (range_query::range_on_edge): Same. 23609 (range_query::value_of_expr): Same. 23610 (range_query::value_on_edge): Same. 23611 * value-query.h (class value_query): Same. 23612 (class range_query): Same. 23613 236142021-06-10 Richard Biener <rguenther@suse.de> 23615 23616 PR tree-optimization/101003 23617 * tree-vect-slp.c (vect_build_slp_tree_2): Appropriately 23618 use the pattern stmt defs when linearizing a chain. 23619 236202021-06-10 Jakub Jelinek <jakub@redhat.com> 23621 23622 PR debug/100852 23623 * ifcvt.c (noce_get_alt_condition, noce_try_abs): Use 23624 prev_nonnote_nondebug_insn instead of prev_nonnote_insn. 23625 236262021-06-10 Clement Chigot <clement.chigot@atos.net> 23627 23628 * config/rs6000/aix71.h (ASM_CPU_SPEC): Add Power10 directive. 23629 * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. 23630 236312021-06-09 Andrew Pinski <apinski@marvell.com> 23632 23633 PR tree-optimization/100925 23634 * match.pd (a ? CST1 : CST2): Limit transformations 23635 that would produce a negative to integeral types only. 23636 Change !POINTER_TYPE_P to INTEGRAL_TYPE_P also. 23637 236382021-06-09 Jeff Law <jeffreyalaw@gmail.com> 23639 23640 Revert: 23641 2021-06-09 Jeff Law <jeffreyalaw@gmail.com> 23642 23643 * doc/tm.texi: Correctly update. 23644 236452021-06-09 Jeff Law <jeffreyalaw@gmail.com> 23646 23647 * doc/tm.texi: Correctly update. 23648 236492021-06-09 H.J. Lu <hjl.tools@gmail.com> 23650 23651 PR other/100735 23652 * doc/tm.texi.in (Trampolines): Add a missing blank line. 23653 236542021-06-09 Paul Eggert <eggert@cs.ucla.edu> 23655 23656 PR other/100735 23657 * doc/invoke.texi (Code Gen Options); Document that -fno-trampolines 23658 and -ftrampolines work only with Ada. 23659 * doc/tm.texi.in (Trampolines): Likewise. 23660 * doc/tm.texi: Regenerated. 23661 236622021-06-09 Carl Love <cel@us.ibm.com> 23663 23664 * config/rs6000/altivec.h (vec_signextll, vec_signexti, vec_signextq): 23665 Add define for new builtins. 23666 * config/rs6000/altivec.md(altivec_vreveti2): Add define_expand. 23667 * config/rs6000/rs6000-builtin.def (VSIGNEXTI, VSIGNEXTLL): Add 23668 overloaded builtin definitions. 23669 (VSIGNEXTSB2W, VSIGNEXTSH2W, VSIGNEXTSB2D, VSIGNEXTSH2D,VSIGNEXTSW2D, 23670 VSIGNEXTSD2Q): Add builtin expansions. 23671 (SIGNEXT): Add P10 overload definition. 23672 * config/rs6000/rs6000-call.c (P9V_BUILTIN_VEC_VSIGNEXTI, P9V_BUILTIN_VEC_VSIGNEXTLL, 23673 P10_BUILTIN_VEC_SIGNEXT): Add overloaded argument definitions. 23674 * config/rs6000/vsx.md (vsx_sign_extend_v2di_v1ti): Add define_insn. 23675 (vsignextend_v2di_v1ti, vsignextend_qi_<mode>, vsignextend_hi_<mode>, 23676 vsignextend_si_v2di)[VIlong]: Add define_expand. 23677 Make define_insn vsx_sign_extend_si_v2di visible. 23678 * doc/extend.texi: Add documentation for the vec_signexti, 23679 vec_signextll builtins and vec_signextq. 23680 236812021-06-09 Carl Love <cel@us.ibm.com> 23682 23683 * config/rs6000/rs6000.c (__fixkfti, __fixunskfti, __floattikf, 23684 __floatuntikf): Names changed to __fixkfti_sw, __fixunskfti_sw, 23685 __floattikf_sw, __floatuntikf_sw respectively. 23686 * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2, 23687 fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add 23688 define_insn for mode IEEE 128. 23689 236902021-06-09 Carl Love <cel@us.ibm.com> 23691 23692 * config/rs6000/altivec.md (altivec_vslq, altivec_vsrq): 23693 Rename to altivec_vslq_<mode>, altivec_vsrq_<mode>, mode VEC_TI. 23694 * config/rs6000/vector.md (VEC_TI): Was named VSX_TI in vsx.md. 23695 (vashlv1ti3): Change to vashl<mode>3, mode VEC_TI. 23696 (vlshrv1ti3): Change to vlshr<mode>3, mode VEC_TI. 23697 * config/rs6000/vsx.md (VSX_TI): Remove define_mode_iterator. Update 23698 uses of VSX_TI to VEC_TI. 23699 237002021-06-09 Carl Love <cel@us.ibm.com> 23701 23702 * config/rs6000/dfp.md (floattitd2, fixtdti2): New define_insns. 23703 237042021-06-09 Carl Love <cel@us.ibm.com> 23705 23706 * config/rs6000/altivec.h (vec_dive, vec_mod): Add define for new 23707 builtins. 23708 * config/rs6000/altivec.md (UNSPEC_VMULEUD, UNSPEC_VMULESD, 23709 UNSPEC_VMULOUD, UNSPEC_VMULOSD): New unspecs. 23710 (altivec_eqv1ti, altivec_gtv1ti, altivec_gtuv1ti, altivec_vmuleud, 23711 altivec_vmuloud, altivec_vmulesd, altivec_vmulosd, altivec_vrlq, 23712 altivec_vrlqmi, altivec_vrlqmi_inst, altivec_vrlqnm, 23713 altivec_vrlqnm_inst, altivec_vslq, altivec_vsrq, altivec_vsraq, 23714 altivec_vcmpequt_p, altivec_vcmpgtst_p, altivec_vcmpgtut_p): New 23715 define_insn. 23716 (vec_widen_umult_even_v2di, vec_widen_smult_even_v2di, 23717 vec_widen_umult_odd_v2di, vec_widen_smult_odd_v2di, altivec_vrlqmi, 23718 altivec_vrlqnm): New define_expands. 23719 * config/rs6000/rs6000-builtin.def (VCMPEQUT_P, VCMPGTST_P, 23720 VCMPGTUT_P): Add macro expansions. 23721 (BU_P10V_AV_P): Add builtin predicate definition. 23722 (VCMPGTUT, VCMPGTST, VCMPEQUT, CMPNET, CMPGE_1TI, 23723 CMPGE_U1TI, CMPLE_1TI, CMPLE_U1TI, VNOR_V1TI_UNS, VNOR_V1TI, VCMPNET_P, 23724 VCMPAET_P, VMULEUD, VMULESD, VMULOUD, VMULOSD, VRLQ, 23725 VSLQ, VSRQ, VSRAQ, VRLQNM, DIV_V1TI, UDIV_V1TI, DIVES_V1TI, DIVEU_V1TI, 23726 MODS_V1TI, MODU_V1TI, VRLQMI): New macro expansions. 23727 (VRLQ, VSLQ, VSRQ, VSRAQ, DIVE, MOD): New overload expansions. 23728 * config/rs6000/rs6000-call.c (P10_BUILTIN_VCMPEQUT, 23729 P10V_BUILTIN_CMPGE_1TI, P10V_BUILTIN_CMPGE_U1TI, 23730 P10V_BUILTIN_VCMPGTUT, P10V_BUILTIN_VCMPGTST, 23731 P10V_BUILTIN_CMPLE_1TI, P10V_BUILTIN_VCMPLE_U1TI, 23732 P10V_BUILTIN_DIV_V1TI, P10V_BUILTIN_UDIV_V1TI, 23733 P10V_BUILTIN_VMULESD, P10V_BUILTIN_VMULEUD, 23734 P10V_BUILTIN_VMULOSD, P10V_BUILTIN_VMULOUD, 23735 P10V_BUILTIN_VNOR_V1TI, P10V_BUILTIN_VNOR_V1TI_UNS, 23736 P10V_BUILTIN_VRLQ, P10V_BUILTIN_VRLQMI, 23737 P10V_BUILTIN_VRLQNM, P10V_BUILTIN_VSLQ, 23738 P10V_BUILTIN_VSRQ, P10V_BUILTIN_VSRAQ, 23739 P10V_BUILTIN_VCMPGTUT_P, P10V_BUILTIN_VCMPGTST_P, 23740 P10V_BUILTIN_VCMPEQUT_P, P10V_BUILTIN_VCMPGTUT_P, 23741 P10V_BUILTIN_VCMPGTST_P, P10V_BUILTIN_CMPNET, 23742 P10V_BUILTIN_VCMPNET_P, P10V_BUILTIN_VCMPAET_P, 23743 P10V_BUILTIN_DIVES_V1TI, P10V_BUILTIN_MODS_V1TI, 23744 P10V_BUILTIN_MODU_V1TI): 23745 New overloaded definitions. 23746 (rs6000_gimple_fold_builtin) [P10V_BUILTIN_VCMPEQUT, 23747 P10V_BUILTIN_CMPNET, P10V_BUILTIN_CMPGE_1TI, 23748 P10V_BUILTIN_CMPGE_U1TI, P10V_BUILTIN_VCMPGTUT, 23749 P10V_BUILTIN_VCMPGTST, P10V_BUILTIN_CMPLE_1TI, 23750 P10V_BUILTIN_CMPLE_U1TI]: New case statements. 23751 (rs6000_init_builtins) [bool_V1TI_type_node, int_ftype_int_v1ti_v1ti]: 23752 New assignments. 23753 (altivec_init_builtins): New E_V1TImode case statement. 23754 (builtin_function_type)[P10_BUILTIN_128BIT_VMULEUD, 23755 P10_BUILTIN_128BIT_VMULOUD, P10_BUILTIN_128BIT_DIVEU_V1TI, 23756 P10_BUILTIN_128BIT_MODU_V1TI, P10_BUILTIN_CMPGE_U1TI, 23757 P10_BUILTIN_VCMPGTUT, P10_BUILTIN_VCMPEQUT]: New case statements. 23758 * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute) [E_TImode, 23759 E_V1TImode]: New case statements. 23760 * config/rs6000/rs6000.h (rs6000_builtin_type_index): New enum 23761 value RS6000_BTI_bool_V1TI. 23762 * config/rs6000/vector.md (vector_gtv1ti,vector_nltv1ti, 23763 vector_gtuv1ti, vector_nltuv1ti, vector_ngtv1ti, vector_ngtuv1ti, 23764 vector_eq_v1ti_p, vector_ne_v1ti_p, vector_ae_v1ti_p, 23765 vector_gt_v1ti_p, vector_gtu_v1ti_p, vrotlv1ti3, vashlv1ti3, 23766 vlshrv1ti3, vashrv1ti3): New define_expands. 23767 * config/rs6000/vsx.md (UNSPEC_VSX_DIVSQ, UNSPEC_VSX_DIVUQ, 23768 UNSPEC_VSX_DIVESQ, UNSPEC_VSX_DIVEUQ, UNSPEC_VSX_MODSQ, 23769 UNSPEC_VSX_MODUQ): New unspecs. 23770 (mulv2di3, vsx_div_v1ti, vsx_udiv_v1ti, vsx_dives_v1ti, 23771 vsx_diveu_v1ti, vsx_mods_v1ti, vsx_modu_v1ti, xxswapd_v1ti): New 23772 define_insns. 23773 (vcmpnet): New define_expand. 23774 * doc/extend.texi: Add documentation for the new builtins vec_rl, 23775 vec_rlmi, vec_rlnm, vec_sl, vec_sr, vec_sra, vec_mule, vec_mulo, 23776 vec_div, vec_dive, vec_mod, vec_cmpeq, vec_cmpne, vec_cmpgt, vec_cmplt, 23777 vec_cmpge, vec_cmple, vec_all_eq, vec_all_ne, vec_all_gt, vec_all_lt, 23778 vec_all_ge, vec_all_le, vec_any_eq, vec_any_ne, vec_any_gt, vec_any_lt, 23779 vec_any_ge, vec_any_le. 23780 237812021-06-09 Carl Love <cel@us.ibm.com> 23782 23783 * config/rs6000/altivec.md (altivec_vrl<VI_char>mi): Fix 23784 bug in argument generation. 23785 237862021-06-09 Christophe Lyon <christophe.lyon@linaro.org> 23787 23788 * config/arm/iterators.md (<supf>): Remove VCLZQ_U, VCLZQ_S. 23789 (VCLZQ): Remove. 23790 * config/arm/mve.md (mve_vclzq_<supf><mode>): Add '@' prefix, 23791 remove <supf> iterator. 23792 (mve_vclzq_u<mode>): New. 23793 * config/arm/neon.md (clz<mode>2): Rename to neon_vclz<mode>. 23794 (neon_vclz<mode): Move to ... 23795 * config/arm/unspecs.md (VCLZQ_U, VCLZQ_S): Remove. 23796 * config/arm/vec-common.md: ... here. Add support for MVE. 23797 237982021-06-09 Christophe Lyon <christophe.lyon@linaro.org> 23799 23800 * config/arm/mve.md (mve_vhaddq_<supf><mode>): Prefix with '@'. 23801 (@mve_vrhaddq_<supf><mode): Likewise. 23802 * config/arm/neon.md (neon_v<r>hadd<sup><mode>): Likewise. 23803 * config/arm/vec-common.md (avg<mode>3_floor, uavg<mode>3_floor) 23804 (avg<mode>3_ceil", uavg<mode>3_ceil): New patterns. 23805 238062021-06-09 imba-tjd <109224573@qq.com> 23807 23808 * doc/invoke.texi: Fix typo. 23809 238102021-06-09 Roger Sayle <roger@nextmovesoftware.com> 23811 23812 PR middle-end/53267 23813 * fold-const-call.c (fold_const_call_sss) [CASE_CFN_FMOD]: 23814 Support evaluation of fmod/fmodf/fmodl at compile-time. 23815 238162021-06-09 Richard Biener <rguenther@suse.de> 23817 23818 PR tree-optimization/100981 23819 * tree-vect-loop.c (vect_create_epilog_for_reduction): Use 23820 gimple_get_lhs to also handle calls. 23821 * tree-vect-slp-patterns.c (complex_pattern::build): Transfer 23822 reduction info. 23823 238242021-06-09 Richard Biener <rguenther@suse.de> 23825 23826 PR tree-optimization/97832 23827 * tree-vectorizer.h (_slp_tree::failed): New. 23828 * tree-vect-slp.c (_slp_tree::_slp_tree): Initialize 23829 failed member. 23830 (_slp_tree::~_slp_tree): Free failed. 23831 (vect_build_slp_tree): Retain failed nodes and record 23832 matches in them, copying that back out when running 23833 into a cached fail. Dump start and end of discovery. 23834 (dt_sort_cmp): New. 23835 (vect_build_slp_tree_2): Handle associatable chains 23836 together doing more aggressive operand swapping. 23837 238382021-06-09 H.J. Lu <hjl.tools@gmail.com> 23839 23840 PR target/100896 23841 * config.gcc (gcc_cv_initfini_array): Set to yes for Linux and 23842 GNU targets. 23843 * doc/install.texi: Require glibc 2.1 and binutils 2.12 for 23844 Linux and GNU targets. 23845 238462021-06-09 Richard Biener <rguenther@suse.de> 23847 23848 * tree-vect-stmts.c (vect_is_simple_use): Always get dt 23849 from the stmt. 23850 238512021-06-09 Claudiu Zissulescu <claziss@synopsys.com> 23852 23853 * config/arc/arc.md (loop_end): Change it to 23854 define_insn_and_split. 23855 238562021-06-09 Claudiu Zissulescu <claziss@synopsys.com> 23857 23858 * config/arc/arc.md (maddhisi4): Use VMAC2H instruction. 23859 (machi): New pattern. 23860 (umaddhisi4): Use VMAC2HU instruction. 23861 (umachi): New pattern. 23862 238632021-06-09 Claudiu Zissulescu <claziss@synopsys.com> 23864 23865 * config/arc/arc-protos.h (arc_split_move_p): New prototype. 23866 * config/arc/arc.c (arc_split_move_p): New function. 23867 (arc_split_move): Clean up. 23868 * config/arc/arc.md (movdi_insn): Clean up, use arc_split_move_p. 23869 (movdf_insn): Likewise. 23870 * config/arc/simdext.md (mov<VWH>_insn): Likewise. 23871 238722021-06-09 Uro�� Bizjak <ubizjak@gmail.com> 23873 23874 PR target/100936 23875 * config/i386/i386.c (print_operand_address_as): Rename "no_rip" 23876 argument to "raw". Do not emit segment overrides when "raw" is true. 23877 238782021-06-09 Martin Liska <mliska@suse.cz> 23879 23880 * doc/gcov.texi: Create a proper JSON files. 23881 * doc/invoke.texi: Remove dots in order to make it a valid 23882 JSON object. 23883 238842021-06-09 Xionghu Luo <luoxhu@linux.ibm.com> 23885 23886 * config/rs6000/rs6000-p8swap.c (pattern_is_rotate64): New. 23887 (insn_is_load_p): Use pattern_is_rotate64. 23888 (insn_is_swap_p): Likewise. 23889 (quad_aligned_load_p): Likewise. 23890 (const_load_sequence_p): Likewise. 23891 (replace_swapped_aligned_load): Likewise. 23892 (recombine_lvx_pattern): Likewise. 23893 (recombine_stvx_pattern): Likewise. 23894 238952021-06-09 Andrew MacLeod <amacleod@redhat.com> 23896 23897 * gimple-range-gori.cc (gori_compute::outgoing_edge_range_p): Use a 23898 fur_stmt source record. 23899 * gimple-range.cc (fur_source::get_operand): Generic range query. 23900 (fur_source::get_phi_operand): New. 23901 (fur_source::register_dependency): New. 23902 (fur_source::query): New. 23903 (class fur_edge): New. Edge source for operands. 23904 (fur_edge::fur_edge): New. 23905 (fur_edge::get_operand): New. 23906 (fur_edge::get_phi_operand): New. 23907 (fur_edge::query): New. 23908 (fur_stmt::fur_stmt): New. 23909 (fur_stmt::get_operand): New. 23910 (fur_stmt::get_phi_operand): New. 23911 (fur_stmt::query): New. 23912 (class fur_depend): New. Statement source and process dependencies. 23913 (fur_depend::fur_depend): New. 23914 (fur_depend::register_dependency): New. 23915 (class fur_list): New. List source for operands. 23916 (fur_list::fur_list): New. 23917 (fur_list::get_operand): New. 23918 (fur_list::get_phi_operand): New. 23919 (fold_range): New. Instantiate appropriate fur_source class and fold. 23920 (fold_using_range::range_of_range_op): Use new API. 23921 (fold_using_range::range_of_address): Ditto. 23922 (fold_using_range::range_of_phi): Ditto. 23923 (imple_ranger::fold_range_internal): Use fur_depend class. 23924 (fold_using_range::range_of_ssa_name_with_loop_info): Use new API. 23925 * gimple-range.h (class fur_source): Now a base class. 23926 (class fur_stmt): New. 23927 (fold_range): New prototypes. 23928 (fur_source::fur_source): Delete. 23929 239302021-06-08 Andrew Pinski <apinski@marvell.com> 23931 23932 PR tree-optimization/25290 23933 * tree-ssa-phiopt.c (xor_replacement): Delete. 23934 (tree_ssa_phiopt_worker): Delete use of xor_replacement. 23935 (match_simplify_replacement): Allow one cheap preparation 23936 statement that can be moved to before the if. 23937 239382021-06-08 Pat Haugen <pthaugen@linux.ibm.com> 23939 23940 * config/rs6000/power10.md (power10-fused-load, power10-fused-store, 23941 power10-fused_alu, power10-fused-vec, power10-fused-branch): New. 23942 239432021-06-08 Jeff Law <jeffreyalaw@gmail.com> 23944 23945 * config/h8300/logical.md (andqi3_1): Move BCLR case into define_insn_and_split. 23946 Create length attribute on define_insn_and_split. Only split for cases which we 23947 know will use AND. 23948 (andqi3_1<cczn>): Renamed from andqi3_1_clobber_flags. Only handle AND here and 23949 fix length computation. 23950 (b<code><mode>msx): Combine QImode and HImode H8/SX patterns using iterator. 23951 239522021-06-08 Richard Biener <rguenther@suse.de> 23953 23954 PR tree-optimization/100923 23955 * tree-ssa-sccvn.c (valueize_refs_1): Take a pointer to 23956 the operand vector to be valueized. 23957 (valueize_refs): Likewise. 23958 (valueize_shared_reference_ops_from_ref): Adjust. 23959 (valueize_shared_reference_ops_from_call): Likewise. 23960 (vn_reference_lookup_3): Likewise. 23961 (vn_reference_lookup_pieces): Likewise. Re-valueize 23962 with honoring availability when we are about to create 23963 the ao_ref and valueized before. 23964 (vn_reference_lookup): Likewise. 23965 (vn_reference_insert_pieces): Adjust. 23966 239672021-06-08 Richard Biener <rguenther@suse.de> 23968 23969 * tree-vectorizer.h (_slp_instance::root_stmt): Change to... 23970 (_slp_instance::root_stmts): ... a vector. 23971 (SLP_INSTANCE_ROOT_STMT): Rename to ... 23972 (SLP_INSTANCE_ROOT_STMTS): ... this. 23973 (slp_root::root): Change to... 23974 (slp_root::roots): ... a vector. 23975 (slp_root::slp_root): Adjust. 23976 * tree-vect-slp.c (_slp_instance::location): Adjust. 23977 (vect_free_slp_instance): Release the root stmt vector. 23978 (vect_build_slp_instance): Adjust. 23979 (vect_analyze_slp): Likewise. 23980 (_bb_vec_info::~_bb_vec_info): Likewise. 23981 (vect_slp_analyze_operations): Likewise. 23982 (vect_bb_vectorization_profitable_p): Likewise. Adjust 23983 costs for the root stmt. 23984 (vect_slp_check_for_constructors): Gather all BIT_INSERT_EXPRs 23985 as root stmts. 23986 (vect_slp_analyze_bb_1): Simplify by marking all root stmts 23987 as pure_slp. 23988 (vectorize_slp_instance_root_stmt): Adjust. 23989 (vect_schedule_slp): Likewise. 23990 239912021-06-08 Aldy Hernandez <aldyh@redhat.com> 23992 23993 * gimple-ssa-evrp.c (class ssa_equiv_stack): New. 23994 (ssa_equiv_stack::ssa_equiv_stack): New. 23995 (ssa_equiv_stack::~ssa_equiv_stack): New. 23996 (ssa_equiv_stack::enter): New. 23997 (ssa_equiv_stack::leave): New. 23998 (ssa_equiv_stack::push_replacement): New. 23999 (ssa_equiv_stack::get_replacement): New. 24000 (is_pointer_ssa): New. 24001 (class pointer_equiv_analyzer): New. 24002 (pointer_equiv_analyzer::pointer_equiv_analyzer): New. 24003 (pointer_equiv_analyzer::~pointer_equiv_analyzer): New. 24004 (pointer_equiv_analyzer::set_global_equiv): New. 24005 (pointer_equiv_analyzer::set_cond_equiv): New. 24006 (pointer_equiv_analyzer::get_equiv): New. 24007 (pointer_equiv_analyzer::enter): New. 24008 (pointer_equiv_analyzer::leave): New. 24009 (pointer_equiv_analyzer::get_equiv_expr): New. 24010 (pta_valueize): New. 24011 (pointer_equiv_analyzer::visit_stmt): New. 24012 (pointer_equiv_analyzer::visit_edge): New. 24013 (hybrid_folder::value_of_expr): Call PTA. 24014 (hybrid_folder::value_on_edge): Same. 24015 (hybrid_folder::pre_fold_bb): New. 24016 (hybrid_folder::post_fold_bb): New. 24017 (hybrid_folder::pre_fold_stmt): New. 24018 (rvrp_folder::pre_fold_bb): New. 24019 (rvrp_folder::post_fold_bb): New. 24020 (rvrp_folder::pre_fold_stmt): New. 24021 (rvrp_folder::value_of_expr): Call PTA. 24022 (rvrp_folder::value_on_edge): Same. 24023 240242021-06-08 Jakub Jelinek <jakub@redhat.com> 24025 24026 PR c++/100957 24027 * tree-inline.c (copy_tree_body_r): For OMP_CLAUSE_DEPEND don't 24028 check TREE_CODE if OMP_CLAUSE_DECL is NULL. 24029 240302021-06-08 Richard Biener <rguenther@suse.de> 24031 24032 PR middle-end/100951 24033 * tree-vect-generic.c (expand_vector_piecewise): Build a 24034 VECTOR_CST if all elements are constant. 24035 (expand_vector_condition): Likewise. 24036 (lower_vec_perm): Likewise. 24037 (expand_vector_conversion): Likewise. 24038 240392021-06-08 Martin Liska <mliska@suse.cz> 24040 24041 * doc/invoke.texi: Document new param evrp-sparse-threshold. 24042 240432021-06-08 Martin Liska <mliska@suse.cz> 24044 24045 * genautomata.c (create_automata): Fix typo. 24046 240472021-06-08 Kewen Lin <linkw@linux.ibm.com> 24048 24049 PR tree-optimization/100794 24050 * tree-predcom.c (tree_predictive_commoning_loop): Add parameter 24051 allow_unroll_p and only allow unrolling when it's true. 24052 (tree_predictive_commoning): Add parameter allow_unroll_p and 24053 adjust for it. 24054 (run_tree_predictive_commoning): Likewise. 24055 (pass_predcom::gate): Check flag_tree_loop_vectorize and 24056 global_options_set.x_flag_predictive_commoning. 24057 (pass_predcom::execute): Adjust for allow_unroll_p. 24058 240592021-06-08 Kewen Lin <linkw@linux.ibm.com> 24060 24061 * tree-predcom.c (execute_pred_commoning): Remove update_ssa call. 24062 (tree_predictive_commoning_loop): Factor some cleanup stuffs into 24063 lambda function cleanup, remove scev_reset call, and adjust return 24064 value. 24065 (tree_predictive_commoning): Adjust for different changed values, 24066 only set flag TODO_update_ssa_only_virtuals if changed. 24067 (pass_data pass_data_predcom): Remove TODO_update_ssa_only_virtuals 24068 from todo_flags_finish. 24069 240702021-06-07 Andrew MacLeod <amacleod@redhat.com> 24071 24072 * gimple-range-cache.cc (class sbr_sparse_bitmap): New. 24073 (sbr_sparse_bitmap::sbr_sparse_bitmap): New. 24074 (sbr_sparse_bitmap::bitmap_set_quad): New. 24075 (sbr_sparse_bitmap::bitmap_get_quad): New. 24076 (sbr_sparse_bitmap::set_bb_range): New. 24077 (sbr_sparse_bitmap::get_bb_range): New. 24078 (sbr_sparse_bitmap::bb_range_p): New. 24079 (block_range_cache::block_range_cache): initialize bitmap obstack. 24080 (block_range_cache::~block_range_cache): Destruct obstack. 24081 (block_range_cache::set_bb_range): Decide when to utilze the 24082 sparse on entry cache. 24083 * gimple-range-cache.h (block_range_cache): Add bitmap obstack. 24084 * params.opt (-param=evrp-sparse-threshold): New. 24085 240862021-06-07 Andrew MacLeod <amacleod@redhat.com> 24087 24088 * bitmap.c (bitmap_set_aligned_chunk): New. 24089 (bitmap_get_aligned_chunk): New. 24090 (test_aligned_chunk): New. 24091 (bitmap_c_tests): Call test_aligned_chunk. 24092 * bitmap.h (bitmap_set_aligned_chunk, bitmap_get_aligned_chunk): New. 24093 240942021-06-07 Uro�� Bizjak <ubizjak@gmail.com> 24095 24096 PR target/100637 24097 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): 24098 Handle V4QI mode. 24099 (ix86_expand_vector_init_one_nonzero): Ditto. 24100 (ix86_expand_vector_init_one_var): Ditto. 24101 (ix86_expand_vector_init_general): Ditto. 24102 * config/i386/mmx.md (vec_initv4qiqi): New expander. 24103 241042021-06-07 Jeff Law <jeffreyalaw@gmail.com> 24105 24106 * config/h8300/movepush.md: Change most _clobber_flags 24107 patterns to instead use <cczn> subst. 24108 (movsi_cczn): New pattern with usable CC cases split out. 24109 (movsi_h8sx_cczn): Likewise. 24110 241112021-06-07 Martin Liska <mliska@suse.cz> 24112 24113 * common/common-target.def: Split long lines and replace them 24114 with '\n\'. 24115 * target.def: Likewise. 24116 * doc/tm.texi: Re-generated. 24117 241182021-06-07 Jakub Jelinek <jakub@redhat.com> 24119 24120 PR target/100887 24121 * fold-const.c (fold_read_from_vector): Return NULL if trying to 24122 read from a CONSTRUCTOR with vector type elements. 24123 241242021-06-07 Jakub Jelinek <jakub@redhat.com> 24125 24126 PR middle-end/100898 24127 * tree-inline.c (copy_bb): Only use gimple_call_arg_ptr if memcpy 24128 should copy any arguments. Don't call gimple_call_num_args 24129 on id->call_stmt or call_stmt more than once. 24130 241312021-06-07 liuhongt <hongtao.liu@intel.com> 24132 24133 PR target/100885 24134 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): Refine 24135 constraints. 24136 (<insn>v4siv4di2): Delete constraints for define_expand. 24137 241382021-06-07 liuhongt <hongtao.liu@intel.com> 24139 24140 PR target/82735 24141 * config/i386/i386-expand.c (ix86_expand_builtin): Remove 24142 assignment of cfun->machine->has_explicit_vzeroupper. 24143 * config/i386/i386-features.c 24144 (ix86_add_reg_usage_to_vzerouppers): Delete. 24145 (ix86_add_reg_usage_to_vzeroupper): Ditto. 24146 (rest_of_handle_insert_vzeroupper): Remove 24147 ix86_add_reg_usage_to_vzerouppers, add df_analyze at the end 24148 of the function. 24149 (gate): Remove cfun->machine->has_explicit_vzeroupper. 24150 * config/i386/i386-protos.h (ix86_expand_avx_vzeroupper): 24151 Declared. 24152 * config/i386/i386.c (ix86_insn_callee_abi): New function. 24153 (ix86_initialize_callee_abi): Ditto. 24154 (ix86_expand_avx_vzeroupper): Ditto. 24155 (ix86_hard_regno_call_part_clobbered): Adjust for vzeroupper 24156 ABI. 24157 (TARGET_INSN_CALLEE_ABI): Define as ix86_insn_callee_abi. 24158 (ix86_emit_mode_set): Call ix86_expand_avx_vzeroupper 24159 directly. 24160 * config/i386/i386.h (struct GTY(()) machine_function): Delete 24161 has_explicit_vzeroupper. 24162 * config/i386/i386.md (enum unspec): New member 24163 UNSPEC_CALLEE_ABI. 24164 (ABI_DEFAULT,ABI_VZEROUPPER,ABI_UNKNOWN): New 24165 define_constants for insn callee abi index. 24166 * config/i386/predicates.md (vzeroupper_pattern): Adjust. 24167 * config/i386/sse.md (UNSPECV_VZEROUPPER): Deleted. 24168 (avx_vzeroupper): Call ix86_expand_avx_vzeroupper. 24169 (*avx_vzeroupper): Rename to .. 24170 (avx_vzeroupper_callee_abi): .. this, and adjust pattern as 24171 call_insn which has a special vzeroupper ABI. 24172 (*avx_vzeroupper_1): Deleted. 24173 241742021-06-07 liuhongt <hongtao.liu@intel.com> 24175 24176 PR target/82735 24177 * df-scan.c (df_get_call_refs): When call_insn is a fake call, 24178 it won't use stack pointer reg. 24179 * final.c (leaf_function_p): When call_insn is a fake call, it 24180 won't affect caller as a leaf function. 24181 * reg-stack.c (callee_clobbers_any_stack_reg): New. 24182 (subst_stack_regs): When call_insn doesn't clobber any stack 24183 reg, don't clear the arguments. 24184 * rtl.c (shallow_copy_rtx): Don't clear flag used when orig is 24185 a insn. 24186 * shrink-wrap.c (requires_stack_frame_p): No need for stack 24187 frame for a fake call. 24188 * rtl.h (FAKE_CALL_P): New macro. 24189 241902021-06-06 Eric Botcazou <ebotcazou@adacore.com> 24191 24192 * config/sparc/sparc-protos.h (order_regs_for_local_alloc): Rename 24193 to... 24194 (sparc_order_regs_for_local_alloc): ...this. 24195 (sparc_leaf_reg_remap): Declare. 24196 * config/sparc/sparc.h (ADJUST_REG_ALLOC_ORDER): Adjust. 24197 (LEAF_REG_REMAP): Reimplement as call to sparc_leaf_reg_remap. 24198 * config/sparc/sparc.c (leaf_reg_remap): Delete. 24199 (order_regs_for_local_alloc): Rename to... 24200 (sparc_order_regs_for_local_alloc): ...this. 24201 (sparc_leaf_reg_remap): New function. 24202 (sparc_conditional_register_usage): Do not modify leaf_reg_remap. 24203 242042021-06-06 David Edelsohn <dje.gcc@gmail.com> 24205 24206 * config/rs6000/rs6000.c (rs6000_xcoff_asm_output_aligned_decl_common): 24207 Use assemble_name to output BSS section name. 24208 242092021-06-06 Uro�� Bizjak <ubizjak@gmail.com> 24210 24211 * config/i386/constraints.md (Bs): 24212 Remove boolean operators from match_test RTX. 24213 (Bw): Ditto. 24214 (L): Ditto. 24215 (M): Use "mode" variable instead of GET_MODE (op) in match_test RTX. 24216 (Wz): Ditto. 24217 242182021-06-06 Martin Liska <mliska@suse.cz> 24219 24220 * doc/extend.texi: Add missing @headitem. 24221 * doc/invoke.texi: Likewise. 24222 * doc/objc.texi: Likewise. 24223 242242021-06-06 Martin Liska <mliska@suse.cz> 24225 24226 * genhooks.c (emit_findices): Remove unused function. 24227 (emit_documentation): Do not call emit_findices 24228 and do not search for @Fcode directives. 24229 242302021-06-06 Martin Liska <mliska@suse.cz> 24231 24232 * doc/invoke.texi: Remove extra character. 24233 242342021-06-05 Kewen Lin <linkw@linux.ibm.com> 24235 24236 * config/sh/sh.md (doloop_end_split): Fix empty split condition. 24237 242382021-06-05 Kewen Lin <linkw@linux.ibm.com> 24239 24240 * config/sparc/sparc.md (*snedi<W:mode>_zero_vis3, 24241 *neg_snedi<W:mode>_zero_subxc, *plus_snedi<W:mode>_zero, 24242 *plus_plus_snedi<W:mode>_zero, *minus_snedi<W:mode>_zero, 24243 *minus_minus_snedi<W:mode>_zero): Fix empty split condition. 24244 242452021-06-05 Kewen Lin <linkw@linux.ibm.com> 24246 24247 * config/or1k/or1k.md (*movdi): Fix empty split condition. 24248 242492021-06-05 Kewen Lin <linkw@linux.ibm.com> 24250 24251 * config/mips/mips.md (<anonymous>, bswapsi2, bswapdi2): Fix empty 24252 split condition. 24253 242542021-06-05 Kewen Lin <linkw@linux.ibm.com> 24255 24256 * config/m68k/m68k.md (*zero_extend_inc, *zero_extend_dec, 24257 *zero_extendsidi2): Fix empty split condition. 24258 242592021-06-05 Jeff Law <jeffreyalaw@gmail.com> 24260 24261 * config/h8300/addsub.md: Fix split condition in define_insn_and_split 24262 patterns. 24263 * config/h8300/bitfield.md: Likewise. 24264 * config/h8300/combiner.md: Likewise. 24265 * config/h8300/divmod.md: Likewise. 24266 * config/h8300/extensions.md: Likewise. 24267 * config/h8300/jumpcall.md: Likewise. 24268 * config/h8300/movepush.md: Likewise. 24269 * config/h8300/multiply.md: Likewise. 24270 * config/h8300/other.md: Likewise. 24271 * config/h8300/shiftrotate.md: Likewise. 24272 * config/h8300/logical.md: Likewise. Fix split pattern to use 24273 code iterator that somehow slipped through. 24274 242752021-06-04 Tobias Burnus <tobias@codesourcery.com> 24276 24277 PR middle-end/100905 24278 * tree-nested.c (convert_nonlocal_omp_clauses, 24279 convert_local_omp_clauses): Handle OMP_CLAUSE_BIND. 24280 242812021-06-04 Martin Sebor <msebor@redhat.com> 24282 24283 PR middle-end/100732 24284 * gimple-fold.c (gimple_fold_builtin_sprintf): Avoid folding calls 24285 with either source or destination argument of invalid type. 24286 * tree-ssa-uninit.c (maybe_warn_pass_by_reference): Avoid checking 24287 calls with arguments of invalid type. 24288 242892021-06-04 Martin Sebor <msebor@redhat.com> 24290 24291 * attribs.c (init_attr_rdwr_indices): Use VLA bounds in the expected 24292 order. 24293 (attr_access::vla_bounds): Also handle VLA bounds. 24294 242952021-06-04 Uro�� Bizjak <ubizjak@gmail.com> 24296 24297 * config/i386/predicates.md (GOT_memory_operand): 24298 Implement using match_code RTXes. 24299 (GOT32_symbol_operand): Ditto. 24300 243012021-06-04 Uro�� Bizjak <ubizjak@gmail.com> 24302 24303 PR target/100637 24304 * config/i386/i386-expand.c (ix86_expand_vector_init_duplicate): 24305 Handle V2HI mode. 24306 (ix86_expand_vector_init_general): Ditto. 24307 Use SImode instead of word_mode for logic operations 24308 when GET_MODE_SIZE (mode) < UNITS_PER_WORD. 24309 (expand_vec_perm_even_odd_1): Assert that V2HI mode should be 24310 implemented by expand_vec_perm_1. 24311 (expand_vec_perm_broadcast_1): Assert that V2HI and V4HI modes 24312 should be implemented using standard shuffle patterns. 24313 (ix86_vectorize_vec_perm_const): Handle V2HImode. Add V4HI and 24314 V2HI modes to modes, implementable with shuffle for one operand. 24315 * config/i386/mmx.md (*punpckwd): New insn_and_split pattern. 24316 (*pshufw_1): New insn pattern. 24317 (*vec_dupv2hi): Ditto. 24318 (vec_initv2hihi): New expander. 24319 243202021-06-04 Kewen Lin <linkw@linux.ibm.com> 24321 24322 * config/arm/vfp.md (no_literal_pool_df_immediate, 24323 no_literal_pool_sf_immediate): Fix empty split condition. 24324 243252021-06-04 Kewen Lin <linkw@linux.ibm.com> 24326 24327 * config/i386/i386.md (*load_tp_x32_zext, *add_tp_x32_zext, 24328 *tls_dynamic_gnu2_combine_32): Fix empty split condition. 24329 * config/i386/sse.md (*<sse2_avx2>_pmovmskb_lt, 24330 *<sse2_avx2>_pmovmskb_zext_lt, *sse2_pmovmskb_ext_lt, 24331 *<sse4_1_avx2>_pblendvb_lt): Likewise. 24332 243332021-06-04 Jakub Jelinek <jakub@redhat.com> 24334 24335 PR target/100887 24336 * config/i386/i386-expand.c (ix86_expand_vector_init): Handle 24337 concatenation from half-sized modes with TImode elements. 24338 243392021-06-04 Claudiu Zissulescu <claziss@synopsys.com> 24340 24341 * config/arc/arc.c (arc_override_options): Disable millicode 24342 thunks when RF16 is on. 24343 243442021-06-04 Haochen Gui <guihaoc@gcc.gnu.org> 24345 24346 * config/rs6000/rs6000.h (PROMOTE_MODE): Remove. 24347 243482021-06-04 Haochen Gui <guihaoc@gcc.gnu.org> 24349 24350 * config/rs6000/rs6000-call.c (rs6000_promote_function_mode): 24351 Replace PROMOTE_MODE marco with its content. 24352 243532021-06-03 Kewen Lin <linkw@linux.ibm.com> 24354 24355 * config/cris/cris.md (*addi_reload): Fix empty split condition. 24356 243572021-06-03 Jim Wilson <jimw@sifive.com> 24358 24359 * config.gcc (riscv*-*-*): If --with-riscv-attribute not used, 24360 turn it on for all riscv targets. 24361 243622021-06-03 Uro�� Bizjak <ubizjak@gmail.com> 24363 24364 PR target/100637 24365 * config/i386/i386-expand.c (ix86_expand_vector_set): 24366 Handle V2HI and V4QI modes. 24367 (ix86_expand_vector_extract): Ditto. 24368 * config/i386/mmx.md (*pinsrw): New insn pattern. 24369 (*pinsrb): Ditto. 24370 (*pextrw): Ditto. 24371 (*pextrw_zext): Ditto. 24372 (*pextrb): Ditto. 24373 (*pextrb_zext): Ditto. 24374 (vec_setv2hi): New expander. 24375 (vec_extractv2hihi): Ditto. 24376 (vec_setv4qi): Ditto. 24377 (vec_extractv4qiqi): Ditto. 24378 (vec_setv8qi): Enable only for TARGET_SSE4_1. 24379 (vec_extractv8qiqi): Ditto. 24380 243812021-06-03 Aaron Sawdey <acsawdey@linux.ibm.com> 24382 24383 * config/rs6000/genfusion.pl (gen_logical_addsubf): Fix input 24384 order to subf instruction. 24385 * config/rs6000/fusion.md: Regenerate. 24386 243872021-06-03 Aldy Hernandez <aldyh@redhat.com> 24388 24389 * calls.c (get_size_range): Use range_of_expr instead of 24390 determine_value_range. 24391 * tree-affine.c (expr_to_aff_combination): Same. 24392 * tree-data-ref.c (split_constant_offset): Same. 24393 * tree-vrp.c (determine_value_range_1): Remove. 24394 (determine_value_range): Remove. 24395 * tree-vrp.h (determine_value_range): Remove. 24396 243972021-06-03 Aldy Hernandez <aldyh@redhat.com> 24398 24399 * function-tests.c (test_ranges): Call gimple_range_tests. 24400 * gimple-range-cache.cc (ranger_cache::range_of_expr): Pass stmt 24401 to get_tree_range. 24402 * gimple-range.cc (fur_source::get_operand): Do not call 24403 get_tree_range or gimple_range_global. 24404 get_tree_range. 24405 (get_tree_range): Move to value-query.cc. 24406 Call get_arith_expr_range. 24407 (gimple_ranger::range_of_expr): Add argument to get_tree_range. 24408 Include gimple-range-tests.cc. 24409 * gimple-range.h (fold_range): Add argument. 24410 (get_tree_range): Remove. 24411 * selftest.h (gimple_range_tests): New. 24412 * value-query.cc (global_range_query::range_of_expr): Add 24413 stmt argument. 24414 (range_query::get_tree_range): Move from gimple-range.cc. 24415 * value-query.h (class range_query): Add get_tree_range and 24416 get_arith_expr_range. Make fur_source a friend. 24417 * vr-values.c (vr_values::range_of_expr): Pass stmt to 24418 get_tree_range. 24419 * gimple-range-tests.cc: New file. 24420 244212021-06-03 Aldy Hernandez <aldyh@redhat.com> 24422 24423 * gimple-range.cc (gimple_ranger::export_global_ranges): Call 24424 update_global_range. 24425 * value-query.cc (update_global_range): New. 24426 * value-query.h (update_global_range): New. 24427 244282021-06-03 David Malcolm <dmalcolm@redhat.com> 24429 24430 * diagnostic-show-locus.c (diagnostic_show_locus): Don't reject 24431 printing the same location twice if there are fix-it hints, 24432 multiple locations, or a label. 24433 244342021-06-03 Andre Vieira <andre.simoesdiasvieira@arm.com> 24435 24436 * tree-vect-loop.c (vect_transform_loop): Use main loop's various' 24437 thresholds to narrow the upper bound on epilogue iterations. 24438 244392021-06-03 Christophe Lyon <christophe.lyon@linaro.org> 24440 24441 * config/arm/mve.md (mve_vabsq_f<mode>): Use 'abs' instead of unspec. 24442 (mve_vabsq_s<mode>): Likewise. 24443 * config/arm/neon.md (abs<mode>2): Rename to neon_abs<mode>2. 24444 * config/arm/unspecs.md (VABSQ_F, VABSQ_S): Delete. 24445 * config/arm/vec-common.md (neg<mode>2): Rename to 24446 <absneg_str><mode>2. 24447 244482021-06-03 Claudiu Zissulescu <claziss@synopsys.com> 24449 24450 * common/config/arc/arc-common.c (arc_option_optimization_table): 24451 Remove malign-call. 24452 * config/arc/arc.c (arc_unalign_branch_p): Remove unused function. 24453 * config/arc/arc.h (TARGET_MIXED_CODE): Remove macro. 24454 (INDEX_REG_CLASS): Only refer to GENERAL_REGS. 24455 * config/arc/arc.md (abssi2_mixed): Remove pattern. 24456 * config/arc/arc.opt (munalign-prob-threshold): Mark it obsolete. 24457 (malign-call): Likewise. 24458 (mmixed-code): Likewise. 24459 * doc/invoke.texi (ARC): Update doc. 24460 244612021-06-03 Martin Liska <mliska@suse.cz> 24462 24463 * common.opt: Use proper Enum values. 24464 * opts.c (COVERAGE_SANITIZER_OPT): Remove. 24465 (parse_sanitizer_options): Handle only sanitizer_opts. 24466 (common_handle_option): Just assign value. 24467 244682021-06-03 Eric Botcazou <ebotcazou@adacore.com> 24469 24470 PR ipa/99122 24471 * tree-inline.c (inline_forbidden_p): Remove test on return type. 24472 244732021-06-03 Eric Botcazou <ebotcazou@adacore.com> 24474 24475 * dwarf2out.c (loc_list_from_tree_1) <FUNCTION_DECL>: Also generate 24476 DW_OP_GNU_variable_value referencing an existing DIE at file scope. 24477 (type_byte_size): Inline into... 24478 (add_byte_size_attribute): ...this and call add_scalar_info. 24479 244802021-06-03 Eric Botcazou <ebotcazou@adacore.com> 24481 24482 * dwarf2out.c (mem_loc_descriptor) <UDIV>: Fix typo. 24483 (typed_binop_from_tree): New function. 24484 (loc_list_from_tree_1) <EXACT_DIV_EXPR>: For an unsigned type, 24485 turn a divide by a power of 2 into a shift. 24486 <CEIL_DIV_EXPR>: For an unsigned type, use a signed divide if the 24487 size of the mode is lower than DWARF2_ADDR_SIZE; otherwise, do a 24488 typed divide by calling typed_binop_from_tree. 24489 244902021-06-03 Eric Botcazou <ebotcazou@adacore.com> 24491 24492 * dwarf2out.c (scompare_loc_descriptor): Fix head comment. 24493 (is_handled_procedure_type): Likewise. 24494 (struct loc_descr_context): Add strict_signedness field. 24495 (resolve_args_picking_1): Deal with DW_OP_[GNU_]deref_type, 24496 DW_OP_[GNU_]convert and DW_OP_[GNU_]reinterpret. 24497 (resolve_args_picking): Minor tweak. 24498 (function_to_dwarf_procedure): Initialize strict_signedness field. 24499 (type_byte_size): Likewise. 24500 (field_byte_offset): Likewise. 24501 (gen_descr_array_type_die): Likewise. 24502 (gen_variant_part): Likewise. 24503 (loc_list_from_tree_1) <CALL_EXPR>: Tidy up and set strict_signedness 24504 to true when a context is present before evaluating the arguments. 24505 <COND_EXPR>: Do not generate a useless comparison with zero. 24506 When dereferencing an address, if strict_signedness is true and the 24507 type is small and signed, use DW_OP_deref_type to do the dereference 24508 and then DW_OP_convert to convert back to the generic type. 24509 245102021-06-03 Jakub Jelinek <jakub@redhat.com> 24511 24512 PR c++/100859 24513 * tree-inline.c (copy_tree_body_r): Handle iterators on 24514 OMP_CLAUSE_AFFINITY or OMP_CLAUSE_DEPEND. 24515 245162021-06-03 Kewen Lin <linkw@linux.ibm.com> 24517 24518 * config/arc/arc.md (*bbit_di): Remove. 24519 245202021-06-02 Christoph Muellner <cmuellner@gcc.gnu.org> 24521 24522 PR rtl-optimization/100264 24523 * ree.c (get_sub_rtx): Ignore SET expressions without register 24524 destinations and remove assertion, as it is not valid anymore 24525 with this new behaviour. 24526 (merge_def_and_ext): Eliminate destination check for register 24527 as such SET expressions can't occur anymore. 24528 (combine_reaching_defs): Likewise. 24529 245302021-06-02 Jakub Jelinek <jakub@redhat.com> 24531 24532 PR target/100841 24533 * config/xtensa/xtensa.h (LEAF_REG_REMAP): Cast REGNO to int to avoid 24534 -Wtype-limits warnings. 24535 (DWARF_FRAME_REGISTER): Rewrite into ternary operator with addition 24536 in operands to avoid -Wsign-compare warnings. 24537 245382021-06-02 Pat Haugen <pthaugen@linux.ibm.com> 24539 24540 * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Use 24541 gen_frame_store. 24542 245432021-06-02 Vineet Gupta <vgupta@synopsys.com> 24544 24545 * config/arc/arc.h (TARGET_CPU_DEFAULT): Change to hs38_linux. 24546 245472021-06-02 Ilya Leoshkevich <iii@linux.ibm.com> 24548 24549 * config/s390/s390.md(*ashrdi3_31<setcc><cconly>): Use a single 24550 constraint. 24551 * config/s390/subst.md(cconly_subst): Use a single constraint 24552 in (match_scratch). 24553 245542021-06-02 Martin Liska <mliska@suse.cz> 24555 24556 * ipa-icf.h: Use auto_vec for memory_access_types. 24557 245582021-06-02 Jeff Law <jeffreyalaw@gmail.com> 24559 24560 * config/h8300/h8300-protos.h (compute_a_shift_length): Drop unused 24561 argument from prototype. 24562 (output_logical_op): Add rtx_code argument. 24563 (compute_logical_op_length): Likewise. 24564 * config/h8300/h8300.c (h8300_and_costs): Pass additional argument 24565 to compute_a_shift_length. 24566 (output_logical_op); New argument with the rtx code rather than 24567 extracting it from an operand. Handle QImode too. 24568 (compute_logical_op_length): Similary. 24569 (compute_a_shift_length): Drop unused argument. 24570 * config/h8300/h8300.md (logicals): New code iterator. 24571 * config/h8300/logical.md (<code><mode>3 expander): Combine 24572 the "and" expander with the "ior"/"xor" expander. 24573 (bclr<mode>msx): Combine the QI/HI mode patterns. 24574 (<logical><mode>3 insns): Use code iterator rather than match_operator. 24575 Handle QImode as well. Update call to output_logical_op and 24576 compute_logical_op_length to pass in rtx_code 24577 Fix split condition on all define_insn_and_split patterns. 24578 (one_cmpl<mode>2<cczn>): Use <cczn> to support both clobbering 24579 the flags and setting ZN via existing define_subst. 24580 * config/h8300/shiftrotate.md: Drop unused argument from 24581 calls to compute_a_shift_length. 24582 Signed-off-by: Jeff Law <jeffreyalaw@gmail.com> 24583 245842021-06-01 Andrew Pinski <apinski@marvell.com> 24585 24586 PR tree-optimization/25290 24587 * tree-ssa-phiopt.c (match_simplify_replacement): 24588 New function. 24589 (tree_ssa_phiopt_worker): Use match_simplify_replacement. 24590 (two_value_replacement): Change the comment about 24591 conditional_replacement. 24592 (conditional_replacement): Delete. 24593 245942021-06-01 Andrew Pinski <apinski@marvell.com> 24595 24596 PR tree-optimization/95481 24597 * tree-tailcall.c (find_tail_calls): Handle empty typed 24598 return decls. 24599 246002021-06-01 Andrew Pinski <apinski@marvell.com> 24601 24602 * gimplify.c (zero_sized_field_decl): Delete 24603 (zero_sized_type): Delete 24604 (gimplify_init_ctor_eval): Use is_empty_type instead 24605 of zero_sized_field_decl. 24606 (gimplify_modify_expr): Use is_empty_type instead of 24607 zero_sized_type. 24608 246092021-06-01 Jason Merrill <jason@redhat.com> 24610 24611 PR c++/91859 24612 * tree.h (CALL_FROM_NEW_OR_DELETE_P): Adjust comment. 24613 246142021-06-01 Jason Merrill <jason@redhat.com> 24615 24616 PR c++/94492 24617 * diagnostic.h (warning_enabled_at): Declare. 24618 * diagnostic.c (diagnostic_enabled): Factor out from... 24619 (diagnostic_report_diagnostic): ...here. 24620 (warning_enabled_at): New. 24621 246222021-06-01 Aldy Hernandez <aldyh@redhat.com> 24623 24624 * gimple-ssa-evrp.c: Enable exporting of global ranges. 24625 246262021-06-01 Martin Liska <mliska@suse.cz> 24627 24628 PR other/100826 24629 * doc/invoke.texi: Mention that -fgcse-after-reload 24630 is enabled with -O3. 24631 246322021-06-01 liuhongt <hongtao.liu@intel.com> 24633 24634 PR tree-optimization/98365 24635 * tree-if-conv.c (strip_nop_cond_scalar_reduction): New function. 24636 (is_cond_scalar_reduction): Handle nop_expr in cond scalar reduction. 24637 (convert_scalar_cond_reduction): Ditto. 24638 (predicate_scalar_phi): Ditto. 24639 246402021-06-01 Andrew MacLeod <amacleod@redhat.com> 24641 24642 PR tree-optimization/100781 24643 * gimple-range-cache.cc (ranger_cache::ranger_cache): Enable new 24644 value calculation by default. 24645 (ranger_cache::enable_new_values): New. 24646 (ranger_cache::disable_new_values): New. 24647 (ranger_cache::push_poor_value): Check if new values are allowed. 24648 * gimple-range-cache.h (class ranger_cache): New member/methods. 24649 * gimple-range.cc (gimple_ranger::range_of_expr): Check for debug 24650 statement, and disable/renable new value calculation. 24651 246522021-06-01 Andrew MacLeod <amacleod@redhat.com> 24653 24654 * gimple-range-cache.cc (ranger_cache::ssa_range_in_bb): Delete. 24655 (ranger_cache::range_of_def): New. 24656 (ranger_cache::entry_range): New. 24657 (ranger_cache::exit_range): New. 24658 (ranger_cache::range_of_expr): Adjust. 24659 (ranger_cache::range_on_edge): Adjust. 24660 (ranger_cache::propagate_cache): Call exit_range directly. 24661 * gimple-range-cache.h (class ranger_cache): Adjust. 24662 246632021-06-01 Andrew MacLeod <amacleod@redhat.com> 24664 24665 * gimple-range-cache.cc (ranger_cache::ranger_cache): Adjust for 24666 gori_compute being a member rather than base class. 24667 dervied call to member call. 24668 (ranger_cache::dump): No longer dump gori_map. 24669 (ranger_cache::dump_bb): New. 24670 (ranger_cache::get_non_stale_global_range): Adjust for gori_compute 24671 being a member rather than base class. 24672 (ranger_cache::set_global_range): Ditto. 24673 (ranger_cache::ssa_range_in_bb): Ditto. 24674 (ranger_cache::range_of_expr): New. 24675 (ranger_cache::range_on_edge): New. 24676 (ranger_cache::block_range): Adjust for gori_computes. Debug changes. 24677 (ranger_cache::propagate_cache): Adjust debugging output. 24678 (ranger_cache::fill_block_cache): Adjust for gori_computes. Debug 24679 output changes. 24680 * gimple-range-cache.h (class ranger_cache): Make gori_compute a 24681 member, and inherit from range_query instead. 24682 (ranger_cache::dump_bb): New. split from dump. 24683 * gimple-range-gori.cc (gori_compute::ssa_range_in_bb): Delete. 24684 (gori_compute::expr_range_at_stmt): Delete. 24685 (gori_compute::compute_name_range_op): Delete. 24686 (gori_compute::compute_operand_range_switch): Add fur_source. 24687 (gori_compute::compute_operand_range): Add fur_source param, inline 24688 old compute_name_range_op and optimize_logical_operands. 24689 (struct tf_range): Delete. 24690 (gori_compute::logical_combine): Adjust 24691 (gori_compute::optimize_logical_operands): Delete. 24692 (gori_compute::compute_logical_operands_in_chain): Delete. 24693 (gori_compute::compute_logical_operands): Adjust. 24694 (gori_compute::compute_operand1_range): Adjust to fur_source. 24695 (gori_compute::compute_operand2_range): Ditto. 24696 (gori_compute::compute_operand1_and_operand2_range): Ditto. 24697 (gori_compute::outgoing_edge_range_p): Add range_query parameter, 24698 and adjust to fur_source. 24699 * gimple-range-gori.h (class gori_compute): Simplify and adjust to 24700 range_query and fur_source. 24701 * gimple-range.cc (gimple_ranger::range_on_edge): Query range_on_edge 24702 from the ranger_cache.. 24703 (gimple_ranger::fold_range_internal): Adjust to base class change of 24704 ranger_cache. 24705 (gimple_ranger::dump_bb): Adjust dump. 24706 * gimple-range.h (gimple_ranger):export gori computes object. 24707 247082021-06-01 Andrew MacLeod <amacleod@redhat.com> 24709 24710 PR tree-optimization/100774 24711 * gimple-range-cache.cc (ranger_cache::get_non_stale_global_range): 24712 Constant values are also not stale. 24713 (ranger_cache::set_global_range): Range invariant values should also 24714 have the correct timestamp. 24715 247162021-05-31 Martin Liska <mliska@suse.cz> 24717 24718 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): 24719 Unpack FUNCTION_DECL_DECL_TYPE. 24720 * tree-streamer-out.c (pack_ts_function_decl_value_fields): 24721 Stream FUNCTION_DECL_DECL_TYPE instead of 24722 DECL_IS_OPERATOR_NEW_P. 24723 * tree.h (set_function_decl_type): Use FUNCTION_DECL_DECL_TYPE 24724 macro. 24725 (DECL_IS_OPERATOR_NEW_P): Likewise. 24726 (DECL_IS_OPERATOR_DELETE_P): Likewise. 24727 (DECL_LAMBDA_FUNCTION_P): Likewise. 24728 247292021-05-31 Richard Biener <rguenther@suse.de> 24730 24731 PR c++/88601 24732 * internal-fn.c (expand_SHUFFLEVECTOR): Define. 24733 * internal-fn.def (SHUFFLEVECTOR): New. 24734 * internal-fn.h (expand_SHUFFLEVECTOR): Declare. 24735 * doc/extend.texi: Document __builtin_shufflevector. 24736 247372021-05-31 Peter Bergner <bergner@linux.ibm.com> 24738 24739 PR target/99842 24740 * config/rs6000/predicates.md(mma_assemble_input_operand): Allow 24741 indexed form addresses. 24742 247432021-05-29 Jeff Law <jlaw@tachyum.com> 24744 24745 * config/h8300/h8300.c (h8300_emit_stack_adjustment): Drop unused 24746 parameter. Call callers fixed. 24747 (push): Likewise. 24748 (output_plussi): Add FALLTHRU markers. 24749 (h8300_shift_needs_scratch_p): Add gcc_unreachable marker. 24750 247512021-05-29 Jakub Jelinek <jakub@redhat.com> 24752 24753 PR middle-end/99928 24754 * gimplify.c (gimplify_scan_omp_clauses): For taskloop simd 24755 combined with parallel, make sure to add shared clause to 24756 parallel for explicit linear clause. 24757 247582021-05-29 Aldy Hernandez <aldyh@redhat.com> 24759 24760 PR tree-optimization/100787 24761 * gimple-ssa-evrp.c: Disable exporting of global ranges. 24762 247632021-05-28 Jason Merrill <jason@redhat.com> 24764 24765 * tree-iterator.h (struct tree_stmt_iterator): Add operator++, 24766 operator--, operator*, operator==, and operator!=. 24767 (class tsi_range): New. 24768 247692021-05-28 Richard Biener <rguenther@suse.de> 24770 24771 PR tree-optimization/100778 24772 * tree-vect-slp.c (vect_build_slp_tree_1): Prevent possibly 24773 trapping ops in different BBs. 24774 247752021-05-28 Richard Biener <rguenther@suse.de> 24776 24777 PR ipa/100791 24778 * tree-inline.c (copy_bb): When processing __builtin_va_arg_pack 24779 copy fntype from original call. 24780 247812021-05-28 Martin Liska <mliska@suse.cz> 24782 24783 PR gcov-profile/100751 24784 * doc/gcov.texi: Revert partially a hunk that was wrong. 24785 247862021-05-28 Cooper Qu <cooper.qu@linux.alibaba.com> 24787 24788 * config/csky/csky-linux-elf.h (HAVE_sync_compare_and_swapqi): 24789 Defined. 24790 (HAVE_sync_compare_and_swaphi): Likewise. 24791 (HAVE_sync_compare_and_swapsi): Likewise. 24792 247932021-05-28 Jakub Jelinek <jakub@redhat.com> 24794 24795 PR middle-end/99928 24796 * tree.h (OMP_CLAUSE_MAP_IMPLICIT): Define. 24797 247982021-05-28 Tobias Burnus <tobias@codesourcery.com> 24799 24800 * gimplify.c (gimplify_omp_affinity): New. 24801 (gimplify_scan_omp_clauses): Call it; remove affinity clause afterwards. 24802 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_AFFINITY. 24803 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_AFFINITY. 24804 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add clause. 24805 (walk_tree_1): Handle OMP_CLAUSE_AFFINITY. 24806 248072021-05-28 Joern Rennecke <joern.rennecke@riscy-ip.com> 24808 Richard Biener <rguenther@suse.de> 24809 24810 * match.pd <popcount & / + pattern matching>: 24811 When generating popcount directly fails, try doing it in two halves. 24812 248132021-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de> 24814 24815 * Makefile.in (generated_files): Add gimple-match.c and 24816 generic-match.c 24817 248182021-05-28 Joern Rennecke <joern.rennecke@embecosm.com> 24819 24820 * gensupport.c (alter_predicate_for_insn): Handle MATCH_DUP. 24821 248222021-05-28 Joern Rennecke <joern.rennecke@embecosm.com> 24823 24824 * gensupport.c (alter_constraints): Add MATCH_SCRATCH case. 24825 248262021-05-28 Kewen Lin <linkw@linux.ibm.com> 24827 24828 PR tree-optimization/99398 24829 * tree-ssa-forwprop.c (simplify_permutation): Optimize some cases 24830 where the fed operands are CTOR/CST and propagated through 24831 VIEW_CONVERT_EXPR. Call vec_perm_indices::new_shrunk_vector. 24832 * vec-perm-indices.c (vec_perm_indices::new_shrunk_vector): New 24833 function. 24834 * vec-perm-indices.h (vec_perm_indices::new_shrunk_vector): New 24835 declare. 24836 248372021-05-27 Uro�� Bizjak <ubizjak@gmail.com> 24838 24839 * config/i386/mmx.md (addv2sf3): Do not call 24840 ix86_fixup_binary_operands_no_copy. 24841 (subv2sf3): Ditto. 24842 (mulv2sf3): Ditto. 24843 (<smaxmin:code>v2sf3): Ditto. 24844 (<plusminus:insn><MMXMODEI:mode>3): Ditto. 24845 (<plusminus:insn><VI_32:mode>3): Remove expander. 24846 (<plusminus:insn><VI_32:mode>3): Rename from 24847 "*<plusminus:insn><VI_32:mode>3". 24848 (mulv4hi): Do not call ix86_fixup_binary_operands_no_copy. 24849 (mulv2hi3): Remove expander. 24850 (mulv2hi3): Rename from *mulv2hi3. 24851 (<s>mulv2hi3_highpart): Remove expander. 24852 (<s>mulv2hi3_highpart): Rename from *<s>mulv2hi3_highpart. 24853 (<smaxmin:code><MMXMODE14:mode>3): Rename from 24854 "*mmx_<smaxmin:code><MMXMODE14:mode>3". 24855 (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Remove expander. 24856 (SMAXMIN_MMXMODEI): Remove mode iterator. 24857 (<smaxmin:code>v4hi3): New expander. 24858 (<smaxmin:code>v4qi3): Rename from *<smaxmin:code>v4qi3. 24859 (<smaxmin:code>v2hi3): Rename from *<smaxmin:code>v2hi3. 24860 (<smaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander. 24861 (SMAXMIN_VI_32): Remove mode iterator. 24862 (<umaxmin:code><MMXMODE24:mode>3): Rename from 24863 "*mmx_<umaxmin:code><MMXMODE24:mode>3". 24864 (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Remove expander. 24865 (UMAXMIN_MMXMODEI): Remove mode iterator. 24866 (<umaxmin:code>v8qi3): New expander. 24867 (<umaxmin:code>v4qi3): Rename from *<umaxmin:code>v4qi3. 24868 (<umaxmin:code>v2hi3): Rename from *<umaxmin:code>v2hi3. 24869 (<umaxmin:code><SMAXMIN_VI_32:mode>3): Remove expander. 24870 (UMAXMIN_VI_32): Remove mode iterator. 24871 (<any_shift:insn>v2hi3): Remove expander. 24872 (<any_shift:insn>v2hi3): Rename from *<any_shift:insn>v2hi3. 24873 (<any_logic:code><MMXMODEI:mode>3): Do not call 24874 ix86_fixup_binary_operands_no_copy. 24875 (<any_logic:code><VI_32:mode>3): Remove expander. 24876 (<any_logic:code><VI_32:mode>3): Rename from 24877 "*<any_logic:code><VI_32:mode>3". 24878 (uavg<mode>3_ceil): Do not call ix86_fixup_binary_operands_no_copy. 24879 * config/i386/sse.md (div<VF2:mode>3): Do not call 24880 ix86_fixup_binary_operands_no_copy. 24881 (div<VF1:mode>3): Ditto. 24882 (<maxmin:code><VI8_AVX2_AVX512F:mode>3): Ditto. 24883 (smulhrsv4hi3): Ditto. 24884 (smulhrsv2hi3): Ditto. 24885 248862021-05-27 Martin Sebor <msebor@redhat.com> 24887 24888 * ggc.h (gt_ggc_mx): Add overloads for all integers. 24889 (gt_pch_nx): Same. 24890 * hash-map.h (class hash_map): Add pch_nx_helper overloads for all 24891 integers. 24892 (hash_map::operator==): New function. 24893 248942021-05-27 Uro�� Bizjak <ubizjak@gmail.com> 24895 24896 PR target/100637 24897 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): 24898 For TARGET_XOP bypass SSE comparisons for all supported vector modes. 24899 * config/i386/mmx.md (*xop_maskcmp<MMXMODEI:mode>3): New insn pattern. 24900 (*xop_maskcmp<VI_32:mode>3): Ditto. 24901 (*xop_maskcmp_uns<MMXMODEI:mode>3): Ditto. 24902 (*xop_maskcmp_uns<VI_32:mode>3): Ditto. 24903 249042021-05-27 Richard Earnshaw <rearnsha@arm.com> 24905 24906 PR target/100767 24907 * config/arm/arm.c (arm_configure_build_target): Remove parameter 24908 opts_set, directly check opts parameters for being non-null. 24909 (arm_option_restore): Update call to arm_configure_build_target. 24910 (arm_option_override): Likewise. 24911 (arm_can_inline_p): Likewise. 24912 (arm_valid_target_attribute_tree): Likewise. 24913 * config/arm/arm-c.c (arm_pragma_target_parse): Likewise. 24914 * config/arm/arm-protos.h (arm_configure_build_target): Adjust 24915 prototype. 24916 249172021-05-27 Aldy Hernandez <aldyh@redhat.com> 24918 24919 * vr-values.c (simplify_conversion_using_ranges): Use 24920 get_range_query instead of get_global_range_query. 24921 249222021-05-27 Aldy Hernandez <aldyh@redhat.com> 24923 24924 * gimple-range.cc (get_range_global): Move to value-query.cc. 24925 (gimple_range_global): Same. 24926 (get_global_range_query): Same. 24927 (global_range_query::range_of_expr): Same. 24928 * gimple-range.h (class global_range_query): Move to 24929 value-query.h. 24930 (gimple_range_global): Same. 24931 * tree-ssanames.c (get_range_info): Move to value-query.cc. 24932 (get_ptr_nonnull): Same. 24933 * tree-ssanames.h (get_range_info): Remove. 24934 (get_ptr_nonnull): Remove. 24935 * value-query.cc (get_ssa_name_range_info): Move from 24936 tree-ssanames.c. 24937 (get_ssa_name_ptr_info_nonnull): Same. 24938 (get_range_global): Move from gimple-range.cc. 24939 (gimple_range_global): Same. 24940 (get_global_range_query): Same. 24941 (global_range_query::range_of_expr): Same. 24942 * value-query.h (class global_range_query): Move from 24943 gimple-range.h. 24944 (gimple_range_global): Same. 24945 249462021-05-27 Uro�� Bizjak <ubizjak@gmail.com> 24947 24948 PR target/100637 24949 * config/i386/mmx.md (uavgv4qi3_ceil): New insn pattern. 24950 (uavgv2hi3_ceil): Ditto. 24951 249522021-05-26 Eric Botcazou <ebotcazou@adacore.com> 24953 24954 PR c/100653 24955 * doc/extend.texi (scalar_storage_order): Rephrase slightly. 24956 249572021-05-26 Aldy Hernandez <aldyh@redhat.com> 24958 24959 * tree-ssanames.c (get_range_info): Merge both copies of 24960 get_range_info into one that works with irange. 24961 * tree-ssanames.h (get_range_info): Remove version that works on 24962 wide_ints. 24963 249642021-05-26 Aldy Hernandez <aldyh@redhat.com> 24965 24966 * builtins.c (check_nul_terminated_array): Convert to get_range_query. 24967 (expand_builtin_strnlen): Same. 24968 (determine_block_size): Same. 24969 * fold-const.c (expr_not_equal_to): Same. 24970 * gimple-fold.c (size_must_be_zero_p): Same. 24971 * gimple-match-head.c: Include gimple-range.h. 24972 * gimple-pretty-print.c (dump_ssaname_info): Convert to get_range_query. 24973 * gimple-ssa-warn-restrict.c 24974 (builtin_memref::extend_offset_range): Same. 24975 * graphite-sese-to-poly.c (add_param_constraints): Same. 24976 * internal-fn.c (get_min_precision): Same. 24977 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Same. 24978 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same. 24979 * match.pd: Same. 24980 * tree-data-ref.c (split_constant_offset): Same. 24981 (dr_step_indicator): Same. 24982 * tree-dfa.c (get_ref_base_and_extent): Same. 24983 * tree-scalar-evolution.c (iv_can_overflow_p): Same. 24984 * tree-ssa-loop-niter.c (refine_value_range_using_guard): Same. 24985 (determine_value_range): Same. 24986 (record_nonwrapping_iv): Same. 24987 (infer_loop_bounds_from_signedness): Same. 24988 (scev_var_range_cant_overflow): Same. 24989 * tree-ssa-phiopt.c (two_value_replacement): Same. 24990 * tree-ssa-pre.c (insert_into_preds_of_block): Same. 24991 * tree-ssa-reassoc.c (optimize_range_tests_to_bit_test): Same. 24992 * tree-ssa-strlen.c (handle_builtin_stxncpy_strncat): Same. 24993 (get_range): Same. 24994 (dump_strlen_info): Same. 24995 (set_strlen_range): Same. 24996 (maybe_diag_stxncpy_trunc): Same. 24997 (get_len_or_size): Same. 24998 (handle_integral_assign): Same. 24999 * tree-ssa-structalias.c (find_what_p_points_to): Same. 25000 * tree-ssa-uninit.c (find_var_cmp_const): Same. 25001 * tree-switch-conversion.c (bit_test_cluster::emit): Same. 25002 * tree-vect-patterns.c (vect_get_range_info): Same. 25003 (vect_recog_divmod_pattern): Same. 25004 * tree-vrp.c (intersect_range_with_nonzero_bits): Same. 25005 (register_edge_assert_for_2): Same. 25006 (determine_value_range_1): Same. 25007 * tree.c (get_range_pos_neg): Same. 25008 * vr-values.c (vr_values::get_lattice_entry): Same. 25009 (vr_values::update_value_range): Same. 25010 (simplify_conversion_using_ranges): Same. 25011 250122021-05-26 Aldy Hernandez <aldyh@redhat.com> 25013 25014 * gimple-ssa-warn-alloca.c (alloca_call_type): Use 25015 get_range_query instead of query argument. 25016 (pass_walloca::execute): Enable and disable global ranger. 25017 250182021-05-26 Aldy Hernandez <aldyh@redhat.com> 25019 25020 * gimple-ssa-evrp.c (rvrp_folder::rvrp_folder): Call 25021 enable_ranger. 25022 (rvrp_folder::~rvrp_folder): Call disable_ranger. 25023 (hybrid_folder::hybrid_folder): Call enable_ranger. 25024 (hybrid_folder::~hybrid_folder): Call disable_ranger. 25025 250262021-05-26 Aldy Hernandez <aldyh@redhat.com> 25027 25028 * function.c (allocate_struct_function): Set cfun->x_range_query. 25029 * function.h (struct function): Declare x_range_query. 25030 (get_range_query): New. 25031 (get_global_range_query): New. 25032 * gimple-range-cache.cc (ssa_global_cache::ssa_global_cache): 25033 Remove call to safe_grow_cleared. 25034 * gimple-range.cc (get_range_global): New. 25035 (gimple_range_global): Move from gimple-range.h. 25036 (get_global_range_query): New. 25037 (global_range_query::range_of_expr): New. 25038 (enable_ranger): New. 25039 (disable_ranger): New. 25040 * gimple-range.h (gimple_range_global): Move to gimple-range.cc. 25041 (class global_range_query): New. 25042 (enable_ranger): New. 25043 (disable_ranger): New. 25044 * gimple-ssa-evrp.c (evrp_folder::~evrp_folder): Rename 25045 dump_all_value_ranges to dump. 25046 * tree-vrp.c (vrp_prop::finalize): Same. 25047 * value-query.cc (range_query::dump): New. 25048 * value-query.h (range_query::dump): New. 25049 * vr-values.c (vr_values::dump_all_value_ranges): Rename to... 25050 (vr_values::dump): ...this. 25051 * vr-values.h (class vr_values): Rename dump_all_value_ranges to 25052 dump and make virtual. 25053 250542021-05-26 Uro�� Bizjak <ubizjak@gmail.com> 25055 25056 * config/i386/i386.c (ix86_autovectorize_vector_modes): 25057 Add V4QImode and V16QImode for TARGET_SSE2. 25058 * doc/sourcebuild.texi (Vector-specific attributes): 25059 Add vect64 and vect32 description. 25060 250612021-05-26 Bernd Edlinger <bernd.edlinger@hotmail.de> 25062 25063 * gimple-range-gori.cc (range_def_chain::register_dependency): 25064 Resize m_def_chain when needed. 25065 250662021-05-26 Christophe Lyon <christophe.lyon@linaro.org> 25067 25068 * config/arm/mve.md (mve_vaddvq_<supf><mode>): Prefix with '@'. 25069 * config/arm/neon.md (reduc_plus_scal_<mode>): Move to .. 25070 * config/arm/vec-common.md: .. here. Add support for MVE. 25071 250722021-05-26 Jakub Jelinek <jakub@redhat.com> 25073 25074 * config/epiphany/epiphany.c (epiphany_print_operand_address): Remove 25075 register keywords. 25076 * config/microblaze/microblaze.c (microblaze_legitimize_address, 25077 call_internal1, 25078 microblaze_option_override, print_operand): Likewise. 25079 * config/microblaze/microblaze.md (call_internal_plt, 25080 call_value_intern_plt, call_value_intern): Likewise. 25081 * config/arm/aout.h (ASM_OUTPUT_ALIGN): Likewise. 25082 * config/iq2000/iq2000.md (call_internal1, call_value_internal1, 25083 call_value_multiple_internal1): Likewise. 25084 * config/bfin/bfin.c (symbolic_reference_mentioned_p): Likewise. 25085 250862021-05-26 Jan-Benedict Glaw <jbglaw@lug-owl.de> 25087 25088 * config/arc/arc.c (arc_address_cost, arc_print_operand_address, 25089 arc_ccfsm_advance, symbolic_reference_mentioned_p, 25090 arc_raw_symbolic_reference_mentioned_p): Remove register 25091 keyword. 25092 250932021-05-26 Jakub Jelinek <jakub@redhat.com> 25094 25095 PR libgomp/100573 25096 * omp-low.c: Include omp-offload.h. 25097 (create_omp_child_function): If current_function_decl has 25098 "omp declare target" attribute and is_gimple_omp_offloaded, 25099 remove that attribute from the copy of attribute list and 25100 add "omp target entrypoint" attribute instead. 25101 (lower_omp_target): Mark .omp_data_sizes.* and .omp_data_kinds.* 25102 variables for offloading if in omp_maybe_offloaded_ctx. 25103 * omp-offload.c (pass_omp_target_link::execute): Nullify second 25104 argument to GOMP_target_data_ext in offloaded code. 25105 251062021-05-26 Geng Qi <gengqi@linux.alibaba.com> 25107 25108 * config/csky/csky.c (csky_can_change_mode_class): Delete. 25109 For csky, HF/SF mode use the low bits of VREGS. 25110 251112021-05-26 Eric Botcazou <ebotcazou@adacore.com> 25112 25113 * gimplify.c (gimplify_decl_expr): Do not clear TREE_READONLY on a 25114 DECL which is a reference for OMP. 25115 251162021-05-26 Martin Liska <mliska@suse.cz> 25117 25118 PR gcov-profile/100751 25119 * doc/gcov.texi: Document that __gcov_dump can be called just 25120 once and that __gcov_reset resets run-time counters. 25121 251222021-05-26 Martin Liska <mliska@suse.cz> 25123 25124 * doc/install.texi: Port relevant part from install-old.texi 25125 and re-generate list of CPUs and systems. 25126 251272021-05-26 Martin Liska <mliska@suse.cz> 25128 25129 * Makefile.in: Remove it. 25130 * doc/include/fdl.texi: Update next/previous chapters. 25131 * doc/install.texi: Likewise. 25132 * doc/install-old.texi: Removed. 25133 251342021-05-26 Geng Qi <gengqi@linux.alibaba.com> 25135 25136 * config/csky/csky.c (ck810_legitimate_index_p): Support 25137 "base + index" with DF mode. 25138 * config/csky/constraints.md ("Y"): New constraint for memory operands 25139 without index register. 25140 * config/csky/csky_insn_fpuv2.md (fpuv3_movdf): Use "Y" instead of "m" 25141 when mov between memory and general registers, and lower their priority. 25142 * config/csky/csky_insn_fpuv3.md (fpuv2_movdf): Likewise. 25143 251442021-05-26 Geng Qi <gengqi@linux.alibaba.com> 25145 25146 * config/csky/csky.c (TARGET_PROMOTE_PROTOTYPES): Delete. 25147 251482021-05-26 Geng Qi <gengqi@linux.alibaba.com> 25149 25150 * config/csky/csky.md (untyped_call): Emit clobber for return 25151 registers to mark them used. 25152 251532021-05-26 Geng Qi <gengqi@linux.alibaba.com> 25154 25155 * config/csky/csky.md (cskyv2_sextend_ldbs): New. 25156 251572021-05-26 Andrew Pinski <apinski@marvell.com> 25158 25159 * match.pd (x < 0 ? ~y : y): New patterns. 25160 251612021-05-26 Andrew Pinski <apinski@marvell.com> 25162 25163 * match.pd (A?CST1:CST2): Add simplifcations for A?0:+-1, A?+-1:0, 25164 A?POW2:0 and A?0:POW2. 25165 251662021-05-25 Andrew MacLeod <amacleod@redhat.com> 25167 25168 * gimple-range-gori.cc (class logical_stmt_cache): Delete 25169 (logical_stmt_cache::logical_stmt_cache ): Delete. 25170 (logical_stmt_cache::~logical_stmt_cache): Delete. 25171 (logical_stmt_cache::cache_entry::dump): Delete. 25172 (logical_stmt_cache::get_range): Delete. 25173 (logical_stmt_cache::cached_name ): Delete. 25174 (logical_stmt_cache::same_cached_name): Delete. 25175 (logical_stmt_cache::cacheable_p): Delete. 25176 (logical_stmt_cache::slot_diagnostics ): Delete. 25177 (logical_stmt_cache::dump): Delete. 25178 (gori_compute_cache::gori_compute_cache): Delete. 25179 (gori_compute_cache::~gori_compute_cache): Delete. 25180 (gori_compute_cache::compute_operand_range): Delete. 25181 (gori_compute_cache::cache_stmt): Delete. 25182 * gimple-range-gori.h (gori_compute::compute_operand_range): Remove 25183 virtual. 25184 (class gori_compute_cache): Delete. 25185 251862021-05-25 Andrew MacLeod <amacleod@redhat.com> 25187 25188 * gimple-range.cc (fold_using_range::range_of_range_op): Use m_gori 25189 intead of m_cache. 25190 (fold_using_range::range_of_address): Adjust. 25191 (fold_using_range::range_of_phi): Adjust. 25192 * gimple-range.h (class fur_source): Adjust. 25193 (fur_source::fur_source): Adjust. 25194 251952021-05-25 Andrew MacLeod <amacleod@redhat.com> 25196 25197 * gimple-range-gori.cc (gori_compute::expr_range_at_stmt): Rename 25198 from expr_range_in_bb and adjust. 25199 (gori_compute::compute_name_range_op): Adjust. 25200 (gori_compute::optimize_logical_operands): Adjust. 25201 (gori_compute::compute_logical_operands_in_chain): Adjust. 25202 (gori_compute::compute_operand1_range): Adjust. 25203 (gori_compute::compute_operand2_range): Adjust. 25204 (ori_compute_cache::cache_stmt): Adjust. 25205 * gimple-range-gori.h (gori_compute): Rename prototype. 25206 252072021-05-25 Andrew MacLeod <amacleod@redhat.com> 25208 25209 * gimple-range.cc (gimple_ranger::range_of_expr): Non-null should be 25210 checked only after range_of_stmt, not range_on_entry. 25211 (gimple_ranger::range_on_entry): Check for non-null in any 25212 predecessor block, if it is not already non-null. 25213 (gimple_ranger::range_on_exit): DOnt check for non-null after 25214 range on entry call. 25215 (gimple_ranger::dump_bb): New. Split from dump. 25216 (gimple_ranger::dump): Adjust. 25217 * gimple-range.h (class gimple_ranger): Adjust. 25218 252192021-05-25 Andrew MacLeod <amacleod@redhat.com> 25220 25221 * gimple-range-cache.cc (struct range_timestamp): Delete. 25222 (class temporal_cache): Adjust. 25223 (temporal_cache::get_timestamp): Delete. 25224 (temporal_cache::set_dependency): Delete. 25225 (temporal_cache::temporal_value): Adjust. 25226 (temporal_cache::current_p): Take dependencies as params. 25227 (temporal_cache::set_timestamp): Adjust. 25228 (temporal_cache::set_always_current): Adjust. 25229 (ranger_cache::get_non_stale_global_range): Adjust. 25230 (ranger_cache::register_dependency): Delete. 25231 * gimple-range-cache.h (class range_cache): Adjust. 25232 252332021-05-25 Andrew MacLeod <amacleod@redhat.com> 25234 25235 * gimple-range-gori.cc (range_def_chain::range_def_chain): init 25236 bitmap obstack. 25237 (range_def_chain::~range_def_chain): Dispose of obstack rather than 25238 each individual bitmap. 25239 (range_def_chain::set_import): New. 25240 (range_def_chain::get_imports): New. 25241 (range_def_chain::chain_import_p): New. 25242 (range_def_chain::register_dependency): Rename from build_def_chain 25243 and set imports. 25244 (range_def_chain::def_chain_in_bitmap_p): New. 25245 (range_def_chain::add_def_chain_to_bitmap): New. 25246 (range_def_chain::has_def_chain): Just check first depenedence. 25247 (range_def_chain::get_def_chain): Process imports, use generic 25248 register_dependency routine. 25249 (range_def_chain::dump): New. 25250 (gori_map::gori_map): Allocate import list. 25251 (gori_map::~gori_map): Release imports. 25252 (gori_map::exports): Check for past allocated block size. 25253 (gori_map::imports): New. 25254 (gori_map::def_chain_in_export_p): Delete. 25255 (gori_map::is_import_p): New. 25256 (gori_map::maybe_add_gori): Handle imports. 25257 (gori_map::dump): Adjust output, add imports. 25258 (gori_compute::has_edge_range_p): Remove def_chain_in_export call. 25259 (gori_export_iterator::gori_export_iterator): New. 25260 (gori_export_iterator::next): New. 25261 (gori_export_iterator::get_name): New. 25262 * gimple-range-gori.h (range_def_chain): Add imports and direct 25263 dependecies via struct rdc. 25264 (range_def_chain::depend1): New. 25265 (range_def_chain::depend2): New. 25266 (class gori_map): Adjust. 25267 (FOR_EACH_GORI_IMPORT_NAME): New. 25268 (FOR_EACH_GORI_EXPORT_NAME): New. 25269 (class gori_export_iterator): New. 25270 252712021-05-25 Andrew MacLeod <amacleod@redhat.com> 25272 25273 * gimple-range-cache.cc (ranger_cache::ranger_cache): Move initial 25274 export cache filling to here. 25275 * gimple-range-gori.cc (gori_compute::gori_compute) : From Here. 25276 252772021-05-25 Andrew MacLeod <amacleod@redhat.com> 25278 25279 * gimple-range-gori.cc (range_def_chain): Move to gimple-range-gori.h. 25280 (gori_map): Move to gimple-range-gori.h. 25281 (gori_compute::gori_compute): Adjust. 25282 (gori_compute::~gori_compute): Delete. 25283 (gori_compute::compute_operand_range_switch): Adjust. 25284 (gori_compute::compute_operand_range): Adjust. 25285 (gori_compute::compute_logical_operands): Adjust. 25286 (gori_compute::has_edge_range_p ): Adjust. 25287 (gori_compute::set_range_invariant): Delete. 25288 (gori_compute::dump): Adjust. 25289 (gori_compute::outgoing_edge_range_p): Adjust. 25290 * gimple-range-gori.h (class range_def_chain): Relocate here. 25291 (class gori_map): Relocate here. 25292 (class gori_compute): Inherit from gori_map, and adjust. 25293 252942021-05-25 Aldy Hernandez <aldyh@redhat.com> 25295 25296 * value-range.cc (range_tests_legacy): Use 25297 build_nonstandard_integer_type instead of int and short. 25298 252992021-05-25 Eric Botcazou <ebotcazou@adacore.com> 25300 25301 * gimplify.c (gimplify_decl_expr): Clear TREE_READONLY on the DECL 25302 when really creating an initialization statement for it. 25303 253042021-05-25 Eric Botcazou <ebotcazou@adacore.com> 25305 25306 * tree-inline.c (setup_one_parameter): Fix thinko in new condition. 25307 253082021-05-25 Kito Cheng <kito.cheng@sifive.com> 25309 25310 * config/riscv/riscv.h (ASM_SPEC): Pass -mno-relax. 25311 253122021-05-25 Martin Liska <mliska@suse.cz> 25313 25314 PR tree-optimization/92860 25315 PR target/99592 25316 * optc-save-gen.awk: Remove exceptions. 25317 253182021-05-25 Martin Liska <mliska@suse.cz> 25319 25320 * asan.h (sanitize_coverage_p): New function. 25321 * doc/extend.texi: Document it. 25322 * fold-const.c (fold_range_test): Use sanitize_flags_p 25323 instead of flag_sanitize_coverage. 25324 (fold_truth_andor): Likewise. 25325 * sancov.c: Likewise. 25326 * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. 25327 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Handle 25328 -fsanitize-coverage when inlining. 25329 253302021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com> 25331 25332 * config/csky/csky-modes.def : Fix copyright. 25333 253342021-05-25 Cooper Qu <cooper.qu@linux.alibaba.com> 25335 25336 * config/csky/csky-modes.def : Amend copyright. 25337 * config/csky/csky_insn_fpuv2.md : Likewise. 25338 * config/csky/csky_insn_fpuv3.md : Likewise. 25339 253402021-05-25 Richard Biener <rguenther@suse.de> 25341 25342 PR middle-end/100727 25343 * calls.c (initialize_argument_information): Explicitely test 25344 for WITH_SIZE_EXPR. 25345 * gimple-expr.c (mark_addressable): Skip outer WITH_SIZE_EXPR. 25346 253472021-05-25 Geng Qi <gengqi@linux.alibaba.com> 25348 25349 * config/csky/csky.h (FRAME_POINTER_REGNUM): Use 25350 HARD_FRAME_POINTER_REGNUM and FRAME_POINTER_REGNUM instead of 25351 the signle definition. The signle definition may not work well 25352 at simplify_subreg_regno(). 25353 (HARD_FRAME_POINTER_REGNUM): New. 25354 (ELIMINABLE_REGS): Add for HARD_FRAME_POINTER_REGNUM. 25355 * config/csky/csky.c (get_csky_live_regs, csky_can_eliminate, 25356 csky_initial_elimination_offset, csky_expand_prologue, 25357 csky_expand_epilogue): Add for HARD_FRAME_POINTER_REGNUM. 25358 253592021-05-25 Geng Qi <gengqi@linux.alibaba.com> 25360 25361 * config/csky/csky.c (csky_option_override): 25362 Init csky_arch_isa_features[] in advance, so TARGET_DSP 25363 and TARGET_DIV can be set well. 25364 253652021-05-25 Geng Qi <gengqi@linux.alibaba.com> 25366 25367 * config/csky/constraints.md ("l", "h"): Delete. 25368 * config/csky/csky.h (reg_class, REG_CLASS_NAMES, 25369 REG_CLASS_CONTENTS): Delete LO_REGS and HI_REGS. 25370 * config/csky/csky.c (regno_reg_classm, 25371 csky_secondary_reload, csky_register_move_cost): 25372 Use HILO_REGS instead of LO_REGS and HI_REGS. 25373 253742021-05-25 Geng Qi <gengqi@linux.alibaba.com> 25375 25376 * config/csky/constraints.md ("W"): New constriant for mem operand 25377 with base reg, index register. 25378 ("Q"): Renamed and modified "csky_valid_fpuv2_mem_operand" to 25379 "csky_valid_mem_constraint_operand" to deal with both "Q" and "W" 25380 constraint. 25381 ("Dv"): New constraint for const double value that can be used at 25382 fmovi instruction. 25383 * config/csky/csky-modes.def (HFmode): New mode. 25384 * config/csky/csky-protos.h (csky_valid_fpuv2_mem_operand): Rename 25385 to "csky_valid_mem_constraint_operand" and support new constraint 25386 "W". 25387 (csky_get_movedouble_length): New. 25388 (fpuv3_output_move): New. 25389 (fpuv3_const_double): New. 25390 * config/csky/csky.c (csky_option_override): New arch CK860 with fpv3. 25391 (decompose_csky_address): Refine. 25392 (csky_print_operand): New "CONST_DOUBLE" operand. 25393 (csky_output_move): Support fpv3 instructions. 25394 (csky_get_movedouble_length): New. 25395 (fpuv3_output_move): New. 25396 (fpuv3_const_double): New. 25397 (csky_emit_compare): Cover float comparsion. 25398 (csky_emit_compare_float): Refine. 25399 (csky_vaild_fpuv2_mem_operand): Rename to 25400 "csky_valid_mem_constraint_operand" and support new constraint "W". 25401 (ck860_rtx_costs): New. 25402 (csky_rtx_costs): Add the cost calculation of CK860. 25403 (regno_reg_class): New vregs for fpuv3. 25404 (csky_dbx_regno): Likewise. 25405 (csky_cpu_cpp_builtins): New builtin macro for fpuv3. 25406 (csky_conditional_register_usage): Suporrot fpuv3. 25407 (csky_dwarf_register_span): Suporrot fpuv3. 25408 (csky_init_builtins, csky_mangle_type): Support "__fp16" type. 25409 (ck810_legitimate_index_p): Support fp16. 25410 * config/csky/csky.h (TARGET_TLS): ADD CK860. 25411 (CSKY_VREG_P, CSKY_VREG_LO_P, CSKY_VREG_HI_P): Support fpuv3. 25412 (TARGET_SINGLE_FPU): Support fpuv3. 25413 (TARGET_SUPPORT_FPV3): New. 25414 (FIRST_PSEUDO_REGISTER): Change to 202 to hold the new fpuv3 registers. 25415 (FIXED_REGISTERS, CALL_REALLY_USED_REGISTERS, REGISTER_NAMES, 25416 REG_CLASS_CONTENTS): Support fpuv3. 25417 * config/csky/csky.md (movsf): Move to cksy_insn_fpu.md and refine. 25418 (csky_movsf_fpv2): Likewise. 25419 (ck801_movsf): Likewise. 25420 (csky_movsf): Likewise. 25421 (movdf): Likewise. 25422 (csky_movdf_fpv2): Likewise. 25423 (ck801_movdf): Likewise. 25424 (csky_movdf): Likewise. 25425 (movsicc): Refine. Use "comparison_operatior" instead of 25426 "ordered_comparison_operatior". 25427 (addsicc): Likewise. 25428 (CSKY_FIRST_VFP3_REGNUM, CSKY_LAST_VFP3_REGNUM): New constant. 25429 (call_value_internal_vh): New. 25430 * config/csky/csky_cores.def (CK860): New arch and cpu. 25431 (fpv3_hf): New. 25432 (fpv3_hsf): New. 25433 (fpv3_sdf): New. 25434 (fpv3): New. 25435 * config/csky/csky_insn_fpu.md: Refactor. Separate all float patterns 25436 into emit-patterns and match-patterns, remain the emit-patterns here, 25437 and move the match-patterns to csky_insn_fpuv2.md or 25438 csky_insn_fpuv3.md. 25439 * config/csky/csky_insn_fpuv2.md: New file for fpuv2 instructions. 25440 * config/csky/csky_insn_fpuv3.md: New file and new patterns for fpuv3 25441 isntructions. 25442 * config/csky/csky_isa.def (fcr): New. 25443 (fpv3_hi): New. 25444 (fpv3_hf): New. 25445 (fpv3_sf): New. 25446 (fpv3_df): New. 25447 (CK860): New definition for ck860. 25448 * config/csky/csky_tables.opt (ck860): New processors ck860, 25449 ck860f. And new arch ck860. 25450 (fpv3_hf): New. 25451 (fpv3_hsf): New. 25452 (fpv3_hdf): New. 25453 (fpv3): New. 25454 * config/csky/predicates.md (csky_float_comparsion_operator): Delete 25455 "geu", "gtu", "leu", "ltu", which will never appear at float comparison. 25456 * config/csky/t-csky-elf: Support 860. 25457 * config/csky/t-csky-linux: Likewise. 25458 * doc/md.texi: Add "Q" and "W" constraints for C-SKY. 25459 254602021-05-24 Aaron Sawdey <acsawdey@linux.ibm.com> 25461 25462 * config/rs6000/genfusion.pl (gen_logical_addsubf): Refactor to 25463 add generation of logical-add and add-logical fusion pairs. 25464 * config/rs6000/rs6000-cpus.def: Add new fusion to ISA 3.1 mask 25465 and powerpc mask. 25466 * config/rs6000/rs6000.c (rs6000_option_override_internal): Turn on 25467 logical-add and add-logical fusion by default. 25468 * config/rs6000/rs6000.opt: Add -mpower10-fusion-logical-add and 25469 -mpower10-fusion-add-logical options. 25470 * config/rs6000/fusion.md: Regenerate file. 25471 254722021-05-24 Aldy Hernandez <aldyh@redhat.com> 25473 25474 * value-range.cc (irange::legacy_equal_p): Check type when 25475 comparing VR_VARYING types. 25476 (range_tests_legacy): Test comparing VARYING ranges of different 25477 sizes. 25478 254792021-05-24 Wilco Dijkstra <wdijkstr@arm.com> 25480 25481 * config/aarch64/aarch64.c (neoversen1_tunings): 25482 Enable AARCH64_EXTRA_TUNE_CHEAP_SHIFT_EXTEND. 25483 254842021-05-24 Wilco Dijkstra <wdijkstr@arm.com> 25485 25486 * config/aarch64/aarch64.c (aarch64_classify_symbol): Use GOT for 25487 extern weak symbols. Limit symbol offsets for non-GOT symbols with 25488 PIC/PIE. 25489 254902021-05-24 Christophe Lyon <christophe.lyon@linaro.org> 25491 25492 * config/arm/neon.md (vec_load_lanesxi<mode>) 25493 (vec_store_lanexoi<mode>): Move ... 25494 * config/arm/vec-common.md: here. 25495 254962021-05-24 Christophe Lyon <christophe.lyon@linaro.org> 25497 25498 * config/arm/neon.md (vec_load_lanesoi<mode>) 25499 (vec_store_lanesoi<mode>): Move ... 25500 * config/arm/vec-common.md: here. 25501 255022021-05-24 liuhongt <hongtao.liu@intel.com> 25503 25504 PR target/100660 25505 * config/i386/i386.c (ix86_gimple_fold_builtin): Replacing 25506 stmt with GIMPLE_NOP when lhs doesn't exist. 25507 255082021-05-23 Uro�� Bizjak <ubizjak@gmail.com> 25509 25510 PR target/100722 25511 * config/i386/mmx.md (*push<VI_32:mode>2_rex64): 25512 New instruction pattern. 25513 (*push<VI_32:mode>2): Ditto. 25514 (push splitter for SSE registers): New splitter. 25515 255162021-05-23 Andrew Pinski <apinski@marvell.com> 25517 25518 * match.pd ((A & C) != 0 ? D : 0): Limit to non pointer types. 25519 255202021-05-22 Aaron Sawdey <acsawdey@linux.ibm.com> 25521 25522 * config/rs6000/genfusion.pl (gen_addadd): Fix incorrect attr types. 25523 * config/rs6000/fusion.md: Regenerate file. 25524 255252021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com> 25526 25527 * config/rs6000/genfusion.pl (gen_addadd): New function. 25528 * config/rs6000/fusion.md: Regenerate file. 25529 * config/rs6000/rs6000-cpus.def: Add 25530 OPTION_MASK_P10_FUSION_2ADD to masks. 25531 * config/rs6000/rs6000.c (rs6000_option_override_internal): 25532 Handle default value of OPTION_MASK_P10_FUSION_2ADD. 25533 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2add. 25534 255352021-05-21 Jakub Jelinek <jakub@redhat.com> 25536 25537 PR middle-end/99928 25538 * tree.h (OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET): Define. 25539 * gimplify.c (enum gimplify_omp_var_data): Fix up 25540 GOVD_MAP_HAS_ATTACHMENTS value, add GOVD_FIRSTPRIVATE_IMPLICIT. 25541 (omp_lastprivate_for_combined_outer_constructs): If combined target 25542 has GOVD_FIRSTPRIVATE_IMPLICIT set for the decl, change it to 25543 GOVD_MAP | GOVD_SEEN. 25544 (gimplify_scan_omp_clauses): Set GOVD_FIRSTPRIVATE_IMPLICIT for 25545 firstprivate clauses with OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT. 25546 (gimplify_adjust_omp_clauses): For firstprivate clauses with 25547 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT either clear that bit and 25548 OMP_CLAUSE_FIRSTPRIVATE_IMPLICIT_TARGET too, or remove it and 25549 let it be replaced by implicit map clause. 25550 255512021-05-21 Jakub Jelinek <jakub@redhat.com> 25552 25553 PR middle-end/99928 25554 * gimplify.c (omp_lastprivate_for_combined_outer_constructs): New 25555 function. 25556 (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LASTPRIVATE>: Use it. 25557 (gimplify_omp_for): Likewise. 25558 255592021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25560 25561 PR middle-end/90115 25562 * omp-low.c (oacc_privatization_candidate_p): Reject 'static', 25563 'external' in blocks. 25564 255652021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25566 25567 PR middle-end/90115 25568 * flag-types.h (enum openacc_privatization): New. 25569 * params.opt (-param=openacc-privatization): New. 25570 * doc/invoke.texi (openacc-privatization): Document it. 25571 * omp-general.h (get_openacc_privatization_dump_flags): New 25572 function. 25573 * omp-low.c (oacc_privatization_candidate_p): Add diagnostics. 25574 * omp-offload.c (execute_oacc_device_lower) 25575 <IFN_UNIQUE_OACC_PRIVATE>: Re-work diagnostics. 25576 * target.def (goacc.adjust_private_decl): Add 'location_t' 25577 parameter. 25578 * doc/tm.texi: Regenerate. 25579 * config/gcn/gcn-protos.h (gcn_goacc_adjust_private_decl): Adjust. 25580 * config/gcn/gcn-tree.c (gcn_goacc_adjust_private_decl): Likewise. 25581 * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl): 25582 Likewise. Preserve it for... 25583 (nvptx_goacc_expand_var_decl): ... use here. 25584 255852021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25586 25587 * doc/sourcebuild.texi (Other attributes): Document '__OPTIMIZE__' 25588 DejaGnu selector. 25589 255902021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25591 25592 PR middle-end/90115 25593 * omp-low.c (oacc_privatization_candidate_p): New function. 25594 (oacc_privatization_scan_clause_chain) 25595 (oacc_privatization_scan_decl_chain): Use it. Also 25596 'gcc_checking_assert' that we're not seeing duplicates. 25597 255982021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25599 25600 PR middle-end/90115 25601 * omp-offload.c (execute_oacc_device_lower): Skip processing if no 25602 work to be done. 25603 256042021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25605 25606 PR middle-end/90115 25607 * omp-offload.c (execute_oacc_device_lower): Explain. 25608 256092021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25610 25611 PR middle-end/90115 25612 * omp-offload.c (execute_oacc_device_lower) 25613 <IFN_UNIQUE_OACC_PRIVATE>: Diagnose and handle for 'level == -1' 25614 case, too. 25615 * internal-fn.c (expand_UNIQUE): Don't expect 25616 'IFN_UNIQUE_OACC_PRIVATE'. 25617 256182021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25619 25620 PR middle-end/90115 25621 * omp-low.c (lower_omp_for): Don't evaluate OpenMP 'for' clauses. 25622 256232021-05-21 Thomas Schwinge <thomas@codesourcery.com> 25624 25625 PR middle-end/90115 25626 * config/nvptx/nvptx.c (nvptx_goacc_adjust_private_decl) 25627 (nvptx_goacc_expand_var_decl): Tighten. 25628 256292021-05-21 Julian Brown <julian@codesourcery.com> 25630 Chung-Lin Tang <cltang@codesourcery.com> 25631 Thomas Schwinge <thomas@codesourcery.com> 25632 25633 PR middle-end/90115 25634 * doc/tm.texi.in (TARGET_GOACC_EXPAND_VAR_DECL) 25635 (TARGET_GOACC_ADJUST_PRIVATE_DECL): Add documentation hooks. 25636 * doc/tm.texi: Regenerate. 25637 * expr.c (expand_expr_real_1): Expand decls using the 25638 expand_var_decl OpenACC hook if defined. 25639 * internal-fn.c (expand_UNIQUE): Handle IFN_UNIQUE_OACC_PRIVATE. 25640 * internal-fn.h (IFN_UNIQUE_CODES): Add OACC_PRIVATE. 25641 * omp-low.c (omp_context): Add oacc_privatization_candidates 25642 field. 25643 (lower_oacc_reductions): Add PRIVATE_MARKER parameter. Insert 25644 before fork. 25645 (lower_oacc_head_tail): Add PRIVATE_MARKER parameter. Modify 25646 private marker's gimple call arguments, and pass it to 25647 lower_oacc_reductions. 25648 (oacc_privatization_scan_clause_chain) 25649 (oacc_privatization_scan_decl_chain, lower_oacc_private_marker): 25650 New functions. 25651 (lower_omp_for, lower_omp_target, lower_omp_1): Use these. 25652 * omp-offload.c (convert.h): Include. 25653 (oacc_loop_xform_head_tail): Treat private-variable markers like 25654 fork/join when transforming head/tail sequences. 25655 (struct var_decl_rewrite_info): Add struct. 25656 (oacc_rewrite_var_decl, is_sync_builtin_call): New functions. 25657 (execute_oacc_device_lower): Support rewriting gang-private 25658 variables using target hook, and fix up addr_expr and var_decl 25659 nodes afterwards. 25660 * target.def (adjust_private_decl, expand_var_decl): New hooks. 25661 * config/gcn/gcn-protos.h (gcn_goacc_adjust_gangprivate_decl): 25662 Rename to... 25663 (gcn_goacc_adjust_private_decl): ...this. 25664 * config/gcn/gcn-tree.c (gcn_goacc_adjust_gangprivate_decl): 25665 Rename to... 25666 (gcn_goacc_adjust_private_decl): ...this. Add LEVEL parameter. 25667 * config/gcn/gcn.c (TARGET_GOACC_ADJUST_GANGPRIVATE_DECL): Rename 25668 definition using gcn_goacc_adjust_gangprivate_decl... 25669 (TARGET_GOACC_ADJUST_PRIVATE_DECL): ...to this, using 25670 gcn_goacc_adjust_private_decl. 25671 * config/nvptx/nvptx.c (tree-pretty-print.h): Include. 25672 (gang_private_shared_size): New global variable. 25673 (gang_private_shared_align): Likewise. 25674 (gang_private_shared_sym): Likewise. 25675 (gang_private_shared_hmap): Likewise. 25676 (nvptx_option_override): Initialize these. 25677 (nvptx_file_end): Output gang_private_shared_sym. 25678 (nvptx_goacc_adjust_private_decl, nvptx_goacc_expand_var_decl): 25679 New functions. 25680 (nvptx_set_current_function): Clear gang_private_shared_hmap. 25681 (TARGET_GOACC_ADJUST_PRIVATE_DECL): Define hook. 25682 (TARGET_GOACC_EXPAND_VAR_DECL): Likewise. 25683 256842021-05-21 H.J. Lu <hjl.tools@gmail.com> 25685 25686 * config/i386/i386-modes.def (MAX_BITSIZE_MODE_ANY_INT): Removed. 25687 256882021-05-21 Richard Biener <rguenther@suse.de> 25689 H.J. Lu <hjl.tools@gmail.com> 25690 25691 PR middle-end/90773 25692 * expr.c (expand_constructor): Elide expand_constructor if 25693 move by pieces is preferred. 25694 256952021-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 25696 25697 * config/aarch64/aarch64-builtins.c (aarch64_call_properties): 25698 Take a flag and mode value as arguments. 25699 (aarch64_modifies_global_state_p): Likewise. 25700 (aarch64_reads_global_state_p): Likewise. 25701 (aarch64_could_trap_p): Likewise. 25702 (aarch64_get_attributes): Likewise. 25703 (aarch64_init_simd_builtins): Adjust callsite of above. 25704 (aarch64_init_fcmla_laneq_builtins): Use aarch64_get_attributes to get 25705 function attributes to apply to builtins. 25706 (aarch64_init_crc32_builtins): Likewise. 25707 (aarch64_init_builtin_rsqrt): Likewise. 25708 257092021-05-21 Aaron Sawdey <acsawdey@linux.ibm.com> 25710 25711 * config/rs6000/rs6000.md (define_attr "type"): Add types for fusion. 25712 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10): Use new fusion types. 25713 (gen_2logical): Use new fusion types. 25714 * config/rs6000/fusion.md: Regenerate. 25715 257162021-05-21 Uro�� Bizjak <ubizjak@gmail.com> 25717 25718 PR target/100637 25719 * config/i386/i386-expand.c (ix86_expand_sse_movcc): 25720 Handle V4QI and V2HI modes. 25721 (ix86_expand_sse_movcc): Ditto. 25722 * config/i386/mmx.md (*<sat_plusminus:insn><VI_32:mode>3): 25723 New instruction pattern. 25724 (*eq<VI_32:mode>3): Ditto. 25725 (*gt<VI_32:mode>3): Ditto. 25726 (*xop_pcmov_<VI_32:mode>): Ditto. 25727 (mmx_pblendvb32): Ditto. 25728 (mmx_pblendvb64): Rename from mmx_pblendvb. 25729 (vec_cmp<VI_32:mode><VI_32:mode>): New expander. 25730 (vec_cmpu<VI_32:mode><VI_32:mode>): Ditto. 25731 (vcond<VI_32:mode><VI_32:mode>): Ditto. 25732 (vcondu<VI_32:mode><VI_32:mode>): Ditto. 25733 (vcond_mask_<VI_32:mode><VI_32:mode>): Ditto. 25734 257352021-05-21 Jakub Jelinek <jakub@redhat.com> 25736 25737 PR tree-optimization/94589 25738 * tree-ssa-phiopt.c (spaceship_replacement): For integral rhs1 and 25739 rhs2, treat x <= 4 equivalently to x < 5 etc. In cmp1 and cmp2 (if 25740 not the same as cmp3) treat <= the same as < and >= the same as >. 25741 Don't require that cond2_phi_edge is true edge, instead take 25742 false/true edges into account based on cmp1/cmp2 comparison kinds. 25743 257442021-05-21 Uro�� Bizjak <ubizjak@gmail.com> 25745 25746 PR target/100637 25747 * config/i386/mmx.md (SMAXMIN_MMXMODEI): New mode iterator. 25748 (<smaxmin:code><SMAXMIN_MMXMODEI:mode>3): Macroize expander 25749 from <smaxmin:code>v4hi3> and <smaxmin:code><MMXMODE14:mode>3 25750 using SMAXMIN_MMXMODEI mode iterator. 25751 (*<smaxmin:code>v4qi3): New insn pattern. 25752 (*<smaxmin:code>v2hi3): Ditto. 25753 (SMAXMIN_VI_32): New mode iterator. 25754 (<smaxmin:code><SMAXMIN_VI_32>mode3): New expander. 25755 (UMAXMIN_MMXMODEI): New mode iterator. 25756 (<umaxmin:code><UMAXMIN_MMXMODEI:mode>3): Macroize expander 25757 from <umaxmin:code>v8qi3> and <umaxmin:code><MMXMODE24:mode>3 25758 using UMAXMIN_MMXMODEI mode iterator. 25759 (*<umaxmin:code>v4qi3): New insn pattern. 25760 (*<umaxmin:code>v2hi3): Ditto. 25761 (UMAXMIN_VI_32): New mode iterator. 25762 (<umaxmin:code><UMAXMIN_VI_32>mode3): New expander. 25763 (abs<VI_32:mode>2): New insn pattern. 25764 (ssse3_abs<MMXMODEI:mode>2, abs<MMXMODEI:mode>2): Move from ... 25765 * config/i386/sse.md: ... here. 25766 257672021-05-20 Clement Chigot <clement.chigot@atos.net> 25768 David Edelsohn <dje.gcc@gmail.com> 25769 25770 * collect2.c (scan_prog_file): Issue non-fatal warning for 25771 non-COFF files. 25772 257732021-05-20 Jonathan Wakely <jwakely@redhat.com> 25774 25775 * doc/invoke.texi (-Wno-c++11-extensions) 25776 (-Wno-c++14-extensions, -Wno-c++17-extensions) 25777 (-Wno-c++20-extensions, -Wno-c++23-extensions): Document 25778 new options. 25779 257802021-05-20 Indu Bhagat <indu.bhagat@oracle.com> 25781 25782 * config/c6x/c6x.c (c6x_output_file_unwind): Use dwarf_debuginfo_p. 25783 * config/darwin.c (darwin_override_options): Likewise. 25784 * config/i386/cygming.h (DBX_REGISTER_NUMBER): Likewise. 25785 * config/i386/darwin.h (DBX_REGISTER_NUMBER): Likewise. 25786 (DWARF2_FRAME_REG_OUT): Likewise. 25787 * config/mips/mips.c (mips_output_filename): Likewise. 25788 * config/rs6000/rs6000.c (rs6000_xcoff_declare_function_name): 25789 Likewise. 25790 (rs6000_dbx_register_number): Likewise. 25791 * dbxout.c: Include flags.h. 25792 * dwarf2cfi.c (cfi_label_required_p): Likewise. 25793 (dwarf2out_do_frame): Likewise. 25794 * except.c: Include flags.h. 25795 * final.c (dwarf2_debug_info_emitted_p): Likewise. 25796 (final_scan_insn_1): Likewise. 25797 * flags.h (dwarf_debuginfo_p): New function declaration. 25798 * opts.c (dwarf_debuginfo_p): New function definition. 25799 * targhooks.c (default_debug_unwind_info): Use dwarf_debuginfo_p. 25800 * toplev.c (process_options): Likewise. 25801 258022021-05-20 Indu Bhagat <indu.bhagat@oracle.com> 25803 25804 * common.opt: Change type to support bitmasks. 25805 * flag-types.h (enum debug_info_type): Rename enumerator constants. 25806 (NO_DEBUG): New bitmask. 25807 (DBX_DEBUG): Likewise. 25808 (DWARF2_DEBUG): Likewise. 25809 (XCOFF_DEBUG): Likewise. 25810 (VMS_DEBUG): Likewise. 25811 (VMS_AND_DWARF2_DEBUG): Likewise. 25812 * flags.h (debug_set_to_format): New function declaration. 25813 (debug_set_count): Likewise. 25814 (debug_set_names): Likewise. 25815 * opts.c (debug_type_masks): Array of bitmasks for debug formats. 25816 (debug_set_to_format): New function definition. 25817 (debug_set_count): Likewise. 25818 (debug_set_names): Likewise. 25819 (set_debug_level): Update access to debug_type_names. 25820 * toplev.c: Likewise. 25821 258222021-05-20 Martin Sebor <msebor@redhat.com> 25823 25824 PR middle-end/100684 25825 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Handle C++ lambda. 25826 258272021-05-20 Uro�� Bizjak <ubizjak@gmail.com> 25828 25829 PR target/100701 25830 * config/i386/i386.md (isa): Remove x64_bmi. 25831 (enabled): Remove x64_bmi. 25832 * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3): 25833 Remove general register alternative. 25834 (*andnot<VI_32:mode>3): Ditto. 25835 (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto. 25836 (*<any_logic:code><VI_32:mode>3): Ditto. 25837 258382021-05-20 Kewen Lin <linkw@linux.ibm.com> 25839 25840 * config/arm/arm.c: Include head files tree-vectorizer.h and 25841 cfgloop.h. 25842 258432021-05-20 Uro�� Bizjak <ubizjak@gmail.com> 25844 25845 PR target/100637 25846 * config/i386/mmx.md (Yv_Yw): Revert adding V4QI and V2HI modes. 25847 (*<plusminus:insn><VI_32:mode>3): Use Yw instad of <Yv_Yw> constrint. 25848 (<s>mulv4hi3_highpart): New expander. 25849 (*<s>mulv2hi3_highpart): New insn pattern. 25850 (<s>mulv2hi3_higpart): New expander. 25851 (*<any_shift:insn>v2hi3): New insn pattern. 25852 (<any_shift:insn>v2hi3): New expander. 25853 * config/i386/sse.md (smulhrsv2hi3): New expander. 25854 (*smulhrsv2hi3): New insn pattern. 25855 258562021-05-20 Kewen Lin <linkw@linux.ibm.com> 25857 25858 * doc/invoke.texi (vect-inner-loop-cost-factor): Document new 25859 parameter. 25860 * params.opt (vect-inner-loop-cost-factor): New. 25861 * targhooks.c (default_add_stmt_cost): Replace hardcoded factor 25862 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR, include head file 25863 tree-vectorizer.h and its required ones. 25864 * config/aarch64/aarch64.c (aarch64_add_stmt_cost): Replace 25865 hardcoded factor 50 with LOOP_VINFO_INNER_LOOP_COST_FACTOR. 25866 * config/arm/arm.c (arm_add_stmt_cost): Likewise. 25867 * config/i386/i386.c (ix86_add_stmt_cost): Likewise. 25868 * config/rs6000/rs6000.c (rs6000_add_stmt_cost): Likewise. 25869 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 25870 Likewise. 25871 (_loop_vec_info::_loop_vec_info): Init inner_loop_cost_factor. 25872 * tree-vectorizer.h (_loop_vec_info): Add inner_loop_cost_factor. 25873 (LOOP_VINFO_INNER_LOOP_COST_FACTOR): New macro. 25874 258752021-05-20 Christophe Lyon <christophe.lyon@linaro.org> 25876 Torbj��rn Svensson <torbjorn.svensson@st.com> 25877 25878 PR c/42579 25879 * doc/cpp.texi (Common Predefined Macros): Document __FILE_NAME__. 25880 258812021-05-20 Jakub Jelinek <jakub@redhat.com> 25882 25883 PR middle-end/99928 25884 * gimplify.c (gimplify_scan_omp_clauses) <case OMP_CLAUSE_LINEAR>: For 25885 explicit linear clause when combined with target, make it map(tofrom:) 25886 instead of no clause or firstprivate. 25887 258882021-05-20 Jakub Jelinek <jakub@redhat.com> 25889 25890 PR tree-optimization/94589 25891 * match.pd ((X & Y) == X -> (X & ~Y) == 0): Simplify even in presence 25892 of integral conversions. 25893 258942021-05-19 Andrew MacLeod <amacleod@redhat.com> 25895 25896 * gimple-range.cc (fur_source::get_operand): New. 25897 (gimple_range_fold): Delete. 25898 (fold_using_range::fold_stmt): Move from gimple_ranger::calc_stmt. 25899 (fold_using_range::range_of_range_op): Move from gimple_ranger. 25900 (fold_using_range::range_of_address): Ditto. 25901 (fold_using_range::range_of_phi): Ditto. 25902 (fold_using_range::range_of_call): Ditto. 25903 (fold_using_range::range_of_builtin_ubsan_call): Move from 25904 range_of_builtin_ubsan_call. 25905 (fold_using_range::range_of_builtin_call): Move from 25906 range_of_builtin_call. 25907 (gimple_ranger::range_of_builtin_call): Delete. 25908 (fold_using_range::range_of_cond_expr): Move from gimple_ranger. 25909 (gimple_ranger::fold_range_internal): New. 25910 (gimple_ranger::range_of_stmt): Use new fold_using_range API. 25911 (fold_using_range::range_of_ssa_name_with_loop_info): Move from 25912 gimple_ranger. Improve ranges of SSA_NAMES when possible. 25913 * gimple-range.h (gimple_ranger): Remove various range_of routines. 25914 (class fur_source): New. 25915 (class fold_using_range): New. 25916 (fur_source::fur_source): New. 25917 (fold_range): New. 25918 * vr-values.c (vr_values::extract_range_basic): Use fold_using_range 25919 instead of range_of_builtin_call. 25920 259212021-05-19 Jonathan Wakely <jwakely@redhat.com> 25922 25923 * doc/cpp.texi (Common Predefined Macros): Update documentation 25924 for the __GXX_EXPERIMENTAL_CXX0X__ macro. 25925 259262021-05-19 Alex Coplan <alex.coplan@arm.com> 25927 25928 PR target/100333 25929 * config/arm/arm.md (nonsecure_call_internal): Always ensure 25930 callee's address is in a register. 25931 259322021-05-19 Geng Qi <gengqi@linux.alibaba.com> 25933 25934 * common/config/riscv/riscv-common.c 25935 (riscv_subset_list::parsing_subset_version): Properly parse the letter 25936 'p' in '-march'. 25937 (riscv_subset_list::parse_std_ext, 25938 riscv_subset_list::parse_multiletter_ext): To handle errors generated 25939 in riscv_subset_list::parsing_subset_version. 25940 259412021-05-19 Jonathan Wright <jonathan.wright@arm.com> 25942 25943 * config/aarch64/aarch64-simd.md: Use "neon_move_narrow_q" 25944 type attribute in patterns generating XTN(2). 25945 259462021-05-19 Jonathan Wright <jonathan.wright@arm.com> 25947 25948 * config/aarch64/aarch64-simd.md (aarch64_simd_vec_pack_trunc_<mode>): 25949 Remove as duplicate of... 25950 (aarch64_xtn<mode>): This. 25951 (aarch64_xtn2<mode>_le): Move position in file. 25952 (aarch64_xtn2<mode>_be): Move position in file. 25953 (aarch64_xtn2<mode>): Move position in file. 25954 (vec_pack_trunc_<mode>): Define as an expander. 25955 259562021-05-19 Jonathan Wright <jonathan.wright@arm.com> 25957 25958 * config/aarch64/aarch64-simd-builtins.def: Split builtin 25959 generation for aarch64_<sur>q<r>shr<u>n_n<mode> pattern into 25960 separate scalar and vector generators. 25961 * config/aarch64/aarch64-simd.md 25962 (aarch64_<sur>q<r>shr<u>n_n<mode>): Define as an expander and 25963 split into... 25964 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_le): This and... 25965 (aarch64_<sur>q<r>shr<u>n_n<mode>_insn_be): This. 25966 * config/aarch64/iterators.md: Define SD_HSDI iterator. 25967 259682021-05-19 Jonathn Wright <jonathan.wright@arm.com> 25969 25970 * config/aarch64/aarch64-simd.md: Use UNSPEC_SQXTUN instead 25971 of UNSPEC_SQXTUN2. 25972 * config/aarch64/iterators.md: Remove UNSPEC_SQXTUN2. 25973 259742021-05-19 Jonathan Wright <jonathan.wright@arm.com> 25975 25976 * config/aarch64/aarch64-simd.md (aarch64_<sur>q<r>shr<u>n2_n<mode>): 25977 Implement as an expand emitting a big/little endian 25978 instruction pattern. 25979 (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_le): Define. 25980 (aarch64_<sur>q<r>shr<u>n2_n<mode>_insn_be): Define. 25981 259822021-05-19 Jonathan Wright <jonathan.wright@arm.com> 25983 25984 * config/aarch64/aarch64-simd.md (aarch64_<sur><addsub>hn2<mode>): 25985 Implement as an expand emitting a big/little endian 25986 instruction pattern. 25987 (aarch64_<sur><addsub>hn2<mode>_insn_le): Define. 25988 (aarch64_<sur><addsub>hn2<mode>_insn_be): Define. 25989 * config/aarch64/iterators.md: Remove UNSPEC_[R]ADDHN2 and 25990 UNSPEC_[R]SUBHN2 unspecs and ADDSUBHN2 iterator. 25991 259922021-05-19 Richard Biener <rguenther@suse.de> 25993 25994 PR middle-end/100672 25995 * fold-const.c (fold_negate_expr_1): Use element_precision. 25996 (negate_expr_p): Likewise. 25997 259982021-05-19 Andre Vieira <andre.simoesdiasvieira@arm.com> 25999 26000 * config/aarch64/iterators.md (SVE_PRED_LOAD): New iterator. 26001 (pred_load): New int attribute. 26002 * config/aarch64/aarch64-sve.md 26003 (aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): Use 26004 SVE_PRED_LOAD enum iterator and corresponding pred_load attribute. 26005 * config/aarch64/aarch64-sve-builtins-base.cc (expand): Update call to 26006 code_for_aarch64_load. 26007 260082021-05-19 Richard Biener <rguenther@suse.de> 26009 26010 * cfgexpand.c (discover_nonconstant_array_refs_r): Make 26011 sure TARGET_MEM_REF bases are expanded as memory. 26012 * tree-ssa-operands.c (operands_scanner::get_tmr_operands): 26013 Do not mark TARGET_MEM_REF bases addressable. 26014 * tree-ssa.c (non_rewritable_mem_ref_base): Handle 26015 TARGET_MEM_REF bases as never rewritable. 26016 * gimple-walk.c (walk_stmt_load_store_addr_ops): Do not 26017 walk TARGET_MEM_REF bases as address-takens. 26018 * tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF. 26019 260202021-05-19 Richard Biener <rguenther@suse.de> 26021 26022 * builtins.c (get_object_alignment_1): Strip outer 26023 WITH_SIZE_EXPR. 26024 * tree-dfa.c (get_ref_base_and_extent): Handle outer 26025 WITH_SIZE_EXPR for size processing and process the 26026 containing ref. 26027 * tree-ssa-alias.c (ao_ref_base_alias_set): Strip 26028 outer WITH_SIZE_EXPR. 26029 (ao_ref_base_alias_ptr_type): Likewise. 26030 (refs_may_alias_p_2): Allow WITH_SIZE_EXPR in ref->ref 26031 and handle that accordingly, stripping it for the 26032 core alias workers. 26033 * tree.c (get_base_address): Handle WITH_SIZE_EXPR by 26034 looking through it instead of returning NULL. 26035 260362021-05-19 Jakub Jelinek <jakub@redhat.com> 26037 26038 PR middle-end/100576 26039 * builtins.c (check_read_access): Convert bound to size_type_node if 26040 non-NULL. 26041 260422021-05-19 Richard Biener <rguenther@suse.de> 26043 26044 * tree-cfg.c (verify_types_in_gimple_min_lval): Inline... 26045 (verify_types_in_gimple_reference): ... here. Sanitize. 26046 (verify_gimple_call): Verify references in LHS and arguments. 26047 (verify_gimple_assign_single): Reject WITH_SIZE_EXPR. 26048 260492021-05-19 Uro�� Bizjak <ubizjak@gmail.com> 26050 26051 * config/i386/i386.h (VALID_INT_MODE_P): 26052 Add V8QI, V4HI and V2SI modes for TARGET_64BIT. 26053 * config/i386/i386.md (isa): Add x64_bmi. 26054 (enabled): Handle x64_bmi. 26055 * config/i386/mmx.md (mmx_andnot<MMXMODEI:mode>3): 26056 Add alternative using 64bit general registers. 26057 (*mmx_<any_logic:code><MMXMODEI:mode>3): Ditto. 26058 260592021-05-19 Jakub Jelinek <jakub@redhat.com> 26060 26061 PR middle-end/99928 26062 * tree.h (OMP_MASTER_COMBINED): Define. 26063 * gimplify.c (gimplify_scan_omp_clauses): Rewrite lastprivate 26064 handling for outer combined/composite constructs to a loop. 26065 Handle lastprivate on combined target. 26066 (gimplify_expr): Formatting fix. 26067 260682021-05-19 Xionghu Luo <luoxhu@linux.ibm.com> 26069 26070 * passes.def: Add sink_code pass before store_merging. 26071 * tree-ssa-sink.c (pass_sink_code:clone): New. 26072 260732021-05-18 Bill Schmidt <wschmidt@linux.ibm.com> 26074 26075 * config/rs6000/freebsd64.h (ADJUST_FIELD_ALIGN): Remove call to 26076 rs6000_special_adjust_field_align_p. 26077 * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Likewise. 26078 * config/rs6000/rs6000-call.c (rs6000_function_arg_boundary): 26079 Remove ABI warning. 26080 (rs6000_function_arg): Likewise. 26081 * config/rs6000/rs6000-protos.h 26082 (rs6000_special_adjust_field_align_p): Remove prototype. 26083 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align_p): 26084 Remove. 26085 * config/rs6000/sysv4.h (ADJUST_FIELD_ALIGN): Remove call to 26086 rs6000_special_adjust_field_align_p. 26087 260882021-05-18 Uro�� Bizjak <ubizjak@gmail.com> 26089 26090 PR target/100637 26091 * config/i386/i386.h (VALID_SSE2_REG_MODE): 26092 Add V4QI and V2HI modes. 26093 (VALID_INT_MODE_P): Ditto. 26094 * config/i386/mmx.md (VI_32): New mode iterator. 26095 (mmxvecsize): Handle V4QI and V2HI. 26096 (Yv_Yw): Ditto. 26097 (mov<VI_32:mode>): New expander. 26098 (*mov<mode>_internal): New insn pattern. 26099 (movmisalign<VI_32:mode>): New expander. 26100 (neg<VI_32:mode>): New expander. 26101 (<plusminus:insn><VI_32:mode>3): New expander. 26102 (*<plusminus:insn><VI_32:mode>3): New insn pattern. 26103 (mulv2hi3): New expander. 26104 (*mulv2hi3): New insn pattern. 26105 (one_cmpl<VI_32:mode>2): New expander. 26106 (*andnot<VI_32:mode>3): New insn pattern. 26107 (<any_logic:code><VI_32:mode>3): New expander. 26108 (*<any_logic:code><VI_32:mode>3): New insn pattern. 26109 261102021-05-18 Uro�� Bizjak <ubizjak@gmail.com> 26111 26112 * config/i386/sse.md (<any_extend:insn>v4qiv4di2): 26113 Fix a mode mismatch with operand 1. 26114 261152021-05-18 Uro�� Bizjak <ubizjak@gmail.com> 26116 26117 PR target/100626 26118 * config/i386/i386-expand.c (split_double_mode): Return 26119 temporary register when simplify_gen_subreg fails with 26120 the high half od the paradoxical subreg. 26121 261222021-05-18 Richard Biener <rguenther@suse.de> 26123 26124 * cfgexpand.c (expand_one_var): Pass in forced_stack_var 26125 and honor it when expanding. 26126 (expand_used_vars_for_block): Pass through forced_stack_var. 26127 (expand_used_vars): Likewise. 26128 (discover_nonconstant_array_refs_r): Set bits in 26129 forced_stack_vars instead of marking vars TREE_ADDRESSABLE. 26130 (avoid_type_punning_on_regs): Likewise. 26131 (discover_nonconstant_array_refs): Likewise. 26132 (pass_expand::execute): Create and pass down forced_stack_var 26133 bitmap. For parameters and returns temporarily set 26134 TREE_ADDRESSABLE when expand_function_start. 26135 261362021-05-18 Thomas Schwinge <thomas@codesourcery.com> 26137 26138 * doc/sourcebuild.texi: Document 'dg-note'. 26139 261402021-05-18 Tobias Burnus <tobias@codesourcery.com> 26141 26142 PR other/100598 26143 * configure: Regenerate. 26144 * configure.ac (BUILD_CFLAG, BUILD_CXXFLAGS): Add $(CFLAGS-$@). 26145 261462021-05-18 Thomas Schwinge <thomas@codesourcery.com> 26147 26148 * gimple.h (is_gimple_omp_oacc): Tighten. 26149 * omp-low.c (check_omp_nesting_restrictions): Adjust. 26150 261512021-05-18 Richard Biener <rguenther@suse.de> 26152 26153 * tree-ssa-operands.c (mark_address_taken): Simplify. 26154 261552021-05-18 Martin Liska <mliska@suse.cz> 26156 26157 * config/gcn/mkoffload.c (STR): Redefine. 26158 * config/i386/intelmic-mkoffload.c (STR): Likewise. 26159 * config/nvptx/mkoffload.c (STR): Likewise. 26160 261612021-05-18 Martin Liska <mliska@suse.cz> 26162 26163 * common/config/aarch64/aarch64-common.c (aarch64_parse_extension): 26164 Use startswith function instead of strncmp. 26165 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. 26166 * common/config/riscv/riscv-common.c (riscv_subset_list::parse): Likewise. 26167 * config/aarch64/aarch64-sve-builtins-shapes.cc (parse_type): Likewise. 26168 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Likewise. 26169 * config/alpha/alpha.c (alpha_elf_section_type_flags): Likewise. 26170 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. 26171 * config/arm/arm.c (arm_file_start): Likewise. 26172 (arm_valid_target_attribute_rec): Likewise. 26173 (thumb1_md_asm_adjust): Likewise. 26174 * config/arm/driver-arm.c (host_detect_local_cpu): Likewise. 26175 * config/avr/avr.c (STR_PREFIX_P): Likewise. 26176 (avr_set_current_function): Likewise. 26177 (avr_handle_addr_attribute): Likewise. 26178 (avr_asm_output_aligned_decl_common): Likewise. 26179 (avr_asm_named_section): Likewise. 26180 (avr_section_type_flags): Likewise. 26181 (avr_asm_select_section): Likewise. 26182 * config/c6x/c6x.c (c6x_in_small_data_p): Likewise. 26183 (c6x_section_type_flags): Likewise. 26184 * config/darwin-c.c (darwin_cfstring_ref_p): Likewise. 26185 (darwin_objc_declare_unresolved_class_reference): Likewise. 26186 (darwin_objc_declare_class_definition): Likewise. 26187 * config/darwin.c (indirect_data): Likewise. 26188 (darwin_encode_section_info): Likewise. 26189 (darwin_objc2_section): Likewise. 26190 (darwin_objc1_section): Likewise. 26191 (machopic_select_section): Likewise. 26192 (darwin_globalize_label): Likewise. 26193 (darwin_label_is_anonymous_local_objc_name): Likewise. 26194 (darwin_asm_named_section): Likewise. 26195 (darwin_asm_output_dwarf_offset): Likewise. 26196 * config/frv/frv.c (frv_string_begins_with): Likewise. 26197 (frv_in_small_data_p): Likewise. 26198 * config/gcn/mkoffload.c (STR): Likewise. 26199 (main): Likewise. 26200 * config/i386/i386-builtins.c (get_builtin_code_for_version): Likewise. 26201 * config/i386/i386-options.c (ix86_option_override_internal): Likewise. 26202 * config/i386/i386.c (x86_64_elf_section_type_flags): Likewise. 26203 (ix86_md_asm_adjust): Likewise. 26204 * config/i386/intelmic-mkoffload.c (STR): Likewise. 26205 * config/i386/winnt.c (i386_pe_asm_named_section): Likewise. 26206 (i386_pe_file_end): Likewise. 26207 * config/ia64/ia64.c (ia64_in_small_data_p): Likewise. 26208 (ia64_section_type_flags): Likewise. 26209 * config/mips/driver-native.c (host_detect_local_cpu): Likewise. 26210 * config/mips/mips.c (mips_handle_interrupt_attr): Likewise. 26211 (mips16_stub_function_p): Likewise. 26212 (mips_function_rodata_section): Likewise. 26213 * config/msp430/msp430.c (msp430_mcu_name): Likewise. 26214 (msp430_function_section): Likewise. 26215 (msp430_section_type_flags): Likewise. 26216 (msp430_expand_helper): Likewise. 26217 * config/nios2/nios2.c (nios2_small_section_name_p): Likewise. 26218 (nios2_valid_target_attribute_rec): Likewise. 26219 * config/nvptx/mkoffload.c (process): Likewise. 26220 (STR): Likewise. 26221 * config/pa/som.h: Likewise. 26222 * config/pdp11/pdp11.c (pdp11_output_ident): Likewise. 26223 * config/riscv/riscv.c (riscv_elf_select_rtx_section): Likewise. 26224 * config/rs6000/rs6000.c (VTABLE_NAME_P): Likewise. 26225 (rs6000_inner_target_options): Likewise. 26226 * config/s390/driver-native.c (s390_host_detect_local_cpu): Likewise. 26227 * config/sparc/driver-sparc.c (host_detect_local_cpu): Likewise. 26228 * config/vax/vax.c (vax_output_int_move): Likewise. 26229 * config/vms/vms-ld.c (startswith): Likewise. 26230 (process_args): Likewise. 26231 (main): Likewise. 26232 * config/vms/vms.c: Likewise. 26233 262342021-05-18 Jakub Jelinek <jakub@redhat.com> 26235 26236 PR rtl-optimization/100590 26237 * regcprop.c (copyprop_hardreg_forward_1): Only DCE dead sets if 26238 they are NONJUMP_INSN_P. 26239 262402021-05-18 Jakub Jelinek <jakub@redhat.com> 26241 26242 PR c++/100580 26243 * function.c (push_dummy_function): Set DECL_ARTIFICIAL and 26244 DECL_ASSEMBLER_NAME on the fn_decl. 26245 262462021-05-18 Jakub Jelinek <jakub@redhat.com> 26247 26248 PR tree-optimization/94589 26249 * tree-ssa-phiopt.c (spaceship_replacement): Pattern match 26250 phi result used in (res & ~1) == 0 comparison as res >= 0 as 26251 res == 2 would be UB with -ffinite-math-only. 26252 262532021-05-18 Martin Liska <mliska@suse.cz> 26254 26255 * Makefile.in: genversion.o should depend on DATESTAMP. 26256 262572021-05-18 Claudiu Zissulescu <claziss@synopsys.com> 26258 26259 * config/arc/simdext.md (negv2si2): Remove round bracket. 26260 262612021-05-18 Andreas Krebbel <krebbel@linux.ibm.com> 26262 26263 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Define 26264 _Bool as macro expanding to _Bool. 26265 262662021-05-18 Andreas Krebbel <krebbel@linux.ibm.com> 26267 26268 PR c++/100281 26269 * tree.c (build_reference_type_for_mode) 26270 (build_pointer_type_for_mode): Pick pointer mode if MODE argument 26271 is VOIDmode. 26272 (build_reference_type, build_pointer_type): Invoke 26273 build_*_type_for_mode with VOIDmode. 26274 262752021-05-17 Andrew MacLeod <amacleod@redhat.com> 26276 26277 PR tree-optimization/100512 26278 * gimple-range-cache.cc (ranger_cache::set_global_range): Mark const 26279 and non-zero pointer ranges as invariant. 26280 * gimple-range.cc (gimple_ranger::range_of_stmt): Remove pointer 26281 processing from here. 26282 262832021-05-17 Tom de Vries <tdevries@suse.de> 26284 26285 PR target/100497 26286 * config/nvptx/nvptx-protos.h (nvptx_output_atomic_insn): Declare 26287 * config/nvptx/nvptx.c (nvptx_output_barrier) 26288 (nvptx_output_atomic_insn): New function. 26289 (nvptx_print_operand): Add support for 'B'. 26290 * config/nvptx/nvptx.md: Use nvptx_output_atomic_insn for atomic 26291 insns. 26292 262932021-05-17 Aldy Hernandez <aldyh@redhat.com> 26294 26295 PR tree-optimization/100349 26296 * vr-values.c (bounds_of_var_in_loop): Bail if scev returns 26297 NULL. 26298 262992021-05-17 Tamar Christina <tamar.christina@arm.com> 26300 26301 * config/aarch64/driver-aarch64.c (DEFAULT_ARCH): New. 26302 (host_detect_local_cpu): Use it. 26303 263042021-05-17 Martin Liska <mliska@suse.cz> 26305 26306 * doc/invoke.texi: Add 2 missing dots. 26307 263082021-05-17 Marius Hillenbrand <mhillen@linux.ibm.com> 26309 26310 PR bootstrap/100552 26311 * configure.ac: Replace pattern substitution with call to sed. 26312 * configure: Regenerate. 26313 263142021-05-17 Richard Biener <rguenther@suse.de> 26315 26316 PR middle-end/100582 26317 * tree.c (array_at_struct_end_p): Get to the base of the 26318 reference before looking for the underlying decl. 26319 263202021-05-17 Joern Rennecke <joern.rennecke@embecosm.com> 26321 26322 * genoutput.c (validate_insn_alternatives) Make "wrong number of 26323 alternatives" message more specific, and remove assumption on where 26324 the problem is. 26325 263262021-05-17 Christophe Lyon <christophe.lyon@linaro.org> 26327 26328 * config/arm/iterators.md (V16): New iterator. 26329 (VH_cvtto): New iterator. 26330 (v_cmp_result): Added V4HF and V8HF support. 26331 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result>): Use VDQWH. 26332 (vcond<mode><mode>): Likewise. 26333 (vcond_mask_<mode><v_cmp_result>): Likewise. 26334 (vcond<VH_cvtto><mode>): New expander. 26335 263362021-05-17 Christophe Lyon <christophe.lyon@linaro.org> 26337 26338 * config/arm/arm-protos.h (arm_expand_vector_compare): Update 26339 prototype. 26340 * config/arm/arm.c (arm_expand_vector_compare): Add support for 26341 MVE. 26342 (arm_expand_vcond): Likewise. 26343 * config/arm/iterators.md (supf): Remove VCMPNEQ_S, VCMPEQQ_S, 26344 VCMPEQQ_N_S, VCMPNEQ_N_S. 26345 (VCMPNEQ, VCMPEQQ, VCMPEQQ_N, VCMPNEQ_N): Remove. 26346 * config/arm/mve.md (@mve_vcmp<mve_cmp_op>q_<mode>): Add '@' prefix. 26347 (@mve_vcmp<mve_cmp_op>q_f<mode>): Likewise. 26348 (@mve_vcmp<mve_cmp_op>q_n_f<mode>): Likewise. 26349 (@mve_vpselq_<supf><mode>): Likewise. 26350 (@mve_vpselq_f<mode>"): Likewise. 26351 * config/arm/neon.md (vec_cmp<mode><v_cmp_result): Enable for MVE 26352 and move to vec-common.md. 26353 (vec_cmpu<mode><mode>): Likewise. 26354 (vcond<mode><mode>): Likewise. 26355 (vcond<V_cvtto><mode>): Likewise. 26356 (vcondu<mode><v_cmp_result>): Likewise. 26357 (vcond_mask_<mode><v_cmp_result>): Likewise. 26358 * config/arm/unspecs.md (VCMPNEQ_U, VCMPNEQ_S, VCMPEQQ_S) 26359 (VCMPEQQ_N_S, VCMPNEQ_N_S, VCMPEQQ_U, CMPEQQ_N_U, VCMPNEQ_N_U) 26360 (VCMPGEQ_N_S, VCMPGEQ_S, VCMPGTQ_N_S, VCMPGTQ_S, VCMPLEQ_N_S) 26361 (VCMPLEQ_S, VCMPLTQ_N_S, VCMPLTQ_S, VCMPCSQ_N_U, VCMPCSQ_U) 26362 (VCMPHIQ_N_U, VCMPHIQ_U): Remove. 26363 * config/arm/vec-common.md (vec_cmp<mode><v_cmp_result): Moved 26364 from neon.md. 26365 (vec_cmpu<mode><mode>): Likewise. 26366 (vcond<mode><mode>): Likewise. 26367 (vcond<V_cvtto><mode>): Likewise. 26368 (vcondu<mode><v_cmp_result>): Likewise. 26369 (vcond_mask_<mode><v_cmp_result>): Likewise. Added unsafe math 26370 condition. 26371 263722021-05-17 liuhongt <hongtao.liu@intel.com> 26373 26374 PR target/100549 26375 * config/i386/i386.c (ix86_gimple_fold_builtin): Use 26376 gsi_insert_seq_before instead. 26377 263782021-05-17 Christophe Lyon <christophe.lyon@linaro.org> 26379 26380 * doc/sourcebuild.texi (arm_qbit_ok): Rename into... 26381 (arm_sat_ok): ...this. 26382 263832021-05-17 Martin Liska <mliska@suse.cz> 26384 26385 * lto-wrapper.c (merge_flto_options): Factor out a new function. 26386 (merge_and_complain): Use it. 26387 (run_gcc): Merge also linker command line -flto=foo argument 26388 with IL files. 26389 263902021-05-16 Christophe Lyon <christophe.lyon@linaro.org> 26391 26392 * config/arm/arm.h (CPP_SPEC): Remove error message about 26393 -mlittle-endian/-mbig-endian conflict. 26394 263952021-05-15 Bill Schmidt <wschmidt@linux.ibm.com> 26396 26397 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 26398 __ROP_PROTECT__ if -mrop-protect is selected. 26399 264002021-05-15 Bill Schmidt <wschmidt@linux.ibm.com> 26401 26402 * config/rs6000/rs6000-internal.h (rs6000_stack): Add 26403 rop_hash_save_offset and rop_hash_size. 26404 * config/rs6000/rs6000-logue.c (rs6000_stack_info): Compute 26405 rop_hash_size and rop_hash_save_offset. 26406 (debug_stack_info): Dump rop_hash_save_offset and rop_hash_size. 26407 (rs6000_emit_prologue): Emit hashst[p] in prologue. 26408 (rs6000_emit_epilogue): Emit hashchk[p] in epilogue. 26409 * config/rs6000/rs6000.md (unspec): Add UNSPEC_HASHST and 26410 UNSPEC_HASHCHK. 26411 (hashst): New define_insn. 26412 (hashchk): Likewise. 26413 264142021-05-15 Bill Schmidt <wschmidt@linux.ibm.com> 26415 26416 * config/rs6000/rs6000.c (rs6000_option_override_internal): 26417 Disable shrink wrap when inserting ROP-protect instructions. 26418 * config/rs6000/rs6000.opt (mrop-protect): New option. 26419 (mprivileged): Likewise. 26420 * doc/invoke.texi: Document mrop-protect and mprivileged. 26421 264222021-05-15 Hans-Peter Nilsson <hp@axis.com> 26423 26424 * reorg.c (fill_slots_from_thread): Reinstate code typoed out in 26425 "Remove CC0". 26426 264272021-05-15 Martin Jambor <mjambor@suse.cz> 26428 26429 Revert: 26430 2021-05-13 Martin Jambor <mjambor@suse.cz> 26431 26432 PR tree-optimization/100453 26433 * tree-sra.c (sra_modify_assign): All const base accesses do not 26434 need refreshing, not just those from decl_pool. 26435 (sra_modify_assign): Do not refresh into a const base decl. 26436 264372021-05-15 Jakub Jelinek <jakub@redhat.com> 26438 26439 PR rtl-optimization/100342 26440 * regcprop.c (copy_value): When copying a source reg in a wider 26441 mode than it has recorded for the value, adjust recorded destination 26442 mode too or punt if !REG_CAN_CHANGE_MODE_P. 26443 264442021-05-14 Jason Merrill <jason@redhat.com> 26445 26446 * intl.h: Add comments. 26447 264482021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26449 26450 * config/aarch64/aarch64-simd.md 26451 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Split into... 26452 (aarch64_sqdmlsl2_lane<mode>_internal): ... This... 26453 (aarch64_sqdmlal2_lane<mode>_internal): ... And this. 26454 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>_internal): Split into ... 26455 (aarch64_sqdmlsl2_laneq<mode>_internal): ... This... 26456 (aarch64_sqdmlal2_laneq<mode>_internal): ... And this. 26457 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>_internal): Split into... 26458 (aarch64_sqdmlsl2_n<mode>_internal): ... This... 26459 (aarch64_sqdmlal2_n<mode>_internal): ... And this. 26460 264612021-05-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 26462 26463 PR target/66791 26464 * config/arm/arm_neon.h (vtst_s8): Replace call to vtst builtin with it's 26465 boolean logic equivalent. 26466 (vtst_s16): Likewise. 26467 (vtst_s32): Likewise. 26468 (vtst_u8): Likewise. 26469 (vtst_u16): Likewise. 26470 (vtst_u32): Likewise. 26471 (vtst_p8): Likewise. 26472 (vtst_p16): Likewise. 26473 (vtstq_s8): Likewise. 26474 (vtstq_s16): Likewise. 26475 (vtstq_s32): Likewise. 26476 (vtstq_u8): Likewise. 26477 (vtstq_u16): Likewise. 26478 (vtstq_u32): Likewise. 26479 (vtstq_p8): Likewise. 26480 (vtstq_p16): Likewise. 26481 * config/arm/arm_neon_builtins.def: Remove entry for vtst. 26482 * config/arm/neon.md (neon_vtst<mode>): Remove pattern. 26483 264842021-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26485 26486 * config/aarch64/aarch64-simd.md (aarch64_sqdmlal2<mode>): Merge into... 26487 (aarch64_sqdml<SBINQOPS:as>l2<mode>): ... This. 26488 (aarch64_sqdmlsl2<mode>): Delete. 26489 (aarch64_sqdmlal2_lane<mode>): Merge this... 26490 (aarch64_sqdmlsl2_lane<mode>): ... And this... 26491 (aarch64_sqdml<SBINQOPS:as>l2_lane<mode>): ... Into this. 26492 (aarch64_sqdmlal2_laneq<mode>): Merge this... 26493 (aarch64_sqdmlsl2_laneq<mode>): ... And this... 26494 (aarch64_sqdml<SBINQOPS:as>l2_laneq<mode>): ... Into this. 26495 (aarch64_sqdmlal2_n<mode>): Merge this... 26496 (aarch64_sqdmlsl2_n<mode>): ... And this... 26497 (aarch64_sqdml<SBINQOPS:as>l2_n<mode>): ... Into this. 26498 264992021-05-13 Martin Sebor <msebor@redhat.com> 26500 26501 PR middle-end/100574 26502 * builtins.c (access_ref::get_ref): Improve detection of PHIs with 26503 all null arguments. 26504 265052021-05-13 Martin Sebor <msebor@redhat.com> 26506 26507 PR tree-optimization/93100 26508 PR middle-end/98583 26509 * tree-ssa-uninit.c (check_defs): Exclude intrinsic functions that 26510 don't modify referenced objects. 26511 265122021-05-13 Martin Jambor <mjambor@suse.cz> 26513 26514 PR tree-optimization/100453 26515 * tree-sra.c (sra_modify_assign): All const base accesses do not 26516 need refreshing, not just those from decl_pool. 26517 (sra_modify_assign): Do not refresh into a const base decl. 26518 265192021-05-13 Martin Liska <mliska@suse.cz> 26520 26521 * tree-ssa-dom.c: Remove m_simplifier. 26522 265232021-05-13 Richard Earnshaw <rearnsha@arm.com> 26524 26525 PR target/100563 26526 * config/arm/arm.c (arm_canonicalize_comparison): Correctly 26527 canonicalize DImode inequality comparisons against the 26528 maximum integral value. 26529 265302021-05-13 Jakub Jelinek <jakub@redhat.com> 26531 26532 PR tree-optimization/98856 26533 * config/i386/i386.c (ix86_shift_rotate_cost): Add CODE argument. 26534 Expect V2DI and V4DI arithmetic right shifts to be emulated. 26535 (ix86_rtx_costs, ix86_add_stmt_cost): Adjust ix86_shift_rotate_cost 26536 caller. 26537 * config/i386/i386-expand.c (expand_vec_perm_2perm_interleave, 26538 expand_vec_perm_2perm_pblendv): New functions. 26539 (ix86_expand_vec_perm_const_1): Use them. 26540 * config/i386/sse.md (ashr<mode>3<mask_name>): Rename to ... 26541 (<mask_codefor>ashr<mode>3<mask_name>): ... this. 26542 (ashr<mode>3): New define_expand with VI248_AVX512BW iterator. 26543 (ashrv4di3): New define_expand. 26544 (ashrv2di3): Change condition to TARGET_SSE2, handle !TARGET_XOP 26545 and !TARGET_AVX512VL expansion. 26546 265472021-05-13 Uro�� Bizjak <ubizjak@gmail.com> 26548 26549 PR target/100581 26550 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Force mode 26551 sizes < 16 to a register when constructing vpcmov pattern. 26552 * config/i386/mmx.md (*xop_pcmov_<mode>): Use MMXMODE124 mode. 26553 265542021-05-13 Martin Liska <mliska@suse.cz> 26555 26556 * gcov-io.c (gcov_write_block): Remove. 26557 (gcov_write_words): Likewise. 26558 (gcov_read_words): Re-implement using gcov_read_bytes. 26559 (gcov_allocate): Remove. 26560 (GCOV_BLOCK_SIZE): Likewise. 26561 (struct gcov_var): Remove most of the fields. 26562 (gcov_position): Implement with ftell. 26563 (gcov_rewrite): Remove setting of start and offset fields. 26564 (from_file): Re-format. 26565 (gcov_open): Remove setbuf call. It should not be needed. 26566 (gcov_close): Remove internal buffer handling. 26567 (gcov_magic): Use __builtin_bswap32. 26568 (gcov_write_counter): Use directly gcov_write_unsigned. 26569 (gcov_write_string): Use direct fwrite and do not round 26570 to 4 bytes. 26571 (gcov_seek): Use directly fseek. 26572 (gcov_write_tag): Use gcov_write_unsigned directly. 26573 (gcov_write_length): Likewise. 26574 (gcov_write_tag_length): Likewise. 26575 (gcov_read_bytes): Use directly fread. 26576 (gcov_read_unsigned): Use gcov_read_words. 26577 (gcov_read_counter): Likewise. 26578 (gcov_read_string): Use gcov_read_bytes. 26579 * gcov-io.h (GCOV_WORD_SIZE): Adjust to reflect 26580 that size is not in bytes, but words (4B). 26581 (GCOV_TAG_FUNCTION_LENGTH): Likewise. 26582 (GCOV_TAG_ARCS_LENGTH): Likewise. 26583 (GCOV_TAG_ARCS_NUM): Likewise. 26584 (GCOV_TAG_COUNTER_LENGTH): Likewise. 26585 (GCOV_TAG_COUNTER_NUM): Likewise. 26586 (GCOV_TAG_SUMMARY_LENGTH): Likewise. 26587 265882021-05-13 liuhongt <hongtao.liu@intel.com> 26589 26590 PR target/94680 26591 * config/i386/sse.md (ssedoublevecmode): Add attribute for 26592 V64QI/V32HI/V16SI/V4DI. 26593 (ssehalfvecmode): Add attribute for V2DI/V2DF. 26594 (*vec_concatv4si_0): Extend to VI124_128. 26595 (*vec_concat<mode>_0): New pre-reload splitter. 26596 * config/i386/predicates.md (movq_parallel): New predicate. 26597 265982021-05-13 Alexandre Oliva <oliva@adacore.com> 26599 26600 * targhooks.c (default_zero_call_used_regs): Retry using 26601 successfully-zeroed registers as sources. 26602 266032021-05-12 Tobias Burnus <tobias@codesourcery.com> 26604 26605 * omp-low.c (finish_taskreg_scan): Use the proper detach decl. 26606 266072021-05-12 Aldy Hernandez <aldyh@redhat.com> 26608 26609 PR c/100521 26610 * gimple-range.cc (range_of_builtin_call): Skip out on 26611 processing __builtin_clz when varying. 26612 266132021-05-12 Tom de Vries <tdevries@suse.de> 26614 26615 PR target/96005 26616 * config/nvptx/nvptx-opts.h (enum ptx_version): New enum. 26617 * config/nvptx/nvptx.c (nvptx_file_start): Print .version according 26618 to ptx_version_option. 26619 * config/nvptx/nvptx.h (TARGET_PTX_6_3): Define. 26620 * config/nvptx/nvptx.md (define_insn "nvptx_shuffle<mode>") 26621 (define_insn "nvptx_vote_ballot"): Use sync variant for 26622 TARGET_PTX_6_3. 26623 * config/nvptx/nvptx.opt (ptx_version): Add enum. 26624 (mptx): Add option. 26625 * doc/invoke.texi (Nvidia PTX Options): Add mptx item. 26626 266272021-05-12 Richard Biener <rguenther@suse.de> 26628 26629 PR tree-optimization/100566 26630 * tree-ssa-sccvn.c (dominated_by_p_w_unex): Properly handle 26631 allow_back for all edge queries. 26632 266332021-05-12 liuhongt <hongtao.liu@intel.com> 26634 26635 PR target/99908 26636 * config/i386/sse.md (<sse4_1_avx2>_pblendvb): Add 26637 splitters for pblendvb of NOT mask register. 26638 266392021-05-12 Richard Biener <rguenther@suse.de> 26640 26641 PR tree-optimization/100519 26642 * tree-ssa-reassoc.c (can_associate_p): Split into... 26643 (can_associate_op_p): ... this 26644 (can_associate_type_p): ... and this. 26645 (is_reassociable_op): Call can_associate_op_p. 26646 (break_up_subtract_bb): Call the appropriate predicates. 26647 (reassociate_bb): Likewise. 26648 266492021-05-12 Martin Liska <mliska@suse.cz> 26650 26651 * lto-wrapper.c (merge_and_complain): Merge -flto=arg options. 26652 (run_gcc): Use -flto argument detection for merged 26653 fdecoded_options. 26654 266552021-05-12 Martin Liska <mliska@suse.cz> 26656 26657 * lto-wrapper.c (print_lto_docs_link): New function. 26658 (run_gcc): Print warning about missing job server detection 26659 after we know NR of partitions. Do the same for -flto{,=1}. 26660 * opts.c (get_option_html_page): Support -flto option. 26661 266622021-05-12 Martin Liska <mliska@suse.cz> 26663 26664 * lto-wrapper.c (get_options_from_collect_gcc_options): Change 26665 return type. 26666 (append_option): Remove. 26667 (find_option): Rework to use the vector type. 26668 (remove_option): Remove. 26669 (merge_and_complain): Use vectors for cl_decoded_option data 26670 type arguments. 26671 (append_compiler_options): Likewise. 26672 (append_diag_options): Likewise. 26673 (append_linker_options): Likewise. 26674 (append_offload_options): Likewise. 26675 (compile_offload_image): Likewise. 26676 (compile_images_for_offload_targets): Likewise. 26677 (find_and_merge_options): Likewise. 26678 (run_gcc): Likewise. 26679 266802021-05-12 Bernd Edlinger <bernd.edlinger@hotmail.de> 26681 26682 PR debug/100515 26683 * dwarf2out.c (dwarf2out_finish): Set 26684 have_multiple_function_sections with multi-range text_section. 26685 266862021-05-12 Martin Liska <mliska@suse.cz> 26687 26688 PR bootstrap/100560 26689 * Makefile.in: Remove version.h from linker command line. 26690 266912021-05-12 Richard Biener <rguenther@suse.de> 26692 26693 PR middle-end/100547 26694 * rtl.h (rtvec_alloc): Make argument size_t. 26695 * rtl.c (rtvec_alloc): Verify the count is less than INT_MAX. 26696 266972021-05-12 Jakub Jelinek <jakub@redhat.com> 26698 26699 PR middle-end/100508 26700 * cfgexpand.c (expand_debug_expr): For DEBUG_EXPR_DECL with vector 26701 type, don't reuse DECL_RTL if it has different mode, instead force 26702 creation of a new DEBUG_EXPR. 26703 267042021-05-12 Jakub Jelinek <jakub@redhat.com> 26705 Marc Glisse <marc.glisse@inria.fr> 26706 26707 PR tree-optimization/94589 26708 * match.pd ((X & Y) == X -> (X & ~Y) == 0, 26709 (X | Y) == Y -> (X & ~Y) == 0): New GIMPLE simplifications. 26710 267112021-05-12 Uro�� Bizjak <ubizjak@gmail.com> 26712 26713 PR target/98218 26714 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Handle V2SF mode. 26715 * config/i386/mmx.md (MMXMODE124): New mode iterator. 26716 (V2FI): Ditto. 26717 (mmxintvecmode): New mode attribute. 26718 (mmxintvecmodelower): Ditto. 26719 (*mmx_maskcmpv2sf3_comm): New insn pattern. 26720 (*mmx_maskcmpv2sf3): Ditto. 26721 (vec_cmpv2sfv2si): New expander. 26722 (vcond<V2FI:mode>v2si): Ditto. 26723 (mmx_vlendvps): New insn pattern. 26724 (vcond<MMXMODE124:mode><MMXMODEI:mode>): Also handle V2SFmode. 26725 (vcondu<MMXMODE124:mode><MMXMODEI:mode>): Ditto. 26726 (vcond_mask_<mode><mmxintvecmodelower>): Ditto. 26727 267282021-05-11 Martin Sebor <msebor@redhat.com> 26729 26730 PR middle-end/21433 26731 * expr.c (expand_expr_real_1): Replace unreachable code with an assert. 26732 267332021-05-11 Richard Biener <rguenther@suse.de> 26734 26735 * gimple-fold.c (gimple_fold_call): Do not call 26736 maybe_fold_reference on call arguments or the static chain. 26737 (fold_stmt_1): Do not call maybe_fold_reference on GIMPLE_ASM 26738 inputs. 26739 267402021-05-11 Martin Liska <mliska@suse.cz> 26741 26742 * builtins.def (DEF_HSAIL_BUILTIN): Remove. 26743 (DEF_HSAIL_ATOMIC_BUILTIN): Likewise. 26744 (DEF_HSAIL_SAT_BUILTIN): Likewise. 26745 (DEF_HSAIL_INTR_BUILTIN): Likewise. 26746 (DEF_HSAIL_CVT_ZEROI_SAT_BUILTIN): Likewise. 26747 * doc/frontends.texi: Remove BRIG. 26748 * doc/install.texi: Likewise. 26749 * doc/invoke.texi: Likewise. 26750 * doc/standards.texi: Likewise. 26751 * brig-builtins.def: Removed. 26752 * brig/ChangeLog: Removed. 26753 * brig/Make-lang.in: Removed. 26754 * brig/brig-builtins.h: Removed. 26755 * brig/brig-c.h: Removed. 26756 * brig/brig-lang.c: Removed. 26757 * brig/brigfrontend/brig-arg-block-handler.cc: Removed. 26758 * brig/brigfrontend/brig-atomic-inst-handler.cc: Removed. 26759 * brig/brigfrontend/brig-basic-inst-handler.cc: Removed. 26760 * brig/brigfrontend/brig-branch-inst-handler.cc: Removed. 26761 * brig/brigfrontend/brig-cmp-inst-handler.cc: Removed. 26762 * brig/brigfrontend/brig-code-entry-handler.cc: Removed. 26763 * brig/brigfrontend/brig-code-entry-handler.h: Removed. 26764 * brig/brigfrontend/brig-comment-handler.cc: Removed. 26765 * brig/brigfrontend/brig-control-handler.cc: Removed. 26766 * brig/brigfrontend/brig-copy-move-inst-handler.cc: Removed. 26767 * brig/brigfrontend/brig-cvt-inst-handler.cc: Removed. 26768 * brig/brigfrontend/brig-fbarrier-handler.cc: Removed. 26769 * brig/brigfrontend/brig-function-handler.cc: Removed. 26770 * brig/brigfrontend/brig-function.cc: Removed. 26771 * brig/brigfrontend/brig-function.h: Removed. 26772 * brig/brigfrontend/brig-inst-mod-handler.cc: Removed. 26773 * brig/brigfrontend/brig-label-handler.cc: Removed. 26774 * brig/brigfrontend/brig-lane-inst-handler.cc: Removed. 26775 * brig/brigfrontend/brig-machine.c: Removed. 26776 * brig/brigfrontend/brig-machine.h: Removed. 26777 * brig/brigfrontend/brig-mem-inst-handler.cc: Removed. 26778 * brig/brigfrontend/brig-module-handler.cc: Removed. 26779 * brig/brigfrontend/brig-queue-inst-handler.cc: Removed. 26780 * brig/brigfrontend/brig-seg-inst-handler.cc: Removed. 26781 * brig/brigfrontend/brig-signal-inst-handler.cc: Removed. 26782 * brig/brigfrontend/brig-to-generic.cc: Removed. 26783 * brig/brigfrontend/brig-to-generic.h: Removed. 26784 * brig/brigfrontend/brig-util.cc: Removed. 26785 * brig/brigfrontend/brig-util.h: Removed. 26786 * brig/brigfrontend/brig-variable-handler.cc: Removed. 26787 * brig/brigfrontend/hsa-brig-format.h: Removed. 26788 * brig/brigfrontend/phsa.h: Removed. 26789 * brig/brigspec.c: Removed. 26790 * brig/config-lang.in: Removed. 26791 * brig/gccbrig.texi: Removed. 26792 * brig/lang-specs.h: Removed. 26793 * brig/lang.opt: Removed. 26794 267952021-05-11 Richard Biener <rguenther@suse.de> 26796 26797 PR ipa/100513 26798 * ipa-param-manipulation.c 26799 (ipa_param_body_adjustments::modify_call_stmt): Avoid 26800 altering SSA_NAME_DEF_STMT by adjusting the calls LHS 26801 via gimple_call_lhs_ptr. 26802 268032021-05-11 Alex Coplan <alex.coplan@arm.com> 26804 26805 PR target/99725 26806 * config/arm/arm.c (cmse_nonsecure_call_inline_register_clear): 26807 Avoid emitting CFA adjusts on the sp if we have the fp. 26808 268092021-05-11 Richard Sandiford <richard.sandiford@arm.com> 26810 26811 * config/aarch64/iterators.md (VMUL_CHANGE_NLANES): Delete. 26812 (VMULD): New iterator. 26813 (VCOND): Handle V4HF and V8HF. 26814 (VCONQ): Fix entry for V2SF. 26815 * config/aarch64/aarch64-simd.md (mul_lane<mode>3): Use VMULD 26816 instead of VMUL. Use a 64-bit vector mode for the indexed operand. 26817 (*aarch64_mul3_elt_<vswap_width_name><mode>): Merge with... 26818 (mul_laneq<mode>3): ...this define_insn. Use VMUL instead of VDQSF. 26819 Use a 128-bit vector mode for the indexed operand. Use stype for 26820 the scheduling type. 26821 268222021-05-11 Richard Biener <rguenther@suse.de> 26823 26824 * gimple-fold.c (maybe_fold_reference): Only return 26825 is_gimple_min_invariant values. 26826 268272021-05-11 Richard Biener <rguenther@suse.de> 26828 26829 PR middle-end/100509 26830 * gimple-fold.c (fold_gimple_assign): Only call 26831 get_symbol_constant_value on register type symbols. 26832 268332021-05-11 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 26834 Joe Ramsay <joe.ramsay@arm.com> 26835 26836 PR target/100419 26837 * config/arm/arm_mve.h (__arm_vstrwq_scatter_offset): Fix wrong arguments. 26838 (__arm_vcmpneq): Remove duplicate definition. 26839 (__arm_vstrwq_scatter_offset_p): Likewise. 26840 (__arm_vmaxq_x): Likewise. 26841 (__arm_vmlsdavaq): Likewise. 26842 (__arm_vmlsdavaxq): Likewise. 26843 (__arm_vmlsdavq_p): Likewise. 26844 (__arm_vmlsdavxq_p): Likewise. 26845 (__arm_vrmlaldavhaq): Likewise. 26846 (__arm_vstrbq_p): Likewise. 26847 (__arm_vstrbq_scatter_offset): Likewise. 26848 (__arm_vstrbq_scatter_offset_p): Likewise. 26849 (__arm_vstrdq_scatter_offset): Likewise. 26850 (__arm_vstrdq_scatter_offset_p): Likewise. 26851 (__arm_vstrdq_scatter_shifted_offset): Likewise. 26852 (__arm_vstrdq_scatter_shifted_offset_p): Likewise. 26853 268542021-05-11 Jakub Jelinek <jakub@redhat.com> 26855 26856 PR middle-end/100471 26857 * omp-low.c (lower_omp_task_reductions): For OMP_TASKLOOP, if data 26858 is 0, bypass the reduction loop including 26859 GOMP_taskgroup_reduction_unregister call. 26860 268612021-05-11 Kewen Lin <linkw@linux.ibm.com> 26862 26863 * config/rs6000/rs6000.c (struct rs6000_cost_data): New member 26864 costing_for_scalar. 26865 (rs6000_density_test): Early return if costing_for_scalar is true. 26866 (rs6000_init_cost): Init costing_for_scalar of rs6000_cost_data. 26867 268682021-05-11 Kewen Lin <linkw@linux.ibm.com> 26869 26870 * doc/tm.texi: Regenerated. 26871 * target.def (init_cost): Add new parameter costing_for_scalar. 26872 * targhooks.c (default_init_cost): Adjust for new parameter. 26873 * targhooks.h (default_init_cost): Likewise. 26874 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. 26875 (vect_compute_single_scalar_iteration_cost): Likewise. 26876 (vect_analyze_loop_2): Likewise. 26877 * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. 26878 (vect_bb_vectorization_profitable_p): Likewise. 26879 * tree-vectorizer.h (init_cost): Likewise. 26880 * config/aarch64/aarch64.c (aarch64_init_cost): Likewise. 26881 * config/i386/i386.c (ix86_init_cost): Likewise. 26882 * config/rs6000/rs6000.c (rs6000_init_cost): Likewise. 26883 268842021-05-11 Kewen Lin <linkw@linux.ibm.com> 26885 26886 * config/rs6000/rs6000.c (rs6000_vect_nonmem): Renamed to 26887 vect_nonmem and moved into... 26888 (struct rs6000_cost_data): ...here. 26889 (rs6000_init_cost): Use vect_nonmem of cost_data instead. 26890 (rs6000_add_stmt_cost): Likewise. 26891 (rs6000_finish_cost): Likewise. 26892 268932021-05-10 Eric Botcazou <ebotcazou@adacore.com> 26894 26895 * range-op.cc (get_bool_state): Adjust head comment. 26896 (operator_not_equal::op1_range): Fix comment. 26897 (operator_bitwise_xor::op1_range): Remove call to gcc_unreachable. 26898 268992021-05-10 Martin Sebor <msebor@redhat.com> 26900 26901 PR middle-end/100425 26902 PR middle-end/100510 26903 * gimple-ssa-warn-alloca.c (pass_walloca::firast_time_p): Rename... 26904 (pass_walloca::xlimit_certain_p): ...to this. 26905 (pass_walloca::gate): Execute for any kind of handled warning. 26906 (pass_walloca::execute): Avoid issuing "maybe" and "unbounded" 26907 warnings when xlimit_certain_p is set. 26908 269092021-05-10 Pat Haugen <pthaugen@linux.ibm.com> 26910 26911 * config/rs6000/rs6000.c (rs6000_ira_change_pseudo_allocno_class): 26912 Return ALTIVEC_REGS if that is best_class. 26913 (rs6000_compute_pressure_classes): Add ALTIVEC_REGS. 26914 269152021-05-10 Christophe Lyon <christophe.lyon@linaro.org> 26916 26917 * config/arm/arm.h (CPP_SPEC): Remove error message about 26918 -mfloat-abi. 26919 269202021-05-10 Martin Jambor <mjambor@suse.cz> 26921 26922 * ipa-prop.h (IPA_NODE_REF): Removed. 26923 (IPA_NODE_REF_GET_CREATE): Likewise. 26924 (IPA_EDGE_REF): Likewise. 26925 (IPA_EDGE_REF_GET_CREATE): Likewise. 26926 (IS_VALID_JUMP_FUNC_INDEX): Likewise. 26927 * ipa-cp.c (print_all_lattices): Replaced IPA_NODE_REF with a direct 26928 use of ipa_node_params_sum. 26929 (ipcp_versionable_function_p): Likewise. 26930 (push_node_to_stack): Likewise. 26931 (pop_node_from_stack): Likewise. 26932 (set_single_call_flag): Replaced two IPA_NODE_REF with one single 26933 direct use of ipa_node_params_sum. 26934 (initialize_node_lattices): Replaced IPA_NODE_REF with a direct use of 26935 ipa_node_params_sum. 26936 (ipa_context_from_jfunc): Replaced IPA_EDGE_REF with a direct use of 26937 ipa_edge_args_sum. 26938 (ipcp_verify_propagated_values): Replaced IPA_NODE_REF with a direct 26939 use of ipa_node_params_sum. 26940 (self_recursively_generated_p): Likewise. 26941 (propagate_scalar_across_jump_function): Likewise. 26942 (propagate_context_across_jump_function): Replaced IPA_EDGE_REF with a 26943 direct use of ipa_edge_args_sum, moved the lookup after the early 26944 exit. Replaced IPA_NODE_REF with a direct use of ipa_node_params_sum. 26945 (propagate_bits_across_jump_function): Replaced IPA_NODE_REF with 26946 direct uses of ipa_node_params_sum. 26947 (propagate_vr_across_jump_function): Likewise. 26948 (propagate_aggregate_lattice): Likewise. 26949 (propagate_aggs_across_jump_function): Likewise. 26950 (propagate_constants_across_call): Likewise, also replaced 26951 IPA_EDGE_REF with a direct use of ipa_edge_args_sum. 26952 (good_cloning_opportunity_p): Replaced IPA_NODE_REF with a direct use 26953 of ipa_node_params_sum. 26954 (estimate_local_effects): Likewise. 26955 (add_all_node_vals_to_toposort): Likewise. 26956 (propagate_constants_topo): Likewise. 26957 (ipcp_propagate_stage): Likewise. 26958 (ipcp_discover_new_direct_edges): Likewise. 26959 (calls_same_node_or_its_all_contexts_clone_p): Likewise. 26960 (cgraph_edge_brings_value_p): Likewise (in both overloaded functions). 26961 (get_info_about_necessary_edges): Likewise. 26962 (want_remove_some_param_p): Likewise. 26963 (create_specialized_node): Likewise. 26964 (self_recursive_pass_through_p): Likewise. 26965 (self_recursive_agg_pass_through_p): Likewise. 26966 (find_more_scalar_values_for_callers_subset): Likewise and also 26967 replaced IPA_EDGE_REF with direct uses of ipa_edge_args_sum, in one 26968 case replacing two of those with a single query. 26969 (find_more_contexts_for_caller_subset): Likewise for the 26970 ipa_polymorphic_call_context overload. 26971 (intersect_aggregates_with_edge): Replaced IPA_EDGE_REF with a direct 26972 use of ipa_edge_args_sum. Replaced IPA_NODE_REF with direct uses of 26973 ipa_node_params_sum. 26974 (find_aggregate_values_for_callers_subset): Likewise, also reusing 26975 results of ipa_edge_args_sum->get. 26976 (cgraph_edge_brings_all_scalars_for_node): Replaced IPA_NODE_REF with 26977 direct uses of ipa_node_params_sum, replaced IPA_EDGE_REF with a 26978 direct use of ipa_edge_args_sum. 26979 (cgraph_edge_brings_all_agg_vals_for_node): Likewise, moved node 26980 summary query after the early exit and reused the result later. 26981 (decide_about_value): Replaced IPA_NODE_REF with a direct use of 26982 ipa_node_params_sum. 26983 (decide_whether_version_node): Likewise. Removed re-querying for 26984 summaries after cloning. 26985 (spread_undeadness): Replaced IPA_NODE_REF with a direct use of 26986 ipa_node_params_sum. 26987 (has_undead_caller_from_outside_scc_p): Likewise, reusing results of 26988 some queries. 26989 (identify_dead_nodes): Likewise. 26990 (ipcp_store_bits_results): Replaced IPA_NODE_REF with direct uses of 26991 ipa_node_params_sum. 26992 (ipcp_store_vr_results): Likewise. 26993 * ipa-fnsummary.c (evaluate_properties_for_edge): Likewise. 26994 (ipa_fn_summary_t::duplicate): Likewise. 26995 (analyze_function_body): Likewise. 26996 (estimate_calls_size_and_time): Likewise. 26997 (ipa_cached_call_context::duplicate_from): Likewise. 26998 (ipa_call_context::equal_to): Likewise. 26999 (remap_edge_params): Likewise. 27000 (ipa_merge_fn_summary_after_inlining): Likewise. 27001 (inline_read_section): Likewise. 27002 * ipa-icf.c (sem_function::param_used_p): Likewise. 27003 * ipa-modref.c (compute_parm_map): Likewise. 27004 (compute_parm_map): Replaced IPA_EDGE_REF with a direct use of 27005 ipa_edge_args_sum. 27006 (get_access_for_fnspec): Replaced IPA_NODE_REF with a direct use of 27007 ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of 27008 ipa_edge_args_sum. 27009 * ipa-profile.c (check_argument_count): Likewise. 27010 * ipa-prop.c (ipa_alloc_node_params): Replaced IPA_NODE_REF_GET_CREATE 27011 with a direct use of ipa_node_params_sum. 27012 (ipa_initialize_node_params): Likewise. 27013 (ipa_print_node_jump_functions_for_edge): Replaced IPA_EDGE_REF with a 27014 direct use of ipa_edge_args_sum and reused the query result. 27015 (ipa_compute_jump_functions_for_edge): Replaced IPA_NODE_REF with a 27016 direct use of ipa_node_params_sum and replaced IPA_EDGE_REF with a 27017 direct use of ipa_edge_args_sum. 27018 (ipa_note_param_call): Replaced IPA_NODE_REF with a direct use of 27019 ipa_node_params_sum and reused the result of the query. 27020 (ipa_analyze_node): Likewise. 27021 (ipa_analyze_controlled_uses): Replaced IPA_NODE_REF with a direct use 27022 of ipa_node_params_sum. 27023 (update_jump_functions_after_inlining): Replaced IPA_EDGE_REF with 27024 direct uses of ipa_edge_args_sum. 27025 (update_indirect_edges_after_inlining): Replaced IPA_NODE_REF with 27026 direct uses of ipa_node_params_sum and replaced IPA_EDGE_REF with a 27027 direct use of ipa_edge_args_sum. Removed superficial re-querying the 27028 top edge summary. 27029 (propagate_controlled_uses): Replaced IPA_NODE_REF with direct uses of 27030 ipa_node_params_sum and replaced IPA_EDGE_REF with a direct use of 27031 ipa_edge_args_sum. 27032 (ipa_propagate_indirect_call_infos): Replaced IPA_EDGE_REF with a 27033 direct use of ipa_edge_args_sum. 27034 (ipa_edge_args_sum_t::duplicate): Replaced IPA_NODE_REF with a direct 27035 use of ipa_node_params_sum. 27036 (ipa_print_node_params): Likewise. 27037 (ipa_write_node_info): Likewise and also replaced IPA_EDGE_REF with 27038 direct uses of ipa_edge_args_sum. 27039 (ipa_read_edge_info): Replaced IPA_EDGE_REF with a direct use of 27040 ipa_edge_args_sum. 27041 (ipa_read_node_info): Replaced IPA_NODE_REF with a direct use of 27042 ipa_node_params_sum. 27043 (ipa_prop_write_jump_functions): Likewise. Move variable node to the 27044 scopes where it is used. 27045 270462021-05-10 Uro�� Bizjak <ubizjak@gmail.com> 27047 27048 * config/i386/i386-expand.c (ix86_expand_sse_movcc) 27049 <case E_V2SImode>: Force op_true to register. 27050 270512021-05-10 Christophe Lyon <christophe.lyon@linaro.org> 27052 27053 * config/arm/iterators.md (MVE_FP_COMPARISONS): New. 27054 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_f<mode>) 27055 (mve_vcmp<mve_cmp_op>q_n_f<mode>): New, merge all vcmp_*f* 27056 patterns. 27057 (mve_vcmpeqq_f<mode>, mve_vcmpeqq_n_f<mode>, mve_vcmpgeq_f<mode>) 27058 (mve_vcmpgeq_n_f<mode>, mve_vcmpgtq_f<mode>) 27059 (mve_vcmpgtq_n_f<mode>, mve_vcmpleq_f<mode>) 27060 (mve_vcmpleq_n_f<mode>, mve_vcmpltq_f<mode>) 27061 (mve_vcmpltq_n_f<mode>, mve_vcmpneq_f<mode>) 27062 (mve_vcmpneq_n_f<mode>): Remove. 27063 * config/arm/unspecs.md (VCMPEQQ_F, VCMPEQQ_N_F, VCMPGEQ_F) 27064 (VCMPGEQ_N_F, VCMPGTQ_F, VCMPGTQ_N_F, VCMPLEQ_F, VCMPLEQ_N_F) 27065 (VCMPLTQ_F, VCMPLTQ_N_F, VCMPNEQ_F, VCMPNEQ_N_F): Remove. 27066 270672021-05-10 Christophe Lyon <christophe.lyon@linaro.org> 27068 27069 * config/arm/iterators.md (MVE_COMPARISONS): New. 27070 (mve_cmp_op): New. 27071 (mve_cmp_type): New. 27072 * config/arm/mve.md (mve_vcmp<mve_cmp_op>q_<mode>): New, merge all 27073 mve_vcmp patterns. 27074 (mve_vcmpneq_<mode>, mve_vcmpcsq_n_<mode>, mve_vcmpcsq_<mode>) 27075 (mve_vcmpeqq_n_<mode>, mve_vcmpeqq_<mode>, mve_vcmpgeq_n_<mode>) 27076 (mve_vcmpgeq_<mode>, mve_vcmpgtq_n_<mode>, mve_vcmpgtq_<mode>) 27077 (mve_vcmphiq_n_<mode>, mve_vcmphiq_<mode>, mve_vcmpleq_n_<mode>) 27078 (mve_vcmpleq_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>) 27079 (mve_vcmpneq_n_<mode>, mve_vcmpltq_n_<mode>, mve_vcmpltq_<mode>) 27080 (mve_vcmpneq_n_<mode>): Remove. 27081 270822021-05-10 Christophe Lyon <christophe.lyon@linaro.org> 27083 27084 * config/arm/arm_mve.h (__arm_vcmp*): Remove 's' suffix. 27085 * config/arm/arm_mve_builtins.def (vcmp*): Remove 's' suffix. 27086 * config/arm/mve.md (mve_vcmp*): Remove 's' suffix in pattern 27087 names. 27088 270892021-05-10 Christophe Lyon <christophe.lyon@linaro.org> 27090 27091 * config/arm/arm_mve_builtins.def (vcmpneq_u): Remove. 27092 (vcmpneq_n_u): Likewise. 27093 (vcmpeqq_u,): Likewise. 27094 (vcmpeqq_n_u): Likewise. 27095 * config/arm/iterators.md (supf): Remove VCMPNEQ_U, VCMPEQQ_U, 27096 VCMPEQQ_N_U and VCMPNEQ_N_U. 27097 * config/arm/mve.md (mve_vcmpneq): Remove <supf> iteration. 27098 (mve_vcmpeqq_n): Likewise. 27099 (mve_vcmpeqq): Likewise. 27100 (mve_vcmpneq_n): Likewise. 27101 271022021-05-10 Christophe Lyon <christophe.lyon@linaro.org> 27103 27104 * config/arm/arm_mve.h (__arm_vcmpeq*u*, __arm_vcmpne*u*): Call 27105 the 's' version of the builtin. 27106 271072021-05-10 Richard Biener <rguenther@suse.de> 27108 27109 PR tree-optimization/100492 27110 * tree-loop-distribution.c (find_seed_stmts_for_distribution): 27111 Find nothing when the loop contains an irreducible region. 27112 271132021-05-10 Richard Biener <rguenther@suse.de> 27114 27115 PR middle-end/100464 27116 PR c++/100468 27117 * gimple-fold.c (canonicalize_constructor_val): Do not set 27118 TREE_ADDRESSABLE. 27119 271202021-05-10 Richard Biener <rguenther@suse.de> 27121 27122 PR tree-optimization/100434 27123 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle 27124 call LHS. 27125 (dse_optimize_stmt): Handle call LHS by dropping the 27126 LHS or the whole call if it doesn't have other 27127 side-effects. 27128 (pass_dse::execute): Adjust. 27129 271302021-05-10 Martin Liska <mliska@suse.cz> 27131 27132 * Makefile.in: Add missing genversion rule. 27133 271342021-05-10 Alex Coplan <alex.coplan@arm.com> 27135 27136 PR target/99960 27137 * config/arm/mve.md (*mve_mov<mode>): Simplify output code. Use 27138 vldrw.u32 and vstrw.32 for V2D[IF]mode loads and stores. 27139 271402021-05-10 Martin Liska <mliska@suse.cz> 27141 27142 * builtins.c (is_builtin_name): Use startswith 27143 function instead of strncmp. 27144 * collect2.c (main): Likewise. 27145 (has_lto_section): Likewise. 27146 (scan_libraries): Likewise. 27147 * coverage.c (coverage_checksum_string): Likewise. 27148 (coverage_init): Likewise. 27149 * dwarf2out.c (is_cxx): Likewise. 27150 (gen_compile_unit_die): Likewise. 27151 * gcc-ar.c (main): Likewise. 27152 * gcc.c (init_spec): Likewise. 27153 (read_specs): Likewise. 27154 (execute): Likewise. 27155 (check_live_switch): Likewise. 27156 * genattrtab.c (write_attr_case): Likewise. 27157 (IS_ATTR_GROUP): Likewise. 27158 * gencfn-macros.c (main): Likewise. 27159 * gengtype.c (type_for_name): Likewise. 27160 (gen_rtx_next): Likewise. 27161 (get_file_langdir): Likewise. 27162 (write_local): Likewise. 27163 * genmatch.c (get_operator): Likewise. 27164 (get_operand_type): Likewise. 27165 (expr::gen_transform): Likewise. 27166 * genoutput.c (validate_optab_operands): Likewise. 27167 * incpath.c (add_sysroot_to_chain): Likewise. 27168 * langhooks.c (lang_GNU_C): Likewise. 27169 (lang_GNU_CXX): Likewise. 27170 (lang_GNU_Fortran): Likewise. 27171 (lang_GNU_OBJC): Likewise. 27172 * lto-wrapper.c (run_gcc): Likewise. 27173 * omp-general.c (omp_max_simt_vf): Likewise. 27174 * omp-low.c (omp_runtime_api_call): Likewise. 27175 * opts-common.c (parse_options_from_collect_gcc_options): Likewise. 27176 * read-rtl-function.c (function_reader::read_rtx_operand_r): Likewise. 27177 * real.c (real_from_string): Likewise. 27178 * selftest.c (assert_str_startswith): Likewise. 27179 * timevar.c (timer::validate_phases): Likewise. 27180 * tree.c (get_file_function_name): Likewise. 27181 * ubsan.c (ubsan_use_new_style_p): Likewise. 27182 * varasm.c (default_function_rodata_section): Likewise. 27183 (incorporeal_function_p): Likewise. 27184 (default_section_type_flags): Likewise. 27185 * system.h (startswith): Define startswith. 27186 271872021-05-10 Martin Liska <mliska@suse.cz> 27188 27189 * bitmap.h (class auto_bitmap): Remove 27190 __cplusplus >= 201103. 27191 * config/aarch64/aarch64.c: Likewise. 27192 * gimple-ssa-store-merging.c (store_immediate_info::store_immediate_info): 27193 Likewise. 27194 * sbitmap.h: Likewise. 27195 271962021-05-10 Martin Liska <mliska@suse.cz> 27197 27198 * Makefile.in: Rename gcov-iov to genversion and depend 27199 on version.h (instead of gcov-iov.h). 27200 * gcov-io.h: Include version.h instread of gcov-iov.h. 27201 * gengtype-state.c (read_state_version): Likewise. 27202 * gcov-iov.c: Moved to... 27203 * genversion.c: ...here. 27204 * lto-streamer.h (LTO_major_version): Define it with 27205 GCC_major_version. 27206 * version.c: Removed. 27207 * version.h: Removed. 27208 272092021-05-10 Claudiu Zissulescu <claziss@synopsys.com> 27210 27211 * config/arc/arc.md (UNSPEC_ARC_DMPYWH): Define. 27212 * config/arc/simdext.md (VCT): Add predicates for iterator 27213 elements. 27214 (EMUVEC): Define. 27215 (voptab): Likewise. 27216 (vec_widen_<V_US>mult_hi_v4hi): Change pattern predicate. 27217 (<voptab>v2si3): New patterns. 27218 (neg): Likewise. 27219 (reduc_plus_scal_v4hi): Likewise. 27220 (reduc_plus_scal_v2si): Likewise. 27221 (vec_duplicatev2si): Likewise. 27222 (vec_duplicatev4hi): Likewise. 27223 272242021-05-10 Claudiu Zissulescu <claziss@synopsys.com> 27225 27226 * config/arc/simdext.md: Format and cleanup file. 27227 272282021-05-10 Claudiu Zissulescu <claziss@synopsys.com> 27229 27230 * config/arc/simdext.md (movmisalignv2hi): Allow misaligned access 27231 only when munaligned-access option is on. 27232 (movmisalign<mode>): Likewise. 27233 272342021-05-10 Claudiu Zissulescu <claziss@synopsys.com> 27235 27236 * common/config/arc/arc-common.c (arc_handle_option): Remove dot 27237 from string. 27238 * config/arc/arc.c (arc_reorg): Remove underscore from string. 27239 272402021-05-10 Claudiu Zissulescu <claziss@synopsys.com> 27241 27242 * config/arc/arc.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. 27243 (CTZ_DEFINED_VALUE_AT_ZERO): Likewise. 27244 * config/arc/arc.md (clrsbsi2): Cleanup pattern. 27245 (norm_f): Likewise. 27246 (ffs): Likewise. 27247 (ffs_f): Likewise. 27248 (clzsi2): Use fls instruction when available. 27249 (arc_clzsi2): Likewise. 27250 272512021-05-10 Claudiu Zissulescu <claziss@synopsys.com> 27252 27253 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add r26 and r27. 27254 272552021-05-10 Claudiu Zissulescu <claziss@synopsys.com> 27256 27257 * doc/extend.texi (__builtin_arc_sr): Swap arguments. 27258 272592021-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de> 27260 27261 PR middle-end/100467 27262 * toplev.c (compile_file): Call insn_locations_init before 27263 targetm.asm_out.code_end. 27264 272652021-05-07 Andrew Stubbs <ams@codesourcery.com> 27266 27267 Revert: 27268 2021-05-07 Andrew Stubbs <ams@codesourcery.com> 27269 27270 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode. 27271 272722021-05-07 Jakub Jelinek <jakub@redhat.com> 27273 Andrew Stubbs <amd@codesourcery.com> 27274 27275 PR target/100418 27276 * builtins.c (try_store_by_multiple_pieces): Use force_operand for 27277 emit_move_insn operands. 27278 272792021-05-07 Eric Botcazou <ebotcazou@adacore.com> 27280 27281 * cfgexpand.c (expand_gimple_basic_block): Do not inherit a current 27282 location for the outgoing edges of an empty block. 27283 * dwarf2out.c (add_subscript_info): Retrieve the bounds and index 27284 type by means of the get_array_descr_info langhook, if it is set and 27285 returns true. Remove obsolete code dealing with unnamed subtypes. 27286 272872021-05-07 Andrew MacLeod <amacleod@redhat.com> 27288 27289 * gimple-range-cache.cc (ssa_block_ranges): Virtualize. 27290 (sbr_vector): Renamed from ssa_block_cache. 27291 (sbr_vector::sbr_vector): Allocate from obstack abd initialize. 27292 (ssa_block_ranges::~ssa_block_ranges): Remove. 27293 (sbr_vector::set_bb_range): Use varying and undefined cached values. 27294 (ssa_block_ranges::set_bb_varying): Remove. 27295 (sbr_vector::get_bb_range): Adjust assert. 27296 (sbr_vector::bb_range_p): Adjust assert. 27297 (~block_range_cache): No freeing loop required. 27298 (block_range_cache::get_block_ranges): Remove. 27299 (block_range_cache::set_bb_range): Inline get_block_ranges. 27300 (block_range_cache::set_bb_varying): Remove. 27301 * gimple-range-cache.h (set_bb_varying): Remove prototype. 27302 * value-range.h (irange_allocator::get_memory): New. 27303 273042021-05-07 Andrew MacLeod <amacleod@redhat.com> 27305 27306 * gimple-range-cache.cc (non_null_ref::non_null_deref_p): Search 27307 dominator tree is available and requested. 27308 (ranger_cache::ssa_range_in_bb): Don't search dom tree here. 27309 (ranger_cache::fill_block_cache): Don't search dom tree here either. 27310 * gimple-range-cache.h (non_null_deref_p): Add dom_search param. 27311 273122021-05-07 Andrew MacLeod <amacleod@redhat.com> 27313 27314 * gimple-range.cc (gimple_ranger::range_on_exit): Handle block with 27315 only PHI nodes better. 27316 273172021-05-07 Andrew MacLeod <amacleod@redhat.com> 27318 27319 * gimple-range-edge.h (gimple_outgoing_range): Rename from 27320 outgoing_range. 27321 (gcond_edge_range): Export prototype. 27322 * gimple-range-edge.cc (gcond_edge_range): New. 27323 (gimple_outgoing_range::edge_range_p): Use gcond_edge_range. 27324 * gimple-range-gori.h (gori_compute): Use gimple_outgoing_range. 27325 273262021-05-07 Andrew MacLeod <amacleod@redhat.com> 27327 27328 * gimple-range-edge.cc (outgoing_range::calc_switch_ranges): Compute 27329 default range into a temp and allocate only what is needed. 27330 273312021-05-07 Andrew MacLeod <amacleod@redhat.com> 27332 27333 * range-op.cc (operator_trunc_mod::wi_fold): x % 0 is UNDEFINED. 27334 273352021-05-07 Andrew MacLeod <amacleod@redhat.com> 27336 27337 * gimple-range.h (gimple_range_global): Pick up parameter initial 27338 values, and use-before defined locals are UNDEFINED. 27339 273402021-05-07 Eric Botcazou <ebotcazou@adacore.com> 27341 27342 * doc/extend.texi (scalar_storage_order): Mention effect on pointer 27343 and vector fields. 27344 * tree.h (reverse_storage_order_for_component_p): Return false if 27345 the type is a pointer. 27346 273472021-05-07 Andrew Stubbs <ams@codesourcery.com> 27348 27349 * config/gcn/gcn.c (gcn_scalar_mode_supported_p): Disable TImode. 27350 273512021-05-07 Uro�� Bizjak <ubizjak@gmail.com> 27352 27353 PR target/98218 27354 * config/i386/i386-expand.c (ix86_expand_sse_movcc): 27355 Handle V8QI, V4HI and V2SI modes. 27356 * config/i386/mmx.md (mmx_pblendvb): New insn pattern. 27357 * config/i386/sse.md (unspec): Move UNSPEC_BLENDV ... 27358 * config/i386/i386.md (unspec): ... here. 27359 273602021-05-07 Tobias Burnus <tobias@codesourcery.com> 27361 Tom de Vries <tdevries@suse.de> 27362 27363 * omp-low.c (lower_rec_simd_input_clauses): Set max_vf = 1 if 27364 a truth_value_p reduction variable is nonintegral. 27365 273662021-05-07 Uro�� Bizjak <ubizjak@gmail.com> 27367 27368 PR target/100445 27369 * config/i386/i386-expand.c (ix86_use_mask_cmp_p): 27370 Return false for mode sizes < 16. 27371 273722021-05-07 Jakub Jelinek <jakub@redhat.com> 27373 27374 PR target/100445 27375 * config/i386/mmx.md (*xop_pcmov_<mode>): New define_insn. 27376 273772021-05-06 Martin Jambor <mjambor@suse.cz> 27378 27379 * ipa-sra.c (ipa_sra_dump_all_summaries): Dump edge summaries even 27380 when there is no function summary. 27381 (ipa_sra_summarize_function): produce edge summaries even when 27382 bailing out early. 27383 273842021-05-06 Tom Tromey <tom@tromey.com> 27385 27386 * godump.c (string_hash_eq): Remove. 27387 (go_finish): Use htab_eq_string. 27388 273892021-05-06 Tom Tromey <tom@tromey.com> 27390 27391 * gengtype-state.c (read_state): Use htab_eq_string. 27392 (string_eq): Remove. 27393 273942021-05-06 Tom Tromey <tom@tromey.com> 27395 27396 * gensupport.c (htab_eq_string): Remove. 27397 273982021-05-06 Bernd Edlinger <bernd.edlinger@hotmail.de> 27399 27400 PR ipa/97937 27401 * debug.h (gcc_debug_hooks): Add set_ignored_loc function pointer. 27402 * dwarf2out.h (dw_fde_node::ignored_debug): New data item. 27403 * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Add dummy 27404 set_ignored_loc callbacks. 27405 * debug.c (do_nothing_debug_hooks): Likewise. 27406 * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. 27407 * dwarf2out.c (text_section_used, cold_text_section_used): Remove. 27408 (in_text_section_p, last_text_label, last_cold_label, 27409 switch_text_ranges, switch_cold_ranges): New data items. 27410 (dwarf2out_note_section_used): Remove. 27411 (dwarf2out_begin_prologue): Set fde->ignored_debug and 27412 in_text_section_p. 27413 (mark_ignored_debug_section): New helper function. 27414 (dwarf2out_end_epilogue, dwarf2out_switch_text_section): Call 27415 mark_ignored_debug_section. 27416 (dwarf2_debug_hooks): Use dwarf2out_set_ignored_loc. 27417 (dwarf2_lineno_debug_hooks): Use dummy for set_ignored_loc. 27418 (size_of_aranges): Adjust formula for multi-part text ranges size. 27419 (output_aranges): Output multi-part text ranges. 27420 (dwarf2out_set_ignored_loc): New callback function. 27421 (dwarf2out_finish): Output multi-part text ranges. 27422 (dwarf2out_c_finalize): Clear new data items. 27423 * final.c (final_start_function_1): Call set_ignored_loc callback. 27424 (final_scan_insn_1): Likewise. 27425 * ggc-page.c (gt_ggc_mx): New helper function. 27426 * stringpool.c (gt_pch_nx): Likewise. 27427 274282021-05-06 Richard Biener <rguenther@suse.de> 27429 27430 * timevar.def (TV_TREE_INSERT_PHI_NODES): Remove. 27431 (TV_TREE_SSA_REWRITE_BLOCKS): Likewise. 27432 (TV_TREE_INTO_SSA): New. 27433 * tree-into-ssa.c (insert_phi_nodes): Do not account separately. 27434 (rewrite_blocks): Likewise. 27435 (pass_data_build_ssa): Account to TV_TREE_INTO_SSA. 27436 274372021-05-06 Jakub Jelinek <jakub@redhat.com> 27438 27439 * tree-ssa-phiopt.c (value_replacement, minmax_replacement, 27440 abs_replacement, xor_replacement, 27441 cond_removal_in_popcount_clz_ctz_pattern, 27442 replace_phi_edge_with_variable): Change type of phi argument from 27443 gimple * to gphi *. 27444 274452021-05-06 Richard Biener <rguenther@suse.de> 27446 27447 * tree-ssa-loop-split.c (split_loop): Delay updating SSA form. 27448 Output an opt-info message. 27449 (do_split_loop_on_cond): Likewise. 27450 (tree_ssa_split_loops): Update SSA form here. 27451 274522021-05-06 Richard Biener <rguenther@suse.de> 27453 27454 * tree-inline.c (tree_function_versioning): Fix DECL_BY_REFERENCE 27455 return variable removal. 27456 274572021-05-06 Marius Hillenbrand <mhillen@linux.ibm.com> 27458 27459 * config/s390/s390-builtins.def (O_M5, O1_M5, ...): Remove unused macros. 27460 (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64) 27461 (s390_vec_permi_dbl, s390_vpdi): Use the O3_U2 type for the immediate 27462 operand. 27463 * config/s390/s390.c (s390_const_operand_ok): Remove unused 27464 values. 27465 274662021-05-06 Jakub Jelinek <jakub@redhat.com> 27467 27468 PR tree-optimization/94589 27469 * tree-ssa-phiopt.c (tree_ssa_phiopt_worker): Call 27470 spaceship_replacement. 27471 (cond_only_block_p, spaceship_replacement): New functions. 27472 274732021-05-06 Richard Biener <rguenther@suse.de> 27474 27475 PR ipa/100373 27476 * tree-emutls.c (gen_emutls_addr): Pass in whether we're 27477 dealing with a debug use and only query existing addresses 27478 if so. 27479 (lower_emutls_1): Avoid splitting out addresses for debug 27480 stmts, reset the debug stmt when we fail to find existing 27481 lowered addresses. 27482 (lower_emutls_phi_arg): Set wi.stmt. 27483 274842021-05-06 Christoph Muellner <cmuellner@gcc.gnu.org> 27485 27486 PR target/100266 27487 * config/riscv/riscv.c (riscv_block_move_loop): Use cbranch helper. 27488 * config/riscv/riscv.md (cbranch<mode>4): Generate helpers. 27489 (stack_protect_test): Use cbranch helper. 27490 274912021-05-05 Eric Botcazou <ebotcazou@adacore.com> 27492 27493 PR target/100402 27494 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, 27495 always return the establisher frame for __builtin_frame_address (0). 27496 274972021-05-05 Ivan Sorokin <vanyacpp@gmail.com> 27498 27499 PR target/91400 27500 * config/i386/i386-builtins.c (ix86_cpu_model_type_node): New. 27501 (ix86_cpu_model_var): Likewise. 27502 (ix86_cpu_features2_type_node): Likewise. 27503 (ix86_cpu_features2_var): Likewise. 27504 (fold_builtin_cpu): Cache __cpu_model and __cpu_features2 with 27505 their types. 27506 275072021-05-05 Martin Sebor <msebor@redhat.com> 27508 27509 * passes.def (pass_warn_printf): Run after SSA. 27510 275112021-05-05 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 27512 27513 * config/arm/neon.md (neon_vtst_combine<mode>): New pattern. 27514 * config/arm/predicates.md (minus_one_operand): New predicate. 27515 275162021-05-05 Jeff Law <jlaw@tachyum.com> 27517 27518 * config/avr/avr.md: Remove references to CC_STATUS_INIT. 27519 275202021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 27521 27522 PR rtl-optimization/100263 27523 * postreload.c (move2add_valid_value_p): Ensure register can 27524 change mode. 27525 275262021-05-05 Eric Botcazou <ebotcazou@adacore.com> 27527 27528 PR rtl-optimization/100411 27529 * cfgcleanup.c (try_crossjump_to_edge): Also skip end of prologue 27530 and beginning of function markers. 27531 275322021-05-05 Jeff Law <jlaw@tachyum.com> 27533 27534 * config/cr16/cr16.h (NOTICE_UPDATE_CC): Remove. 27535 * config/cr16/cr16.c (notice_update_cc): Remove. 27536 * config/cr16/cr16-protos.h (notice_update_cc): Remove. 27537 275382021-05-05 Uro�� Bizjak <ubizjak@gmail.com> 27539 27540 PR target/98218 27541 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): 27542 Handle V8QI, V4HI and V2SI modes. 27543 * config/i386/i386.c (ix86_build_const_vector): Handle V2SImode. 27544 (ix86_build_signbit_mask): Ditto. 27545 * config/i386/mmx.md (MMXMODE14): New mode iterator. 27546 (<smaxmin:code><MMXMODE14:mode>3): New expander. 27547 (*mmx_<smaxmin:code><MMXMODE14:mode>3): New insn pattern. 27548 (<umaxmin:code><MMXMODE24:mode>3): New expander. 27549 (*mmx_<umaxmin:code><MMXMODE24:mode>3): New insn pattern. 27550 (vec_cmp<MMXMODEI:mode><MMXMODEI:mode>): New expander. 27551 (vec_cmpu<MMXMODEI:mode><MMXMODEI:mode>): Ditto. 27552 (vcond<MMXMODEI:mode><MMXMODEI:mode>): Ditto. 27553 (vcondu<MMXMODEI:mode><MMXMODEI:mode>): Ditto. 27554 (vcond_mask_<MMXMODEI:mode><MMXMODEI:mode>): Ditto. 27555 275562021-05-05 Eric Botcazou <ebotcazou@adacore.com> 27557 27558 * dwarf2out.c (loc_list_from_tree_1) <DECL>: During early DWARF, do 27559 not expand the VALUE_EXPR of variables put in the non-local frame. 27560 * gimplify.c (gimplify_type_sizes) <RECORD_TYPE>: If the type is not 27561 to be ignored for debug info, ensure its variable offsets are not. 27562 275632021-05-05 Richard Biener <rguenther@suse.de> 27564 27565 PR tree-optimization/79333 27566 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): 27567 Fold stmt following SSA edges. 27568 275692021-05-05 Richard Biener <rguenther@suse.de> 27570 27571 PR middle-end/100394 27572 * calls.c (expand_call): Preserve possibly throwing calls. 27573 * cfgexpand.c (expand_call_stmt): When a call can throw signal 27574 RTL expansion there are side-effects. 27575 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Simplify, 27576 mark all possibly throwing stmts necessary unless we can elide 27577 dead EH. 27578 * tree-ssa-dse.c (pass_dse::execute): Preserve exceptions unless 27579 -fdelete-dead-exceptions. 27580 * tree.h (DECL_PURE_P): Add note about exceptions. 27581 275822021-05-05 Alexandre Oliva <oliva@adacore.com> 27583 27584 * config/i386/vxworks.h (DBX_REGISTER_NUMBER): Make it 27585 unconditional. 27586 275872021-05-04 David Edelsohn <dje.gcc@gmail.com> 27588 27589 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use 27590 get_fnname_from_decl for name of thunk. 27591 * config/rs6000/rs6000.c (rs6000_declare_alias): Use assemble_name 27592 and ASM_OUTPUT_LABEL. 27593 (rs6000_xcoff_declare_function_name): Use assemble_name and 27594 ASM_OUTPUT_LABEL. 27595 (rs6000_xcoff_declare_object_name): Use ASM_OUTPUT_LABEL. 27596 (rs6000_xcoff_encode_section_info): Don't add mapping class 27597 for aliases. Always add [DS] mapping class to primary 27598 FUNCTION_DECL. 27599 (rs6000_asm_weaken_decl): Don't explicitly add [DS]. 27600 276012021-05-04 Martin Sebor <msebor@redhat.com> 27602 27603 PR middle-end/100307 27604 * builtins.c (compute_objsize_r): Clear base0 for pointers. 27605 276062021-05-04 Jeff Law <jlaw@tachyum.com> 27607 27608 * config/bfin/bfin.h (NOTICE_UPDATE_CC): Remove. 27609 276102021-05-04 Segher Boessenkool <segher@kernel.crashing.org> 27611 27612 * caller-save.c: Remove CC0. 27613 * cfgcleanup.c: Remove CC0. 27614 * cfgrtl.c: Remove CC0. 27615 * combine.c: Remove CC0. 27616 * compare-elim.c: Remove CC0. 27617 * conditions.h: Remove CC0. 27618 * config/h8300/h8300.h: Remove CC0. 27619 * config/h8300/h8300-protos.h: Remove CC0. 27620 * config/h8300/peepholes.md: Remove CC0. 27621 * config/i386/x86-tune-sched.c: Remove CC0. 27622 * config/m68k/m68k.c: Remove CC0. 27623 * config/rl78/rl78.c: Remove CC0. 27624 * config/sparc/sparc.c: Remove CC0. 27625 * config/xtensa/xtensa.c: Remove CC0. 27626 (gen_conditional_move): Use pc_rtx instead of cc0_rtx in a piece of 27627 RTL where that is used as a placeholder only. 27628 * cprop.c: Remove CC0. 27629 * cse.c: Remove CC0. 27630 * cselib.c: Remove CC0. 27631 * df-problems.c: Remove CC0. 27632 * df-scan.c: Remove CC0. 27633 * doc/md.texi: Remove CC0. Adjust an example. 27634 * doc/rtl.texi: Remove CC0. Adjust an example. 27635 * doc/tm.texi: Regenerate. 27636 * doc/tm.texi.in: Remove CC0. 27637 * emit-rtl.c: Remove CC0. 27638 * final.c: Remove CC0. 27639 * fwprop.c: Remove CC0. 27640 * gcse-common.c: Remove CC0. 27641 * gcse.c: Remove CC0. 27642 * genattrtab.c: Remove CC0. 27643 * genconfig.c: Remove CC0. 27644 * genemit.c: Remove CC0. 27645 * genextract.c: Remove CC0. 27646 * gengenrtl.c: Remove CC0. 27647 * genrecog.c: Remove CC0. 27648 * haifa-sched.c: Remove CC0. 27649 * ifcvt.c: Remove CC0. 27650 * ira-costs.c: Remove CC0. 27651 * ira.c: Remove CC0. 27652 * jump.c: Remove CC0. 27653 * loop-invariant.c: Remove CC0. 27654 * lra-constraints.c: Remove CC0. 27655 * lra-eliminations.c: Remove CC0. 27656 * optabs.c: Remove CC0. 27657 * postreload-gcse.c: Remove CC0. 27658 * postreload.c: Remove CC0. 27659 * print-rtl.c: Remove CC0. 27660 * read-rtl-function.c: Remove CC0. 27661 * reg-notes.def: Remove CC0. 27662 * reg-stack.c: Remove CC0. 27663 * reginfo.c: Remove CC0. 27664 * regrename.c: Remove CC0. 27665 * reload.c: Remove CC0. 27666 * reload1.c: Remove CC0. 27667 * reorg.c: Remove CC0. 27668 * resource.c: Remove CC0. 27669 * rtl.c: Remove CC0. 27670 * rtl.def: Remove CC0. 27671 * rtl.h: Remove CC0. 27672 * rtlanal.c: Remove CC0. 27673 * sched-deps.c: Remove CC0. 27674 * sched-rgn.c: Remove CC0. 27675 * shrink-wrap.c: Remove CC0. 27676 * simplify-rtx.c: Remove CC0. 27677 * system.h: Remove CC0. Poison NOTICE_UPDATE_CC, CC_STATUS_MDEP_INIT, 27678 CC_STATUS_MDEP, and CC_STATUS. 27679 * target.def: Remove CC0. 27680 * valtrack.c: Remove CC0. 27681 * var-tracking.c: Remove CC0. 27682 276832021-05-04 Richard Biener <rguenther@suse.de> 27684 27685 PR tree-optimization/100414 27686 * tree-ssa-phiopt.c (get_non_trapping): Do not compute dominance 27687 info here. 27688 (tree_ssa_phiopt_worker): But unconditionally here. 27689 276902021-05-04 Tobias Burnus <tobias@codesourcery.com> 27691 27692 * omp-low.c (lower_rec_input_clauses, lower_reduction_clauses): Handle 27693 && and || with floating-point and complex arguments. 27694 276952021-05-04 Eric Botcazou <ebotcazou@adacore.com> 27696 27697 * tree-inline.c (insert_debug_decl_map): Delete. 27698 (copy_debug_stmt): Minor tweak. 27699 (setup_one_parameter): Do not use a variable if the value is either 27700 a read-only DECL or a non-addressable local variable in the caller. 27701 In this case, insert the debug-only variable in the map manually. 27702 (expand_call_inline): Do not generate a CLOBBER for these values. 27703 * tree-inline.h (debug_map): Minor tweak. 27704 277052021-05-04 Eric Botcazou <ebotcazou@adacore.com> 27706 27707 * builtins.c (builtin_with_linkage_p): Return true for stp[n]cpy. 27708 * symtab.c (symtab_node::output_to_lto_symbol_table_p): Tidy up. 27709 277102021-05-04 Richard Biener <rguenther@suse.de> 27711 27712 PR tree-optimization/100329 27713 * tree-ssa-reassoc.c (can_reassociate_p): Do not reassociate 27714 asm goto defs. 27715 (insert_stmt_after): Assert we're not running into asm goto. 27716 277172021-05-04 Richard Biener <rguenther@suse.de> 27718 27719 PR tree-optimization/100398 27720 * tree-ssa-dse.c (pass_dse::execute): Preserve control 27721 altering stmts. 27722 277232021-05-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 27724 27725 * builtins.c (try_store_by_multiple_pieces): Fix constfun's prototype. 27726 277272021-05-04 Alexandre Oliva <oliva@adacore.com> 27728 27729 * builtins.c (try_store_by_multiple_pieces): New. 27730 (expand_builtin_memset_args): Use it. If target_char_cast 27731 fails, proceed as for non-constant val. Pass len's ctz to... 27732 * expr.c (clear_storage_hints): ... this. Try store by 27733 multiple pieces after setmem. 27734 (clear_storage): Adjust. 27735 * expr.h (clear_storage_hints): Likewise. 27736 (try_store_by_multiple_pieces): Declare. 27737 * passes.def: Replace the last copy_prop with ccp. 27738 277392021-05-03 Tom de Vries <tdevries@suse.de> 27740 27741 PR target/100321 27742 * omp-low.c (lower_rec_input_clauses): Disable SIMT for user-defined 27743 reduction. 27744 277452021-05-03 Richard Biener <rguenther@suse.de> 27746 27747 * tree-ssa-dse.c (dse_classify_store): Track two PHI defs. 27748 277492021-05-03 Richard Biener <rguenther@suse.de> 27750 27751 * tree-ssa-dse.c: Do not include domwalk.h but cfganal.h. 27752 (dse_dom_walker): Remove. 27753 (dse_dom_walker::dse_optimize_stmt): Rename... 27754 (dse_optimize_stmt): ... to this, pass in live_bytes sbitmap. 27755 (dse_dom_walker::before_dom_children): Inline ... 27756 (pass_dse::execute): ... here. Perform a reverse program 27757 order walk. 27758 277592021-05-03 H.J. Lu <hjl.tools@gmail.com> 27760 27761 PR bootstrap/99703 27762 * configure: Regenerated. 27763 277642021-05-03 Ilya Leoshkevich <iii@linux.ibm.com> 27765 27766 PR target/100217 27767 * config/s390/s390.c (s390_hard_fp_reg_p): New function. 27768 (s390_md_asm_adjust): Handle hard registers. 27769 277702021-05-03 Jakub Jelinek <jakub@redhat.com> 27771 27772 PR tree-optimization/100382 27773 * tree-ssa-dse.c: Include tree-eh.h. 27774 (dse_dom_walker::before_dom_children): Don't remove stmts if 27775 stmt_unremovable_because_of_non_call_eh_p is true. 27776 277772021-05-02 David Edelsohn <dje.gcc@gmail.com> 27778 27779 * varasm.c (compute_reloc_for_var): Split out from... 27780 (get_variable_section): Use it. 27781 * output.h (compute_reloc_for_var): Declare. 27782 * config/rs6000/rs6000-protos.h 27783 (rs6000_xcoff_asm_output_aligned_decl_common): Change alignment to 27784 unsigned int. 27785 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address_aix): 27786 Don't append storage mapping class to symbol. 27787 (rs6000_xcoff_asm_named_section): Add BS and UL mapping classes. 27788 Don't convert TLS BSS to common. 27789 (rs6000_xcoff_unique_section): Don't fall back to select_secton. 27790 (rs6000_xcoff_section_type_flags): Add SECTION_BSS if DECL is 27791 bss_initializer. 27792 (rs6000_xcoff_asm_globalize_decl_name): Don't strip storage 27793 mapping class. 27794 (rs6000_xcoff_asm_output_aligned_decl_common): Align is unsigned int. 27795 If align is 0 from TLS class, use the same rules as varasm.c 27796 If not common, switch to BSS section manually. 27797 If common, emit appropriate comm or lcomm directive. 27798 (rs6000_xcoff_encode_section_info): Add logic to append all 27799 storage mapping classes. 27800 (rs6000_asm_weaken_decl): Adjust for qualname symbols. 27801 * config/rs6000/xcoff.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use 27802 rs6000_xcoff_asm_output_aligned_decl_common. 27803 (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use 27804 rs6000_xcoff_asm_output_aligned_decl_common. 27805 (ASM_OUTPUT_TLS_COMMON): Use 27806 rs6000_xcoff_asm_output_aligned_decl_common. 27807 278082021-05-02 Jakub Jelinek <jakub@redhat.com> 27809 27810 PR target/100375 27811 * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use nullptr instead of 0 27812 as first argument of pseudo_node_t constructors. 27813 278142021-05-02 Jakub Jelinek <jakub@redhat.com> 27815 27816 PR target/100336 27817 * config/i386/t-i386 (TM_H): Add $(srcdir)/config/i386/i386-isa.def. 27818 278192021-05-01 Aldy Hernandez <aldyh@redhat.com> 27820 27821 * value-range.cc (DEFINE_INT_RANGE_GC_STUBS): Remove. 27822 (gt_pch_nx (int_range<1> *&)): New. 27823 (gt_ggc_mx (int_range<1> *&)): New. 27824 * value-range.h (class irange): Add GTY support for 27825 the base class. 27826 278272021-05-01 Geng Qi <gengqi@linux.alibaba.com> 27828 27829 * doc/options.texi (Negative): Change either or to both and. 27830 278312021-04-30 Jonathan Wright <jonathan.wright@arm.com> 27832 27833 * config/aarch64/aarch64-simd-builtins.def: Add 27834 float_ml[as][q]_laneq builtin generator macros. 27835 * config/aarch64/aarch64-simd.md (mul_laneq<mode>3): Define. 27836 (aarch64_float_mla_laneq<mode>): Define. 27837 (aarch64_float_mls_laneq<mode>): Define. 27838 * config/aarch64/arm_neon.h (vmla_laneq_f32): Use RTL builtin 27839 instead of GCC vector extensions. 27840 (vmlaq_laneq_f32): Likewise. 27841 (vmls_laneq_f32): Likewise. 27842 (vmlsq_laneq_f32): Likewise. 27843 278442021-04-30 Jonathan Wright <jonathan.wright@arm.com> 27845 27846 * config/aarch64/aarch64-simd-builtins.def: Add 27847 float_ml[as]_lane builtin generator macros. 27848 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt<mode>): 27849 Rename to... 27850 (mul_lane<mode>3): This, and re-order arguments. 27851 (aarch64_float_mla_lane<mode>): Define. 27852 (aarch64_float_mls_lane<mode>): Define. 27853 * config/aarch64/arm_neon.h (vmla_lane_f32): Use RTL builtin 27854 instead of GCC vector extensions. 27855 (vmlaq_lane_f32): Likewise. 27856 (vmls_lane_f32): Likewise. 27857 (vmlsq_lane_f32): Likewise. 27858 278592021-04-30 Jonathan Wright <jonathan.wright@arm.com> 27860 27861 * config/aarch64/aarch64-simd-builtins.def: Add float_ml[as] 27862 builtin generator macros. 27863 * config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>): 27864 Define. 27865 (aarch64_float_mls<mode>): Define. 27866 * config/aarch64/arm_neon.h (vmla_f32): Use RTL builtin 27867 instead of relying on GCC vector extensions. 27868 (vmla_f64): Likewise. 27869 (vmlaq_f32): Likewise. 27870 (vmlaq_f64): Likewise. 27871 (vmls_f32): Likewise. 27872 (vmls_f64): Likewise. 27873 (vmlsq_f32): Likewise. 27874 (vmlsq_f64): Likewise. 27875 * config/aarch64/iterators.md: Define VDQF_DF mode iterator. 27876 278772021-04-30 Jonathan Wright <jonathan.wright@arm.com> 27878 27879 * config/aarch64/aarch64-simd-builtins.def: Add 27880 float_ml[as]_n_builtin generator macros. 27881 * config/aarch64/aarch64-simd.md (*aarch64_mul3_elt_from_dup<mode>): 27882 Rename to... 27883 (mul_n<mode>3): This, and re-order arguments. 27884 (aarch64_float_mla_n<mode>): Define. 27885 (aarch64_float_mls_n<mode>): Define. 27886 * config/aarch64/arm_neon.h (vmla_n_f32): Use RTL builtin 27887 instead of inline asm. 27888 (vmlaq_n_f32): Likewise. 27889 (vmls_n_f32): Likewise. 27890 (vmlsq_n_f32): Likewise. 27891 278922021-04-30 Jonathan Wright <joanthan.wright@arm.com> 27893 27894 * config/aarch64/aarch64-simd-builtins.def: Add pmull[2] 27895 builtin generator macros. 27896 * config/aarch64/aarch64-simd.md (aarch64_pmullv8qi): Define. 27897 (aarch64_pmull_hiv16qi_insn): Define. 27898 (aarch64_pmull_hiv16qi): Define. 27899 * config/aarch64/arm_neon.h (vmull_high_p8): Use RTL builtin 27900 instead of inline asm. 27901 (vmull_p8): Likewise. 27902 279032021-04-30 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> 27904 27905 * config/avr/avr.md: Adjust peepholes to match and 27906 generate parallels with clobber of REG_CC. 27907 (mov<mode>_insn): Rename to mov<mode>_insn_split. 27908 (*mov<mode>_insn): Rename to mov<mode>_insn. 27909 279102021-04-30 David Edelsohn <dje.gcc@gmail.com> 27911 27912 * varasm.c (use_blocks_for_decl_p): Don't use section anchors 27913 for VAR_DECLs if -fdata-sections enabled. 27914 279152021-04-30 Michael Meissner <meissner@linux.ibm.com> 27916 27917 PR bootstrap/100327 27918 * config/rs6000/rs6000.c 27919 (TARGET_LIBGCC_FLOATING_MODE_SUPPORTED_P): Define. 27920 (rs6000_libgcc_floating_mode_supported_p): New target hook. 27921 279222021-04-30 Aldy Hernandez <aldyh@redhat.com> 27923 27924 * tree-ssa-threadbackward.c (class thread_jumps): Split out code 27925 from here... 27926 (class back_threader_registry): ...to here... 27927 (class back_threader_profitability): ...and here... 27928 (thread_jumps::thread_through_all_blocks): Remove argument. 27929 (back_threader_registry::back_threader_registry): New. 27930 (back_threader_registry::~back_threader_registry): New. 27931 (back_threader_registry::thread_through_all_blocks): New. 27932 (thread_jumps::profitable_jump_thread_path): Move from here... 27933 (back_threader_profitability::profitable_path_p): ...to here. 27934 (thread_jumps::find_taken_edge): New. 27935 (thread_jumps::convert_and_register_current_path): Move... 27936 (back_threader_registry::register_path): ...to here. 27937 (thread_jumps::register_jump_thread_path_if_profitable): Move... 27938 (thread_jumps::maybe_register_path): ...to here. 27939 (thread_jumps::handle_phi): Call find_taken_edge and 27940 maybe_register_path. 27941 (thread_jumps::handle_assignment): Same. 27942 (thread_jumps::fsm_find_control_statement_thread_paths): Remove 27943 tree argument to handle_phi and handle_assignment. 27944 (thread_jumps::find_jump_threads_backwards): Set m_name. Remove 27945 set of m_speed_p and m_max_threaded_paths. 27946 (pass_thread_jumps::execute): Remove second argument from 27947 find_jump_threads_backwards. 27948 (pass_early_thread_jumps::execute): Same. 27949 279502021-04-30 Aldy Hernandez <aldyh@redhat.com> 27951 27952 * tree-ssa-dom.c (class dom_jump_threader_simplifier): New. 27953 (class dom_opt_dom_walker): Initialize some class variables. 27954 (pass_dominator::execute): Pass evrp_range_analyzer and 27955 dom_jump_threader_simplifier to dom_opt_dom_walker. 27956 Adjust for some functions moving into classes. 27957 (simplify_stmt_for_jump_threading): Adjust and move to... 27958 (jump_threader_simplifier::simplify): ...here. 27959 (dom_opt_dom_walker::before_dom_children): Adjust for 27960 m_evrp_range_analyzer. 27961 (dom_opt_dom_walker::after_dom_children): Remove x_vr_values hack. 27962 (test_for_singularity): Place in dom_opt_dom_walker class. 27963 (dom_opt_dom_walker::optimize_stmt): The argument 27964 evrp_range_analyzer is now a class field. 27965 * tree-ssa-threadbackward.c (class thread_jumps): Add m_registry. 27966 (thread_jumps::thread_through_all_blocks): New. 27967 (thread_jumps::convert_and_register_current_path): Use m_registry. 27968 (pass_thread_jumps::execute): Adjust for thread_through_all_blocks 27969 being in the threader class. 27970 (pass_early_thread_jumps::execute): Same. 27971 * tree-ssa-threadedge.c (threadedge_initialize_values): Move... 27972 (jump_threader::jump_threader): ...here. 27973 (threadedge_finalize_values): Move... 27974 (jump_threader::~jump_threader): ...here. 27975 (jump_threader::remove_jump_threads_including): New. 27976 (jump_threader::thread_through_all_blocks): New. 27977 (record_temporary_equivalences_from_phis): Move... 27978 (jump_threader::record_temporary_equivalences_from_phis): ...here. 27979 (record_temporary_equivalences_from_stmts_at_dest): Move... 27980 (jump_threader::record_temporary_equivalences_from_stmts_at_dest): 27981 Here... 27982 (simplify_control_stmt_condition_1): Move to jump_threader class. 27983 (simplify_control_stmt_condition): Move... 27984 (jump_threader::simplify_control_stmt_condition): ...here. 27985 (thread_around_empty_blocks): Move... 27986 (jump_threader::thread_around_empty_blocks): ...here. 27987 (thread_through_normal_block): Move... 27988 (jump_threader::thread_through_normal_block): ...here. 27989 (thread_across_edge): Move... 27990 (jump_threader::thread_across_edge): ...here. 27991 (thread_outgoing_edges): Move... 27992 (jump_threader::thread_outgoing_edges): ...here. 27993 * tree-ssa-threadedge.h: Move externally facing functings... 27994 (class jump_threader): ...here... 27995 (class jump_threader_simplifier): ...and here. 27996 * tree-ssa-threadupdate.c (struct redirection_data): Remove comment. 27997 (jump_thread_path_allocator::jump_thread_path_allocator): New. 27998 (jump_thread_path_allocator::~jump_thread_path_allocator): New. 27999 (jump_thread_path_allocator::allocate_thread_edge): New. 28000 (jump_thread_path_allocator::allocate_thread_path): New. 28001 (jump_thread_path_registry::jump_thread_path_registry): New. 28002 (jump_thread_path_registry::~jump_thread_path_registry): New. 28003 (jump_thread_path_registry::allocate_thread_edge): New. 28004 (jump_thread_path_registry::allocate_thread_path): New. 28005 (dump_jump_thread_path): Make extern. 28006 (debug (const vec<jump_thread_edge *> &path)): New. 28007 (struct removed_edges): Move to tree-ssa-threadupdate.h. 28008 (struct thread_stats_d): Remove. 28009 (remove_ctrl_stmt_and_useless_edges): Make static. 28010 (lookup_redirection_data): Move... 28011 (jump_thread_path_registry::lookup_redirection_data): ...here. 28012 (ssa_redirect_edges): Make static. 28013 (thread_block_1): Move... 28014 (jump_thread_path_registry::thread_block_1): ...here. 28015 (thread_block): Move... 28016 (jump_thread_path_registry::thread_block): ...here. 28017 (thread_through_loop_header): Move... 28018 (jump_thread_path_registry::thread_through_loop_header): ...here. 28019 (mark_threaded_blocks): Move... 28020 (jump_thread_path_registry::mark_threaded_blocks): ...here. 28021 (debug_path): Move... 28022 (jump_thread_path_registry::debug_path): ...here. 28023 (debug_all_paths): Move... 28024 (jump_thread_path_registry::dump): ..here. 28025 (rewire_first_differing_edge): Move... 28026 (jump_thread_path_registry::rewire_first_differing_edge): ...here. 28027 (adjust_paths_after_duplication): Move... 28028 (jump_thread_path_registry::adjust_paths_after_duplication): ...here. 28029 (duplicate_thread_path): Move... 28030 (jump_thread_path_registry::duplicate_thread_path): ..here. 28031 (remove_jump_threads_including): Move... 28032 (jump_thread_path_registry::remove_jump_threads_including): ...here. 28033 (thread_through_all_blocks): Move to... 28034 (jump_thread_path_registry::thread_through_all_blocks): ...here. 28035 (delete_jump_thread_path): Remove. 28036 (register_jump_thread): Move... 28037 (jump_thread_path_registry::register_jump_thread): ...here. 28038 * tree-ssa-threadupdate.h: Move externally facing functions... 28039 (class jump_thread_path_allocator): ...here... 28040 (class jump_thread_path_registry): ...and here. 28041 (thread_through_all_blocks): Remove. 28042 (struct removed_edges): New. 28043 (register_jump_thread): Remove. 28044 (remove_jump_threads_including): Remove. 28045 (delete_jump_thread_path): Remove. 28046 (remove_ctrl_stmt_and_useless_edges): Remove. 28047 (free_dom_edge_info): New prototype. 28048 * tree-vrp.c: Remove x_vr_values hack. 28049 (class vrp_jump_threader_simplifier): New. 28050 (vrp_jump_threader_simplifier::simplify): New. 28051 (vrp_jump_threader::vrp_jump_threader): Adjust method signature. 28052 Remove m_dummy_cond. 28053 Instantiate m_simplifier and m_threader. 28054 (vrp_jump_threader::thread_through_all_blocks): New. 28055 (vrp_jump_threader::simplify_stmt): Remove. 28056 (vrp_jump_threader::after_dom_children): Do not set m_dummy_cond. 28057 Remove x_vr_values hack. 28058 (execute_vrp): Adjust for thread_through_all_blocks being in a 28059 class. 28060 280612021-04-30 Christophe Lyon <christophe.lyon@linaro.org> 28062 28063 * genflags.c (gen_insn): Print failed expansion string. 28064 280652021-04-30 H.J. Lu <hjl.tools@gmail.com> 28066 28067 * expr.c (alignment_for_piecewise_move): Call mode_for_size 28068 without limit to MAX_FIXED_MODE_SIZE. 28069 280702021-04-30 H.J. Lu <hjl.tools@gmail.com> 28071 28072 PR middle-end/90773 28073 * builtins.c (builtin_memset_gen_str): Don't use return from 28074 simplify_gen_subreg. 28075 280762021-04-30 Uro�� Bizjak <ubizjak@gmail.com> 28077 28078 PR target/98060 28079 * config/i386/i386.md (*add<mode>3_carry_0r): New insn pattern. 28080 (*addsi3_carry_zext_0r): Ditto. 28081 (*sub<mode>3_carry_0): Ditto. 28082 (*subsi3_carry_zext_0r): Ditto. 28083 * config/i386/predicates.md (ix86_carry_flag_unset_operator): 28084 New predicate. 28085 * config/i386/i386.c (ix86_rtx_costs) <case PLUS, case MINUS>: 28086 Also consider ix86_carry_flag_unset_operator to calculate 28087 the cost of adc/sbb insn. 28088 280892021-04-30 Roman Zhuykov <zhroma@ispras.ru> 28090 28091 PR rtl-optimization/100225 28092 PR rtl-optimization/84878 28093 * modulo-sched.c (sms_schedule): Use note_stores to skip loops 28094 where we have an instruction which touches (writes) any hard 28095 register from df->regular_block_artificial_uses set. 28096 Allow not-single-set instruction only right before basic block 28097 tail. 28098 280992021-04-30 Geng Qi <gengqi@linux.alibaba.com> 28100 28101 * config/riscv/riscv.opt (march=,mabi=): Negative itself. 28102 281032021-04-30 LevyHsu <admin@levyhsu.com> 28104 28105 * config/riscv/riscv.c (riscv_min_arithmetic_precision): New. 28106 * config/riscv/riscv.h (TARGET_MIN_ARITHMETIC_PRECISION): New. 28107 * config/riscv/riscv.md (addv<mode>4, uaddv<mode>4): New. 28108 (subv<mode>4, usubv<mode>4, mulv<mode>4, umulv<mode>4): New. 28109 281102021-04-29 Alexandre Oliva <oliva@adacore.com> 28111 28112 * config.gcc: Merged x86 and x86_64 cpu_type-setting cases. 28113 281142021-04-29 Alexandre Oliva <oliva@adacore.com> 28115 28116 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Rename to... 28117 (ASM_OUTPUT_MAX_SKIP_ALIGN): ... this. Enclose in do/while(0). 28118 * config/i386/i386.c: Adjust. 28119 * config/i386/i386.md: Adjust. 28120 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Drop. 28121 * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28122 * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28123 * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28124 * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28125 * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28126 * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28127 * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28128 * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28129 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 28130 (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. 28131 281322021-04-29 Uro�� Bizjak <ubizjak@gmail.com> 28133 28134 * config/i386/i386-expand.c (ix86_expand_int_compare): 28135 Swap operands of GTU and LEU comparison to emit carry flag comparison. 28136 * config/i386/i386.md (*add<mode>3_carry_0): Change insn 28137 predicate to allow more combine opportunities with memory operands. 28138 (*sub<mode>3_carry_0): Ditto. 28139 281402021-04-29 Richard Sandiford <richard.sandiford@arm.com> 28141 28142 PR rtl-optimization/100303 28143 * rtl-ssa/accesses.cc (function_info::make_use_available): Take a 28144 boolean that indicates whether the use will only be used in 28145 debug instructions. Treat it in the same way that existing 28146 cross-EBB debug references would be handled if so. 28147 (function_info::make_uses_available): Likewise. 28148 * rtl-ssa/functions.h (function_info::make_uses_available): Update 28149 prototype accordingly. 28150 (function_info::make_uses_available): Likewise. 28151 * fwprop.c (try_fwprop_subst): Update call accordingly. 28152 281532021-04-29 Jeff Law <jlaw@tachyum.com> 28154 28155 * config/nios2/nios2-protos.h (nios2_fpu_insn_enabled): Move outside 28156 of RTX_CODE guard. 28157 281582021-04-29 Uro�� Bizjak <ubizjak@gmail.com> 28159 Richard Biener <rguenther@suse.de> 28160 28161 PR target/100312 28162 * config/i386/i386-builtin.def (IX86_BUILTIN_MASKLOADPD) 28163 (IX86_BUILTIN_MASKLOADPS, IX86_BUILTIN_MASKLOADPD256) 28164 (IX86_BUILTIN_MASKLOADPS256, IX86_BUILTIN_MASKLOADD) 28165 (IX86_BUILTIN_MASKLOADQ, IX86_BUILTIN_MASKLOADD256) 28166 (IX86_BUILTIN_MASKLOADQ256): Move from SPECIAL_ARGS 28167 to PURE_ARGS category. 28168 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): 28169 Handle PURE_ARGS category. 28170 * config/i386/i386-expand.c (ix86_expand_builtin): Ditto. 28171 281722021-04-29 Eric Botcazou <ebotcazou@adacore.com> 28173 28174 * configure.ac: Check for the presence of sys/locking.h header and 28175 for whether _LK_LOCK is supported by _locking. 28176 * configure: Regenerate. 28177 * config.in: Likewise. 28178 * gcov-io.h: Define GCOV_LOCKED_WITH_LOCKING if HOST_HAS_LK_LOCK. 28179 * gcov-io.c (gcov_open): Add support for GCOV_LOCKED_WITH_LOCKING. 28180 * system.h: Include <sys/locking.h> if HAVE_SYS_LOCKING_H. 28181 281822021-04-29 Uro�� Bizjak <ubizjak@gmail.com> 28183 28184 * config/i386/predicates.md (fcmov_comparison_operator): 28185 Do not check for trivial FP comparison operator. 28186 <case GEU, case LTU>: Allow CCGZmode. 28187 <case GTU, case LEU>: Do not allow CCCmode. 28188 (ix86_comparison_operator) <case GTU, case LEU>: Allow only CCmode. 28189 (ix86_carry_flag_operator): Match only LTU and UNLT code. 28190 Do not check for trivial FP comparison operator. Allow CCGZmode. 28191 281922021-04-29 Tom de Vries <tdevries@suse.de> 28193 28194 * omp-expand.c (expand_omp_simd): Add step_orig, and replace uses of 28195 fd->loop.step by either step or orig_step. 28196 281972021-04-29 Eric Botcazou <ebotcazou@adacore.com> 28198 28199 * config/sparc/sparc.c (gen_load_pcrel_sym): Delete. 28200 (load_got_register): Do the PIC dance here. 28201 (sparc_legitimize_tls_address): Simplify. 28202 (sparc_emit_probe_stack_range): Likewise. 28203 (sparc32_initialize_trampoline): Likewise. 28204 (sparc64_initialize_trampoline): Likewise. 28205 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Add @ marker. 28206 (probe_stack_range<P:mode>): Likewise. 28207 (flush<P:mode>): Likewise. 28208 (tgd_hi22<P:mode>): Likewise. 28209 (tgd_lo10<P:mode>): Likewise. 28210 (tgd_add<P:mode>): Likewise. 28211 (tgd_call<P:mode>): Likewise. 28212 (tldm_hi22<P:mode>): Likewise. 28213 (tldm_lo10<P:mode>): Likewise. 28214 (tldm_add<P:mode>): Likewise. 28215 (tldm_call<P:mode>): Likewise. 28216 (tldo_hix22<P:mode>): Likewise. 28217 (tldo_lox10<P:mode>): Likewise. 28218 (tldo_add<P:mode>): Likewise. 28219 (tie_hi22<P:mode>): Likewise. 28220 (tie_lo10<P:mode>): Likewise. 28221 (tie_add<P:mode>): Likewise. 28222 (tle_hix22<P:mode>): Likewise. 28223 (tle_lox10<P:mode>): Likewise. 28224 (stack_protect_setsi): Rename to... 28225 (stack_protect_set32): ...this. 28226 (stack_protect_setdi): Rename to... 28227 (stack_protect_set64): ...this. 28228 (stack_protect_set): Adjust calls to above. 28229 (stack_protect_testsi): Rename to... 28230 (stack_protect_test32): ...this. 28231 (stack_protect_testdi): Rename to... 28232 (stack_protect_test64): ...this. 28233 (stack_protect_test): Adjust calls to above. 28234 282352021-04-29 H.J. Lu <hjl.tools@gmail.com> 28236 28237 PR middle-end/90773 28238 * builtins.c (builtin_memcpy_read_str): Add a dummy argument. 28239 (builtin_strncpy_read_str): Likewise. 28240 (builtin_memset_read_str): Add an argument for the previous RTL 28241 information and generate the new RTL from the previous RTL info. 28242 (builtin_memset_gen_str): Likewise. 28243 * builtins.h (builtin_strncpy_read_str): Update the prototype. 28244 (builtin_memset_read_str): Likewise. 28245 * expr.c (by_pieces_ninsns): If targetm.overlap_op_by_pieces_p() 28246 returns true, round up size and alignment to the widest integer 28247 mode for maximum size. 28248 (pieces_addr::adjust): Add a pointer to by_pieces_prev argument 28249 and pass it to m_constfn. 28250 (op_by_pieces_d): Add m_push and m_overlap_op_by_pieces. 28251 (op_by_pieces_d::op_by_pieces_d): Add a bool argument to 28252 initialize m_push. Initialize m_overlap_op_by_pieces with 28253 targetm.overlap_op_by_pieces_p (). 28254 (op_by_pieces_d::run): Pass the previous RTL information to 28255 pieces_addr::adjust and generate overlapping operations if 28256 m_overlap_op_by_pieces is true. 28257 (PUSHG_P): New. 28258 (move_by_pieces_d::move_by_pieces_d): Updated for op_by_pieces_d 28259 change. 28260 (store_by_pieces_d::store_by_pieces_d): Updated for op_by_pieces_d 28261 change. 28262 (can_store_by_pieces): Use by_pieces_constfn on constfun. 28263 (store_by_pieces): Use by_pieces_constfn on constfun. Updated 28264 for op_by_pieces_d change. 28265 (clear_by_pieces_1): Add a dummy argument. 28266 (clear_by_pieces): Updated for op_by_pieces_d change. 28267 (compare_by_pieces_d::compare_by_pieces_d): Likewise. 28268 (string_cst_read_str): Add a dummy argument. 28269 * expr.h (by_pieces_constfn): Add a dummy argument. 28270 (by_pieces_prev): New. 28271 * target.def (overlap_op_by_pieces_p): New target hook. 28272 * config/i386/i386.c (TARGET_OVERLAP_OP_BY_PIECES_P): New. 28273 * doc/tm.texi.in: Add TARGET_OVERLAP_OP_BY_PIECES_P. 28274 * doc/tm.texi: Regenerated. 28275 282762021-04-29 Richard Biener <rguenther@suse.de> 28277 28278 PR tree-optimization/100253 28279 * tree-vect-stmts.c (vectorizable_load): Do not assume 28280 element alignment when DR_MISALIGNMENT is -1. 28281 (vectorizable_store): Likewise. 28282 282832021-04-29 Jakub Jelinek <jakub@redhat.com> 28284 28285 PR target/100302 28286 * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use 28287 absu_hwi instead of abs_hwi. 28288 282892021-04-29 Richard Biener <rguenther@suse.de> 28290 28291 PR middle-end/38474 28292 * tree-ssa-structalias.c (add_graph_edge): Avoid direct 28293 forwarding when indirect forwarding through ESCAPED 28294 alread happens. 28295 282962021-04-29 Tom de Vries <tdevries@suse.de> 28297 28298 PR target/100232 28299 * internal-fn.c (expand_GOMP_SIMT_ENTER_ALLOC) 28300 (expand_GOMP_SIMT_LAST_LANE, expand_GOMP_SIMT_ORDERED_PRED) 28301 (expand_GOMP_SIMT_VOTE_ANY, expand_GOMP_SIMT_XCHG_BFLY) 28302 (expand_GOMP_SIMT_XCHG_IDX): Ensure target is assigned to. 28303 283042021-04-29 Richard Biener <rguenther@suse.de> 28305 28306 PR tree-optimization/99912 28307 * tree-ssa-dse.c (dse_dom_walker::m_need_cfg_cleanup): New. 28308 (dse_dom_walker::todo): Likewise. 28309 (dse_dom_walker::dse_optimize_stmt): Move VDEF check to the 28310 caller. 28311 (dse_dom_walker::before_dom_children): Remove trivially 28312 dead SSA defs and schedule CFG cleanup if we removed all 28313 PHIs in a block. 28314 (pass_dse::execute): Get TODO as computed by the DOM walker 28315 and return it. Wipe dominator info earlier. 28316 283172021-04-29 Richard Biener <rguenther@suse.de> 28318 28319 PR ipa/100308 28320 * ipa-prop.c (ipcp_modif_dom_walker::before_dom_children): 28321 Track blocks to cleanup EH in new m_need_eh_cleanup. 28322 (ipcp_modif_dom_walker::cleanup_eh): New. 28323 (ipcp_transform_function): Release dominator info before 28324 doing EH cleanup. 28325 283262021-04-29 Martin Sebor <msebor@redhat.com> 28327 28328 PR middle-end/100250 28329 * attribs.c (attr_access::array_as_string): Avoid dereferencing 28330 a pointer when it's null. 28331 283322021-04-29 Martin Sebor <msebor@redhat.com> 28333 28334 * Makefile.in (OBJS): Add ipa-free-lang-data.o. 28335 * ipa-free-lang-data.cc: New file. 28336 * tree.c: Move pass free_lang_data to file above. 28337 (build_array_type_1): Declare extern. 28338 * tree.h (build_array_type_1): Declare. 28339 283402021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28341 28342 * config/aarch64/aarch64-simd-builtins.def: Modify comment to 28343 make consistent with updated RTL pattern. 28344 * config/aarch64/aarch64-simd.md (aarch64_<sur>qmovn<mode>): 28345 Implement using ss_truncate and us_truncate rather than 28346 unspecs. 28347 * config/aarch64/iterators.md: Remove redundant unspecs and 28348 iterator: UNSPEC_[SU]QXTN and SUQMOVN respectively. 28349 283502021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28351 28352 * config/aarch64/arm_acle.h (__attribute__): Make intrinsic 28353 attributes consistent with those defined in arm_neon.h. 28354 283552021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28356 28357 * config/aarch64/arm_fp16.h (__attribute__): Make intrinsic 28358 attributes consistent with those defined in arm_neon.h. 28359 283602021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28361 28362 * config/aarch64/aarch64-simd-builtins.def: Add 28363 float_trunc_rodd builtin generator macros. 28364 * config/aarch64/aarch64-simd.md (aarch64_float_trunc_rodd_df): 28365 Define. 28366 (aarch64_float_trunc_rodd_lo_v2sf): Define. 28367 (aarch64_float_trunc_rodd_hi_v4sf_le): Define. 28368 (aarch64_float_trunc_rodd_hi_v4sf_be): Define. 28369 (aarch64_float_trunc_rodd_hi_v4sf): Define. 28370 * config/aarch64/arm_neon.h (vcvtx_f32_f64): Use RTL builtin 28371 instead of inline asm. 28372 (vcvtx_high_f32_f64): Likewise. 28373 (vcvtxd_f32_f64): Likewise. 28374 * config/aarch64/iterators.md: Add FCVTXN unspec. 28375 283762021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28377 28378 * config/aarch64/aarch64-simd-builtins.def: Add tbx1 builtin 28379 generator macros. 28380 * config/aarch64/aarch64-simd.md (aarch64_tbx1<mode>): 28381 Define. 28382 * config/aarch64/arm_neon.h (vqtbx1_s8): USE RTL builtin 28383 instead of inline asm. 28384 (vqtbx1_u8): Likewise. 28385 (vqtbx1_p8): Likewise. 28386 (vqtbx1q_s8): Likewise. 28387 (vqtbx1q_u8): Likewise. 28388 (vqtbx1q_p8): Likewise. 28389 (vtbx2_s8): Likewise. 28390 (vtbx2_u8): Likewise. 28391 (vtbx2_p8): Likewise. 28392 283932021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28394 28395 * config/aarch64/aarch64-simd-builtins.def: Add tbl1 builtin 28396 generator macros. 28397 * config/aarch64/arm_neon.h (vqtbl1_p8): Use RTL builtin 28398 instead of inline asm. 28399 (vqtbl1_s8): Likewise. 28400 (vqtbl1_u8): Likewise. 28401 (vqtbl1q_p8): Likewise. 28402 (vqtbl1q_s8): Likewise. 28403 (vqtbl1q_u8): Likewise. 28404 (vtbl1_s8): Likewise. 28405 (vtbl1_u8): Likewise. 28406 (vtbl1_p8): Likewise. 28407 (vtbl2_s8): Likewise. 28408 (vtbl2_u8): Likewise. 28409 (vtbl2_p8): Likewise. 28410 284112021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28412 28413 * config/aarch64/aarch64-simd-builtins.def: Add polynomial 28414 ssri_n buitin generator macro. 28415 * config/aarch64/arm_neon.h (vsri_n_p8): Use RTL builtin 28416 instead of inline asm. 28417 (vsri_n_p16): Likewise. 28418 (vsri_n_p64): Likewise. 28419 (vsriq_n_p8): Likewise. 28420 (vsriq_n_p16): Likewise. 28421 (vsriq_n_p64): Likewise. 28422 284232021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28424 28425 * config/aarch64/aarch64-simd-builtins.def: Use VALLP mode 28426 iterator for polynomial ssli_n builtin generator macro. 28427 * config/aarch64/arm_neon.h (vsli_n_p8): Use RTL builtin 28428 instead of inline asm. 28429 (vsli_n_p16): Likewise. 28430 (vsliq_n_p8): Likewise. 28431 (vsliq_n_p16): Likewise. 28432 * config/aarch64/iterators.md: Define VALLP mode iterator. 28433 284342021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28435 28436 * config/aarch64/aarch64-simd-builtins.def: Use VDQV_L 28437 iterator to generate [su]adalp RTL builtins. 28438 * config/aarch64/aarch64-simd.md: Use VDQV_L iterator in 28439 [su]adalp RTL pattern. 28440 * config/aarch64/arm_neon.h (vpadal_s32): Use RTL builtin 28441 instead of inline asm. 28442 (vpadal_u32): Likewise. 28443 284442021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28445 28446 * config/aarch64/aarch64-simd-builtins.def: Add [su]addlp 28447 builtin generator macros. 28448 * config/aarch64/aarch64-simd.md (aarch64_<su>addlp<mode>): 28449 Define. 28450 * config/aarch64/arm_neon.h (vpaddl_s8): Use RTL builtin 28451 instead of inline asm. 28452 (vpaddl_s16): Likewise. 28453 (vpaddl_s32): Likewise. 28454 (vpaddl_u8): Likewise. 28455 (vpaddl_u16): Likewise. 28456 (vpaddl_u32): Likewise. 28457 (vpaddlq_s8): Likewise. 28458 (vpaddlq_s16): Likewise. 28459 (vpaddlq_s32): Likewise. 28460 (vpaddlq_u8): Likewise. 28461 (vpaddlq_u16): Likewise. 28462 (vpaddlq_u32): Liwewise. 28463 * config/aarch64/iterators.md: Define [SU]ADDLP unspecs with 28464 appropriate attributes. 28465 284662021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28467 28468 * config/aarch64/aarch64-simd-builtins.def: Use VDQ_I iterator 28469 for aarch64_addp<mode> builtin macro generator. 28470 * config/aarch64/aarch64-simd.md: Use VDQ_I iterator in 28471 aarch64_addp<mode> RTL pattern. 28472 * config/aarch64/arm_neon.h (vpaddq_s8): Use RTL builtin 28473 instead of inline asm. 28474 (vpaddq_s16): Likewise. 28475 (vpaddq_s32): Likewise. 28476 (vpaddq_s64): Likewise. 28477 (vpaddq_u8): Likewise. 28478 (vpaddq_u16): Likewise. 28479 (vpaddq_u32): Likewise. 28480 (vpaddq_u64): Likewise. 28481 284822021-04-28 Jonathan Wright <jonathan.wright@arm.com> 28483 28484 * config/aarch64/aarch64-simd-builtins.def: Add sq[r]dmulh_n 28485 builtin generator macros. 28486 * config/aarch64/aarch64-simd.md (aarch64_sq<r>dmulh_n<mode>): 28487 Define. 28488 * config/aarch64/arm_neon.h (vqdmulh_n_s16): Use RTL builtin 28489 instead of inline asm. 28490 (vqdmulh_n_s32): Likewise. 28491 (vqdmulhq_n_s16): Likewise. 28492 (vqdmulhq_n_s32): Likewise. 28493 (vqrdmulh_n_s16): Likewise. 28494 (vqrdmulh_n_s32): Likewise. 28495 (vqrdmulhq_n_s16): Likewise. 28496 (vqrdmulhq_n_s32): Likewise. 28497 284982021-04-28 Tobias Burnus <tobias@codesourcery.com> 28499 28500 * doc/install.texi (--enable-offload-defaulted): Document. 28501 285022021-04-28 Senthil Kumar Selvaraj <saaadhu@gcc.gnu.org> 28503 28504 * config/avr/avr-dimode.md: Turn existing patterns into 28505 define_insn_and_split style patterns where the splitter 28506 adds a clobber of the condition code register. Drop "cc" 28507 attribute. Add new patterns to match output of 28508 the splitters. 28509 * config/avr/avr-fixed.md: Likewise. 28510 * config/avr/avr.c (cc_reg_rtx): New. 28511 (avr_parallel_insn_from_insns): Adjust insn count 28512 for removal of set of cc0. 28513 (avr_is_casesi_sequence): Likewise. 28514 (avr_casei_sequence_check_operands): Likewise. 28515 (avr_optimize_casesi): Likewise. Also insert 28516 new insns after jump_insn. 28517 (avr_pass_casesi::avr_rest_of_handle_casesi): Adjust 28518 for removal of set of cc0. 28519 (avr_init_expanders): Initialize cc_reg_rtx. 28520 (avr_regno_reg_class): Handle REG_CC. 28521 (cond_string): Remove usage of CC_OVERFLOW_UNUSABLE. 28522 (avr_notice_update_cc): Remove function. 28523 (ret_cond_branch): Remove usage of CC_OVERFLOW_UNUSABLE. 28524 (compare_condition): Adjust for PARALLEL with 28525 REG_CC clobber. 28526 (out_shift_with_cnt): Likewise. 28527 (ashlhi3_out): Likewise. 28528 (ashrhi3_out): Likewise. 28529 (lshrhi3_out): Likewise. 28530 (avr_class_max_nregs): Return single reg for REG_CC. 28531 (avr_compare_pattern): Check for REG_CC instead 28532 of cc0_rtx. 28533 (avr_reorg_remove_redundant_compare): Likewise. 28534 (avr_reorg):Adjust for PARALLEL with REG_CC clobber. 28535 (avr_hard_regno_nregs): Return single reg for REG_CC. 28536 (avr_hard_regno_mode_ok): Allow only CCmode for REG_CC. 28537 (avr_md_asm_adjust): Clobber REG_CC. 28538 (TARGET_HARD_REGNO_NREGS): Define. 28539 (TARGET_CLASS_MAX_NREGS): Define. 28540 (TARGET_MD_ASM_ADJUST): Define. 28541 * config/avr/avr.h (FIRST_PSEUDO_REGISTER): Adjust 28542 for REG_CC. 28543 (enum reg_class): Add CC_REG class. 28544 (NOTICE_UPDATE_CC): Remove. 28545 (CC_OVERFLOW_UNUSABLE): Remove. 28546 (CC_NO_CARRY): Remove. 28547 * config/avr/avr.md: Turn existing patterns into 28548 define_insn_and_split style patterns where the splitter 28549 adds a clobber of the condition code register. Drop "cc" 28550 attribute. Add new patterns to match output of 28551 the splitters. 28552 (sez): Remove unused pattern. 28553 285542021-04-28 Richard Earnshaw <rearnsha@arm.com> 28555 28556 PR target/100311 28557 * config/arm/arm.c (arm_hard_regno_mode_ok): Only allow VPR to be 28558 used in HImode. 28559 285602021-04-28 Richard Sandiford <richard.sandiford@arm.com> 28561 28562 PR target/100305 28563 * config/aarch64/constraints.md (Utq): Require the address to 28564 be valid for both the element mode and for V2DImode. 28565 285662021-04-28 Jakub Jelinek <jakub@redhat.com> 28567 Tobias Burnus <tobias@codesourcery.com> 28568 28569 * configure.ac (OFFLOAD_DEFAULTED): AC_DEFINE if offload-defaulted. 28570 * gcc.c (process_command): New variable. 28571 (driver::maybe_putenv_OFFLOAD_TARGETS): If OFFLOAD_DEFAULTED, 28572 set it if -foffload is defaulted. 28573 * lto-wrapper.c (OFFLOAD_TARGET_DEFAULT_ENV): Define. 28574 (compile_offload_image): If OFFLOAD_DEFAULTED and 28575 OFFLOAD_TARGET_DEFAULT is in the environment, don't fail 28576 if corresponding mkoffload can't be found. 28577 (compile_images_for_offload_targets): Likewise. Free and clear 28578 offload_names if no valid offload is found. 28579 * config.in: Regenerate. 28580 * configure: Regenerate. 28581 285822021-04-28 Richard Biener <rguenther@suse.de> 28583 28584 PR tree-optimization/100292 28585 * tree-vect-generic.c (expand_vector_condition): Do not fold 28586 the comparisons. 28587 285882021-04-27 David Edelsohn <dje.gcc@gmail.com> 28589 28590 * config/rs6000/aix.h (SUBTARGET_DRIVER_SELF_SPECS): New. 28591 * config/rs6000/aix64.opt (m64): New. 28592 (m32): New. 28593 285942021-04-27 Maciej W. Rozycki <macro@orcam.me.uk> 28595 28596 * config/vax/vax.c (print_operand_address, vax_address_cost_1) 28597 (index_term_p): Handle ASHIFT too. 28598 285992021-04-27 Maciej W. Rozycki <macro@orcam.me.uk> 28600 28601 * config/vax/builtins.md (jbb<ccss>i<mode>): Remove operand #3. 28602 (sync_lock_test_and_set<mode>): Adjust accordingly. 28603 (sync_lock_release<mode>): Likewise. 28604 286052021-04-27 Maciej W. Rozycki <macro@orcam.me.uk> 28606 28607 * config/vax/vax-protos.h (adjacent_operands_p): Remove 28608 prototype. 28609 * config/vax/vax.c (adjacent_operands_p): Remove. 28610 286112021-04-27 Maciej W. Rozycki <macro@linux-mips.org> 28612 28613 * ifcvt.c (dead_or_predicable) [!IFCVT_MODIFY_TESTS]: Fall 28614 through to the non-conditional execution case if getting the 28615 condition for conditional execution has failed. 28616 286172021-04-27 Richard Sandiford <richard.sandiford@arm.com> 28618 28619 PR middle-end/100284 28620 * gimple.c (gimple_could_trap_p_1): Remove VEC_COND_EXPR test. 28621 * tree-eh.c (operation_could_trap_p): Handle VEC_COND_EXPR rather 28622 than asserting on it. 28623 286242021-04-27 David Edelsohn <dje.gcc@gmail.com> 28625 28626 * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): Protect 28627 with TARGET_AIX_OS. 28628 286292021-04-27 David Edelsohn <dje.gcc@gmail.com> 28630 28631 PR target/94177 28632 * calls.c (precompute_register_parameters): Additionally test 28633 targetm.precompute_tls_p to pre-compute argument. 28634 * config/rs6000/aix.h (TARGET_PRECOMPUTE_TLS_P): Define. 28635 * config/rs6000/rs6000.c (rs6000_aix_precompute_tls_p): New. 28636 * target.def (precompute_tls_p): New. 28637 * doc/tm.texi.in (TARGET_PRECOMPUTE_TLS_P): Add hook documentation. 28638 * doc/tm.texi: Regenerated. 28639 286402021-04-27 Jakub Jelinek <jakub@redhat.com> 28641 28642 PR target/100200 28643 * config/aarch64/aarch64.c (aarch64_print_operand): Cast -UINTVAL 28644 back to HOST_WIDE_INT. 28645 286462021-04-27 Bernd Edlinger <bernd.edlinger@hotmail.de> 28647 28648 PR target/100106 28649 * simplify-rtx.c (simplify_context::simplify_subreg): Check the 28650 memory alignment for the outer mode. 28651 286522021-04-27 H.J. Lu <hjl.tools@gmail.com> 28653 28654 PR middle-end/90773 28655 * expr.c (op_by_pieces_d::get_usable_mode): New member function. 28656 (op_by_pieces_d::run): Cange a while loop to a do-while loop. 28657 286582021-04-27 Alex Coplan <alex.coplan@arm.com> 28659 28660 PR target/99977 28661 * config/arm/arm.c (arm_split_compare_and_swap): Fix up codegen 28662 with negative immediates: ensure we expand cbranchsi4_scratch 28663 correctly and ensure we satisfy its constraints. 28664 * config/arm/sync.md 28665 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Don't 28666 attempt to tie two output operands together with constraints; 28667 collapse two alternatives. 28668 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise. 28669 * config/arm/thumb1.md (cbranchsi4_neg_late): New. 28670 286712021-04-27 Jakub Jelinek <jakub@redhat.com> 28672 28673 PR target/100200 28674 * config/aarch64/predicates.md (aarch64_sub_immediate, 28675 aarch64_plus_immediate): Use -UINTVAL instead of -INTVAL. 28676 * config/aarch64/aarch64.md (casesi, rotl<mode>3): Likewise. 28677 * config/aarch64/aarch64.c (aarch64_print_operand, 28678 aarch64_split_atomic_op, aarch64_expand_subvti): Likewise. 28679 286802021-04-27 Jakub Jelinek <jakub@redhat.com> 28681 28682 PR tree-optimization/100239 28683 * tree-vect-generic.c (lower_vec_perm): Don't accept constant 28684 permutations with all indices from the first zero element as vec_shl. 28685 286862021-04-27 Jakub Jelinek <jakub@redhat.com> 28687 28688 PR rtl-optimization/100254 28689 * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on 28690 last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns. 28691 286922021-04-27 Richard Biener <rguenther@suse.de> 28693 28694 PR tree-optimization/99912 28695 * passes.def: Add comment about new TODO_remove_unused_locals. 28696 * tree-stdarg.c (pass_data_stdarg): Run TODO_remove_unused_locals 28697 at start. 28698 286992021-04-27 Richard Biener <rguenther@suse.de> 28700 28701 PR tree-optimization/99912 28702 * passes.def (pass_all_optimizations): Add pass_dse before 28703 the first pass_dce, move the first pass_dse before the 28704 pass_dce following pass_pre. 28705 287062021-04-27 Jakub Jelinek <jakub@redhat.com> 28707 28708 PR tree-optimization/95527 28709 * generic-match-head.c: Include tm.h. 28710 * gimple-match-head.c: Include tm.h. 28711 * match.pd (CLZ == INTEGER_CST): Don't use 28712 #ifdef CLZ_DEFINED_VALUE_AT_ZERO, only test CLZ_DEFINED_VALUE_AT_ZERO 28713 if clz == CFN_CLZ. Add missing val declaration. 28714 (CTZ cmp CST): New simplifications. 28715 287162021-04-27 Jakub Jelinek <jakub@redhat.com> 28717 28718 PR tree-optimization/96696 28719 * expr.c (expand_expr_divmod): New function. 28720 (expand_expr_real_2) <case TRUNC_DIV_EXPR>: Use it for truncations and 28721 divisions. Formatting fixes. 28722 <case MULT_EXPR>: Optimize x / y * y as x - x % y if the latter is 28723 cheaper. 28724 287252021-04-27 Martin Jambor <mjambor@suse.cz> 28726 28727 PR ipa/99951 28728 * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): 28729 If removing a call statement LHS SSA name, release it. 28730 287312021-04-27 Richard Earnshaw <rearnsha@arm.com> 28732 28733 PR target/100236 28734 * config/arm/arm.c (THUMB2_WORK_REGS): Check PIC_OFFSET_TABLE_REGNUM 28735 is valid before including it in the mask. 28736 287372021-04-27 Richard Sandiford <richard.sandiford@arm.com> 28738 28739 PR target/100270 28740 * config/aarch64/aarch64.c (aarch64_comp_type_attributes): Handle 28741 SVE attributes. 28742 287432021-04-27 Richard Biener <rguenther@suse.de> 28744 28745 PR tree-optimization/100051 28746 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Add 28747 disambiguator based on access size vs. decl size. 28748 287492021-04-27 Richard Biener <rguenther@suse.de> 28750 28751 PR tree-optimization/100278 28752 * tree-ssa-pre.c (compute_avail): Give up when we cannot 28753 adjust TBAA beacuse of mismatching bases. 28754 287552021-04-27 Jakub Jelinek <jakub@redhat.com> 28756 28757 PR target/99405 28758 * config/i386/i386.md (*<insn><mode>3_mask, *<insn><mode>3_mask_1): 28759 For any_rotate define_insn_split and following splitters, use 28760 SWI iterator instead of SWI48. 28761 287622021-04-27 Richard Biener <rguenther@suse.de> 28763 28764 PR tree-optimization/99776 28765 * match.pd (bit_field_ref (ctor)): Relax element extract 28766 type compatibility checks. 28767 287682021-04-27 Cui,Lili <lili.cui@intel.com> 28769 28770 * common/config/i386/i386-common.c (processor_names): 28771 Sync processor_names with processor_type. 28772 * config/i386/i386-options.c (processor_cost_table): 28773 Sync processor_cost_table with processor_type. 28774 287752021-04-26 Aldy Hernandez <aldyh@redhat.com> 28776 28777 * value-range.cc (irange::irange_set_1bit_anti_range): Add assert. 28778 (irange::set): Call irange_set_1bit_anti_range for handling all 28779 1-bit ranges. Fall through on ~[MIN,MAX]. 28780 287812021-04-26 Aldy Hernandez <aldyh@redhat.com> 28782 28783 * value-range.cc (irange::legacy_num_pairs): Remove. 28784 (irange::invert): Change gcc_assert to gcc_checking_assert. 28785 * value-range.h (irange::num_pairs): Adjust for a cached 28786 num_pairs(). Also, rename all gcc_assert's to 28787 gcc_checking_assert's. 28788 287892021-04-26 Aldy Hernandez <aldyh@redhat.com> 28790 28791 * value-range.cc (irange::operator=): Set m_kind. 28792 (irange::copy_to_legacy): Handle varying and undefined sources 28793 as a legacy copy since they can be easily copied. 28794 (irange::irange_set): Set m_kind. 28795 (irange::irange_set_anti_range): Same. 28796 (irange::set): Rename normalize_min_max to normalize_kind. 28797 (irange::verify_range): Adjust for multi-ranges having the 28798 m_kind field set. 28799 (irange::irange_union): Set m_kind. 28800 (irange::irange_intersect): Same. 28801 (irange::invert): Same. 28802 * value-range.h (irange::kind): Always return m_kind. 28803 (irange::varying_p): Rename to... 28804 (irange::varying_comptaible_p): ...this. 28805 (irange::undefined_p): Only look at m_kind. 28806 (irange::irange): Always set VR_UNDEFINED if applicable. 28807 (irange::set_undefined): Always set VR_UNDEFINED. 28808 (irange::set_varying): Always set m_kind to VR_VARYING. 28809 (irange::normalize_min_max): Rename to... 28810 (irange::normalize_kind): ...this. 28811 288122021-04-26 Aldy Hernandez <aldyh@redhat.com> 28813 28814 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::set_ssa_range_info): 28815 Adjust for constant_p including varying_p. 28816 * tree-vrp.c (vrp_prop::finalize): Same. 28817 (determine_value_range): Same. 28818 * vr-values.c (vr_values::range_of_expr): Same. 28819 * value-range.cc (irange::symbolic_p): Do not check varying_p. 28820 (irange::constant_p): Same. 28821 288222021-04-26 Aldy Hernandez <aldyh@redhat.com> 28823 28824 * value-range.cc (irange::legacy_lower_bound): Replace 28825 !undefined_p check with num_ranges > 0. 28826 (irange::legacy_upper_bound): Same. 28827 * value-range.h (irange::type): Same. 28828 (irange::lower_bound): Same. 28829 (irange::upper_bound): Same. 28830 288312021-04-26 Richard Biener <rguenther@suse.de> 28832 28833 PR tree-optimization/99956 28834 * gimple-loop-interchange.cc (compute_access_stride): 28835 Try instantiating the access in a shallower loop nest 28836 if instantiating failed. 28837 (compute_access_strides): Pass adjustable loop_nest 28838 to compute_access_stride. 28839 288402021-04-26 Christophe Lyon <christophe.lyon@linaro.org> 28841 28842 * doc/sourcebuild.texi (arm_cmse_hw): Document. 28843 288442021-04-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 28845 28846 * config/aarch64/iterators.md (vwcore): Handle V4BF, V8BF. 28847 288482021-04-26 Thomas Schwinge <thomas@codesourcery.com> 28849 Nathan Sidwell <nathan@codesourcery.com> 28850 Tom de Vries <vries@codesourcery.com> 28851 Julian Brown <julian@codesourcery.com> 28852 Kwok Cheung Yeung <kcy@codesourcery.com> 28853 28854 * omp-offload.c (oacc_validate_dims): Implement 28855 '-Wopenacc-parallelism'. 28856 * doc/invoke.texi (-Wopenacc-parallelism): Document. 28857 288582021-04-26 Richard Biener <rguenther@suse.de> 28859 28860 * tree-cfg.h (gimplify_build1): Remove. 28861 (gimplify_build2): Likewise. 28862 (gimplify_build3): Likewise. 28863 * tree-cfg.c (gimplify_build1): Move to tree-vect-generic.c. 28864 (gimplify_build2): Likewise. 28865 (gimplify_build3): Likewise. 28866 * tree-vect-generic.c (gimplify_build1): Move from tree-cfg.c. 28867 Modernize. 28868 (gimplify_build2): Likewise. 28869 (gimplify_build3): Likewise. 28870 (tree_vec_extract): Use resimplify with following SSA edges. 28871 (expand_vector_parallel): Avoid passing NULL size/bitpos 28872 to tree_vec_extract. 28873 * expr.c (store_constructor): Deal with zero-element CTORs. 28874 * match.pd (bit_field_ref <vector CTOR>): Make sure to 28875 produce vector constants when possible. 28876 288772021-04-26 Richard Biener <rguenther@suse.de> 28878 28879 * tree-complex.c: Include gimple-fold.h. 28880 (expand_complex_addition): Use gimple_build. 28881 (expand_complex_multiplication_components): Likewise. 28882 (expand_complex_multiplication): Likewise. 28883 (expand_complex_div_straight): Likewise. 28884 (expand_complex_div_wide): Likewise. 28885 (expand_complex_division): Likewise. 28886 (expand_complex_conjugate): Likewise. 28887 (expand_complex_comparison): Likewise. 28888 288892021-04-26 Richard Biener <rguenther@suse.de> 28890 28891 * tree-ssa-phiopt.c (two_value_replacement): Remove use 28892 of legacy gimplify_buildN API. 28893 288942021-04-26 Richard Biener <rguenther@suse.de> 28895 28896 PR tree-optimization/99473 28897 * tree-ssa-phiopt.c (cond_store_replacement): Handle all 28898 stores. 28899 289002021-04-26 Richard Biener <rguenther@suse.de> 28901 28902 * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): 28903 Use replace_call_with_value. 28904 289052021-04-26 Richard Biener <rguenther@suse.de> 28906 28907 * tree-ssa-propagate.h (valid_gimple_rhs_p): Remove. 28908 (update_gimple_call): Likewise. 28909 (update_call_from_tree): Likewise. 28910 * tree-ssa-propagate.c (valid_gimple_rhs_p): Remove. 28911 (valid_gimple_call_p): Likewise. 28912 (move_ssa_defining_stmt_for_defs): Likewise. 28913 (finish_update_gimple_call): Likewise. 28914 (update_gimple_call): Likewise. 28915 (update_call_from_tree): Likewise. 28916 (propagate_tree_value_into_stmt): Use replace_call_with_value. 28917 * gimple-fold.h (update_gimple_call): Declare. 28918 * gimple-fold.c (valid_gimple_rhs_p): Move here from 28919 tree-ssa-propagate.c. 28920 (update_gimple_call): Likewise. 28921 (valid_gimple_call_p): Likewise. 28922 (finish_update_gimple_call): Likewise, and simplify. 28923 (gimplify_and_update_call_from_tree): Implement 28924 update_call_from_tree functionality, avoid excessive 28925 push/pop_gimplify_context. 28926 (gimple_fold_builtin): Use only gimplify_and_update_call_from_tree. 28927 (gimple_fold_call): Likewise. 28928 * gimple-ssa-sprintf.c (try_substitute_return_value): Likewise. 28929 * tree-ssa-ccp.c (ccp_folder::fold_stmt): Likewise. 28930 (pass_fold_builtins::execute): Likewise. 28931 (optimize_stack_restore): Use replace_call_with_value. 28932 * tree-cfg.c (fold_loop_internal_call): Likewise. 28933 * tree-ssa-dce.c (maybe_optimize_arith_overflow): Use 28934 only gimplify_and_update_call_from_tree. 28935 * tree-ssa-strlen.c (handle_builtin_strlen): Likewise. 28936 (handle_builtin_strchr): Likewise. 28937 * tsan.c: Include gimple-fold.h instead of tree-ssa-propagate.h. 28938 289392021-04-26 Jakub Jelinek <jakub@redhat.com> 28940 28941 PR debug/100255 28942 * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block, 28943 vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove 28944 register keywords. 28945 289462021-04-25 liuhongt <hongtao.liu@intel.com> 28947 28948 PR target/98911 28949 * config/i386/i386-builtin.def (BDESC): Change the icode of 28950 the following builtins to CODE_FOR_nothing. 28951 * config/i386/i386.c (ix86_gimple_fold_builtin): Fold 28952 IX86_BUILTIN_PCMPEQB128, IX86_BUILTIN_PCMPEQW128, 28953 IX86_BUILTIN_PCMPEQD128, IX86_BUILTIN_PCMPEQQ, 28954 IX86_BUILTIN_PCMPEQB256, IX86_BUILTIN_PCMPEQW256, 28955 IX86_BUILTIN_PCMPEQD256, IX86_BUILTIN_PCMPEQQ256, 28956 IX86_BUILTIN_PCMPGTB128, IX86_BUILTIN_PCMPGTW128, 28957 IX86_BUILTIN_PCMPGTD128, IX86_BUILTIN_PCMPGTQ, 28958 IX86_BUILTIN_PCMPGTB256, IX86_BUILTIN_PCMPGTW256, 28959 IX86_BUILTIN_PCMPGTD256, IX86_BUILTIN_PCMPGTQ256. 28960 * config/i386/sse.md (avx2_eq<mode>3): Deleted. 28961 (sse2_eq<mode>3): Ditto. 28962 (sse4_1_eqv2di3): Ditto. 28963 (sse2_gt<mode>3): Rename to .. 28964 (*sse2_gt<mode>3): .. this. 28965 289662021-04-24 Iain Sandoe <iain@sandoe.co.uk> 28967 28968 Revert: 28969 2021-04-24 Iain Sandoe <iain@sandoe.co.uk> 28970 28971 PR target/100152 28972 * config/darwin.c (darwin_binds_local_p): Assume that any 28973 public symbol might be interposed for PIC code. Update function 28974 header comment to reflect current Darwin capability. 28975 289762021-04-24 Iain Sandoe <iain@sandoe.co.uk> 28977 28978 PR target/100152 28979 * config/darwin.c (darwin_binds_local_p): Assume that any 28980 public symbol might be interposed for PIC code. Update function 28981 header comment to reflect current Darwin capability. 28982 289832021-04-24 Richard Sandiford <richard.sandiford@arm.com> 28984 28985 * doc/sourcebuild.texi: Document no-opts and any-opts target 28986 selectors. 28987 289882021-04-23 YiFei Zhu <zhuyifei1999@gmail.com> 28989 28990 * config/bpf/bpf.h (ASM_OUTPUT_ALIGNED_BSS): Use .type and .lcomm. 28991 289922021-04-23 YiFei Zhu <zhuyifei1999@gmail.com> 28993 28994 * config/bpf/bpf.h (FUNCTION_BOUNDARY): Set to 64. 28995 289962021-04-23 Uro�� Bizjak <ubizjak@gmail.com> 28997 28998 PR target/100041 28999 * config/i386/i386-options.c (ix86_option_override_internal): 29000 Error out when -m96bit-long-double is used with 64bit targets. 29001 * config/i386/i386.md (*pushxf_rounded): Remove pattern. 29002 290032021-04-23 Martin Liska <mliska@suse.cz> 29004 29005 * lto-wrapper.c: Remove FIXME about usage of 29006 hardware_concurrency. The function is not on par with 29007 what we have now. 29008 290092021-04-23 Uro�� Bizjak <ubizjak@gmail.com> 29010 29011 PR target/100182 29012 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): 29013 Copy operand 3 to operand 4. Use sse_reg_operand 29014 as operand 3 predicate. 29015 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto. 29016 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. 29017 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. 29018 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): 29019 Copy operand 1 to operand 0. 29020 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto. 29021 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. 29022 (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto. 29023 290242021-04-23 Alex Coplan <alex.coplan@arm.com> 29025 29026 PR rtl-optimization/100230 29027 * early-remat.c (early_remat::sort_candidates): Use delete[] 29028 instead of delete for array allocated with new[]. 29029 290302021-04-23 Richard Biener <rguenther@suse.de> 29031 29032 * genmatch.c (lower_cond): Remove VEC_COND_EXPR special-casing. 29033 (capture_info::capture_info): Likewise. 29034 (capture_info::walk_match): Likewise. 29035 (expr::gen_transform): Likewise. 29036 (dt_simplify::gen_1): Likewise. 29037 * gimple-match-head.c (maybe_resimplify_conditional_op): 29038 Remove VEC_COND_EXPR special-casing. 29039 (gimple_simplify): Likewise. 29040 * gimple.c (gimple_could_trap_p_1): Adjust. 29041 * tree-ssa-pre.c (compute_avail): Allow VEC_COND_EXPR 29042 to participate in PRE. 29043 290442021-04-23 Richard Biener <rguenther@suse.de> 29045 29046 * cfganal.c (connect_infinite_loops_to_exit): First call 29047 add_noreturn_fake_exit_edges. 29048 * ipa-sra.c (process_scan_results): Do not call the now redundant 29049 add_noreturn_fake_exit_edges. 29050 * predict.c (tree_estimate_probability): Likewise. 29051 (rebuild_frequencies): Likewise. 29052 * store-motion.c (one_store_motion_pass): Likewise. 29053 290542021-04-23 Richard Biener <rguenther@suse.de> 29055 29056 PR tree-optimization/100222 29057 * predict.c (pass_profile::execute): Remove redundant call to 29058 mark_irreducible_loops. 29059 (report_predictor_hitrates): Likewise. 29060 290612021-04-23 Richard Biener <rguenther@suse.de> 29062 29063 * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Avoid 29064 valid_gimple_rhs_p by instead gimplifying to one. 29065 290662021-04-23 Richard Biener <rguenther@suse.de> 29067 29068 PR tree-optimization/99971 29069 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): 29070 Always use TBAA for loads. 29071 290722021-04-23 liuhongt <hongtao.liu@intel.com> 29073 29074 PR target/100093 29075 * config/i386/i386-options.c (ix86_option_override_internal): 29076 Clear MASK_AVX256_SPLIT_UNALIGNED_LOAD/STORE in x_target_flags 29077 when X86_TUNE_AVX256_UNALIGNED_LOAD/STORE_OPTIMAL is enabled 29078 by target attribute. 29079 290802021-04-23 David Edelsohn <dje.gcc@gmail.com> 29081 29082 * config/rs6000/aix71.h (PREFERRED_DEBUGGING_TYPE): Change to 29083 DWARF2_DEBUG. 29084 * config/rs6000/aix72.h (PREFERRED_DEBUGGING_TYPE): Same. 29085 290862021-04-22 David Edelsohn <dje.gcc@gmail.com> 29087 29088 * config.gcc (powerpc-ibm-aix6.*): Remove. 29089 * config/rs6000/aix61.h: Delete. 29090 290912021-04-22 Martin Liska <mliska@suse.cz> 29092 29093 PR testsuite/100159 29094 PR testsuite/100192 29095 * builtins.c (expand_builtin): Fix typos and missing comments. 29096 * dwarf2out.c (gen_subprogram_die): Likewise. 29097 (gen_struct_or_union_type_die): Likewise. 29098 290992021-04-22 Uro�� Bizjak <ubizjak@gmail.com> 29100 29101 PR target/100119 29102 * config/i386/i386-expand.c (ix86_expand_convert_uns_sidf_sse): 29103 Remove the sign with FE_DOWNWARD, where x - x = -0.0. 29104 291052021-04-21 Iain Sandoe <iain@sandoe.co.uk> 29106 29107 * config/i386/darwin.h (TARGET_64BIT): Remove definition 29108 based on TARGET_ISA_64BIT. 29109 (TARGET_64BIT_P): Remove definition based on 29110 TARGET_ISA_64BIT_P(). 29111 291122021-04-21 Martin Liska <mliska@suse.cz> 29113 29114 Revert: 29115 2021-04-21 Martin Liska <mliska@suse.cz> 29116 29117 * lto-wrapper.c (cpuset_popcount): Remove. 29118 (init_num_threads): Remove and use hardware_concurrency. 29119 291202021-04-21 Martin Liska <mliska@suse.cz> 29121 29122 PR jit/98615 29123 * main.c (main): Call toplev::finalize in CHECKING_P mode. 29124 * ipa-modref.c (ipa_modref_c_finalize): summaries are NULL 29125 when incremental LTO linking happens. 29126 291272021-04-21 Martin Liska <mliska@suse.cz> 29128 29129 * lto-wrapper.c (run_gcc): When -flto=jobserver is used, but the 29130 makeserver cannot be detected, then use -flto=N fallback. 29131 291322021-04-21 Richard Sandiford <richard.sandiford@arm.com> 29133 29134 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): When cross-compiling, 29135 default to yes for aarch64-linux-gnu. 29136 * configure: Regenerate. 29137 291382021-04-21 Martin Liska <mliska@suse.cz> 29139 29140 * lto-wrapper.c (cpuset_popcount): Remove. 29141 (init_num_threads): Remove and use hardware_concurrency. 29142 291432021-04-21 Martin Liska <mliska@suse.cz> 29144 29145 * config/i386/i386.c: Remove superfluous || TARGET_MACHO 29146 which remains to be '(... || 0)' and clang complains about it. 29147 * dwarf2out.c (AT_vms_delta): Declare conditionally. 29148 (add_AT_vms_delta): Likewise. 29149 * tree.c (fld_simplified_type): Use rather more common pattern 29150 for disabling of something (#if 0). 29151 (get_tree_code_name): Likewise. 29152 (verify_type_variant): Likewise. 29153 291542021-04-21 Martin Liska <mliska@suse.cz> 29155 29156 * config/i386/i386-expand.c (decide_alignment): Use newly named 29157 macro TARGET_CPU_P. 29158 * config/i386/i386.c (ix86_decompose_address): Likewise. 29159 (ix86_address_cost): Likewise. 29160 (ix86_lea_outperforms): Likewise. 29161 (ix86_avoid_lea_for_addr): Likewise. 29162 (ix86_add_stmt_cost): Likewise. 29163 * config/i386/i386.h (TARGET_*): Remove. 29164 (TARGET_CPU_P): New macro. 29165 * config/i386/i386.md: Use newly named macro TARGET_CPU_P. 29166 * config/i386/x86-tune-sched-atom.c (do_reorder_for_imul): Likewise. 29167 (swap_top_of_ready_list): Likewise. 29168 (ix86_atom_sched_reorder): Likewise. 29169 * config/i386/x86-tune-sched-bd.c (ix86_bd_has_dispatch): Likewise. 29170 * config/i386/x86-tune-sched.c (ix86_adjust_cost): Likewise. 29171 291722021-04-21 Martin Liska <mliska@suse.cz> 29173 29174 * config/i386/i386-options.c (TARGET_EXPLICIT_NO_SAHF_P): 29175 Define. 29176 (SET_TARGET_NO_SAHF): Likewise. 29177 (TARGET_EXPLICIT_PREFETCH_SSE_P): Likewise. 29178 (SET_TARGET_PREFETCH_SSE): Likewise. 29179 (TARGET_EXPLICIT_NO_TUNE_P): Likewise. 29180 (SET_TARGET_NO_TUNE): Likewise. 29181 (TARGET_EXPLICIT_NO_80387_P): Likewise. 29182 (SET_TARGET_NO_80387): Likewise. 29183 (DEF_PTA): New. 29184 * config/i386/i386.h (TARGET_*): Remove. 29185 * opth-gen.awk: Generate new used macros. 29186 291872021-04-21 Martin Liska <mliska@suse.cz> 29188 29189 * config/i386/i386.h (PTA_*): Remove. 29190 (enum pta_flag): New. 29191 (DEF_PTA): Generate PTA_* values from i386-isa.def. 29192 * config/i386/i386-isa.def: New file. 29193 291942021-04-21 Alex Coplan <alex.coplan@arm.com> 29195 29196 PR target/99988 29197 * config/aarch64/aarch64-bti-insert.c (aarch64_bti_j_insn_p): New. 29198 (rest_of_insert_bti): Avoid inserting duplicate bti j insns for 29199 jump table targets. 29200 292012021-04-21 H.J. Lu <hjl.tools@gmail.com> 29202 29203 * config.gcc: Install mwaitintrin.h for i[34567]86-*-* and 29204 x86_64-*-* targets. 29205 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_MWAIT_SET): 29206 New. 29207 (OPTION_MASK_ISA2_MWAIT_UNSET): Likewise. 29208 (ix86_handle_option): Handle -mmwait. 29209 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): 29210 Replace OPTION_MASK_ISA_SSE3 with OPTION_MASK_ISA2_MWAIT on 29211 __builtin_ia32_monitor and __builtin_ia32_mwait. 29212 * config/i386/i386-options.c (isa2_opts): Add -mmwait. 29213 (ix86_valid_target_attribute_inner_p): Likewise. 29214 (ix86_option_override_internal): Enable mwait/monitor 29215 instructions for -msse3. 29216 * config/i386/i386.h (TARGET_MWAIT): New. 29217 (TARGET_MWAIT_P): Likewise. 29218 * config/i386/i386.opt: Add -mmwait. 29219 * config/i386/mwaitintrin.h: New file. 29220 * config/i386/pmmintrin.h: Include <mwaitintrin.h>. 29221 * config/i386/sse.md (sse3_mwait): Replace TARGET_SSE3 with 29222 TARGET_MWAIT. 29223 (@sse3_monitor_<mode>): Likewise. 29224 * config/i386/x86gprintrin.h: Include <mwaitintrin.h>. 29225 * doc/extend.texi: Document mwait target attribute. 29226 * doc/invoke.texi: Document -mmwait. 29227 292282021-04-21 Martin Liska <mliska@suse.cz> 29229 29230 * config/i386/i386-options.c (DEF_ENUM): Remove it. 29231 * config/i386/i386-opts.h (DEF_ENUM): Likewise. 29232 * config/i386/stringop.def (DEF_ENUM): Likewise. 29233 292342021-04-21 Martin Liska <mliska@suse.cz> 29235 29236 * tree-cfg.c (gimple_verify_flow_info): Use qD instead 29237 of print_generic_expr. 29238 292392021-04-21 Jakub Jelinek <jakub@redhat.com> 29240 29241 PR rtl-optimization/100148 29242 * cprop.c (constprop_register): Use next_nondebug_insn instead of 29243 NEXT_INSN. 29244 292452021-04-21 Martin Liska <mliska@suse.cz> 29246 29247 PR ipa/98815 29248 * cgraphunit.c (cgraph_node::analyze): Remove duplicate 29249 free_dominance_info calls. 29250 292512021-04-21 Richard Biener <rguenther@suse.de> 29252 29253 * gimple-fold.c (maybe_fold_reference): Remove is_lhs 29254 parameter (and assume it to be false). 29255 (fold_gimple_assign): Adjust, remove all callers of 29256 maybe_fold_reference calling it with is_lhs true. 29257 (gimple_fold_call): Likewise. 29258 (fold_stmt_1): Likewise. 29259 292602021-04-21 Richard Biener <rguenther@suse.de> 29261 29262 * fold-const.c (pedantic_non_lvalue_loc): Remove. 29263 (fold_binary_loc): Adjust. 29264 (fold_ternary_loc): Likewise. 29265 292662021-04-21 Richard Sandiford <richard.sandiford@arm.com> 29267 29268 PR middle-end/100130 29269 * varasm.c (get_block_for_decl): Make sure that any use of the 29270 retain attribute matches the section's retain flag. 29271 (switch_to_section): Check for retain mismatches even when 29272 changing sections, but do not warn if the given decl is the 29273 section's named.decl. 29274 (output_object_block): Pass the first decl in the block (if any) 29275 to switch_to_section. 29276 292772021-04-20 H.J. Lu <hjl.tools@gmail.com> 29278 29279 * config/i386/i386-c.c (ix86_target_macros_internal): Define 29280 __CRC32__ for -mcrc32. 29281 * config/i386/i386-options.c (ix86_option_override_internal): 29282 Enable crc32 instruction for -msse4.2. 29283 * config/i386/i386.md (sse4_2_crc32<mode>): Remove TARGET_SSE4_2 29284 check. 29285 (sse4_2_crc32di): Likewise. 29286 * config/i386/ia32intrin.h: Use crc32 target option for CRC32 29287 intrinsics. 29288 292892021-04-20 Segher Boessenkool <segher@kernel.crashing.org> 29290 29291 PR target/100108 29292 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Do not consider 29293 OPTION_MASK_ISEL. 29294 292952021-04-20 Martin Liska <mliska@suse.cz> 29296 29297 * doc/invoke.texi: Fix typo. 29298 * params.opt: Likewise. 29299 293002021-04-20 Martin Liska <mliska@suse.cz> 29301 29302 * doc/invoke.texi: Document new param. 29303 293042021-04-19 Andrew MacLeod <amacleod@redhat.com> 29305 29306 PR tree-optimization/100081 29307 * gimple-range-cache.h (ranger_cache): Inherit from gori_compute 29308 rather than gori_compute_cache. 29309 * gimple-range-gori.cc (is_gimple_logical_p): Move to top of file. 29310 (range_def_chain::m_logical_depth): New member. 29311 (range_def_chain::range_def_chain): Initialize m_logical_depth. 29312 (range_def_chain::get_def_chain): Don't build defchains through more 29313 than LOGICAL_LIMIT logical expressions. 29314 * params.opt (param_ranger_logical_depth): New. 29315 293162021-04-19 Richard Earnshaw <rearnsha@arm.com> 29317 29318 PR target/100067 29319 * config/arm/arm.c (arm_configure_build_target): Do not strip 29320 extended FPU/SIMD feature bits from the target ISA when -mfpu 29321 is specified (partial revert of r11-8168). 29322 293232021-04-19 Thomas Schwinge <thomas@codesourcery.com> 29324 29325 * params.opt (-param=openacc-kernels=): Add. 29326 * omp-oacc-kernels-decompose.cc 29327 (pass_omp_oacc_kernels_decompose::gate): Use it. 29328 * doc/invoke.texi (-fopenacc-kernels=@var{mode}): Move... 29329 (--param): ... here, 'openacc-kernels'. 29330 293312021-04-19 Martin Liska <mliska@suse.cz> 29332 29333 PR c/100143 29334 * gengtype.c (finish_root_table): Align function arguments 29335 in between declaration and definition. 29336 293372021-04-19 Eric Botcazou <ebotcazou@adacore.com> 29338 29339 * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with 29340 frames larger than the SEH maximum frame size. 29341 293422021-04-18 Segher Boessenkool <segher@kernel.crashing.org> 29343 29344 PR rtl-optimization/99927 29345 * combine.c (distribute_notes) [REG_UNUSED]: If the register already 29346 is dead, just drop it. 29347 293482021-04-17 Iain Buclaw <ibuclaw@gdcproject.org> 29349 29350 PR d/99914 29351 * config/i386/winnt-d.c (TARGET_D_TEMPLATES_ALWAYS_COMDAT): Define. 29352 * doc/tm.texi: Regenerate. 29353 * doc/tm.texi.in (D language and ABI): Add @hook for 29354 TARGET_D_TEMPLATES_ALWAYS_COMDAT. 29355 293562021-04-17 Iain Buclaw <ibuclaw@gdcproject.org> 29357 29358 * config/darwin-d.c (darwin_d_handle_target_object_format): New 29359 function. 29360 (darwin_d_register_target_info): New function. 29361 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29362 * config/dragonfly-d.c (dragonfly_d_handle_target_object_format): New 29363 function. 29364 (dragonfly_d_register_target_info): New function. 29365 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29366 * config/freebsd-d.c (freebsd_d_handle_target_object_format): New 29367 function. 29368 (freebsd_d_register_target_info): New function. 29369 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29370 * config/glibc-d.c (glibc_d_handle_target_object_format): New 29371 function. 29372 (glibc_d_register_target_info): New function. 29373 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29374 * config/i386/i386-d.c (ix86_d_handle_target_object_format): New 29375 function. 29376 (ix86_d_register_target_info): Add ix86_d_handle_target_object_format 29377 as handler for objectFormat key. 29378 * config/i386/winnt-d.c (winnt_d_handle_target_object_format): New 29379 function. 29380 (winnt_d_register_target_info): New function. 29381 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29382 * config/netbsd-d.c (netbsd_d_handle_target_object_format): New 29383 function. 29384 (netbsd_d_register_target_info): New function. 29385 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29386 * config/openbsd-d.c (openbsd_d_handle_target_object_format): New 29387 function. 29388 (openbsd_d_register_target_info): New function. 29389 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29390 * config/pa/pa-d.c (pa_d_handle_target_object_format): New function. 29391 (pa_d_register_target_info): Add pa_d_handle_target_object_format as 29392 handler for objectFormat key. 29393 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_object_format): New 29394 function. 29395 (rs6000_d_register_target_info): Add 29396 rs6000_d_handle_target_object_format as handler for objectFormat key. 29397 * config/sol2-d.c (solaris_d_handle_target_object_format): New 29398 function. 29399 (solaris_d_register_target_info): New function. 29400 (TARGET_D_REGISTER_OS_TARGET_INFO): Define. 29401 294022021-04-16 Jakub Jelinek <jakub@redhat.com> 29403 29404 PR target/91710 29405 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Change 29406 abi_break argument from bool * to unsigned *, store there the pre-GCC 9 29407 alignment. 29408 (aarch64_layout_arg, aarch64_gimplify_va_arg_expr): Adjust callers. 29409 (aarch64_function_arg_regno_p): Likewise. Only emit -Wpsabi note if 29410 the old and new alignment after applying MIN/MAX to it is different. 29411 294122021-04-16 Tamar Christina <tamar.christina@arm.com> 29413 29414 PR target/100048 29415 * config/aarch64/aarch64-sve.md (@aarch64_sve_trn1_conv<mode>): New. 29416 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_trn): Use new 29417 TRN optab. 29418 * config/aarch64/iterators.md (UNSPEC_TRN1_CONV): New. 29419 294202021-04-16 Bill Schmidt <wschmidt@linux.ibm.com> 29421 29422 * doc/extend.texi (PowerPC AltiVec/VSX Built-in Functions): Revise 29423 this section and its subsections. 29424 294252021-04-16 Jakub Jelinek <jakub@redhat.com> 29426 29427 PR target/100075 29428 * config/aarch64/aarch64.md (*neg_asr_si2_extr, *extrsi5_insn_di): New 29429 define_insn patterns. 29430 294312021-04-16 Richard Sandiford <richard.sandiford@arm.com> 29432 29433 PR rtl-optimization/98689 29434 * reg-notes.def (UNTYPED_CALL): New note. 29435 * combine.c (distribute_notes): Handle it. 29436 * emit-rtl.c (try_split): Likewise. 29437 * rtlanal.c (rtx_properties::try_to_add_insn): Likewise. Assume 29438 that calls with the note implicitly set all return value registers. 29439 * builtins.c (expand_builtin_apply): Add a REG_UNTYPED_CALL 29440 to untyped_calls. 29441 294422021-04-16 Richard Sandiford <richard.sandiford@arm.com> 29443 29444 PR rtl-optimization/99596 29445 * rtlanal.c (rtx_properties::try_to_add_insn): Don't add global 29446 register accesses for const calls. Assume that pure functions 29447 can only read from global registers. Ignore cases in which 29448 the stack pointer has been marked global. 29449 294502021-04-16 Jakub Jelinek <jakub@redhat.com> 29451 29452 PR target/99767 29453 * tree-vect-loop.c (vect_transform_loop): Don't remove just 29454 dead scalar .MASK_LOAD calls, but also dead .COND_* calls - replace 29455 them by their last argument. 29456 294572021-04-15 Martin Liska <mliska@suse.cz> 29458 29459 * doc/invoke.texi: Other params don't use it, remove it. 29460 294612021-04-15 Richard Biener <rguenther@suse.de> 29462 29463 * gimple-builder.h: Add deprecation note. 29464 294652021-04-15 Richard Sandiford <richard.sandiford@arm.com> 29466 29467 PR c++/98852 29468 * attribs.h (restrict_type_identity_attributes_to): Declare. 29469 * attribs.c (restrict_type_identity_attributes_to): New function. 29470 294712021-04-15 Richard Sandiford <richard.sandiford@arm.com> 29472 29473 PR c/98852 29474 * attribs.h (affects_type_identity_attributes): Declare. 29475 * attribs.c (remove_attributes_matching): New function. 29476 (affects_type_identity_attributes): Likewise. 29477 294782021-04-15 Jakub Jelinek <jakub@redhat.com> 29479 29480 PR target/100056 29481 * config/aarch64/aarch64.md (*<LOGICAL:optab>_<SHIFT:optab><mode>3): 29482 Add combine splitters for *<LOGICAL:optab>_ashl<mode>3 with 29483 ZERO_EXTEND, SIGN_EXTEND or AND. 29484 294852021-04-14 Richard Sandiford <richard.sandiford@arm.com> 29486 29487 PR rtl-optimization/99929 29488 * rtl.h (same_vector_encodings_p): New function. 29489 * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding. 29490 * cselib.c (rtx_equal_for_cselib_1): Likewise. 29491 * jump.c (rtx_renumbered_equal_p): Likewise. 29492 * lra-constraints.c (operands_match_p): Likewise. 29493 * reload.c (operands_match_p): Likewise. 29494 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise. 29495 294962021-04-14 Richard Sandiford <richard.sandiford@arm.com> 29497 29498 * print-rtl.c (rtx_writer::print_rtx_operand_codes_E_and_V): Print 29499 more information about variable-length CONST_VECTORs. 29500 295012021-04-14 Vladimir N. Makarov <vmakarov@redhat.com> 29502 29503 PR rtl-optimization/100066 29504 * lra-constraints.c (split_reg): Check paradoxical_subreg_p for 29505 ordered modes when choosing splitting mode for hard reg. 29506 295072021-04-14 Richard Sandiford <richard.sandiford@arm.com> 29508 29509 PR target/99246 29510 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector_sel): 29511 New function. 29512 (aarch64_expand_sve_const_vector): Use it for nelts_per_pattern==2. 29513 295142021-04-14 Andreas Krebbel <krebbel@linux.ibm.com> 29515 29516 * config/s390/s390-builtins.def (O_M5, O_M12, ...): Add new macros 29517 for mask operand types. 29518 (s390_vec_permi_s64, s390_vec_permi_b64, s390_vec_permi_u64) 29519 (s390_vec_permi_dbl, s390_vpdi): Use the M5 type for the immediate 29520 operand. 29521 (s390_vec_msum_u128, s390_vmslg): Use the M12 type for the 29522 immediate operand. 29523 * config/s390/s390.c (s390_const_operand_ok): Check the new 29524 operand types and generate a list of valid values. 29525 295262021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 29527 29528 * doc/tm.texi: Regenerate. 29529 * doc/tm.texi.in (D language and ABI): Add @hook for 29530 TARGET_D_REGISTER_OS_TARGET_INFO. 29531 295322021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 29533 29534 * config/aarch64/aarch64-d.c (aarch64_d_handle_target_float_abi): New 29535 function. 29536 (aarch64_d_register_target_info): New function. 29537 * config/aarch64/aarch64-protos.h (aarch64_d_register_target_info): 29538 Declare. 29539 * config/aarch64/aarch64.h (TARGET_D_REGISTER_CPU_TARGET_INFO): 29540 Define. 29541 * config/arm/arm-d.c (arm_d_handle_target_float_abi): New function. 29542 (arm_d_register_target_info): New function. 29543 * config/arm/arm-protos.h (arm_d_register_target_info): Declare. 29544 * config/arm/arm.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29545 * config/i386/i386-d.c (ix86_d_handle_target_float_abi): New function. 29546 (ix86_d_register_target_info): New function. 29547 * config/i386/i386-protos.h (ix86_d_register_target_info): Declare. 29548 * config/i386/i386.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29549 * config/mips/mips-d.c (mips_d_handle_target_float_abi): New function. 29550 (mips_d_register_target_info): New function. 29551 * config/mips/mips-protos.h (mips_d_register_target_info): Declare. 29552 * config/mips/mips.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29553 * config/pa/pa-d.c (pa_d_handle_target_float_abi): New function. 29554 (pa_d_register_target_info): New function. 29555 * config/pa/pa-protos.h (pa_d_register_target_info): Declare. 29556 * config/pa/pa.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29557 * config/riscv/riscv-d.c (riscv_d_handle_target_float_abi): New 29558 function. 29559 (riscv_d_register_target_info): New function. 29560 * config/riscv/riscv-protos.h (riscv_d_register_target_info): Declare. 29561 * config/riscv/riscv.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29562 * config/rs6000/rs6000-d.c (rs6000_d_handle_target_float_abi): New 29563 function. 29564 (rs6000_d_register_target_info): New function. 29565 * config/rs6000/rs6000-protos.h (rs6000_d_register_target_info): 29566 Declare. 29567 * config/rs6000/rs6000.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29568 * config/s390/s390-d.c (s390_d_handle_target_float_abi): New function. 29569 (s390_d_register_target_info): New function. 29570 * config/s390/s390-protos.h (s390_d_register_target_info): Declare. 29571 * config/s390/s390.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29572 * config/sparc/sparc-d.c (sparc_d_handle_target_float_abi): New 29573 function. 29574 (sparc_d_register_target_info): New function. 29575 * config/sparc/sparc-protos.h (sparc_d_register_target_info): Declare. 29576 * config/sparc/sparc.h (TARGET_D_REGISTER_CPU_TARGET_INFO): Define. 29577 * doc/tm.texi: Regenerate. 29578 * doc/tm.texi.in (D language and ABI): Add @hook for 29579 TARGET_D_REGISTER_CPU_TARGET_INFO. 29580 295812021-04-14 Iain Buclaw <ibuclaw@gdcproject.org> 29582 29583 * config/i386/i386-d.c (ix86_d_has_stdcall_convention): New function. 29584 * config/i386/i386-protos.h (ix86_d_has_stdcall_convention): Declare. 29585 * config/i386/i386.h (TARGET_D_HAS_STDCALL_CONVENTION): Define. 29586 * doc/tm.texi: Regenerate. 29587 * doc/tm.texi.in (D language and ABI): Add @hook for 29588 TARGET_D_HAS_STDCALL_CONVENTION. 29589 295902021-04-14 Richard Biener <rguenther@suse.de> 29591 29592 * tree-cfg.c (verify_gimple_assign_ternary): Verify that 29593 VEC_COND_EXPRs have a gimple_val condition. 29594 * tree-ssa-propagate.c (valid_gimple_rhs_p): VEC_COND_EXPR 29595 can no longer have a GENERIC condition. 29596 295972021-04-14 Richard Earnshaw <rearnsha@arm.com> 29598 29599 PR target/100067 29600 * config/arm/arm.c (arm_configure_build_target): Strip isa_all_fpbits 29601 from the isa_delta when -mfpu has been used. 29602 (arm_options_perform_arch_sanity_checks): It's the architecture that 29603 lacks an FPU not the processor. 29604 296052021-04-13 Richard Biener <rguenther@suse.de> 29606 29607 PR tree-optimization/100053 29608 * tree-ssa-sccvn.c (vn_nary_op_get_predicated_value): Do 29609 not use optimistic dominance queries for backedges to validate 29610 predicated values. 29611 (dominated_by_p_w_unex): Add parameter to ignore executable 29612 state on backedges. 29613 (rpo_elim::eliminate_avail): Adjust. 29614 296152021-04-13 Jakub Jelinek <jakub@redhat.com> 29616 29617 PR target/100028 29618 * config/aarch64/aarch64.md (*aarch64_bfxil<mode>_extr, 29619 *aarch64_bfxilsi_extrdi): New define_insn patterns. 29620 296212021-04-13 Jakub Jelinek <jakub@redhat.com> 29622 29623 PR target/99648 29624 * simplify-rtx.c (simplify_immed_subreg): For MODE_COMPOSITE_P 29625 outermode, return NULL if the result doesn't encode back to the 29626 original byte sequence. 29627 (simplify_gen_subreg): Don't create SUBREGs from constants to 29628 MODE_COMPOSITE_P outermode. 29629 296302021-04-12 Jakub Jelinek <jakub@redhat.com> 29631 29632 PR rtl-optimization/99905 29633 * combine.c (expand_compound_operation): If pos + len > modewidth, 29634 perform the right shift by pos in inner_mode and then convert to mode, 29635 instead of trying to simplify a shift of rtx with inner_mode by pos 29636 as if it was a shift in mode. 29637 296382021-04-12 Jakub Jelinek <jakub@redhat.com> 29639 29640 PR debug/99830 29641 * combine.c (simplify_and_const_int_1): Don't optimize varop 29642 away if it has side-effects. 29643 296442021-04-12 Martin Liska <mliska@suse.cz> 29645 29646 * doc/extend.texi: Escape @smallexample content. 29647 296482021-04-12 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 29649 29650 * config/s390/s390.md ("*movdi_31", "*movdi_64"): Add 29651 alternative in order to load a DFP zero. 29652 296532021-04-12 Martin Liska <mliska@suse.cz> 29654 29655 * doc/extend.texi: Be more precise in documentation 29656 of symver attribute. 29657 296582021-04-12 Martin Liska <mliska@suse.cz> 29659 29660 PR sanitizer/99877 29661 * gimplify.c (gimplify_expr): Right now, we unpoison all 29662 variables before a goto <dest>. We should not do it if we are 29663 in a omp context. 29664 296652021-04-12 Cui,Lili <lili.cui@intel.com> 29666 29667 * common/config/i386/cpuinfo.h (get_intel_cpu): Handle 29668 rocketlake. 29669 * common/config/i386/i386-common.c (processor_names): Add 29670 rocketlake. 29671 (processor_alias_table): Add rocketlake. 29672 * common/config/i386/i386-cpuinfo.h (processor_subtypes): Add 29673 INTEL_COREI7_ROCKETLAKE. 29674 * config.gcc: Add -march=rocketlake. 29675 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 29676 rocketlake. 29677 * config/i386/i386-options.c (m_ROCKETLAKE) : Define. 29678 (processor_cost_table): Add rocketlake cost. 29679 * config/i386/i386.h (ix86_size_cost) : Define 29680 TARGET_ROCKETLAKE. 29681 (processor_type) : Add PROCESSOR_ROCKETLAKE. 29682 (PTA_ROCKETLAKE): Ditto. 29683 * doc/extend.texi: Add rocketlake. 29684 * doc/invoke.texi: Add rocketlake. 29685 296862021-04-12 Cui,Lili <lili.cui@intel.com> 29687 29688 * config/i386/i386.h (PTA_ALDERLAKE): Change alderlake ISA list. 29689 * config/i386/i386-options.c (m_CORE_AVX2): Add m_ALDERLAKE. 29690 * common/config/i386/cpuinfo.h (get_intel_cpu): Add AlderLake model. 29691 * doc/invoke.texi: Change alderlake ISA list. 29692 296932021-04-11 Hafiz Abid Qadeer <abidh@codesourcery.com> 29694 29695 PR middle-end/98088 29696 * omp-expand.c (expand_oacc_collapse_init): Update condition in 29697 a gcc_assert. 29698 296992021-04-10 H.J. Lu <hjl.tools@gmail.com> 29700 29701 PR target/99744 29702 * config/i386/serializeintrin.h (_serialize): Defined as macro. 29703 297042021-04-10 Jakub Jelinek <jakub@redhat.com> 29705 29706 PR lto/99849 29707 * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than 29708 just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs. 29709 297102021-04-10 Jakub Jelinek <jakub@redhat.com> 29711 29712 PR middle-end/99989 29713 * gimple-ssa-warn-alloca.c 29714 (alloca_type_and_limit::alloca_type_and_limit): Initialize limit to 29715 0 with integer precision unconditionally. 29716 297172021-04-10 Jakub Jelinek <jakub@redhat.com> 29718 29719 PR rtl-optimization/98601 29720 * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size 29721 not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT 29722 unaligned_mems handle VOIDmode like BLKmode. 29723 297242021-04-10 Jan Hubicka <hubicka@ucw.cz> 29725 29726 PR lto/99857 29727 * tree.c (free_lang_data_in_decl): Do not release body of 29728 declare_variant_alt. 29729 297302021-04-09 Richard Sandiford <richard.sandiford@arm.com> 29731 29732 * config/aarch64/aarch64.c (aarch64_option_restore): If the 29733 architecture was specified explicitly and the tuning wasn't, 29734 tune for the architecture rather than the configured default CPU. 29735 297362021-04-09 Richard Sandiford <richard.sandiford@arm.com> 29737 29738 * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use X30 29739 as the temporary register. 29740 297412021-04-09 Martin Liska <mliska@suse.cz> 29742 29743 * doc/extend.texi: Move non-target attributes on the top level. 29744 297452021-04-09 Martin Liska <mliska@suse.cz> 29746 29747 * doc/invoke.texi: Document minimum and maximum value of the 29748 argument for both supported compression algorithms. 29749 297502021-04-08 David Edelsohn <dje.gcc@gmail.com> 29751 29752 * config/rs6000/rs6000.c (rs6000_xcoff_select_section): Select 29753 TLS BSS before TLS data. 29754 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .comm. 29755 297562021-04-08 Richard Sandiford <richard.sandiford@arm.com> 29757 29758 * doc/sourcebuild.texi (stdint_types_mbig_endian): Document. 29759 297602021-04-08 Richard Sandiford <richard.sandiford@arm.com> 29761 29762 * match.pd: Extend vec_cond folds to handle shifts. 29763 297642021-04-08 Maciej W. Rozycki <macro@orcam.me.uk> 29765 29766 * config/vax/vax.md: Fix comment for `*bit<mode>' pattern's 29767 peephole. 29768 297692021-04-08 Alex Coplan <alex.coplan@arm.com> 29770 29771 PR target/99647 29772 * config/arm/iterators.md (MVE_vecs): New. 29773 (V_elem): Also handle V2DF. 29774 * config/arm/mve.md (*mve_mov<mode>): Rename to ... 29775 (*mve_vdup<mode>): ... this. Remove second alternative since 29776 vec_duplicate of const_int is not canonical RTL, and we don't 29777 want to match symbol_refs. 29778 (*mve_vec_duplicate<mode>): Delete (pattern is redundant). 29779 297802021-04-08 Xionghu Luo <luoxhu@linux.ibm.com> 29781 29782 * fold-const.c (fold_single_bit_test): Fix typo. 29783 * print-rtl.c (print_rtx_insn_vec): Call print_rtl_single 29784 instead. 29785 297862021-04-07 Richard Sandiford <richard.sandiford@arm.com> 29787 29788 PR tree-optimization/97513 29789 * tree-vect-slp.c (vect_add_slp_permutation): New function, 29790 split out from... 29791 (vectorizable_slp_permutation): ...here. Detect cases in which 29792 all VEC_PERM_EXPRs are guaranteed to have the same stepped 29793 permute vector and only generate one permute vector for that case. 29794 Extend that case to handle variable-length vectors. 29795 297962021-04-07 Richard Sandiford <richard.sandiford@arm.com> 29797 29798 PR tree-optimization/99873 29799 * tree-vect-slp.c (vect_slp_prefer_store_lanes_p): New function. 29800 (vect_build_slp_instance): Don't split store groups that could 29801 use IFN_STORE_LANES. 29802 298032021-04-07 Jakub Jelinek <jakub@redhat.com> 29804 29805 PR target/99872 29806 * varasm.c (output_constant_pool_contents): Don't strip name encoding 29807 from XSTR (desc->sym, 0) or from label before passing those to 29808 ASM_OUTPUT_DEF. 29809 298102021-04-07 Richard Biener <rguenther@suse.de> 29811 29812 PR tree-optimization/99954 29813 * tree-loop-distribution.c: Include tree-affine.h. 29814 (generate_memcpy_builtin): Try using tree-affine to prove 29815 non-overlap. 29816 (loop_distribution::classify_builtin_ldst): Always classify 29817 as PKIND_MEMMOVE. 29818 298192021-04-07 Richard Biener <rguenther@suse.de> 29820 29821 PR tree-optimization/99947 29822 * tree-vect-loop.c (vectorizable_induction): Pre-allocate 29823 steps vector to avoid pushing elements from the reallocated 29824 vector. 29825 298262021-04-07 Richard Biener <rguenther@suse.de> 29827 29828 * tree-ssa-sccvn.h (print_vn_reference_ops): Declare. 29829 * tree-ssa-pre.c (print_pre_expr): Factor out VN reference operand 29830 printing... 29831 * tree-ssa-sccvn.c (print_vn_reference_ops): ... into this new 29832 function. 29833 (debug_vn_reference_ops): New. 29834 298352021-04-07 Bin Cheng <bin.cheng@linux.alibaba.com> 29836 29837 PR tree-optimization/98736 29838 * tree-loop-distribution.c 29839 * (loop_distribution::bb_top_order_init): 29840 Compute RPO with programing order preserved by calling function 29841 rev_post_order_and_mark_dfs_back_seme. 29842 298432021-04-06 Vladimir N. Makarov <vmakarov@redhat.com> 29844 29845 PR target/99781 29846 * lra-constraints.c (split_reg): Don't check paradoxical_subreg_p. 29847 * lra-lives.c (clear_sparseset_regnos, regnos_in_sparseset_p): New 29848 functions. 29849 (process_bb_lives): Don't update biggest mode of hard reg for 29850 implicit in multi-register group. Use the new functions for 29851 updating dead_set and unused_set by register notes. 29852 298532021-04-06 Xianmiao Qu <xianmiao_qu@c-sky.com> 29854 29855 * config/csky/csky_pipeline_ck802.md : Use insn reservation name 29856 instead of *. 29857 298582021-04-06 H.J. Lu <hjl.tools@gmail.com> 29859 29860 * config/i386/x86-tune-costs.h (skylake_memcpy): Updated. 29861 (skylake_memset): Likewise. 29862 (skylake_cost): Change CLEAR_RATIO to 17. 29863 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): 29864 Replace m_CANNONLAKE, m_ICELAKE_CLIENT, m_ICELAKE_SERVER, 29865 m_TIGERLAKE and m_SAPPHIRERAPIDS with m_SKYLAKE and m_CORE_AVX512. 29866 298672021-04-06 Richard Biener <rguenther@suse.de> 29868 29869 PR tree-optimization/99880 29870 * tree-vect-loop.c (maybe_set_vectorized_backedge_value): Only 29871 set vectorized defs of relevant PHIs. 29872 298732021-04-06 Richard Biener <rguenther@suse.de> 29874 29875 PR tree-optimization/99924 29876 * tree-vect-slp.c (vect_bb_partition_graph_r): Do not mark 29877 nodes w/o scalar stmts as visited. 29878 298792021-04-06 Alex Coplan <alex.coplan@arm.com> 29880 29881 PR target/99748 29882 * config/arm/arm.c (arm_libcall_uses_aapcs_base): Also use base 29883 PCS for [su]fix_optab. 29884 298852021-04-03 Iain Sandoe <iain@sandoe.co.uk> 29886 29887 * config/darwin.c (machopic_legitimize_pic_address): Check 29888 that the current pic register is one of the hard reg set 29889 before setting liveness. 29890 298912021-04-03 Iain Sandoe <iain@sandoe.co.uk> 29892 29893 * config/darwin.c (machopic_legitimize_pic_address): Fix 29894 whitespace, remove unused code. 29895 298962021-04-03 Jakub Jelinek <jakub@redhat.com> 29897 29898 PR tree-optimization/99882 29899 * gimple-ssa-store-merging.c (bswap_view_convert): Handle val with 29900 pointer type. 29901 299022021-04-03 Jakub Jelinek <jakub@redhat.com> 29903 29904 PR rtl-optimization/99863 29905 * dse.c (replace_read): Drop regs_live argument. Instead of 29906 regs_live, use store_insn->fixed_regs_live if non-NULL, 29907 otherwise punt if insns sequence clobbers or sets any hard 29908 registers. 29909 299102021-04-03 Jakub Jelinek <jakub@redhat.com> 29911 29912 PR testsuite/98125 29913 * targhooks.h (default_print_patchable_function_entry_1): Declare. 29914 * targhooks.c (default_print_patchable_function_entry_1): New function, 29915 copied from default_print_patchable_function_entry with an added flags 29916 argument. 29917 (default_print_patchable_function_entry): Rewritten into a small 29918 wrapper around default_print_patchable_function_entry_1. 29919 * config/rs6000/rs6000.c (TARGET_ASM_PRINT_PATCHABLE_FUNCTION_ENTRY): 29920 Redefine. 29921 (rs6000_print_patchable_function_entry): New function. 29922 299232021-04-02 Eric Botcazou <ebotcazou@adacore.com> 29924 29925 * doc/invoke.texi (fdelete-dead-exceptions): Minor tweak. 29926 299272021-04-01 Jason Merrill <jason@redhat.com> 29928 29929 PR c++/98481 29930 * common.opt: Document v15 and v16. 29931 299322021-04-01 Richard Biener <rguenther@suse.de> 29933 29934 PR tree-optimization/99863 29935 * gimplify.c (gimplify_init_constructor): Recompute vector 29936 constructor flags. 29937 299382021-04-01 Jakub Jelinek <jakub@redhat.com> 29939 29940 * doc/extend.texi (symver attribute): Fix up syntax errors 29941 in the examples. 29942 299432021-04-01 Jakub Jelinek <jakub@redhat.com> 29944 29945 PR tree-optimization/96573 29946 * gimple-ssa-store-merging.c (init_symbolic_number): Handle 29947 also pointer types. 29948 299492021-04-01 Richard Biener <rguenther@suse.de> 29950 29951 PR tree-optimization/99856 29952 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Promote 29953 precision to vector element precision. 29954 299552021-04-01 Martin Jambor <mjambor@suse.cz> 29956 29957 PR tree-optimization/97009 29958 * tree-sra.c (access_or_its_child_written): New function. 29959 (propagate_subaccesses_from_rhs): Use it instead of a simple grp_write 29960 test. 29961 299622021-03-31 Jan Hubicka <hubicka@ucw.cz> 29963 29964 PR ipa/98265 29965 * cif-code.def (USES_COMDAT_LOCAL): Make CIF_FINAL_NORMAL. 29966 299672021-03-31 Pat Haugen <pthaugen@linux.ibm.com> 29968 29969 PR target/99133 29970 * config/rs6000/altivec.md (xxspltiw_v4si, xxspltiw_v4sf_inst, 29971 xxspltidp_v2df_inst, xxsplti32dx_v4si_inst, xxsplti32dx_v4sf_inst, 29972 xxblend_<mode>, xxpermx_inst, xxeval): Mark prefixed. 29973 * config/rs6000/mma.md (mma_<vvi4i4i8>, mma_<avvi4i4i8>, 29974 mma_<vvi4i4i2>, mma_<avvi4i4i2>, mma_<vvi4i4>, mma_<avvi4i4>, 29975 mma_<pvi4i2>, mma_<apvi4i2>, mma_<vvi4i4i4>, mma_<avvi4i4i4>): 29976 Likewise. 29977 * config/rs6000/rs6000.c (rs6000_final_prescan_insn): Adjust test. 29978 * config/rs6000/rs6000.md (define_attr "maybe_prefixed"): New. 29979 (define_attr "prefixed"): Update initializer. 29980 299812021-03-31 Jakub Jelinek <jakub@redhat.com> 29982 29983 PR debug/99490 29984 * dwarf2out.c (debug_ranges_dwo_section): New variable. 29985 (DW_RANGES_IDX_SKELETON): Define. 29986 (struct dw_ranges): Add begin_entry and end_entry members. 29987 (DEBUG_DWO_RNGLISTS_SECTION): Define. 29988 (add_ranges_num): Adjust r initializer for addition of *_entry 29989 members. 29990 (add_ranges_by_labels): For -gsplit-dwarf and force_direct, 29991 set idx to DW_RANGES_IDX_SKELETON. 29992 (use_distinct_base_address_for_range): New function. 29993 (index_rnglists): Don't set r->idx if it is equal to 29994 DW_RANGES_IDX_SKELETON. Initialize r->begin_entry and 29995 r->end_entry for -gsplit-dwarf if those will be needed by 29996 output_rnglists. 29997 (output_rnglists): Add DWO argument. If true, switch to 29998 debug_ranges_dwo_section rather than debug_ranges_section. 29999 Adjust l1/l2 label indexes. Only output the offset table when 30000 dwo is true and don't include in there the skeleton range 30001 entry if present. For -gsplit-dwarf, skip ranges that belong 30002 to the other rnglists section. Change return type from void 30003 to bool and return true if there are any range entries for 30004 the other section. For dwarf_split_debug_info use 30005 DW_RLE_startx_endx, DW_RLE_startx_length and DW_RLE_base_addressx 30006 entries instead of DW_RLE_start_end, DW_RLE_start_length and 30007 DW_RLE_base_address. Use use_distinct_base_address_for_range. 30008 (init_sections_and_labels): Initialize debug_ranges_dwo_section 30009 if -gsplit-dwarf and DWARF >= 5. Adjust ranges_section_label 30010 and range_base_label indexes. 30011 (dwarf2out_finish): Call index_rnglists earlier before finalizing 30012 .debug_addr. Never emit DW_AT_rnglists_base attribute. For 30013 -gsplit-dwarf and DWARF >= 5 call output_rnglists up to twice 30014 with different dwo arguments. 30015 (dwarf2out_c_finalize): Clear debug_ranges_dwo_section. 30016 300172021-03-31 Richard Sandiford <richard.sandiford@arm.com> 30018 30019 PR tree-optimization/98268 30020 * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Call 30021 recompute_tree_invariant_for_addr_expr after successfully 30022 folding a TARGET_MEM_REF that occurs inside an ADDR_EXPR. 30023 300242021-03-31 Richard Sandiford <richard.sandiford@arm.com> 30025 30026 PR tree-optimization/99726 30027 * tree-data-ref.c (create_intersect_range_checks_index): Bail 30028 out if there is more than one access function SCEV for the loop 30029 being versioned. 30030 300312021-03-31 Richard Sandiford <richard.sandiford@arm.com> 30032 30033 PR rtl-optimization/97141 30034 PR rtl-optimization/98726 30035 * emit-rtl.c (valid_for_const_vector_p): Return true for 30036 CONST_POLY_INT_P. 30037 * rtx-vector-builder.h (rtx_vector_builder::step): Return a 30038 poly_wide_int instead of a wide_int. 30039 (rtx_vector_builder::apply_set): Take a poly_wide_int instead 30040 of a wide_int. 30041 * rtx-vector-builder.c (rtx_vector_builder::apply_set): Likewise. 30042 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Return 30043 false for CONST_VECTORs that cannot be forced to memory. 30044 * config/aarch64/aarch64-simd.md (mov<mode>): If a CONST_VECTOR 30045 is too complex to force to memory, build it up from individual 30046 elements instead. 30047 300482021-03-31 Jan Hubicka <jh@suse.cz> 30049 30050 PR lto/99447 30051 * cgraph.c (cgraph_node::release_body): Fix overactive check. 30052 300532021-03-31 Christophe Lyon <christophe.lyon@linaro.org> 30054 30055 PR target/99786 30056 * config/arm/vec-common.md (mul<mode>3): Disable on iwMMXT, expect 30057 for V4HI and V2SI. 30058 300592021-03-31 H.J. Lu <hjl.tools@gmail.com> 30060 30061 * config/i386/i386-expand.c (expand_set_or_cpymem_via_rep): 30062 For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, don't convert QImode 30063 to SImode. 30064 (decide_alg): For TARGET_PREFER_KNOWN_REP_MOVSB_STOSB, use 30065 "rep movsb/stosb" only for known sizes. 30066 * config/i386/i386-options.c (processor_cost_table): Use Ice 30067 Lake cost for Cannon Lake, Ice Lake, Tiger Lake, Sapphire 30068 Rapids and Alder Lake. 30069 * config/i386/i386.h (TARGET_PREFER_KNOWN_REP_MOVSB_STOSB): New. 30070 * config/i386/x86-tune-costs.h (icelake_memcpy): New. 30071 (icelake_memset): Likewise. 30072 (icelake_cost): Likewise. 30073 * config/i386/x86-tune.def (X86_TUNE_PREFER_KNOWN_REP_MOVSB_STOSB): 30074 New. 30075 300762021-03-31 Richard Sandiford <richard.sandiford@arm.com> 30077 30078 PR target/98119 30079 * config/aarch64/aarch64.c 30080 (aarch64_vectorize_preferred_vector_alignment): Query the size 30081 of the provided SVE vector; do not assume that all SVE vectors 30082 have the same size. 30083 300842021-03-31 Jan Hubicka <jh@suse.cz> 30085 30086 PR lto/99447 30087 * cgraph.c (cgraph_node::release_body): Remove all callers and 30088 references. 30089 * cgraphclones.c (cgraph_node::materialize_clone): Do not do it here. 30090 * cgraphunit.c (cgraph_node::expand): And here. 30091 300922021-03-31 Martin Liska <mliska@suse.cz> 30093 30094 * ipa-modref.c (analyze_ssa_name_flags): Fix coding style 30095 and one negated condition. 30096 300972021-03-31 Jakub Jelinek <jakub@redhat.com> 30098 Richard Sandiford <richard.sandiford@arm.com> 30099 30100 PR target/99813 30101 * config/aarch64/aarch64.md (*add<mode>3_poly_1): Swap Uai and Uav 30102 constraints on operands[2] and similarly 0 and rk constraints 30103 on operands[1] corresponding to that. 30104 301052021-03-31 Jakub Jelinek <jakub@redhat.com> 30106 30107 PR bootstrap/98860 30108 * configure.ac (HAVE_LD_BROKEN_PE_DWARF5): New AC_DEFINE if PECOFF 30109 linker doesn't support DWARF sections new in DWARF5. 30110 * config/i386/i386-options.c (ix86_option_override_internal): Default 30111 to dwarf_version 4 if HAVE_LD_BROKEN_PE_DWARF5 for TARGET_PECOFF 30112 targets. 30113 * config.in: Regenerated. 30114 * configure: Regenerated. 30115 301162021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 30117 30118 PR target/99820 30119 * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for 30120 available issue_info before using it. 30121 301222021-03-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 30123 30124 PR target/99822 30125 * config/aarch64/aarch64.md (sub<mode>3_compare1_imm): Do not allow zero 30126 in operand 1. 30127 301282021-03-30 Xionghu Luo <luoxhu@linux.ibm.com> 30129 30130 PR target/99718 30131 * config/rs6000/altivec.md (altivec_lvsl_reg): Change to ... 30132 (altivec_lvsl_reg_<mode>): ... this. 30133 (altivec_lvsr_reg): Change to ... 30134 (altivec_lvsr_reg_<mode>): ... this. 30135 * config/rs6000/predicates.md (vec_set_index_operand): New. 30136 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 30137 Enable 32bit variable vec_insert for all TARGET_VSX. 30138 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): 30139 Enable 32bit variable vec_insert for p9 and above. 30140 (rs6000_expand_vector_set_var_p8): Rename to ... 30141 (rs6000_expand_vector_set_var_p7): ... this. 30142 (rs6000_expand_vector_set): Use TARGET_VSX and adjust assert 30143 position. 30144 * config/rs6000/vector.md (vec_set<mode>): Use vec_set_index_operand. 30145 * config/rs6000/vsx.md (xl_len_r): Use gen_altivec_lvsl_reg_di and 30146 gen_altivec_lvsr_reg_di. 30147 301482021-03-30 H.J. Lu <hjl.tools@gmail.com> 30149 30150 PR target/99744 30151 * config/i386/ia32intrin.h (__rdtsc): Defined as macro. 30152 (__rdtscp): Likewise. 30153 301542021-03-30 Tamar Christina <tamar.christina@arm.com> 30155 30156 PR tree-optimization/99825 30157 * tree-vect-slp-patterns.c (vect_check_evenodd_blend): 30158 Reject non-mult 2 lanes. 30159 301602021-03-30 Richard Earnshaw <rearnsha@arm.com> 30161 30162 PR target/99773 30163 * config/arm/arm.c (arm_file_start): Fix emission of 30164 Tag_ABI_VFP_args attribute. 30165 301662021-03-30 Richard Biener <rguenther@suse.de> 30167 30168 PR tree-optimization/99824 30169 * stor-layout.c (set_min_and_max_values_for_integral_type): 30170 Assert the precision is within the bounds of 30171 WIDE_INT_MAX_PRECISION. 30172 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use 30173 the outermost component ref only to lower the access size 30174 and initialize that from the access type. 30175 301762021-03-30 Richard Sandiford <richard.sandiford@arm.com> 30177 30178 PR target/98136 30179 * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction 30180 CONST_INTs to aarch64_expand_mov_immediate when called after RA. 30181 301822021-03-30 Mihailo Stojanovic <mihailo.stojanovic@typhoon-hil.com> 30183 30184 * config/aarch64/aarch64.md 30185 (<optab>_trunc<fcvt_target><GPI:mode>2): Set the "arch" 30186 attribute to disambiguate between SIMD and FP variants of the 30187 instruction. 30188 301892021-03-29 Jan Hubicka <hubicka@ucw.cz> 30190 30191 * ipa-modref.c (merge_call_lhs_flags): Correct handling of deref. 30192 (analyze_ssa_name_flags): Fix typo in comment. 30193 301942021-03-29 Alex Coplan <alex.coplan@arm.com> 30195 30196 PR target/99216 30197 * config/aarch64/aarch64-sve-builtins.cc 30198 (function_builder::add_function): Add placeholder_p argument, use 30199 placeholder decls if this is set. 30200 (function_builder::add_unique_function): Instead of conditionally adding 30201 direct overloads, unconditionally add either a direct overload or a 30202 placeholder. 30203 (function_builder::add_overloaded_function): Set placeholder_p if we're 30204 using C++ overloads. Use the obstack for string storage instead 30205 of relying on the tree nodes. 30206 (function_builder::add_overloaded_functions): Don't return early for 30207 m_direct_overloads: we need to add placeholders. 30208 * config/aarch64/aarch64-sve-builtins.h 30209 (function_builder::add_function): Add placeholder_p argument. 30210 302112021-03-29 Richard Biener <rguenther@suse.de> 30212 30213 PR tree-optimization/99807 30214 * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Move 30215 assert below VEC_PERM handling. 30216 302172021-03-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 30218 30219 PR target/99037 30220 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use 30221 aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern 30222 matching const_int 0. 30223 (move_lo_quad_internal_be_<mode>): Likewise. 30224 (move_lo_quad_<mode>): Update for the above. 30225 * config/aarch64/iterators.md (VQ_2E): Delete. 30226 302272021-03-29 Jakub Jelinek <jakub@redhat.com> 30228 30229 PR tree-optimization/99777 30230 * fold-const.c (extract_muldiv_1): For conversions, punt on casts from 30231 types other than scalar integral types. 30232 302332021-03-28 David Edelsohn <dje.gcc@gmail.com> 30234 30235 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Do not add 30236 XCOFF TLS reloc decorations. 30237 302382021-03-28 Gerald Pfeifer <gerald@pfeifer.com> 30239 30240 * doc/analyzer.texi (Analyzer Internals): Update link to 30241 "A Memory Model for Static Analysis of C Programs". 30242 302432021-03-26 David Edelsohn <dje.gcc@gmail.com> 30244 30245 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Call function. 30246 * config/rs6000/rs6000-protos.h (rs6000_special_adjust_field_align): 30247 Declare. 30248 * config/rs6000/rs6000.c (rs6000_special_adjust_field_align): New. 30249 (rs6000_special_round_type_align): Recursively check innermost first 30250 field. 30251 302522021-03-26 Jakub Jelinek <jakub@redhat.com> 30253 30254 PR debug/99334 30255 * dwarf2out.h (struct dw_fde_node): Add rule18 member. 30256 * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp) 30257 assignment with drap_reg active, queue reg save for hfp with offset 0 30258 and flush queued reg saves. When handling a push with rule18, 30259 defer queueing reg save for hfp and just assert the offset is 0. 30260 (scan_trace): Assert that fde->rule18 is false. 30261 302622021-03-26 Vladimir Makarov <vmakarov@redhat.com> 30263 30264 PR target/99766 30265 * ira-costs.c (record_reg_classes): Put case with 30266 CT_RELAXED_MEMORY adjacent to one with CT_MEMORY. 30267 * ira.c (ira_setup_alts): Ditto. 30268 * lra-constraints.c (process_alt_operands): Ditto. 30269 * recog.c (asm_operand_ok): Ditto. 30270 * reload.c (find_reloads): Ditto. 30271 302722021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30273 30274 * config/aarch64/aarch64-protos.h 30275 (cpu_addrcost_table::post_modify_ld3_st3): New member variable. 30276 (cpu_addrcost_table::post_modify_ld4_st4): Likewise. 30277 * config/aarch64/aarch64.c (generic_addrcost_table): Update 30278 accordingly, using the same costs as for post_modify. 30279 (exynosm1_addrcost_table, xgene1_addrcost_table): Likewise. 30280 (thunderx2t99_addrcost_table, thunderx3t110_addrcost_table): 30281 (tsv110_addrcost_table, qdf24xx_addrcost_table): Likewise. 30282 (a64fx_addrcost_table): Likewise. 30283 (neoversev1_addrcost_table): New. 30284 (neoversev1_tunings): Use neoversev1_addrcost_table. 30285 (aarch64_address_cost): Use the new post_modify costs for CImode 30286 and XImode. 30287 302882021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30289 30290 * config/aarch64/aarch64.opt 30291 (-param=aarch64-loop-vect-issue-rate-niters=): New parameter. 30292 * doc/invoke.texi: Document it. 30293 * config/aarch64/aarch64-protos.h (aarch64_base_vec_issue_info) 30294 (aarch64_scalar_vec_issue_info, aarch64_simd_vec_issue_info) 30295 (aarch64_advsimd_vec_issue_info, aarch64_sve_vec_issue_info) 30296 (aarch64_vec_issue_info): New structures. 30297 (cpu_vector_cost): Write comments above the variables rather 30298 than to the side. 30299 (cpu_vector_cost::issue_info): New member variable. 30300 * config/aarch64/aarch64.c: Include gimple-pretty-print.h 30301 and tree-ssa-loop-niter.h. 30302 (generic_vector_cost, a64fx_vector_cost, qdf24xx_vector_cost) 30303 (thunderx_vector_cost, tsv110_vector_cost, cortexa57_vector_cost) 30304 (exynosm1_vector_cost, xgene1_vector_cost, thunderx2t99_vector_cost) 30305 (thunderx3t110_vector_cost): Initialize issue_info to null. 30306 (neoversev1_scalar_issue_info, neoversev1_advsimd_issue_info) 30307 (neoversev1_sve_issue_info, neoversev1_vec_issue_info): New structures. 30308 (neoversev1_vector_cost): Use them. 30309 (aarch64_vec_op_count, aarch64_sve_op_count): New structures. 30310 (aarch64_vector_costs::saw_sve_only_op): New member variable. 30311 (aarch64_vector_costs::num_vector_iterations): Likewise. 30312 (aarch64_vector_costs::scalar_ops): Likewise. 30313 (aarch64_vector_costs::advsimd_ops): Likewise. 30314 (aarch64_vector_costs::sve_ops): Likewise. 30315 (aarch64_vector_costs::seen_loads): Likewise. 30316 (aarch64_simd_vec_costs_for_flags): New function. 30317 (aarch64_analyze_loop_vinfo): Initialize num_vector_iterations. 30318 Count the number of predicate operations required by SVE WHILE 30319 instructions. 30320 (aarch64_comparison_type, aarch64_multiply_add_p): New functions. 30321 (aarch64_sve_only_stmt_p, aarch64_in_loop_reduction_latency): Likewise. 30322 (aarch64_count_ops): Likewise. 30323 (aarch64_add_stmt_cost): Record whether see an SVE operation 30324 that cannot currently be implementing using Advanced SIMD. 30325 Record issue information about the scalar, Advanced SIMD 30326 and (where relevant) SVE versions of a loop. 30327 (aarch64_vec_op_count::dump): New function. 30328 (aarch64_sve_op_count::dump): Likewise. 30329 (aarch64_estimate_min_cycles_per_iter): Likewise. 30330 (aarch64_adjust_body_cost): If issue information is available, 30331 try to compare the issue rates of the various loop implementations 30332 and increase or decrease the vector body cost accordingly. 30333 303342021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30335 30336 * config/aarch64/aarch64.c (aarch64_detect_vector_stmt_subtype): 30337 Assume a zero cost for induction phis. 30338 303392021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30340 30341 * config/aarch64/aarch64.c (aarch64_embedded_comparison_type): New 30342 function. 30343 (aarch64_adjust_stmt_cost): Add the costs of embedded scalar and 30344 vector comparisons. 30345 303462021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30347 30348 * config/aarch64/aarch64.c (aarch64_detect_scalar_stmt_subtype): 30349 New function. 30350 (aarch64_add_stmt_cost): Call it. 30351 303522021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30353 30354 * config/aarch64/aarch64-tuning-flags.def (matched_vector_throughput): 30355 New tuning parameter. 30356 * config/aarch64/aarch64.c (neoversev1_tunings): Use it. 30357 (aarch64_estimated_sve_vq): New function. 30358 (aarch64_vector_costs::analyzed_vinfo): New member variable. 30359 (aarch64_vector_costs::is_loop): Likewise. 30360 (aarch64_vector_costs::unrolled_advsimd_niters): Likewise. 30361 (aarch64_vector_costs::unrolled_advsimd_stmts): Likewise. 30362 (aarch64_record_potential_advsimd_unrolling): New function. 30363 (aarch64_analyze_loop_vinfo, aarch64_analyze_bb_vinfo): Likewise. 30364 (aarch64_add_stmt_cost): Call aarch64_analyze_loop_vinfo or 30365 aarch64_analyze_bb_vinfo on the first use of a costs structure. 30366 Detect whether we're vectorizing a loop for SVE that might be 30367 completely unrolled if it used Advanced SIMD instead. 30368 (aarch64_adjust_body_cost_for_latency): New function. 30369 (aarch64_finish_cost): Call it. 30370 303712021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30372 30373 * config/aarch64/aarch64.c (aarch64_vector_costs): New structure. 30374 (aarch64_init_cost): New function. 30375 (aarch64_add_stmt_cost): Use aarch64_vector_costs instead of 30376 the default unsigned[3]. 30377 (aarch64_finish_cost, aarch64_destroy_cost_data): New functions. 30378 (TARGET_VECTORIZE_INIT_COST): Override. 30379 (TARGET_VECTORIZE_FINISH_COST): Likewise. 30380 (TARGET_VECTORIZE_DESTROY_COST_DATA): Likewise. 30381 303822021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30383 30384 * config/aarch64/aarch64.c (neoversev1_advsimd_vector_cost) 30385 (neoversev1_sve_vector_cost): New cost structures. 30386 (neoversev1_vector_cost): Likewise. 30387 (neoversev1_tunings): Use them. Enable use_new_vector_costs. 30388 303892021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30390 30391 * config/aarch64/aarch64-protos.h 30392 (sve_vec_cost::scatter_store_elt_cost): New member variable. 30393 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update 30394 accordingly, taking the cost from the cost of a scalar_store. 30395 (a64fx_sve_vector_cost): Likewise. 30396 (aarch64_detect_vector_stmt_subtype): Detect scatter stores. 30397 303982021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30399 30400 * config/aarch64/aarch64-protos.h 30401 (simd_vec_cost::store_elt_extra_cost): New member variable. 30402 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update 30403 accordingly, using the vec_to_scalar cost for the new field. 30404 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. 30405 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. 30406 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. 30407 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) 30408 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) 30409 (thunderx3t110_advsimd_vector_cost): Likewise. 30410 (aarch64_detect_vector_stmt_subtype): Detect single-element stores. 30411 304122021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30413 30414 * config/aarch64/aarch64-protos.h (simd_vec_cost::ld2_st2_permute_cost) 30415 (simd_vec_cost::ld3_st3_permute_cost): New member variables. 30416 (simd_vec_cost::ld4_st4_permute_cost): Likewise. 30417 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update 30418 accordingly, using zero for the new costs. 30419 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. 30420 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. 30421 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. 30422 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) 30423 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) 30424 (thunderx3t110_advsimd_vector_cost): Likewise. 30425 (aarch64_ld234_st234_vectors): New function. 30426 (aarch64_adjust_stmt_cost): Likewise. 30427 (aarch64_add_stmt_cost): Call aarch64_adjust_stmt_cost if using 30428 the new vector costs. 30429 304302021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30431 30432 * config/aarch64/aarch64-protos.h (sve_vec_cost): Turn into a 30433 derived class of simd_vec_cost. Add information about CLAST[AB] 30434 and FADDA instructions. 30435 * config/aarch64/aarch64.c (generic_sve_vector_cost): Update 30436 accordingly, using the vec_to_scalar costs for the new fields. 30437 (a64fx_sve_vector_cost): Likewise. 30438 (aarch64_reduc_type): New function. 30439 (aarch64_sve_in_loop_reduction_latency): Likewise. 30440 (aarch64_detect_vector_stmt_subtype): Take a vinfo parameter. 30441 Use aarch64_sve_in_loop_reduction_latency to handle SVE reductions 30442 that occur in the loop body. 30443 (aarch64_add_stmt_cost): Update call accordingly. 30444 304452021-03-26 Richard Sandiford <richard.sandiford@arm.com> 30446 30447 * config/aarch64/aarch64-tuning-flags.def (use_new_vector_costs): 30448 New tuning flag. 30449 * config/aarch64/aarch64-protos.h (simd_vec_cost): Put comments 30450 above the fields rather than to the right. 30451 (simd_vec_cost::reduc_i8_cost): New member variable. 30452 (simd_vec_cost::reduc_i16_cost): Likewise. 30453 (simd_vec_cost::reduc_i32_cost): Likewise. 30454 (simd_vec_cost::reduc_i64_cost): Likewise. 30455 (simd_vec_cost::reduc_f16_cost): Likewise. 30456 (simd_vec_cost::reduc_f32_cost): Likewise. 30457 (simd_vec_cost::reduc_f64_cost): Likewise. 30458 * config/aarch64/aarch64.c (generic_advsimd_vector_cost): Update 30459 accordingly, using the vec_to_scalar_cost for the new fields. 30460 (generic_sve_vector_cost, a64fx_advsimd_vector_cost): Likewise. 30461 (a64fx_sve_vector_cost, qdf24xx_advsimd_vector_cost): Likewise. 30462 (thunderx_advsimd_vector_cost, tsv110_advsimd_vector_cost): Likewise. 30463 (cortexa57_advsimd_vector_cost, exynosm1_advsimd_vector_cost) 30464 (xgene1_advsimd_vector_cost, thunderx2t99_advsimd_vector_cost) 30465 (thunderx3t110_advsimd_vector_cost): Likewise. 30466 (aarch64_use_new_vector_costs_p): New function. 30467 (aarch64_simd_vec_costs): New function, split out from... 30468 (aarch64_builtin_vectorization_cost): ...here. 30469 (aarch64_is_reduction): New function. 30470 (aarch64_detect_vector_stmt_subtype): Likewise. 30471 (aarch64_add_stmt_cost): Call aarch64_detect_vector_stmt_subtype if 30472 using the new vector costs. 30473 304742021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> 30475 30476 PR ipa/99466 30477 * tree-emutls.c (get_emutls_init_templ_addr): Mark initializer of weak 30478 TLS declarations as public. 30479 304802021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> 30481 30482 * config/aarch64/aarch64-d.c (IN_TARGET_CODE): Define. 30483 * config/arm/arm-d.c (IN_TARGET_CODE): Likewise. 30484 * config/i386/i386-d.c (IN_TARGET_CODE): Likewise. 30485 * config/mips/mips-d.c (IN_TARGET_CODE): Likewise. 30486 * config/pa/pa-d.c (IN_TARGET_CODE): Likewise. 30487 * config/riscv/riscv-d.c (IN_TARGET_CODE): Likewise. 30488 * config/rs6000/rs6000-d.c (IN_TARGET_CODE): Likewise. 30489 * config/s390/s390-d.c (IN_TARGET_CODE): Likewise. 30490 * config/sparc/sparc-d.c (IN_TARGET_CODE): Likewise. 30491 304922021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> 30493 30494 PR d/91595 30495 * config.gcc (*-*-cygwin*): Add winnt-d.o 30496 (*-*-mingw*): Likewise. 30497 * config/i386/cygwin.h (EXTRA_TARGET_D_OS_VERSIONS): New macro. 30498 * config/i386/mingw32.h (EXTRA_TARGET_D_OS_VERSIONS): Likewise. 30499 * config/i386/t-cygming: Add winnt-d.o. 30500 * config/i386/winnt-d.c: New file. 30501 305022021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> 30503 30504 * config/freebsd-d.c: Include memmodel.h. 30505 305062021-03-26 Iain Buclaw <ibuclaw@gdcproject.org> 30507 30508 PR d/99691 30509 * config.gcc (*-*-openbsd*): Add openbsd-d.o. 30510 * config/t-openbsd: Add openbsd-d.o. 30511 * config/openbsd-d.c: New file. 30512 305132021-03-25 Stam Markianos-Wright <stam.markianos-wright@arm.com> 30514 30515 PR tree-optimization/96974 30516 * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Replace assert 30517 with graceful exit. 30518 305192021-03-25 H.J. Lu <hjl.tools@gmail.com> 30520 30521 Revert: 30522 2021-03-25 H.J. Lu <hjl.tools@gmail.com> 30523 30524 PR target/98209 30525 PR target/99744 30526 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for 30527 always_inline in system headers. 30528 305292021-03-25 Kewen Lin <linkw@linux.ibm.com> 30530 30531 * tree-vect-loop.c (vect_model_reduction_cost): Init inside_cost. 30532 305332021-03-25 Jakub Jelinek <jakub@redhat.com> 30534 30535 PR c++/99565 30536 * tree-core.h (enum operand_equal_flag): Add OEP_ADDRESS_OF_SAME_FIELD. 30537 * fold-const.c (operand_compare::operand_equal_p): Don't compare 30538 field offsets if OEP_ADDRESS_OF_SAME_FIELD. 30539 305402021-03-25 H.J. Lu <hjl.tools@gmail.com> 30541 30542 PR target/98209 30543 PR target/99744 30544 * config/i386/i386.c (ix86_can_inline_p): Don't check ISA for 30545 always_inline in system headers. 30546 305472021-03-25 Richard Biener <rguenther@suse.de> 30548 30549 PR tree-optimization/99746 30550 * tree-vect-slp-patterns.c (complex_pattern::build): Do not mark 30551 the scalar stmt as patterned. Instead set up required things 30552 manually. 30553 305542021-03-25 Xionghu Luo <luoxhu@linux.ibm.com> 30555 30556 * config/rs6000/rs6000.c (power8_costs): Change l2 cache 30557 from 256 to 512. 30558 305592021-03-24 Martin Liska <mliska@suse.cz> 30560 30561 PR target/99753 30562 * common/config/i386/i386-common.c (ARRAY_SIZE): Fix off-by-one 30563 error. 30564 * config/i386/i386-options.c (ix86_option_override_internal): 30565 Add run-time assert. 30566 305672021-03-24 Martin Jambor <mjambor@suse.cz> 30568 30569 PR ipa/99122 30570 * ipa-cp.c (initialize_node_lattices): Mark as bottom all 30571 parameters with unknown type. 30572 (ipacp_value_safe_for_type): New function. 30573 (propagate_vals_across_arith_jfunc): Verify that the constant type 30574 can be used for a type of the formal parameter. 30575 (propagate_vals_across_ancestor): Likewise. 30576 (propagate_scalar_across_jump_function): Likewise. Pass the type 30577 also to propagate_vals_across_ancestor. 30578 305792021-03-24 Christophe Lyon <christophe.lyon@linaro.org> 30580 30581 PR target/99727 30582 * config/arm/mve.md (movmisalign<mode>_mve_store): Use Ux 30583 constraint. 30584 (movmisalign<mode>_mve_load): Likewise. 30585 305862021-03-24 Jakub Jelinek <jakub@redhat.com> 30587 30588 PR target/99724 30589 * config/arm/vec-common.md (one_cmpl<mode>2, neg<mode>2, 30590 movmisalign<mode>): Disable expanders for TARGET_REALLY_IWMMXT. 30591 305922021-03-24 Alexandre Oliva <oliva@adacore.com> 30593 30594 * doc/sourcebuild.texi (sysconf): New effective target. 30595 305962021-03-24 Alexandre Oliva <oliva@adacore.com> 30597 30598 * config/i386/predicates.md (reg_or_const_vec_operand): New. 30599 * config/i386/sse.md (ssse3_pshufbv8qi3): Add an expander for 30600 the now *-prefixed insn_and_split, turn the splitter const vec 30601 into an input for the insn, making it an ignored immediate for 30602 non-split cases, and loaded into the scratch register 30603 otherwise. 30604 306052021-03-23 Vladimir N. Makarov <vmakarov@redhat.com> 30606 30607 PR target/99581 30608 * config/aarch64/constraints.md (Utq, UOb, UOh, UOw, UOd, UOty): 30609 Use define_relaxed_memory_constraint for them. 30610 306112021-03-23 Iain Sandoe <iain@sandoe.co.uk> 30612 30613 PR target/99733 30614 * config/host-darwin.c (darwin_gt_pch_use_address): Add a 30615 colon to the diagnostic message. 30616 306172021-03-23 Ilya Leoshkevich <iii@linux.ibm.com> 30618 30619 * fwprop.c (fwprop_propagation::fwprop_propagation): Look at 30620 set_info's uses. 30621 (try_fwprop_subst_note): Use set_info instead of insn_info. 30622 (try_fwprop_subst_pattern): Likewise. 30623 (try_fwprop_subst_notes): Likewise. 30624 (try_fwprop_subst): Likewise. 30625 (forward_propagate_subreg): Likewise. 30626 (forward_propagate_and_simplify): Likewise. 30627 (forward_propagate_into): Likewise. 30628 * rtl-ssa/accesses.h (set_info::single_nondebug_use) New 30629 method. 30630 (set_info::single_nondebug_insn_use): Likewise. 30631 (set_info::single_phi_use): Likewise. 30632 * rtl-ssa/member-fns.inl (set_info::single_nondebug_use) New 30633 method. 30634 (set_info::single_nondebug_insn_use): Likewise. 30635 (set_info::single_phi_use): Likewise. 30636 306372021-03-23 Christophe Lyon <christophe.lyon@linaro.org> 30638 30639 * doc/sourcebuild.texi (arm_dsp_ok, arm_dsp): Document. 30640 306412021-03-23 Jakub Jelinek <jakub@redhat.com> 30642 30643 PR target/99540 30644 * config/aarch64/aarch64.c (aarch64_add_offset): Tell 30645 expand_mult to perform an unsigned rather than a signed 30646 multiplication. 30647 306482021-03-23 H.J. Lu <hjl.tools@gmail.com> 30649 30650 PR target/99704 30651 * config/i386/cpuid.h (__cpuid): Add __volatile__. 30652 (__cpuid_count): Likewise. 30653 306542021-03-23 Richard Biener <rguenther@suse.de> 30655 30656 PR tree-optimization/99721 30657 * tree-vect-slp.c (vect_slp_analyze_node_operations): 30658 Make sure we can schedule the node. 30659 306602021-03-23 Marcus Comstedt <marcus@mc.pp.se> 30661 30662 * config/riscv/riscv.c (riscv_subword): Take endianness into 30663 account when calculating the byte offset. 30664 306652021-03-23 Marcus Comstedt <marcus@mc.pp.se> 30666 30667 * config/riscv/predicates.md (subreg_lowpart_operator): New predicate 30668 * config/riscv/riscv.md (*addsi3_extended2, *subsi3_extended2) 30669 (*negsi2_extended2, *mulsi3_extended2, *<optab>si3_mask) 30670 (*<optab>si3_mask_1, *<optab>di3_mask, *<optab>di3_mask_1) 30671 (*<optab>si3_extend_mask, *<optab>si3_extend_mask_1): Use 30672 new predicate "subreg_lowpart_operator" 30673 306742021-03-23 Marcus Comstedt <marcus@mc.pp.se> 30675 30676 * config/riscv/riscv.c (riscv_swap_instruction): New function 30677 to byteswap an SImode rtx containing an instruction. 30678 (riscv_trampoline_init): Byteswap the generated instructions 30679 when needed. 30680 306812021-03-23 Marcus Comstedt <marcus@mc.pp.se> 30682 30683 * common/config/riscv/riscv-common.c 30684 (TARGET_DEFAULT_TARGET_FLAGS): Set default endianness. 30685 * config.gcc (riscv32be-*, riscv64be-*): Set 30686 TARGET_BIG_ENDIAN_DEFAULT to 1. 30687 * config/riscv/elf.h (LINK_SPEC): Change -melf* value 30688 depending on default endianness. 30689 * config/riscv/freebsd.h (LINK_SPEC): Likewise. 30690 * config/riscv/linux.h (LINK_SPEC): Likewise. 30691 * config/riscv/riscv.c (TARGET_DEFAULT_TARGET_FLAGS): Set 30692 default endianness. 30693 * config/riscv/riscv.h (DEFAULT_ENDIAN_SPEC): New macro. 30694 306952021-03-23 Marcus Comstedt <marcus@mc.pp.se> 30696 30697 * config/riscv/elf.h (LINK_SPEC): Pass linker endianness flag. 30698 * config/riscv/freebsd.h (LINK_SPEC): Likewise. 30699 * config/riscv/linux.h (LINK_SPEC): Likewise. 30700 * config/riscv/riscv.h (ASM_SPEC): Pass -mbig-endian and 30701 -mlittle-endian. 30702 (BYTES_BIG_ENDIAN): Handle big endian. 30703 (WORDS_BIG_ENDIAN): Define to BYTES_BIG_ENDIAN. 30704 * config/riscv/riscv.opt (-mbig-endian, -mlittle-endian): New 30705 options. 30706 * doc/invoke.texi (-mbig-endian, -mlittle-endian): Document. 30707 307082021-03-23 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 30709 30710 * regcprop.c (find_oldest_value_reg): Ask target whether 30711 different mode is fine for replacement register. 30712 307132021-03-23 Aldy Hernandez <aldyh@redhat.com> 30714 30715 PR tree-optimization/99296 30716 * value-range.cc (irange::irange_set_1bit_anti_range): New. 30717 (irange::irange_set_anti_range): Call irange_set_1bit_anti_range 30718 * value-range.h (irange::irange_set_1bit_anti_range): New. 30719 307202021-03-22 Vladimir N. Makarov <vmakarov@redhat.com> 30721 30722 PR target/99581 30723 * config/aarch64/constraints.md (UtQ): Use 30724 define_relaxed_memory_constraint for it. 30725 * doc/md.texi (define_relaxed_memory_constraint): Describe it. 30726 * genoutput.c (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. 30727 * genpreds.c (constraint_data): Add bitfield is_relaxed_memory. 30728 (have_relaxed_memory_constraints): New static var. 30729 (relaxed_memory_start, relaxed_memory_end): Ditto. 30730 (add_constraint): Add arg is_relaxed_memory. Check name for 30731 relaxed memory. Set up is_relaxed_memory in constraint_data and 30732 have_relaxed_memory_constraints. Adjust calls. 30733 (choose_enum_order): Process relaxed memory. 30734 (write_tm_preds_h): Ditto. 30735 (main): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. 30736 * gensupport.c (process_rtx): Process DEFINE_RELAXED_MEMORY_CONSTRAINT. 30737 * ira-costs.c (record_reg_classes): Process CT_RELAXED_MEMORY. 30738 * ira-lives.c (single_reg_class): Use 30739 insn_extra_relaxed_memory_constraint. 30740 * ira.c (ira_setup_alts): CT_RELAXED_MEMORY. 30741 * lra-constraints.c (valid_address_p): Use 30742 insn_extra_relaxed_memory_constraint instead of other memory 30743 constraints. 30744 (process_alt_operands): Process CT_RELAXED_MEMORY. 30745 (curr_insn_transform): Use insn_extra_relaxed_memory_constraint. 30746 * recog.c (asm_operand_ok, preprocess_constraints): Process 30747 CT_RELAXED_MEMORY. 30748 * reload.c (find_reloads): Ditto. 30749 * rtl.def (DEFINE_RELAXED_MEMORY_CONSTRAINT): New. 30750 * stmt.c (parse_input_constraint): Use 30751 insn_extra_relaxed_memory_constraint. 30752 307532021-03-22 Segher Boessenkool <segher@kernel.crashing.org> 30754 30755 PR target/97926 30756 * ubsan.c (ubsan_instrument_float_cast): Don't test for unordered if 30757 there are no NaNs. 30758 307592021-03-22 Alex Coplan <alex.coplan@arm.com> 30760 30761 PR target/97252 30762 * config/arm/arm-protos.h (neon_make_constant): Add generate 30763 argument to guard emitting insns, default to true. 30764 * config/arm/arm.c (arm_legitimate_constant_p_1): Reject 30765 CONST_VECTORs which neon_make_constant can't handle. 30766 (neon_vdup_constant): Add generate argument, avoid emitting 30767 insns if it's not set. 30768 (neon_make_constant): Plumb new generate argument through. 30769 * config/arm/constraints.md (Ui): New. Use it... 30770 * config/arm/mve.md (*mve_mov<mode>): ... here. 30771 * config/arm/vec-common.md (movv8hf): Use neon_make_constant to 30772 synthesize constants. 30773 307742021-03-22 Richard Biener <rguenther@suse.de> 30775 30776 * debug.h: Add deprecation warning. 30777 307782021-03-22 Richard Biener <rguenther@suse.de> 30779 30780 PR tree-optimization/99694 30781 * tree-ssa-sccvn.c (visit_phi): Ignore edges with the 30782 PHI result. 30783 307842021-03-22 Kito Cheng <kito.cheng@sifive.com> 30785 30786 PR target/99702 30787 * config/riscv/riscv.c (riscv_expand_block_move): Get RTL value 30788 after type checking. 30789 307902021-03-22 Jakub Jelinek <jakub@redhat.com> 30791 30792 PR debug/99562 30793 PR debug/66728 30794 * dwarf2out.c (get_full_len): Use get_precision rather than 30795 min_precision. 30796 (add_const_value_attribute): Make sure add_AT_wide argument has 30797 precision prec rather than some very wide one. 30798 307992021-03-22 Kewen Lin <linkw@linux.ibm.com> 30800 30801 * config/rs6000/rs6000.md (*rotldi3_insert_sf, 30802 *mov<SFDF:mode><SFDF2:mode>cc_p9, floatsi<mode>2_lfiwax, 30803 floatsi<mode>2_lfiwax_mem, floatunssi<mode>2_lfiwzx, 30804 floatunssi<mode>2_lfiwzx_mem, *floatsidf2_internal, 30805 *floatunssidf2_internal, fix_trunc<mode>si2_stfiwx, 30806 fix_trunc<mode>si2_internal, fixuns_trunc<mode>si2_stfiwx, 30807 *round32<mode>2_fprs, *roundu32<mode>2_fprs, 30808 *fix_trunc<mode>si2_internal): Fix empty split condition. 30809 * config/rs6000/vsx.md (*vsx_le_undo_permute_<mode>, 30810 vsx_reduc_<VEC_reduc_name>_v2df, vsx_reduc_<VEC_reduc_name>_v4sf, 30811 *vsx_reduc_<VEC_reduc_name>_v2df_scalar, 30812 *vsx_reduc_<VEC_reduc_name>_v4sf_scalar): Likewise. 30813 308142021-03-22 Xionghu Luo <luoxhu@linux.ibm.com> 30815 30816 PR target/98914 30817 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var_p9): 30818 Convert idx to DImode. 30819 (rs6000_expand_vector_set_var_p8): Likewise. 30820 308212021-03-21 Jakub Jelinek <jakub@redhat.com> 30822 30823 PR debug/99388 30824 * dwarf2out.c (insert_float): Change return type from void to 30825 unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size. 30826 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): 30827 Adjust callers. 30828 308292021-03-20 H.J. Lu <hjl.tools@gmail.com> 30830 30831 PR target/99679 30832 * config/i386/i386.c (construct_container): Check cfun != NULL 30833 before accessing silent_p. 30834 308352021-03-20 Ahamed Husni <ahamedhusni73@gmail.com> 30836 30837 * asan.c: Fix typos in comments. 30838 308392021-03-20 Vladimir N. Makarov <vmakarov@redhat.com> 30840 30841 PR rtl-optimization/99680 30842 * lra-constraints.c (skip_contraint_modifiers): Rename to skip_constraint_modifiers. 30843 (process_address_1): Check empty constraint before using 30844 CONSTRAINT_LEN. 30845 308462021-03-19 Pat Haugen <pthaugen@linux.ibm.com> 30847 30848 * config/rs6000/rs6000.c (power10_cost): New. 30849 (rs6000_option_override_internal): Set Power10 costs. 30850 (rs6000_issue_rate): Set Power10 issue rate. 30851 * config/rs6000/power10.md: Rewrite for Power10. 30852 308532021-03-19 Vladimir N. Makarov <vmakarov@redhat.com> 30854 30855 PR target/99663 30856 * lra-constraints.c (process_address_1): Don't use unknown 30857 constraint for address constraint. 30858 308592021-03-19 Iain Sandoe <iain@sandoe.co.uk> 30860 30861 PR target/99661 30862 * config.gcc (powerpc-*-darwin8): Delete the reference to 30863 the now removed darwin8.h. 30864 308652021-03-19 Olivier Hainque <hainque@adacore.com> 30866 30867 PR target/99660 30868 * config/vxworksae.h (VX_CPU_PREFIX): Define. 30869 308702021-03-19 John David Anglin <danglin@gcc.gnu.org> 30871 30872 * config/pa/pa.c (import_milli): Use memcpy instead of strncpy. 30873 308742021-03-19 Tamar Christina <tamar.christina@arm.com> 30875 30876 PR tree-optimization/99656 30877 * tree-vect-slp-patterns.c (linear_loads_p, 30878 complex_add_pattern::matches, is_eq_or_top, 30879 vect_validate_multiplication, complex_mul_pattern::matches, 30880 complex_fms_pattern::matches): Remove complex_perm_kinds_t. 30881 * tree-vectorizer.h: (complex_load_perm_t): Removed. 30882 (slp_tree_to_load_perm_map_t): Use complex_perm_kinds_t instead of 30883 complex_load_perm_t. 30884 308852021-03-19 H.J. Lu <hjl.tools@gmail.com> 30886 30887 PR target/99652 30888 * config/i386/i386-options.c (ix86_init_machine_status): Set 30889 silent_p to true. 30890 * config/i386/i386.c (init_cumulative_args): Set silent_p to 30891 false. 30892 (construct_container): Return early for return and argument 30893 errors if silent_p is true. 30894 * config/i386/i386.h (machine_function): Add silent_p. 30895 308962021-03-19 Jakub Jelinek <jakub@redhat.com> 30897 30898 PR target/99593 30899 * config/arm/constraints.md (Ds): New constraint. 30900 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): Use w,Ds 30901 constraint instead of w,Dm. 30902 309032021-03-19 Andrew Stubbs <ams@codesourcery.com> 30904 30905 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Fix quotes 30906 in error message. 30907 309082021-03-19 Eric Botcazou <ebotcazou@adacore.com> 30909 30910 PR middle-end/99641 30911 * fold-const.c (native_encode_initializer) <CONSTRUCTOR>: For an 30912 array type, do the computation of the current position in sizetype. 30913 309142021-03-18 Vladimir N. Makarov <vmakarov@redhat.com> 30915 30916 PR target/99422 30917 * lra-constraints.c (process_address_1): Use lookup_constraint 30918 only for a single constraint. 30919 309202021-03-18 Martin Sebor <msebor@redhat.com> 30921 30922 PR middle-end/99502 30923 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): Rename... 30924 (inbounds_memaccess_p): ...to this. Check the ending offset of 30925 the accessed member. 30926 309272021-03-18 Andrew Stubbs <ams@codesourcery.com> 30928 30929 * config/gcn/gcn.c (gcn_parse_amdgpu_hsa_kernel_attribute): Add %< and 30930 %> quote markers to error messages. 30931 (gcn_goacc_validate_dims): Likewise. 30932 (gcn_conditional_register_usage): Remove exclaimation mark from error 30933 message. 30934 (gcn_vectorize_vec_perm_const): Ensure perm is fully uninitialized. 30935 309362021-03-18 Jan Hubicka <hubicka@ucw.cz> 30937 30938 * config/i386/x86-tune-costs.h (struct processor_costs): Fix costs of 30939 integer divides1. 30940 309412021-03-18 Sinan Lin <sinan@isrc.iscas.ac.cn> 30942 Kito Cheng <kito.cheng@sifive.com> 30943 30944 * config/riscv/riscv.c (riscv_block_move_straight): Change type 30945 to unsigned HOST_WIDE_INT for parameter and local variable with 30946 HOST_WIDE_INT type. 30947 (riscv_adjust_block_mem): Ditto. 30948 (riscv_block_move_loop): Ditto. 30949 (riscv_expand_block_move): Ditto. 30950 309512021-03-18 Nick Clifton <nickc@redhat.com> 30952 30953 * config/v850/v850.c (construct_restore_jr): Increase static 30954 buffer size. 30955 (construct_save_jarl): Likewise. 30956 * config/v850/v850.h (DWARF2_DEBUGGING_INFO): Define. 30957 309582021-03-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 30959 30960 * config/aarch64/aarch64.c (aarch64_adjust_generic_arch_tuning): Define. 30961 (aarch64_override_options_internal): Use it. 30962 (generic_tunings): Add AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS to 30963 tune_flags. 30964 309652021-03-17 Sandra Loosemore <sandra@codesourcery.com> 30966 30967 * config/nios2/nios2.c (nios2_custom_check_insns): Clean up 30968 error message format issues. 30969 (nios2_option_override): Likewise. 30970 (nios2_expand_fpu_builtin): Likewise. 30971 (nios2_init_custom_builtins): Adjust to avoid bogus strncpy 30972 truncation warning. 30973 (nios2_expand_custom_builtin): More error message format fixes. 30974 (nios2_expand_rdwrctl_builtin): Likewise. 30975 (nios2_expand_rdprs_builtin): Likewise. 30976 (nios2_expand_eni_builtin): Likewise. 30977 (nios2_expand_builtin): Likewise. 30978 (nios2_register_custom_code): Likewise. 30979 (nios2_valid_target_attribute_rec): Likewise. 30980 (nios2_add_insn_asm): Fix uninitialized variable warning. 30981 309822021-03-17 Jan Hubicka <jh@suse.cz> 30983 30984 * config/i386/x86-tune-costs.h (struct processor_costs): Update costs 30985 of gather to match reality. 30986 * config/i386/x86-tune.def (X86_TUNE_USE_GATHER): Enable for znver3. 30987 309882021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 30989 30990 * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ 30991 to compare against CC_REG rather than NE. 30992 309932021-03-17 H.J. Lu <hjl.tools@gmail.com> 30994 30995 PR target/99504 30996 * config/i386/i386.c (ix86_force_load_from_GOT_p): Support 30997 inline assembly statements. 30998 (ix86_print_operand): Update 'P' handling for -fno-plt. 30999 310002021-03-17 Tamar Christina <tamar.christina@arm.com> 31001 31002 PR target/99542 31003 * config/aarch64/aarch64.c 31004 (aarch64_simd_clone_compute_vecsize_and_simdlen): Remove unused var. 31005 310062021-03-16 Segher Boessenkool <segher@kernel.crashing.org> 31007 31008 PR target/98092 31009 * config/rs6000/predicates.md (branch_comparison_operator): Allow 31010 ordered and unordered for CCFPmode, if flag_finite_math_only. 31011 310122021-03-16 Jakub Jelinek <jakub@redhat.com> 31013 31014 PR target/99600 31015 * config/i386/i386-expand.c (ix86_split_lea_for_addr): Emit a MULT 31016 rather than ASHIFT. 31017 * config/i386/i386.md (mult by 1248 into ashift): New splitter. 31018 310192021-03-16 Martin Liska <mliska@suse.cz> 31020 31021 PR target/99592 31022 * optc-save-gen.awk: Add flag_ipa_ra to exceptions for 31023 cl_optimization_compare function. 31024 310252021-03-16 Ilya Leoshkevich <iii@linux.ibm.com> 31026 31027 * config/s390/s390.c (f_constraint_p): Treat "fv" constraints 31028 as "v". 31029 310302021-03-16 Jakub Jelinek <jakub@redhat.com> 31031 31032 PR target/99563 31033 * config/i386/i386.h (struct machine_function): Add 31034 has_explicit_vzeroupper bitfield. 31035 * config/i386/i386-expand.c (ix86_expand_builtin): Set 31036 cfun->machine->has_explicit_vzeroupper when expanding 31037 IX86_BUILTIN_VZEROUPPER. 31038 * config/i386/i386-features.c (rest_of_handle_insert_vzeroupper): 31039 Do the mode switching only when TARGET_VZEROUPPER, expensive 31040 optimizations turned on and not optimizing for size. 31041 (pass_insert_vzeroupper::gate): Enable even when 31042 cfun->machine->has_explicit_vzeroupper is set. 31043 310442021-03-16 Jakub Jelinek <jakub@redhat.com> 31045 31046 PR target/99542 31047 * config/aarch64/aarch64.c 31048 (aarch64_simd_clone_compute_vecsize_and_simdlen): If not a function 31049 definition, walk TYPE_ARG_TYPES list if non-NULL for argument types 31050 instead of DECL_ARGUMENTS. Ignore types for uniform arguments. 31051 310522021-03-15 Richard Biener <rguenther@suse.de> 31053 31054 PR tree-optimization/98834 31055 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle missing 31056 subsetting by truncating the access size. 31057 310582021-03-15 Jan Hubicka <hubicka@ucw.cz> 31059 31060 * config/i386/i386-options.c (processor_cost_table): Add znver3_cost. 31061 * config/i386/x86-tune-costs.h (znver3_cost): New gobal variable; copy 31062 of znver2_cost. 31063 310642021-03-15 Martin Liska <mliska@suse.cz> 31065 31066 * spellcheck.c: Add missing comma in initialization. 31067 310682021-03-14 Uro�� Bizjak <ubizjak@gmail.com> 31069 31070 * config/i386/sse.md (*vec_extract<mode>): Merge alternative 0 with 31071 alternative 2 and alternative 1 with alternative 3 using 31072 YW register constraint. 31073 (*vec_extract<PEXTR_MODE12:mode>_zext): Merge alternatives 31074 using YW register constraint. 31075 (*vec_extractv16qi_zext): Ditto. 31076 (*vec_extractv4si): Merge alternatives 4 and 5 31077 using Yw register constraint. 31078 (*ssse3_palignr<mode>_perm): Use Yw instead of v for alternative 3. 31079 310802021-03-13 Martin Sebor <msebor@redhat.com> 31081 31082 PR tree-optimization/99489 31083 * builtins.c (gimple_call_alloc_size): Fail gracefully when argument 31084 is not a call statement. 31085 310862021-03-13 Jakub Jelinek <jakub@redhat.com> 31087 31088 PR tree-optimization/99544 31089 * match.pd (X + (X << C) -> X * (1 + (1 << C))): Don't simplify 31090 if for vector types multiplication can't be done in type's mode. 31091 310922021-03-12 Eric Botcazou <ebotcazou@adacore.com> 31093 31094 PR target/99422 31095 * config/sparc/constraints.md (w): Rename to... 31096 (W): ... this and ditch previous implementation. 31097 * config/sparc/sparc.md (*movdi_insn_sp64): Replace W with m. 31098 (*movdf_insn_sp64): Likewise. 31099 (*mov<VM64:mode>_insn_sp64): Likewise. 31100 * config/sparc/sync.md (*atomic_compare_and_swap<mode>_1): Replace 31101 w with W. 31102 (atomic_compare_and_swap_leon3_1): Likewise. 31103 (*atomic_compare_and_swapdi_v8plus): Likewise. 31104 * config/sparc/sparc.c (memory_ok_for_ldd): Remove useless test on 31105 architecture and add missing address validity check during LRA. 31106 311072021-03-12 Tobias Burnus <tobias@codesourcery.com> 31108 31109 PR fortran/98858 31110 * gimplify.c (omp_add_variable): Handle NULL_TREE as size 31111 occuring for assumed-size arrays in use_device_{ptr,addr}. 31112 311132021-03-12 Jakub Jelinek <jakub@redhat.com> 31114 31115 PR target/99321 31116 * config/i386/constraints.md (YW): New internal constraint. 31117 * config/i386/sse.md (v_Yw): Add V4TI, V2TI, V1TI and TI cases. 31118 (*<sse2_avx2>_<insn><mode>3<mask_name>, 31119 *<sse2_avx2>_uavg<mode>3<mask_name>, *abs<mode>2, 31120 *<s>mul<mode>3_highpart<mask_name>): Use <v_Yw> instead of v in 31121 constraints. 31122 (<sse2_avx2>_psadbw): Use YW instead of v in constraints. 31123 (*avx2_pmaddwd, *sse2_pmaddwd, *<code>v8hi3, *<code>v16qi3, 31124 avx2_pmaddubsw256, ssse3_pmaddubsw128): Merge last two alternatives 31125 into one, use Yw instead of former x,v. 31126 (ashr<mode>3, <insn><mode>3): Use <v_Yw> instead of x in constraints of 31127 the last alternative. 31128 (<sse2_avx2>_packsswb<mask_name>, <sse2_avx2>_packssdw<mask_name>, 31129 <sse2_avx2>_packuswb<mask_name>, <sse4_1_avx2>_packusdw<mask_name>, 31130 *<ssse3_avx2>_pmulhrsw<mode>3<mask_name>, <ssse3_avx2>_palignr<mode>, 31131 <ssse3_avx2>_pshufb<mode>3<mask_name>): Merge last two alternatives 31132 into one, use <v_Yw> instead of former x,v. 31133 (avx2_interleave_highv32qi<mask_name>, 31134 vec_interleave_highv16qi<mask_name>): Use Yw instead of v in 31135 constraints. Add && <mask_avx512bw_condition> to condition. 31136 (avx2_interleave_lowv32qi<mask_name>, 31137 vec_interleave_lowv16qi<mask_name>, 31138 avx2_interleave_highv16hi<mask_name>, 31139 vec_interleave_highv8hi<mask_name>, 31140 avx2_interleave_lowv16hi<mask_name>, vec_interleave_lowv8hi<mask_name>, 31141 avx2_pshuflw_1<mask_name>, sse2_pshuflw_1<mask_name>, 31142 avx2_pshufhw_1<mask_name>, sse2_pshufhw_1<mask_name>, 31143 avx2_<code>v16qiv16hi2<mask_name>, sse4_1_<code>v8qiv8hi2<mask_name>, 31144 *sse4_1_<code>v8qiv8hi2<mask_name>_1, <sse2_avx2>_<insn><mode>3): Use 31145 Yw instead of v in constraints. 31146 * config/i386/mmx.md (Yv_Yw): New define_mode_attr. 31147 (*mmx_<insn><mode>3, mmx_ashr<mode>3, mmx_<insn><mode>3): Use <Yv_Yw> 31148 instead of Yv in constraints. 31149 (*mmx_<insn><mode>3, *mmx_mulv4hi3, *mmx_smulv4hi3_highpart, 31150 *mmx_umulv4hi3_highpart, *mmx_pmaddwd, *mmx_<code>v4hi3, 31151 *mmx_<code>v8qi3, mmx_pack<s_trunsuffix>swb, mmx_packssdw, 31152 mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd, 31153 *mmx_uavgv8qi3, *mmx_uavgv4hi3, mmx_psadbw): Use Yw instead of Yv in 31154 constraints. 31155 (*mmx_pinsrw, *mmx_pinsrb, *mmx_pextrw, *mmx_pextrw_zext, *mmx_pextrb, 31156 *mmx_pextrb_zext): Use YW instead of Yv in constraints. 31157 (*mmx_eq<mode>3, mmx_gt<mode>3): Use x instead of Yv in constraints. 31158 (mmx_andnot<mode>3, *mmx_<code><mode>3): Split last alternative into 31159 two, one with just x, another isa avx512vl with v. 31160 311612021-03-12 Martin Liska <mliska@suse.cz> 31162 31163 * doc/invoke.texi: Add missing param documentation. 31164 311652021-03-11 David Malcolm <dmalcolm@redhat.com> 31166 31167 PR analyzer/96374 31168 * Makefile.in (ANALYZER_OBJS): Add analyzer/feasible-graph.o and 31169 analyzer/trimmed-graph.o. 31170 * doc/analyzer.texi (Analyzer Paths): Rewrite description of 31171 feasibility checking to reflect new implementation. 31172 * doc/invoke.texi (-fdump-analyzer-feasibility): Document new 31173 option. 31174 * shortest-paths.h (shortest_paths::get_shortest_distance): New. 31175 311762021-03-11 David Malcolm <dmalcolm@redhat.com> 31177 31178 * digraph.cc (selftest::test_shortest_paths): Update 31179 shortest_paths init for new param. Add test of 31180 SPS_TO_GIVEN_TARGET. 31181 * shortest-paths.h (enum shortest_path_sense): New. 31182 (shortest_paths::shortest_paths): Add "sense" param. 31183 Update for renamings. Generalize to use "sense" param. 31184 (shortest_paths::get_shortest_path): Rename param. 31185 (shortest_paths::m_sense): New field. 31186 (shortest_paths::m_prev): Rename... 31187 (shortest_paths::m_best_edge): ...to this. 31188 (shortest_paths::get_shortest_path): Update for renamings. 31189 Conditionalize flipping of path on sense of traversal. 31190 311912021-03-11 David Malcolm <dmalcolm@redhat.com> 31192 31193 * digraph.cc (selftest::test_shortest_paths): Add test coverage 31194 for paths from B and C. 31195 * shortest-paths.h (shortest_paths::shortest_paths): Handle 31196 unreachable nodes, rather than asserting. 31197 311982021-03-11 David Edelsohn <dje.gcc@gmail.com> 31199 31200 PR target/99094 31201 * config/rs6000/rs6000.c (rs6000_xcoff_file_start): Don't create 31202 xcoff_tbss_section_name. 31203 * config/rs6000/xcoff.h (ASM_OUTPUT_TLS_COMMON): Use .lcomm. 31204 * xcoffout.c (xcoff_tbss_section_name): Delete. 31205 * xcoffout.h (xcoff_tbss_section_name): Delete. 31206 312072021-03-11 Richard Biener <rguenther@suse.de> 31208 31209 PR tree-optimization/99523 31210 * tree-cfg.c (dump_function_to_file): Dump SSA names 31211 w/o identifier to the decls section as well, not only those 31212 without a VAR_DECL. 31213 312142021-03-11 Jakub Jelinek <jakub@redhat.com> 31215 31216 PR ipa/99517 31217 * ipa-icf-gimple.c (func_checker::compare_gimple_call): For internal 31218 function calls with lhs fail if the lhs don't have compatible types. 31219 312202021-03-11 Hans-Peter Nilsson <hp@axis.com> 31221 31222 * config/cris/cris.h (HARD_FRAME_POINTER_REGNUM): Define. 31223 Change FRAME_POINTER_REGNUM to correspond to a new faked 31224 register faked_fp, part of GENNONACR_REGS like faked_ap. 31225 (CRIS_FAKED_REGS_CONTENTS): New helper macro. 31226 (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS): 31227 (REG_ALLOC_ORDER, REG_CLASS_CONTENTS, REGNO_OK_FOR_BASE_P) 31228 (ELIMINABLE_REGS, REGISTER_NAMES): Adjust accordingly. 31229 * config/cris/cris.md (CRIS_FP_REGNUM): Renumber to new faked 31230 register. 31231 (CRIS_REAL_FP_REGNUM): New constant. 31232 * config/cris/cris.c (cris_reg_saved_in_regsave_area): Check 31233 for HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM. 31234 (cris_initial_elimination_offset): Handle elimination changes 31235 to HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM 31236 and add one from FRAME_POINTER_REGNUM to 31237 HARD_FRAME_POINTER_REGNUM. 31238 (cris_expand_prologue, cris_expand_epilogue): Emit code for 31239 hard_frame_pointer_rtx instead of frame_pointer_rtx. 31240 312412021-03-10 David Edelsohn <dje.gcc@gmail.com> 31242 31243 PR target/99492 31244 * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Add check for DCmode. 31245 * config/rs6000/rs6000.c (rs6000_special_round_type_align): Same. 31246 312472021-03-10 Vladimir N. Makarov <vmakarov@redhat.com> 31248 31249 PR target/99422 31250 * lra-constraints.c (process_address_1): Don't check unknown 31251 constraint, use X for empty constraint. 31252 312532021-03-10 Alex Coplan <alex.coplan@arm.com> 31254 31255 * config/aarch64/aarch64.c (aarch64_vfp_is_call_or_return_candidate): 31256 Fix typo in comment describing "is_ha" argument. 31257 312582021-03-10 John David Anglin <danglin@gcc.gnu.org> 31259 31260 * doc/sourcebuild.texi: Document LRA target selector. 31261 312622021-03-10 David Malcolm <dmalcolm@redhat.com> 31263 31264 * doc/ux.texi: Add subsection contrasting interactive versus 31265 batch usage of GCC. 31266 312672021-03-10 Joel Hutton <joel.hutton@arm.com> 31268 31269 PR target/99102 31270 * tree-vect-stmts.c (vectorizable_store): Fix scatter store mask 31271 check condition. 31272 (vectorizable_load): Fix gather load mask check condition. 31273 312742021-03-10 Richard Biener <rguenther@suse.de> 31275 31276 PR tree-optimization/99510 31277 * tree.c (check_aligned_type): Check that the candidate 31278 has TYPE_USER_ALIGN set instead of matching with the 31279 original type. 31280 312812021-03-10 Eric Botcazou <ebotcazou@adacore.com> 31282 31283 * config/sparc/sparc.c (sparc_regmode_natural_size): Return 4 for 31284 float and vector integer modes only if the mode is not larger. 31285 312862021-03-10 Hans-Peter Nilsson <hp@axis.com> 31287 31288 * config/cris/cris.h (DWARF_FRAME_REGISTERS): Define. 31289 312902021-03-09 Vladimir N. Makarov <vmakarov@redhat.com> 31291 31292 * ira.c (ira_setup_alts, ira_get_dup_out_num): Process digital 31293 constraints > 9. 31294 * ira-lives.c (single_reg_class): Ditto. 31295 312962021-03-09 Sebastian Huber <sebastian.huber@embedded-brains.de> 31297 31298 * config.gcc (aarch64-*-rtems*): Include general rtems.h after 31299 the architecture-specific rtems.h. 31300 (aarch64-*-rtems*): Likewise. 31301 (arm*-*-rtems*): Likewise. 31302 (epiphany-*-rtems*): Likewise. 31303 (riscv*-*-rtems*): Likewise. 31304 313052021-03-09 Jakub Jelinek <jakub@redhat.com> 31306 31307 PR tree-optimization/99305 31308 * tree-ssa-phiopt.c (conditional_replacement): Test integer_pow2p 31309 before integer_all_onesp instead of vice versa. 31310 313112021-03-09 Richard Earnshaw <rearnsha@arm.com> 31312 31313 * common/config/arm/arm-common.c (arm_config_default): Change type 31314 of 'i' to unsigned. 31315 313162021-03-09 Vladimir N. Makarov <vmakarov@redhat.com> 31317 31318 PR target/99454 31319 * lra-constraints.c (process_address_1): Process constraint 'g' 31320 separately and digital constraints containing more one digit. 31321 313222021-03-09 Nick Clifton <nickc@redhat.com> 31323 31324 * config/rx/rx.h (DBX_DEBUGGING_INFO): Define. 31325 (DWARF"_DEBUGGING_INFO): Define. 31326 313272021-03-09 Eric Botcazou <ebotcazou@adacore.com> 31328 31329 PR c++/90448 31330 * calls.c (initialize_argument_information): When the argument 31331 is passed by reference, do not make a copy in a thunk only if 31332 the argument is already in memory. Remove redundant test for 31333 the case of callee copy. 31334 313352021-03-09 Vladimir N. Makarov <vmakarov@redhat.com> 31336 31337 PR target/99454 31338 * lra-constraints.c (process_address_1): Process 0..9 constraints 31339 in process_address_1. 31340 313412021-03-09 Andreas Krebbel <krebbel@linux.ibm.com> 31342 31343 * config/s390/s390.c (struct s390_processor processor_table): 31344 Binutils name string must not be empty. 31345 313462021-03-09 Claudiu Zissulescu <claziss@synopsys.com> 31347 31348 * config/arc/arc.c (arc_attr_type): Remove function. 31349 313502021-03-09 Martin Liska <mliska@suse.cz> 31351 31352 PR target/99464 31353 * config/i386/i386-options.c (ix86_option_override_internal): 31354 Set isa_flags for OPTS argument and not for the global 31355 global_options. 31356 313572021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com> 31358 31359 * config/rs6000/predicates.md (ds_form_mem_operand): Check 31360 in correct code. 31361 313622021-03-09 Aaron Sawdey <acsawdey@linux.ibm.com> 31363 31364 PR target/99070 31365 * config/rs6000/predicates.md (ds_form_mem_operand) New 31366 predicate. 31367 * config/rs6000/genfusion.pl (gen_ld_cmpi_p10) Use 31368 ds_form_mem_operand in ld/lwa patterns. 31369 * config/rs6000/fusion.md: Regenerate file. 31370 313712021-03-08 Martin Sebor <msebor@redhat.com> 31372 31373 PR middle-end/98266 31374 * gimple-array-bounds.cc (inbounds_vbase_memaccess_p): New function. 31375 (array_bounds_checker::check_array_bounds): Call it. 31376 313772021-03-08 Martin Sebor <msebor@redhat.com> 31378 31379 PR middle-end/97631 31380 * tree-ssa-strlen.c (maybe_warn_overflow): Test rawmem. 31381 (handle_builtin_stxncpy_strncat): Rename locals. Determine 31382 destination size from allocation calls. Issue a more appropriate 31383 kind of warning. 31384 (handle_builtin_memcpy): Pass true as rawmem to maybe_warn_overflow. 31385 (handle_builtin_memset): Same. 31386 313872021-03-08 Peter Bergner <bergner@linux.ibm.com> 31388 31389 PR target/98959 31390 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_permute): Add an assert 31391 to ensure we do not have an Altivec style address. 31392 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): Disable if passed 31393 an Altivec style address. 31394 (*vsx_le_perm_store_<mode>): Likewise. 31395 (splitters after *vsx_le_perm_store_<mode>): Likewise. 31396 (vsx_load_<mode>): Disable special expander if passed an Altivec 31397 style address. 31398 (vsx_store_<mode>): Likewise. 31399 314002021-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 31401 31402 PR target/99437 31403 * config/aarch64/predicates.md (aarch64_simd_shift_imm_vec_qi): Define. 31404 (aarch64_simd_shift_imm_vec_hi): Likewise. 31405 (aarch64_simd_shift_imm_vec_si): Likewise. 31406 (aarch64_simd_shift_imm_vec_di): Likewise. 31407 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): Use 31408 predicate from above. 31409 (aarch64_shrn<mode>_insn_be): Likewise. 31410 (aarch64_rshrn<mode>_insn_le): Likewise. 31411 (aarch64_rshrn<mode>_insn_be): Likewise. 31412 (aarch64_shrn2<mode>_insn_le): Likewise. 31413 (aarch64_shrn2<mode>_insn_be): Likewise. 31414 (aarch64_rshrn2<mode>_insn_le): Likewise. 31415 (aarch64_rshrn2<mode>_insn_be): Likewise. 31416 314172021-03-08 Vladimir N. Makarov <vmakarov@redhat.com> 31418 31419 PR target/99422 31420 * lra-constraints.c (skip_contraint_modifiers): New function. 31421 (process_address_1): Use it before lookup_constraint call. 31422 314232021-03-08 Martin Liska <mliska@suse.cz> 31424 31425 PR target/99463 31426 * config/i386/i386-options.c (ix86_option_override_internal): 31427 Enable UINTR and HRESET for -march that supports it. 31428 314292021-03-08 Ilya Leoshkevich <iii@linux.ibm.com> 31430 31431 * config/s390/s390.c (f_constraint_p): New function. 31432 (s390_md_asm_adjust): Implement TARGET_MD_ASM_ADJUST. 31433 (TARGET_MD_ASM_ADJUST): Likewise. 31434 314352021-03-08 Tobias Burnus <tobias@codesourcery.com> 31436 31437 PR fortran/97927 31438 * tree-nested.c (convert_local_reference_stmt): Avoid calling 31439 lookup_field_for_decl for Fortran module (= namespace context). 31440 314412021-03-08 Andreas Krebbel <krebbel@linux.ibm.com> 31442 31443 * config/s390/s390.c (s390_expand_vec_compare): Implement <0 31444 comparison with arithmetic right shift. 31445 (s390_expand_vcond): No need for a force_reg anymore. 31446 s390_vec_compare will do it. 31447 * config/s390/vector.md ("vec_cmp<mode><tointvec>"): Accept also 31448 immediate operands. 31449 314502021-03-07 Jakub Jelinek <jakub@redhat.com> 31451 31452 PR target/99321 31453 * config/i386/constraints.md (Yw): Use SSE_REGS if TARGET_SSE 31454 but TARGET_AVX512BW or TARGET_AVX512VL is not set. Adjust description 31455 and comment. 31456 * config/i386/sse.md (v_Yw): New define_mode_attr. 31457 (*<insn><mode>3, *mul<mode>3<mask_name>, *avx2_<code><mode>3, 31458 *sse4_1_<code><mode>3<mask_name>): Use <v_Yw> instead of v 31459 in constraints. 31460 * config/i386/mmx.md (mmx_pshufw_1, *vec_dupv4hi): Use Yw instead of 31461 xYw in constraints. 31462 314632021-03-06 Julian Brown <julian@codesourcery.com> 31464 31465 * tree-pretty-print.c (dump_generic_node): Emit non-generic 31466 address space info for aggregates. 31467 314682021-03-06 Hans-Peter Nilsson <hp@axis.com> 31469 31470 * config/cris/cris.h (MAX_FIXED_MODE_SIZE): Don't define. 31471 314722021-03-05 Jakub Jelinek <jakub@redhat.com> 31473 31474 PR middle-end/99322 31475 * tree-cfg.c (bb_to_omp_idx): New variable. 31476 (execute_build_cfg): Release the bb_to_omp_idx vector after 31477 cleanup_tree_cfg returns. 31478 (handle_abnormal_edges): Remove bb_to_omp_idx argument, adjust 31479 for bb_to_omp_idx being a vec<int> instead of pointer to array 31480 of ints. 31481 (make_edges): Remove bb_to_omp_idx local variable, don't pass 31482 it to handle_abnormal_edges, adjust for bb_to_omp_idx being a 31483 vec<int> instead of pointer to array of ints and don't free/release 31484 it at the end. 31485 (remove_bb): When removing a bb and placing forced label somewhere 31486 else, ensure it is put into the same OpenMP region during cfg 31487 pass if possible or to entry successor as fallback. Unregister 31488 bb from bb_to_omp_idx. 31489 314902021-03-05 Vladimir N. Makarov <vmakarov@redhat.com> 31491 31492 PR target/99378 31493 * lra-constraints.c (process_address_1): Skip decomposing address 31494 for asm insn operand with unknown constraint. 31495 314962021-03-05 Martin Jambor <mjambor@suse.cz> 31497 31498 PR ipa/98078 31499 * cgraph.c (cgraph_edge::set_call_stmt): Do not update all 31500 corresponding speculative edges if we are about to resolve 31501 sepculation. Make edge direct (and so resolve speculations) before 31502 removing it from call_site_hash. 31503 (cgraph_edge::make_direct): Relax the initial assert to allow calling 31504 the function on speculative direct edges. 31505 315062021-03-05 Eric Botcazou <ebotcazou@adacore.com> 31507 31508 PR rtl-optimization/99376 31509 * rtlanal.c (nonzero_bits1) <arithmetic operators>: If the number 31510 of low-order zero bits is too large, set the result to 0 directly. 31511 315122021-03-04 Jakub Jelinek <jakub@redhat.com> 31513 31514 PR middle-end/93235 31515 * expmed.c (store_bit_field_using_insv): Return false of xop0 is a 31516 SUBREG and a SUBREG to op_mode can't be created. 31517 315182021-03-04 Alex Coplan <alex.coplan@arm.com> 31519 31520 PR target/99381 31521 * config/aarch64/aarch64-sve-builtins.cc 31522 (function_resolver::require_vector_type): Handle error_mark_node. 31523 315242021-03-04 Ilya Leoshkevich <iii@linux.ibm.com> 31525 31526 * cfgexpand.c (expand_asm_loc): Pass new parameter. 31527 (expand_asm_stmt): Likewise. 31528 * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Add new 31529 parameter. 31530 * config/arm/aarch-common.c (arm_md_asm_adjust): Likewise. 31531 * config/arm/arm.c (thumb1_md_asm_adjust): Likewise. 31532 * config/cris/cris.c (cris_md_asm_adjust): Likewise. 31533 * config/i386/i386.c (ix86_md_asm_adjust): Likewise. 31534 * config/mn10300/mn10300.c (mn10300_md_asm_adjust): Likewise. 31535 * config/nds32/nds32.c (nds32_md_asm_adjust): Likewise. 31536 * config/pdp11/pdp11.c (pdp11_md_asm_adjust): Likewise. 31537 * config/rs6000/rs6000.c (rs6000_md_asm_adjust): Likewise. 31538 * config/vax/vax.c (vax_md_asm_adjust): Likewise. 31539 * config/visium/visium.c (visium_md_asm_adjust): Likewise. 31540 * doc/tm.texi (md_asm_adjust): Likewise. 31541 * target.def (md_asm_adjust): Likewise. 31542 315432021-03-04 Richard Biener <rguenther@suse.de> 31544 31545 PR middle-end/97855 31546 * tree-pretty-print.c: Poison pp_printf. 31547 (dump_decl_name): Avoid use of pp_printf. 31548 (dump_block_node): Likewise. 31549 (dump_generic_node): Likewise. 31550 315512021-03-04 Martin Sebor <msebor@redhat.com> 31552 31553 PR middle-end/96963 31554 PR middle-end/94655 31555 * builtins.c (handle_array_ref): New helper. 31556 (handle_mem_ref): New helper. 31557 (compute_objsize_r): Factor out ARRAY_REF and MEM_REF handling 31558 into new helper functions. Correct a workaround for vectorized 31559 assignments. 31560 315612021-03-03 Pat Haugen <pthaugen@linux.ibm.com> 31562 31563 * config/rs6000/dfp.md (extendddtd2, trunctddd2, *cmp<mode>_internal1, 31564 floatditd2, ftrunc<mode>2, fix<mode>di2, dfp_ddedpd_<mode>, 31565 dfp_denbcd_<mode>, dfp_dxex_<mode>, dfp_diex_<mode>, 31566 *dfp_sgnfcnc_<mode>, dfp_dscli_<mode>, dfp_dscri_<mode>): Update size 31567 attribute for Power10. 31568 * config/rs6000/mma.md (*movoo): Likewise. 31569 * config/rs6000/rs6000.md (define_attr "size"): Add 256. 31570 (define_mode_attr bits): Add DD/TD modes. 31571 * config/rs6000/sync.md (load_quadpti, store_quadpti, load_lockedpti, 31572 store_conditionalpti): Update size attribute for Power10. 31573 315742021-03-03 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 31575 31576 PR bootstrap/92002 31577 * config/sparc/t-sparc (tree-ssanames.o-warn): Don't error for 31578 -Wuninitialized, -Wmaybe-uninitialized. 31579 (wide-int.o-warn): Likewise. 31580 315812021-03-03 Richard Earnshaw <rearnsha@arm.com> 31582 31583 * common/config/arm/arm-common.c: Include configargs.h. 31584 (arm_config_default): New function. 31585 (arm_target_mode): Renamed from arm_target_thumb_only. Handle 31586 processors that do not support Thumb. Take into account the 31587 --with-mode configuration setting for selecting the default. 31588 * config/arm/arm.h (OPTION_DEFAULT_SPECS): Remove entry for 'mode'. 31589 (TARGET_MODE_SPEC_FUNCTIONS): Update for function name change. 31590 315912021-03-03 Martin Liska <mliska@suse.cz> 31592 31593 PR gcov-profile/97461 31594 * gcov-io.h (GCOV_PREALLOCATED_KVP): Remove. 31595 315962021-03-03 Eric Botcazou <ebotcazou@adacore.com> 31597 31598 PR target/99234 31599 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, 31600 point back the hard frame pointer to its default location when the 31601 frame is larger than SEH_MAX_FRAME_SIZE. 31602 316032021-03-03 Jakub Jelinek <jakub@redhat.com> 31604 31605 PR target/99321 31606 * config/i386/predicates.md (logic_operator): New define_predicate. 31607 * config/i386/i386.md (mov + mem using comm arith peephole2): 31608 Punt if operands[1] is EXT_REX_SSE_REGNO_P, AVX512BW is not enabled 31609 and the inner mode is [QH]Imode. 31610 316112021-03-03 Jakub Jelinek <jakub@redhat.com> 31612 31613 PR debug/99090 31614 * dwarf2out.c (dw_loc_list_struct): Add end_entry member. 31615 (new_loc_list): Clear end_entry. 31616 (output_loc_list): Only use DW_LLE_startx_length for -gsplit-dwarf 31617 if HAVE_AS_LEB128, otherwise use DW_LLE_startx_endx. Fix comment 31618 typo. 31619 (index_location_lists): For dwarf_version >= 5 without HAVE_AS_LEB128, 31620 initialize also end_entry. 31621 316222021-03-03 Jakub Jelinek <jakub@redhat.com> 31623 31624 PR target/99085 31625 * cfgrtl.c (fixup_partitions): When changing some bbs from hot to cold 31626 partitions, if in non-layout mode after reorder_blocks also move 31627 affected blocks to ensure a single partition transition. 31628 316292021-03-03 Jason Merrill <jason@redhat.com> 31630 31631 PR c++/96078 31632 * cgraphunit.c (process_function_and_variable_attributes): Don't 31633 warn about flatten on an alias if the target also has it. 31634 * cgraph.h (symtab_node::get_alias_target_tree): New. 31635 316362021-03-02 David Edelsohn <dje.gcc@gmail.com> 31637 31638 * config/rs6000/rs6000.md (tls_get_tpointer_internal): Prepend 31639 period to symbol name. 31640 (tls_get_addr_internal<mode>): Same. 31641 316422021-03-02 David Malcolm <dmalcolm@redhat.com> 31643 31644 PR c/99323 31645 * diagnostic-show-locus.c 31646 (selftest::test_one_liner_many_fixits_2): Fix accidental usage of 31647 column 0. 31648 316492021-03-02 Martin Sebor <msebor@redhat.com> 31650 31651 PR middle-end/99276 31652 * builtins.c (warn_for_access): Remove stray warning text. 31653 316542021-03-02 Martin Sebor <msebor@redhat.com> 31655 31656 PR middle-end/99295 31657 * doc/extend.texi (attribute malloc): Reword and clarify nonaliasing 31658 property. 31659 316602021-03-02 Jakub Jelinek <jakub@redhat.com> 31661 31662 PR debug/99319 31663 * dwarf2out.c (output_macinfo_op): Use DW_MACRO_*_str* even with 31664 -gdwarf-5 -gstrict-dwarf. For -gsplit-dwarf -gdwarf-5 use 31665 DW_MACRO_*_strx instead of DW_MACRO_*_strp. Handle 31666 DW_MACRO_define_strx and DW_MACRO_undef_strx. 31667 (save_macinfo_strings): Use DW_MACRO_*_str* even with 31668 -gdwarf-5 -gstrict-dwarf. Handle DW_MACRO_define_strx and 31669 DW_MACRO_undef_strx. 31670 316712021-03-02 Andreas Krebbel <krebbel@linux.ibm.com> 31672 31673 * config/s390/s390-builtin-types.def (BT_FN_V4SF_V8HI_UINT): New 31674 builtin signature. 31675 (BT_FN_V8HI_V8HI_UINT): Likewise. 31676 (BT_FN_V8HI_V4SF_V4SF_UINT): Likewise. 31677 * config/s390/s390-builtins.def (B_NNPA): New macro definition. 31678 (s390_vclfnhs, s390_vclfnls, s390_vcrnfs, s390_vcfn, s390_vcnf): 31679 New builtin definitions. 31680 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Bump 31681 vector extension version. 31682 * config/s390/s390.c (s390_expand_builtin): Check if builtins are 31683 available with current -march level. 31684 * config/s390/s390.md (UNSPEC_NNPA_VCLFNHS_V8HI) 31685 (UNSPEC_NNPA_VCLFNLS_V8HI, UNSPEC_NNPA_VCRNFS_V8HI) 31686 (UNSPEC_NNPA_VCFN_V8HI, UNSPEC_NNPA_VCNF_V8HI): New constants. 31687 * config/s390/vecintrin.h (vec_extend_to_fp32_hi): New macro. 31688 (vec_extend_to_fp32_lo): Likewise. 31689 (vec_round_from_fp32): Likewise. 31690 (vec_convert_to_fp16): Likewise. 31691 (vec_convert_from_fp16): Likewise. 31692 * config/s390/vx-builtins.md (vclfnhs_v8hi): New insn pattern. 31693 (vclfnls_v8hi): Likewise. 31694 (vcrnfs_v8hi): Likewise. 31695 (vcfn_v8hi): Likewise. 31696 (vcnf_v8hi): Likewise. 31697 316982021-03-02 Andreas Krebbel <krebbel@linux.ibm.com> 31699 31700 * common/config/s390/s390-common.c (processor_flags_table): New entry. 31701 * config.gcc: Enable arch14 for --with-arch and --with-tune. 31702 * config/s390/driver-native.c (s390_host_detect_local_cpu): Pick 31703 arch14 for unknown CPU models. 31704 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH14. 31705 * config/s390/s390.c (s390_issue_rate): Add case for PROCESSOR_ARCH14. 31706 (s390_get_sched_attrmask): Likewise. 31707 (s390_get_unit_mask): Likewise. 31708 * config/s390/s390.h (enum processor_flags): Add PF_NNPA and PF_ARCH14. 31709 (TARGET_CPU_ARCH14, TARGET_CPU_ARCH14_P, TARGET_CPU_NNPA) 31710 (TARGET_CPU_NNPA_P, TARGET_ARCH14, TARGET_ARCH14_P, TARGET_NNPA) 31711 (TARGET_NNPA_P): New macro definitions. 31712 * config/s390/s390.md ("cpu_facility", "enabled"): Add arch14 and nnpa. 31713 * config/s390/s390.opt: Add PROCESSOR_ARCH14. 31714 317152021-03-02 Jakub Jelinek <jakub@redhat.com> 31716 31717 PR middle-end/95757 31718 * tree-vrp.c (register_edge_assert_for): Remove superfluous ()s around 31719 condition. Call register_edge_assert_for_1 for == 0, != 0, == 1 and 31720 != 1 comparisons if name is lhs of a comparison. 31721 317222021-03-01 Iain Sandoe <iain@sandoe.co.uk> 31723 31724 PR target/44107 31725 PR target/48097 31726 * config/darwin-protos.h (darwin_should_restore_cfa_state): New. 31727 * config/darwin.c (darwin_should_restore_cfa_state): New. 31728 * config/darwin.h (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New. 31729 * doc/tm.texi: Regenerated. 31730 * doc/tm.texi.in: Document TARGET_ASM_SHOULD_RESTORE_CFA_STATE. 31731 * dwarf2cfi.c (connect_traces): If the target requests, restore 31732 the CFA expression after a DW_CFA_restore. 31733 * target.def (TARGET_ASM_SHOULD_RESTORE_CFA_STATE): New hook. 31734 317352021-03-01 Martin Liska <mliska@suse.cz> 31736 31737 PR target/99313 31738 * optc-save-gen.awk: Add 4 more exceptions. 31739 317402021-03-01 Nathan Sidwell <nathan@acm.org> 31741 31742 PR c++/99294 31743 * tree.h (TYPE_ALIGN_RAW): New accessor. 31744 (TYPE_ALIGN): Use it. 31745 317462021-03-01 Jan Hubicka <jh@suse.cz> 31747 31748 PR ipa/98338 31749 * ipa-fnsummary.c (compute_fn_summary): Fix sanity check. 31750 317512021-03-01 Eric Botcazou <ebotcazou@adacore.com> 31752 31753 PR target/99234 31754 * config/i386/i386.c (ix86_compute_frame_layout): For a SEH target, 31755 point the hard frame pointer to the SSE register save area instead 31756 of the general register save area. Perform only minimal adjustment 31757 for small frames if it is initially not correctly aligned. 31758 (ix86_expand_prologue): Remove early saves for a SEH target. 31759 * config/i386/winnt.c (struct seh_frame_state): Document constraint. 31760 317612021-02-28 Jakub Jelinek <jakub@redhat.com> 31762 31763 PR c/99304 31764 * ipa.c (symbol_table::remove_unreachable_nodes): Fix a comment 31765 typo - referneced -> referenced. 31766 * tree.c (component_ref_size): Fix comment typo - 31767 refernce -> reference. 31768 * tree-ssa-alias.c (access_path_may_continue_p): Fix comment typo - 31769 traling -> trailing. 31770 (aliasing_component_refs_p): Fix comment typos - 31771 refernce -> reference and refernece -> reference and 31772 traling -> trailing. 31773 (nonoverlapping_refs_since_match_p): Fix comment typo - 31774 referneces -> references. 31775 * doc/invoke.texi (--param modref-max-bases): Fix a typo - 31776 referneces -> references. 31777 317782021-02-27 Iain Sandoe <iain@sandoe.co.uk> 31779 31780 * config/host-darwin.c (darwin_gt_pch_use_address): Modify 31781 diagnostic message to avoid use of a contraction and format 31782 warning. 31783 317842021-02-27 Jakub Jelinek <jakub@redhat.com> 31785 31786 PR other/99288 31787 * gcse.c (gcse_or_cprop_is_too_expensive): Use %wu instead of 31788 HOST_WIDE_INT_PRINT_UNSIGNED in warning format string. 31789 * ipa-devirt.c (ipa_odr_read_section): Use %wd instead of 31790 HOST_WIDE_INT_PRINT_DEC in inform format string. Fix comment 31791 typos. 31792 317932021-02-26 Richard Biener <rguenther@suse.de> 31794 31795 PR middle-end/99281 31796 * expr.c (store_field): For calls with return-slot optimization 31797 and addressable return type expand the store directly. 31798 317992021-02-26 Richard Biener <rguenther@suse.de> 31800 31801 PR c/99275 31802 * builtins.c (warn_string_no_nul): Fix diagnostic formatting. 31803 318042021-02-26 Peter Bergner <bergner@linux.ibm.com> 31805 31806 PR target/99279 31807 * config/rs6000/rs6000-call.c (rs6000_init_builtins): Replace assert 31808 with an "if" test. 31809 318102021-02-26 Aaron Sawdey <acsawdey@linux.ibm.com> 31811 31812 * config.gcc: Add rs6000-pcrel-opt.o. 31813 * config/rs6000/rs6000-pcrel-opt.c: New file. 31814 * config/rs6000/pcrel-opt.md: New file. 31815 * config/rs6000/predicates.md: Add d_form_memory predicate. 31816 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_PCREL_OPT. 31817 * config/rs6000/rs6000-passes.def: Add pass_pcrel_opt. 31818 * config/rs6000/rs6000-protos.h: Add reg_to_non_prefixed(), 31819 pcrel_opt_valid_mem_p(), output_pcrel_opt_reloc(), 31820 and make_pass_pcrel_opt(). 31821 * config/rs6000/rs6000.c (reg_to_non_prefixed): Make global. 31822 (rs6000_option_override_internal): Add pcrel-opt. 31823 (rs6000_delegitimize_address): Support pcrel-opt. 31824 (rs6000_opt_masks): Add pcrel-opt. 31825 (pcrel_opt_valid_mem_p): New function. 31826 (reg_to_non_prefixed): Make global. 31827 (rs6000_asm_output_opcode): Reset prepend_p_to_next_insn. 31828 (output_pcrel_opt_reloc): New function. 31829 * config/rs6000/rs6000.md (loads_extern_addr): New attr. 31830 (pcrel_extern_addr): Set loads_extern_addr. 31831 Add include for pcrel-opt.md. 31832 * config/rs6000/rs6000.opt: Add -mpcrel-opt. 31833 * config/rs6000/t-rs6000: Add rules for pcrel-opt.c and 31834 pcrel-opt.md. 31835 318362021-02-26 YunQiang Su <yunqiang.su@cipunited.com> 31837 31838 PR target/98996 31839 * config/mips/mips.c (mips_expand_ext_as_unaligned_load): 31840 If TARGET_64BIT and dest is SUBREG, we check the width, if it 31841 equal to SImode, we use SImode operation, just like what we are 31842 doing for REG one. 31843 318442021-02-26 Marek Polacek <polacek@redhat.com> 31845 31846 * builtins.c (warn_for_access): Fix typos. 31847 318482021-02-25 Iain Sandoe <iain@sandoe.co.uk> 31849 31850 * config/aarch64/aarch64.md (<optab>_rol<mode>3): Add a '#' 31851 mark in front of the immediate quantity. 31852 (<optab>_rolsi3_uxtw): Likewise. 31853 318542021-02-25 Richard Earnshaw <rearnsha@arm.com> 31855 31856 PR target/99271 31857 * config/arm/thumb2.md (nonsecure_call_reg_thumb2_fpcxt): New pattern. 31858 (nonsecure_call_value_reg_thumb2_fpcxt): Likewise. 31859 (nonsecure_call_reg_thumb2): Restrict to using r4 for the callee 31860 address and disable when the FPCXT is not available. 31861 (nonsecure_call_value_reg_thumb2): Likewise. 31862 318632021-02-25 Nathan Sidwell <nathan@acm.org> 31864 31865 PR c++/99166 31866 * doc/invoke.texi (flang-info-module-cmi): Renamed option. 31867 318682021-02-25 Tamar Christina <tamar.christina@arm.com> 31869 31870 * tree-vect-slp.c (optimize_load_redistribution_1): Abort on NULL nodes. 31871 318722021-02-25 Richard Biener <rguenther@suse.de> 31873 31874 PR tree-optimization/99253 31875 * tree-vect-loop.c (check_reduction_path): First compute 31876 code, then verify out-of-loop uses. 31877 318782021-02-25 Jakub Jelinek <jakub@redhat.com> 31879 31880 PR target/95798 31881 * match.pd ((T)(A) + CST -> (T)(A + CST)): Add :s to convert. 31882 318832021-02-25 Jakub Jelinek <jakub@redhat.com> 31884 31885 PR tree-optimization/80635 31886 * tree-vrp.c (vrp_simplify_cond_using_ranges): Also handle 31887 VIEW_CONVERT_EXPR if modes are the same, innerop is integral and 31888 has mode precision. 31889 318902021-02-25 Richard Biener <rguenther@suse.de> 31891 31892 * tree-vect-slp.c (optimize_load_redistribution_1): Delay 31893 load_map population. 31894 (vect_match_slp_patterns_2): Revert part of last change. 31895 (vect_analyze_slp): Do not interleave optimize_load_redistribution 31896 with pattern detection but do it afterwards. Dump the 31897 whole SLP graph after pattern recognition and load 31898 redistribution optimization finished. 31899 319002021-02-24 Jakub Jelinek <jakub@redhat.com> 31901 31902 PR fortran/99226 31903 * omp-low.c (struct omp_context): Add teams_nested_p and 31904 nonteams_nested_p members. 31905 (scan_omp_target): Diagnose teams nested inside of target with other 31906 directives strictly nested inside of the same target. 31907 (check_omp_nesting_restrictions): Set ctx->teams_nested_p or 31908 ctx->nonteams_nested_p as needed. 31909 319102021-02-24 Vladimir N. Makarov <vmakarov@redhat.com> 31911 31912 PR inline-asm/99123 31913 * lra-constraints.c (uses_hard_regs_p): Don't use decompose_mem_address. 31914 319152021-02-24 Hans-Peter Nilsson <hp@axis.com> 31916 31917 * config/cris/cris.c (cris_expand_prologue): Set 31918 current_function_static_stack_size, if flag_stack_usage_info. 31919 319202021-02-24 Pat Haugen <pthaugen@linux.ibm.com> 31921 31922 * config/rs6000/rs6000.c (next_insn_prefixed_p): Rename. 31923 (rs6000_final_prescan_insn): Adjust. 31924 (rs6000_asm_output_opcode): Likewise. 31925 319262021-02-24 Martin Sebor <msebor@redhat.com> 31927 31928 PR middle-end/97172 31929 * attribs.c (attr_access::free_lang_data): Clear attribute arg spec 31930 from function arguments. 31931 319322021-02-24 Tamar Christina <tamar.christina@arm.com> 31933 31934 PR tree-optimization/99220 31935 * tree-vect-slp.c (optimize_load_redistribution_1): Remove 31936 node from cache when it's about to be deleted. 31937 319382021-02-24 Jakub Jelinek <jakub@redhat.com> 31939 31940 PR tree-optimization/99225 31941 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0 31942 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of 31943 build_int_cst (..., 1). Formatting fixes. 31944 319452021-02-24 Tamar Christina <tamar.christina@arm.com> 31946 31947 PR tree-optimization/99149 31948 * tree-vect-slp-patterns.c (vect_detect_pair_op): Don't recreate the 31949 buffer. 31950 (vect_slp_reset_pattern): Remove. 31951 (complex_fma_pattern::matches): Remove call to vect_slp_reset_pattern. 31952 (complex_mul_pattern::build, complex_fma_pattern::build, 31953 complex_fms_pattern::build): Fix ref counts. 31954 * tree-vect-slp.c (vect_free_slp_tree): Undo SLP only pattern relevancy 31955 when node is being deleted. 31956 (vect_match_slp_patterns_2): Correct result of cache hit on patterns. 31957 (vect_schedule_slp): Invalidate SLP_TREE_REPRESENTATIVE of removed 31958 stores. 31959 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize value. 31960 319612021-02-24 Matthias Klose <doko@ubuntu.com> 31962 31963 Revert: 31964 2020-12-07 Matthias Klose <doko@ubuntu.com> 31965 31966 * genextract.c (print_header): Undefine ENABLE_RTL_CHECKING 31967 and ENABLE_RTL_FLAG_CHECKING. 31968 319692021-02-24 Richard Biener <rguenther@suse.de> 31970 31971 PR c/99224 31972 * builtins.c (fold_builtin_next_arg): Avoid NULL arg. 31973 319742021-02-23 Peter Bergner <bergner@linux.ibm.com> 31975 31976 * config/rs6000/mma.md (mma_assemble_pair): Rename from this... 31977 (vsx_assemble_pair): ...to this. 31978 (*mma_assemble_pair): Rename from this... 31979 (*vsx_assemble_pair): ...to this. 31980 (mma_disassemble_pair): Rename from this... 31981 (vsx_disassemble_pair): ...to this. 31982 (*mma_disassemble_pair): Rename from this... 31983 (*vsx_disassemble_pair): ...to this. 31984 * config/rs6000/rs6000-builtin.def (BU_MMA_V2, BU_MMA_V3, 31985 BU_COMPAT): New macros. 31986 (mma_assemble_pair): Rename from this... 31987 (vsx_assemble_pair): ...to this. 31988 (mma_disassemble_pair): Rename from this... 31989 (vsx_disassemble_pair): ...to this. 31990 (mma_assemble_pair): New compatibility built-in. 31991 (mma_disassemble_pair): Likewise. 31992 * config/rs6000/rs6000-call.c (struct builtin_compatibility): New. 31993 (RS6000_BUILTIN_COMPAT): Define. 31994 (bdesc_compat): New. 31995 (mma_expand_builtin): Use VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL. 31996 (rs6000_gimple_fold_mma_builtin): Use MMA_BUILTIN_DISASSEMBLE_PAIR 31997 and VSX_BUILTIN_ASSEMBLE_PAIR. 31998 (rs6000_init_builtins): Register compatibility built-ins. 31999 (mma_init_builtins): Use VSX_BUILTIN_ASSEMBLE_PAIR, 32000 VSX_BUILTIN_ASSEMBLE_PAIR_INTERNAL, VSX_BUILTIN_DISASSEMBLE_PAIR and 32001 VSX_BUILTIN_DISASSEMBLE_PAIR_INTERNAL. 32002 * doc/extend.texi (__builtin_mma_assemble_pair): Rename from this... 32003 (__builtin_vsx_assemble_pair): ...to this. 32004 (__builtin_mma_disassemble_pair): Rename from this... 32005 (__builtin_vsx_disassemble_pair): ...to this. 32006 320072021-02-23 Martin Liska <mliska@suse.cz> 32008 32009 PR sanitizer/99168 32010 * ipa-icf.c (sem_variable::merge): Do not merge 2 variables 32011 with different alignment. That leads to an invalid red zone 32012 size allocated in runtime. 32013 320142021-02-23 Jakub Jelinek <jakub@redhat.com> 32015 32016 PR tree-optimization/99204 32017 * fold-const.c (fold_read_from_constant_string): Check that 32018 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST. 32019 320202021-02-23 Segher Boessenkool <segher@kernel.crashing.org> 32021 Kewen Lin <linkw@gcc.gnu.org> 32022 32023 * config/rs6000/rs6000.md (*rotl<mode>3_insert_3): Renamed to... 32024 (rotl<mode>3_insert_3): ...this. 32025 (plus_ior_xor): New code_iterator. 32026 (define_split for GPR rl*imi): New splitter. 32027 * config/rs6000/vsx.md (vsx_init_v4si): Use gen_rotldi3_insert_3 32028 for integer merging. 32029 320302021-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32031 32032 * config/aarch64/aarch64-tuning-flags.def (cse_sve_vl_constants): 32033 Define. 32034 * config/aarch64/aarch64.md (add<mode>3): Force CONST_POLY_INT immediates 32035 into a register when the above is enabled. 32036 * config/aarch64/aarch64.c (neoversev1_tunings): 32037 AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS. 32038 (aarch64_rtx_costs): Use AARCH64_EXTRA_TUNE_CSE_SVE_VL_CONSTANTS. 32039 320402021-02-22 Hans-Peter Nilsson <hp@axis.com> 32041 32042 * config/cris/cris.c (cris_print_operand) <'T'>: Change 32043 valid operand from is now an addi mult-value to shift-value. 32044 * config/cris/cris.md (*addi): Change expression of scaled 32045 operand from mult to ashift. 32046 * config/cris/cris.md (*addi_reload): New insn_and_split. 32047 320482021-02-22 John David Anglin <danglin@gcc.gnu.org> 32049 32050 PR target/85074 32051 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as 32052 hook_bool_const_tree_hwi_hwi_const_tree_true. 32053 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset. 32054 320552021-02-22 Andre Vieira <andre.simoesdiasvieira@arm.com> 32056 32057 PR rtl-optimization/98791 32058 * ira-conflicts.c (process_regs_for_copy): Don't create allocno copies 32059 for unordered modes. 32060 320612021-02-22 Martin Liska <mliska@suse.cz> 32062 32063 * tree-inline.c (inline_forbidden_p): Set 32064 inline_forbidden_reason. 32065 320662021-02-22 Richard Biener <rguenther@suse.de> 32067 32068 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Dump 32069 costed subgraph. 32070 320712021-02-22 Richard Biener <rguenther@suse.de> 32072 32073 PR tree-optimization/99165 32074 * gimple-ssa-store-merging.c (pass_store_merging::process_store): 32075 Accumulate changed to ret. 32076 320772021-02-21 Uros Bizjak <ubizjak@gmail.com> 32078 32079 Revert: 32080 2020-12-09 Uro�� Bizjak <ubizjak@gmail.com> 32081 32082 * config/i386/i386.h (REG_ALLOC_ORDER): Remove 32083 320842021-02-20 Ilya Leoshkevich <iii@linux.ibm.com> 32085 32086 PR target/99134 32087 * config/s390/vector.md (trunctf<DFP_ALL:mode>2_vr): New 32088 pattern. 32089 (trunctf<DFP_ALL:mode>2): Likewise. 32090 (trunctdtf2_vr): Likewise. 32091 (trunctdtf2): Likewise. 32092 (extend<DFP_ALL:mode>tf2_vr): Likewise. 32093 (extend<DFP_ALL:mode>tf2): Likewise. 32094 (extendtftd2_vr): Likewise. 32095 (extendtftd2): Likewise. 32096 320972021-02-20 Ilya Leoshkevich <iii@linux.ibm.com> 32098 32099 * config/s390/vector.md (*fprx2_to_tf): Rename to fprx2_to_tf, 32100 add memory alternative. 32101 (tf_to_fprx2): New pattern. 32102 321032021-02-19 Martin Sebor <msebor@redhat.com> 32104 32105 PR c/97172 32106 * attribs.c (init_attr_rdwr_indices): Guard vblist use. 32107 (attr_access::free_lang_data): Remove a spurious test. 32108 321092021-02-19 Nathan Sidwell <nathan@acm.org> 32110 32111 * doc/invoke.texi (flang-info-module-read): Document. 32112 321132021-02-19 Martin Liska <mliska@suse.cz> 32114 32115 PR translation/99167 32116 * params.opt: Fix typo. 32117 321182021-02-19 Richard Biener <rguenther@suse.de> 32119 32120 PR middle-end/99122 32121 * tree-inline.c (inline_forbidden_p): Do not inline functions 32122 with VLA arguments or return value. 32123 321242021-02-19 Jakub Jelinek <jakub@redhat.com> 32125 32126 PR target/98998 32127 * config/arm/arm.md (*stack_protect_combined_set_insn, 32128 *stack_protect_combined_test_insn): If force_const_mem result 32129 is not valid general operand, force its address into the destination 32130 register first. 32131 321322021-02-19 Jakub Jelinek <jakub@redhat.com> 32133 32134 PR ipa/99034 32135 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing 32136 pad or non-local label, put FORCED_LABELs from bb b after that label 32137 rather than before it. 32138 321392021-02-19 Andre Vieira <andre.simoesdiasvieira@arm.com> 32140 32141 PR target/98657 32142 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3): Use 32143 expand_vector_broadcast' to emit the vec_duplicate operand. 32144 321452021-02-18 Vladimir N. Makarov <vmakarov@redhat.com> 32146 32147 PR rtl-optimization/96264 32148 * lra-remat.c (reg_overlap_for_remat_p): Check also output insn 32149 hard regs. 32150 321512021-02-18 H.J. Lu <hjl.tools@gmail.com> 32152 32153 PR target/99113 32154 * varasm.c (get_section): Replace SUPPORTS_SHF_GNU_RETAIN with 32155 looking up the retain attribute. 32156 (resolve_unique_section): Likewise. 32157 (get_variable_section): Likewise. 32158 (switch_to_section): Likewise. Warn when a symbol without the 32159 retain attribute and a symbol with the retain attribute are 32160 placed in the section with the same name, instead of the used 32161 attribute. 32162 * doc/extend.texi: Document the "retain" attribute. 32163 321642021-02-18 Nathan Sidwell <nathan@acm.org> 32165 32166 PR c++/99023 32167 * doc/invoke.texi (flang-info-include-translate): Document header 32168 lookup behaviour. 32169 321702021-02-18 Richard Biener <rguenther@suse.de> 32171 32172 PR middle-end/99122 32173 * ipa-fnsummary.c (analyze_function_body): Set 32174 CIF_FUNCTION_NOT_INLINABLE for VLA parameter calls. 32175 * tree-inline.c (insert_init_debug_bind): Pass NULL for 32176 error_mark_node values. 32177 (force_value_to_type): Do not build V_C_Es for WITH_SIZE_EXPR 32178 values. 32179 (setup_one_parameter): Delay force_value_to_type until when 32180 it's needed. 32181 321822021-02-18 Hans-Peter Nilsson <hp@axis.com> 32183 32184 PR tree-optimization/99142 32185 * match.pd (clz cmp 0): Gate replacement on single_use of clz result. 32186 321872021-02-18 Jakub Jelinek <jakub@redhat.com> 32188 32189 * wide-int-bitmask.h (wide_int_bitmask::wide_int_bitmask (), 32190 wide_int_bitmask::wide_int_bitmask (uint64_t), 32191 wide_int_bitmask::wide_int_bitmask (uint64_t, uint64_t), 32192 wide_int_bitmask::operator ~ () const, 32193 wide_int_bitmask::operator | (wide_int_bitmask) const, 32194 wide_int_bitmask::operator & (wide_int_bitmask) const): Use constexpr 32195 instead of inline. 32196 * config/i386/i386.h (PTA_3DNOW, PTA_3DNOW_A, PTA_64BIT, PTA_ABM, 32197 PTA_AES, PTA_AVX, PTA_BMI, PTA_CX16, PTA_F16C, PTA_FMA, PTA_FMA4, 32198 PTA_FSGSBASE, PTA_LWP, PTA_LZCNT, PTA_MMX, PTA_MOVBE, PTA_NO_SAHF, 32199 PTA_PCLMUL, PTA_POPCNT, PTA_PREFETCH_SSE, PTA_RDRND, PTA_SSE, PTA_SSE2, 32200 PTA_SSE3, PTA_SSE4_1, PTA_SSE4_2, PTA_SSE4A, PTA_SSSE3, PTA_TBM, 32201 PTA_XOP, PTA_AVX2, PTA_BMI2, PTA_RTM, PTA_HLE, PTA_PRFCHW, PTA_RDSEED, 32202 PTA_ADX, PTA_FXSR, PTA_XSAVE, PTA_XSAVEOPT, PTA_AVX512F, PTA_AVX512ER, 32203 PTA_AVX512PF, PTA_AVX512CD, PTA_NO_TUNE, PTA_SHA, PTA_PREFETCHWT1, 32204 PTA_CLFLUSHOPT, PTA_XSAVEC, PTA_XSAVES, PTA_AVX512DQ, PTA_AVX512BW, 32205 PTA_AVX512VL, PTA_AVX512IFMA, PTA_AVX512VBMI, PTA_CLWB, PTA_MWAITX, 32206 PTA_CLZERO, PTA_NO_80387, PTA_PKU, PTA_AVX5124VNNIW, PTA_AVX5124FMAPS, 32207 PTA_AVX512VPOPCNTDQ, PTA_SGX, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, 32208 PTA_AVX512VBMI2, PTA_VPCLMULQDQ, PTA_AVX512BITALG, PTA_RDPID, 32209 PTA_PCONFIG, PTA_WBNOINVD, PTA_AVX512VP2INTERSECT, PTA_PTWRITE, 32210 PTA_AVX512BF16, PTA_WAITPKG, PTA_MOVDIRI, PTA_MOVDIR64B, PTA_ENQCMD, 32211 PTA_CLDEMOTE, PTA_SERIALIZE, PTA_TSXLDTRK, PTA_AMX_TILE, PTA_AMX_INT8, 32212 PTA_AMX_BF16, PTA_UINTR, PTA_HRESET, PTA_KL, PTA_WIDEKL, PTA_AVXVNNI, 32213 PTA_X86_64_BASELINE, PTA_X86_64_V2, PTA_X86_64_V3, PTA_X86_64_V4, 32214 PTA_CORE2, PTA_NEHALEM, PTA_WESTMERE, PTA_SANDYBRIDGE, PTA_IVYBRIDGE, 32215 PTA_HASWELL, PTA_BROADWELL, PTA_SKYLAKE, PTA_SKYLAKE_AVX512, 32216 PTA_CASCADELAKE, PTA_COOPERLAKE, PTA_CANNONLAKE, PTA_ICELAKE_CLIENT, 32217 PTA_ICELAKE_SERVER, PTA_TIGERLAKE, PTA_SAPPHIRERAPIDS, PTA_ALDERLAKE, 32218 PTA_KNL, PTA_BONNELL, PTA_SILVERMONT, PTA_GOLDMONT, PTA_GOLDMONT_PLUS, 32219 PTA_TREMONT, PTA_KNM): Use constexpr instead of const. 32220 322212021-02-18 Jakub Jelinek <jakub@redhat.com> 32222 32223 PR middle-end/99109 32224 * gimple-array-bounds.cc (build_zero_elt_array_type): Rename to ... 32225 (build_printable_array_type): ... this. Add nelts argument. For 32226 overaligned eltype, use TYPE_MAIN_VARIANT (eltype) instead. If 32227 nelts, call build_array_type_nelts. 32228 (array_bounds_checker::check_mem_ref): Use build_printable_array_type 32229 instead of build_zero_elt_array_type and build_array_type_nelts. 32230 322312021-02-18 Jakub Jelinek <jakub@redhat.com> 32232 32233 PR target/99104 32234 * config/i386/i386.c (distance_non_agu_define): Don't call 32235 extract_insn_cached here. 32236 (ix86_lea_outperforms): Save and restore recog_data around call 32237 to distance_non_agu_define and distance_agu_use. 32238 (ix86_ok_to_clobber_flags): Remove. 32239 (ix86_avoid_lea_for_add): Don't call ix86_ok_to_clobber_flags. 32240 (ix86_avoid_lea_for_addr): Likewise. Adjust function comment. 32241 * config/i386/i386.md (*lea<mode>): Change from define_insn_and_split 32242 into define_insn. Move the splitting to define_peephole2 and 32243 check there using peep2_regno_dead_p if FLAGS_REG is dead. 32244 322452021-02-17 Julian Brown <julian@codesourcery.com> 32246 32247 * gimplify.c (gimplify_scan_omp_clauses): Handle ATTACH_DETACH 32248 for non-decls. 32249 322502021-02-17 Xi Ruoyao <xry111@mengyan1223.wang> 32251 32252 PR target/98491 32253 * config/mips/mips.c (mips_symbol_insns): Do not use 32254 MSA_SUPPORTED_MODE_P if mode is MAX_MACHINE_MODE. 32255 322562021-02-16 Vladimir N. Makarov <vmakarov@redhat.com> 32257 32258 PR inline-asm/98096 32259 * stmt.c (resolve_operand_name_1): Take inout operands into account 32260 for access to labels by names. 32261 * doc/extend.texi: Describe counting operands for accessing labels. 32262 322632021-02-16 Richard Biener <rguenther@suse.de> 32264 32265 PR tree-optimization/38474 32266 * tree-ssa-structalias.c (variable_info::address_taken): New. 32267 (new_var_info): Initialize address_taken. 32268 (process_constraint): Set address_taken. 32269 (solve_constraints): Use the new address_taken flag rather 32270 than is_reg_var for sorting variables. 32271 (dump_constraint): Dump the variable number if the name 32272 is just NULL. 32273 322742021-02-16 Jakub Jelinek <jakub@redhat.com> 32275 32276 PR target/99100 32277 * tree-vect-stmts.c (vectorizable_simd_clone_call): For num_calls != 1 32278 multiply by 4096 and for inbranch by 8192. 32279 * config/i386/i386.c (ix86_simd_clone_usable): For TARGET_AVX512F, 32280 return 3, 2 or 1 for mangle letters 'b', 'c' or 'd'. 32281 322822021-02-15 Maya Rashish <coypu@sdf.org> 32283 32284 * config/aarch64/aarch64.c (aarch64_init_builtins): 32285 Call SUBTARGET_INIT_BUILTINS. 32286 322872021-02-15 Peter Bergner <bergner@linux.ibm.com> 32288 32289 PR rtl-optimization/98872 32290 * init-regs.c (initialize_uninitialized_regs): Skip initialization 32291 if CONST0_RTX is NULL. 32292 322932021-02-15 Richard Sandiford <richard.sandiford@arm.com> 32294 32295 PR rtl-optimization/98863 32296 * rtl-ssa/functions.h (function_info::bb_live_out_info): Delete. 32297 (function_info::build_info): Turn into a declaration, moving the 32298 definition to internals.h. 32299 (function_info::bb_walker): Declare. 32300 (function_info::create_reg_use): Likewise. 32301 (function_info::calculate_potential_phi_regs): Take a build_info 32302 parameter. 32303 (function_info::place_phis, function_info::create_ebbs): Declare. 32304 (function_info::calculate_ebb_live_in_for_debug): Likewise. 32305 (function_info::populate_backedge_phis): Delete. 32306 (function_info::start_block, function_info::end_block): Declare. 32307 (function_info::populate_phi_inputs): Delete. 32308 (function_info::m_potential_phi_regs): Move information to build_info. 32309 * rtl-ssa/internals.h: New file. 32310 (function_info::bb_phi_info): New class. 32311 (function_info::build_info): Moved from functions.h. 32312 Add a constructor and destructor. 32313 (function_info::build_info::ebb_use): Delete. 32314 (function_info::build_info::ebb_def): Likewise. 32315 (function_info::build_info::bb_live_out): Likewise. 32316 (function_info::build_info::tmp_ebb_live_in_for_debug): New variable. 32317 (function_info::build_info::potential_phi_regs): Likewise. 32318 (function_info::build_info::potential_phi_regs_for_debug): Likewise. 32319 (function_info::build_info::ebb_def_regs): Likewise. 32320 (function_info::build_info::bb_phis): Likewise. 32321 (function_info::build_info::bb_mem_live_out): Likewise. 32322 (function_info::build_info::bb_to_rpo): Likewise. 32323 (function_info::build_info::def_stack): Likewise. 32324 (function_info::build_info::old_def_stack_limit): Likewise. 32325 * rtl-ssa/internals.inl (function_info::build_info::record_reg_def): 32326 Remove the regno argument. Push the previous definition onto the 32327 definition stack where necessary. 32328 * rtl-ssa/accesses.cc: Include internals.h. 32329 * rtl-ssa/changes.cc: Likewise. 32330 * rtl-ssa/blocks.cc: Likewise. 32331 (function_info::build_info::build_info): Define. 32332 (function_info::build_info::~build_info): Likewise. 32333 (function_info::bb_walker): New class. 32334 (function_info::bb_walker::bb_walker): Define. 32335 (function_info::add_live_out_use): Convert a logarithmic-complexity 32336 test into a linear one. Allow the same definition to be passed 32337 multiple times. 32338 (function_info::calculate_potential_phi_regs): Moved from 32339 functions.cc. Take a build_info parameter and store the 32340 information there instead. 32341 (function_info::place_phis): New function. 32342 (function_info::add_entry_block_defs): Update call to record_reg_def. 32343 (function_info::calculate_ebb_live_in_for_debug): New function. 32344 (function_info::add_phi_nodes): Use bb_phis to decide which 32345 registers need phi nodes and initialize ebb_def_regs accordingly. 32346 Do not add degenerate phis here. 32347 (function_info::add_artificial_accesses): Use create_reg_use. 32348 Assert that all definitions are listed in the DF LR sets. 32349 Update call to record_reg_def. 32350 (function_info::record_block_live_out): Record live-out register 32351 values in the phis of successor blocks. Use the live-out set 32352 when processing the last block in an EBB, instead of always 32353 using the live-in sets of successor blocks. AND the live sets 32354 with the set of registers that have been defined in the EBB, 32355 rather than with all potential phi registers. Cope correctly 32356 with branches back to the start of the current EBB. 32357 (function_info::start_block): New function. 32358 (function_info::end_block): Likewise. 32359 (function_info::populate_phi_inputs): Likewise. 32360 (function_info::create_ebbs): Likewise. 32361 (function_info::process_all_blocks): Rewrite into a multi-phase 32362 process. 32363 * rtl-ssa/functions.cc: Include internals.h. 32364 (function_info::calculate_potential_phi_regs): Move to blocks.cc. 32365 (function_info::init_function_data): Remove caller. 32366 * rtl-ssa/insns.cc: Include internals.h 32367 (function_info::create_reg_use): New function. Lazily any 32368 degenerate phis needed by the linear RPO view. 32369 (function_info::record_use): Use create_reg_use. When processing 32370 debug uses, use potential_phi_regs and test it before checking 32371 whether the register is live on entry to the current EBB. Lazily 32372 calculate ebb_live_in_for_debug. 32373 (function_info::record_call_clobbers): Update call to record_reg_def. 32374 (function_info::record_def): Likewise. 32375 323762021-02-15 Martin Liska <mliska@suse.cz> 32377 32378 * toplev.c (init_asm_output): Free output of 32379 gen_command_line_string function. 32380 (process_options): Likewise. 32381 323822021-02-15 Martin Liska <mliska@suse.cz> 32383 32384 * params.opt: Add 2 missing Param keywords. 32385 323862021-02-15 Eric Botcazou <ebotcazou@adacore.com> 32387 32388 * df-core.c (df_worklist_dataflow_doublequeue): Use proper cast. 32389 323902021-02-15 Jakub Jelinek <jakub@redhat.com> 32391 32392 PR tree-optimization/99079 32393 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove 32394 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead 32395 require both type and TREE_TYPE (@1) to be integral types and either 32396 type having smaller or equal precision, or TREE_TYPE (@1) being 32397 unsigned type, or type being signed type. If TREE_TYPE (@1) 32398 doesn't have wrapping overflow, perform the subtraction of one in 32399 unsigned type. 32400 324012021-02-14 Jan Hubicka <hubicka@ucw.cz> 32402 Richard Biener <rguether@suse.de> 32403 32404 PR ipa/97346 32405 * ipa-reference.c (ipa_init): Only conditinally initialize 32406 reference_vars_to_consider. 32407 (propagate): Conditionally deninitialize reference_vars_to_consider. 32408 (ipa_reference_write_optimization_summary): Sanity check that 32409 reference_vars_to_consider is not allocated. 32410 324112021-02-13 Levy Hsu <admin@levyhsu.com> 32412 32413 PR target/97417 32414 * config/riscv/riscv-shorten-memrefs.c (pass_shorten_memrefs): Add 32415 extend parameter to get_si_mem_base_reg declaration. 32416 (get_si_mem_base_reg): Add extend parameter. Set it. 32417 (analyze): Pass extend arg to get_si_mem_base_reg. 32418 (transform): Likewise. Use it when rewriting mems. 32419 * config/riscv/riscv.c (riscv_legitimize_move): Check for subword 32420 loads and emit sign/zero extending load followed by subreg move. 32421 324222021-02-13 Jim Wilson <jimw@sifive.com> 32423 32424 PR target/97417 32425 * config/riscv/riscv.c (riscv_compressed_lw_address_p): Drop early 32426 exit when !reload_completed. Only perform check for compressed reg 32427 if reload_completed. 32428 (riscv_rtx_costs): In MEM case, when optimizing for size and 32429 shorten memrefs, if not compressible, then increase cost. 32430 324312021-02-13 Jakub Jelinek <jakub@redhat.com> 32432 32433 PR rtl-optimization/98439 32434 * recog.c (pass_split_before_regstack::gate): Enable even when 32435 pass_split_before_sched2 is enabled if -fselective-scheduling2 is 32436 on. 32437 324382021-02-13 Jakub Jelinek <jakub@redhat.com> 32439 32440 PR target/96166 32441 * config/i386/mmx.md (*mmx_pshufd_1): Add a combine splitter for 32442 swap of V2SImode elements in memory into DImode memory rotate by 32. 32443 324442021-02-12 Martin Sebor <msebor@redhat.com> 32445 32446 * tree-pretty-print.c (print_generic_expr_to_str): Update comment. 32447 324482021-02-12 Richard Sandiford <richard.sandiford@arm.com> 32449 32450 * rtl-ssa/accesses.cc (function_info::make_use_available): Use 32451 m_temp_obstack rather than m_obstack to allocate the temporary use. 32452 324532021-02-12 Richard Sandiford <richard.sandiford@arm.com> 32454 32455 * df-problems.c (df_lr_bb_local_compute): Treat partial definitions 32456 as read-modify operations. 32457 324582021-02-12 Richard Biener <rguenther@suse.de> 32459 32460 PR middle-end/38474 32461 * ipa-fnsummary.c (unmodified_parm_1): Only walk when 32462 fbi->aa_walk_budget is bigger than zero. Update 32463 fbi->aa_walk_budget. 32464 (param_change_prob): Likewise. 32465 * ipa-prop.c (detect_type_change_from_memory_writes): 32466 Properly account walk_aliased_vdefs. 32467 (parm_preserved_before_stmt_p): Canonicalize updates. 32468 (parm_ref_data_preserved_p): Likewise. 32469 (parm_ref_data_pass_through_p): Likewise. 32470 (determine_known_aggregate_parts): Account own alias queries. 32471 324722021-02-12 Martin Liska <mliska@suse.cz> 32473 32474 * opts-common.c (decode_cmdline_option): Release werror_arg. 32475 * opts.c (gen_producer_string): Release output of 32476 gen_command_line_string. 32477 324782021-02-12 Richard Biener <rguenther@suse.de> 32479 32480 PR tree-optimization/38474 32481 * params.opt (-param=max-store-chains-to-track=): New param. 32482 (-param=max-stores-to-track=): Likewise. 32483 * doc/invoke.texi (max-store-chains-to-track): Document. 32484 (max-stores-to-track): Likewise. 32485 * gimple-ssa-store-merging.c (pass_store_merging::m_n_chains): 32486 New. 32487 (pass_store_merging::m_n_stores): Likewise. 32488 (pass_store_merging::terminate_and_process_chain): Update 32489 m_n_stores and m_n_chains. 32490 (pass_store_merging::process_store): Likewise. Terminate 32491 oldest chains if the number of stores or chains get too large. 32492 (imm_store_chain_info::terminate_and_process_chain): Dump 32493 chain length. 32494 324952021-02-11 Eric Botcazou <ebotcazou@adacore.com> 32496 32497 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to 32498 the cold section, emit a nop before the directive if the previous 32499 active instruction can throw. 32500 325012021-02-11 Peter Bergner <bergner@linux.ibm.com> 32502 32503 PR target/99041 32504 * config/rs6000/predicates.md (mma_assemble_input_operand): Restrict 32505 memory addresses that are legal for quad word accesses. 32506 325072021-02-11 Andrea Corallo <andrea.corallo@arm.com> 32508 32509 PR target/98931 32510 * config/arm/thumb2.md (*doloop_end_internal): Generate 32511 alternative sequence to handle long range branches. 32512 325132021-02-11 Joel Hutton <joel.hutton@arm.com> 32514 32515 PR tree-optimization/98772 32516 * optabs-tree.c (supportable_half_widening_operation): New function 32517 to check for supportable V8QI->V8HI widening patterns. 32518 * optabs-tree.h (supportable_half_widening_operation): New function. 32519 * tree-vect-stmts.c (vect_create_half_widening_stmts): New function 32520 to create promotion stmts for V8QI->V8HI widening patterns. 32521 (vectorizable_conversion): Add case for V8QI->V8HI. 32522 325232021-02-11 Richard Biener <rguenther@suse.de> 32524 32525 * sparseset.h (SPARSESET_ELT_BITS): Remove. 32526 (SPARSESET_ELT_TYPE): Use unsigned int. 32527 * fwprop.c: Do not include sparseset.h. 32528 325292021-02-10 Jakub Jelinek <jakub@redhat.com> 32530 32531 PR c++/99035 32532 * varasm.c (declare_weak): For -fsyntax-only, allow even 32533 TREE_ASM_WRITTEN function decls. 32534 325352021-02-10 Jakub Jelinek <jakub@redhat.com> 32536 32537 PR target/99025 32538 * config/i386/sse.md (fix<fixunssuffix>_truncv2sfv2di2, 32539 <insn>v8qiv8hi2, <insn>v8qiv8si2, <insn>v4qiv4si2, <insn>v4hiv4si2, 32540 <insn>v8qiv8di2, <insn>v4qiv4di2, <insn>v2qiv2di2, <insn>v4hiv4di2, 32541 <insn>v2hiv2di2, <insn>v2siv2di2): Force operands[1] into REG before 32542 calling simplify_gen_subreg on it. 32543 325442021-02-10 Martin Liska <mliska@suse.cz> 32545 32546 * config/nvptx/nvptx.c (nvptx_option_override): Use 32547 flag_patchable_function_entry instead of the removed 32548 function_entry_patch_area_size. 32549 325502021-02-10 Martin Liska <mliska@suse.cz> 32551 32552 PR tree-optimization/99002 32553 PR tree-optimization/99026 32554 * gimple-if-to-switch.cc (if_chain::is_beneficial): Fix memory 32555 leak when adjacent cases are merged. 32556 * tree-switch-conversion.c (switch_decision_tree::analyze_switch_statement): Use 32557 release_clusters. 32558 (make_pass_lower_switch): Remove trailing whitespace. 32559 * tree-switch-conversion.h (release_clusters): New. 32560 325612021-02-10 Richard Biener <rguenther@suse.de> 32562 32563 PR rtl-optimization/99054 32564 * cfgrtl.c (rtl-optimization/99054): Return an auto_vec. 32565 (fixup_partitions): Adjust. 32566 (rtl_verify_edges): Likewise. 32567 325682021-02-10 Jakub Jelinek <jakub@redhat.com> 32569 32570 PR middle-end/99007 32571 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions, 32572 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr 32573 calls. 32574 325752021-02-10 Richard Biener <rguenther@suse.de> 32576 32577 PR ipa/99029 32578 * ipa-pure-const.c (propagate_malloc): Use an auto_vec<> 32579 for callees. 32580 325812021-02-10 Richard Biener <rguenther@suse.de> 32582 32583 PR tree-optimization/99024 32584 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Only 32585 clear loop->aux if it is associated with the destroyed loop_vinfo. 32586 325872021-02-10 Martin Liska <mliska@suse.cz> 32588 32589 PR tree-optimization/99002 32590 * gimple-if-to-switch.cc (find_conditions): Fix memory leak 32591 in the function. 32592 325932021-02-10 Martin Liska <mliska@suse.cz> 32594 32595 PR ipa/99003 32596 * ipa-icf.c (sem_item::add_reference): Fix memory leak when 32597 a reference exists. 32598 325992021-02-10 Jakub Jelinek <jakub@redhat.com> 32600 32601 PR debug/98755 32602 * dwarf2out.c (prune_unused_types_walk): Mark DW_TAG_variable DIEs 32603 at class scope for DWARF5+. 32604 326052021-02-09 Eric Botcazou <ebotcazou@adacore.com> 32606 32607 PR rtl-optimization/96015 32608 * reorg.c (skip_consecutive_labels): Minor comment tweaks. 32609 (relax_delay_slots): When deleting a jump to the next active 32610 instruction over a barrier, first delete the barrier if the 32611 jump is the only way to reach the target label. 32612 326132021-02-09 Andre Vieira <andre.simoesdiasvieira@arm.com> 32614 32615 * config/aarch64/aarch64-cost-tables.h: Add entries for vect.mul. 32616 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Use vect.mul for 32617 vector multiplies and vect.alu for SSRA. 32618 * config/arm/aarch-common-protos.h (struct vector_cost_table): Define 32619 vect.mul cost field. 32620 * config/arm/aarch-cost-tables.h: Add entries for vect.mul. 32621 * config/arm/arm.c: Likewise. 32622 326232021-02-09 Richard Biener <rguenther@suse.de> 32624 32625 PR tree-optimization/98863 32626 * tree-ssa-sccvn.h (vn_avail::next_undo): Add. 32627 * tree-ssa-sccvn.c (last_pushed_avail): New global. 32628 (rpo_elim::eliminate_push_avail): Chain pushed avails. 32629 (unwind_state::avail_top): Add. 32630 (do_unwind): Rewrite unwinding of avail entries. 32631 (do_rpo_vn): Initialize last_pushed_avail and 32632 avail_top of the undo state. 32633 326342021-02-09 Jakub Jelinek <jakub@redhat.com> 32635 32636 PR middle-end/99004 32637 * calls.c (maybe_warn_rdwr_sizes): Change s0 and s1 type from 32638 const char * to char * and free those pointers after use. 32639 326402021-02-09 Richard Biener <rguenther@suse.de> 32641 32642 PR tree-optimization/99017 32643 * tree-vect-slp.c (vect_bb_vectorization_profitable_p): Allow 32644 zero vector cost entries. 32645 326462021-02-08 Andre Vieira <andre.simoesdiasvieira@arm.com> 32647 32648 PR middle-end/98974 32649 * tree-vect-stmts.c (vectorizable_condition): Remove shadow vec_num 32650 parameter in vectorizable_condition. 32651 326522021-02-08 Richard Biener <rguenther@suse.de> 32653 32654 PR lto/96591 32655 * tree.c (walk_tree_1): Walk VECTOR_CST elements. 32656 326572021-02-08 Martin Liska <mliska@suse.cz> 32658 32659 PR lto/98971 32660 * cfgexpand.c (pass_expand::execute): Parse per-function option 32661 flag_patchable_function_entry and use it. 32662 * common.opt: Remove function_entry_patch_area_size and 32663 function_entry_patch_area_start global variables. 32664 * opts.c (parse_and_check_patch_area): New function. 32665 (common_handle_option): Use it. 32666 * opts.h (parse_and_check_patch_area): New function. 32667 * toplev.c (process_options): Parse and use 32668 function_entry_patch_area_size. 32669 326702021-02-08 Martin Sebor <msebor@redhat.com> 32671 32672 * doc/extend.texi (attribute malloc): Correct typos. 32673 326742021-02-05 Nathan Sidwell <nathan@acm.org> 32675 32676 PR driver/98943 32677 * gcc.c (driver::maybe_run_linker): Check for input file 32678 accessibility if not linking. 32679 326802021-02-05 Richard Biener <rguenther@suse.de> 32681 32682 PR tree-optimization/98855 32683 * tree-vectorizer.h (add_stmt_cost): New overload. 32684 * tree-vect-slp.c (li_cost_vec_cmp): New. 32685 (vect_bb_slp_scalar_cost): Cost individual loop regions 32686 separately. Account for the scalar instance root stmt. 32687 326882021-02-05 Tom de Vries <tdevries@suse.de> 32689 32690 PR debug/98656 32691 * tree-switch-conversion.c (jump_table_cluster::emit): Add loc 32692 argument. 32693 (bit_test_cluster::emit): Reuse location_t for newly created 32694 gswitch statement. 32695 (switch_decision_tree::try_switch_expansion): Preserve 32696 location_t. 32697 * tree-switch-conversion.h: Change function signatures. 32698 326992021-02-05 Jakub Jelinek <jakub@redhat.com> 32700 32701 PR target/98957 32702 * config/i386/i386-options.c (m_NONE, m_ALL): Define. 32703 * config/i386/x86-tune.def (X86_TUNE_BRANCH_PREDICTION_HINTS, 32704 X86_TUNE_PROMOTE_QI_REGS): Use m_NONE instead of 0U. 32705 (X86_TUNE_QIMODE_MATH): Use m_ALL instead of ~0U. 32706 327072021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32708 32709 * config/aarch64/aarch64-simd-builtins.def (get_high): Define builtin. 32710 * config/aarch64/aarch64-simd.md (aarch64_get_high<mode>): Define. 32711 * config/aarch64/arm_neon.h (__GET_HIGH): Delete. 32712 (vget_high_f16): Reimplement using new builtin. 32713 (vget_high_f32): Likewise. 32714 (vget_high_f64): Likewise. 32715 (vget_high_p8): Likewise. 32716 (vget_high_p16): Likewise. 32717 (vget_high_p64): Likewise. 32718 (vget_high_s8): Likewise. 32719 (vget_high_s16): Likewise. 32720 (vget_high_s32): Likewise. 32721 (vget_high_s64): Likewise. 32722 (vget_high_u8): Likewise. 32723 (vget_high_u16): Likewise. 32724 (vget_high_u32): Likewise. 32725 (vget_high_u64): Likewise. 32726 327272021-02-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32728 32729 * config/aarch64/aarch64-simd-builtins.def (get_low): Define builtin. 32730 * config/aarch64/aarch64-simd.md (aarch64_get_low<mode>): Define. 32731 * config/aarch64/arm_neon.h (__GET_LOW): Delete. 32732 (vget_low_f16): Reimplement using new builtin. 32733 (vget_low_f32): Likewise. 32734 (vget_low_f64): Likewise. 32735 (vget_low_p8): Likewise. 32736 (vget_low_p16): Likewise. 32737 (vget_low_p64): Likewise. 32738 (vget_low_s8): Likewise. 32739 (vget_low_s16): Likewise. 32740 (vget_low_s32): Likewise. 32741 (vget_low_s64): Likewise. 32742 (vget_low_u8): Likewise. 32743 (vget_low_u16): Likewise. 32744 (vget_low_u32): Likewise. 32745 (vget_low_u64): Likewise. 32746 327472021-02-05 Kito Cheng <kito.cheng@sifive.com> 32748 32749 * gcc.c (print_multilib_info): Check all required argument is provided 32750 by default arg. 32751 327522021-02-05 liuhongt <hongtao.liu@intel.com> 32753 32754 PR target/98537 32755 * config/i386/i386-expand.c (ix86_expand_sse_cmp): Don't 32756 generate integer mask comparison for 128/256-bits vector when 32757 op_true/op_false is NULL_RTX or CONSTM1_RTX/CONST0_RTX. Also 32758 delete redundant !maskcmp condition. 32759 (ix86_expand_int_vec_cmp): Ditto but no redundant deletion 32760 here. 32761 (ix86_expand_sse_movcc): Delete definition of maskcmp, add the 32762 condition directly to if (maskcmp), add extra check for 32763 cmpmode, it should be MODE_INT. 32764 (ix86_expand_fp_vec_cmp): Pass NULL to ix86_expand_sse_cmp's 32765 parameters op_true/op_false. 32766 (ix86_use_mask_cmp_p): New. 32767 327682021-02-05 liuhongt <hongtao.liu@intel.com> 32769 32770 PR target/98172 32771 * config/i386/x86-tune.def (X86_TUNE_AVX256_UNALIGNED_LOAD_OPTIMAL): 32772 Remove m_GENERIC from ~list. 32773 (X86_TUNE_AVX256_UNALIGNED_STORE_OPTIMAL): Ditto. 32774 327752021-02-04 David Malcolm <dmalcolm@redhat.com> 32776 32777 PR c/97932 32778 * diagnostic-show-locus.c (compatible_locations_p): Require 32779 locations in the same macro map to be either both from the 32780 macro definition, or both from the macro arguments. 32781 327822021-02-04 Jonathan Wright <jonathan.wright@arm.com> 32783 32784 * config/aarch64/aarch64-simd-builtins.def: Add 32785 [su]mull_hi_lane[q] builtin generator macros. 32786 * config/aarch64/aarch64-simd.md 32787 (aarch64_<su>mull_hi_lane<mode>_insn): Define. 32788 (aarch64_<su>mull_hi_lane<mode>): Define. 32789 (aarch64_<su>mull_hi_laneq<mode>_insn): Define. 32790 (aarch64_<su>mull_hi_laneq<mode>): Define. 32791 * config/aarch64/arm_neon.h (vmull_high_lane_s16): Use RTL 32792 builtin instead of inline asm. 32793 (vmull_high_lane_s32): Likewise. 32794 (vmull_high_lane_u16): Likewise. 32795 (vmull_high_lane_u32): Likewise. 32796 (vmull_high_laneq_s16): Likewise. 32797 (vmull_high_laneq_s32): Likewise. 32798 (vmull_high_laneq_u16): Likewise. 32799 (vmull_high_laneq_u32): Liekwise. 32800 328012021-02-04 Jonathan Wright <jonathan.wright@arm.com> 32802 32803 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_hi_n 32804 builtin generator macros. 32805 * config/aarch64/aarch64-simd.md 32806 (aarch64_<su>mull_hi_n<mode>_insn): Define. 32807 (aarch64_<su>mull_hi_n<mode>): Define. 32808 * config/aarch64/arm_neon.h (vmull_high_n_s16): Use RTL builtin 32809 instead of inline asm. 32810 (vmull_high_n_s32): Likewise. 32811 (vmull_high_n_u16): Likewise. 32812 (vmull_high_n_u32): Likewise. 32813 328142021-02-04 Richard Biener <rguenther@suse.de> 32815 32816 PR tree-optimization/98855 32817 * tree-vect-loop.c (vectorizable_phi): Do not cost 32818 single-argument PHIs. 32819 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise. 32820 * tree-vect-stmts.c (vectorizable_bswap): Also perform 32821 costing for SLP operation. 32822 328232021-02-04 Martin Liska <mliska@suse.cz> 32824 32825 * doc/extend.texi: Mention -mprefer-vector-width in target 32826 attributes. 32827 328282021-02-03 Martin Sebor <msebor@redhat.com> 32829 32830 PR tree-optimization/98937 32831 * tree-ssa-strlen.c (strlen_dom_walker::~strlen_dom_walker): Define. 32832 Flush pointer_query cache. 32833 328342021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com> 32835 32836 * config/rs6000/genfusion.pl (gen_2logical): Add missing 32837 fixes based on patch review. 32838 * config/rs6000/fusion.md: Regenerate file. 32839 328402021-02-03 Aaron Sawdey <acsawdey@linux.ibm.com> 32841 32842 * config/rs6000/t-rs6000: Comment out auto generation of 32843 fusion.md for now. 32844 328452021-02-03 Andrew Stubbs <ams@codesourcery.com> 32846 32847 * config/gcn/gcn-opts.h (enum processor_type): Add PROCESSOR_GFX908. 32848 * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): Add gfx908. 32849 (output_file_start): Add gfx908. 32850 * config/gcn/gcn.opt (gpu_type): Add gfx908. 32851 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add march=gfx908. 32852 (MULTILIB_DIRNAMES): Add gfx908. 32853 * config/gcn/mkoffload.c (EF_AMDGPU_MACH_AMDGCN_GFX908): New define. 32854 (main): Recognize gfx908. 32855 * config/gcn/t-omp-device: Add gfx908. 32856 328572021-02-03 Jonathan Wright <jonathan.wright@arm.com> 32858 32859 * config/aarch64/aarch64-simd-builtins.def: Add 32860 [su]mlsl_hi_lane[q] builtin macro generators. 32861 * config/aarch64/aarch64-simd.md 32862 (aarch64_<su>mlsl_hi_lane<mode>_insn): Define. 32863 (aarch64_<su>mlsl_hi_lane<mode>): Define. 32864 (aarch64_<su>mlsl_hi_laneq<mode>_insn): Define. 32865 (aarch64_<su>mlsl_hi_laneq<mode>): Define. 32866 * config/aarch64/arm_neon.h (vmlsl_high_lane_s16): Use RTL 32867 builtin instead of inline asm. 32868 (vmlsl_high_lane_s32): Likewise. 32869 (vmlsl_high_lane_u16): Likewise. 32870 (vmlsl_high_lane_u32): Likewise. 32871 (vmlsl_high_laneq_s16): Likewise. 32872 (vmlsl_high_laneq_s32): Likewise. 32873 (vmlsl_high_laneq_u16): Likewise. 32874 (vmlsl_high_laneq_u32): Likewise. 32875 (vmlal_high_laneq_u32): Likewise. 32876 328772021-02-03 Jonathan Wright <jonathan.wright@arm.com> 32878 32879 * config/aarch64/aarch64-simd-builtins.def: Add 32880 [su]mlal_hi_lane[q] builtin generator macros. 32881 * config/aarch64/aarch64-simd.md 32882 (aarch64_<su>mlal_hi_lane<mode>_insn): Define. 32883 (aarch64_<su>mlal_hi_lane<mode>): Define. 32884 (aarch64_<su>mlal_hi_laneq<mode>_insn): Define. 32885 (aarch64_<su>mlal_hi_laneq<mode>): Define. 32886 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Use RTL 32887 builtin instead of inline asm. 32888 (vmlal_high_lane_s32): Likewise. 32889 (vmlal_high_lane_u16): Likewise. 32890 (vmlal_high_lane_u32): Likewise. 32891 (vmlal_high_laneq_s16): Likewise. 32892 (vmlal_high_laneq_s32): Likewise. 32893 (vmlal_high_laneq_u16): Likewise. 32894 (vmlal_high_laneq_u32): Likewise. 32895 328962021-02-03 Jonathan Wright <jonathan.wright@arm.com> 32897 32898 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_hi_n 32899 builtin generator macros. 32900 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_hi_n<mode>_insn): 32901 Define. 32902 (aarch64_<su>mlsl_hi_n<mode>): Define. 32903 * config/aarch64/arm_neon.h (vmlsl_high_n_s16): Use RTL builtin 32904 instead of inline asm. 32905 (vmlsl_high_n_s32): Likewise. 32906 (vmlsl_high_n_u16): Likewise. 32907 (vmlsl_high_n_u32): Likewise. 32908 329092021-02-03 Jonathan Wright <jonathan.wright@arm.com> 32910 32911 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_hi_n 32912 builtin generator macros. 32913 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_hi_n<mode>_insn): 32914 Define. 32915 (aarch64_<su>mlal_hi_n<mode>): Define. 32916 * config/aarch64/arm_neon.h (vmlal_high_n_s16): Use RTL builtin 32917 instead of inline asm. 32918 (vmlal_high_n_s32): Likewise. 32919 (vmlal_high_n_u16): Likewise. 32920 (vmlal_high_n_u32): Likewise. 32921 329222021-02-03 Jonathan Wright <jonathan.wright@arm.com> 32923 32924 * config/aarch64/aarch64-simd-builtins.def: Add RTL builtin 32925 generator macros. 32926 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal_hi<mode>): 32927 Rename to... 32928 (aarch64_<su>mlal_hi<mode>_insn): This. 32929 (aarch64_<su>mlal_hi<mode>): Define. 32930 * config/aarch64/arm_neon.h (vmlal_high_s8): Use RTL builtin 32931 instead of inline asm. 32932 (vmlal_high_s16): Likewise. 32933 (vmlal_high_s32): Likewise. 32934 (vmlal_high_u8): Likewise. 32935 (vmlal_high_u16): Likewise. 32936 (vmlal_high_u32): Likewise. 32937 329382021-02-03 Ilya Leoshkevich <iii@linux.ibm.com> 32939 32940 * lra-spills.c (remove_pseudos): Call lra_update_insn_recog_data() 32941 after calling alter_subreg() on a (mem). 32942 329432021-02-03 Martin Liska <mliska@suse.cz> 32944 32945 PR lto/98912 32946 * lto-streamer-out.c (produce_lto_section): Fill up missing 32947 padding. 32948 * lto-streamer.h (struct lto_section): Add _padding field. 32949 329502021-02-03 Richard Biener <rguenther@suse.de> 32951 32952 * lto-streamer.c (lto_get_section_name): Free temporary 32953 buffer. 32954 * tree-loop-distribution.c 32955 (loop_distribution::merge_dep_scc_partitions): Free edge data. 32956 329572021-02-03 Jakub Jelinek <jakub@redhat.com> 32958 32959 PR middle-end/97487 32960 * ifcvt.c (noce_can_force_operand): New function. 32961 (noce_emit_move_insn): Use it. 32962 (noce_try_sign_mask): Likewise. Formatting fix. 32963 329642021-02-03 Jakub Jelinek <jakub@redhat.com> 32965 32966 PR middle-end/97971 32967 * lra-constraints.c (process_alt_operands): For inline asm, don't call 32968 fatal_insn, but instead return false. 32969 329702021-02-03 Jakub Jelinek <jakub@redhat.com> 32971 32972 PR tree-optimization/98287 32973 * config/i386/mmx.md (<insn><mode>3): For shifts don't enable expander 32974 for V1DImode. 32975 329762021-02-03 Tamar Christina <tamar.christina@arm.com> 32977 32978 PR tree-optimization/98928 32979 * tree-vect-loop.c (vect_analyze_loop_2): Change 32980 STMT_VINFO_SLP_VECT_ONLY to STMT_VINFO_SLP_VECT_ONLY_PATTERN. 32981 * tree-vect-slp-patterns.c (complex_pattern::build): Likewise. 32982 * tree-vectorizer.h (STMT_VINFO_SLP_VECT_ONLY_PATTERN): New. 32983 (class _stmt_vec_info): Add slp_vect_pattern_only_p. 32984 329852021-02-02 Richard Biener <rguenther@suse.de> 32986 32987 * gimple-loop-interchange.cc (prepare_data_references): 32988 Release vectors. 32989 * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. 32990 * tree-ssa-loop-im.c (hoist_memory_references): Likewise. 32991 * tree-vect-stmts.c (vectorizable_condition): Do not 32992 allocate vectors. 32993 (vectorizable_comparison): Likewise. 32994 329952021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 32996 32997 * config/aarch64/aarch64-simd-builtins.def (ursqrte): Define builtin. 32998 * config/aarch64/aarch64-simd.md (aarch64_ursqrte<mode>): New pattern. 32999 * config/aarch64/arm_neon.h (vrsqrte_u32): Reimplement using builtin. 33000 (vrsqrteq_u32): Likewise. 33001 330022021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33003 33004 * config/aarch64/aarch64-simd-builtins.def (sqxtun2): Define builtin. 33005 * config/aarch64/aarch64-simd.md (aarch64_sqxtun2<mode>_le): Define. 33006 (aarch64_sqxtun2<mode>_be): Likewise. 33007 (aarch64_sqxtun2<mode>): Likewise. 33008 * config/aarch64/arm_neon.h (vqmovun_high_s16): Reimplement using builtin. 33009 (vqmovun_high_s32): Likewise. 33010 (vqmovun_high_s64): Likewise. 33011 * config/aarch64/iterators.md (UNSPEC_SQXTUN2): Define. 33012 330132021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33014 33015 * config/aarch64/aarch64-simd-builtins.def (bfdot_lane, bfdot_laneq): Use 33016 AUTO_FP flags. 33017 (bfmlalb_lane, bfmlalt_lane, bfmlalb_lane_q, bfmlalt_lane_q): Use FP flags. 33018 330192021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33020 33021 * config/aarch64/aarch64-simd-builtins.def (fcmla_lane0, fcmla_lane90, 33022 fcmla_lane180, fcmla_lane270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, 33023 fcmlaq_lane270, scvtf, ucvtf, fcvtzs, fcvtzu, scvtfsi, scvtfdi, ucvtfsi, 33024 ucvtfdi, fcvtzshf, fcvtzuhf, fmlal_lane_low, fmlsl_lane_low, 33025 fmlal_laneq_low, fmlsl_laneq_low, fmlalq_lane_low, fmlslq_lane_low, 33026 fmlalq_laneq_low, fmlslq_laneq_low, fmlal_lane_high, fmlsl_lane_high, 33027 fmlal_laneq_high, fmlsl_laneq_high, fmlalq_lane_high, fmlslq_lane_high, 33028 fmlalq_laneq_high, fmlslq_laneq_high): Use FP flags. 33029 330302021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33031 33032 * config/aarch64/aarch64-builtins.c (FLAG_LOAD): Define. 33033 * config/aarch64/aarch64-simd-builtins.def (ld1x2, ld2, ld3, ld4, ld2r, 33034 ld3r, ld4r, ld1, ld1x3, ld1x4): Use LOAD flags. 33035 330362021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33037 33038 * config/aarch64/aarch64-simd-builtins.def (combine, zip1, zip2, 33039 uzp1, uzp2, trn1, trn2, simd_bsl): Use AUTO_FP flags. 33040 330412021-02-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33042 33043 * config/aarch64/aarch64-simd-builtins.def (clrsb, clz, ctz, popcount, 33044 vec_smult_lane_, vec_smlal_lane_, vec_smult_laneq_, vec_smlal_laneq_, 33045 vec_umult_lane_, vec_umlal_lane_, vec_umult_laneq_, vec_umlal_laneq_, 33046 ashl, sshl, ushl, srshl, urshl, sdot_lane, udot_lane, sdot_laneq, 33047 udot_laneq, usdot_lane, usdot_laneq, sudot_lane, sudot_laneq, ashr, 33048 ashr_simd, lshr, lshr_simd, srshr_n, urshr_n, ssra_n, usra_n, srsra_n, 33049 ursra_n, sshll_n, ushll_n, sshll2_n, ushll2_n, ssri_n, usri_n, ssli_n, 33050 ssli_n, usli_n, bswap, rbit, simd_bsl, eor3q, rax1q, xarq, bcaxq): Use 33051 NONE builtin flags. 33052 330532021-02-02 Jakub Jelinek <jakub@redhat.com> 33054 33055 PR tree-optimization/98848 33056 * tree-vect-patterns.c (vect_recog_over_widening_pattern): Punt if 33057 STMT_VINFO_DEF_TYPE (last_stmt_info) is vect_reduction_def. 33058 330592021-02-02 Kito Cheng <kito.cheng@sifive.com> 33060 33061 PR target/98743 33062 * expr.c: Check mode before calling store_expr. 33063 330642021-02-02 Christophe Lyon <christophe.lyon@linaro.org> 33065 33066 * config/arm/iterators.md (supf): Remove VORNQ_S and VORNQ_U. 33067 (VORNQ): Remove. 33068 * config/arm/mve.md (mve_vornq_s<mode>): New entry for vorn 33069 instruction using expression ior. 33070 (mve_vornq_u<mode>): New expander. 33071 (mve_vornq_f<mode>): Use ior code instead of unspec. 33072 * config/arm/unspecs.md (VORNQ_S, VORNQ_U, VORNQ_F): Remove. 33073 330742021-02-02 Alexandre Oliva <oliva@adacore.com> 33075 33076 * tree-nested.c (convert_nonlocal_reference_op): Move 33077 current_function_decl restore after re-gimplification. 33078 (convert_local_reference_op): Likewise. 33079 330802021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33081 33082 * config/aarch64/aarch64-simd-builtins.def (rshrn, rshrn2): 33083 Define builtins. 33084 * config/aarch64/aarch64-simd.md (aarch64_rshrn<mode>_insn_le): 33085 Define. 33086 (aarch64_rshrn<mode>_insn_be): Likewise. 33087 (aarch64_rshrn<mode>): Likewise. 33088 (aarch64_rshrn2<mode>_insn_le): Likewise. 33089 (aarch64_rshrn2<mode>_insn_be): Likewise. 33090 (aarch64_rshrn2<mode>): Likewise. 33091 * config/aarch64/aarch64.md (unspec): Add UNSPEC_RSHRN. 33092 * config/aarch64/arm_neon.h (vrshrn_high_n_s16): Reimplement 33093 using builtin. 33094 (vrshrn_high_n_s32): Likewise. 33095 (vrshrn_high_n_s64): Likewise. 33096 (vrshrn_high_n_u16): Likewise. 33097 (vrshrn_high_n_u32): Likewise. 33098 (vrshrn_high_n_u64): Likewise. 33099 (vrshrn_n_s16): Likewise. 33100 (vrshrn_n_s32): Likewise. 33101 (vrshrn_n_s64): Likewise. 33102 (vrshrn_n_u16): Likewise. 33103 (vrshrn_n_u32): Likewise. 33104 (vrshrn_n_u64): Likewise. 33105 331062021-02-01 Sergei Trofimovich <siarheit@google.com> 33107 33108 PR tree-optimization/98499 33109 * ipa-modref.c (analyze_ssa_name_flags): treat RVO 33110 conservatively and assume all possible side-effects. 33111 331122021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33113 33114 * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi, 33115 vec_unpacku_hi_): Define builtins. 33116 * config/aarch64/arm_neon.h (vmovl_high_s8): Reimplement using 33117 builtin. 33118 (vmovl_high_s16): Likewise. 33119 (vmovl_high_s32): Likewise. 33120 (vmovl_high_u8): Likewise. 33121 (vmovl_high_u16): Likewise. 33122 (vmovl_high_u32): Likewise. 33123 331242021-02-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33125 33126 * config/aarch64/aarch64-simd-builtins.def (sabdl, uabdl): 33127 Define builtins. 33128 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl<mode>): New 33129 pattern. 33130 * config/aarch64/aarch64.md (unspec): Define UNSPEC_SABDL, 33131 UNSPEC_UABDL. 33132 * config/aarch64/arm_neon.h (vabdl_s8): Reimplemet using 33133 builtin. 33134 (vabdl_s16): Likewise. 33135 (vabdl_s32): Likewise. 33136 (vabdl_u8): Likewise. 33137 (vabdl_u16): Likewise. 33138 (vabdl_u32): Likewise. 33139 * config/aarch64/iterators.md (ABDL): New int iterator. 33140 (sur): Handle UNSPEC_SABDL, UNSPEC_UABDL. 33141 331422021-02-01 Martin Sebor <msebor@redhat.com> 33143 33144 * tree.h (BLOCK_VARS): Add comment. 33145 (BLOCK_SUBBLOCKS): Same. 33146 (BLOCK_SUPERCONTEXT): Same. 33147 (BLOCK_ABSTRACT_ORIGIN): Same. 33148 (inlined_function_outer_scope_p): Same. 33149 331502021-02-01 Martin Sebor <msebor@redhat.com> 33151 33152 PR middle-end/97172 33153 * attribs.c (attr_access::free_lang_data): Define new function. 33154 * attribs.h (attr_access::free_lang_data): Declare new function. 33155 331562021-02-01 Richard Biener <rguenther@suse.de> 33157 33158 * vec.h (auto_vec::auto_vec): Add memory stat parameters 33159 and pass them on. 33160 * bitmap.h (auto_bitmap::auto_bitmap): Likewise. 33161 331622021-02-01 Tamar Christina <tamar.christina@arm.com> 33163 33164 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>, 33165 aarch64_<su>mlsl<mode>, aarch64_<su>mlsl_n<mode>): Flip mult operands. 33166 331672021-02-01 Richard Biener <rguenther@suse.de> 33168 33169 PR rtl-optimization/98863 33170 * config/i386/i386-features.c (convert_scalars_to_vector): 33171 Set DF_RD_PRUNE_DEAD_DEFS. 33172 331732021-01-31 Eric Botcazou <ebotcazou@adacore.com> 33174 33175 * system.h (SIZE_MAX): Define if not already defined. 33176 331772021-01-30 Aaron Sawdey <acsawdey@linux.ibm.com> 33178 33179 * config/rs6000/genfusion.pl (gen_2logical): New function to 33180 generate patterns for logical-logical fusion. 33181 * config/rs6000/fusion.md: Regenerated patterns. 33182 * config/rs6000/rs6000-cpus.def: Add 33183 OPTION_MASK_P10_FUSION_2LOGICAL. 33184 * config/rs6000/rs6000.c (rs6000_option_override_internal): 33185 Enable logical-logical fusion for p10. 33186 * config/rs6000/rs6000.opt: Add -mpower10-fusion-2logical. 33187 331882021-01-30 David Edelsohn <dje.gcc@gmail.com> 33189 33190 * config/rs6000/rs6000.opt: Add periods to new AIX options. 33191 331922021-01-30 David Edelsohn <dje.gcc@gmail.com> 33193 33194 * config/rs6000/rs6000.opt (mabi=vec-extabi): New. 33195 (mabi=vec-default): New. 33196 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Define 33197 __EXTABI__ for AIX Vector extended ABI. 33198 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Print AIX Vector 33199 extabi info. 33200 (conditional_register_usage): If AIX vec_extabi enabled, vs20-vs31 33201 are non-volatile. 33202 * doc/invoke.texi (PowerPC mabi): Add AIX vec-extabi and vec-default. 33203 332042021-01-30 Jakub Jelinek <jakub@redhat.com> 33205 33206 * config/i386/i386-features.c (remove_partial_avx_dependency): Clear 33207 DF_DEFER_INSN_RESCAN after calling df_process_deferred_rescans. 33208 332092021-01-29 Vladimir N. Makarov <vmakarov@redhat.com> 33210 33211 PR target/97701 33212 * lra-constraints.c (in_class_p): Don't narrow class only for REG 33213 or MEM. 33214 332152021-01-29 Will Schmidt <will_schmidt@vnet.ibm.com> 33216 33217 * config/rs6000/rs6000-call.c (rs6000_expand_binup_builtin): Add 33218 clauses for CODE_FOR_vsx_xvcvuxddp_scale and 33219 CODE_FOR_vsx_xvcvsxddp_scale to the parameter checking code. 33220 332212021-01-29 Andrew MacLeod <amacleod@redhat.com> 33222 33223 PR tree-optimization/98866 33224 * gimple-range-gori.h (gori_compute:set_range_invariant): New. 33225 * gimple-range-gori.cc (gori_map::set_range_invariant): New. 33226 (gori_map::m_maybe_invariant): Rename from all_outgoing. 33227 (gori_map::gori_map): Rename all_outgoing to m_maybe_invariant. 33228 (gori_map::is_export_p): Ditto. 33229 (gori_map::calculate_gori): Ditto. 33230 (gori_compute::set_range_invariant): New. 33231 * gimple-range.cc (gimple_ranger::range_of_stmt): Set range 33232 invariant for pointers evaluating to [1, +INF]. 33233 332342021-01-29 Richard Biener <rguenther@suse.de> 33235 33236 PR rtl-optimization/98863 33237 * config/i386/i386-features.c (remove_partial_avx_dependency): 33238 Do not perform DF analysis. 33239 (pass_data_remove_partial_avx_dependency): Remove 33240 TODO_df_finish. 33241 332422021-01-29 Jonathan Wright <jonathan.wright@arm.com> 33243 33244 * config/aarch64/aarch64-simd-builtins.def: Add [su]mull_n 33245 builtin generator macros. 33246 * config/aarch64/aarch64-simd.md (aarch64_<su>mull_n<mode>): 33247 Define. 33248 * config/aarch64/arm_neon.h (vmull_n_s16): Use RTL builtin 33249 instead of inline asm. 33250 (vmull_n_s32): Likewise. 33251 (vmull_n_u16): Likewise. 33252 (vmull_n_u32): Likewise. 33253 332542021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33255 33256 * config/aarch64/aarch64-simd-builtins.def (sabdl2, uabdl2): 33257 Define builtins. 33258 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3): 33259 Rename to... 33260 (aarch64_<sur>abdl2<mode>): ... This. 33261 (<sur>sadv16qi): Adjust use of above. 33262 * config/aarch64/arm_neon.h (vabdl_high_s8): Reimplement using 33263 builtin. 33264 (vabdl_high_s16): Likewise. 33265 (vabdl_high_s32): Likewise. 33266 (vabdl_high_u8): Likewise. 33267 (vabdl_high_u16): Likewise. 33268 (vabdl_high_u32): Likewise. 33269 332702021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33271 33272 * config/aarch64/aarch64-simd-builtins.def (sabal2): Define 33273 builtin. 33274 (uabal2): Likewise. 33275 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal2<mode>): New 33276 pattern. 33277 * config/aarch64/aarch64.md (unspec): Add UNSPEC_SABAL2 and 33278 UNSPEC_UABAL2. 33279 * config/aarch64/arm_neon.h (vabal_high_s8): Reimplement using 33280 builtin. 33281 (vabal_high_s16): Likewise. 33282 (vabal_high_s32): Likewise. 33283 (vabal_high_u8): Likewise. 33284 (vabal_high_u16): Likewise. 33285 (vabal_high_u32): Likewise. 33286 * config/aarch64/iterators.md (ABAL2): New mode iterator. 33287 (sur): Handle UNSPEC_SABAL2, UNSPEC_UABAL2. 33288 332892021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33290 33291 * config/aarch64/aarch64-simd-builtins.def (sabal): Define 33292 builtin. 33293 (uabal): Likewise. 33294 * config/aarch64/aarch64-simd.md (aarch64_<sur>abal<mode>_4): 33295 Rename to... 33296 (aarch64_<sur>abal<mode>): ... This 33297 (<sur>sadv16qi): Adust use of the above. 33298 * config/aarch64/arm_neon.h (vabal_s8): Reimplement using 33299 builtin. 33300 (vabal_s16): Likewise. 33301 (vabal_s32): Likewise. 33302 (vabal_u8): Likewise. 33303 (vabal_u16): Likewise. 33304 (vabal_u32): Likewise. 33305 333062021-01-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33307 33308 * config/aarch64/aarch64-simd-builtins.def (saddlv, uaddlv): 33309 Define builtins. 33310 * config/aarch64/aarch64-simd.md (aarch64_<su>addlv<mode>): 33311 Define. 33312 * config/aarch64/arm_neon.h (vaddlv_s8): Reimplement using 33313 builtin. 33314 (vaddlv_s16): Likewise. 33315 (vaddlv_u8): Likewise. 33316 (vaddlv_u16): Likewise. 33317 (vaddlvq_s8): Likewise. 33318 (vaddlvq_s16): Likewise. 33319 (vaddlvq_s32): Likewise. 33320 (vaddlvq_u8): Likewise. 33321 (vaddlvq_u16): Likewise. 33322 (vaddlvq_u32): Likewise. 33323 (vaddlv_s32): Likewise. 33324 (vaddlv_u32): Likewise. 33325 * config/aarch64/iterators.md (VDQV_L): New mode iterator. 33326 (unspec): Add UNSPEC_SADDLV, UNSPEC_UADDLV. 33327 (Vwstype): New mode attribute. 33328 (Vwsuf): Likewise. 33329 (VWIDE_S): Likewise. 33330 (USADDLV): New int iterator. 33331 (su): Handle UNSPEC_SADDLV, UNSPEC_UADDLV. 33332 333332021-01-29 Jonathan Wright <jonathan.wright@arm.com> 33334 33335 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_lane[q] 33336 builtin generator macros. 33337 * config/aarch64/aarch64-simd.md (aarch64_vec_<su>mlsl_lane<Qlane>): 33338 Define. 33339 * config/aarch64/arm_neon.h (vmlsl_lane_s16): Use RTL builtin 33340 instead of inline asm. 33341 (vmlsl_lane_s32): Likewise. 33342 (vmlsl_lane_u16): Likewise. 33343 (vmlsl_lane_u32): Likewise. 33344 (vmlsl_laneq_s16): Likewise. 33345 (vmlsl_laneq_s32): Likewise. 33346 (vmlsl_laneq_u16): Likewise. 33347 (vmlsl_laneq_u32): Likewise. 33348 333492021-01-29 Richard Biener <rguenther@suse.de> 33350 33351 * doc/invoke.texi (--param max-gcse-memory): Document unit 33352 of size. 33353 * gcse.c (gcse_or_cprop_is_too_expensive): Adjust. 33354 * params.opt (--param max-gcse-memory): Adjust default and 33355 document unit of size. 33356 333572021-01-29 Richard Biener <rguenther@suse.de> 33358 33359 PR rtl-optimization/98863 33360 * gcse.c (gcse_or_cprop_is_too_expensive): Use unsigned 33361 HOST_WIDE_INT for the memory estimate. 33362 333632021-01-29 Bin Cheng <bin.cheng@linux.alibaba.com> 33364 Richard Biener <rguenther@suse.de> 33365 33366 PR tree-optimization/97627 33367 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): 33368 Do not analyze fake edges. 33369 333702021-01-29 Richard Biener <rguenther@suse.de> 33371 33372 PR rtl-optimization/98144 33373 * df.h (df_mir_bb_info): Add con_visited member. 33374 * df-problems.c (df_mir_alloc): Initialize con_visited, 33375 do not fully populate IN and OUT. 33376 (df_mir_reset): Likewise. 33377 (df_mir_confluence_0): Set con_visited. 33378 (df_mir_confluence_n): Properly handle implicitely 33379 fully populated IN and OUT as designated by con_visited 33380 and update con_visited accordingly. 33381 333822021-01-29 Jakub Jelinek <jakub@redhat.com> 33383 33384 PR target/98849 33385 * config/arm/vec-common.md (mve_vshlq_<supf><mode>, 33386 vashl<mode>3, vashr<mode>3, vlshr<mode>3): Add 33387 && !TARGET_REALLY_IWMMXT to conditions. 33388 333892021-01-29 Jakub Jelinek <jakub@redhat.com> 33390 33391 PR debug/98331 33392 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing 33393 a BARRIER. 33394 333952021-01-28 Marek Polacek <polacek@redhat.com> 33396 33397 PR c++/94775 33398 * stor-layout.c (finalize_type_size): If we reset TYPE_USER_ALIGN in 33399 the main variant, maybe reset it in its variants too. 33400 * tree.c (check_base_type): Return true only if TYPE_USER_ALIGN match. 33401 (check_aligned_type): Check if TYPE_USER_ALIGN match. 33402 334032021-01-28 Christophe Lyon <christophe.lyon@linaro.org> 33404 33405 PR target/98730 33406 * config/arm/arm.c (arm_rtx_costs_internal): Adjust cost of vector 33407 of constant zero for comparisons. 33408 334092021-01-28 Michael Meissner <meissner@linux.ibm.com> 33410 33411 * config/rs6000/rs6000.c (rs6000_mangle_decl_assembler_name): Add 33412 support for mapping built-in function names for long double 33413 built-in functions if long double is IEEE 128-bit. 33414 334152021-01-28 Jonathan Wright <jonathan.wright@arm.com> 33416 33417 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlsl_n 33418 builtin generator macros. 33419 * config/aarch64/aarch64-simd.md (aarch64_<su>mlsl_n<mode>): 33420 Define. 33421 * config/aarch64/arm_neon.h (vmlsl_n_s16): Use RTL builtin 33422 instead of inline asm. 33423 (vmlsl_n_s32): Likewise. 33424 (vmlsl_n_u16): Likewise. 33425 (vmlsl_n_u32): Likewise. 33426 334272021-01-28 Jonathan Wright <jonathan.wright@arm.com> 33428 33429 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal_n 33430 builtin generator macros. 33431 * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_n<mode>): 33432 Define. 33433 * config/aarch64/arm_neon.h (vmlal_n_s16): Use RTL builtin 33434 instead of inline asm. 33435 (vmlal_n_s32): Likewise. 33436 (vmlal_n_u16): Likewise. 33437 (vmlal_n_u32): Likewise. 33438 334392021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33440 33441 * config/aarch64/aarch64-simd-builtins.def (shrn2): Define 33442 builtin. 33443 * config/aarch64/aarch64-simd.md (aarch64_shrn2<mode>_insn_le): 33444 Define. 33445 (aarch64_shrn2<mode>_insn_be): Likewise. 33446 (aarch64_shrn2<mode>): Likewise. 33447 * config/aarch64/arm_neon.h (vshrn_high_n_s16): Reimlplement 33448 using builtins. 33449 (vshrn_high_n_s32): Likewise. 33450 (vshrn_high_n_s64): Likewise. 33451 (vshrn_high_n_u16): Likewise. 33452 (vshrn_high_n_u32): Likewise. 33453 (vshrn_high_n_u64): Likewise. 33454 334552021-01-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33456 33457 * config/aarch64/aarch64-simd-builtins.def (shrn): Define 33458 builtin. 33459 * config/aarch64/aarch64-simd.md (aarch64_shrn<mode>_insn_le): 33460 Define. 33461 (aarch64_shrn<mode>_insn_be): Likewise. 33462 (aarch64_shrn<mode>): Likewise. 33463 * config/aarch64/arm_neon.h (vshrn_n_s16): Reimplement using 33464 builtins. 33465 (vshrn_n_s32): Likewise. 33466 (vshrn_n_s64): Likewise. 33467 (vshrn_n_u16): Likewise. 33468 (vshrn_n_u32): Likewise. 33469 (vshrn_n_u64): Likewise. 33470 * config/aarch64/iterators.md (vn_mode): New mode attribute. 33471 334722021-01-28 Richard Biener <rguenther@suse.de> 33473 33474 PR rtl-optimization/80960 33475 * dse.c (check_mem_read_rtx): Call get_addr on the 33476 offsetted address. 33477 334782021-01-28 Xionghu Luo <luoxhu@linux.ibm.com> 33479 David Edelsohn <dje.gcc@gmail.com> 33480 33481 PR target/98799 33482 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 33483 Don't generate VIEW_CONVERT_EXPR for fcode ALTIVEC_BUILTIN_VEC_INSERT 33484 when -m32. 33485 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var): 33486 Delete. 33487 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Remove the 33488 wrapper call rs6000_expand_vector_set_var for cleanup. Call 33489 rs6000_expand_vector_set_var_p9 and rs6000_expand_vector_set_var_p8 33490 directly. 33491 (rs6000_expand_vector_set_var): Delete. 33492 (rs6000_expand_vector_set_var_p9): Make static. 33493 (rs6000_expand_vector_set_var_p8): Make static. 33494 334952021-01-28 Xing GUO <higuoxing@gmail.com> 33496 33497 * common/config/riscv/riscv-common.c 33498 (riscv_subset_list::parsing_subset_version): Fix -march option parsing 33499 when `p` extension exists. 33500 335012021-01-27 Vladimir N. Makarov <vmakarov@redhat.com> 33502 33503 PR rtl-optimization/97684 33504 * ira.c (ira): Call ira_set_pseudo_classes before 33505 update_equiv_regs when it is necessary. 33506 335072021-01-27 Jakub Jelinek <jakub@redhat.com> 33508 33509 PR target/98853 33510 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Use 33511 %w0, %w1 and %2 instead of %0, %1 and %2. 33512 335132021-01-27 Aaron Sawdey <acsawdey@linux.ibm.com> 33514 33515 * config/rs6000/genfusion.pl: New script to generate 33516 define_insn_and_split patterns so combine can arrange fused 33517 instructions next to each other. 33518 * config/rs6000/fusion.md: New file, generated fused instruction 33519 patterns for combine. 33520 * config/rs6000/predicates.md (const_m1_to_1_operand): New predicate. 33521 (non_update_memory_operand): New predicate. 33522 * config/rs6000/rs6000-cpus.def: Add OPTION_MASK_P10_FUSION and 33523 OPTION_MASK_P10_FUSION_LD_CMPI to ISA_3_1_MASKS_SERVER and 33524 POWERPC_MASKS. 33525 * config/rs6000/rs6000-protos.h (address_is_non_pfx_d_or_x): Add 33526 prototype. 33527 * config/rs6000/rs6000.c (rs6000_option_override_internal): 33528 Automatically set OPTION_MASK_P10_FUSION and 33529 OPTION_MASK_P10_FUSION_LD_CMPI if target is power10. 33530 (rs600_opt_masks): Allow -mpower10-fusion 33531 in function attributes. 33532 (address_is_non_pfx_d_or_x): New function. 33533 * config/rs6000/rs6000.h: Add MASK_P10_FUSION. 33534 * config/rs6000/rs6000.md: Include fusion.md. 33535 * config/rs6000/rs6000.opt: Add -mpower10-fusion 33536 and -mpower10-fusion-ld-cmpi. 33537 * config/rs6000/t-rs6000: Add dependencies involving fusion.md. 33538 335392021-01-27 Jonathan Wright <jonathan.wright@arm.com> 33540 33541 * config/aarch64/aarch64-simd-builtins.def: Add [su]mlal 33542 builtin generator macros. 33543 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlal<mode>): 33544 Rename to... 33545 (aarch64_<su>mlal<mode>): This. 33546 * config/aarch64/arm_neon.h (vmlal_s8): Use RTL builtin 33547 instead of inline asm. 33548 (vmlal_s16): Likewise. 33549 (vmlal_s32): Likewise. 33550 (vmlal_u8): Likewise. 33551 (vmlal_u16): Likewise. 33552 (vmlal_u32): Likewise. 33553 335542021-01-27 Richard Biener <rguenther@suse.de> 33555 33556 PR tree-optimization/98854 33557 * tree-vect-slp.c (vect_build_slp_tree_2): Also build 33558 PHIs from scalars when the number of CTORs matches the 33559 number of children. 33560 335612021-01-27 Jonathan Wright <jonathan.wright@arm.com> 33562 33563 * config/aarch64/aarch64-simd-builtins.def: Add mls_n builtin 33564 generator macro. 33565 * config/aarch64/aarch64-simd.md (*aarch64_mls_elt_merge<mode>): 33566 Rename to... 33567 (aarch64_mls_n<mode>): This. 33568 * config/aarch64/arm_neon.h (vmls_n_s16): Use RTL builtin 33569 instead of asm. 33570 (vmls_n_s32): Likewise. 33571 (vmls_n_u16): Likewise. 33572 (vmls_n_u32): Likewise. 33573 (vmlsq_n_s16): Likewise. 33574 (vmlsq_n_s32): Likewise. 33575 (vmlsq_n_u16): Likewise. 33576 (vmlsq_n_u32): Likewise. 33577 335782021-01-27 Jonathan Wright <jonathan.wright@arm.com> 33579 33580 * config/aarch64/aarch64-simd-builtins.def: Add mls builtin 33581 generator macro. 33582 * config/aarch64/arm_neon.h (vmls_s8): Use RTL builtin rather 33583 than asm. 33584 (vmls_s16): Likewise. 33585 (vmls_s32): Likewise. 33586 (vmls_u8): Likewise. 33587 (vmls_u16): Likewise. 33588 (vmls_u32): Likewise. 33589 (vmlsq_s8): Likewise. 33590 (vmlsq_s16): Likewise. 33591 (vmlsq_s32): Likewise. 33592 (vmlsq_u8): Likewise. 33593 (vmlsq_u16): Likewise. 33594 (vmlsq_u32): Likewise. 33595 335962021-01-27 Jonathan Wright <jonathan.wright@arm.com> 33597 33598 * config/aarch64/aarch64-simd-builtins.def: Add mla_n builtin 33599 generator macro. 33600 * config/aarch64/aarch64-simd.md (*aarch64_mla_elt_merge<mode>): 33601 Rename to... 33602 (aarch64_mla_n<mode>): This. 33603 * config/aarch64/arm_neon.h (vmla_n_s16): Use RTL builtin 33604 instead of asm. 33605 (vmla_n_s32): Likewise. 33606 (vmla_n_u16): Likewise. 33607 (vmla_n_u32): Likewise. 33608 (vmlaq_n_s16): Likewise. 33609 (vmlaq_n_s32): Likewise. 33610 (vmlaq_n_u16): Likewise. 33611 (vmlaq_n_u32): Likewise. 33612 336132021-01-27 liuhongt <hongtao.liu@intel.com> 33614 33615 PR target/98833 33616 * config/i386/sse.md (sse2_gt<mode>3): Drop !TARGET_XOP in condition. 33617 (*sse2_eq<mode>3): Ditto. 33618 336192021-01-27 Jakub Jelinek <jakub@redhat.com> 33620 33621 * tree-pass.h (PROP_trees): Rename to ... 33622 (PROP_gimple): ... this. 33623 * cfgexpand.c (pass_data_expand): Replace PROP_trees with PROP_gimple. 33624 * passes.c (execute_function_dump, execute_function_todo, 33625 execute_one_ipa_transform_pass, execute_one_pass): Likewise. 33626 * varpool.c (ctor_for_folding): Likewise. 33627 336282021-01-27 Jakub Jelinek <jakub@redhat.com> 33629 33630 PR tree-optimization/97260 33631 * varpool.c: Include tree-pass.h. 33632 (ctor_for_folding): In GENERIC return DECL_INITIAL for TREE_READONLY 33633 non-TREE_SIDE_EFFECTS automatic variables. 33634 336352021-01-26 Paul Fee <paul.f.fee@gmail.com> 33636 33637 * doc/cpp.texi (__cplusplus): Document value for -std=c++23 33638 or -std=gnu++23. 33639 * doc/invoke.texi: Document -std=c++23 and -std=gnu++23. 33640 * dwarf2out.c (highest_c_language): Recognise C++20 and C++23. 33641 (gen_compile_unit_die): Recognise C++23. 33642 336432021-01-26 Jakub Jelinek <jakub@redhat.com> 33644 33645 PR bootstrap/98839 33646 * dwarf2asm.c (dw2_assemble_integer): Cast DWARF2_ADDR_SIZE to int 33647 in comparison. 33648 336492021-01-26 Jakub Jelinek <jakub@redhat.com> 33650 33651 PR target/98681 33652 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): 33653 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt) 33654 and INTVAL (mask). Add && INTVAL (mask) > 0 condition. 33655 336562021-01-26 Richard Biener <rguenther@suse.de> 33657 33658 * gimple-pretty-print.c (dump_binary_rhs): Handle 33659 VEC_WIDEN_{PLUS,MINUS}_{LO,HI}_EXPR. 33660 336612021-01-26 Richard Biener <rguenther@suse.de> 33662 33663 PR middle-end/98726 33664 * tree.h (vector_cst_int_elt): Remove. 33665 * tree.c (vector_cst_int_elt): Use poly_wide_int for computations, 33666 make static. 33667 336682021-01-26 Andrew Stubbs <ams@codesourcery.com> 33669 33670 * config/gcn/gcn.c (gcn_expand_reduc_scalar): Use move instructions 33671 for V64DFmode min/max reductions. 33672 336732021-01-26 Jakub Jelinek <jakub@redhat.com> 33674 33675 * dwarf2asm.c (dw2_assemble_integer): Handle size twice as large 33676 as DWARF2_ADDR_SIZE if x is not a scalar int by emitting it as 33677 two halves, one with x and the other with const0_rtx, ordered 33678 depending on endianity. 33679 336802021-01-26 Alexandre Oliva <oliva@adacore.com> 33681 33682 * gimplify.c (gimplify_decl_expr): Skip asan marking calls for 33683 temporaries not seen in binding block, and not about to be 33684 added as gimple variables. 33685 336862021-01-25 Martin Sebor <msebor@redhat.com> 33687 33688 PR c++/98646 33689 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust warning text. 33690 336912021-01-25 Martin Liska <mliska@suse.cz> 33692 33693 * value-prof.c (get_nth_most_common_value): Use %s instead 33694 of %qs string. 33695 336962021-01-25 Jakub Jelinek <jakub@redhat.com> 33697 33698 PR debug/98811 33699 * configure.ac (HAVE_AS_GDWARF_5_DEBUG_FLAG): Only define if 33700 readelf -wi is able to read the emitted .debug_info back. 33701 * configure: Regenerated. 33702 337032021-01-25 Martin Liska <mliska@suse.cz> 33704 33705 PR gcov-profile/98739 33706 * common.opt: Add missing sign symbol. 33707 * value-prof.c (get_nth_most_common_value): Restore handling 33708 of PROFILE_REPRODUCIBILITY_PARALLEL_RUNS and 33709 PROFILE_REPRODUCIBILITY_MULTITHREADED. 33710 337112021-01-25 Richard Biener <rguenther@suse.de> 33712 33713 PR middle-end/98807 33714 * tree.c (vector_element_bits): Always use precision of 33715 the element type for boolean vectors. 33716 337172021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de> 33718 33719 * config/rtems.h (STARTFILE_SPEC): Remove qnolinkcmds. 33720 (ENDFILE_SPEC): Evaluate qnolinkcmds. 33721 337222021-01-25 Sebastian Huber <sebastian.huber@embedded-brains.de> 33723 33724 * config/rtems.h (STARTFILE_SPEC): Remove nostdlib and 33725 nostartfiles handling since this is already done by 33726 LINK_COMMAND_SPEC. Evaluate qnolinkcmds. 33727 (ENDFILE_SPEC): Remove nostdlib and nostartfiles handling since this 33728 is already done by LINK_COMMAND_SPEC. 33729 (LIB_SPECS): Remove nostdlib and nodefaultlibs handling since 33730 this is already done by LINK_COMMAND_SPEC. Remove qnolinkcmds 33731 evaluation. 33732 337332021-01-25 Jakub Jelinek <jakub@redhat.com> 33734 33735 PR testsuite/98771 33736 * fold-const-call.c (host_size_t_cst_p): Renamed to ... 33737 (size_t_cst_p): ... this. Check and store unsigned HOST_WIDE_INT 33738 value rather than host size_t. 33739 (fold_const_call): Change type of s2 from size_t to 33740 unsigned HOST_WIDE_INT. Use size_t_cst_p instead of 33741 host_size_t_cst_p. For strncmp calls, pass MIN (s2, SIZE_MAX) 33742 instead of s2 as last argument. 33743 337442021-01-25 Tamar Christina <tamar.christina@arm.com> 33745 33746 * config/arm/iterators.md (rotsplit1, rotsplit2, conj_op, fcmac1, 33747 VCMLA_OP, VCMUL_OP): New. 33748 * config/arm/mve.md (mve_vcmlaq<mve_rot><mode>): Support vec_dup 0. 33749 * config/arm/neon.md (cmul<conj_op><mode>3): New. 33750 * config/arm/unspecs.md (UNSPEC_VCMLA_CONJ, UNSPEC_VCMLA180_CONJ, 33751 UNSPEC_VCMUL_CONJ): New. 33752 * config/arm/vec-common.md (cmul<conj_op><mode>3, arm_vcmla<rot><mode>, 33753 cml<fcmac1><conj_op><mode>4): New. 33754 337552021-01-23 Jakub Jelinek <jakub@redhat.com> 33756 33757 PR testsuite/97301 33758 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute. 33759 337602021-01-22 Jonathan Wright <jonathan.wright@arm.com> 33761 33762 * config/aarch64/aarch64-simd-builtins.def: Add mla builtin 33763 generator macro. 33764 * config/aarch64/arm_neon.h (vmla_s8): Use RTL builtin rather 33765 than asm. 33766 (vmla_s16): Likewise. 33767 (vmla_s32): Likewise. 33768 (vmla_u8): Likewise. 33769 (vmla_u16): Likewise. 33770 (vmla_u32): Likewise. 33771 (vmlaq_s8): Likewise. 33772 (vmlaq_s16): Likewise. 33773 (vmlaq_s32): Likewise. 33774 (vmlaq_u8): Likewise. 33775 (vmlaq_u16): Likewise. 33776 (vmlaq_u32): Likewise. 33777 337782021-01-22 David Malcolm <dmalcolm@redhat.com> 33779 33780 * doc/invoke.texi (GCC_EXTRA_DIAGNOSTIC_OUTPUT): Add @findex 33781 directive. 33782 337832021-01-22 Jakub Jelinek <jakub@redhat.com> 33784 33785 PR debug/98796 33786 * dwarf2out.c (output_file_names): For -gdwarf-5, if there are no 33787 filenames to emit, still emit the required 0 index directory and 33788 filename entries that match DW_AT_comp_dir and DW_AT_name of the 33789 compilation unit. 33790 337912021-01-22 Marek Polacek <polacek@redhat.com> 33792 33793 PR c++/98545 33794 * doc/invoke.texi: Update C++ ABI Version 15 description. 33795 337962021-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33797 33798 PR tree-optimization/98766 33799 * tree-ssa-math-opts.c (convert_mult_to_fma): Use maybe_le when 33800 comparing against type size with param_avoid_fma_max_bits. 33801 338022021-01-22 Richard Biener <rguenther@suse.de> 33803 33804 PR middle-end/98793 33805 * tree.c (vector_element_bits): Key single-bit bool vector on 33806 integer mode rather than not vector mode. 33807 338082021-01-22 Xionghu Luo <luoxhu@linux.ibm.com> 33809 33810 PR target/98093 33811 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 33812 Generate ARRAY_REF(VIEW_CONVERT_EXPR) for P8 and later 33813 platforms. 33814 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): Update 33815 to call different path for P8 and P9. 33816 (rs6000_expand_vector_set_var_p9): New function. 33817 (rs6000_expand_vector_set_var_p8): New function. 33818 338192021-01-22 Xionghu Luo <luoxhu@linux.ibm.com> 33820 33821 PR target/79251 33822 PR target/98065 33823 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 33824 Ajdust variable index vec_insert from address dereference to 33825 ARRAY_REF(VIEW_CONVERT_EXPR) tree expression. 33826 * config/rs6000/rs6000-protos.h (rs6000_expand_vector_set_var): 33827 New declaration. 33828 * config/rs6000/rs6000.c (rs6000_expand_vector_set_var): New function. 33829 338302021-01-22 Martin Liska <mliska@suse.cz> 33831 33832 PR gcov-profile/98739 33833 * profile.c (compute_value_histograms): Drop time profile for 33834 -fprofile-reproducible=multithreaded. 33835 338362021-01-22 Nathan Sidwell <nathan@acm.org> 33837 33838 * gcc.c (process_command): Don't check OPT_SPECIAL_input_file 33839 existence here. 33840 338412021-01-22 Richard Biener <rguenther@suse.de> 33842 33843 PR middle-end/98773 33844 * tree-data-ref.c (initalize_matrix_A): Revert previous 33845 change, retaining failing on HOST_WIDE_INT_MIN CHREC_RIGHT. 33846 338472021-01-22 Jakub Jelinek <jakub@redhat.com> 33848 33849 PR tree-optimization/90248 33850 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X), 33851 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove 33852 simplifications. 33853 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X), 33854 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications. 33855 338562021-01-22 Jakub Jelinek <jakub@redhat.com> 33857 33858 PR tree-optimization/98255 33859 * tree-dfa.c (get_ref_base_and_extent): For ARRAY_REFs, sign 33860 extend index - low_bound from sizetype's precision rather than index 33861 precision. 33862 (get_addr_base_and_unit_offset_1): Likewise. 33863 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Likewise. 33864 * gimple-fold.c (fold_const_aggregate_ref_1): Likewise. 33865 338662021-01-22 Richard Biener <rguenther@suse.de> 33867 33868 PR tree-optimization/98786 33869 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid 33870 adding new uses of abnormals. Verify we deal with a conditional 33871 conversion. 33872 338732021-01-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 33874 33875 PR target/98636 33876 * optc-save-gen.awk: Add arm_fp16_format to checked_options. 33877 338782021-01-22 liuhongt <hongtao.liu@intel.com> 33879 33880 PR target/96891 33881 PR target/98348 33882 * config/i386/sse.md (VI_128_256): New mode iterator. 33883 (*avx_cmp<mode>3_1, *avx_cmp<mode>3_2, *avx_cmp<mode>3_3, 33884 *avx_cmp<mode>3_4, *avx2_eq<mode>3, *avx2_pcmp<mode>3_1, 33885 *avx2_pcmp<mode>3_2, *avx2_gt<mode>3): New 33886 define_insn_and_split to lower avx512 vector comparison to avx 33887 version when dest is vector. 33888 (*<avx512>_cmp<mode>3,*<avx512>_cmp<mode>3,*<avx512>_ucmp<mode>3): 33889 define_insn_and_split for negating the comparison result. 33890 * config/i386/predicates.md (float_vector_all_ones_operand): 33891 New predicate. 33892 * config/i386/i386-expand.c (ix86_expand_sse_movcc): Use 33893 general NOT operator without UNSPEC_MASKOP. 33894 338952021-01-21 Vladimir N. Makarov <vmakarov@redhat.com> 33896 33897 PR rtl-optimization/98777 33898 * lra-int.h (lra_pmode_pseudo): New extern. 33899 * lra.c (lra_pmode_pseudo): New global. 33900 (lra): Set it up. 33901 * lra-eliminations.c (eliminate_regs_in_insn): Use it. 33902 339032021-01-21 Ilya Leoshkevich <iii@linux.ibm.com> 33904 33905 * fwprop.c (fwprop_propagation::classify_result): Allow 33906 (subreg (mem)) simplifications. 33907 339082021-01-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33909 33910 * config/aarch64/aarch64-simd.md (aarch64_sqdml<SBINQOPS:as>l<mode>): 33911 Split into... 33912 (aarch64_sqdmlal<mode>): ... This... 33913 (aarch64_sqdmlsl<mode>): ... And this. 33914 (aarch64_sqdml<SBINQOPS:as>l_lane<mode>): Split into... 33915 (aarch64_sqdmlal_lane<mode>): ... This... 33916 (aarch64_sqdmlsl_lane<mode>): ... And this. 33917 (aarch64_sqdml<SBINQOPS:as>l_laneq<mode>): Split into... 33918 (aarch64_sqdmlsl_laneq<mode>): ... This... 33919 (aarch64_sqdmlal_laneq<mode>): ... And this. 33920 (aarch64_sqdml<SBINQOPS:as>l_n<mode>): Split into... 33921 (aarch64_sqdmlsl_n<mode>): ... This... 33922 (aarch64_sqdmlal_n<mode>): ... And this. 33923 (aarch64_sqdml<SBINQOPS:as>l2<mode>_internal): Split into... 33924 (aarch64_sqdmlal2<mode>_internal): ... This... 33925 (aarch64_sqdmlsl2<mode>_internal): ... And this. 33926 339272021-01-21 Christophe Lyon <christophe.lyon@linaro.org> 33928 33929 * config/arm/arm_mve.h (__arm_vcmpneq_s8): Fix return type. 33930 339312021-01-21 Andrea Corallo <andrea.corallo@arm.com> 33932 33933 PR target/96372 33934 * doc/sourcebuild.texi (arm_thumb2_no_arm_v8_1_lob): Document. 33935 339362021-01-21 liuhongt <hongtao.liu@intel.com> 33937 33938 PR rtl-optimization/98694 33939 * regcprop.c (copy_value): If SRC had been assigned a mode 33940 narrower than the copy, we can't link DEST into the chain even 33941 they have same hard_regno_nregs(i.e. HImode/SImode in i386 33942 backend). 33943 339442021-01-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33945 33946 * config/aarch64/aarch64-simd.md (aarch64_get_lane<mode>): 33947 Convert to define_insn_and_split. Split into simple move when moving 33948 bottom element. 33949 339502021-01-20 Segher Boessenkool <segher@kernel.crashing.org> 33951 33952 * config/rs6000/rs6000.c (rs6000_emit_le_vsx_store): Change assert. 33953 Adjust comment. Simplify code. 33954 339552021-01-20 Jakub Jelinek <jakub@redhat.com> 33956 33957 PR debug/98765 33958 * dwarf2out.c (reset_indirect_string): Also reset indirect strings 33959 with DW_FORM_line_strp form. 33960 (prune_unused_types_update_strings): Don't add into debug_str_hash 33961 indirect strings with DW_FORM_line_strp form. 33962 (adjust_name_comp_dir): New function. 33963 (dwarf2out_finish): Call it on CU DIEs after resetting 33964 debug_line_str_hash. 33965 339662021-01-20 Vladimir N. Makarov <vmakarov@redhat.com> 33967 33968 PR rtl-optimization/98722 33969 * lra-eliminations.c (eliminate_regs_in_insn): Check that target 33970 has no 3-op add insn to transform insns containing two pluses. 33971 339722021-01-20 Richard Biener <rguenther@suse.de> 33973 33974 * hwint.h (add_hwi): New function. 33975 (mul_hwi): Likewise. 33976 * tree-data-ref.c (initialize_matrix_A): Properly translate 33977 tree constants and avoid HOST_WIDE_INT_MIN. 33978 (lambda_matrix_row_add): Avoid undefined integer overflow 33979 and return true on such overflow. 33980 (lambda_matrix_right_hermite): Handle overflow from 33981 lambda_matrix_row_add gracefully. Simplify previous fix. 33982 (analyze_subscript_affine_affine): Likewise. 33983 339842021-01-20 Eugene Rozenfeld <erozen@microsoft.com> 33985 33986 PR tree-optimization/96674 33987 * match.pd: New patterns: x < y || y == XXX_MIN --> x <= y - 1 33988 x >= y && y != XXX_MIN --> x > y - 1 33989 339902021-01-20 Richard Sandiford <richard.sandiford@arm.com> 33991 33992 PR tree-optimization/98535 33993 * tree-vect-slp.c (duplicate_and_interleave): Use quick_grow_cleared. 33994 If the high and low permutes are the same, remove the high permutes 33995 from the working set and only continue with the low ones. 33996 339972021-01-20 Jakub Jelinek <jakub@redhat.com> 33998 33999 PR tree-optimization/98721 34000 * builtins.c (access_ref::inform_access): Don't assume 34001 SSA_NAME_IDENTIFIER must be non-NULL. Print messages about 34002 object whenever allocfn is NULL, rather than only when DECL_P 34003 is true. Use %qE instead of %qD for that. Formatting fixes. 34004 340052021-01-20 Richard Biener <rguenther@suse.de> 34006 34007 PR tree-optimization/98758 34008 * tree-data-ref.c (int_divides_p): Use lambda_int arguments. 34009 (lambda_matrix_right_hermite): Avoid undefinedness with 34010 signed integer abs and multiplication. 34011 (analyze_subscript_affine_affine): Use lambda_int. 34012 340132021-01-20 David Malcolm <dmalcolm@redhat.com> 34014 34015 PR debug/98751 34016 * dwarf2out.c (output_line_info): Rename static variable 34017 "generation", moving it out of the function to... 34018 (output_line_info_generation): New. 34019 (init_sections_and_labels): Likewise, renaming the variable to... 34020 (init_sections_and_labels_generation): New. 34021 (dwarf2out_c_finalize): Reset the new variables. 34022 340232021-01-19 Martin Sebor <msebor@redhat.com> 34024 34025 PR middle-end/98664 34026 * tree-ssa-live.c (remove_unused_scope_block_p): Keep scopes for 34027 all functions, even if they're not declared artificial or inline. 34028 * tree.c (tree_inlined_location): Use macro expansion location 34029 only if scope traversal fails to expose one. 34030 340312021-01-19 Richard Sandiford <richard.sandiford@arm.com> 34032 34033 PR rtl-optimization/92294 34034 * alias.c (compare_base_symbol_refs): Take an extra parameter 34035 and add the distance between two symbols to it. Enshrine in 34036 comments that -1 means "either 0 or 1, but we can't tell 34037 which at compile time". 34038 (memrefs_conflict_p): Update call accordingly. 34039 (rtx_equal_for_memref_p): Likewise. Take the distance between symbols 34040 into account. 34041 340422021-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34043 34044 * config/aarch64/aarch64-simd-builtins.def (sqshl, uqshl, 34045 sqrshl, uqrshl, sqadd, uqadd, sqsub, uqsub, suqadd, usqadd, sqmovn, 34046 uqmovn, sqxtn2, uqxtn2, sqabs, sqneg, sqdmlal, sqdmlsl, sqdmlal_lane, 34047 sqdmlsl_lane, sqdmlal_laneq, sqdmlsl_laneq, sqdmlal_n, sqdmlsl_n, 34048 sqdmlal2, sqdmlsl2, sqdmlal2_lane, sqdmlsl2_lane, sqdmlal2_laneq, 34049 sqdmlsl2_laneq, sqdmlal2_n, sqdmlsl2_n, sqdmull, sqdmull_lane, 34050 sqdmull_laneq, sqdmull_n, sqdmull2, sqdmull2_lane, sqdmull2_laneq, 34051 sqdmull2_n, sqdmulh, sqrdmulh, sqdmulh_lane, sqdmulh_laneq, 34052 sqrdmulh_lane, sqrdmulh_laneq, sqshrun_n, sqrshrun_n, sqshrn_n, 34053 uqshrn_n, sqrshrn_n, uqrshrn_n, sqshlu_n, sqshl_n, uqshl_n, sqrdmlah, 34054 sqrdmlsh, sqrdmlah_lane, sqrdmlsh_lane, sqrdmlah_laneq, sqrdmlsh_laneq, 34055 sqmovun): Use NONE flags. 34056 340572021-01-19 Richard Biener <rguenther@suse.de> 34058 34059 PR ipa/98330 34060 * ipa-modref.c (analyze_stmt): Only record a summary for a 34061 direct call. 34062 340632021-01-19 Richard Biener <rguenther@suse.de> 34064 34065 PR middle-end/98638 34066 * tree-ssanames.c (fini_ssanames): Zero SSA_NAME_DEF_STMT. 34067 340682021-01-19 Daniel Hellstrom <daniel@gaisler.com> 34069 34070 * config/sparc/rtemself.h (TARGET_OS_CPP_BUILTINS): Add 34071 built-in define __FIX_LEON3FT_TN0018. 34072 340732021-01-19 Richard Biener <rguenther@suse.de> 34074 34075 PR ipa/97673 34076 * tree-inline.c (tree_function_versioning): Set input_location 34077 to UNKNOWN_LOCATION throughout the function. 34078 340792021-01-19 Tobias Burnus <tobias@codesourcery.com> 34080 34081 PR fortran/98476 34082 * omp-low.c (lower_omp_target): Handle nonpointer is_device_ptr. 34083 340842021-01-19 Martin Jambor <mjambor@suse.cz> 34085 34086 PR ipa/98690 34087 * ipa-sra.c (ssa_name_only_returned_p): New parameter fun. Check 34088 whether non-call exceptions allow removal of a statement. 34089 (isra_analyze_call): Pass the appropriate function to 34090 ssa_name_only_returned_p. 34091 340922021-01-19 Geng Qi <gengqi@linux.alibaba.com> 34093 34094 * config/riscv/arch-canonicalize (longext_sort): New function for 34095 sorting 'multi-letter'. 34096 * config/riscv/multilib-generator: Adjusting the loop of 'alt' in 34097 'alts'. The 'arch' may not be the first of 'alts'. 34098 (_expand_combination): Add underline for the 'ext' without '*'. 34099 This is because, a single-letter extension can always be treated well 34100 with a '_' prefix, but it cannot be separated out if it is appended 34101 to a multi-letter. 34102 341032021-01-18 Vladimir N. Makarov <vmakarov@redhat.com> 34104 34105 PR target/97847 34106 * ira.c (ira): Skip abnormal critical edge splitting. 34107 341082021-01-18 Jakub Jelinek <jakub@redhat.com> 34109 34110 PR tree-optimization/98727 34111 * tree-ssa-math-opts.c (match_arith_overflow): Fix up computation of 34112 second .MUL_OVERFLOW operand for signed multiplication with overflow 34113 checking if the second operand of multiplication is not constant. 34114 341152021-01-18 David Edelsohn <dje.gcc@gmail.com> 34116 34117 * doc/invoke.texi (-gdwarf): TPF defaults to version 2 and AIX 34118 defaults to version 4. 34119 341202021-01-18 David Malcolm <dmalcolm@redhat.com> 34121 34122 * attribs.h (fndecl_dealloc_argno): New decl. 34123 * builtins.c (call_dealloc_argno): Split out second half of 34124 function into... 34125 (fndecl_dealloc_argno): New. 34126 * doc/extend.texi (Common Function Attributes): Document the 34127 interaction between the analyzer and the malloc attribute. 34128 * doc/invoke.texi (Static Analyzer Options): Likewise. 34129 341302021-01-17 David Edelsohn <dje.gcc@gmail.com> 34131 34132 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Override 34133 dwarf_version to 4. 34134 * config/rs6000/aix72.h (SUBTARGET_OVERRIDE_OPTIONS): Same. 34135 341362021-01-17 Martin Jambor <mjambor@suse.cz> 34137 34138 PR ipa/98222 34139 * cgraph.c (clone_of_p): Check also former_clone_of as we climb 34140 the clone tree. 34141 341422021-01-17 Mark Wielaard <mark@klomp.org> 34143 34144 * common.opt (gdwarf-): Init(5). 34145 * doc/invoke.texi (-gdwarf): Document default to 5. 34146 341472021-01-16 Kwok Cheung Yeung <kcy@codesourcery.com> 34148 34149 * builtin-types.def 34150 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT): Rename 34151 to... 34152 (BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR): 34153 ...this. Add extra argument. 34154 * gimplify.c (omp_default_clause): Ensure that event handle is 34155 firstprivate in a task region. 34156 (gimplify_scan_omp_clauses): Handle OMP_CLAUSE_DETACH. 34157 (gimplify_adjust_omp_clauses): Likewise. 34158 * omp-builtins.def (BUILT_IN_GOMP_TASK): Change function type to 34159 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT_PTR_INT_PTR. 34160 * omp-expand.c (expand_task_call): Add GOMP_TASK_FLAG_DETACH to flags 34161 if detach clause specified. Add detach argument when generating 34162 call to GOMP_task. 34163 * omp-low.c (scan_sharing_clauses): Setup data environment for detach 34164 clause. 34165 (finish_taskreg_scan): Move field for variable containing the event 34166 handle to the front of the struct. 34167 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DETACH. Fix 34168 ordering. 34169 * tree-nested.c (convert_nonlocal_omp_clauses): Handle 34170 OMP_CLAUSE_DETACH clause. 34171 (convert_local_omp_clauses): Handle OMP_CLAUSE_DETACH clause. 34172 * tree-pretty-print.c (dump_omp_clause): Handle OMP_CLAUSE_DETACH. 34173 * tree.c (omp_clause_num_ops): Add entry for OMP_CLAUSE_DETACH. 34174 Fix ordering. 34175 (omp_clause_code_name): Add entry for OMP_CLAUSE_DETACH. Fix 34176 ordering. 34177 (walk_tree_1): Handle OMP_CLAUSE_DETACH. 34178 341792021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de> 34180 34181 * config/nios2/t-rtems: Reset all MULTILIB_* variables. Shorten 34182 multilib directory names. Use MULTILIB_REQUIRED instead of 34183 MULTILIB_EXCEPTIONS. Add -mhw-mul -mhw-mulx -mhw-div 34184 -mcustom-fpu-cfg=fph2 multilib. 34185 341862021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de> 34187 34188 * config/nios2/nios2.c (NIOS2_FPU_CONFIG_NUM): Adjust value. 34189 (nios2_init_fpu_configs): Provide register values for new 34190 -mcustom-fpu-cfg=fph2 option variant. 34191 * doc/invoke.texi (-mcustom-fpu-cfg=fph2): Document new option 34192 variant. 34193 341942021-01-16 Sebastian Huber <sebastian.huber@embedded-brains.de> 34195 34196 * config/nios2/nios2.c (nios2_custom_check_insns): Remove 34197 custom instruction warnings. 34198 341992021-01-16 Jakub Jelinek <jakub@redhat.com> 34200 34201 PR tree-optimization/96669 34202 * match.pd ((CST << x) & 1 -> x == 0): New simplification. 34203 342042021-01-16 Jakub Jelinek <jakub@redhat.com> 34205 34206 PR tree-optimization/96271 34207 * passes.def: Pass false argument to first two pass_cd_dce 34208 instances and true to last instance. Add comment that 34209 last instance rewrites no longer addressed locals. 34210 * tree-ssa-dce.c (pass_cd_dce): Add update_address_taken_p member and 34211 initialize it. 34212 (pass_cd_dce::set_pass_param): New method. 34213 (pass_cd_dce::execute): Return TODO_update_address_taken from 34214 last cd_dce instance. 34215 342162021-01-15 Carl Love <cel@us.ibm.com> 34217 34218 * config/rs6000/altivec.h (vec_mulh, vec_div, vec_dive, vec_mod): 34219 New defines. 34220 * config/rs6000/altivec.md (VIlong): Move define to file vsx.md. 34221 * config/rs6000/rs6000-builtin.def (DIVES_V4SI, DIVES_V2DI, 34222 DIVEU_V4SI, DIVEU_V2DI, DIVS_V4SI, DIVS_V2DI, DIVU_V4SI, 34223 DIVU_V2DI, MODS_V2DI, MODS_V4SI, MODU_V2DI, MODU_V4SI, 34224 MULHS_V2DI, MULHS_V4SI, MULHU_V2DI, MULHU_V4SI, MULLD_V2DI): 34225 Add builtin define. 34226 (MULH, DIVE, MOD): Add new BU_P10_OVERLOAD_2 definitions. 34227 * config/rs6000/rs6000-call.c (VSX_BUILTIN_VEC_DIV, 34228 VSX_BUILTIN_VEC_DIVE, P10_BUILTIN_VEC_MOD, P10_BUILTIN_VEC_MULH): 34229 New overloaded definitions. 34230 (builtin_function_type) [P10V_BUILTIN_DIVEU_V4SI, 34231 P10V_BUILTIN_DIVEU_V2DI, P10V_BUILTIN_DIVU_V4SI, 34232 P10V_BUILTIN_DIVU_V2DI, P10V_BUILTIN_MODU_V2DI, 34233 P10V_BUILTIN_MODU_V4SI, P10V_BUILTIN_MULHU_V2DI, 34234 P10V_BUILTIN_MULHU_V4SI]: Add case 34235 statement for builtins. 34236 * config/rs6000/rs6000.md (bits): Add new attribute sizes V4SI, V2DI. 34237 * config/rs6000/vsx.md (VIlong): Moved from config/rs6000/altivec.md. 34238 (UNSPEC_VDIVES, UNSPEC_VDIVEU): New unspec definitions. 34239 (vsx_mul_v2di): Add if TARGET_POWER10 statement. 34240 (vsx_udiv_v2di): Add if TARGET_POWER10 statement. 34241 (dives_<mode>, diveu_<mode>, div<mode>3, uvdiv<mode>3, 34242 mods_<mode>, modu_<mode>, mulhs_<mode>, mulhu_<mode>, mulv2di3): 34243 Add define_insn, mode is VIlong. 34244 * doc/extend.texi (vec_mulh, vec_mul, vec_div, vec_dive, vec_mod): 34245 Add builtin descriptions. 34246 342472021-01-15 Eric Botcazou <ebotcazou@adacore.com> 34248 34249 * final.c (final_start_function_1): Reset force_source_line. 34250 342512021-01-15 Jakub Jelinek <jakub@redhat.com> 34252 34253 PR tree-optimization/96669 34254 * match.pd (((1 << A) & 1) != 0 -> A == 0, 34255 ((1 << A) & 1) == 0 -> A != 0): Generalize for 1s replaced by 34256 possibly different power of two constants and to right shift too. 34257 342582021-01-15 Jakub Jelinek <jakub@redhat.com> 34259 34260 PR tree-optimization/96681 34261 * match.pd ((x < 0) ^ (y < 0) to (x ^ y) < 0): New simplification. 34262 ((x >= 0) ^ (y >= 0) to (x ^ y) < 0): Likewise. 34263 ((x < 0) ^ (y >= 0) to (x ^ y) >= 0): Likewise. 34264 ((x >= 0) ^ (y < 0) to (x ^ y) >= 0): Likewise. 34265 342662021-01-15 Alexandre Oliva <oliva@adacore.com> 34267 34268 * opts.c (gen_command_line_string): Exclude -dumpbase-ext. 34269 342702021-01-15 Tamar Christina <tamar.christina@arm.com> 34271 34272 * config/aarch64/aarch64-simd.md (cml<fcmac1><conj_op><mode>4, 34273 cmul<conj_op><mode>3): New. 34274 * config/aarch64/iterators.md (UNSPEC_FCMUL, 34275 UNSPEC_FCMUL180, UNSPEC_FCMLA_CONJ, UNSPEC_FCMLA180_CONJ, 34276 UNSPEC_CMLA_CONJ, UNSPEC_CMLA180_CONJ, UNSPEC_CMUL, UNSPEC_CMUL180, 34277 FCMLA_OP, FCMUL_OP, conj_op, rotsplit1, rotsplit2, fcmac1, sve_rot1, 34278 sve_rot2, SVE2_INT_CMLA_OP, SVE2_INT_CMUL_OP, SVE2_INT_CADD_OP): New. 34279 (rot): Add UNSPEC_FCMUL, UNSPEC_FCMUL180. 34280 (rot_op): Renamed to conj_op. 34281 * config/aarch64/aarch64-sve.md (cml<fcmac1><conj_op><mode>4, 34282 cmul<conj_op><mode>3): New. 34283 * config/aarch64/aarch64-sve2.md (cml<fcmac1><conj_op><mode>4, 34284 cmul<conj_op><mode>3): New. 34285 342862021-01-15 David Malcolm <dmalcolm@redhat.com> 34287 34288 PR bootstrap/98696 34289 * diagnostic.c 34290 (selftest::test_print_parseable_fixits_bytes_vs_display_columns): 34291 Escape the tempfile name when constructing the expected output. 34292 342932021-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34294 34295 * config/aarch64/aarch64-simd.md (*aarch64_<su>mlsl_hi<mode>): 34296 Rename to... 34297 (aarch64_<su>mlsl_hi<mode>): ... This. 34298 (aarch64_<su>mlsl_hi<mode>): Define. 34299 (*aarch64_<su>mlsl<mode): Rename to... 34300 (aarch64_<su>mlsl<mode): ... This. 34301 * config/aarch64/aarch64-simd-builtins.def (smlsl, umlsl, 34302 smlsl_hi, umlsl_hi): Define builtins. 34303 * config/aarch64/arm_neon.h (vmlsl_high_s8, vmlsl_high_s16, 34304 vmlsl_high_s32, vmlsl_high_u8, vmlsl_high_u16, vmlsl_high_u32, 34305 vmlsl_s8, vmlsl_s16, vmlsl_s32, vmlsl_u8, 34306 vmlsl_u16, vmlsl_u32): Reimplement with builtins. 34307 343082021-01-15 Uro�� Bizjak <ubizjak@gmail.com> 34309 34310 * config/i386/i386-c.c (ix86_target_macros): 34311 Use cpp_define_formatted for __SIZEOF_FLOAT80__ definition. 34312 343132021-01-15 Richard Sandiford <richard.sandiford@arm.com> 34314 34315 PR target/88836 34316 * config.gcc (aarch64*-*-*): Add aarch64-cc-fusion.o to extra_objs. 34317 * Makefile.in (RTL_SSA_H): New variable. 34318 * config/aarch64/t-aarch64 (aarch64-cc-fusion.o): New rule. 34319 * config/aarch64/aarch64-protos.h (make_pass_cc_fusion): Declare. 34320 * config/aarch64/aarch64-passes.def: Add pass_cc_fusion after 34321 pass_combine. 34322 * config/aarch64/aarch64-cc-fusion.cc: New file. 34323 343242021-01-15 Richard Sandiford <richard.sandiford@arm.com> 34325 34326 * recog.h (insn_change_watermark::~insn_change_watermark): Avoid 34327 calling cancel_changes for changes that no longer exist. 34328 343292021-01-15 Richard Sandiford <richard.sandiford@arm.com> 34330 34331 * rtl-ssa/functions.h (function_info::ref_defs): Rename to... 34332 (function_info::reg_defs): ...this. 34333 * rtl-ssa/member-fns.inl (function_info::ref_defs): Rename to... 34334 (function_info::reg_defs): ...this. 34335 343362021-01-15 Christophe Lyon <christophe.lyon@linaro.org> 34337 34338 PR target/71233 34339 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. 34340 343412021-01-15 Christophe Lyon <christophe.lyon@linaro.org> 34342 34343 Revert: 34344 2021-01-15 Christophe Lyon <christophe.lyon@linaro.org> 34345 34346 PR target/71233 34347 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. 34348 343492021-01-15 Richard Biener <rguenther@suse.de> 34350 34351 PR tree-optimization/96376 34352 * tree-vect-stmts.c (get_load_store_type): Disregard alignment 34353 for VMAT_INVARIANT. 34354 343552021-01-15 Martin Liska <mliska@suse.cz> 34356 34357 * doc/install.texi: Document that some tests need pytest module. 34358 * doc/sourcebuild.texi: Likewise. 34359 343602021-01-15 Christophe Lyon <christophe.lyon@linaro.org> 34361 34362 PR target/71233 34363 * config/arm/arm_neon.h (vceqz_p64, vceqq_p64, vceqzq_p64): New. 34364 343652021-01-15 Christophe Lyon <christophe.lyon@linaro.org> 34366 34367 * config/arm/mve.md (mve_vshrq_n_s<mode>_imm): New entry. 34368 (mve_vshrq_n_u<mode>_imm): Likewise. 34369 * config/arm/neon.md (vashr<mode>3, vlshr<mode>3): Move to ... 34370 * config/arm/vec-common.md: ... here. 34371 343722021-01-15 Christophe Lyon <christophe.lyon@linaro.org> 34373 34374 * config/arm/mve.md (mve_vshlq_<supf><mode>): Move to 34375 vec-commond.md. 34376 * config/arm/neon.md (vashl<mode>3): Delete. 34377 * config/arm/vec-common.md (mve_vshlq_<supf><mode>): New. 34378 (vasl<mode>3): New expander. 34379 343802021-01-15 Richard Biener <rguenther@suse.de> 34381 34382 PR tree-optimization/98685 34383 * tree-vect-slp.c (vect_schedule_slp_node): Refactor handling 34384 of vector extern defs. 34385 343862021-01-14 David Malcolm <dmalcolm@redhat.com> 34387 34388 PR jit/98586 34389 * diagnostic.c (diagnostic_kind_text): Break out this array 34390 from... 34391 (diagnostic_build_prefix): ...here. 34392 (fancy_abort): Detect when diagnostic_initialize has not yet been 34393 called and fall back to a minimal implementation of printing the 34394 ICE, rather than segfaulting in internal_error. 34395 343962021-01-14 David Malcolm <dmalcolm@redhat.com> 34397 34398 * diagnostic.c (diagnostic_initialize): Eliminate 34399 parseable_fixits_p in favor of initializing extra_output_kind from 34400 GCC_EXTRA_DIAGNOSTIC_OUTPUT. 34401 (convert_column_unit): New function, split out from... 34402 (diagnostic_converted_column): ...this. 34403 (print_parseable_fixits): Add "column_unit" and "tabstop" params. 34404 Use them to call convert_column_unit on the column values. 34405 (diagnostic_report_diagnostic): Eliminate conditional on 34406 parseable_fixits_p in favor of a switch statement on 34407 extra_output_kind, passing the appropriate values to the new 34408 params of print_parseable_fixits. 34409 (selftest::test_print_parseable_fixits_none): Update for new 34410 params of print_parseable_fixits. 34411 (selftest::test_print_parseable_fixits_insert): Likewise. 34412 (selftest::test_print_parseable_fixits_remove): Likewise. 34413 (selftest::test_print_parseable_fixits_replace): Likewise. 34414 (selftest::test_print_parseable_fixits_bytes_vs_display_columns): 34415 New. 34416 (selftest::diagnostic_c_tests): Call it. 34417 * diagnostic.h (enum diagnostics_extra_output_kind): New. 34418 (diagnostic_context::parseable_fixits_p): Delete field in favor 34419 of... 34420 (diagnostic_context::extra_output_kind): ...this new field. 34421 * doc/invoke.texi (Environment Variables): Add 34422 GCC_EXTRA_DIAGNOSTIC_OUTPUT. 34423 * opts.c (common_handle_option): Update handling of 34424 OPT_fdiagnostics_parseable_fixits for change to diagnostic_context 34425 fields. 34426 344272021-01-14 Tamar Christina <tamar.christina@arm.com> 34428 34429 * tree-vect-slp-patterns.c (class complex_operations_pattern, 34430 complex_operations_pattern::matches, 34431 complex_operations_pattern::recognize, 34432 complex_operations_pattern::build): New. 34433 (slp_patterns): Use it. 34434 344352021-01-14 Tamar Christina <tamar.christina@arm.com> 34436 34437 * internal-fn.def (COMPLEX_FMS, COMPLEX_FMS_CONJ): New. 34438 * optabs.def (cmls_optab, cmls_conj_optab): New. 34439 * doc/md.texi: Document them. 34440 * tree-vect-slp-patterns.c (class complex_fms_pattern, 34441 complex_fms_pattern::matches, complex_fms_pattern::recognize, 34442 complex_fms_pattern::build): New. 34443 344442021-01-14 Tamar Christina <tamar.christina@arm.com> 34445 34446 * internal-fn.def (COMPLEX_FMA, COMPLEX_FMA_CONJ): New. 34447 * optabs.def (cmla_optab, cmla_conj_optab): New. 34448 * doc/md.texi: Document them. 34449 * tree-vect-slp-patterns.c (vect_match_call_p, 34450 class complex_fma_pattern, vect_slp_reset_pattern, 34451 complex_fma_pattern::matches, complex_fma_pattern::recognize, 34452 complex_fma_pattern::build): New. 34453 344542021-01-14 Tamar Christina <tamar.christina@arm.com> 34455 34456 * internal-fn.def (COMPLEX_MUL, COMPLEX_MUL_CONJ): New. 34457 * optabs.def (cmul_optab, cmul_conj_optab): New. 34458 * doc/md.texi: Document them. 34459 * tree-vect-slp-patterns.c (vect_match_call_complex_mla, 34460 vect_normalize_conj_loc, is_eq_or_top, vect_validate_multiplication, 34461 vect_build_combine_node, class complex_mul_pattern, 34462 complex_mul_pattern::matches, complex_mul_pattern::recognize, 34463 complex_mul_pattern::build): New. 34464 344652021-01-14 Tamar Christina <tamar.christina@arm.com> 34466 34467 * tree-vect-slp.c (optimize_load_redistribution_1): New. 34468 (optimize_load_redistribution, vect_is_slp_load_node): New. 34469 (vect_match_slp_patterns): Use it. 34470 344712021-01-14 Tamar Christina <tamar.christina@arm.com> 34472 34473 * tree-vect-slp-patterns.c (complex_add_pattern::build): 34474 Elide nodes. 34475 344762021-01-14 Thomas Schwinge <thomas@codesourcery.com> 34477 34478 * config/gcn/mkoffload.c (main): Create an offload image only in 34479 64-bit configurations. 34480 344812021-01-14 H.J. Lu <hjl.tools@gmail.com> 34482 34483 PR target/98667 34484 * config/i386/i386-options.c (ix86_option_override_internal): 34485 Issue an error for -fcf-protection with CF_BRANCH when compiling 34486 for 32-bit non-TARGET_CMOV targets. 34487 344882021-01-14 Uro�� Bizjak <ubizjak@gmail.com> 34489 34490 PR target/98671 34491 * config/i386/i386-options.c (ix86_valid_target_attribute_inner_p): 34492 Remove declaration and initialization of shadow variable "ret". 34493 (ix86_option_override_internal): Remove delcaration of 34494 shadow variable "i". Redeclare shadowed variable to unsigned. 34495 * common/config/i386/i386-common.c (pta_size): Redeclare to unsigned. 34496 * config/i386/i386-builtins.c (get_builtin_code_for_version): 34497 Update for redeclaration. 34498 * config/i386/i386.h (pta_size): Ditto. 34499 345002021-01-14 Richard Biener <rguenther@suse.de> 34501 34502 PR tree-optimization/98674 34503 * tree-data-ref.c (base_supports_access_fn_components_p): New. 34504 (initialize_data_dependence_relation): For two bases without 34505 possible access fns resort to type size equality when determining 34506 shape compatibility. 34507 345082021-01-14 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 34509 34510 PR target/66791 34511 * config/arm/arm_neon.h: Replace calls to __builtin_vcge* by 34512 <=, >= operators in vcle and vcge intrinsics respectively. 34513 * config/arm/arm_neon_builtins.def: Remove entry for 34514 vcge and vcgeu. 34515 345162021-01-14 Uro�� Bizjak <ubizjak@gmail.com> 34517 34518 PR target/98671 34519 * config/i386/i386-options.c (ix86_function_specific_save): 34520 Remove redundant assignment to opts->x_ix86_branch_cost. 34521 * config/i386/i386.c (ix86_prefetch_sse): 34522 Rename from x86_prefetch_sse. Update all uses. 34523 * config/i386/i386.h: Update for rename. 34524 * config/i386/i386-options.h: Ditto. 34525 345262021-01-14 Jakub Jelinek <jakub@redhat.com> 34527 34528 PR target/98670 34529 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3, 34530 *sse4_1_zero_extendv4hiv4si2_3, *sse4_1_zero_extendv2siv2di2_3): 34531 Use Bm instead of m for non-avx. Add isa attribute. 34532 345332021-01-14 Jakub Jelinek <jakub@redhat.com> 34534 34535 PR tree-optimization/96688 34536 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if 34537 ~X can be simplified. 34538 345392021-01-14 Richard Sandiford <richard.sandiford@arm.com> 34540 34541 * tree-vect-stmts.c (vect_model_load_cost): Account for unused 34542 IFN_LOAD_LANES results. 34543 345442021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34545 34546 * config/aarch64/aarch64-simd.md (aarch64_<su>xtl<mode>): 34547 Define. 34548 (aarch64_xtn<mode>): Likewise. 34549 * config/aarch64/aarch64-simd-builtins.def (sxtl, uxtl, xtn): 34550 Define 34551 builtins. 34552 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using 34553 builtin. 34554 (vmovl_s16): Likewise. 34555 (vmovl_s32): Likewise. 34556 (vmovl_u8): Likewise. 34557 (vmovl_u16): Likewise. 34558 (vmovl_u32): Likewise. 34559 (vmovn_s16): Likewise. 34560 (vmovn_s32): Likewise. 34561 (vmovn_s64): Likewise. 34562 (vmovn_u16): Likewise. 34563 (vmovn_u32): Likewise. 34564 (vmovn_u64): Likewise. 34565 345662021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34567 34568 * config/aarch64/aarch64-simd.md (aarch64_<su>qxtn2<mode>_le): 34569 Define. 34570 (aarch64_<su>qxtn2<mode>_be): Likewise. 34571 (aarch64_<su>qxtn2<mode>): Likewise. 34572 * config/aarch64/aarch64-simd-builtins.def (sqxtn2, uqxtn2): 34573 Define builtins. 34574 * config/aarch64/iterators.md (SAT_TRUNC): Define code_iterator. 34575 (su): Handle ss_truncate and us_truncate. 34576 * config/aarch64/arm_neon.h (vqmovn_high_s16): Reimplement using 34577 builtin. 34578 (vqmovn_high_s32): Likewise. 34579 (vqmovn_high_s64): Likewise. 34580 (vqmovn_high_u16): Likewise. 34581 (vqmovn_high_u32): Likewise. 34582 (vqmovn_high_u64): Likewise. 34583 345842021-01-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34585 34586 * config/aarch64/aarch64-simd.md (aarch64_xtn2<mode>_le): 34587 Define. 34588 (aarch64_xtn2<mode>_be): Likewise. 34589 (aarch64_xtn2<mode>): Likewise. 34590 * config/aarch64/aarch64-simd-builtins.def (xtn2): Define 34591 builtins. 34592 * config/aarch64/arm_neon.h (vmovn_high_s16): Reimplement using 34593 builtins. 34594 (vmovn_high_s32): Likewise. 34595 (vmovn_high_s64): Likewise. 34596 (vmovn_high_u16): Likewise. 34597 (vmovn_high_u32): Likewise. 34598 (vmovn_high_u64): Likewise. 34599 346002021-01-13 Stafford Horne <shorne@gmail.com> 34601 34602 * config/or1k/or1k.h (ASM_PREFERRED_EH_DATA_FORMAT): New macro. 34603 346042021-01-13 Stafford Horne <shorne@gmail.com> 34605 34606 * config/or1k/linux.h (TARGET_ASM_FILE_END): Define macro. 34607 346082021-01-13 Stafford Horne <shorne@gmail.com> 34609 34610 * config/or1k/or1k.h (TARGET_CPU_CPP_BUILTINS): Add builtin 34611 define for __or1k_hard_float__. 34612 346132021-01-13 Stafford Horne <shorne@gmail.com> 34614 34615 * config/or1k/or1k.h (NO_PROFILE_COUNTERS): Define as 1. 34616 (PROFILE_HOOK): Define to call _mcount. 34617 (FUNCTION_PROFILER): Change from abort to no-op. 34618 346192021-01-13 Jakub Jelinek <jakub@redhat.com> 34620 34621 PR tree-optimization/96691 34622 * match.pd ((~X | C) ^ D -> (X | C) ^ (~D ^ C), 34623 (~X & C) ^ D -> (X & C) ^ (D ^ C)): New simplifications if 34624 (~D ^ C) or (D ^ C) can be simplified. 34625 346262021-01-13 Richard Biener <rguenther@suse.de> 34627 34628 PR tree-optimization/92645 34629 * match.pd (BIT_FIELD_REF to conversion): Delay canonicalization 34630 until after vector lowering. 34631 346322021-01-13 Richard Sandiford <richard.sandiford@arm.com> 34633 34634 * config/aarch64/aarch64-sve.md (fnma<mode>4): Extend from SVE_FULL_I 34635 to SVE_I. 34636 (@aarch64_pred_fnma<mode>, cond_fnma<mode>, *cond_fnma<mode>_2) 34637 (*cond_fnma<mode>_4, *cond_fnma<mode>_any): Likewise. 34638 346392021-01-13 Richard Sandiford <richard.sandiford@arm.com> 34640 34641 * config/aarch64/aarch64-sve.md (fma<mode>4): Extend from SVE_FULL_I 34642 to SVE_I. 34643 (@aarch64_pred_fma<mode>, cond_fma<mode>, *cond_fma<mode>_2) 34644 (*cond_fma<mode>_4, *cond_fma<mode>_any): Likewise. 34645 346462021-01-13 Richard Biener <rguenther@suse.de> 34647 34648 PR tree-optimization/92645 34649 * tree-vect-slp.c (vect_build_slp_tree_1): Relax supported 34650 BIT_FIELD_REF argument. 34651 (vect_build_slp_tree_2): Record the desired vector type 34652 on the external vector def. 34653 (vectorizable_slp_permutation): Handle required punning 34654 of existing vector defs. 34655 346562021-01-13 Richard Sandiford <richard.sandiford@arm.com> 34657 34658 * rtl-ssa/accesses.h (def_lookup): Fix order of comparison results. 34659 346602021-01-13 Richard Sandiford <richard.sandiford@arm.com> 34661 34662 * config/sh/sh.md (movsf_ie): Remove operands[2] test. 34663 346642021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org> 34665 34666 * config.gcc [$target == *-*-gnu*]: Enable 34667 'default_gnu_indirect_function'. 34668 346692021-01-13 Jakub Jelinek <jakub@redhat.com> 34670 34671 PR target/95905 34672 * optabs.c (expand_vec_perm_const): Don't force v0 and v1 into 34673 registers before calling targetm.vectorize.vec_perm_const, only after 34674 that. 34675 * config/i386/i386-expand.c (ix86_vectorize_vec_perm_const): Handle 34676 two argument permutation when one operand is zero vector and only 34677 after that force operands into registers. 34678 * config/i386/sse.md (*avx2_zero_extendv16qiv16hi2_1): New 34679 define_insn_and_split pattern. 34680 (*avx512bw_zero_extendv32qiv32hi2_1): Likewise. 34681 (*avx512f_zero_extendv16hiv16si2_1): Likewise. 34682 (*avx2_zero_extendv8hiv8si2_1): Likewise. 34683 (*avx512f_zero_extendv8siv8di2_1): Likewise. 34684 (*avx2_zero_extendv4siv4di2_1): Likewise. 34685 * config/mips/mips.c (mips_vectorize_vec_perm_const): Force operands 34686 into registers. 34687 * config/arm/arm.c (arm_vectorize_vec_perm_const): Likewise. 34688 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Likewise. 34689 * config/ia64/ia64.c (ia64_vectorize_vec_perm_const): Likewise. 34690 * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const): Likewise. 34691 * config/rs6000/rs6000.c (rs6000_vectorize_vec_perm_const): Likewise. 34692 * config/gcn/gcn.c (gcn_vectorize_vec_perm_const): Likewise. Use std::swap. 34693 346942021-01-13 Martin Liska <mliska@suse.cz> 34695 34696 PR tree-optimization/98455 34697 * gimple-if-to-switch.cc (condition_info::record_phi_mapping): 34698 Record also virtual PHIs. 34699 (pass_if_to_switch::execute): Return TODO_cleanup_cfg only 34700 conditionally. 34701 347022021-01-13 Jonathan Wakely <jwakely@redhat.com> 34703 34704 * doc/invoke.texi (C++ Modules): Fix typos. 34705 347062021-01-13 Richard Biener <rguenther@suse.de> 34707 34708 PR tree-optimization/98640 34709 * tree-ssa-sccvn.c (visit_nary_op): Do not try to 34710 handle plus or minus from a truncated operand to be 34711 sign-extended. 34712 347132021-01-13 Jakub Jelinek <jakub@redhat.com> 34714 34715 PR target/96938 34716 * config/i386/i386.md (*btr<mode>_1, *btr<mode>_2): New 34717 define_insn_and_split patterns. 34718 (splitter after *btr<mode>_2): New splitter. 34719 347202021-01-13 Martin Liska <mliska@suse.cz> 34721 34722 PR ipa/98652 34723 * cgraphunit.c (analyze_functions): Remove dead code. 34724 347252021-01-13 Qian Jianhua <qianjh@cn.fujitsu.com> 34726 34727 * config/aarch64/aarch64-cost-tables.h (a64fx_extra_costs): New. 34728 * config/aarch64/aarch64.c (a64fx_addrcost_table): New. 34729 (a64fx_regmove_cost, a64fx_vector_cost): New. 34730 (a64fx_tunings): Use the new added cost tables. 34731 347322021-01-13 Jakub Jelinek <jakub@redhat.com> 34733 34734 PR target/95905 34735 * config/i386/predicates.md (pmovzx_parallel): New predicate. 34736 * config/i386/sse.md (*sse4_1_zero_extendv8qiv8hi2_3): New 34737 define_insn_and_split pattern. 34738 (*sse4_1_zero_extendv4hiv4si2_3): Likewise. 34739 (*sse4_1_zero_extendv2siv2di2_3): Likewise. 34740 347412021-01-13 Julian Brown <julian@codesourcery.com> 34742 34743 * config/gcn/gcn.c (gcn_conditional_register_usage): Remove dead code 34744 to fix v0 register. 34745 347462021-01-13 Julian Brown <julian@codesourcery.com> 34747 34748 * config/gcn/gcn.c (gcn_md_reorg): Fix case where EXEC reg is live 34749 on entry to a BB. 34750 347512021-01-13 Julian Brown <julian@codesourcery.com> 34752 34753 * config/gcn/gcn-valu.md (recip<mode>2<exec>, recip<mode>2): Use unspec 34754 for reciprocal-approximation instructions. 34755 (div<mode>3): Use fused multiply-accumulate operations for reciprocal 34756 refinement and division result. 34757 * config/gcn/gcn.md (UNSPEC_RCP): New unspec constant. 34758 347592021-01-13 Julian Brown <julian@codesourcery.com> 34760 34761 * config/gcn/gcn-valu.md (subdf): Rename to... 34762 (subdf3): This. 34763 347642021-01-12 Martin Liska <mliska@suse.cz> 34765 34766 * gcov.c (source_info::debug): Fix printf format for 32-bit hosts. 34767 347682021-01-12 Andrea Corallo <andrea.corallo@arm.com> 34769 34770 * function-abi.h: Fix typo. 34771 347722021-01-12 Christophe Lyon <christophe.lyon@linaro.org> 34773 34774 PR target/97875 34775 PR target/97875 34776 * config/arm/arm.h (ARM_HAVE_NEON_V8QI_LDST): New macro. 34777 (ARM_HAVE_NEON_V16QI_LDST, ARM_HAVE_NEON_V4HI_LDST): Likewise. 34778 (ARM_HAVE_NEON_V8HI_LDST, ARM_HAVE_NEON_V2SI_LDST): Likewise. 34779 (ARM_HAVE_NEON_V4SI_LDST, ARM_HAVE_NEON_V4HF_LDST): Likewise. 34780 (ARM_HAVE_NEON_V8HF_LDST, ARM_HAVE_NEON_V4BF_LDST): Likewise. 34781 (ARM_HAVE_NEON_V8BF_LDST, ARM_HAVE_NEON_V2SF_LDST): Likewise. 34782 (ARM_HAVE_NEON_V4SF_LDST, ARM_HAVE_NEON_DI_LDST): Likewise. 34783 (ARM_HAVE_NEON_V2DI_LDST): Likewise. 34784 (ARM_HAVE_V8QI_LDST, ARM_HAVE_V16QI_LDST): Likewise. 34785 (ARM_HAVE_V4HI_LDST, ARM_HAVE_V8HI_LDST): Likewise. 34786 (ARM_HAVE_V2SI_LDST, ARM_HAVE_V4SI_LDST, ARM_HAVE_V4HF_LDST): Likewise. 34787 (ARM_HAVE_V8HF_LDST, ARM_HAVE_V4BF_LDST, ARM_HAVE_V8BF_LDST): Likewise. 34788 (ARM_HAVE_V2SF_LDST, ARM_HAVE_V4SF_LDST, ARM_HAVE_DI_LDST): Likewise. 34789 (ARM_HAVE_V2DI_LDST): Likewise. 34790 * config/arm/mve.md (*movmisalign<mode>_mve_store): New pattern. 34791 (*movmisalign<mode>_mve_load): New pattern. 34792 * config/arm/neon.md (movmisalign<mode>): Move to ... 34793 * config/arm/vec-common.md: ... here. 34794 347952021-01-12 Vladimir N. Makarov <vmakarov@redhat.com> 34796 34797 PR target/97969 34798 * lra-eliminations.c (eliminate_regs_in_insn): Add transformation 34799 of pattern 'plus (plus (hard reg, const), pseudo)'. 34800 348012021-01-12 Richard Biener <rguenther@suse.de> 34802 34803 PR tree-optimization/98550 34804 * tree-vect-slp.c (vect_record_max_nunits): Check whether 34805 the group size is a multiple of the vector element count. 34806 (vect_build_slp_tree_1): When we need to fail because 34807 the vector type choosen causes unrolling do so lazily 34808 without affecting matches only at the end to guide group splitting. 34809 348102021-01-12 Martin Liska <mliska@suse.cz> 34811 34812 PR c++/97284 34813 * optc-save-gen.awk: Compare also n_target_save vars with 34814 strcmp. 34815 348162021-01-12 Martin Liska <mliska@suse.cz> 34817 34818 * gcov.c (source_info::debug): New. 34819 (print_usage): Add --debug (-D) option. 34820 (process_args): Likewise. 34821 (generate_results): Call src->debug after 34822 accumulate_line_counts. 34823 (read_graph_file): Properly assign id for EXIT_BLOCK. 34824 * profile.c (branch_prob): Dump function body before it is 34825 instrumented. 34826 348272021-01-12 Jakub Jelinek <jakub@redhat.com> 34828 34829 PR tree-optimization/98629 34830 * tree-ssa-math-opts.c (arith_overflow_check_p): Don't update use_stmt 34831 unless returning non-zero. 34832 348332021-01-12 Jakub Jelinek <jakub@redhat.com> 34834 34835 PR tree-optimization/95731 34836 * tree-ssa-reassoc.c (optimize_range_tests_cmp_bitwise): Also optimize 34837 x < 0 && y < 0 && z < 0 into (x | y | z) < 0 for signed x, y, z. 34838 (optimize_range_tests): Call optimize_range_tests_cmp_bitwise 34839 only after optimize_range_tests_var_bound. 34840 348412021-01-12 Jakub Jelinek <jakub@redhat.com> 34842 34843 * configure.ac: Ensure c/Make-lang.in comes first in @all_lang_makefrags@. 34844 * configure: Regenerated. 34845 348462021-01-12 liuhongt <hongtao.liu@intel.com> 34847 34848 PR target/98612 34849 * config/i386/i386-builtins.h (BUILTIN_DESC_SWAP_OPERANDS): 34850 Deleted. 34851 * config/i386/i386-expand.c (ix86_expand_sse_comi): Delete 34852 dead code. 34853 348542021-01-12 Alexandre Oliva <oliva@adacore.com> 34855 34856 * ssa-iterators.h (end_imm_use_stmt_traverse): Forward 34857 declare. 34858 (auto_end_imm_use_stmt_traverse): New struct. 34859 (FOR_EACH_IMM_USE_STMT): Use it. 34860 (BREAK_FROM_IMM_USE_STMT, RETURN_FROM_IMM_USE_STMT): Remove, 34861 along with uses... 34862 * gimple-ssa-strength-reduction.c: ... here, ... 34863 * graphite-scop-detection.c: ... here, ... 34864 * ipa-modref.c, ipa-pure-const.c, ipa-sra.c: ... here, ... 34865 * tree-predcom.c, tree-ssa-ccp.c: ... here, ... 34866 * tree-ssa-dce.c, tree-ssa-dse.c: ... here, ... 34867 * tree-ssa-loop-ivopts.c, tree-ssa-math-opts.c: ... here, ... 34868 * tree-ssa-phiprop.c, tree-ssa.c: ... here, ... 34869 * tree-vect-slp.c: ... and here, ... 34870 * doc/tree-ssa.texi: ... and the example here. 34871 348722021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34873 34874 * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): Extend from 34875 SVE_FULL_I to SVE_I. Generate an UNSPEC_PRED_X. 34876 (*sdiv_pow2<mode>3): New pattern. 34877 (@cond_<sve_int_op><mode>): Extend from SVE_FULL_I to SVE_I. 34878 Wrap the ASRD in an UNSPEC_PRED_X. 34879 (*cond_<sve_int_op><mode>_2): Likewise. Replace the UNSPEC_PRED_X 34880 predicate with a constant PTRUE, if it isn't already. 34881 (*cond_<sve_int_op><mode>_z): Replace with... 34882 (*cond_<sve_int_op><mode>_any): ...this new pattern. 34883 348842021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34885 34886 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2): Extend from 34887 SVE_FULL_I to SVE_I. 34888 (*cond_bic<mode>_any): Likewise. 34889 348902021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34891 34892 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart) 34893 (@aarch64_pred_<MUL_HIGHPART:optab><mode>): Extend from SVE_FULL_I 34894 to SVE_I. 34895 348962021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34897 34898 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): Extend from 34899 SVE_FULL_I to SVE_I. 34900 (*aarch64_cond_<su>abd<mode>_2): Likewise. 34901 (*aarch64_cond_<su>abd<mode>_any): Likewise. 34902 (@aarch64_pred_<su>abd<mode>): Likewise. Use UNSPEC_PRED_X 34903 for the max and min but not for the minus. 34904 (*aarch64_cond_<su>abd<mode>_3): New pattern. 34905 349062021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34907 34908 * config/aarch64/iterators.md (SVE_24I): New iterator. 34909 * config/aarch64/aarch64-sve.md (*aarch64_adr<mode>_shift): Extend from 34910 SVE_FULL_SDI to SVE_24I. Use containers rather than elements. 34911 349122021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34913 34914 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_BINARY:optab><mode>) 34915 (*cond_<SVE_INT_BINARY:optab><mode>_2): Extend from SVE_FULL_I 34916 to SVE_I. 34917 (*cond_<SVE_INT_BINARY:optab><mode>_3): Likewise. 34918 (*cond_<SVE_INT_BINARY:optab><mode>_any): Likewise. 34919 (*cond_<SVE_INT_BINARY:optab><mode>_2_const): Likewise. 34920 (*cond_<SVE_INT_BINARY:optab><mode>_any_const): Likewise. 34921 349222021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34923 34924 * config/aarch64/aarch64-sve.md (<SVE_INT_BINARY_IMM:optab><mode>3) 34925 (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>) 34926 (*post_ra_<SVE_INT_BINARY_IMM:optab><mode>3): Extend from SVE_FULL_I 34927 to SVE_I. 34928 349292021-01-11 Richard Sandiford <richard.sandiford@arm.com> 34930 34931 * config/aarch64/aarch64-sve.md (<ASHIFT:optab><mode>3) 34932 (v<ASHIFT:optab><mode>3, @aarch64_pred_<optab><mode>) 34933 (*post_ra_v<ASHIFT:optab><mode>3): Extend from SVE_FULL_I to SVE_I. 34934 349352021-01-11 Martin Liska <mliska@suse.cz> 34936 34937 PR jit/98615 34938 * symtab-clones.h (clone_info::release): Release 34939 symtab::m_clones with ggc_delete as it's a GGC memory. 34940 349412021-01-11 Matthias Klose <doko@ubuntu.com> 34942 34943 * Makefile.in (LINK_PROGRESS): Show the link target. 34944 349452021-01-11 Richard Biener <rguenther@suse.de> 34946 34947 PR tree-optimization/91403 34948 * tree-vect-data-refs.c (vect_analyze_group_access_1): Cap 34949 single-element interleaving group size at 4096 elements. 34950 349512021-01-11 Richard Biener <rguenther@suse.de> 34952 34953 PR tree-optimization/98526 34954 * tree-vect-loop.c (vect_model_reduction_cost): Remove costing 34955 of the actual reduction op for the regular case. 34956 (vectorizable_reduction): Cost the stmts 34957 vect_transform_reduction produces here. 34958 349592021-01-11 Andreas Krebbel <krebbel@linux.ibm.com> 34960 34961 * tree-ssa-forwprop.c (simplify_vector_constructor): For 34962 big-endian, use UNPACK[_FLOAT]_HI. 34963 349642021-01-11 Tamar Christina <tamar.christina@arm.com> 34965 34966 * tree-vect-slp-patterns.c (class complex_pattern, 34967 class complex_add_pattern): Add parameters to matches. 34968 (complex_add_pattern::build): Free memory. 34969 (complex_add_pattern::matches): Move validation end of match. 34970 (complex_add_pattern::recognize): Likewise. 34971 349722021-01-11 Tamar Christina <tamar.christina@arm.com> 34973 34974 * tree-vect-slp-patterns.c (linear_loads_p): Fix externals. 34975 349762021-01-11 Tamar Christina <tamar.christina@arm.com> 34977 34978 * tree-vect-slp-patterns.c (is_linear_load_p): Fix ambiguity. 34979 349802021-01-11 Jakub Jelinek <jakub@redhat.com> 34981 34982 PR tree-optimization/95867 34983 * tree-ssa-math-opts.h: New header. 34984 * tree-ssa-math-opts.c: Include tree-ssa-math-opts.h. 34985 (powi_as_mults): No longer static. Use build_one_cst instead of 34986 build_real. Formatting fix. 34987 * tree-ssa-reassoc.c: Include tree-ssa-math-opts.h. 34988 (attempt_builtin_powi): Handle multiplication reassociation without 34989 powi_fndecl using powi_as_mults. 34990 (reassociate_bb): For integral types don't require 34991 -funsafe-math-optimizations to call attempt_builtin_powi. 34992 349932021-01-11 Jakub Jelinek <jakub@redhat.com> 34994 34995 PR tree-optimization/95852 34996 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): Change 34997 mul_stmts parameter type to vec<gimple *> &. Before cond_stmt 34998 allow in the bb any of the stmts in that vector, div_stmt and 34999 up to 3 cast stmts. 35000 (arith_cast_equal_p): New function. 35001 (arith_overflow_check_p): Add cast_stmt argument, handle signed 35002 multiply overflow checks. 35003 (match_arith_overflow): Adjust caller. Handle signed multiply 35004 overflow checks. 35005 350062021-01-11 Jakub Jelinek <jakub@redhat.com> 35007 35008 PR tree-optimization/95852 35009 * tree-ssa-math-opts.c (maybe_optimize_guarding_check): New function. 35010 (uaddsub_overflow_check_p): Renamed to ... 35011 (arith_overflow_check_p): ... this. Handle also multiplication 35012 with overflow check. 35013 (match_uaddsub_overflow): Renamed to ... 35014 (match_arith_overflow): ... this. Add cfg_changed argument. Handle 35015 also multiplication with overflow check. Adjust function comment. 35016 (math_opts_dom_walker::after_dom_children): Adjust callers. Call 35017 match_arith_overflow also for MULT_EXPR. 35018 350192021-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35020 35021 * config/aarch64/arm_neon.h (vmovl_s8): Reimplement using 35022 __builtin_convertvector. 35023 (vmovl_s16): Likewise. 35024 (vmovl_s32): Likewise. 35025 (vmovl_u8): Likewise. 35026 (vmovl_u16): Likewise. 35027 (vmovl_u32): Likewise. 35028 (vmovn_s16): Likewise. 35029 (vmovn_s32): Likewise. 35030 (vmovn_s64): Likewise. 35031 (vmovn_u16): Likewise. 35032 (vmovn_u32): Likewise. 35033 (vmovn_u64): Likewise. 35034 350352021-01-11 Martin Liska <mliska@suse.cz> 35036 35037 * gimple-if-to-switch.cc (struct condition_info): Use auto_var. 35038 (if_chain::is_beneficial): Delete clusters 35039 (find_conditions): Make second argument of conditions_in_bbs a 35040 pointer so that we control over it's lifetime. 35041 (pass_if_to_switch::execute): Delete them. 35042 350432021-01-11 Kewen Lin <linkw@linux.ibm.com> 35044 35045 * ira.c (move_unallocated_pseudos): Check other_reg and skip if 35046 it isn't set. 35047 350482021-01-09 Maciej W. Rozycki <macro@linux-mips.org> 35049 35050 * config/vax/vax.md (cc): Remove mode attribute. 35051 (subst_<cc>, subst_f<cc>): Rename to... 35052 (subst_<mode>, subst_f<VAXccnz:mode>): ... these respectively. 35053 (*cbranch<VAXint:mode>4_<VAXcc:mode>): Update for `cc' removal. 35054 (*cbranch<VAXfp:mode>4_<VAXccnz:mode>): Likewise. 35055 (*branch_<mode>, *branch_<mode>_reversed): Likewise. 35056 350572021-01-09 Maciej W. Rozycki <macro@linux-mips.org> 35058 35059 * config/vax/vax.md (subst_f<cc>): Add mode to operands and 35060 `const_double_zero'. 35061 350622021-01-09 Maciej W. Rozycki <macro@linux-mips.org> 35063 35064 * config/pdp11/pdp11.md (PDPfp): New mode iterator. 35065 (fcc_cc, fcc_ccnz): Use it. Add mode to `const_double_zero' and 35066 operands. 35067 350682021-01-09 Maciej W. Rozycki <macro@linux-mips.org> 35069 35070 * genemit.c (gen_exp) <CONST_DOUBLE>: Handle `const_double_zero' 35071 rtx. 35072 * read-rtl.c (rtx_reader::read_rtx_code): Handle machine mode 35073 with `const_double_zero'. 35074 * doc/rtl.texi (Constant Expression Types): Document it. 35075 350762021-01-09 Jakub Jelinek <jakub@redhat.com> 35077 35078 PR c++/98556 35079 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of 35080 POINTER_DIFF_EXPR to be any integral type. 35081 350822021-01-09 Jakub Jelinek <jakub@redhat.com> 35083 35084 PR rtl-optimization/98603 35085 * function.c (instantiate_virtual_regs_in_insn): For asm goto 35086 with impossible constraints, drop all SETs, CLOBBERs, drop PARALLEL 35087 if any, set ASM_OPERANDS mode to VOIDmode and change 35088 ASM_OPERANDS_OUTPUT_CONSTRAINT and ASM_OPERANDS_OUTPUT_IDX. 35089 350902021-01-09 Alexandre Oliva <oliva@gnu.org> 35091 35092 PR debug/97714 35093 * final.c (notice_source_line): Narrow down the condition to 35094 skip a line-0 marker. 35095 350962021-01-08 Sergei Trofimovich <siarheit@google.com> 35097 35098 * ipa-modref.c (merge_call_side_effects): Fix 35099 linebreak split by reordering two print calls. 35100 351012021-01-08 Ilya Leoshkevich <iii@linux.ibm.com> 35102 35103 * config/s390/vector.md (*tf_to_fprx2_0): Rename from 35104 "*mov_tf_to_fprx2_0" for consistency, fix constraint. 35105 (*tf_to_fprx2_1): Rename from "*mov_tf_to_fprx2_1" for 35106 consistency, fix constraint. 35107 351082021-01-08 Ilya Leoshkevich <iii@linux.ibm.com> 35109 35110 * config/s390/s390-c.c (s390_def_or_undef_macro): Accept 35111 callables instead of mask values. 35112 (struct target_flag_set_p): New predicate. 35113 (s390_cpu_cpp_builtins_internal): Define or undefine 35114 __LONG_DOUBLE_VX__ macro. 35115 351162021-01-08 H.J. Lu <hjl.tools@gmail.com> 35117 35118 PR target/98482 35119 * config/i386/i386.c (x86_function_profiler): Use R10 and R11 35120 to call mcount in large model with PIC for NO_PROFILE_COUNTERS 35121 targets. 35122 351232021-01-08 Richard Biener <rguenther@suse.de> 35124 35125 * tree-ssa-sccvn.c (pass_fre::execute): Reset the SCEV hash table. 35126 351272021-01-08 Richard Biener <rguenther@suse.de> 35128 35129 * tree-vect-slp.c (scalar_stmts_to_slp_tree_map_t): Fix. 35130 (vect_build_slp_tree): On cache hit release the matched 35131 scalar stmts vector. 35132 * tree-vect-stmts.c (vectorizable_store): Properly free 35133 vec_oprnds before possibly gathering them again. 35134 351352021-01-08 Richard Biener <rguenther@suse.de> 35136 35137 PR tree-optimization/98544 35138 * tree-vect-slp.c (vect_optimize_slp): Always materialize 35139 permutes at a permute node. 35140 351412021-01-08 H.J. Lu <hjl.tools@gmail.com> 35142 35143 PR target/98482 35144 * config/i386/i386.c (x86_function_profiler): Use R10 to call 35145 mcount in large model. Sorry for large model with PIC. 35146 351472021-01-08 Jakub Jelinek <jakub@redhat.com> 35148 35149 PR target/98585 35150 * config/i386/i386.opt (ix86_cmodel, ix86_incoming_stack_boundary_arg, 35151 ix86_pmode, ix86_preferred_stack_boundary_arg, ix86_regparm, 35152 ix86_veclibabi_type): Remove x_ prefix, use TargetVariable instead of 35153 TargetSave and initialize for variables with enum types. 35154 (mfentry, mstack-protector-guard-reg=, mstack-protector-guard-offset=, 35155 mstack-protector-guard-symbol=): Add Save. 35156 * config/i386/i386-options.c (ix86_function_specific_save, 35157 ix86_function_specific_restore): Don't save or restore x_ix86_cmodel, 35158 x_ix86_incoming_stack_boundary_arg, x_ix86_pmode, 35159 x_ix86_preferred_stack_boundary_arg, x_ix86_regparm, 35160 x_ix86_veclibabi_type. 35161 351622021-01-08 Richard Sandiford <richard.sandiford@arm.com> 35163 35164 * config/aarch64/aarch64-sve.md (*cnot<mode>): Extend from 35165 SVE_FULL_I to SVE_I. 35166 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise. 35167 351682021-01-08 Richard Sandiford <richard.sandiford@arm.com> 35169 35170 * config/aarch64/aarch64-sve.md (*cond_uxt<mode>_2): Extend from 35171 SVE_FULL_I to SVE_I. 35172 (*cond_uxt<mode>_any): Likewise. 35173 351742021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35175 35176 * config/aarch64/iterators.md (Vwhalf): New iterator. 35177 * config/aarch64/aarch64-simd.md (aarch64_<sur>adalp<mode>_3): 35178 Rename to... 35179 (aarch64_<sur>adalp<mode>): ... This. Make more 35180 builtin-friendly. 35181 (<sur>sadv16qi): Adjust callsite of the above. 35182 * config/aarch64/aarch64-simd-builtins.def (sadalp, uadalp): New 35183 builtins. 35184 * config/aarch64/arm_neon.h (vpadal_s8): Reimplement using 35185 builtins. 35186 (vpadal_s16): Likewise. 35187 (vpadal_u8): Likewise. 35188 (vpadal_u16): Likewise. 35189 (vpadalq_s8): Likewise. 35190 (vpadalq_s16): Likewise. 35191 (vpadalq_s32): Likewise. 35192 (vpadalq_u8): Likewise. 35193 (vpadalq_u16): Likewise. 35194 (vpadalq_u32): Likewise. 35195 351962021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35197 35198 * config/aarch64/aarch64-simd.md (aarch64_<su>abd<mode>_3): 35199 Rename to... 35200 (aarch64_<su>abd<mode>): ... This. 35201 (<sur>sadv16qi): Adjust callsite of the above. 35202 * config/aarch64/aarch64-simd-builtins.def (sabd, uabd): Define 35203 builtins. 35204 * config/aarch64/arm_neon.h (vabd_s8): Reimplement using 35205 builtin. 35206 (vabd_s16): Likewise. 35207 (vabd_s32): Likewise. 35208 (vabd_u8): Likewise. 35209 (vabd_u16): Likewise. 35210 (vabd_u32): Likewise. 35211 (vabdq_s8): Likewise. 35212 (vabdq_s16): Likewise. 35213 (vabdq_s32): Likewise. 35214 (vabdq_u8): Likewise. 35215 (vabdq_u16): Likewise. 35216 (vabdq_u32): Likewise. 35217 352182021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35219 35220 * config/aarch64/aarch64-simd-builtins.def (saba, uaba): Define 35221 builtins. 35222 * config/aarch64/arm_neon.h (vaba_s8): Implement using builtin. 35223 (vaba_s16): Likewise. 35224 (vaba_s32): Likewise. 35225 (vaba_u8): Likewise. 35226 (vaba_u16): Likewise. 35227 (vaba_u32): Likewise. 35228 (vabaq_s8): Likewise. 35229 (vabaq_s16): Likewise. 35230 (vabaq_s32): Likewise. 35231 (vabaq_u8): Likewise. 35232 (vabaq_u16): Likewise. 35233 (vabaq_u32): Likewise. 35234 352352021-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 35236 35237 * config/aarch64/aarch64-simd.md (aba<mode>_3): Rename to... 35238 (aarch64_<su>aba<mode>): ... This. Handle uaba as well. 35239 Change RTL pattern to match. 35240 352412021-01-08 Kito Cheng <kito.cheng@sifive.com> 35242 35243 * common/config/riscv/riscv-common.c (riscv_current_subset_list): New. 35244 * config/riscv/riscv-c.c (riscv-subset.h): New. 35245 (INCLUDE_STRING): Define. 35246 (riscv_cpu_cpp_builtins): Add new style architecture extension 35247 test macros. 35248 * config/riscv/riscv-subset.h (riscv_subset_list::begin): New. 35249 (riscv_subset_list::end): New. 35250 (riscv_current_subset_list): New. 35251 352522021-01-08 Kito Cheng <kito.cheng@sifive.com> 35253 35254 * common/config/riscv/riscv-common.c (RISCV_DONT_CARE_VERSION): 35255 Move to riscv-subset.h. 35256 (struct riscv_subset_t): Ditto. 35257 (class riscv_subset_list): Ditto. 35258 * config/riscv/riscv-subset.h (RISCV_DONT_CARE_VERSION): Move 35259 from riscv-common.c. 35260 (struct riscv_subset_t): Ditto. 35261 (class riscv_subset_list): Ditto. 35262 * config/riscv/t-riscv ($(common_out_file)): Add file 35263 dependency. 35264 352652021-01-07 Jakub Jelinek <jakub@redhat.com> 35266 35267 PR target/98567 35268 * config/i386/i386.md (*bmi_blsi_<mode>_cmp, *bmi_blsi_<mode>_ccno): 35269 New define_insn patterns. 35270 352712021-01-07 Richard Sandiford <richard.sandiford@arm.com> 35272 35273 * config/aarch64/aarch64-sve.md (@cond_<SVE_INT_UNARY:optab><mode>) 35274 (*cond_<SVE_INT_UNARY:optab><mode>_2): Extend from SVE_FULL_I to SVE_I. 35275 (*cond_<SVE_INT_UNARY:optab><mode>_any): Likewise. 35276 352772021-01-07 Richard Sandiford <richard.sandiford@arm.com> 35278 35279 PR tree-optimization/98560 35280 * internal-fn.def (IFN_VCONDU, IFN_VCONDEQ): Use type vec_cond. 35281 * internal-fn.c (vec_cond_mask_direct): Get the data mode from 35282 argument 1. 35283 (vec_cond_direct): Likewise argument 2. 35284 (vec_condu_direct, vec_condeq_direct): Delete. 35285 (expand_vect_cond_optab_fn): Rename to... 35286 (expand_vec_cond_optab_fn): ...this, replacing old macro. 35287 (expand_vec_condu_optab_fn, expand_vec_condeq_optab_fn): Delete. 35288 (expand_vect_cond_mask_optab_fn): Rename to... 35289 (expand_vec_cond_mask_optab_fn): ...this, replacing old macro. 35290 (direct_vec_cond_mask_optab_supported_p): Treat the optab as a 35291 convert optab. 35292 (direct_vec_cond_optab_supported_p): Likewise. 35293 (direct_vec_condu_optab_supported_p): Delete. 35294 (direct_vec_condeq_optab_supported_p): Delete. 35295 * gimple-isel.cc: Include internal-fn.h. 35296 (gimple_expand_vec_cond_expr): Check that IFN_VCONDEQ is supported 35297 before using it. 35298 352992021-01-07 Richard Sandiford <richard.sandiford@arm.com> 35300 35301 PR tree-optimization/98560 35302 * gimple-isel.cc (gimple_expand_vec_cond_expr): If we fail to use 35303 IFN_VCOND{,U,EQ}, fall back on IFN_VCOND_MASK. 35304 353052021-01-07 Uro�� Bizjak <ubizjak@gmail.com> 35306 35307 * config/i386/i386.md (insn): Merge from plusminus_insn, shift_insn, 35308 rotate_insn and optab code attributes. 35309 Update all uses to merged code attribute. 35310 * config/i386/sse.md: Update all uses to merged code attribute. 35311 * config/i386/mmx.md: Update all uses to merged code attribute. 35312 353132021-01-07 Jakub Jelinek <jakub@redhat.com> 35314 35315 PR tree-optimization/98568 35316 * gimple-ssa-store-merging.c (bswap_view_convert): New function. 35317 (bswap_replace): Use it. 35318 353192021-01-06 Vladimir N. Makarov <vmakarov@redhat.com> 35320 35321 PR rtl-optimization/97978 35322 * lra-int.h (lra_hard_reg_split_p): New external. 35323 * lra.c (lra_hard_reg_split_p): New global. 35324 (lra): Set up lra_hard_reg_split_p after splitting a hard reg. 35325 * lra-assigns.c (lra_assign): Don't check allocation correctness 35326 after hard reg splitting. 35327 353282021-01-06 Martin Sebor <msebor@redhat.com> 35329 35330 PR c++/98305 35331 * builtins.c (new_delete_mismatch_p): New overload. 35332 (new_delete_mismatch_p (tree, tree)): Call it. 35333 353342021-01-06 Alexandre Oliva <oliva@adacore.com> 35335 35336 * Makefile.in (T_GLIMITS_H): New. 35337 (stmp-int-hdrs): Depend on it, use it. 35338 * config/t-vxworks (T_GLIMITS_H): Override it. 35339 (vxw-glimits.h): New. 35340 353412021-01-06 Richard Biener <rguenther@suse.de> 35342 35343 PR tree-optimization/98513 35344 * value-range.cc (intersect_ranges): Compare the upper bounds 35345 for the expected relation. 35346 353472021-01-06 Gerald Pfeifer <gerald@pfeifer.com> 35348 35349 Revert: 35350 2020-12-28 Gerald Pfeifer <gerald@pfeifer.com> 35351 35352 * doc/standards.texi (HSAIL): Remove section. 35353 353542021-01-05 Samuel Thibault <samuel.thibault@ens-lyon.org> 35355 35356 * configure: Re-generate. 35357 353582021-01-05 Jakub Jelinek <jakub@redhat.com> 35359 35360 * doc/invoke.texi (-std=c++20): Adjust for the publication of 35361 ISO 14882:2020 standard. 35362 * doc/standards.texi: Likewise. 35363 353642021-01-05 Jakub Jelinek <jakub@redhat.com> 35365 35366 PR tree-optimization/94802 35367 * expr.h (maybe_optimize_sub_cmp_0): Declare. 35368 * expr.c: Include tree-pretty-print.h and flags.h. 35369 (maybe_optimize_sub_cmp_0): New function. 35370 (do_store_flag): Use it. 35371 * cfgexpand.c (expand_gimple_cond): Likewise. 35372 353732021-01-05 Richard Sandiford <richard.sandiford@arm.com> 35374 35375 * mux-utils.h (pointer_mux::m_ptr): Tweak description of contents. 35376 * rtlanal.c (simple_regno_set): Tweak description to clarify the 35377 RMW condition. 35378 353792021-01-05 Richard Biener <rguenther@suse.de> 35380 35381 PR tree-optimization/98516 35382 * tree-vect-slp.c (vect_optimize_slp): Permute the incoming 35383 lanes when materializing on a VEC_PERM node. 35384 (vectorizable_slp_permutation): Dump the permute properly. 35385 353862021-01-05 Richard Biener <rguenther@suse.de> 35387 35388 * tree-vect-slp.c (vect_slp_region): Move debug counter 35389 to cover individual subgraphs. 35390 353912021-01-05 Richard Biener <rguenther@suse.de> 35392 35393 PR tree-optimization/98428 35394 * tree-vect-slp.c (vect_build_slp_tree_1): Properly reject 35395 vector lane extracts for loop vectorization. 35396 353972021-01-05 Jakub Jelinek <jakub@redhat.com> 35398 35399 PR tree-optimization/98514 35400 * tree-ssa-reassoc.c (bb_rank): Change type from long * to 35401 int64_t *. 35402 (operand_rank): Change type from hash_map<tree, long> to 35403 hash_map<tree, int64_t>. 35404 (phi_rank): Change return type from long to int64_t. 35405 (loop_carried_phi): Change block_rank variable type from long to 35406 int64_t. 35407 (propagate_rank): Change return type, rank parameter type and 35408 op_rank variable type from long to int64_t. 35409 (find_operand_rank): Change return type from long to int64_t 35410 and change slot variable type from long * to int64_t *. 35411 (insert_operand_rank): Change rank parameter type from long to 35412 int64_t. 35413 (get_rank): Change return type and rank variable type from long to 35414 int64_t. Use PRId64 instead of ld to print the rank. 35415 (init_reassoc): Change rank variable type from long to int64_t 35416 and adjust correspondingly bb_rank and operand_rank initialization. 35417 354182021-01-05 Jakub Jelinek <jakub@redhat.com> 35419 35420 PR tree-optimization/96928 35421 * tree-ssa-phiopt.c (xor_replacement): New function. 35422 (tree_ssa_phiopt_worker): Call it. 35423 354242021-01-05 Jakub Jelinek <jakub@redhat.com> 35425 35426 PR tree-optimization/96930 35427 * match.pd ((A / (1 << B)) -> (A >> B)): If A is extended 35428 from narrower value which has the same type as 1 << B, perform 35429 the right shift on the narrower value followed by extension. 35430 354312021-01-05 Jakub Jelinek <jakub@redhat.com> 35432 35433 PR tree-optimization/96239 35434 * gimple-ssa-store-merging.c (maybe_optimize_vector_constructor): New 35435 function. 35436 (get_status_for_store_merging): Don't return BB_INVALID for blocks 35437 with potential bswap optimizable CONSTRUCTORs. 35438 (pass_store_merging::execute): Optimize vector CONSTRUCTORs with bswap 35439 if possible. 35440 354412021-01-05 Richard Biener <rguenther@suse.de> 35442 35443 PR tree-optimization/98381 35444 * tree.c (vector_element_bits): Properly compute bool vector 35445 element size. 35446 * tree-vect-loop.c (vectorizable_live_operation): Properly 35447 compute the last lane bit offset. 35448 354492021-01-05 Uro�� Bizjak <ubizjak@gmail.com> 35450 35451 PR target/98522 35452 * config/i386/sse.md (sse_cvtps2pi): Redefine as define_insn_and_split. 35453 Clear the top 64 bytes of the input XMM register. 35454 (sse_cvttps2pi): Ditto. 35455 354562021-01-05 Uro�� Bizjak <ubizjak@gmail.com> 35457 35458 PR target/98521 35459 * config/i386/xopintrin.h (_mm256_cmov_si256): New. 35460 354612021-01-05 H.J. Lu <hjl.tools@gmail.com> 35462 35463 PR target/98495 35464 * config/i386/xmmintrin.h (_mm_extract_pi16): Cast to unsigned 35465 short first. 35466 354672021-01-05 Claudiu Zissulescu <claziss@synopsys.com> 35468 35469 * config/arc/arc.md (maddsidi4_split): Use ACC_REG_FIRST. 35470 (umaddsidi4_split): Likewise. 35471 354722021-01-05 liuhongt <hongtao.liu@intel.com> 35473 35474 PR target/98461 35475 * config/i386/sse.md (*sse2_pmovskb_zexthisi): New 35476 define_insn_and_split for zero_extend of subreg HI of pmovskb 35477 result. 35478 (*sse2_pmovskb_zexthisi): Add new combine splitters for 35479 zero_extend of not of subreg HI of pmovskb result. 35480 354812021-01-05 Richard Sandiford <richard.sandiford@arm.com> 35482 35483 PR target/97269 35484 * explow.c (convert_memory_address_addr_space_1): Handle UNSPECs 35485 nested in CONSTs. 35486 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Use 35487 convert_memory_address to convert symbolic immediates to ptr_mode 35488 before forcing them to memory. 35489 354902021-01-05 Richard Sandiford <richard.sandiford@arm.com> 35491 35492 PR rtl-optimization/97144 35493 * recog.c (constrain_operands): Initialize matching_operand 35494 for each alternative, rather than only doing it once. 35495 354962021-01-05 Richard Sandiford <richard.sandiford@arm.com> 35497 35498 PR rtl-optimization/98403 35499 * rtl-ssa/changes.cc (function_info::finalize_new_accesses): Explain 35500 why we don't remove call clobbers. 35501 (function_info::apply_changes_to_insn): Don't attempt to add 35502 call clobbers here. 35503 355042021-01-05 Richard Sandiford <richard.sandiford@arm.com> 35505 35506 PR tree-optimization/98371 35507 * tree-vect-loop.c (vect_reanalyze_as_main_loop): New function. 35508 (vect_analyze_loop): If an epilogue loop appears to be cheaper 35509 than the main loop, re-analyze it as a main loop before adopting 35510 it as a main loop. 35511 355122021-01-05 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 35513 35514 PR c++/98316 35515 * configure.ac (NETLIBS): Determine using AX_LIB_SOCKET_NSL. 35516 * aclocal.m4, configure: Regenerate. 35517 * Makefile.in (NETLIBS): Define. 35518 (BACKEND): Remove $(CODYLIB). 35519 355202021-01-05 Jakub Jelinek <jakub@redhat.com> 35521 35522 PR rtl-optimization/98334 35523 * simplify-rtx.c (simplify_context::simplify_binary_operation_1): 35524 Optimize (X - 1) * Y + Y to X * Y or (X + 1) * Y - Y to X * Y. 35525 355262021-01-05 Bernd Edlinger <bernd.edlinger@hotmail.de> 35527 35528 * tree-inline.c (expand_call_inline): Restore input_location. 35529 Return result from recursive call. 35530 355312021-01-04 Richard Sandiford <richard.sandiford@arm.com> 35532 35533 PR tree-optimization/95401 35534 * config/aarch64/aarch64-sve-builtins.cc 35535 (gimple_folder::load_store_cookie): Use bits rather than bytes 35536 for the alignment argument to IFN_MASK_LOAD and IFN_MASK_STORE. 35537 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref): Likewise. 35538 * tree-vect-stmts.c (vectorizable_store): Likewise. 35539 (vectorizable_load): Likewise. 35540 355412021-01-04 Richard Biener <rguenther@suse.de> 35542 35543 PR tree-optimization/98308 35544 * tree-vect-stmts.c (vectorizable_load): Set invariant mask 35545 SLP vectype. 35546 355472021-01-04 Jakub Jelinek <jakub@redhat.com> 35548 35549 PR tree-optimization/95771 35550 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Handle types 35551 with precision smaller than int's precision and types with precision 35552 twice as large as long long. Formatting fixes. 35553 355542021-01-04 Richard Biener <rguenther@suse.de> 35555 35556 PR tree-optimization/98464 35557 * tree-ssa-sccvn.c (vn_valueize_for_srt): Rename from ... 35558 (vn_valueize_wrapper): ... this. Temporarily adjust vn_context_bb. 35559 (process_bb): Adjust. 35560 355612021-01-04 Matthew Malcomson <matthew.malcomson@arm.com> 35562 35563 PR other/98437 35564 * doc/invoke.texi (-fsanitize=address): Fix wording describing 35565 clash with -fsanitize=hwaddress. 35566 355672021-01-04 Richard Biener <rguenther@suse.de> 35568 35569 PR tree-optimization/98282 35570 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on 35571 invariants as VN_NARY. 35572 355732021-01-04 Richard Sandiford <richard.sandiford@arm.com> 35574 35575 PR target/89057 35576 * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): Accept 35577 aarch64_simd_reg_or_zero for operand 2. Use the combinez patterns 35578 to handle zero operands. 35579 355802021-01-04 Richard Sandiford <richard.sandiford@arm.com> 35581 35582 * config/aarch64/aarch64.c (offset_6bit_signed_scaled_p): New function. 35583 (offset_6bit_unsigned_scaled_p): Fix typo in comment. 35584 (aarch64_sve_prefetch_operand_p): Accept MUL VLs in the range 35585 [-32, 31]. 35586 355872021-01-04 Richard Biener <rguenther@suse.de> 35588 35589 PR tree-optimization/98393 35590 * tree-vect-slp.c (vect_build_slp_tree): Properly zero matches 35591 when hitting the limit. 35592 355932021-01-04 Richard Biener <rguenther@suse.de> 35594 35595 PR tree-optimization/98291 35596 * tree-vect-loop.c (vectorizable_reduction): Bypass 35597 associativity check for SLP reductions with VF 1. 35598 355992021-01-04 Jakub Jelinek <jakub@redhat.com> 35600 35601 PR tree-optimization/96782 35602 * match.pd (x == ~x -> false, x != ~x -> true): New simplifications. 35603 356042021-01-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 35605 35606 * collect-utils.c (collect_execute): Check dumppfx. 35607 * collect2.c (maybe_run_lto_and_relink, do_link): Pass atsuffix 35608 to collect_execute. 35609 (do_link): Add new parameter atsuffix. 35610 (main): Handle -dumpdir option. Skip one argument for 35611 -o, -isystem and -B options. 35612 * gcc.c (make_at_file): New helper function. 35613 (close_at_file): Use it. 35614 356152021-01-02 Iain Sandoe <iain@sandoe.co.uk> 35616 35617 * config/darwin.h (MIN_LD64_NO_COAL_SECTS): Adjust. 35618 Amend handling for LD64_VERSION fallback defaults. 35619 356202021-01-02 Iain Sandoe <iain@sandoe.co.uk> 35621 35622 * config.gcc: Compute default version information 35623 from the configured target. Likewise defaults for 35624 ld64. 35625 * config/darwin10.h: Removed. 35626 * config/darwin12.h: Removed. 35627 * config/darwin9.h: Removed. 35628 * config/rs6000/darwin8.h: Removed. 35629 356302021-01-02 Iain Sandoe <iain@sandoe.co.uk> 35631 35632 * config/darwin9.h (ASM_OUTPUT_ALIGNED_COMMON): Delete. 35633 356342021-01-02 Iain Sandoe <iain@sandoe.co.uk> 35635 35636 * config/darwin9.h (STACK_CHECK_STATIC_BUILTIN): Move from here.. 35637 * config/darwin.h (STACK_CHECK_STATIC_BUILTIN): .. to here. 35638 356392021-01-02 Iain Sandoe <iain@sandoe.co.uk> 35640 35641 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move from 35642 here... 35643 * config/darwin.h (LINK_GCC_C_SEQUENCE_SPEC): ... to here. 35644 356452021-01-02 Iain Sandoe <iain@sandoe.co.uk> 35646 35647 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move the spec 35648 for the Darwin10 unwinder stub from here ... 35649 * config/darwin.h (LINK_COMMAND_SPEC_A): ... to here. 35650 356512021-01-02 Iain Sandoe <iain@sandoe.co.uk> 35652 35653 * config/darwin.h (DSYMUTIL_SPEC): Default to DWARF 35654 (ASM_DEBUG_SPEC):Only define if the assembler supports 35655 stabs. 35656 (PREFERRED_DEBUGGING_TYPE): Default to DWARF. 35657 (DARWIN_PREFER_DWARF): Define. 35658 * config/darwin9.h (PREFERRED_DEBUGGING_TYPE): Remove. 35659 (DARWIN_PREFER_DWARF): Likewise 35660 (DSYMUTIL_SPEC): Likewise. 35661 (COLLECT_RUN_DSYMUTIL): Likewise. 35662 (ASM_DEBUG_SPEC): Likewise. 35663 (ASM_DEBUG_OPTION_SPEC): Likewise. 35664 356652021-01-02 Jan Hubicka <jh@suse.cz> 35666 35667 * cfg.c (free_block): ggc_free bb. 35668 356692021-01-01 Jakub Jelinek <jakub@redhat.com> 35670 35671 * gcc.c (process_command): Update copyright notice dates. 35672 * gcov-dump.c (print_version): Ditto. 35673 * gcov.c (print_version): Ditto. 35674 * gcov-tool.c (print_version): Ditto. 35675 * gengtype.c (create_file): Ditto. 35676 * doc/cpp.texi: Bump @copying's copyright year. 35677 * doc/cppinternals.texi: Ditto. 35678 * doc/gcc.texi: Ditto. 35679 * doc/gccint.texi: Ditto. 35680 * doc/gcov.texi: Ditto. 35681 * doc/install.texi: Ditto. 35682 * doc/invoke.texi: Ditto. 35683 356842021-01-01 Jakub Jelinek <jakub@redhat.com> 35685 35686 * ChangeLog-2020: Rotate ChangeLog. New file. 35687 35688Copyright (C) 2021 Free Software Foundation, Inc. 35689 35690Copying and distribution of this file, with or without modification, 35691are permitted in any medium without royalty provided the copyright 35692notice and this notice are preserved. 35693