12021-05-14 Release Manager 2 3 * GCC 8.5.0 released. 4 52021-05-07 Jakub Jelinek <jakub@redhat.com> 6 7 PR target/87839 8 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>): Use 9 rIJ constraint for aarch64_plus_operand rather than rn. 10 112021-05-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12 13 PR target/99037 14 PR target/100441 15 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>): Use 16 aarch64_simd_or_scalar_imm_zero to match zeroes. Remove pattern 17 matching const_int 0. 18 (move_lo_quad_internal_be_<mode>): Likewise. 19 (move_lo_quad_<mode>): Update for the above. 20 * config/aarch64/iterators.md (VQ_2E): Delete. 21 222021-05-06 Roman Zhuykov <zhroma@ispras.ru> 23 24 Backported from master: 25 2021-04-30 Roman Zhuykov <zhroma@ispras.ru> 26 27 PR rtl-optimization/100225 28 PR rtl-optimization/84878 29 * modulo-sched.c (sms_schedule): Use note_stores to skip loops 30 where we have an instruction which touches (writes) any hard 31 register from df->regular_block_artificial_uses set. 32 Allow not-single-set instruction only right before basic block 33 tail. 34 352021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 36 37 Backported from master: 38 2021-05-05 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 39 40 PR rtl-optimization/100263 41 * postreload.c (move2add_valid_value_p): Ensure register can 42 change mode. 43 442021-05-05 Richard Biener <rguenther@suse.de> 45 46 Backported from master: 47 2021-05-05 Richard Biener <rguenther@suse.de> 48 49 PR tree-optimization/98786 50 * tree-ssa-phiopt.c (factor_out_conditional_conversion): Avoid 51 adding new uses of abnormals. 52 532021-05-05 Alex Coplan <alex.coplan@arm.com> 54 55 Backported from master: 56 2021-04-23 Alex Coplan <alex.coplan@arm.com> 57 58 PR rtl-optimization/100230 59 * early-remat.c (early_remat::sort_candidates): Use delete[] 60 instead of delete for array allocated with new[]. 61 622021-05-04 Jakub Jelinek <jakub@redhat.com> 63 64 Backported from master: 65 2021-05-02 Jakub Jelinek <jakub@redhat.com> 66 67 PR target/100375 68 * config/nvptx/nvptx.c (nvptx_sese_pseudo): Use NULL instead of 0 69 as first argument of pseudo_node_t constructors. 70 712021-05-04 Jakub Jelinek <jakub@redhat.com> 72 73 Backported from master: 74 2021-04-29 Jakub Jelinek <jakub@redhat.com> 75 76 PR target/100302 77 * config/aarch64/aarch64.c (aarch64_add_offset_1_temporaries): Use 78 absu_hwi instead of abs_hwi. 79 802021-05-04 Jakub Jelinek <jakub@redhat.com> 81 82 Backported from master: 83 2021-04-27 Jakub Jelinek <jakub@redhat.com> 84 85 PR rtl-optimization/100254 86 * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION on 87 last1 and last2 insns rather than BB_END (bb1) and BB_END (bb2) insns. 88 892021-05-04 Jakub Jelinek <jakub@redhat.com> 90 91 Backported from master: 92 2021-04-26 Jakub Jelinek <jakub@redhat.com> 93 94 PR debug/100255 95 * vmsdbgout.c (ASM_OUTPUT_DEBUG_STRING, vmsdbgout_begin_block, 96 vmsdbgout_end_block, lookup_filename, vmsdbgout_source_line): Remove 97 register keywords. 98 992021-05-04 Jakub Jelinek <jakub@redhat.com> 100 101 Backported from master: 102 2021-04-21 Jakub Jelinek <jakub@redhat.com> 103 104 PR rtl-optimization/100148 105 * cprop.c (constprop_register): Use next_nondebug_insn instead of 106 NEXT_INSN. 107 1082021-05-04 Richard Sandiford <richard.sandiford@arm.com> 109 110 Backported from master: 111 2018-09-20 Richard Sandiford <richard.sandiford@arm.com> 112 113 PR tree-optimization/86877 114 * tree-vect-loop.c (vect_analyze_loop_2): Call 115 vect_verify_datarefs_alignment. 116 1172021-05-04 Richard Biener <rguenther@suse.de> 118 119 Backported from master: 120 2018-06-15 Richard Biener <rguenther@suse.de> 121 122 PR middle-end/86159 123 * tree-cfg.c (gimplify_build3): Do not strip sign conversions, 124 leave useless conversion stripping to force_gimple_operand_gsi. 125 (gimplify_build2): Likewise. 126 (gimplify_build1): Likewise. 127 1282021-05-04 Alexander Monakov <amonakov@ispras.ru> 129 130 Backported from master: 131 2019-03-01 Alexander Monakov <amonakov@ispras.ru> 132 133 PR rtl-optimization/85899 134 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for 135 fallthru edges leading to the exit block. 136 1372021-05-04 Jeff Law <law@redhat.com> 138 139 Backported from master: 140 2019-04-03 Jeff Law <law@redhat.com> 141 142 PR rtl-optimization/81025 143 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER. 144 1452021-04-30 James Clarke <jrtc27@jrtc27.com> 146 147 Backported from master: 148 2021-04-30 James Clarke <jrtc27@jrtc27.com> 149 150 PR bootstrap/87338 151 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL 152 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL. 153 1542021-04-29 Richard Biener <rguenther@suse.de> 155 156 Backported from master: 157 2021-04-28 Richard Biener <rguenther@suse.de> 158 159 PR tree-optimization/99954 160 * tree-loop-distribution.c: Include tree-affine.h. 161 (generate_memcpy_builtin): Try using tree-affine to prove 162 non-overlap. 163 (loop_distribution::classify_builtin_ldst): Always classify 164 as PKIND_MEMMOVE. 165 1662021-04-28 Uros Bizjak <ubizjak@gmail.com> 167 168 Backported from master: 169 2021-04-23 Uroš Bizjak <ubizjak@gmail.com> 170 171 PR target/100182 172 * config/i386/sync.md (FILD_ATOMIC/FIST_ATOMIC FP load peephole2): 173 Copy operand 3 to operand 4. Use sse_reg_operand 174 as operand 3 predicate. 175 (FILD_ATOMIC/FIST_ATOMIC FP load peephole2 with mem blockage): Ditto. 176 (LDX_ATOMIC/STX_ATOMIC FP load peephole2): Ditto. 177 (LDX_ATOMIC/LDX_ATOMIC FP load peephole2 with mem blockage): Ditto. 178 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2): 179 Copy operand 1 to operand 0. 180 (FILD_ATOMIC/FIST_ATOMIC FP store peephole2 with mem blockage): Ditto. 181 (LDX_ATOMIC/STX_ATOMIC FP store peephole2): Ditto. 182 (LDX_ATOMIC/LDX_ATOMIC FP store peephole2 with mem blockage): Ditto. 183 1842021-04-26 Richard Biener <rguenther@suse.de> 185 186 Backported from master: 187 2021-02-08 Richard Biener <rguenther@suse.de> 188 189 PR lto/96591 190 * tree.c (walk_tree_1): Walk VECTOR_CST elements. 191 1922021-04-26 Richard Biener <rguenther@suse.de> 193 194 Backported from master: 195 2021-01-11 Richard Biener <rguenther@suse.de> 196 197 PR tree-optimization/98117 198 * tree-vect-loop-manip.c (vect_gen_vector_loop_niters): 199 Properly handle degenerate niter when setting the vector 200 loop IV range. 201 2022021-04-26 Richard Sandiford <richard.sandiford@arm.com> 203 204 Backported from master: 205 2021-04-14 Richard Sandiford <richard.sandiford@arm.com> 206 207 PR rtl-optimization/99929 208 * rtl.h (same_vector_encodings_p): New function. 209 * cse.c (exp_equiv_p): Check that CONST_VECTORs have the same encoding. 210 * cselib.c (rtx_equal_for_cselib_1): Likewise. 211 * jump.c (rtx_renumbered_equal_p): Likewise. 212 * lra-constraints.c (operands_match_p): Likewise. 213 * reload.c (operands_match_p): Likewise. 214 * rtl.c (rtx_equal_p_cb, rtx_equal_p): Likewise. 215 2162021-04-26 Richard Sandiford <richard.sandiford@arm.com> 217 218 Backported from master: 219 2021-03-30 Richard Sandiford <richard.sandiford@arm.com> 220 221 PR target/98136 222 * config/aarch64/aarch64.md (mov<mode>): Pass multi-instruction 223 CONST_INTs to aarch64_expand_mov_immediate when called after RA. 224 2252021-04-26 Richard Sandiford <richard.sandiford@arm.com> 226 227 Backported from master: 228 2020-04-16 Richard Sandiford <richard.sandiford@arm.com> 229 230 PR rtl-optimization/94605 231 * early-remat.c (early_remat::process_block): Handle insns that 232 set multiple candidate registers. 233 2342021-04-22 Jakub Jelinek <jakub@redhat.com> 235 236 Backported from master: 237 2021-04-20 Jakub Jelinek <jakub@redhat.com> 238 239 PR rtl-optimization/99905 240 * combine.c (expand_compound_operation): If pos + len > modewidth, 241 perform the right shift by pos in inner_mode and then convert to mode, 242 instead of trying to simplify a shift of rtx with inner_mode by pos 243 as if it was a shift in mode. 244 2452021-04-22 Jakub Jelinek <jakub@redhat.com> 246 247 Backported from master: 248 2021-04-20 Jakub Jelinek <jakub@redhat.com> 249 250 PR debug/99830 251 * combine.c (simplify_and_const_int_1): Don't optimize varop 252 away if it has side-effects. 253 2542021-04-22 Jakub Jelinek <jakub@redhat.com> 255 256 Backported from master: 257 2021-04-20 Jakub Jelinek <jakub@redhat.com> 258 259 PR lto/99849 260 * expr.c (expand_expr_addr_expr_1): Test is_global_var rather than 261 just TREE_STATIC on COMPOUND_LITERAL_EXPR_DECLs. 262 2632021-04-22 Jakub Jelinek <jakub@redhat.com> 264 265 Backported from master: 266 2021-04-20 Jakub Jelinek <jakub@redhat.com> 267 268 PR rtl-optimization/98601 269 * rtlanal.c (rtx_addr_can_trap_p_1): Allow in assert unknown size 270 not just for BLKmode, but also for VOIDmode. For STRICT_ALIGNMENT 271 unaligned_mems handle VOIDmode like BLKmode. 272 2732021-04-22 Jakub Jelinek <jakub@redhat.com> 274 275 Backported from master: 276 2021-04-20 Jakub Jelinek <jakub@redhat.com> 277 278 PR rtl-optimization/99863 279 * dse.c (replace_read): Drop regs_live argument. Instead of 280 regs_live, use store_insn->fixed_regs_live if non-NULL, 281 otherwise punt if insns sequence clobbers or sets any hard 282 registers. 283 2842021-04-22 Jakub Jelinek <jakub@redhat.com> 285 286 Backported from master: 287 2021-03-30 Jakub Jelinek <jakub@redhat.com> 288 289 PR tree-optimization/99777 290 * fold-const.c (extract_muldiv_1): For conversions, punt on casts from 291 types other than scalar integral types. 292 2932021-04-22 Jakub Jelinek <jakub@redhat.com> 294 295 Backported from master: 296 2021-03-30 Jakub Jelinek <jakub@redhat.com> 297 298 PR debug/99334 299 * dwarf2out.h (struct dw_fde_node): Add rule18 member. 300 * dwarf2cfi.c (dwarf2out_frame_debug_expr): When handling (set hfp sp) 301 assignment with drap_reg active, queue reg save for hfp with offset 0 302 and flush queued reg saves. When handling a push with rule18, 303 defer queueing reg save for hfp and just assert the offset is 0. 304 (scan_trace): Assert that fde->rule18 is false. 305 3062021-04-22 Jakub Jelinek <jakub@redhat.com> 307 308 Backported from master: 309 2021-03-30 Jakub Jelinek <jakub@redhat.com> 310 311 PR debug/99388 312 * dwarf2out.c (insert_float): Change return type from void to 313 unsigned, handle GET_MODE_SIZE (mode) == 2 and return element size. 314 (mem_loc_descriptor, loc_descriptor, add_const_value_attribute): 315 Adjust callers. 316 3172021-04-22 Jakub Jelinek <jakub@redhat.com> 318 319 Backported from master: 320 2021-03-19 Jakub Jelinek <jakub@redhat.com> 321 322 PR middle-end/93235 323 * expmed.c (store_bit_field_using_insv): Return false of xop0 is a 324 SUBREG and a SUBREG to op_mode can't be created. 325 3262021-04-22 Jakub Jelinek <jakub@redhat.com> 327 328 Backported from master: 329 2021-03-19 Jakub Jelinek <jakub@redhat.com> 330 331 PR tree-optimization/99225 332 * fold-const.c (fold_binary_loc) <case NE_EXPR>: In (x & (1 << y)) != 0 333 to ((x >> y) & 1) != 0 simplifications use build_one_cst instead of 334 build_int_cst (..., 1). Formatting fixes. 335 3362021-04-22 Jakub Jelinek <jakub@redhat.com> 337 338 Backported from master: 339 2021-03-19 Jakub Jelinek <jakub@redhat.com> 340 341 PR tree-optimization/99204 342 * fold-const.c (fold_read_from_constant_string): Check that 343 tree_fits_uhwi_p (index) rather than just that index is INTEGER_CST. 344 3452021-04-22 Jakub Jelinek <jakub@redhat.com> 346 347 Backported from master: 348 2021-03-19 Jakub Jelinek <jakub@redhat.com> 349 350 PR ipa/99034 351 * tree-cfg.c (gimple_merge_blocks): If bb a starts with eh landing 352 pad or non-local label, put FORCED_LABELs from bb b after that label 353 rather than before it. 354 3552021-04-22 Jakub Jelinek <jakub@redhat.com> 356 357 Backported from master: 358 2021-03-19 Jakub Jelinek <jakub@redhat.com> 359 360 PR tree-optimization/99079 361 * match.pd (A % (pow2pcst << N) -> A & ((pow2pcst << N) - 1)): Remove 362 useless tree_nop_conversion_p (type, TREE_TYPE (@3)) check. Instead 363 require both type and TREE_TYPE (@1) to be integral types and either 364 type having smaller or equal precision, or TREE_TYPE (@1) being 365 unsigned type, or type being signed type. If TREE_TYPE (@1) 366 doesn't have wrapping overflow, perform the subtraction of one in 367 unsigned type. 368 3692021-04-22 Jakub Jelinek <jakub@redhat.com> 370 371 Backported from master: 372 2021-03-19 Jakub Jelinek <jakub@redhat.com> 373 374 PR c++/99035 375 * varasm.c (declare_weak): For -fsyntax-only, allow even 376 TREE_ASM_WRITTEN function decls. 377 3782021-04-22 Jakub Jelinek <jakub@redhat.com> 379 380 Backported from master: 381 2021-03-19 Jakub Jelinek <jakub@redhat.com> 382 383 PR middle-end/99007 384 * gimplify.c (gimplify_scan_omp_clauses): For MEM_REF on reductions, 385 temporarily disable gimplify_ctxp->into_ssa around gimplify_expr 386 calls. 387 3882021-04-22 Jakub Jelinek <jakub@redhat.com> 389 390 Backported from master: 391 2021-03-19 Jakub Jelinek <jakub@redhat.com> 392 393 PR middle-end/97487 394 * ifcvt.c (noce_can_force_operand): New function. 395 (noce_emit_move_insn): Use it. 396 (noce_try_sign_mask): Likewise. Formatting fix. 397 3982021-04-22 Jakub Jelinek <jakub@redhat.com> 399 400 Backported from master: 401 2021-01-29 Jakub Jelinek <jakub@redhat.com> 402 403 PR debug/98331 404 * cfgbuild.c (find_bb_boundaries): Reset debug_insn when seeing 405 a BARRIER. 406 4072021-04-22 Jakub Jelinek <jakub@redhat.com> 408 409 Backported from master: 410 2021-01-29 Jakub Jelinek <jakub@redhat.com> 411 412 PR target/98681 413 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): 414 Use UINTVAL (shft_amnt) and UINTVAL (mask) instead of INTVAL (shft_amnt) 415 and INTVAL (mask). Add && INTVAL (mask) > 0 condition. 416 4172021-04-22 Jakub Jelinek <jakub@redhat.com> 418 419 Backported from master: 420 2021-01-29 Jakub Jelinek <jakub@redhat.com> 421 422 PR testsuite/97301 423 * config/rs6000/mmintrin.h (__m64): Add __may_alias__ attribute. 424 4252021-04-22 Jakub Jelinek <jakub@redhat.com> 426 427 Backported from master: 428 2021-01-29 Jakub Jelinek <jakub@redhat.com> 429 430 PR tree-optimization/90248 431 * match.pd (X cmp 0.0 ? 1.0 : -1.0 -> copysign(1, +-X), 432 X cmp 0.0 ? -1.0 : +1.0 -> copysign(1, -+X)): Remove 433 simplifications. 434 (X * (X cmp 0.0 ? 1.0 : -1.0) -> +-abs(X), 435 X * (X cmp 0.0 ? -1.0 : 1.0) -> +-abs(X)): New simplifications. 436 4372021-04-22 Jakub Jelinek <jakub@redhat.com> 438 439 Backported from master: 440 2021-01-09 Jakub Jelinek <jakub@redhat.com> 441 442 PR c++/98556 443 * tree-cfg.c (verify_gimple_assign_binary): Allow lhs of 444 POINTER_DIFF_EXPR to be any integral type. 445 4462021-04-22 Jakub Jelinek <jakub@redhat.com> 447 448 Backported from master: 449 2021-01-06 Jakub Jelinek <jakub@redhat.com> 450 451 PR tree-optimization/98474 452 * wide-int.cc (wi::to_mpz): If wide_int has MSB set, but type 453 is unsigned and excess negative, append set bits after len until 454 precision. 455 4562021-04-22 Jakub Jelinek <jakub@redhat.com> 457 458 Backported from master: 459 2021-01-06 Jakub Jelinek <jakub@redhat.com> 460 461 PR c++/98353 462 * gimplify.c (gimplify_init_ctor_eval_range): Gimplify value before 463 storing it into cref. 464 4652021-04-22 Jakub Jelinek <jakub@redhat.com> 466 467 Backported from master: 468 2021-01-06 Jakub Jelinek <jakub@redhat.com> 469 470 * gimplify.c (struct gimplify_omp_ctx): Add has_depend member. 471 (gimplify_scan_omp_clauses): Set it to true if OMP_CLAUSE_DEPEND 472 appears on OMP_TASK. 473 (gimplify_adjust_omp_clauses_1, gimplify_adjust_omp_clauses): Force 474 GOVD_WRITTEN on shared variables if task construct has depend clause. 475 4762021-04-22 Jakub Jelinek <jakub@redhat.com> 477 478 Backported from master: 479 2021-01-06 Jakub Jelinek <jakub@redhat.com> 480 481 PR middle-end/98183 482 * omp-low.c (lower_omp_target): Don't add OMP_RETURN for 483 data regions. 484 * omp-expand.c (expand_omp_target): Don't try to remove 485 OMP_RETURN for data regions. 486 (build_omp_regions_1, omp_make_gimple_edges): Don't expect 487 OMP_RETURN for data regions. 488 4892021-04-22 Jakub Jelinek <jakub@redhat.com> 490 491 Backported from master: 492 2021-01-06 Jakub Jelinek <jakub@redhat.com> 493 494 PR middle-end/98205 495 * omp-expand.c (expand_omp_for_generic): Fix up broken_loop handling. 496 4972021-04-22 Jakub Jelinek <jakub@redhat.com> 498 499 Backported from master: 500 2021-01-06 Jakub Jelinek <jakub@redhat.com> 501 502 PR target/98100 503 * cfgexpand.c (expand_gimple_basic_block): For vars with 504 vector type, use TYPE_MODE rather than DECL_MODE. 505 5062021-04-22 Jakub Jelinek <jakub@redhat.com> 507 508 Backported from master: 509 2021-01-06 Jakub Jelinek <jakub@redhat.com> 510 511 * dwarf2out.c (add_scalar_info): Only use add_AT_wide for 128-bit 512 constants and only in dwarf-5 or later, where DW_FORM_data16 is 513 available. Otherwise use DW_FORM_block*/DW_FORM_exprloc with 514 DW_OP_implicit_value to describe the constant. 515 5162021-04-22 Jakub Jelinek <jakub@redhat.com> 517 518 Backported from master: 519 2021-01-06 Jakub Jelinek <jakub@redhat.com> 520 521 PR target/98063 522 * config/i386/i386.c (ix86_expand_call): Handle non-plt 523 CM_LARGE_PIC calls. 524 5252021-04-22 Jakub Jelinek <jakub@redhat.com> 526 527 Backported from master: 528 2020-11-25 Jakub Jelinek <jakub@redhat.com> 529 530 PR debug/97599 531 * dwarf2out.c (gen_subprogram_die): Call 532 gen_unspecified_parameters_die even if not early dwarf, but only 533 if subr_die is a newly created DIE. 534 5352021-04-22 Jakub Jelinek <jakub@redhat.com> 536 537 Backported from master: 538 2020-11-02 Jakub Jelinek <jakub@redhat.com> 539 540 * wide-int.cc (wi::set_bit_large): Call canonize unless setting 541 msb bit and clearing bits above it. 542 5432021-04-22 Jakub Jelinek <jakub@redhat.com> 544 545 Backported from master: 546 2020-10-16 Jakub Jelinek <jakub@redhat.com> 547 548 PR rtl-optimization/97386 549 * combine.c (simplify_shift_const_1): Don't optimize nested ROTATEs if 550 they have different modes. 551 5522021-04-22 Jakub Jelinek <jakub@redhat.com> 553 554 Backported from master: 555 2020-10-16 Jakub Jelinek <jakub@redhat.com> 556 557 PR sanitizer/97294 558 * tree-cfg.c (move_block_to_fn): Call notice_special_calls on 559 call stmts being moved into dest_cfun. 560 * omp-low.c (lower_rec_input_clauses): Set cfun->calls_alloca when 561 adding __builtin_alloca_with_align call without gimplification. 562 5632021-04-19 Eric Botcazou <ebotcazou@adacore.com> 564 565 * config/i386/winnt.c (i386_pe_seh_cold_init): Properly deal with 566 frames larger than the SEH maximum frame size. 567 5682021-03-23 H.J. Lu <hjl.tools@gmail.com> 569 570 Backported from master: 571 2021-03-23 H.J. Lu <hjl.tools@gmail.com> 572 573 PR target/99704 574 * config/i386/cpuid.h (__cpuid): Add __volatile__. 575 (__cpuid_count): Likewise. 576 5772021-03-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 578 579 * config/aarch64/aarch64-builtins.c (aarch64_expand_rng_builtin): Use EQ 580 to compare against CC_REG rather than NE. 581 5822021-03-17 Richard Biener <rguenther@suse.de> 583 584 Backported from master: 585 2021-03-17 Richard Biener <rguenther@suse.de> 586 587 PR tree-optimization/93964 588 * graphite-isl-ast-to-gimple.c 589 (gcc_expression_from_isl_ast_expr_id): Add intermediate 590 conversion for pointer to integer converts. 591 * graphite-scop-detection.c (assign_parameter_index_in_region): 592 Relax assert. 593 5942021-03-17 Richard Biener <rguenther@suse.de> 595 596 Backported from master: 597 2020-12-02 Richard Biener <rguenther@suse.de> 598 599 PR tree-optimization/97255 600 * tree-vect-patterns.c (vect_recog_bool_pattern): Also handle 601 VIEW_CONVERT_EXPR. 602 6032021-03-17 Richard Biener <rguenther@suse.de> 604 605 Backported from master: 606 2020-12-02 Richard Biener <rguenther@suse.de> 607 608 PR tree-optimization/96579 609 * tree-ssa-reassoc.c (linearize_expr_tree): If we expand 610 rhs via special ops make sure to swap operands. 611 6122021-03-17 Richard Biener <rguenther@suse.de> 613 614 Backported from master: 615 2020-12-02 Richard Biener <rguenther@suse.de> 616 617 PR tree-optimization/96370 618 * tree-ssa-reassoc.c (rewrite_expr_tree): Add operation 619 code parameter and use it instead of picking it up from 620 the stmt that is being rewritten. 621 (reassociate_bb): Pass down the operation code. 622 6232021-03-17 Richard Biener <rguenther@suse.de> 624 625 Backported from master: 626 2020-12-02 Richard Biener <rguenther@suse.de> 627 628 PR middle-end/96369 629 * fold-const.c (fold_range_test): Special-case constant 630 LHS for short-circuiting operations. 631 6322021-03-17 Richard Biener <rguenther@suse.de> 633 634 Backported from master: 635 2020-12-02 Richard Biener <rguenther@suse.de> 636 637 PR tree-optimization/97081 638 * tree-vect-patterns.c (vect_recog_rotate_pattern): Use the 639 precision of the shifted operand to determine the mask. 640 6412021-03-17 Richard Biener <rguenther@suse.de> 642 643 Backported from master: 644 2021-01-12 Richard Biener <rguenther@suse.de> 645 646 PR tree-optimization/98282 647 * tree-ssa-sccvn.c (vn_get_stmt_kind): Classify tcc_reference on 648 invariants as VN_NARY. 649 6502021-03-17 Richard Biener <rguenther@suse.de> 651 652 Backported from master: 653 2020-04-16 Richard Biener <rguenther@suse.de> 654 655 PR middle-end/94479 656 * gimplify.c (gimplify_addr_expr): Also consider generated 657 MEM_REFs. 658 6592021-03-07 John David Anglin <danglin@gcc.gnu.org> 660 661 PR target/85074 662 * config/pa/pa.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define as 663 hook_bool_const_tree_hwi_hwi_const_tree_true. 664 (pa_asm_output_mi_thunk): Add support for nonzero vcall_offset. 665 6662021-02-11 Eric Botcazou <ebotcazou@adacore.com> 667 668 * config/i386/winnt.c (i386_pe_seh_unwind_emit): When switching to 669 the cold section, emit a nop before the directive if the previous 670 active instruction can throw. 671 6722021-02-08 Matthias Klose <doko@ubuntu.com> 673 674 Backported from master: 675 2020-10-06 Richard Biener <rguenther@suse.de> 676 677 PR tree-optimization/97236 678 * tree-vect-stmts.c (get_group_load_store_type): Keep 679 VMAT_ELEMENTWISE for single-element vectors. 680 6812021-02-03 Jakub Jelinek <jakub@redhat.com> 682 683 Backported from master: 684 2020-11-20 Jakub Jelinek <jakub@redhat.com> 685 686 PR target/97528 687 * config/arm/arm.c (neon_vector_mem_operand): For POST_MODIFY, require 688 first POST_MODIFY operand is a REG and is equal to the first operand 689 of PLUS. 690 6912021-01-21 Wilco Dijkstra <wdijkstr@arm.com> 692 693 Backported from master: 694 2019-10-16 Wilco Dijkstra <wdijkstr@arm.com> 695 696 PR target/98618 697 * config/aarch64/aarch64.c (aarch64_classify_symbol): 698 Apply reasonable limit to symbol offsets. 699 7002021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org> 701 702 Backported from master: 703 2021-01-13 Samuel Thibault <samuel.thibault@ens-lyon.org> 704 705 * config.gcc [$target == *-*-gnu*]: Enable 706 'default_gnu_indirect_function'. 707 7082020-12-28 Uroš Bizjak <ubizjak@gmail.com> 709 710 PR target/96793 711 * config/i386/i386.c (ix86_expand_rint): 712 Remove the sign of the intermediate value for flag_rounding_math. 713 7142020-12-27 Uroš Bizjak <ubizjak@gmail.com> 715 716 PR target/96793 717 * config/i386/i386.c (ix86_expand_truncdf_32): 718 Remove the sign of the intermediate value for flag_rounding_math. 719 7202020-12-24 Roman Zhuykov <zhroma@ispras.ru> 721 722 Backported from master: 723 2020-12-05 Roman Zhuykov <zhroma@ispras.ru> 724 725 PR rtl-optimization/97421 726 * modulo-sched.c (generate_prolog_epilog): Remove forward 727 declaration, adjust last argument name and type. 728 (const_iteration_count): Add bool pointer parameter to return 729 whether count register is read in pre-header after its 730 initialization. 731 (sms_schedule): Fix count register initialization adjustment 732 procedure according to what const_iteration_count said. 733 7342020-12-23 Uroš Bizjak <ubizjak@gmail.com> 735 736 PR target/96793 737 * config/i386/i386.c (ix86_expand_floorceil): 738 Remove the sign of the intermediate value for flag_rounding_math. 739 (ix86_expand_floorceildf_32): Ditto. 740 7412020-12-14 Wilco Dijkstra <wdijkstr@arm.com> 742 743 * config.gcc (aarch64*-*-*): Add --with-tune. Support --with-cpu=native. 744 * config/aarch64/aarch64.h (OPTION_DEFAULT_SPECS): Add --with-tune. 745 7462020-12-14 Sebastian Pop <spop@amazon.com> 747 748 * config.gcc (aarch64*-*-*): Remove --with-{cpu,arch,tune}-32 flags. 749 7502020-12-01 Richard Biener <rguenther@suse.de> 751 752 Backported from master: 753 2020-05-07 Richard Biener <rguenther@suse.de> 754 755 PR ipa/94947 756 * tree-ssa-structalias.c (refered_from_nonlocal_fn): Use 757 DECL_EXTERNAL || TREE_PUBLIC instead of externally_visible. 758 (refered_from_nonlocal_var): Likewise. 759 (ipa_pta_execute): Likewise. 760 7612020-12-01 Richard Biener <rguenther@suse.de> 762 763 Backported from master: 764 2020-05-05 Richard Biener <rguenther@suse.de> 765 766 PR ipa/94947 767 * tree-ssa-structalias.c (ipa_pta_execute): Use 768 varpool_node::externally_visible_p (). 769 (refered_from_nonlocal_var): Likewise. 770 7712020-12-01 Richard Biener <rguenther@suse.de> 772 773 Backported from master: 774 2020-05-06 Richard Biener <rguenther@suse.de> 775 776 PR middle-end/94964 777 * cfgloopmanip.c (create_preheader): Require non-complex 778 preheader edge for CP_SIMPLE_PREHEADERS. 779 7802020-12-01 Richard Biener <rguenther@suse.de> 781 782 Backported from master: 783 2020-05-15 Richard Biener <rguenther@suse.de> 784 785 PR tree-optimization/95133 786 * gimple-ssa-split-paths.c 787 (find_block_to_duplicate_for_splitting_paths): Check for 788 normal edges. 789 7902020-12-01 Richard Biener <rguenther@suse.de> 791 792 Backported from master: 793 2020-10-26 Richard Biener <rguenther@suse.de> 794 795 PR middle-end/97554 796 * sbitmap.c (sbitmap_vector_alloc): Use size_t for byte 797 quantities to avoid overflow. 798 7992020-11-30 Stam Markianos-Wright <stam.markianos-wright@arm.com> 800 801 PR target/91816 802 * config/arm/arm-protos.h: New function arm_gen_far_branch prototype. 803 * config/arm/arm.c (arm_gen_far_branch): New function 804 arm_gen_far_branch. 805 * config/arm/arm.md: Update b<cond> for Thumb2 range checks. 806 8072020-11-25 Szabolcs Nagy <szabolcs.nagy@arm.com> 808 809 Backported from master: 810 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 811 812 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add 813 __ARM_FEATURE_PAC_DEFAULT support. 814 8152020-11-25 Szabolcs Nagy <szabolcs.nagy@arm.com> 816 817 Backported from master: 818 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 819 820 PR target/94891 821 * doc/extend.texi: Update the text for __builtin_return_address. 822 8232020-11-25 Szabolcs Nagy <szabolcs.nagy@arm.com> 824 825 Backported from master: 826 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 827 828 PR target/94891 829 * config/aarch64/aarch64.c (aarch64_return_address_signing_enabled): 830 Disable return address signing if __builtin_eh_return is used. 831 8322020-11-25 Szabolcs Nagy <szabolcs.nagy@arm.com> 833 834 Backported from master: 835 2020-07-13 Szabolcs Nagy <szabolcs.nagy@arm.com> 836 837 PR target/94891 838 PR target/94791 839 * config/aarch64/aarch64-protos.h (aarch64_return_addr_rtx): Declare. 840 * config/aarch64/aarch64.c (aarch64_return_addr_rtx): New. 841 (aarch64_return_addr): Use aarch64_return_addr_rtx. 842 * config/aarch64/aarch64.h (PROFILE_HOOK): Likewise. 843 8442020-11-24 Jason Merrill <jason@redhat.com> 845 846 PR c++/97918 847 * dwarf2out.c (dwarf2out_early_finish): flush_limbo_die_list 848 after gen_scheduled_generic_parms_dies. 849 8502020-11-17 Sebastian Pop <spop@amazon.com> 851 852 Backported from master: 853 2020-11-17 Sebastian Pop <spop@amazon.com> 854 855 * config.gcc: add configure flags --with-{cpu,arch,tune}-{32,64} 856 as alias flags for --with-{cpu,arch,tune} on AArch64. 857 * doc/install.texi: Document new flags for aarch64. 858 8592020-11-17 Sebastian Pop <spop@amazon.com> 860 861 Backported from master: 862 2020-11-17 Sebastian Pop <spop@amazon.com> 863 864 * config.gcc: Add --with-tune to AArch64 configure flags. 865 8662020-11-17 Richard Sandiford <richard.sandiford@arm.com> 867 868 Backported from master: 869 2020-08-05 Richard Sandiford <richard.sandiford@arm.com> 870 871 PR target/96191 872 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Set the 873 CC register directly, instead of a GPR. Replace the original GPR 874 destination with an extra scratch register. Zero out operand 3 875 after use. 876 (stack_protect_test): Update accordingly. 877 8782020-11-17 Tamar Christina <tamar.christina@arm.com> 879 880 PR target/97535 881 * config/aarch64/aarch64.c (aarch64_expand_movme): Use 882 unsigned HOST_WIDE_INT. 883 8842020-10-22 Andreas Krebbel <krebbel@linux.ibm.com> 885 886 Backported from master: 887 2020-10-22 Andreas Krebbel <krebbel@linux.ibm.com> 888 889 PR rtl-optimization/97439 890 * dfp.c (decimal_real_maxval): Set the sign flag in the 891 generated number. 892 8932020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 894 895 * config/aarch64/aarch64.c (neoversen2_tunings): Define. 896 * config/aarch64/aarch64-cores.def (neoverse-n2): Use it. 897 8982020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 899 900 Backported from master: 901 2020-10-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 902 903 PR target/97349 904 * config/aarch64/arm_neon.h (vdupq_n_p8, vdupq_n_p16, 905 vdupq_n_p64, vdupq_n_s8, vdupq_n_s16, vdupq_n_u8, vdupq_n_u16): 906 Fix argument type. 907 9082020-10-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 909 910 Backported from master: 911 2020-10-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 912 913 PR target/97150 914 * config/aarch64/arm_neon.h (vqrshlb_u8): Make second argument 915 signed. 916 (vqrshlh_u16): Likewise. 917 (vqrshls_u32): Likewise. 918 (vqrshld_u64): Likewise. 919 (vqshlb_u8): Likewise. 920 (vqshlh_u16): Likewise. 921 (vqshls_u32): Likewise. 922 (vqshld_u64): Likewise. 923 (vshld_u64): Likewise. 924 9252020-10-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 926 927 Backported from master: 928 2020-10-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 929 930 PR target/96313 931 * config/aarch64/aarch64-simd-builtins.def (sqmovun): Use UNOPUS 932 qualifiers. 933 * config/aarch64/arm_neon.h (vqmovun_s16): Adjust builtin call. 934 Remove unnecessary result cast. 935 (vqmovun_s32): Likewise. 936 (vqmovun_s64): Likewise. 937 (vqmovunh_s16): Likewise. Fix return type. 938 (vqmovuns_s32): Likewise. 939 (vqmovund_s64): Likewise. 940 9412020-10-08 Alan Modra <amodra@gmail.com> 942 943 Backported from master: 944 2020-10-01 Alan Modra <amodra@gmail.com> 945 946 * config/rs6000/rs6000.c (rs6000_legitimize_address): Use 947 gen_int_mode for high part of address constant. 948 9492020-10-06 Alex Coplan <alex.coplan@arm.com> 950 951 * config/arm/driver-arm.c (arm_cpu_table): Add neoverse-v1. 952 9532020-10-02 Alex Coplan <alex.coplan@arm.com> 954 955 * config/arm/arm-cpus.in (neoverse-n2): New. 956 * config/arm/arm-tables.opt: Regenerate. 957 * config/arm/arm-tune.md: Regenerate. 958 * config/arm/driver-arm.c (arm_cpu_table): Add Neoverse N2. 959 * doc/invoke.texi: Document support for Neoverse N2. 960 9612020-10-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 962 963 * config/aarch64/aarch64.c (neoversev1_tunings): Define. 964 * config/aarch64/aarch64-cores.def (zeus): Use it. 965 (neoverse-v1): Likewise. 966 9672020-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 968 969 * config/aarch64/aarch64-tuning-flags.def 970 (PREFER_ADVSIMD_AUTOVEC): Define. 971 * config/aarch64/aarch64.c (aarch64_preferred_simd_mode): Use 972 it. 973 (aarch64_autovectorize_vector_sizes): Likewise. 974 9752020-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 976 977 * config/aarch64/aarch64-cores.def (zeus): Add AARCH64_FL_RNG to 978 features. 979 (neoverse-v1): Likewise. 980 9812020-10-01 Jakub Jelinek <jakub@redhat.com> 982 983 Backported from master: 984 2020-10-01 Jakub Jelinek <jakub@redhat.com> 985 986 * config/s390/s390.c (s390_atomic_assign_expand_fenv): Use 987 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to 988 fenv_var and old_fpc. Formatting fixes. 989 9902020-10-01 Alex Coplan <alex.coplan@arm.com> 991 992 * config/aarch64/aarch64-cores.def: Add Neoverse N2. 993 * config/aarch64/aarch64-tune.md: Regenerate. 994 * doc/invoke.texi: Document AArch64 support for Neoverse N2. 995 9962020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 997 998 Backported from master: 999 2020-09-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1000 1001 * config/aarch64/aarch64-option-extensions.def (rng): Add 1002 cpuinfo string. 1003 10042020-09-30 H.J. Lu <hjl.tools@gmail.com> 1005 1006 Backported from master: 1007 2020-09-30 H.J. Lu <hjl.tools@gmail.com> 1008 1009 PR target/97184 1010 * config/i386/i386.md (UNSPECV_MOVDIRI): Renamed to ... 1011 (UNSPEC_MOVDIRI): This. 1012 (UNSPECV_MOVDIR64B): Renamed to ... 1013 (UNSPEC_MOVDIR64B): This. 1014 (movdiri<mode>): Use SET operation. 1015 (@movdir64b_<mode>): Likewise. 1016 10172020-09-29 Hongyu Wang <hongyu.wang@intel.com> 1018 1019 Backported from master: 1020 2020-09-29 Hongyu Wang <hongyu.wang@intel.com> 1021 1022 PR target/97231 1023 * config/i386/pconfigintrin.h: Add FSF copyright notes. 1024 * config/i386/wbnoinvdintrin.h: Ditto. 1025 10262020-09-29 Alex Coplan <alex.coplan@arm.com> 1027 1028 * config/arm/arm-cpus.in (neoverse-v1): New. 1029 * config/arm/arm-tables.opt: Regenerate. 1030 * config/arm/arm-tune.md: Regenerate. 1031 * doc/invoke.texi: Document AArch32 support for Neoverse V1. 1032 10332020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1034 1035 Backported from master: 1036 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1037 1038 PR target/71233 1039 * config/aarch64/arm_neon.h (vreinterpretq_f64_p128, 1040 vreinterpretq_p128_f64): Define. 1041 10422020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1043 1044 Backported from master: 1045 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1046 1047 PR target/71233 1048 * config/aarch64/aarch64-simd-builtins.def (frintn): Use BUILTIN_VHSDF_HSDF 1049 for modes. Remove explicit hf instantiation. 1050 * config/aarch64/arm_neon.h (vrndns_f32): Define. 1051 10522020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1053 1054 Backported from master: 1055 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1056 1057 PR target/71233 1058 * config/aarch64/arm_neon.h (vtrn1q_p64, vtrn2q_p64, vuzp1q_p64, 1059 vuzp2q_p64, vzip1q_p64, vzip2q_p64): Define. 1060 10612020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1062 1063 Backported from master: 1064 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1065 1066 PR target/71233 1067 * config/aarch64/arm_neon.h (vldrq_p128): Define. 1068 10692020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1070 1071 Backported from master: 1072 2020-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1073 1074 PR target/71233 1075 * config/aarch64/arm_neon.h (vstrq_p128): Define. 1076 10772020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1078 1079 Backported from master: 1080 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1081 1082 PR target/71233 1083 * config/aarch64/arm_neon.h (vcls_u8, vcls_u16, vcls_u32, 1084 vclsq_u8, vclsq_u16, vclsq_u32): Define. 1085 10862020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1087 1088 Backported from master: 1089 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1090 1091 PR target/71233 1092 * config/aarch64/arm_neon.h (vceqq_p64, vceqz_p64, vceqzq_p64): Define. 1093 10942020-09-28 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1095 1096 Backported from master: 1097 2020-09-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1098 1099 PR target/71233 1100 * config/aarch64/arm_neon.h (vadd_p8, vadd_p16, vadd_p64, vaddq_p8, 1101 vaddq_p16, vaddq_p64, vaddq_p128): Define. 1102 11032020-09-27 Jakub Jelinek <jakub@redhat.com> 1104 1105 Backported from master: 1106 2020-09-27 Jakub Jelinek <jakub@redhat.com> 1107 1108 PR middle-end/97073 1109 * optabs.c (expand_binop, expand_absneg_bit, expand_unop, 1110 expand_copysign_bit): Check reg_overlap_mentioned_p between target 1111 and operand(s) and if it returns true, force a pseudo as target. 1112 11132020-09-25 Tamar Christina <tamar.christina@arm.com> 1114 1115 PR target/71233 1116 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): 1117 Add qualifier_lane_pair_index. 1118 (emit-rtl.h): Include. 1119 (TYPES_QUADOP_LANE_PAIR): New. 1120 (aarch64_simd_expand_args): Use it. 1121 (aarch64_simd_expand_builtin): Likewise. 1122 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New. 1123 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE, 1124 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data, 1125 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New. 1126 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins. 1127 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF, 1128 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF, 1129 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF, 1130 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF, 1131 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF. 1132 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX. 1133 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90, 1134 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270, 1135 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270, 1136 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New. 1137 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>, 1138 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>, 1139 aarch64_fcmla<rot><mode>): New. 1140 * config/aarch64/arm_neon.h: 1141 (vcadd_rot90_f16): New. 1142 (vcaddq_rot90_f16): New. 1143 (vcadd_rot270_f16): New. 1144 (vcaddq_rot270_f16): New. 1145 (vcmla_f16): New. 1146 (vcmlaq_f16): New. 1147 (vcmla_lane_f16): New. 1148 (vcmla_laneq_f16): New. 1149 (vcmlaq_lane_f16): New. 1150 (vcmlaq_rot90_lane_f16): New. 1151 (vcmla_rot90_laneq_f16): New. 1152 (vcmla_rot90_lane_f16): New. 1153 (vcmlaq_rot90_f16): New. 1154 (vcmla_rot90_f16): New. 1155 (vcmlaq_laneq_f16): New. 1156 (vcmla_rot180_laneq_f16): New. 1157 (vcmla_rot180_lane_f16): New. 1158 (vcmlaq_rot180_f16): New. 1159 (vcmla_rot180_f16): New. 1160 (vcmlaq_rot90_laneq_f16): New. 1161 (vcmlaq_rot270_laneq_f16): New. 1162 (vcmlaq_rot270_lane_f16): New. 1163 (vcmla_rot270_laneq_f16): New. 1164 (vcmlaq_rot270_f16): New. 1165 (vcmla_rot270_f16): New. 1166 (vcmlaq_rot180_laneq_f16): New. 1167 (vcmlaq_rot180_lane_f16): New. 1168 (vcmla_rot270_lane_f16): New. 1169 (vcadd_rot90_f32): New. 1170 (vcaddq_rot90_f32): New. 1171 (vcaddq_rot90_f64): New. 1172 (vcadd_rot270_f32): New. 1173 (vcaddq_rot270_f32): New. 1174 (vcaddq_rot270_f64): New. 1175 (vcmla_f32): New. 1176 (vcmlaq_f32): New. 1177 (vcmlaq_f64): New. 1178 (vcmla_lane_f32): New. 1179 (vcmla_laneq_f32): New. 1180 (vcmlaq_lane_f32): New. 1181 (vcmlaq_laneq_f32): New. 1182 (vcmla_rot90_f32): New. 1183 (vcmlaq_rot90_f32): New. 1184 (vcmlaq_rot90_f64): New. 1185 (vcmla_rot90_lane_f32): New. 1186 (vcmla_rot90_laneq_f32): New. 1187 (vcmlaq_rot90_lane_f32): New. 1188 (vcmlaq_rot90_laneq_f32): New. 1189 (vcmla_rot180_f32): New. 1190 (vcmlaq_rot180_f32): New. 1191 (vcmlaq_rot180_f64): New. 1192 (vcmla_rot180_lane_f32): New. 1193 (vcmla_rot180_laneq_f32): New. 1194 (vcmlaq_rot180_lane_f32): New. 1195 (vcmlaq_rot180_laneq_f32): New. 1196 (vcmla_rot270_f32): New. 1197 (vcmlaq_rot270_f32): New. 1198 (vcmlaq_rot270_f64): New. 1199 (vcmla_rot270_lane_f32): New. 1200 (vcmla_rot270_laneq_f32): New. 1201 (vcmlaq_rot270_lane_f32): New. 1202 (vcmlaq_rot270_laneq_f32): New. 1203 * config/aarch64/aarch64.h (TARGET_COMPLEX): New. 1204 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270, 1205 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New. 1206 (FCADD, FCMLA): New. 1207 (rot): New. 1208 (FCMLA_maybe_lane): New. 1209 * config/arm/types.md (neon_fcadd, neon_fcmla): New. 1210 12112020-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1212 1213 PR target/71233 1214 * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): 1215 Define. 1216 (aarch64_rndr): New define_insn. 1217 (aarch64_rndrrs): Likewise. 1218 * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define. 1219 (TARGET_RNG): Likewise. 1220 (AARCH64_FL_RNG): Likewise. 1221 * config/aarch64/aarch64-option-extensions.def (rng): Define. 1222 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): 1223 Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS. 1224 (aarch64_init_rng_builtins): Define. 1225 (aarch64_init_builtins): Call aarch64_init_rng_builtins. 1226 (aarch64_expand_rng_builtin): Define. 1227 (aarch64_expand_builtin): Use IGNORE argument, handle 1228 RNG builtins. 1229 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 1230 Define __ARM_FEATURE_RNG when TARGET_RNG. 1231 * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define. 1232 12332020-09-24 H.J. Lu <hjl.tools@gmail.com> 1234 1235 Backported from master: 1236 2020-09-16 H.J. Lu <hjl.tools@gmail.com> 1237 1238 PR target/97032 1239 * cfgexpand.c (expand_asm_stmt): Set sp_is_clobbered_by_asm to 1240 true if the stack pointer is clobbered by asm statement. 1241 * emit-rtl.h (rtl_data): Add sp_is_clobbered_by_asm. 1242 * config/i386/i386.c (ix86_get_drap_rtx): Set need_drap to true 1243 if the stack pointer is clobbered by asm statement. 1244 12452020-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1246 1247 Backported from master: 1248 2020-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1249 Andrea Corallo <andrea.corallo@arm.com> 1250 1251 PR target/71233 1252 * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define. 1253 (aarch64_fjcvtzs): New define_insn. 1254 * config/aarch64/aarch64.h (TARGET_JSCVT): Define. 1255 * config/aarch64/aarch64-builtins.c (aarch64_builtins): 1256 Add AARCH64_JSCVT. 1257 (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs. 1258 (aarch64_expand_builtin): Handle AARCH64_JSCVT. 1259 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define 1260 __ARM_FEATURE_JCVT where appropriate. 1261 * config/aarch64/arm_acle.h (__jcvt): Define. 1262 * doc/sourcebuild.texi (aarch64_fjcvtzs_hw) Document new 1263 target supports option. 1264 12652020-09-24 Tamar Christina <tamar.christina@arm.com> 1266 1267 Backported from master: 1268 2019-02-25 Tamar Christina <tamar.christina@arm.com> 1269 1270 PR target/71233 1271 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, 1272 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32, 1273 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, 1274 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32, 1275 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32, 1276 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32, 1277 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32, 1278 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32): 1279 Rename ... 1280 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16, 1281 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16, 1282 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16, 1283 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16, 1284 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16, 1285 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16, 1286 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16, 1287 vfmlslq_laneq_high_f16): ... To this. 1288 12892020-09-24 Tamar Christina <tamar.christina@arm.com> 1290 1291 Backported from master: 1292 2018-05-21 Tamar Christina <tamar.christina@arm.com> 1293 1294 PR target/71233 1295 * config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to 1296 eor3q<mode>4. 1297 (aarch64_bcaxqv8hi): Change to bcaxq<mode>4. 1298 * config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32, 1299 veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8, 1300 vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, 1301 vbcaxq_s64): New. 1302 * config/aarch64/arm_neon.h: Likewise. 1303 * config/aarch64/iterators.md (VQ_I): New. 1304 13052020-09-24 Alex Coplan <alex.coplan@arm.com> 1306 1307 * config/aarch64/aarch64-cores.def: Add Neoverse V1. 1308 * config/aarch64/aarch64-tune.md: Regenerate. 1309 * doc/invoke.texi: Document support for Neoverse V1. 1310 13112020-09-22 Vlad Lazar <vlad.lazar@arm.com> 1312 1313 Backported from master: 1314 2018-08-31 Vlad Lazar <vlad.lazar@arm.com> 1315 1316 PR target/71233 1317 * config/aarch64/arm_neon.h (vabsd_s64): New. 1318 (vnegd_s64): Likewise. 1319 13202020-09-18 Jakub Jelinek <jakub@redhat.com> 1321 1322 Backported from master: 1323 2020-09-16 Jakub Jelinek <jakub@redhat.com> 1324 1325 PR tree-optimization/97053 1326 * gimple-ssa-store-merging.c (check_no_overlap): Add FIRST_ORDER, 1327 START, FIRST_EARLIER and LAST_EARLIER arguments. Return false if 1328 any stores between FIRST_EARLIER inclusive and LAST_EARLIER exclusive 1329 has order in between FIRST_ORDER and LAST_ORDER and overlaps the to 1330 be merged store. 1331 (imm_store_chain_info::try_coalesce_bswap): Add FIRST_EARLIER argument. 1332 Adjust check_no_overlap caller. 1333 (imm_store_chain_info::coalesce_immediate_stores): Add first_earlier 1334 and last_earlier variables, adjust them during iterations. Adjust 1335 check_no_overlap callers, call check_no_overlap even when extending 1336 overlapping stores by extra INTEGER_CST stores. 1337 13382020-09-18 Richard Sandiford <richard.sandiford@arm.com> 1339 1340 Backported from master: 1341 2020-04-29 Richard Sandiford <richard.sandiford@arm.com> 1342 1343 * config/arm/arm-builtins.c (arm_atomic_assign_expand_fenv): Use 1344 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to 1345 fenv_var and new_fenv_var. 1346 13472020-09-17 Segher Boessenkool <segher@kernel.crashing.org> 1348 1349 Backported from master: 1350 2020-04-24 Segher Boessenkool <segher@kernel.crashing.org> 1351 1352 PR target/94710 1353 * config/rs6000/vector.md (vec_shr_<mode> for VEC_L): Correct little 1354 endian byteshift_val calculation. 1355 13562020-09-17 Jakub Jelinek <jakub@redhat.com> 1357 1358 Backported from master: 1359 2020-08-26 Jakub Jelinek <jakub@redhat.com> 1360 1361 PR debug/96729 1362 * dwarf2out.c (dwarf2out_next_real_insn): Adjust function comment. 1363 (dwarf2out_var_location): Look for next_note only if next_real is 1364 non-NULL, in that case look for the first non-deleted 1365 NOTE_INSN_VAR_LOCATION between loc_note and next_real, if any. 1366 13672020-09-17 Jakub Jelinek <jakub@redhat.com> 1368 1369 Backported from master: 1370 2020-08-25 Jakub Jelinek <jakub@redhat.com> 1371 1372 PR tree-optimization/96722 1373 * gimple.c (infer_nonnull_range): Formatting fix. 1374 (infer_nonnull_range_by_dereference): Return false for clobber stmts. 1375 13762020-09-17 Jakub Jelinek <jakub@redhat.com> 1377 1378 Backported from master: 1379 2020-08-08 Jakub Jelinek <jakub@redhat.com> 1380 1381 PR fortran/93553 1382 * tree-nested.c (convert_nonlocal_omp_clauses): For 1383 OMP_CLAUSE_REDUCTION, OMP_CLAUSE_LASTPRIVATE and OMP_CLAUSE_LINEAR 1384 save info->new_local_var_chain around walks of the clause gimple 1385 sequences and declare_vars if needed into the sequence. 1386 13872020-09-17 Jakub Jelinek <jakub@redhat.com> 1388 1389 Backported from master: 1390 2020-07-15 Jakub Jelinek <jakub@redhat.com> 1391 1392 PR target/96174 1393 * config/i386/avx512fintrin.h (_mm512_cmpeq_pd_mask, 1394 _mm512_mask_cmpeq_pd_mask, _mm512_cmplt_pd_mask, 1395 _mm512_mask_cmplt_pd_mask, _mm512_cmple_pd_mask, 1396 _mm512_mask_cmple_pd_mask, _mm512_cmpunord_pd_mask, 1397 _mm512_mask_cmpunord_pd_mask, _mm512_cmpneq_pd_mask, 1398 _mm512_mask_cmpneq_pd_mask, _mm512_cmpnlt_pd_mask, 1399 _mm512_mask_cmpnlt_pd_mask, _mm512_cmpnle_pd_mask, 1400 _mm512_mask_cmpnle_pd_mask, _mm512_cmpord_pd_mask, 1401 _mm512_mask_cmpord_pd_mask, _mm512_cmpeq_ps_mask, 1402 _mm512_mask_cmpeq_ps_mask, _mm512_cmplt_ps_mask, 1403 _mm512_mask_cmplt_ps_mask, _mm512_cmple_ps_mask, 1404 _mm512_mask_cmple_ps_mask, _mm512_cmpunord_ps_mask, 1405 _mm512_mask_cmpunord_ps_mask, _mm512_cmpneq_ps_mask, 1406 _mm512_mask_cmpneq_ps_mask, _mm512_cmpnlt_ps_mask, 1407 _mm512_mask_cmpnlt_ps_mask, _mm512_cmpnle_ps_mask, 1408 _mm512_mask_cmpnle_ps_mask, _mm512_cmpord_ps_mask, 1409 _mm512_mask_cmpord_ps_mask): Move outside of __OPTIMIZE__ guarded 1410 section. 1411 14122020-09-17 Jakub Jelinek <jakub@redhat.com> 1413 1414 Backported from master: 1415 2020-07-02 Jakub Jelinek <jakub@redhat.com> 1416 1417 PR tree-optimization/95857 1418 * tree-cfg.c (group_case_labels_stmt): When removing an unreachable 1419 base_bb, remember all forced and non-local labels on it and later 1420 treat those as if they have NULL label_to_block. Formatting fix. 1421 Fix a comment typo. 1422 14232020-09-17 Jakub Jelinek <jakub@redhat.com> 1424 1425 Backported from master: 1426 2020-05-14 Jakub Jelinek <jakub@redhat.com> 1427 1428 PR middle-end/95108 1429 * omp-simd-clone.c (struct modify_stmt_info): Add after_stmt member. 1430 (ipa_simd_modify_stmt_ops): For PHIs, only add before first stmt in 1431 entry block if info->after_stmt is NULL, otherwise add after that stmt 1432 and update it after adding each stmt. 1433 (ipa_simd_modify_function_body): Initialize info.after_stmt. 1434 14352020-09-17 Jakub Jelinek <jakub@redhat.com> 1436 1437 Backported from master: 1438 2020-05-13 Jakub Jelinek <jakub@redhat.com> 1439 1440 PR debug/95080 1441 * cfgrtl.c (purge_dead_edges): Skip over debug and note insns even 1442 if the last insn is a note. 1443 14442020-09-17 Jakub Jelinek <jakub@redhat.com> 1445 1446 Backported from master: 1447 2020-05-07 Jakub Jelinek <jakub@redhat.com> 1448 1449 PR target/94950 1450 * config/riscv/riscv-builtins.c (riscv_atomic_assign_expand_fenv): Use 1451 TARGET_EXPR instead of MODIFY_EXPR for first assignment to old_flags. 1452 14532020-09-17 Jakub Jelinek <jakub@redhat.com> 1454 1455 Backported from master: 1456 2020-05-07 Jakub Jelinek <jakub@redhat.com> 1457 1458 PR rtl-optimization/94873 1459 * combine.c (combine_instructions): Don't optimize using REG_EQUAL 1460 note if SET_SRC (set) has side-effects. 1461 14622020-09-17 Jakub Jelinek <jakub@redhat.com> 1463 1464 Backported from master: 1465 2020-05-02 Jakub Jelinek <jakub@redhat.com> 1466 1467 * config/tilegx/tilegx.md 1468 (insn_stnt<I124MODE:n>_add<I48MODE:bitsuffix>): Use <I124MODE:n> 1469 rather than just <n>. 1470 14712020-09-17 Jakub Jelinek <jakub@redhat.com> 1472 1473 Backported from master: 1474 2020-04-29 Jakub Jelinek <jakub@redhat.com> 1475 1476 PR target/94832 1477 * config/i386/avx512bwintrin.h (_mm512_alignr_epi8, 1478 _mm512_mask_alignr_epi8, _mm512_maskz_alignr_epi8): Wrap macro operands 1479 used in casts into parens. 1480 * config/i386/avx512fintrin.h (_mm512_cvt_roundps_ph, _mm512_cvtps_ph, 1481 _mm512_mask_cvt_roundps_ph, _mm512_mask_cvtps_ph, 1482 _mm512_maskz_cvt_roundps_ph, _mm512_maskz_cvtps_ph, 1483 _mm512_mask_cmp_epi64_mask, _mm512_mask_cmp_epi32_mask, 1484 _mm512_mask_cmp_epu64_mask, _mm512_mask_cmp_epu32_mask, 1485 _mm512_mask_cmp_round_pd_mask, _mm512_mask_cmp_round_ps_mask, 1486 _mm512_mask_cmp_pd_mask, _mm512_mask_cmp_ps_mask): Likewise. 1487 * config/i386/avx512vlbwintrin.h (_mm256_mask_alignr_epi8, 1488 _mm256_maskz_alignr_epi8, _mm_mask_alignr_epi8, _mm_maskz_alignr_epi8, 1489 _mm256_mask_cmp_epu8_mask): Likewise. 1490 * config/i386/avx512vlintrin.h (_mm_mask_cvtps_ph, _mm_maskz_cvtps_ph, 1491 _mm256_mask_cvtps_ph, _mm256_maskz_cvtps_ph): Likewise. 1492 * config/i386/f16cintrin.h (_mm_cvtps_ph, _mm256_cvtps_ph): Likewise. 1493 * config/i386/shaintrin.h (_mm_sha1rnds4_epu32): Likewise. 1494 14952020-09-17 Jakub Jelinek <jakub@redhat.com> 1496 1497 Backported from master: 1498 2020-04-29 Jakub Jelinek <jakub@redhat.com> 1499 1500 PR target/94832 1501 * config/i386/avx2intrin.h (_mm_mask_i32gather_pd, 1502 _mm256_mask_i32gather_pd, _mm_mask_i64gather_pd, 1503 _mm256_mask_i64gather_pd, _mm_mask_i32gather_ps, 1504 _mm256_mask_i32gather_ps, _mm_mask_i64gather_ps, 1505 _mm256_mask_i64gather_ps, _mm_i32gather_epi64, 1506 _mm_mask_i32gather_epi64, _mm256_i32gather_epi64, 1507 _mm256_mask_i32gather_epi64, _mm_i64gather_epi64, 1508 _mm_mask_i64gather_epi64, _mm256_i64gather_epi64, 1509 _mm256_mask_i64gather_epi64, _mm_i32gather_epi32, 1510 _mm_mask_i32gather_epi32, _mm256_i32gather_epi32, 1511 _mm256_mask_i32gather_epi32, _mm_i64gather_epi32, 1512 _mm_mask_i64gather_epi32, _mm256_i64gather_epi32, 1513 _mm256_mask_i64gather_epi32): Surround macro parameter uses with 1514 parens. 1515 (_mm_i32gather_pd, _mm256_i32gather_pd, _mm_i64gather_pd, 1516 _mm256_i64gather_pd, _mm_i32gather_ps, _mm256_i32gather_ps, 1517 _mm_i64gather_ps, _mm256_i64gather_ps): Likewise. Don't use 1518 as mask vector containing -1.0 or -1.0f elts, but instead vector 1519 with all bits set using _mm*_cmpeq_p? with zero operands. 1520 * config/i386/avx512fintrin.h (_mm512_i32gather_ps, 1521 _mm512_mask_i32gather_ps, _mm512_i32gather_pd, 1522 _mm512_mask_i32gather_pd, _mm512_i64gather_ps, 1523 _mm512_mask_i64gather_ps, _mm512_i64gather_pd, 1524 _mm512_mask_i64gather_pd, _mm512_i32gather_epi32, 1525 _mm512_mask_i32gather_epi32, _mm512_i32gather_epi64, 1526 _mm512_mask_i32gather_epi64, _mm512_i64gather_epi32, 1527 _mm512_mask_i64gather_epi32, _mm512_i64gather_epi64, 1528 _mm512_mask_i64gather_epi64, _mm512_i32scatter_ps, 1529 _mm512_mask_i32scatter_ps, _mm512_i32scatter_pd, 1530 _mm512_mask_i32scatter_pd, _mm512_i64scatter_ps, 1531 _mm512_mask_i64scatter_ps, _mm512_i64scatter_pd, 1532 _mm512_mask_i64scatter_pd, _mm512_i32scatter_epi32, 1533 _mm512_mask_i32scatter_epi32, _mm512_i32scatter_epi64, 1534 _mm512_mask_i32scatter_epi64, _mm512_i64scatter_epi32, 1535 _mm512_mask_i64scatter_epi32, _mm512_i64scatter_epi64, 1536 _mm512_mask_i64scatter_epi64): Surround macro parameter uses with 1537 parens. 1538 * config/i386/avx512pfintrin.h (_mm512_prefetch_i32gather_pd, 1539 _mm512_prefetch_i32gather_ps, _mm512_mask_prefetch_i32gather_pd, 1540 _mm512_mask_prefetch_i32gather_ps, _mm512_prefetch_i64gather_pd, 1541 _mm512_prefetch_i64gather_ps, _mm512_mask_prefetch_i64gather_pd, 1542 _mm512_mask_prefetch_i64gather_ps, _mm512_prefetch_i32scatter_pd, 1543 _mm512_prefetch_i32scatter_ps, _mm512_mask_prefetch_i32scatter_pd, 1544 _mm512_mask_prefetch_i32scatter_ps, _mm512_prefetch_i64scatter_pd, 1545 _mm512_prefetch_i64scatter_ps, _mm512_mask_prefetch_i64scatter_pd, 1546 _mm512_mask_prefetch_i64scatter_ps): Likewise. 1547 * config/i386/avx512vlintrin.h (_mm256_mmask_i32gather_ps, 1548 _mm_mmask_i32gather_ps, _mm256_mmask_i32gather_pd, 1549 _mm_mmask_i32gather_pd, _mm256_mmask_i64gather_ps, 1550 _mm_mmask_i64gather_ps, _mm256_mmask_i64gather_pd, 1551 _mm_mmask_i64gather_pd, _mm256_mmask_i32gather_epi32, 1552 _mm_mmask_i32gather_epi32, _mm256_mmask_i32gather_epi64, 1553 _mm_mmask_i32gather_epi64, _mm256_mmask_i64gather_epi32, 1554 _mm_mmask_i64gather_epi32, _mm256_mmask_i64gather_epi64, 1555 _mm_mmask_i64gather_epi64, _mm256_i32scatter_ps, 1556 _mm256_mask_i32scatter_ps, _mm_i32scatter_ps, _mm_mask_i32scatter_ps, 1557 _mm256_i32scatter_pd, _mm256_mask_i32scatter_pd, _mm_i32scatter_pd, 1558 _mm_mask_i32scatter_pd, _mm256_i64scatter_ps, 1559 _mm256_mask_i64scatter_ps, _mm_i64scatter_ps, _mm_mask_i64scatter_ps, 1560 _mm256_i64scatter_pd, _mm256_mask_i64scatter_pd, _mm_i64scatter_pd, 1561 _mm_mask_i64scatter_pd, _mm256_i32scatter_epi32, 1562 _mm256_mask_i32scatter_epi32, _mm_i32scatter_epi32, 1563 _mm_mask_i32scatter_epi32, _mm256_i32scatter_epi64, 1564 _mm256_mask_i32scatter_epi64, _mm_i32scatter_epi64, 1565 _mm_mask_i32scatter_epi64, _mm256_i64scatter_epi32, 1566 _mm256_mask_i64scatter_epi32, _mm_i64scatter_epi32, 1567 _mm_mask_i64scatter_epi32, _mm256_i64scatter_epi64, 1568 _mm256_mask_i64scatter_epi64, _mm_i64scatter_epi64, 1569 _mm_mask_i64scatter_epi64): Likewise. 1570 15712020-09-17 Jakub Jelinek <jakub@redhat.com> 1572 1573 Backported from master: 1574 2020-04-29 Jakub Jelinek <jakub@redhat.com> 1575 1576 PR target/94826 1577 * config/rs6000/rs6000.c (rs6000_atomic_assign_expand_fenv): Use 1578 TARGET_EXPR instead of MODIFY_EXPR for first assignment to 1579 fenv_var, fenv_clear and old_fenv variables. For fenv_addr 1580 take address of TARGET_EXPR of fenv_var with void_node initializer. 1581 Formatting fixes. 1582 15832020-09-17 Haijian Zhang <z.zhanghaijian@huawei.com> 1584 1585 Backported from master: 1586 2020-04-29 Haijian Zhang <z.zhanghaijian@huawei.com> 1587 1588 PR target/94820 1589 * config/aarch64/aarch64-builtins.c 1590 (aarch64_atomic_assign_expand_fenv): Use TARGET_EXPR instead of 1591 MODIFY_EXPR for first assignment to fenv_cr, fenv_sr and 1592 new_fenv_var. 1593 15942020-09-17 Jakub Jelinek <jakub@redhat.com> 1595 1596 Backported from master: 1597 2020-04-28 Jakub Jelinek <jakub@redhat.com> 1598 1599 PR tree-optimization/94809 1600 * tree.c (build_call_expr_internal_loc_array): Call 1601 process_call_operands. 1602 16032020-09-17 Jakub Jelinek <jakub@redhat.com> 1604 1605 Backported from master: 1606 2020-04-27 Jakub Jelinek <jakub@redhat.com> 1607 1608 PR target/94780 1609 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Use 1610 TARGET_EXPR instead of MODIFY_EXPR for first assignment to 1611 sw_var, exceptions_var, mxcsr_orig_var and mxcsr_mod_var. 1612 16132020-09-17 Jakub Jelinek <jakub@redhat.com> 1614 1615 Backported from master: 1616 2020-04-23 Jakub Jelinek <jakub@redhat.com> 1617 1618 PR target/94710 1619 * optabs.c (expand_vec_perm_const): For shift_amt const0_rtx 1620 just return v2. 1621 16222020-09-17 Jakub Jelinek <jakub@redhat.com> 1623 1624 Backported from master: 1625 2020-04-23 Jakub Jelinek <jakub@redhat.com> 1626 1627 PR c/94705 1628 * attribs.c (decl_attribute): Don't diagnose attribute exclusions 1629 if last_decl is error_mark_node or has such a TREE_TYPE. 1630 16312020-09-17 Jakub Jelinek <jakub@redhat.com> 1632 1633 Backported from master: 1634 2020-04-21 Jakub Jelinek <jakub@redhat.com> 1635 1636 PR c/94641 1637 * stor-layout.c (place_field, finalize_record_size): Don't emit 1638 -Wpadded warning on TYPE_ARTIFICIAL rli->t. 1639 * ubsan.c (ubsan_get_type_descriptor_type, 1640 ubsan_get_source_location_type, ubsan_create_data): Set 1641 TYPE_ARTIFICIAL. 1642 * asan.c (asan_global_struct): Likewise. 1643 16442020-09-17 Jakub Jelinek <jakub@redhat.com> 1645 1646 Backported from master: 1647 2020-04-17 Jakub Jelinek <jakub@redhat.com> 1648 1649 PR rtl-optimization/94618 1650 * cfgrtl.c (delete_insn_and_edges): Set purge not just when 1651 insn is the BB_END of its block, but also when it is only followed 1652 by DEBUG_INSNs in its block. 1653 16542020-09-17 Jakub Jelinek <jakub@redhat.com> 1655 1656 Backported from master: 1657 2020-04-08 Jakub Jelinek <jakub@redhat.com> 1658 1659 PR tree-optimization/94524 1660 * tree-vect-generic.c (expand_vector_divmod): If any elt of op1 is 1661 negative for signed TRUNC_MOD_EXPR, multiply with absolute value of 1662 op1 rather than op1 itself at the end. Punt for signed modulo by 1663 most negative constant. 1664 * tree-vect-patterns.c (vect_recog_divmod_pattern): Punt for signed 1665 modulo by most negative constant. 1666 16672020-09-17 Jakub Jelinek <jakub@redhat.com> 1668 1669 Backported from master: 1670 2020-04-08 Jakub Jelinek <jakub@redhat.com> 1671 1672 PR target/94438 1673 * config/i386/i386.c (ix86_get_mask_mode): Only use int mask for elem_size 1674 1, 2, 4 and 8. 1675 16762020-09-17 Jakub Jelinek <jakub@redhat.com> 1677 1678 Backported from master: 1679 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1680 1681 PR target/94509 1682 * config/i386/i386.c (expand_vec_perm_pshufb): Fix the check 1683 for inter-lane permutation for 64-byte modes. 1684 16852020-09-17 Jakub Jelinek <jakub@redhat.com> 1686 1687 Backported from master: 1688 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1689 1690 PR target/94488 1691 * config/aarch64/aarch64-simd.md (ashl<mode>3, lshr<mode>3, 1692 ashr<mode>3): Force operands[2] into reg whenever it is not CONST_INT. 1693 Assume it is a REG after that instead of testing it and doing FAIL 1694 otherwise. Formatting fix. 1695 16962020-09-17 Jakub Jelinek <jakub@redhat.com> 1697 1698 Backported from master: 1699 2020-04-07 Hannes Domani <ssbssa@yahoo.de> 1700 Jakub Jelinek <jakub@redhat.com> 1701 1702 PR debug/94459 1703 * dwarf2out.c (gen_subprogram_die): Look through references, pointers, 1704 arrays, pointer-to-members, function types and qualifiers when 1705 checking if in-class DIE had an 'auto' or 'decltype(auto)' return type 1706 to emit type again on definition. 1707 17082020-09-17 Jakub Jelinek <jakub@redhat.com> 1709 1710 Backported from master: 1711 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1712 1713 PR target/94460 1714 * config/i386/sse.md (avx2_ph<plusminus_mnemonic>wv16hi3, 1715 avx2_ph<plusminus_mnemonic>dv8si3): Fix up RTL pattern to do 1716 second half of first lane from first lane of second operand and 1717 first half of second lane from second lane of first operand. 1718 17192020-09-17 Jakub Jelinek <jakub@redhat.com> 1720 1721 Backported from master: 1722 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1723 1724 PR middle-end/94423 1725 * tree-object-size.c (pass_object_sizes::execute): Don't call 1726 replace_uses_by for SSA_NAME_OCCURS_IN_ABNORMAL_PHI lhs, instead 1727 call replace_call_with_value. 1728 17292020-09-17 Jakub Jelinek <jakub@redhat.com> 1730 1731 Backported from master: 1732 2020-04-07 Marc Glisse <marc.glisse@inria.fr> 1733 Jakub Jelinek <jakub@redhat.com> 1734 1735 PR middle-end/94412 1736 * fold-const.c (fold_binary_loc) <case TRUNC_DIV_EXPR>: Use 1737 ANY_INTEGRAL_TYPE_P instead of INTEGRAL_TYPE_P. 1738 17392020-09-17 Jakub Jelinek <jakub@redhat.com> 1740 1741 Backported from master: 1742 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1743 1744 PR target/93069 1745 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Use 1746 <store_mask_constraint> instead of m in output operand constraint. 1747 (vec_extract_hi_<mode><mask_name>): Use <mask_operand2> instead of 1748 %{%3%}. 1749 17502020-09-17 Jakub Jelinek <jakub@redhat.com> 1751 1752 Backported from master: 1753 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1754 1755 PR tree-optimization/94329 1756 * tree-ssa-reassoc.c (reassociate_bb): When calling reassoc_remove_stmt 1757 on the last stmt in a bb, make sure gsi_prev isn't done immediately 1758 after gsi_last_bb. 1759 17602020-09-17 Jakub Jelinek <jakub@redhat.com> 1761 1762 Backported from master: 1763 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1764 1765 PR middle-end/94303 1766 * varasm.c (output_constructor_array_range): If local->index 1767 RANGE_EXPR doesn't start at the current location in the constructor, 1768 skip needed number of bytes using assemble_zeros or assert we don't 1769 go backwards. 1770 17712020-09-17 Jakub Jelinek <jakub@redhat.com> 1772 1773 Backported from master: 1774 2020-04-07 Richard Biener <rguenther@suse.de> 1775 Jakub Jelinek <jakub@redhat.com> 1776 1777 PR debug/94283 1778 * tree-if-conv.c (ifcvt_local_dce): Delete dead statements backwards. 1779 17802020-09-17 Jakub Jelinek <jakub@redhat.com> 1781 1782 Backported from master: 1783 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1784 1785 PR debug/94283 1786 * tree-if-conv.c (ifcvt_local_dce): For gimple debug stmts, just set 1787 GF_PLF_2, but don't add them to worklist. Don't add an assigment to 1788 worklist or set GF_PLF_2 just because it is used in a debug stmt in 1789 another bb. Formatting improvements. 1790 17912020-09-17 Jakub Jelinek <jakub@redhat.com> 1792 1793 Backported from master: 1794 2020-04-07 Jakub Jelinek <jakub@redhat.com> 1795 1796 PR tree-optimization/94211 1797 * tree-ssa-phiopt.c (value_replacement): Use estimate_num_insns_seq 1798 instead of estimate_num_insns for bb_seq (middle_bb). Rename 1799 emtpy_or_with_defined_p variable to empty_or_with_defined_p, adjust 1800 all uses. 1801 18022020-09-17 Jakub Jelinek <jakub@redhat.com> 1803 1804 Backported from master: 1805 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1806 1807 PR debug/94167 1808 * tree-inline.c (insert_init_stmt): Don't gimple_regimplify_operands 1809 DEBUG_STMTs. 1810 18112020-09-17 Jakub Jelinek <jakub@redhat.com> 1812 1813 Backported from master: 1814 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1815 1816 PR middle-end/93566 1817 * tree-nested.c (convert_nonlocal_omp_clauses, 1818 convert_local_omp_clauses): Handle {,in_,task_}reduction clauses 1819 with C/C++ array sections. 1820 18212020-09-17 Jakub Jelinek <jakub@redhat.com> 1822 1823 Backported from master: 1824 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1825 1826 PR target/94121 1827 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use gen_int_mode 1828 instead of GEN_INT. 1829 18302020-09-17 Jakub Jelinek <jakub@redhat.com> 1831 1832 Backported from master: 1833 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1834 1835 * doc/tm.texi.in (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Change 1836 ASM_OUTPUT_ALIGNED_DECL in description to ASM_OUTPUT_ALIGNED_LOCAL 1837 and ASM_OUTPUT_DECL to ASM_OUTPUT_LOCAL. 1838 * doc/tm.texi: Regenerated. 1839 18402020-09-17 Jakub Jelinek <jakub@redhat.com> 1841 1842 Backported from master: 1843 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1844 1845 PR tree-optimization/94130 1846 * tree-ssa-dse.c: Include gimplify.h. 1847 (increment_start_addr): If stmt has lhs, drop the lhs from call and 1848 set it after the call to the original value of the first argument. 1849 Formatting fixes. 1850 (decrement_count): Formatting fix. 1851 18522020-09-17 Jakub Jelinek <jakub@redhat.com> 1853 1854 Backported from master: 1855 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1856 1857 PR target/94134 1858 * config/pdp11/pdp11.c (pdp11_asm_output_var): Call switch_to_section 1859 at the start to switch to data section. Don't print extra newline if 1860 .globl directive has not been emitted. 1861 18622020-09-17 Jakub Jelinek <jakub@redhat.com> 1863 1864 Backported from master: 1865 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1866 1867 PR target/94121 1868 * config/aarch64/aarch64.c (aarch64_add_offset_1): Use absu_hwi 1869 instead of abs_hwi, change moffset type to unsigned HOST_WIDE_INT. 1870 18712020-09-17 Jakub Jelinek <jakub@redhat.com> 1872 1873 Backported from master: 1874 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1875 1876 PR middle-end/94111 1877 * dfp.c (decimal_to_binary): Only use decimal128ToString if from->cl 1878 is rvc_normal, otherwise use real_to_decimal to print the number to 1879 string. 1880 18812020-09-17 Jakub Jelinek <jakub@redhat.com> 1882 1883 Backported from master: 1884 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1885 1886 PR tree-optimization/94114 1887 * tree-loop-distribution.c (generate_memset_builtin): Call 1888 rewrite_to_non_trapping_overflow even on mem. 1889 (generate_memcpy_builtin): Call rewrite_to_non_trapping_overflow even 1890 on dest and src. 1891 18922020-09-17 Jakub Jelinek <jakub@redhat.com> 1893 1894 Backported from master: 1895 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1896 1897 PR middle-end/93399 1898 * tree-pretty-print.h (pretty_print_string): Declare. 1899 * tree-pretty-print.c (pretty_print_string): Remove forward 1900 declaration, no longer static. Change nbytes parameter type 1901 from unsigned to size_t. 1902 * print-rtl.c (print_value) <case CONST_STRING>: Use 1903 pretty_print_string and for shrink way too long strings. 1904 19052020-09-17 Jakub Jelinek <jakub@redhat.com> 1906 1907 Backported from master: 1908 2020-03-17 Jakub Jelinek <jakub@redhat.com> 1909 1910 PR debug/93888 1911 * tree-inline.c (copy_decl_to_var): Copy DECL_BY_REFERENCE flag. 1912 19132020-09-17 Jakub Jelinek <jakub@redhat.com> 1914 1915 Backported from master: 1916 2020-03-05 Jakub Jelinek <jakub@redhat.com> 1917 1918 PR target/94046 1919 * config/i386/avx2intrin.h (_mm_mask_i32gather_ps): Fix first cast of 1920 SRC and MASK arguments to __m128 from __m128d. 1921 (_mm256_mask_i32gather_ps): Fix first cast of MASK argument to __m256 1922 from __m256d. 1923 (_mm_mask_i64gather_ps): Fix first cast of MASK argument to __m128 1924 from __m128d. 1925 * config/i386/xopintrin.h (_mm_permute2_pd): Fix first cast of C 1926 argument to __m128i from __m128d. 1927 (_mm256_permute2_pd): Fix first cast of C argument to __m256i from 1928 __m256d. 1929 (_mm_permute2_ps): Fix first cast of C argument to __m128i from __m128. 1930 (_mm256_permute2_ps): Fix first cast of C argument to __m256i from 1931 __m256. 1932 19332020-09-17 Jakub Jelinek <jakub@redhat.com> 1934 1935 Backported from master: 1936 2020-03-03 Jakub Jelinek <jakub@redhat.com> 1937 1938 PR rtl-optimization/94002 1939 * explow.c (plus_constant): Punt if cst has VOIDmode and 1940 get_pool_mode is different from mode. 1941 19422020-09-16 Will Schmidt <will_schmidt@vnet.ibm.com> 1943 1944 PR target/96139 1945 * config/rs6000/rs6000.c (rs6000_init_builtin): Update V2DI_type_node 1946 and unsigned_V2DI_type_node definitions. 1947 19482020-09-16 Sylvia Taylor <sylvia.taylor@arm.com> 1949 1950 Backported from master: 1951 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com> 1952 1953 * config/aarch64/aarch64-simd-builtins.def: 1954 (ld1x4): New. 1955 (st1x4): Likewise. 1956 * config/aarch64/aarch64-simd.md: 1957 (aarch64_ld1x4<VALLDIF:mode>): New pattern. 1958 (aarch64_st1x4<VALLDIF:mode>): Likewise. 1959 (aarch64_ld1_x4_<mode>): Likewise. 1960 (aarch64_st1_x4_<mode>): Likewise. 1961 * config/aarch64/arm_neon.h: 1962 (vld1_s8_x4): New function. 1963 (vld1q_s8_x4): Likewise. 1964 (vld1_s16_x4): Likewise. 1965 (vld1q_s16_x4): Likewise. 1966 (vld1_s32_x4): Likewise. 1967 (vld1q_s32_x4): Likewise. 1968 (vld1_u8_x4): Likewise. 1969 (vld1q_u8_x4): Likewise. 1970 (vld1_u16_x4): Likewise. 1971 (vld1q_u16_x4): Likewise. 1972 (vld1_u32_x4): Likewise. 1973 (vld1q_u32_x4): Likewise. 1974 (vld1_f16_x4): Likewise. 1975 (vld1q_f16_x4): Likewise. 1976 (vld1_f32_x4): Likewise. 1977 (vld1q_f32_x4): Likewise. 1978 (vld1_p8_x4): Likewise. 1979 (vld1q_p8_x4): Likewise. 1980 (vld1_p16_x4): Likewise. 1981 (vld1q_p16_x4): Likewise. 1982 (vld1_s64_x4): Likewise. 1983 (vld1_u64_x4): Likewise. 1984 (vld1_p64_x4): Likewise. 1985 (vld1q_s64_x4): Likewise. 1986 (vld1q_u64_x4): Likewise. 1987 (vld1q_p64_x4): Likewise. 1988 (vld1_f64_x4): Likewise. 1989 (vld1q_f64_x4): Likewise. 1990 (vst1_s8_x4): Likewise. 1991 (vst1q_s8_x4): Likewise. 1992 (vst1_s16_x4): Likewise. 1993 (vst1q_s16_x4): Likewise. 1994 (vst1_s32_x4): Likewise. 1995 (vst1q_s32_x4): Likewise. 1996 (vst1_u8_x4): Likewise. 1997 (vst1q_u8_x4): Likewise. 1998 (vst1_u16_x4): Likewise. 1999 (vst1q_u16_x4): Likewise. 2000 (vst1_u32_x4): Likewise. 2001 (vst1q_u32_x4): Likewise. 2002 (vst1_f16_x4): Likewise. 2003 (vst1q_f16_x4): Likewise. 2004 (vst1_f32_x4): Likewise. 2005 (vst1q_f32_x4): Likewise. 2006 (vst1_p8_x4): Likewise. 2007 (vst1q_p8_x4): Likewise. 2008 (vst1_p16_x4): Likewise. 2009 (vst1q_p16_x4): Likewise. 2010 (vst1_s64_x4): Likewise. 2011 (vst1_u64_x4): Likewise. 2012 (vst1_p64_x4): Likewise. 2013 (vst1q_s64_x4): Likewise. 2014 (vst1q_u64_x4): Likewise. 2015 (vst1q_p64_x4): Likewise. 2016 (vst1_f64_x4): Likewise. 2017 (vst1q_f64_x4): Likewise. 2018 20192020-09-16 Sameera Deshpande <sameera.deshpande@linaro.org> 2020 2021 Backported from master: 2022 2018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org> 2023 2024 * config/aarch64/aarch64-simd-builtins.def (ld1x3): New. 2025 (st1x2): Likewise. 2026 (st1x3): Likewise. 2027 * config/aarch64/aarch64-simd.md 2028 (aarch64_ld1x3<VALLDIF:mode>): New pattern. 2029 (aarch64_ld1_x3_<mode>): Likewise 2030 (aarch64_st1x2<VALLDIF:mode>): Likewise 2031 (aarch64_st1_x2_<mode>): Likewise 2032 (aarch64_st1x3<VALLDIF:mode>): Likewise 2033 (aarch64_st1_x3_<mode>): Likewise 2034 * config/aarch64/arm_neon.h (vld1_u8_x3): New function. 2035 (vld1_s8_x3): Likewise. 2036 (vld1_u16_x3): Likewise. 2037 (vld1_s16_x3): Likewise. 2038 (vld1_u32_x3): Likewise. 2039 (vld1_s32_x3): Likewise. 2040 (vld1_u64_x3): Likewise. 2041 (vld1_s64_x3): Likewise. 2042 (vld1_f16_x3): Likewise. 2043 (vld1_f32_x3): Likewise. 2044 (vld1_f64_x3): Likewise. 2045 (vld1_p8_x3): Likewise. 2046 (vld1_p16_x3): Likewise. 2047 (vld1_p64_x3): Likewise. 2048 (vld1q_u8_x3): Likewise. 2049 (vld1q_s8_x3): Likewise. 2050 (vld1q_u16_x3): Likewise. 2051 (vld1q_s16_x3): Likewise. 2052 (vld1q_u32_x3): Likewise. 2053 (vld1q_s32_x3): Likewise. 2054 (vld1q_u64_x3): Likewise. 2055 (vld1q_s64_x3): Likewise. 2056 (vld1q_f16_x3): Likewise. 2057 (vld1q_f32_x3): Likewise. 2058 (vld1q_f64_x3): Likewise. 2059 (vld1q_p8_x3): Likewise. 2060 (vld1q_p16_x3): Likewise. 2061 (vld1q_p64_x3): Likewise. 2062 (vst1_s64_x2): Likewise. 2063 (vst1_u64_x2): Likewise. 2064 (vst1_f64_x2): Likewise. 2065 (vst1_s8_x2): Likewise. 2066 (vst1_p8_x2): Likewise. 2067 (vst1_s16_x2): Likewise. 2068 (vst1_p16_x2): Likewise. 2069 (vst1_s32_x2): Likewise. 2070 (vst1_u8_x2): Likewise. 2071 (vst1_u16_x2): Likewise. 2072 (vst1_u32_x2): Likewise. 2073 (vst1_f16_x2): Likewise. 2074 (vst1_f32_x2): Likewise. 2075 (vst1_p64_x2): Likewise. 2076 (vst1q_s8_x2): Likewise. 2077 (vst1q_p8_x2): Likewise. 2078 (vst1q_s16_x2): Likewise. 2079 (vst1q_p16_x2): Likewise. 2080 (vst1q_s32_x2): Likewise. 2081 (vst1q_s64_x2): Likewise. 2082 (vst1q_u8_x2): Likewise. 2083 (vst1q_u16_x2): Likewise. 2084 (vst1q_u32_x2): Likewise. 2085 (vst1q_u64_x2): Likewise. 2086 (vst1q_f16_x2): Likewise. 2087 (vst1q_f32_x2): Likewise. 2088 (vst1q_f64_x2): Likewise. 2089 (vst1q_p64_x2): Likewise. 2090 (vst1_s64_x3): Likewise. 2091 (vst1_u64_x3): Likewise. 2092 (vst1_f64_x3): Likewise. 2093 (vst1_s8_x3): Likewise. 2094 (vst1_p8_x3): Likewise. 2095 (vst1_s16_x3): Likewise. 2096 (vst1_p16_x3): Likewise. 2097 (vst1_s32_x3): Likewise. 2098 (vst1_u8_x3): Likewise. 2099 (vst1_u16_x3): Likewise. 2100 (vst1_u32_x3): Likewise. 2101 (vst1_f16_x3): Likewise. 2102 (vst1_f32_x3): Likewise. 2103 (vst1_p64_x3): Likewise. 2104 (vst1q_s8_x3): Likewise. 2105 (vst1q_p8_x3): Likewise. 2106 (vst1q_s16_x3): Likewise. 2107 (vst1q_p16_x3): Likewise. 2108 (vst1q_s32_x3): Likewise. 2109 (vst1q_s64_x3): Likewise. 2110 (vst1q_u8_x3): Likewise. 2111 (vst1q_u16_x3): Likewise. 2112 (vst1q_u32_x3): Likewise. 2113 (vst1q_u64_x3): Likewise. 2114 (vst1q_f16_x3): Likewise. 2115 (vst1q_f32_x3): Likewise. 2116 (vst1q_f64_x3): Likewise. 2117 (vst1q_p64_x3): Likewise. 2118 21192020-08-21 Richard Sandiford <richard.sandiford@arm.com> 2120 2121 Backported from master: 2122 2020-08-21 Richard Sandiford <richard.sandiford@arm.com> 2123 2124 * doc/extend.texi: Update links to Arm docs. 2125 * doc/invoke.texi: Likewise. 2126 21272020-08-21 Tamar Christina <tamar.christina@arm.com> 2128 2129 Backported from master: 2130 2020-08-03 Tamar Christina <tamar.christina@arm.com> 2131 2132 * config/aarch64/driver-aarch64.c (readline): Check return value fgets. 2133 21342020-08-21 Tamar Christina <tamar.christina@arm.com> 2135 2136 Backported from master: 2137 2020-07-17 Tamar Christina <tamar.christina@arm.com> 2138 2139 * doc/sourcebuild.texi (dg-set-compiler-env-var, 2140 dg-set-target-env-var): Document. 2141 21422020-08-21 Tamar Christina <tamar.christina@arm.com> 2143 2144 Backported from master: 2145 2020-07-17 Tamar Christina <tamar.christina@arm.com> 2146 2147 * config/arm/driver-arm.c (host_detect_local_cpu): Add GCC_CPUINFO. 2148 21492020-08-21 Tamar Christina <tamar.christina@arm.com> 2150 2151 Backported from master: 2152 2020-07-17 Tamar Christina <tamar.christina@arm.com> 2153 2154 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): 2155 Add GCC_CPUINFO. 2156 21572020-08-21 Tamar Christina <tamar.christina@arm.com> 2158 2159 Backported from master: 2160 2020-07-17 Tamar Christina <tamar.christina@arm.com> 2161 2162 * config/aarch64/driver-aarch64.c (INCLUDE_SET): New. 2163 (parse_field): Use std::string. 2164 (split_words, readline, find_field): New. 2165 (host_detect_local_cpu): Fix truncation issues. 2166 21672020-08-18 Uroš Bizjak <ubizjak@gmail.com> 2168 2169 PR target/96536 2170 * config/i386/i386.md (restore_stack_nonlocal): 2171 Add missing compare RTX. 2172 21732020-08-03 Jonathan Wakely <jwakely@redhat.com> 2174 2175 Backported from master: 2176 2020-08-03 Jonathan Wakely <jwakely@redhat.com> 2177 2178 * doc/cpp.texi (Variadic Macros): Use the exact ... token in 2179 code examples. 2180 21812020-07-17 Will Schmidt <will_schmidt@vnet.ibm.com> 2182 2183 PR target/95952 2184 * config/rs6000/rs6000.c (altivec_init_builtins): Add continue clause to 2185 predicate builtin handling. 2186 21872020-07-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 2188 2189 Backported from master: 2190 2020-06-16 Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> 2191 2192 * config.in: Regenerate. 2193 * config/s390/s390.c (print_operand): Emit vector alignment hints 2194 for target z13, if AS accepts them. For other targets the logic 2195 stays the same. 2196 * config/s390/s390.h (TARGET_VECTOR_LOADSTORE_ALIGNMENT_HINTS): Define 2197 macro. 2198 * configure: Regenerate. 2199 * configure.ac: Check HAVE_AS_VECTOR_LOADSTORE_ALIGNMENT_HINTS_ON_Z13. 2200 22012020-07-16 Andreas Krebbel <krebbel@linux.ibm.com> 2202 2203 Backported from master: 2204 2018-11-21 Andreas Krebbel <krebbel@linux.ibm.com> 2205 2206 * configure.ac: Add check for Binutils to determine whether vector 2207 load/store alignments hints are being supported. 2208 * config.in: Regenerate. 2209 * configure: Regenerate. 2210 * config/s390/s390.c (print_operand): Support new output 2211 modifier A. 2212 * config/s390/s390.md ("movti"): Append alignment hint output 2213 using the new output modifier 'A'. 2214 * config/s390/vector.md ("mov<mode>", "*vec_tf_to_v1tf") 2215 ("*vec_ti_to_v1ti"): Likewise. 2216 22172020-07-13 Will Schmidt <will_schmidt@vnet.ibm.com> 2218 2219 * config/rs6000/altivec.h (vec_vmsumudm): New define. 2220 * config/rs6000/altivec.md (UNSPEC_VMSUMUDM): New unspec. 2221 (altivec_vmsumudm): New define_insn. 2222 * config/rs6000/rs6000-builtin.def (altivec_vmsumudm): New BU_ALTIVEC_3 2223 entry. (vmsumudm): New BU_ALTIVEC_OVERLOAD_3 entry. 2224 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 2225 entries for ALTIVEC_BUILTIN_VMSUMUDM variants of vec_msum. 2226 * doc/extend.texi: Add document for vmsumudm behind vmsum. 2227 22282020-07-06 Will Schmidt <will_schmidt@vnet.ibm.com> 2229 2230 * config/rs6000/altivec.h (vec_pack_to_short_fp32): Update. 2231 * config/rs6000/altivec.md (UNSPEC_CONVERT_4F32_8F16): New unspec. 2232 (convert_4f32_8f16): New define_expand 2233 * config/rs6000/rs6000-builtin.def (convert_4f32_8f16): New builtin define 2234 and overload. 2235 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_CONVERT_4F32_8F16): New 2236 overloaded builtin entry. 2237 * config/rs6000/vsx.md (UNSPEC_VSX_XVCVSPHP): New unspec. 2238 (vsx_xvcvsphp): New define_insn. 2239 22402020-06-30 Alex Coplan <alex.coplan@arm.com> 2241 2242 Backported from master: 2243 2020-05-18 Alex Coplan <alex.coplan@arm.com> 2244 2245 * config/arm/arm.c (output_move_double): Fix codegen when loading into 2246 a register pair with an odd base register. 2247 22482020-06-25 H.J. Lu <hjl.tools@gmail.com> 2249 2250 Backported from master: 2251 2020-06-25 H.J. Lu <hjl.tools@gmail.com> 2252 2253 PR target/95874 2254 * config/i386/i386.c (PTA_ICELAKE_CLIENT): Remove PTA_CLWB. 2255 (PTA_ICELAKE_SERVER): Add PTA_CLWB. 2256 22572020-06-20 Bin Cheng <bin.cheng@linux.alibaba.com> 2258 2259 PR tree-optimization/94969 2260 * tree-data-ref.c (constant_access_functions): Rename to... 2261 (invariant_access_functions): ...this. Add parameter. Check for 2262 invariant access function, rather than constant. 2263 (build_classic_dist_vector): Call above function. 2264 * tree-loop-distribution.c (pg_add_dependence_edges): Add comment. 2265 22662020-06-17 Thomas Schwinge <thomas@codesourcery.com> 2267 2268 Backported from master: 2269 2020-06-17 Thomas Schwinge <thomas@codesourcery.com> 2270 2271 * hsa-gen.c (gen_hsa_insns_for_call): Move 'function_decl == 2272 NULL_TREE' check earlier. 2273 22742020-06-12 Martin Liska <mliska@suse.cz> 2275 Jakub Jelinek <jakub@redhat.com> 2276 2277 PR sanitizer/95634 2278 * asan.c (asan_emit_stack_protection): Fix emission for ilp32 2279 by using Pmode instead of ptr_mode. 2280 22812020-06-12 Martin Liska <mliska@suse.cz> 2282 2283 PR sanitizer/94910 2284 * asan.c (asan_emit_stack_protection): Emit 2285 also **SavedFlagPtr(FakeStack, class_id) = 0 in order to release 2286 a stack frame. 2287 22882020-06-10 Carl Love <cel@us.ibm.com> 2289 2290 PR target/94833 2291 * config/rs6000/vsx.md (define_expand): Fix instruction generation for 2292 first_match_index_<mode>. 2293 22942020-06-05 H.J. Lu <hjl.tools@gmail.com> 2295 2296 * config/i386/driver-i386.c (host_detect_local_cpu): Support 2297 Intel Airmont, Comet Lake and Ice Lake processor families. 2298 22992020-06-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2300 2301 * config/aarch64/aarch64-cores.def (zeus): Define. 2302 * config/aarch64/aarch64-tune.md: Regenerate. 2303 * doc/invoke.texi (AArch64 Options): Document zeus -mcpu option. 2304 23052020-05-29 Alex Coplan <alex.coplan@arm.com> 2306 2307 PR target/94591 2308 * config/aarch64/aarch64.c (aarch64_evpc_rev_local): Don't match 2309 identity permutation. 2310 23112020-05-29 Dong JianQiang <dongjianqiang2@huawei.com> 2312 2313 PR gcov-profile/95332 2314 * gcov-io.c (gcov_var::endian): Move field. 2315 (from_file): Add IN_GCOV_TOOL check. 2316 * gcov-io.h (gcov_magic): Ditto. 2317 23182020-05-24 H.J. Lu <hongjiu.lu@intel.com> 2319 2320 PR target/95258 2321 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 2322 AVX512VPOPCNTDQ. 2323 23242020-05-21 Martin Liska <mliska@suse.cz> 2325 2326 * common/config/aarch64/aarch64-common.c (aarch64_handle_option): 2327 Use MASK_OUTLINE_ATOMICS for x_target_flags. 2328 23292020-05-21 Martin Liska <mliska@suse.cz> 2330 2331 * common/config/aarch64/aarch64-common.c (aarch64_handle_option): 2332 Handle OPT_moutline_atomics. 2333 * config/aarch64/aarch64.c: Add outline-atomics to 2334 aarch64_attributes. 2335 * doc/extend.texi: Document the newly added target attribute. 2336 23372020-05-14 Szabolcs Nagy <szabolcs.nagy@arm.com> 2338 2339 Backport from mainline. 2340 2020-04-27 Szabolcs Nagy <szabolcs.nagy@arm.com> 2341 2342 PR target/94515 2343 * dwarf2cfi.c (struct GTY): Add ra_mangled. 2344 (cfi_row_equal_p): Check ra_mangled. 2345 (dwarf2out_frame_debug_cfa_window_save): Remove the argument, 2346 this only handles the sparc logic now. 2347 (dwarf2out_frame_debug_cfa_toggle_ra_mangle): New function for 2348 the aarch64 specific logic. 2349 (dwarf2out_frame_debug): Update to use the new subroutines. 2350 (change_cfi_row): Check ra_mangled. 2351 23522020-05-12 David Edelsohn <dje.gcc@gmail.com> 2353 2354 Backport from mainline 2355 2020-05-04 Clement Chigot <clement.chigot@atos.net> 2356 David Edelsohn <dje.gcc@gmail.com> 2357 2358 * config/rs6000/rs6000.c (rs6000_init_builtins): Override explicit 2359 for fmodl, frexpl, ldexpl and modfl builtins. 2360 23612020-05-07 Uroš Bizjak <ubizjak@gmail.com> 2362 2363 * config/alpha/alpha.c (alpha_atomic_assign_expand_fenv): Use 2364 TARGET_EXPR instead of MODIFY_EXPR for the first assignments to 2365 fenv_var and new_fenv_var. 2366 23672020-05-04 Bin Cheng <bin.cheng@linux.alibaba.com> 2368 2369 PR tree-optimization/93674 2370 Backport from master 2371 2020-04-09 Bin Cheng <bin.cheng@linux.alibaba.com> 2372 2373 * tree-ssa-loop-ivopts.c (langhooks.h): New include. 2374 (add_iv_candidate_for_use): For iv_use of non integer or pointer type, 2375 or non-mode precision type, add candidate in unsigned type with the 2376 same precision. 2377 23782020-05-04 Andreas Krebbel <krebbel@linux.ibm.com> 2379 2380 Backport from mainline 2381 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com> 2382 2383 * config/s390/vector.md ("popcountv8hi2_vx", "popcountv4si2_vx") 2384 ("popcountv2di2_vx"): Use simplify_gen_subreg. 2385 23862020-05-04 Andreas Krebbel <krebbel@linux.ibm.com> 2387 2388 Backport from mainline 2389 2020-04-20 Andreas Krebbel <krebbel@linux.ibm.com> 2390 2391 PR target/94613 2392 * config/s390/s390-builtin-types.def: Add 3 new function modes. 2393 * config/s390/s390-builtins.def: Add mode dependent low-level 2394 builtin and map the overloaded builtins to these. 2395 * config/s390/vx-builtins.md ("vec_selV_HW"): Rename to ... 2396 ("vsel<V_HW"): ... this and rewrite the pattern with bitops. 2397 23982020-04-29 Andre Vieira <andre.simoesdiasvieira@arm.com> 2399 2400 Backport from mainline. 2401 2018-10-31 Richard Henderson <richard.henderson@linaro.org> 2402 2403 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force 2404 16-byte modes held in GP registers to use an even regno. 2405 24062020-04-28 Andre Vieira <andre.simoesdiasvieira@arm.com> 2407 2408 PR target/94814 2409 Backport from gcc-9. 2410 2020-04-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2411 2412 PR target/94518 2413 2019-09-23 Richard Sandiford <richard.sandiford@arm.com> 2414 2415 * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix 2416 memmodel index. 2417 24182020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2419 2420 Backport from mainline 2421 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 2422 2423 PR target/90724 2424 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y 2425 in reg if it fails aarch64_plus_operand predicate. 2426 24272020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2428 2429 Backport from mainline 2430 2020-04-02 Jakub Jelinek <jakub@redhat.com> 2431 2432 PR target/94435 2433 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): For 2434 y_mode E_[QH]Imode and y being a CONST_INT, change y_mode to SImode. 2435 24362020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2437 2438 Backport from mainline 2439 2020-03-31 Jakub Jelinek <jakub@redhat.com> 2440 2441 PR target/94368 2442 * config/aarch64/constraints.md (Uph): New constraint. 2443 * config/aarch64/atomics.md (cas_short_expected_imm): New mode attr. 2444 (aarch64_compare_and_swap<mode>): Use it instead of n in operand 2's 2445 constraint. 2446 24472020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2448 2449 Backport from mainline 2450 2019-09-19 Richard Henderson <richard.henderson@linaro.org> 2451 2452 * config/aarch64/aarch64.opt (-moutline-atomics): New. 2453 * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New. 2454 (aarch64_ool_cas_names, aarch64_ool_swp_names): New. 2455 (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New. 2456 (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New. 2457 (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS. 2458 * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise. 2459 (atomic_<atomic_op><ALLI>): Likewise. 2460 (atomic_fetch_<atomic_op><ALLI>): Likewise. 2461 (atomic_<atomic_op>_fetch<ALLI>): Likewise. 2462 * doc/invoke.texi: Document -moutline-atomics. 2463 24642020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2465 2466 Backport from mainline. 2467 2018-10-31 Richard Henderson <richard.henderson@linaro.org> 2468 2469 * optabs-libfuncs.c (build_libfunc_function_visibility): 2470 New, split out from... 2471 (build_libfunc_function): ... here. 2472 (init_one_libfunc_visibility): New, split out from ... 2473 (init_one_libfunc): ... here. 2474 24752020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2476 2477 Backport from mainline 2478 2019-09-19 Richard Henderson <richard.henderson@linaro.org> 2479 2480 * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable 2481 strong_zero_p for aarch64_track_speculation; unify some code paths; 2482 use aarch64_gen_compare_reg instead of open-coding. 2483 24842020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2485 2486 Backport from mainline 2487 2020-01-17 Wilco Dijkstra <wdijkstr@arm.com> 2488 2489 PR target/92692 2490 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>) 2491 Use epilogue_completed rather than reload_completed. 2492 24932020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2494 2495 Backport from mainline 2496 2019-09-19 Richard Henderson <richard.henderson@linaro.org> 2497 2498 * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support 2499 for NE comparison of TImode values. 2500 (aarch64_emit_load_exclusive): Add support for TImode. 2501 (aarch64_emit_store_exclusive): Likewise. 2502 (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode. 2503 * config/aarch64/atomics.md (atomic_compare_and_swapti): 2504 Change iterator from ALLI to ALLI_TI. 2505 (atomic_compare_and_swapti): New. 2506 (atomic_compare_and_swapti: New. 2507 (aarch64_load_exclusive_pair): New. 2508 (aarch64_store_exclusive_pair): New. 2509 * config/aarch64/iterators.md (ALLI_TI): New iterator. 2510 25112020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2512 2513 Backport from mainline. 2514 2019-09-19 Richard Henderson <richard.henderson@linaro.org> 2515 2516 * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer 2517 registers with %R. 2518 25192020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2520 2521 Backport from mainline. 2522 2018-10-31 Richard Henderson <richard.henderson@linaro.org> 2523 2524 * config/aarch64/atomics.md (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): 2525 scratch register need not be early-clobber. Document the reason 2526 why we cannot use ST<OP>. 2527 25282020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2529 2530 Backport from mainline. 2531 2018-10-31 Richard Henderson <richard.henderson@linaro.org> 2532 2533 * config/aarch64/aarch64.c (aarch64_emit_bic): Remove. 2534 (aarch64_atomic_ldop_supported_p): Remove. 2535 (aarch64_gen_atomic_ldop): Remove. 2536 * config/aarch64/atomic.md (atomic_<atomic_optab><ALLI>): 2537 Fully expand LSE operations here. 2538 (atomic_fetch_<atomic_optab><ALLI>): Likewise. 2539 (atomic_<atomic_optab>_fetch<ALLI>): Likewise. 2540 (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop atomic_op iterator 2541 and use ATOMIC_LDOP instead; use register_operand for the input; 2542 drop the split and emit insns directly. 2543 (aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse): Likewise. 2544 (aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): Remove. 2545 (aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove. 2546 25472020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2548 2549 Backport from mainline. 2550 2018-10-31 Richard Henderson <richard.henderson@linaro.org> 2551 2552 * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove. 2553 (aarch64_gen_atomic_ldop): Don't call it. 2554 * config/aarch64/atomics.md (atomic_exchange<ALLI>): 2555 Use aarch64_reg_or_zero. 2556 (aarch64_atomic_exchange<ALLI>): Likewise. 2557 (aarch64_atomic_exchange<ALLI>_lse): Remove split; remove & from 2558 operand 0; use aarch64_reg_or_zero for input; merge ... 2559 (aarch64_atomic_swp<ALLI>): ... this and remove. 2560 25612020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2562 2563 Backport from mainline. 2564 2018-10-31 Richard Henderson <richard.henderson@linaro.org> 2565 2566 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New. 2567 (aarch64_split_compare_and_swap): Use it. 2568 (aarch64_expand_compare_and_swap): Likewise. Remove convert_modes; 2569 test oldval against the proper predicate. 2570 * config/aarch64/atomics.md (atomic_compare_and_swap<ALLI>): 2571 Use nonmemory_operand for expected. 2572 (cas_short_expected_pred): New. 2573 (aarch64_compare_and_swap<SHORT>): Use it; use "rn" not "rI" to match. 2574 (aarch64_compare_and_swap<GPI>): Use "rn" not "rI" for expected. 2575 * config/aarch64/predicates.md (aarch64_plushi_immediate): New. 2576 (aarch64_plushi_operand): New. 2577 25782020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2579 2580 Backport from mainline. 2581 2018-10-31 Richard Henderson <richard.henderson@linaro.org> 2582 2583 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): 2584 Force oldval into the rval register for TARGET_LSE; emit the compare 2585 during initial expansion so that it may be deleted if unused. 2586 (aarch64_gen_atomic_cas): Remove. 2587 * config/aarch64/atomics.md (aarch64_compare_and_swap<SHORT>_lse): 2588 Change =&r to +r for operand 0; use match_dup for operand 2; 2589 remove is_weak and mod_f operands as unused. Drop the split 2590 and merge with... 2591 (aarch64_atomic_cas<SHORT>): ... this pattern's output; remove. 2592 (aarch64_compare_and_swap<GPI>_lse): Similarly. 2593 (aarch64_atomic_cas<GPI>): Similarly. 2594 25952020-04-16 Andre Vieira <andre.simoesdiasvieira@arm.com> 2596 2597 Backport from mainline. 2598 2018-07-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 2599 2600 * config/aarch64/atomics.md (aarch64_store_execlusive<mode>): Add 2601 early clobber. 2602 26032020-04-21 Martin Jambor <mjambor@suse.cz> 2604 2605 Backport from master 2606 2020-04-09 Martin Jambor <mjambor@suse.cz> 2607 Richard Biener <rguenther@suse.de> 2608 2609 PR tree-optimization/94482 2610 * tree-sra.c (create_access_replacement): Dump new replacement with 2611 TDF_UID. 2612 (sra_modify_expr): Fix handling of cases when the original EXPR writes 2613 to only part of the replacement. 2614 * tree-ssa-forwprop.c (pass_forwprop::execute): Properly verify 2615 the first operand of combinations into REAL/IMAGPART_EXPR and 2616 BIT_FIELD_REF. 2617 26182020-04-20 H.J. Lu <hongjiu.lu@intel.com> 2619 2620 Backport from master 2621 2020-04-13 H.J. Lu <hongjiu.lu@intel.com> 2622 2623 PR target/94556 2624 * config/i386/i386.c (ix86_expand_epilogue): Restore the frame 2625 pointer in word_mode for eh_return epilogues. 2626 26272020-04-20 Tamar Christina <tamar.christina@arm.com> 2628 2629 Backport from mainline. 2630 2020-04-03 Tamar Christina <tamar.christina@arm.com> 2631 2632 PR target/94396 2633 * common/config/aarch64/aarch64-common.c 2634 (aarch64_get_extension_string_for_isa_flags): Handle default flags. 2635 26362020-04-17 H.J. Lu <hongjiu.lu@intel.com> 2637 2638 Backport from master 2639 2020-04-08 H.J. Lu <hongjiu.lu@intel.com> 2640 2641 PR target/94417 2642 * config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR at 2643 function entry if function will be called indirectly. 2644 2645 26462020-04-15 Uroš Bizjak <ubizjak@gmail.com> 2647 2648 PR target/94603 2649 * config/i386/i386-builtin.def (__builtin_ia32_movq128): 2650 Require OPTION_MASK_ISA_SSE2. 2651 26522020-04-15 Max Filippov <jcmvbkbc@gmail.com> 2653 2654 Backport from mainline. 2655 2020-04-14 Max Filippov <jcmvbkbc@gmail.com> 2656 2657 PR target/94584 2658 * config/xtensa/xtensa.md (zero_extendhisi2, zero_extendqisi2) 2659 (extendhisi2_internal): Add %v1 before the load instructions. 2660 26612020-04-15 Max Filippov <jcmvbkbc@gmail.com> 2662 2663 Backport from mainline. 2664 2019-09-26 Max Filippov <jcmvbkbc@gmail.com> 2665 2666 * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead 2667 loop instruction into new basic block before the loop when basic 2668 block that precedes the loop is empty. 2669 26702020-04-07 Will Schmidt <will_schmidt@vnet.ibm.com> 2671 2672 Backport from mainline. 2673 2020-03-23 Will Schmidt <will_schmidt@vnet.ibm.com> 2674 2675 * config/rs6000/rs6000-call.c altivec_init_builtins(): Remove 2676 code to skip defining builtins based on builtin_mask. 2677 26782020-04-07 Jakub Jelinek <jakub@redhat.com> 2679 2680 PR target/94500 2681 * config/i386/i386.c (emit_reduc_half): For V{64QI,32HI}mode 2682 handle i < 64 using avx512bw_lshrv4ti3. Formatting fixes. 2683 26842020-04-03 Martin Jambor <mjambor@suse.cz> 2685 2686 PR tree-optimization/93435 2687 * params.def (PARAM_SRA_MAX_PROPAGATIONS): New parameter. 2688 * tree-sra.c (propagation_budget): New variable. 2689 (budget_for_propagation_access): New function. 2690 (propagate_subaccesses_across_link): Use it. 2691 (propagate_all_subaccesses): Set up and destroy propagation_budget. 2692 * doc/invoke.texi (sra-max-propagations): New. 2693 26942020-04-03 Martin Liska <mliska@suse.cz> 2695 2696 Backport from mainline 2697 2020-04-03 Martin Liska <mliska@suse.cz> 2698 2699 PR ipa/94445 2700 * ipa-icf-gimple.c (func_checker::compare_gimple_call): 2701 Compare type attributes for gimple_call_fntypes. 2702 27032020-04-02 Fritz Reese <foreese@gcc.gnu.org> 2704 2705 Backport from master. 2706 2020-04-02 Fritz Reese <foreese@gcc.gnu.org> 2707 2708 PR fortran/85982 2709 * fortran/decl.c (match_attr_spec): Lump COMP_STRUCTURE/COMP_MAP into 2710 attribute checking used by TYPE. 2711 27122020-03-31 Carl Love <cel@us.ibm.com> 2713 2714 Backport of: 2715 commit e97929e20b2f52e6cfc046c1302324d1b24d95e3 2716 Author: Carl Love <carll@us.ibm.com> 2717 Date: Wed Mar 25 18:33:37 2020 -0500 2718 2719 PR target/93819 2720 * gcc/config/rs6000/altivec.h: 2721 Fixed swapped arguments for vec_rlnm define. 2722 27232020-03-31 Carl Love <cel@us.ibm.com> 2724 2725 backport of mainline commit 2726 2727 commit 68dd57808f7c0147acdb5ca72c88ff655afcb0ce 2728 Author: Carl Love <carll@us.ibm.com> 2729 Date: Fri Mar 20 18:15:05 2020 -0500 2730 2731 whith change log typo fixed. 2732 2733 PR target/87583 2734 * gcc/config/rs6000/rs6000.c (rs6000_option_override_internal): 2735 Add check for TARGET_FPRND for Power 7 or newer. 2736 27372020-03-29 Martin Liska <mliska@suse.cz> 2738 2739 Backport from mainline 2740 2019-09-02 Martin Liska <mliska@suse.cz> 2741 2742 PR gcov-profile/91601 2743 * gcov.c (path_contains_zero_cycle_arc): Rename to ... 2744 (path_contains_zero_or_negative_cycle_arc): ... this and handle 2745 also negative edges. 2746 (circuit): Handle also negative edges as they can happen 2747 in some situations. 2748 27492020-03-29 Iain Sandoe <iain@sandoe.co.uk> 2750 2751 Backport from master. 2752 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> 2753 2754 * config/i386/i386.c (ix86_output_addr_diff_elt): Move the MACH-O 2755 specific test before the one for HAVE_AS_GOTOFF_IN_DATA. 2756 2757 Backport from master. 2758 2020-03-22 Iain Sandoe <iain@sandoe.co.uk> 2759 2760 * config/i386/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Remove 2761 references to Darwin. 2762 * config/i386/i386.h (JUMP_TABLES_IN_TEXT_SECTION): Define this 2763 unconditionally and comment on why. 2764 27652020-03-24 John David Anglin <danglin@gcc.gnu.org> 2766 2767 PR lto/94249 2768 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Define __BIG_ENDIAN__. 2769 27702020-03-24 Tamar Christina <tamar.christina@arm.com> 2771 2772 PR target/94052 2773 * config/aarch64/aarch64-simd.md (mov<mode>): Remove paradoxical 2774 subregs of VSTRUCT modes. 2775 27762020-03-19 Jonathan Wakely <jwakely@redhat.com> 2777 2778 Backport from mainline 2779 2020-01-13 Jonathan Wakely <jwakely@redhat.com> 2780 2781 PR driver/92757 2782 * doc/invoke.texi (Warning Options): Add caveat about some warnings 2783 depending on optimization settings. 2784 27852020-03-13 Richard Biener <rguenther@suse.de> 2786 2787 PR tree-optimization/94163 2788 * tree-ssa-pre.c (create_expression_by_pieces): Check 2789 whether alignment would be zero. 2790 27912020-03-13 Eric Botcazou <ebotcazou@adacore.com> 2792 2793 PR rtl-optimization/94119 2794 * resource.h (clear_hashed_info_until_next_barrier): Declare. 2795 * resource.c (clear_hashed_info_until_next_barrier): New function. 2796 * reorg.c (add_to_delay_list): Fix formatting. 2797 (relax_delay_slots): Call clear_hashed_info_until_next_barrier on 2798 the next instruction after removing a BARRIER. 2799 28002020-03-12 Richard Earnshaw <rearnsha@arm.com> 2801 2802 Backport from master 2803 2020-02-10 Richard Earnshaw <rearnsha@arm.com> 2804 2805 PR target/91913 2806 * config/arm/arm.md (movsi_compare0): Allow SP as a source register 2807 in Thumb state and also as a destination in Arm state. Add T16 2808 variants. 2809 28102020-02-27 Jakub Jelinek <jakub@redhat.com> 2811 2812 PR c/93949 2813 * gimplify.c (gimplify_init_constructor): Don't promote readonly 2814 DECL_REGISTER variables to TREE_STATIC. 2815 28162020-03-04 Jakub Jelinek <jakub@redhat.com> 2817 2818 * BASE-VER: Set to 8.4.1. 2819 28202020-03-04 Release Manager 2821 2822 * GCC 8.4.0 released. 2823 28242020-03-02 Martin Liska <mliska@suse.cz> 2825 2826 Backport from mainline 2827 2020-02-28 Martin Liska <mliska@suse.cz> 2828 2829 PR other/93965 2830 * configure.ac: Improve detection of ld_date by requiring 2831 either two dashes or none. 2832 * configure: Regenerate. 2833 28342020-02-29 Peter Bergner <bergner@linux.ibm.com> 2835 2836 Revert 2837 2020-02-20 Peter Bergner <bergner@linux.ibm.com> 2838 2839 PR target/93658 2840 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX 2841 vector modes. 2842 2843 2020-02-03 Michael Meissner <meissner@linux.ibm.com> 2844 2845 * config/rs6000/rs6000.c (get_vector_offset): New helper function 2846 to calculate the offset in memory from the start of a vector of a 2847 particular element. Add code to keep the element number in 2848 bounds if the element number is variable. 2849 (rs6000_adjust_vec_address): Move calculation of offset of the 2850 vector element to get_vector_offset. 2851 (rs6000_split_vec_extract_var): Do not do the initial AND of 2852 element here, move the code to get_vector_offset. 2853 2854 2020-02-05 Michael Meissner <meissner@linux.ibm.com> 2855 2856 PR target/93568 2857 * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert 2858 to use MEM. 2859 2860 2020-01-06 Michael Meissner <meissner@linux.ibm.com> 2861 2862 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): 2863 Use 'Q' for doing vector extract from memory. 2864 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from 2865 memory. 2866 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for 2867 doing vector extract from memory. 2868 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector 2869 extract from memory. 2870 28712020-02-26 Carl Love <cel@us.ibm.com> 2872 2873 PR target/91276 2874 * doc/extend.texi (PowerPC AltiVec Built-in Functions): The 2875 builtin-function name __builtin_crypto_vpmsumb is only for the 2876 vector unsigned short arguments. It is also listed as the name of 2877 the built-in for arguments vector unsigned short, 2878 vector unsigned int and vector unsigned long long built-ins. The 2879 name of the builtins for these arguments should be: 2880 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and 2881 __builtin_crypto_vpmsumd respectively. 2882 28832020-02-26 Jakub Jelinek <jakub@redhat.com> 2884 2885 PR tree-optimization/93820 2886 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE 2887 argument to ALL_INTEGER_CST_P boolean. 2888 (imm_store_chain_info::try_coalesce_bswap): Adjust caller. 2889 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle 2890 adjacent INTEGER_CST store into merged_store->only_constants like 2891 overlapping one. 2892 28932020-02-25 Jakub Jelinek <jakub@redhat.com> 2894 2895 PR rtl-optimization/93908 2896 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src 2897 with mask. 2898 28992019-02-25 Eric Botcazou <ebotcazou@adacore.com> 2900 2901 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode. 2902 29032020-02-25 Roman Zhuykov <zhroma@ispras.ru> 2904 2905 Backport from master 2906 2020-02-24 Roman Zhuykov <zhroma@ispras.ru> 2907 2908 * doc/install.texi (--enable-checking): Properly document current 2909 behavior. 2910 (--enable-stage1-checking): Minor clarification about bootstrap. 2911 29122020-02-25 Richard Sandiford <richard.sandiford@arm.com> 2913 2914 Backport from mainline 2915 2020-02-19 Richard Sandiford <richard.sandiford@arm.com> 2916 2917 PR tree-optimization/93767 2918 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the 2919 access-size bias from the offset calculations for negative strides. 2920 29212020-02-25 Richard Sandiford <richard.sandiford@arm.com> 2922 2923 Backport from mainline 2924 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> 2925 2926 PR tree-optimization/93434 2927 * tree-predcom.c (split_data_refs_to_components): Record which 2928 components have had aliasing loads removed. Prevent store-store 2929 commoning for all such components. 2930 29312020-02-25 Richard Sandiford <richard.sandiford@arm.com> 2932 2933 Backport from mainline 2934 2019-12-05 Richard Sandiford <richard.sandiford@arm.com> 2935 2936 PR middle-end/92768 2937 * tree-core.h (OEP_BITWISE): New flag. 2938 * fold-const.c (operand_compare::operand_equal_p): Handle it. 2939 * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it. 2940 29412020-02-25 Richard Sandiford <richard.sandiford@arm.com> 2942 2943 Backport from mainline 2944 2019-11-11 Richard Sandiford <richard.sandiford@arm.com> 2945 2946 PR tree-optimization/92420 2947 * tree-vect-stmts.c (get_negative_load_store_type): Move further 2948 up file. 2949 (get_group_load_store_type): Use it for reversed SLP accesses. 2950 29512020-02-25 Richard Sandiford <richard.sandiford@arm.com> 2952 2953 Backport from mainline 2954 2019-08-09 Richard Sandiford <richard.sandiford@arm.com> 2955 2956 PR middle-end/90313 2957 * tree-tailcall.c (find_tail_calls): Reject calls that might 2958 read from an escaped RESULT_DECL. 2959 29602020-02-24 Jason Merrill <jason@redhat.com> 2961 2962 PR c++/92003 2963 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has 2964 non-zero address even if weak and not yet defined. 2965 29662020-02-23 Peter Bergner <bergner@linux.ibm.com> 2967 2968 Backport from master 2969 2020-02-20 Peter Bergner <bergner@linux.ibm.com> 2970 2971 PR target/93658 2972 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX 2973 vector modes. 2974 29752020-02-23 Peter Bergner <bergner@linux.ibm.com> 2976 2977 Backport from master 2978 2020-02-03 Michael Meissner <meissner@linux.ibm.com> 2979 2980 * config/rs6000/rs6000.c (get_vector_offset): New helper function 2981 to calculate the offset in memory from the start of a vector of a 2982 particular element. Add code to keep the element number in 2983 bounds if the element number is variable. 2984 (rs6000_adjust_vec_address): Move calculation of offset of the 2985 vector element to get_vector_offset. 2986 (rs6000_split_vec_extract_var): Do not do the initial AND of 2987 element here, move the code to get_vector_offset. 2988 2989 Backport from master 2990 2020-02-05 Michael Meissner <meissner@linux.ibm.com> 2991 2992 PR target/93568 2993 * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert 2994 to use MEM. 2995 29962020-02-23 Peter Bergner <bergner@linux.ibm.com> 2997 2998 Backport from master 2999 2020-01-06 Michael Meissner <meissner@linux.ibm.com> 3000 3001 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): 3002 Use 'Q' for doing vector extract from memory. 3003 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from 3004 memory. 3005 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for 3006 doing vector extract from memory. 3007 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector 3008 extract from memory. 3009 30102020-02-21 John David Anglin <danglin@gcc.gnu.org> 3011 3012 * gcc/config/pa/pa.c (pa_function_value): Fix check for word and 3013 double-word size when handling aggregate return values. 3014 * gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate 3015 that homogeneous SFmode and DFmode aggregates are passed and returned 3016 in general registers. 3017 30182020-02-20 Uroš Bizjak <ubizjak@gmail.com> 3019 3020 PR target/93828 3021 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand 3022 to destination operand for shufps alternative. 3023 (*vec_extractv2si_1): Ditto. 3024 30252020-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 3026 3027 * collect2.c (tool_cleanup): Avoid calling not signal-safe 3028 functions. 3029 (maybe_run_lto_and_relink): Avoid possible signal handler 3030 access to unintialzed memory (lto_o_files). 3031 30322020-02-20 H.J. Lu <hongjiu.lu@intel.com> 3033 3034 Backport from master 3035 2020-02-13 H.J. Lu <hongjiu.lu@intel.com> 3036 3037 PR target/93656 3038 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at 3039 the target function entry. 3040 30412020-02-17 Richard Biener <rguenther@suse.de> 3042 3043 Backport from mainline 3044 2020-01-22 Richard Biener <rguenther@suse.de> 3045 3046 PR tree-optimization/93381 3047 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting 3048 throughout, handle all conversions the same. 3049 30502020-02-17 Richard Biener <rguenther@suse.de> 3051 3052 Backport from mainline 3053 2020-01-28 Richard Biener <rguenther@suse.de> 3054 3055 PR tree-optimization/93439 3056 * tree-parloops.c (create_loop_fn): Move clique bookkeeping... 3057 * tree-cfg.c (move_sese_region_to_fn): ... here. 3058 (verify_types_in_gimple_reference): Verify used cliques are 3059 tracked. 3060 30612020-02-17 Richard Biener <rguenther@suse.de> 3062 3063 Backport from mainline 3064 2020-01-09 Richard Biener <rguenther@suse.de> 3065 3066 PR middle-end/93054 3067 * gimplify.c (gimplify_expr): Deal with NOP definitions. 3068 30692020-02-17 Richard Biener <rguenther@suse.de> 3070 3071 Backport from mainline 3072 2020-01-20 Richard Biener <rguenther@suse.de> 3073 3074 PR debug/92763 3075 * dwarf2out.c (prune_unused_types): Unconditionally mark 3076 called function DIEs. 3077 30782020-02-17 Richard Biener <rguenther@suse.de> 3079 3080 Backport from mainline 3081 2019-11-29 Richard Biener <rguenther@suse.de> 3082 3083 PR tree-optimization/92704 3084 * tree-if-conv.c (combine_blocks): Deal with virtual PHIs 3085 in loops performing only loads. 3086 30872020-02-17 Richard Biener <rguenther@suse.de> 3088 3089 Backport from mainline 3090 2019-11-27 Richard Biener <rguenther@suse.de> 3091 3092 PR middle-end/92674 3093 * tree-inline.c (expand_call_inline): Delay purging EH/abnormal 3094 edges and instead record blocks in bitmap. 3095 (gimple_expand_calls_inline): Adjust. 3096 (fold_marked_statements): Delay EH cleanup until all folding is 3097 done. 3098 (optimize_inline_calls): Do EH/abnormal cleanup for calls after 3099 inlining finished. 3100 31012020-02-14 Hongtao Liu <hongtao.liu@intel.com> 3102 3103 PR target/93724 3104 * config/i386/avx512vbmi2intrin.h 3105 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16, 3106 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, 3107 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, 3108 _m512_shrdi_epi64, _m512_mask_shrdi_epi64, 3109 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16, 3110 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, 3111 _mm512_shldi_epi32, _mm512_mask_shldi_epi32, 3112 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, 3113 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo 3114 of lacking a closing parenthesis. 3115 * config/i386/avx512vbmi2vlintrin.h 3116 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16, 3117 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32, 3118 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, 3119 _m256_shrdi_epi64, _m256_mask_shrdi_epi64, 3120 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16, 3121 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, 3122 _mm256_shldi_epi32, _mm256_mask_shldi_epi32, 3123 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64, 3124 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, 3125 _mm_shrdi_epi16, _mm_mask_shrdi_epi16, 3126 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32, 3127 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, 3128 _mm_shrdi_epi64, _mm_mask_shrdi_epi64, 3129 _m_maskz_shrdi_epi64, _mm_shldi_epi16, 3130 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, 3131 _mm_shldi_epi32, _mm_mask_shldi_epi32, 3132 _mm_maskz_shldi_epi32, _mm_shldi_epi64, 3133 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto. 3134 31352020-02-15 Jakub Jelinek <jakub@redhat.com> 3136 3137 PR tree-optimization/93744 3138 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): For 3139 GENERIC, make sure @2 in the first and @1 in the other patterns has no 3140 side-effects. 3141 31422020-02-14 Eric Botcazou <ebotcazou@adacore.com> 3143 3144 PR target/93704 3145 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in 3146 conjunction with TARGET_GNU_TLS in early return. 3147 31482020-02-14 Jakub Jelinek <jakub@redhat.com> 3149 3150 Backported from mainline 3151 2020-02-13 Jakub Jelinek <jakub@redhat.com> 3152 3153 PR target/93696 3154 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8, 3155 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8, 3156 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8, 3157 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W, 3158 pass __A to the builtin followed by __W instead of __A followed by 3159 __B. 3160 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32, 3161 _mm512_mask_popcnt_epi64): Likewise. 3162 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32, 3163 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64, 3164 _mm256_mask_popcnt_epi64): Likewise. 3165 3166 PR target/93673 3167 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and 3168 use const_0_to_255_operand predicate instead of immediate_operand. 3169 (avx512dq_fpclass<mode><mask_scalar_merge_name>, 3170 avx512dq_vmfpclass<mode><mask_scalar_merge_name>, 3171 vgf2p8affineinvqb_<mode><mask_name>, 3172 vgf2p8affineqb_<mode><mask_name>): Drop mode from 3173 const_0_to_255_operand predicated operands. 3174 3175 2020-02-12 Jakub Jelinek <jakub@redhat.com> 3176 3177 PR target/93670 3178 * config/i386/sse.md (VI48F_256_DQ): New mode iterator. 3179 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove 3180 TARGET_AVX512DQ from condition. 3181 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition> 3182 instead of <mask_mode512bit_condition> in condition. If 3183 TARGET_AVX512DQ is false, emit vextract*64x4 instead of 3184 vextract*32x8. 3185 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition> 3186 from condition. 3187 3188 2020-02-10 Jakub Jelinek <jakub@redhat.com> 3189 3190 PR target/93637 3191 * config/i386/sse.md (VI_256_AVX2): New mode iterator. 3192 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256. 3193 Change condition from TARGET_AVX2 to TARGET_AVX. 3194 3195 2020-02-08 Uroš Bizjak <ubizjak@gmail.com> 3196 Jakub Jelinek <jakub@redhat.com> 3197 3198 PR target/65782 3199 * config/i386/i386.h (CALL_USED_REGISTERS): Make 3200 xmm16-xmm31 call-used even in 64-bit ms-abi. 3201 3202 2020-02-06 Jakub Jelinek <jakub@redhat.com> 3203 3204 PR libgomp/93515 3205 * omp-low.c (use_pointer_for_field): For nested constructs, also 3206 look for map clauses on target construct. 3207 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily 3208 taskreg_nesting_level. 3209 3210 2020-02-05 Jakub Jelinek <jakub@redhat.com> 3211 3212 PR middle-end/93555 3213 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or 3214 simd_clone_create failed when i == 0, adjust clone->nargs by 3215 clone->inbranch. 3216 3217 2020-01-30 Jakub Jelinek <jakub@redhat.com> 3218 3219 PR middle-end/93505 3220 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range 3221 rotate counts. 3222 3223 2020-01-23 Jakub Jelinek <jakub@redhat.com> 3224 3225 PR rtl-optimization/93402 3226 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust 3227 USE insns. 3228 3229 2020-01-22 Jakub Jelinek <jakub@redhat.com> 3230 3231 PR target/91298 3232 * output.h (assemble_name_resolve): Declare. 3233 * varasm.c (assemble_name_resolve): New function. 3234 (assemble_name): Use it. 3235 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. 3236 3237 2020-01-21 Jakub Jelinek <jakub@redhat.com> 3238 3239 PR target/93333 3240 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify 3241 the last two operands are CONST_INT_P before using them as such. 3242 3243 PR target/93073 3244 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for 3245 compare_mode other than SFmode or DFmode. 3246 3247 2020-01-09 Jakub Jelinek <jakub@redhat.com> 3248 3249 PR inline-asm/93202 3250 * config/riscv/riscv.c (riscv_print_operand_reloc): Use 3251 output_operand_lossage instead of gcc_unreachable. 3252 * doc/md.texi (riscv f constraint): Fix typo. 3253 3254 2020-01-03 Jakub Jelinek <jakub@redhat.com> 3255 3256 PR rtl-optimization/93088 3257 * loop-iv.c (find_single_def_src): Punt after looking through 3258 128 reg copies for regs with single definitions. Move definitions 3259 to first uses. 3260 3261 2020-01-02 Jakub Jelinek <jakub@redhat.com> 3262 3263 PR ipa/93087 3264 * predict.c (compute_function_frequency): Don't call 3265 warn_function_cold on functions that already have cold attribute. 3266 3267 2019-12-14 Jakub Jelinek <jakub@redhat.com> 3268 3269 PR ipa/92357 3270 * ipa-fnsummary.c (ipa_fn_summary_write): Use 3271 lto_symtab_encoder_iterator with lsei_start_function_in_partition and 3272 lsei_next_function_in_partition instead of walking all cgraph nodes 3273 in encoder. 3274 3275 PR tree-optimization/92930 3276 * ipa-pure-const.c (special_builtin_state): Don't handle 3277 BUILT_IN_APPLY. 3278 3279 2019-12-12 Jakub Jelinek <jakub@redhat.com> 3280 3281 PR target/92904 3282 * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and 3283 not need_temp, decrease alignment of the read because the GPR save 3284 area only guarantees 8-byte alignment. 3285 3286 2019-12-11 Jakub Jelinek <jakub@redhat.com> 3287 3288 PR target/92723 3289 * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not 3290 vect_internal_def, use oprnd1 as is, without trying to cast it. 3291 Formatting fix. 3292 3293 2019-11-27 Jakub Jelinek <jakub@redhat.com> 3294 3295 PR debug/92664 3296 * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "". 3297 3298 2019-11-23 Jakub Jelinek <jakub@redhat.com> 3299 3300 PR target/92615 3301 * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is 3302 GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not 3303 register_operand, force x into register before storing it into dest. 3304 Formatting fix. 3305 33062020-02-14 Richard Biener <rguenther@suse.de> 3307 3308 Backport from mainline 3309 PR middle-end/93246 3310 * alias.c (record_component_aliases): Take superset to record 3311 into, recurse for alias-set zero fields. 3312 (record_component_aliases): New oveerload wrapping around the above. 3313 33142020-02-11 Tamar Christina <tamar.christina@arm.com> 3315 3316 Backport from mainline 3317 2020-01-31 Tamar Christina <tamar.christina@arm.com> 3318 3319 PR rtl-optimization/91838 3320 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case 3321 to truncate if allowed or reject combination. 3322 33232020-01-27 Wilco Dijkstra <wdijkstr@arm.com> 3324 3325 PR target/92692 3326 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap) 3327 Add assert to ensure prolog has been emitted. 3328 (aarch64_split_atomic_op): Likewise. 3329 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>) 3330 Use epilogue_completed rather than reload_completed. 3331 (aarch64_atomic_exchange<mode>): Likewise. 3332 (aarch64_atomic_<atomic_optab><mode>): Likewise. 3333 (atomic_nand<mode>): Likewise. 3334 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise. 3335 (atomic_fetch_nand<mode>): Likewise. 3336 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise. 3337 (atomic_nand_fetch<mode>): Likewise. 3338 33392020-01-19 Eric S. Raymond <esr@thyrsus.com> 3340 Sandra Loosemore <sandra@codesourcery.com> 3341 3342 Backport from mainline: 3343 3344 2020-01-19 Eric S. Raymond <esr@thyrsus.com> 3345 3346 * doc/contribute.texi: Update for SVN -> Git transition. 3347 * doc/install.texi: Likewise. 3348 33492020-01-15 Martin Liska <mliska@suse.cz> 3350 3351 Backport from mainline 3352 2019-04-14 Jan Hubicka <hubicka@ucw.cz> 3353 3354 PR lto/89358 3355 * ipa-devirt.c (skip_in_fields_list_p): New. 3356 (odr_types_equivalent_p): Use it. 3357 33582020-01-10 Martin Jambor <mjambor@suse.cz> 3359 3360 Backport from mainline 3361 2019-12-17 Martin Jambor <mjambor@suse.cz> 3362 3363 PR ipa/92971 3364 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix 3365 definition of values, release memory on exit. 3366 33672020-01-09 Martin Liska <mliska@suse.cz> 3368 3369 Backport from mainline 3370 2019-12-12 Jan Hubicka <hubicka@ucw.cz> 3371 3372 * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering 3373 of execution of function call parameters. 3374 33752020-01-08 Georg-Johann Lay <avr@gjlay.de> 3376 3377 Backport from 2020-01-08 trunk r279995. 3378 3379 Add -nodevicespecs option for avr. 3380 3381 PR target/93182 3382 * config/avr/avr.opt (-nodevicespecs): New driver option. 3383 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue 3384 "-specs=device-specs/..." if that option is not set. 3385 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. 3386 33872020-01-06 John David Anglin <danglin@gcc.gnu.org> 3388 3389 * config/pa/pa.md: Revert change to use ordered_comparison_operator 3390 instead of cmpib_comparison_operator in cmpib patterns. 3391 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal 3392 of cmpib_comparison_operator. Revise comment. 3393 33942020-01-01 John David Anglin <danglin@gcc.gnu.org> 3395 3396 PR target/93111 3397 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of 3398 comparison_operator in B and S integer comparisons. Likewise, use 3399 ordered_comparison_operator instead of cmpib_comparison_operator in 3400 cmpib patterns. 3401 * config/pa/predicates.md (cmpib_comparison_operator): Remove. 3402 34032019-12-28 Iain Sandoe <iain@sandoe.co.uk> 3404 3405 Backport from mainline. 3406 2019-12-14 Iain Sandoe <iain@sandoe.co.uk> 3407 3408 * config/darwin.h (DARWIN_EXTRA_SPECS): Add new 3409 bundle spec. (DARWIN_BUNDLE1_SPEC): New. 3410 (STARTFILE_SPEC): Use darwin bundle spec. 3411 * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. 3412 (DARWIN_DYLIB1_SPEC): Delete duplicate. 3413 34142019-12-20 Roman Zhuykov <zhroma@ispras.ru> 3415 3416 Backport from mainline 3417 2019-12-13 Roman Zhuykov <zhroma@ispras.ru> 3418 3419 PR rtl-optimization/92591 3420 * modulo-sched.c (ps_add_node_check_conflicts): Improve checking 3421 for history > 0 case. 3422 * params.def (sms-dfa-history): Limit to 16. 3423 34242019-12-19 Georg-Johann Lay <avr@gjlay.de> 3425 3426 Backport support for some AVR devices from avrxmega3 family 3427 from SVN trunk r279309, r278387, r278389, r278478. 3428 3429 PR target/92545 3430 * config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field. 3431 * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers. 3432 * config/avr/avr-mcus.def (AVR_MCU): Add respective field. 3433 * config/avr/gen-avr-mmcu-specs.c (print_mcu) 3434 <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code 3435 for spec definitions. 3436 * config/avr/gen-avr-mmcu-texi.c: Rewrite. 3437 * doc/avr-mmcu.texi: Regenerate. 3438 34392019-12-17 Andreas Krebbel <krebbel@linux.ibm.com> 3440 3441 Backport from mainline 3442 2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com> 3443 3444 PR target/92950 3445 * config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy, 3446 and lhrl with llc. 3447 34482019-12-02 Wilco Dijkstra <wdijkstr@arm.com> 3449 3450 * config/aarch64/aarch64-cores.def (ares): Define. 3451 (cortex-a76): Likewise. 3452 (neoverse-n1): Likewise. 3453 * config/aarch64/aarch64-tune.md: Regenerate. 3454 * doc/invoke.texi (AArch64 Options): Document ares, cortex-a75 and 3455 neoverse-n1. 3456 34572019-11-29 David Malcolm <dmalcolm@redhat.com> 3458 3459 PR driver/89014 3460 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix 3461 use-after-free of the result of 3462 aarch64_get_extension_string_for_isa_flags. 3463 34642019-11-21 Jakub Jelinek <jakub@redhat.com> 3465 3466 PR tree-optimization/91355 3467 * tree-ssa-sink.c (select_best_block): Use >= rather than > 3468 for early_bb scaled count with best_bb count comparison. 3469 3470 Backported from mainline 3471 2019-11-20 Jakub Jelinek <jakub@redhat.com> 3472 3473 PR middle-end/90840 3474 * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM 3475 and has a mode that doesn't have corresponding integral type. 3476 3477 PR target/90867 3478 * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't 3479 clear opts->x_ix86_isa_flags{,2} here... 3480 (ix86_valid_target_attribute_inner_p): ... but here when seeing 3481 arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit. 3482 3483 PR c/90898 3484 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove 3485 assertion. 3486 (insert_clobbers_for_var): Fix a typo in function comment. 3487 3488 2019-11-19 Jakub Jelinek <jakub@redhat.com> 3489 3490 PR middle-end/91450 3491 * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one 3492 operand is negative and one non-negative, compare the non-negative 3493 one against 0 rather than comparing s1 & s2 against 0. Otherwise, 3494 don't compare (s1 & s2) == 0, but compare separately both s1 == 0 3495 and s2 == 0, unless one of them is known to be negative. Remove 3496 tem2 variable, use tem where tem2 has been used before. 3497 3498 2019-11-08 Jakub Jelinek <jakub@redhat.com> 3499 3500 PR c++/92384 3501 * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't 3502 copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm 3503 slot. 3504 (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type 3505 force creation of a unique data.stack_parm slot. 3506 3507 2019-10-17 Jakub Jelinek <jakub@redhat.com> 3508 3509 PR tree-optimization/92056 3510 * tree-object-size.c (cond_expr_object_size): Return early if then_ 3511 processing resulted in unknown size. 3512 3513 2019-09-07 Jakub Jelinek <jakub@redhat.com> 3514 3515 PR tree-optimization/91665 3516 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type 3517 incompatible with the type of PHI result. 3518 3519 2019-09-06 Jakub Jelinek <jakub@redhat.com> 3520 3521 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P 3522 before testing TYPE_TRANSPARENT_AGGR. 3523 * calls.c (initialize_argument_information, load_register_parameters): 3524 Likewise. 3525 3526 2019-09-05 Jakub Jelinek <jakub@redhat.com> 3527 3528 PR middle-end/91001 3529 PR middle-end/91105 3530 PR middle-end/91106 3531 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR 3532 types, use type of their first field instead of type of 3533 args[i].tree_value. 3534 3535 2019-09-01 Jakub Jelinek <jakub@redhat.com> 3536 3537 PR middle-end/91623 3538 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only 3539 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains 3540 zeros or negative elements and use NE_EXPR instead of LT_EXPR against 3541 zero vector. 3542 35432019-11-20 Peter Bergner <bergner@linux.ibm.com> 3544 3545 Backport from mainline 3546 2019-11-07 Peter Bergner <bergner@linux.ibm.com> 3547 3548 PR other/92090 3549 * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT 3550 modes for integer constants. 3551 35522019-11-19 Eric Botcazou <ebotcazou@adacore.com> 3553 3554 * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo. 3555 35562019-11-14 Martin Liska <mliska@suse.cz> 3557 3558 Backport from mainline 3559 2019-11-14 Martin Liska <mliska@suse.cz> 3560 3561 PR target/92389 3562 * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to 3563 PTA_ICELAKE_CLIENT which is later interited by 3564 PTA_ICELAKE_SERVER and PTA_TIGERLAKE. 3565 35662019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 3567 3568 Backport from mainline 3569 * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument 3570 instead of asserting its value. 3571 35722019-11-11 H.J. Lu <hjl.tools@gmail.com> 3573 3574 Backport from trunk: 3575 PR target/87833 3576 * config/i386/intelmic-mkoffload.c (prepare_target_image): Put 3577 -fPIC and -shared the last to create offload image. 3578 35792019-11-11 Thomas Schwinge <thomas@codesourcery.com> 3580 3581 Backport from trunk: 3582 * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead 3583 of 'offset'. 3584 3585 Backport from trunk: 3586 * Makefile.in (LANG_CONFIGUREFRAGS): Define. 3587 (config.status): Use/depend on it. 3588 * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'. 3589 * configure: Regenerate. 3590 35912019-11-09 John David Anglin <danglin@gcc.gnu.org> 3592 3593 Backport from mainline 3594 2019-11-07 John David Anglin <danglin@gcc.gnu.org> 3595 3596 * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers. 3597 Enhance comment. 3598 (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New 3599 insn patterns using ldcw instruction. 3600 (memory_barrier): Remove insn pattern using sync instruction. 3601 * config/pa/pa.opt (coherent-ldcw): New option. 3602 (ordered): New option. 3603 36042019-11-08 Eric Botcazou <ebotcazou@adacore.com> 3605 3606 PR target/92095 3607 * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare. 3608 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest 3609 change. 3610 (got_helper_needed): New static variable. 3611 (output_load_pcrel_sym): New function. 3612 (get_pc_thunk_name): Remove after inlining... 3613 (load_got_register): ...here. Rework the initialization of the GOT 3614 register and of the GOT helper. 3615 (save_local_or_in_reg_p): Test the REGNO of the GOT register. 3616 (sparc_file_end): Test got_helper_needed to decide whether the GOT 3617 helper must be emitted. Use output_asm_insn instead of fprintf. 3618 (sparc_init_pic_reg): In PIC mode, always initialize the PIC register 3619 if optimization is enabled. 3620 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly 3621 by calling output_load_pcrel_sym. 3622 36232019-11-06 John David Anglin <danglin@gcc.gnu.org> 3624 3625 Backport from mainline 3626 2018-09-19 John David Anglin <danglin@gcc.gnu.org> 3627 3628 PR rtl-optimization/85458 3629 * config/pa/pa.c (pa_adjust_priority): Delete. 3630 (TARGET_SCHED_ADJUST_PRIORITY): Delete define. 3631 36322019-11-05 Segher Boessenkool <segher@kernel.crashing.org> 3633 3634 Backport from trunk 3635 2019-10-24 Segher Boessenkool <segher@kernel.crashing.org> 3636 3637 * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to... 3638 (uavg<mode>3_ceil): ... This. 3639 (altivec_vavgs<VI_char>): Rename to... 3640 (avg<mode>3_ceil): ... This. 3641 * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH, 3642 VAVGUW, VAVGSW): Adjust. 3643 36442019-11-05 Segher Boessenkool <segher@kernel.crashing.org> 3645 3646 Backport from trunk 3647 2019-10-26 Segher Boessenkool <segher@kernel.crashing.org> 3648 3649 PR target/91289 3650 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an 3651 immediate to r0; use r11 instead. Save and restore r11 to r0 around 3652 this. 3653 36542019-11-04 John David Anglin <danglin@gcc.gnu.org> 3655 3656 Backport from mainline 3657 2019-10-03 John David Anglin <danglin@gcc.gnu.org> 3658 3659 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust. 3660 36612019-11-04 John David Anglin <danglin@gcc.gnu.org> 3662 3663 Backport from mainline 3664 2019-10-03 John David Anglin <danglin@gcc.gnu.org> 3665 3666 * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence. 3667 (pa_attr_length_call): Adjust length for 64-bit plabel sequence. 3668 36692019-11-04 John David Anglin <danglin@gcc.gnu.org> 3670 3671 Backport from mainline 3672 2019-10-12 John David Anglin <danglin@gcc.gnu.org> 3673 3674 * config/pa/pa.c (pa_output_call): Load descriptor address to register 3675 %r22. Load function address before global pointer. 3676 (pa_attr_length_indirect_call): Adjust length of inline versions of 3677 $$dyncall. 3678 (pa_output_indirect_call): Remove fast inline version of $$dyncall 3679 before normal cases. Update inline $$dyncall sequences to preserve 3680 function descriptor address in register %r22. 3681 (TRAMPOLINE_CODE_SIZE): Adjust. 3682 (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume 3683 register %r22 contains trampoline address. 3684 (pa_trampoline_init): Adjust offsets. 3685 (pa_trampoline_adjust_address): Likewise. 3686 * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size. 3687 3688 2019-10-17 John David Anglin <danglin@gcc.gnu.org> 3689 3690 * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change. 3691 36922019-11-1 Delia Burduv <Delia.Burduv@arm.com> 3693 3694 Backport from trunk 3695 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> 3696 3697 PR target/86487 3698 * lra-constraints.c(uses_hard_regs_p): Fix handling of 3699 paradoxical SUBREGS. 3700 37012019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3702 3703 Backport from mainline 3704 2019-10-13 Iain Sandoe <iain@sandoe.co.uk> 3705 3706 * config/darwin.c (machopic_indirection_name): Rework the 3707 function to emit linker-visible symbols only for indirections 3708 in the data section. Clean up the code and update comments. 3709 37102019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3711 3712 Backport from mainline 3713 2019-10-09 Iain Sandoe <iain@sandoe.co.uk> 3714 3715 * config/darwin.c (darwin_override_options): Make the check for 3716 Objective-C ABI version more specific for 64bit code. 3717 3718 Backport from mainline 3719 2019-10-06 Iain Sandoe <iain@sandoe.co.uk> 3720 3721 * config/darwin.c (darwin_override_options): Adjust objective-c 3722 ABI version error messages to avoid punctuation and contracted 3723 negations. 3724 37252019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3726 3727 Backport from mainline 3728 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> 3729 3730 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. 3731 (STARTFILE_SPEC): Split crt3 into a separate spec. 3732 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. 3733 (DARWIN_CRT2_SPEC): New. 3734 (DARWIN_CRT3_SPEC): New. 3735 (MIN_LD64_OMIT_STUBS): Revise to 62.1. 3736 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. 3737 (DARWIN_CRT3_SPEC): New. 3738 37392019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3740 3741 Backport from mainline 3742 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> 3743 3744 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the 3745 spec. 3746 3747 Backport from mainline 3748 2019-06-25 Iain Sandoe <iain@sandoe.co.uk> 3749 3750 * config/rs6000/darwin.h (ENDFILE_SPEC): New. 3751 37522019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3753 3754 Backport from mainline 3755 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> 3756 3757 * config/darwin.c (darwin_emit_unwind_label): New default to false. 3758 (darwin_override_options): Set darwin_emit_unwind_label as needed. 3759 37602019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3761 3762 Backport from mainline 3763 2019-08-13 Iain Sandoe <iain@sandoe.co.uk> 3764 3765 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub 3766 flag. 3767 (darwin_override_options): Likewise. 3768 * config/darwin.h: Likewise. 3769 * config/darwin.opt: Likewise. 3770 * config/i386/i386.c (output_pic_addr_const): Likewise. 3771 * config/rs6000/darwin.h: Likewise. 3772 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise. 3773 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ... 3774 ... this TARGET_MACHO_SYMBOL_STUBS. 3775 (FUNCTION_PROFILER):Likewise. 3776 * config/i386/i386.h: Likewise. 3777 3778 Backport from mainline 3779 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> 3780 3781 * config/darwin.c (machopic_indirect_call_target): Use renamed 3782 darwin_picsymbol_stubs to decide on output. 3783 (darwin_override_options): Handle darwin_picsymbol_stubs. 3784 * config/darwin.h (MIN_LD64_OMIT_STUBS): New. 3785 (LD64_VERSION): Revise default. 3786 * config/darwin.opt: (mpic-symbol-stubs): New option. 3787 (darwin_picsymbol_stubs): New variable. 3788 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): 3789 rename to TARGET_MACHO_PICSYM_STUBS. 3790 * config/i386/i386.c (output_pic_addr_const): Likewise. 3791 * config/i386/i386.h Likewise. 3792 * config/rs6000/darwin.h: Likewise. 3793 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed 3794 darwin_picsymbol_stubs. 3795 37962019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3797 3798 Backport from mainline 3799 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> 3800 3801 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour 3802 user-specified float mode choice for kernel mode code. 3803 38042019-10-31 Iain Sandoe <iain@sandoe.co.uk> 3805 3806 Backport from mainline 3807 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> 3808 3809 * config/rs6000/darwin.h: Handle GCC target pragma. 3810 38112019-10-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 3812 3813 Backport from mainline 3814 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 3815 3816 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal 3817 for both call instructions. 3818 38192019-10-28 Iain Sandoe <iain@sandoe.co.uk> 3820 3821 Backport from mainline 3822 2019-10-17 Iain Sandoe <iain@sandoe.co.uk> 3823 3824 PR target/65342 3825 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete. 3826 (movdi_low_st): Delete. 3827 * config/rs6000/rs6000.c 3828 (darwin_rs6000_legitimate_lo_sum_const_p): New. 3829 (mem_operand_gpr): Validate Mach-O LO_SUM cases separately. 3830 * config/rs6000/rs6000.md (movsi_low): Delete. 3831 38322019-10-28 Iain Sandoe <iain@sandoe.co.uk> 3833 3834 Backport from mainline 3835 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> 3836 3837 PR target/67183 3838 * config/darwin.c (machopic_indirection): New field to flag 3839 non-lazy-symbol-pointers in the data section. 3840 (machopic_indirection_name): Compute if an indirection should 3841 appear in the data section. 3842 (machopic_output_data_section_indirection): New callback split 3843 from machopic_output_indirection. 3844 (machopic_output_stub_indirection): Likewise. 3845 (machopic_output_indirection): Retain the code for non-lazy 3846 symbol pointers in their regular section. 3847 (machopic_finish): Use the new callbacks to order the indirection 3848 output. 3849 38502019-10-28 Iain Sandoe <iain@sandoe.co.uk> 3851 3852 Backport from mainline 3853 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> 3854 3855 * config/darwin-protos.h (machopic_finish): Delete. 3856 * config/darwin.c (machopic_finish): Make static. 3857 3858 Backport from mainline 3859 2019-10-09 Iain Sandoe <iain@sandoe.co.uk> 3860 3861 * config/darwin.c (machopic_indirect_data_reference): Set flag to 3862 indicate that the new symbol is an indirection. 3863 (machopic_indirect_call_target): Likewise. 3864 * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New. 3865 (MACHO_SYMBOL_INDIRECTION_P): New. 3866 (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number. 3867 3868 Backport from mainline 3869 2019-10-08 Iain Sandoe <iain@sandoe.co.uk> 3870 3871 * config/darwin.c (machopic_indirect_data_reference): Check for 3872 required indirections before making direct access to defined 3873 values. 3874 (machopic_output_indirection): Place the indirected pointes for 3875 required indirections into the non-lazy symbol pointers section. 3876 (darwin_encode_section_info): 3877 * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New. 3878 (MACHO_SYMBOL_MUST_INDIRECT_P): New. 3879 3880 Backport from mainline 3881 2019-10-07 Iain Sandoe <iain@sandoe.co.uk> 3882 3883 * config/darwin.c (machopic_output_indirection): Don't put 3884 hidden symbol indirections into the .data section, use the 3885 non-lazy symbol pointers section as normal. 3886 (darwin_encode_section_info): Record if a symbol is hidden. 3887 * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New. 3888 (MACHO_SYMBOL_HIDDEN_VIS_P): New. 3889 3890 Backport from mainline 3891 2019-10-07 Iain Sandoe <iain@sandoe.co.uk> 3892 3893 * config/darwin.c (machopic_symbol_defined_p): Use symbol flag 3894 predicates instead of accessing bits directly. 3895 (machopic_indirect_call_target): Likewise. 3896 (machopic_output_indirection): Likewise. 3897 (darwin_encode_section_info): Improve description. Use renamed 3898 symbol flags. Use predicate macros for variables and functions. 3899 * config/darwin.h: 3900 Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE. 3901 Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED. 3902 Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC. 3903 (MACHO_SYMBOL_VARIABLE_P): New. 3904 (MACHO_SYMBOL_DEFINED_P):New. 3905 (MACHO_SYMBOL_STATIC_P): New. 3906 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete. 3907 (SYMBOL_FLAG_SUBT_DEP): New. 3908 * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New. 3909 39102019-10-28 Iain Sandoe <iain@sandoe.co.uk> 3911 3912 Backport from mainline 3913 2019-10-05 Iain Sandoe <iain@sandoe.co.uk> 3914 3915 PR target/59888 3916 * config/darwin.c (darwin_rodata_section): Add relocation flag, 3917 choose const_data section for constants with relocations. 3918 (machopic_select_section): Pass relocation flag to 3919 darwin_rodata_section (). 3920 39212019-10-28 Iain Sandoe <iain@sandoe.co.uk> 3922 3923 Backport from mainline 3924 2019-09-21 Iain Sandoe <iain@sandoe.co.uk> 3925 3926 * config/darwin.c (machopic_legitimize_pic_address): Check 3927 for lra, rather than reload. 3928 39292019-10-28 Peter Bergner <bergner@linux.ibm.com> 3930 Jiufu Guo <guojiufu@linux.ibm.com> 3931 3932 PR target/70010 3933 * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if 3934 the callee explicitly disables some isa_flags the caller is using. 3935 39362019-10-25 Iain Sandoe <iain@sandoe.co.uk> 3937 3938 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN):Guard 3939 against out of range max skip or log values. 3940 39412019-10-25 Richard Earnshaw <rearnsha@arm.com> 3942 3943 Backport from mainline 3944 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com> 3945 Richard Earnshaw <rearnsha@arm.com> 3946 PR target/88167 3947 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New 3948 function. 3949 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. 3950 (thumb1_compute_save_core_reg_mask): Don't force a spare work 3951 register if both the epilogue and prologue can use call-clobbered 3952 regs. 3953 (thumb1_unexpanded_epilogue): Use 3954 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for 3955 picking temporaries for restoring high regs to match that of the 3956 prologue where possible. 3957 (thumb1_expand_prologue): Add any usable call-clobbered low registers to 3958 the list of work registers. Detect if the return address is still live 3959 at the end of the prologue and avoid using it for a work register if so. 3960 If the return address is not live, add LR to the list of pushable regs 3961 after the first pass. 3962 39632019-10-23 Peter Bergner <bergner@linux.ibm.com> 3964 3965 Backport from mainline 3966 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> 3967 3968 * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and 3969 LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and 3970 MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain. 3971 39722019-10-23 Richard Biener <rguenther@suse.de> 3973 3974 Backport from mainline 3975 2019-10-17 Richard Biener <rguenther@suse.de> 3976 3977 PR debug/91887 3978 * dwarf2out.c (gen_formal_parameter_die): Also try to match 3979 context_die against a DW_TAG_GNU_formal_parameter_pack parent. 3980 3981 2019-09-19 Richard Biener <rguenther@suse.de> 3982 3983 PR tree-optimization/91812 3984 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace 3985 volatile loads. 3986 3987 2019-09-17 Richard Biener <rguenther@suse.de> 3988 3989 PR debug/91772 3990 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf 3991 was missing generate locations only once. 3992 39932019-10-23 Eric Botcazou <ebotcazou@adacore.com> 3994 3995 PR tree-optimization/92131 3996 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting 3997 range would be symbolic, drop to varying for any explicit overflow 3998 in the constant part or if neither range is a singleton. 3999 40002019-10-20 Iain Sandoe <iain@sandoe.co.uk> 4001 4002 Backport from mainline 4003 2019-10-03 Iain Sandoe <iain@sandoe.co.uk> 4004 4005 PR target/87243 4006 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New. 4007 (darwin_driver_init): Use the sysroot provided by SDKROOT when that 4008 is available and the user has not set one on the command line. 4009 40102019-10-20 Iain Sandoe <iain@sandoe.co.uk> 4011 4012 Backport from mainline 4013 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> 4014 4015 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. 4016 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. 4017 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker 4018 clauses. 4019 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and 4020 DARWIN_NOPIE_SPEC. 4021 4022 Backport from mainline 4023 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> 4024 4025 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC 4026 and DARWIN_NOPIE_SPEC. 4027 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. 4028 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. 4029 (DARWIN_NOPIE_SPEC): Collate from darwin10.h. 4030 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h 4031 (DARWIN_EXPORT_DYNAMIC): Delete. 4032 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind 4033 and pie options processing to darwin.h. 4034 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h 4035 40362019-10-18 Georg-Johann Lay <avr@gjlay.de> 4037 4038 Backport from 2019-10-18 trunk r277143. 4039 4040 PR target/86040 4041 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. 4042 40432019-10-17 Segher Boessenkool <segher@kernel.crashing.org> 4044 4045 Backport from trunk 4046 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org> 4047 4048 PR rtl-optimization/89721 4049 * lra-constraints (invariant_p): Return false if side_effects_p holds. 4050 40512019-10-17 Richard Earnshaw <rearnsha@arm.com> 4052 4053 Backport from mainline 4054 2019-05-03 Richard Earnshaw <rearnsha@arm.com> 4055 4056 PR target/89400 4057 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. 4058 Restrict 'all' variant to 32-bit configurations. 4059 (unaligned_loadhiu): Likewise. 4060 (unaligned_storehi): Likewise. 4061 (unaligned_storesi): Likewise. 4062 (unaligned_loadhis): Disable when compiling for thumb1. 4063 40642019-10-14 Will Schmidt <will_schmidt@vnet.ibm.com> 4065 4066 Backport from trunk 4067 2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com> 4068 4069 * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX, 4070 LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, 4071 LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, 4072 LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI, 4073 LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI, 4074 LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF, 4075 LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI, 4076 LD_ELEMREV_V16QI): Use the PURE attribute. 4077 40782019-10-10 Uroš Bizjak <ubizjak@gmail.com> 4079 4080 PR target/92022 4081 * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN. 4082 40832019-10-10 Oleg Endo <olegendo@gcc.gnu.org> 4084 4085 Backport from mainline 4086 2019-10-10 Oleg Endo <olegendo@gcc.gnu.org> 4087 4088 PR target/88630 4089 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro. 4090 * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns 4091 also for TARGET_FPU_SH4_300. 4092 (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of 4093 TARGET_SH4_300. 4094 * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition. 4095 (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr. 4096 (*negsf2_i): Split into ... 4097 (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns. 4098 (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc. 4099 (**abssf2_i): Split into ... 4100 (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns. 4101 (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr. 4102 (*negdf2_i): Split into ... 4103 (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns. 4104 (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc. 4105 (**abssf2_i): Split into ... 4106 (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns. 4107 41082019-10-07 Bill Schmidt <wschmidt@linux.ibm.com> 4109 4110 Backport from mainline 4111 2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com> 4112 4113 PR target/91275 4114 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap 4115 vpmsumd. 4116 41172019-10-01 Oleg Endo <olegendo@gcc.gnu.org> 4118 4119 Backport from mainline 4120 4121 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org> 4122 4123 PR target/88562 4124 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use 4125 sh_check_add_incdec_notes to preserve REG_INC notes when replacing 4126 a memory access insn. 4127 41282019-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4129 4130 Backport from mainline 4131 2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4132 4133 * config/aarch64/aarch64.md (mov<mode>): Don't call 4134 aarch64_split_dimode_const_store on volatile MEM. 4135 41362019-10-01 Eric Botcazou <ebotcazou@adacore.com> 4137 4138 PR target/91854 4139 Backport from mainline 4140 2019-09-20 Eric Botcazou <ebotcazou@adacore.com> 4141 4142 PR target/91269 4143 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define. 4144 41452019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 4146 4147 Backport from mainline 4148 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 4149 4150 PR target/80672 4151 * config/sh/sh.c (parse_validate_atomic_model_option): Use 4152 std::string::compare instead of std::string::find. 4153 41542019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 4155 4156 Backport from mainline 4157 2018-07-15 Jeff Law <law@redhat.com> 4158 4159 PR target/85993 4160 * config/sh/sh.c (output_mi_thunk): Remove dead conditional 4161 block. 4162 41632019-09-26 Iain Sandoe <iain@sandoe.co.uk> 4164 4165 Backport from mainline 4166 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> 4167 4168 * config/darwin.opt (prebind, noprebind, seglinkedit, 4169 noseglinkedit): Add RejectNegative. 4170 4171 Backport from mainline 4172 2019-06-14 Iain Sandoe <iain@sandoe.co.uk> 4173 4174 * config/darwin.opt: Add RejectNegative where needed, reorder 4175 and add minimal functional descriptions. 4176 41772019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4178 4179 Backport from mainline 4180 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4181 4182 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 4183 intrinsics if __ARM_FP. 4184 Use __ARM_FEATURE_CRC32 ifdef guard. 4185 41862019-09-23 Max Filippov <jcmvbkbc@gmail.com> 4187 4188 Backport from mainline 4189 2019-06-18 Max Filippov <jcmvbkbc@gmail.com> 4190 4191 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack 4192 pointer adjustment for the case of no callee-saved registers and 4193 stack frame bigger than 128 bytes. 4194 41952019-09-20 John David Anglin <danglin@gcc.gnu.org> 4196 4197 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended 4198 character. 4199 42002019-09-20 Andreas Krebbel <krebbel@linux.ibm.com> 4201 4202 Backport from mainline 4203 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com> 4204 4205 PR rtl-optimization/88751 4206 * ira.c (ira): Use the number of the actually referenced registers 4207 when calculating the threshold. 4208 42092019-09-11 Eric Botcazou <ebotcazou@adacore.com> 4210 4211 PR rtl-optimization/89795 4212 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from 4213 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. 4214 42152019-09-09 Jakub Jelinek <jakub@redhat.com> 4216 4217 PR target/87853 4218 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi 4219 instead of __v16qs. 4220 4221 PR target/91704 4222 * config/i386/avxintrin.h (__v32qs): New typedef. 4223 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs 4224 instead of __v32qi. 4225 42262019-09-04 Wilco Dijkstra <wdijkstr@arm.com> 4227 4228 Backport from mainline 4229 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com> 4230 4231 PR target/81800 4232 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF 4233 operand is larger than a long int. 4234 42352019-09-03 Iain Sandoe <iain@sandoe.co.uk> 4236 4237 Backport from mainline 4238 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> 4239 4240 PR pch/61250 4241 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure 4242 and issue any diagnostics needed before collecting the pre-PCH 4243 state. 4244 42452019-09-01 Eric Botcazou <ebotcazou@adacore.com> 4246 4247 PR target/91472 4248 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true 4249 during LRA/reload in PIC mode if the PIC register hasn't been used yet. 4250 (sparc_pic_register_p): Test reload_in_progress for consistency's sake. 4251 42522019-08-30 Richard Biener <rguenther@suse.de> 4253 4254 Backport from mainline 4255 2019-06-21 Richard Biener <rguenther@suse.de> 4256 4257 PR tree-optimization/90930 4258 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited 4259 flag on new stmts to avoid re-processing them. 4260 4261 2019-05-27 Richard Biener <rguenther@suse.de> 4262 4263 PR tree-optimization/90637 4264 * tree-ssa-sink.c (statement_sink_location): Honor the 4265 computed sink location for single-uses. 4266 42672019-08-30 Richard Biener <rguenther@suse.de> 4268 4269 Backport from mainline 4270 2019-07-08 Richard Biener <rguenther@suse.de> 4271 4272 PR tree-optimization/91108 4273 * tree-ssa-sccvn.c: Include builtins.h. 4274 (vn_reference_lookup_3): Use only alignment constraints to 4275 verify same-valued store disambiguation. 4276 42772019-08-30 Segher Boessenkool <segher@kernel.crashing.org> 4278 4279 Backport from trunk 4280 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> 4281 4282 PR target/91481 4283 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, 4284 and UNSPEC_DARN_RAW. 4285 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and 4286 UNSPECV_DARN_RAW. 4287 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. 4288 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. 4289 (darn): Use an unspec_volatile, and UNSPECV_DARN. 4290 42912019-08-30 Segher Boessenkool <segher@kernel.crashing.org> 4292 4293 Backport from trunk 4294 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> 4295 4296 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, 4297 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... 4298 * config/rs6000/rs6000.md (unspec): ... here. 4299 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, 4300 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, 4301 cmpeqb, *cmpeqb_internal): Delete, move to... 4302 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, 4303 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, 4304 cmpeqb, *cmpeqb_internal): ... here. 4305 43062019-08-30 Richard Biener <rguenther@suse.de> 4307 4308 Backport from mainline 4309 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> 4310 4311 PR middle-end/88567 4312 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the 4313 output vector directly to duplicate_and_interleave instead of 4314 going through a temporary. Postpone insertion of ctor_seq to 4315 the end of the loop. 4316 4317 2018-12-04 Richard Biener <rguenther@suse.de> 4318 4319 PR tree-optimization/88315 4320 * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify 4321 and fix initialization vector for SAD and DOT_PROD SLP reductions. 4322 43232019-08-30 Richard Biener <rguenther@suse.de> 4324 4325 Backport from mainline 4326 2019-06-18 Richard Biener <rguenther@suse.de> 4327 4328 PR debug/90900 4329 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL 4330 as if optimized away. 4331 4332 2019-04-29 Richard Biener <rguenther@suse.de> 4333 4334 PR tree-optimization/90278 4335 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean 4336 EH on comparison simplification. 4337 4338 2019-04-25 Richard Biener <rguenther@suse.de> 4339 4340 PR middle-end/90194 4341 * match.pd: Add pattern to simplify view-conversion of an 4342 empty constructor. 4343 43442019-08-30 Richard Biener <rguenther@suse.de> 4345 4346 Backport from mainline 4347 2019-08-12 Richard Biener <rguenther@suse.de> 4348 4349 PR lto/91375 4350 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on 4351 flag_devirtualize. 4352 4353 2019-07-31 Richard Biener <rguenther@suse.de> 4354 4355 PR tree-optimization/91293 4356 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands 4357 of reduction stmts. 4358 4359 2019-07-31 Richard Biener <rguenther@suse.de> 4360 4361 PR tree-optimization/91280 4362 * tree-ssa-structalias.c (get_constraint_for_component_ref): 4363 Decompose MEM_REF manually for offset handling. 4364 4365 2019-07-19 Richard Biener <rguenther@suse.de> 4366 4367 PR tree-optimization/91200 4368 * tree-ssa-phiopt.c (cond_store_replacement): Check we have 4369 no PHI nodes in middle-bb. 4370 4371 2019-07-15 Richard Biener <rguenther@suse.de> 4372 4373 PR middle-end/91162 4374 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI 4375 node make sure to replace all uses with something valid. 4376 4377 2019-07-11 Richard Biener <rguenther@suse.de> 4378 4379 PR middle-end/91131 4380 * gimplify.c (gimplify_compound_literal_expr): Force a temporary 4381 when the object is volatile and we have not cleared it even though 4382 there are no nonzero elements. 4383 4384 2019-07-10 Richard Biener <rguenther@suse.de> 4385 4386 PR tree-optimization/91126 4387 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust 4388 native encoding offset for BYTES_BIG_ENDIAN. 4389 43902019-08-30 Richard Biener <rguenther@suse.de> 4391 4392 * lto-streamer.h (LTO_minor_version): Bump. 4393 4394 Backport from mainline 4395 2019-05-06 Richard Biener <rguenther@suse.de> 4396 4397 PR tree-optimization/90328 4398 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. 4399 * tree-data-ref.c (dr_may_alias_p): Check whether the clique 4400 is valid in the loop nest before using it. 4401 (initialize_data_dependence_relation): Adjust. 4402 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing 4403 loop as loop-nest to dr_may_alias_p. 4404 4405 2019-03-08 Richard Biener <rguenther@suse.de> 4406 4407 PR middle-end/89578 4408 * cfgloop.h (struct loop): Add owned_clique field. 4409 * cfgloopmanip.c (copy_loop_info): Copy it. 4410 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique 4411 cliques. 4412 * tree-inline.c (copy_loops): Remap owned_clique. 4413 * lto-streamer-in.c (input_cfg): Stream owned_clique. 4414 * lto-streamer-out.c (output_cfg): Likewise. 4415 4416 2019-02-22 Richard Biener <rguenther@suse.de> 4417 4418 PR tree-optimization/87609 4419 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. 4420 4421 2019-02-22 Richard Biener <rguenther@suse.de> 4422 4423 PR middle-end/87609 4424 * cfghooks.h (dependence_hash): New typedef. 4425 (struct copy_bb_data): New type. 4426 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. 4427 (duplicate_block): Likewise. 4428 * cfghooks.c (duplicate_block): Pass down copy_bb_data. 4429 (copy_bbs): Create and pass down copy_bb_data. 4430 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. 4431 (rtl_duplicate_bb): Likewise. 4432 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL 4433 remap dependence info. 4434 4435 2019-02-22 Richard Biener <rguenther@suse.de> 4436 4437 PR tree-optimization/87609 4438 * tree-core.h (tree_base): Document special clique values. 4439 * tree-inline.c (remap_dependence_clique): Do not use the 4440 special clique value of one. 4441 (maybe_set_dependence_info): Use clique one. 4442 (clear_dependence_clique): New callback. 4443 (compute_dependence_clique): Clear clique one from all refs 4444 before assigning it (again). 4445 44462019-08-30 Bin Cheng <bin.linux@linux.alibaba.com> 4447 4448 Backport from mainline 4449 2019-07-18 Bin Cheng <bin.linux@linux.alibaba.com> 4450 4451 PR tree-optimization/91137 4452 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. 4453 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): 4454 Init, use and fini the above new field. 4455 (determine_base_object_1): New function. 4456 (determine_base_object): Reimplement using walk_tree. 4457 44582019-08-30 Richard Biener <rguenther@suse.de> 4459 4460 Backport from mainline 4461 2019-04-09 Richard Sandiford <richard.sandiford@arm.com> 4462 4463 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always 4464 use gimple_expr_type for load and store calls. Skip over the 4465 condition argument in a conditional internal function. 4466 Protect use of TREE_INT_CST_LOW. 4467 4468 2019-04-08 Richard Biener <rguenther@suse.de> 4469 4470 PR tree-optimization/90006 4471 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle 4472 calls like lrint. 4473 4474 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com> 4475 4476 PR tree-optimization/89725 4477 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer 4478 loop's chrec as invariant symbol. 4479 * tree-chrec.h (chrec_contains_symbols): New parameter. 4480 * tree-data-ref.c (analyze_miv_subscript): Pass new argument. 4481 (build_classic_dist_vector_1, add_other_self_distances): Bypass access 4482 function of loops not in DDR's loop_nest. 4483 4484 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com> 4485 4486 PR tree-optimization/81740 4487 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): 4488 In case of outer loop vectorization, check for backward dependence 4489 at the inner loop if outer loop dependence is reversed. 4490 44912019-08-30 Richard Biener <rguenther@suse.de> 4492 4493 Backport from mainline 4494 2019-04-24 Richard Biener <rguenther@suse.de> 4495 4496 PR middle-end/90213 4497 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication 4498 by size and BITS_PER_UNIT on poly-wide-ints. 4499 4500 2019-04-11 Richard Biener <rguenther@suse.de> 4501 4502 PR tree-optimization/90020 4503 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. 4504 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. 4505 * tree-ssa-pre.c (compute_avail): Use it to not put 4506 possibly trapping references after a call that might not 4507 return into EXP_GEN. 4508 * gcse.c (compute_hash_table_work): Do not elide 4509 marking a block containing a call if the call might not 4510 return. 4511 45122019-08-29 Iain Sandoe <iain@sandoe.co.uk> 4513 4514 Backport from mainline 4515 2019-07-24 Iain Sandoe <iain@sandoe.co.uk> 4516 4517 PR bootstrap/87030 4518 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749. 4519 4520 PR bootstrap/87030 4521 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here... 4522 * config/i386/darwin32-biarch.h .. to here. 4523 * config/i386/darwin64-biarch.h: Adjust comments. 4524 * config/rs6000/darwin32-biarch.h: Likewise. 4525 * config/rs6000/darwin64-biarch.h: Likewise. 4526 * config.gcc: Missed commit from r273746 4527 (*-*-darwin*): Don't include CPU t-darwin here. 4528 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce 4529 an error message if i686-darwin configuration is attempted for 4530 Darwin >= 18. 4531 4532 Backport from mainline 4533 2019-07-23 Iain Sandoe <iain@sandoe.co.uk> 4534 4535 PR bootstrap/87030 4536 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here. 4537 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce 4538 an error message if i686-darwin configuration is attempted for 4539 Darwin >= 18. 4540 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18. 4541 (powerpc-*-darwin*): Use biarch files where needed. 4542 (powerpc64-*-darwin*): Likewise. 4543 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file. 4544 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single 4545 arch case. 4546 * config/i386/darwin32-biarch.h: New. 4547 * config/i386/darwin64.h: Rename. 4548 * gcc/config/i386/darwin64-biarch.h: To this. 4549 * config/i386/t-darwin: Rename. 4550 * gcc/config/i386/t-darwin32-biarch: To this. 4551 * config/i386/t-darwin64: Rename. 4552 * gcc/config/i386/t-darwin64-biarch: To this. 4553 * config/rs6000/darwin32-biarch.h: New. 4554 * config/rs6000/darwin64.h: Rename. 4555 * config/rs6000/darwin64-biarch.h: To this. 4556 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single 4557 arch case. 4558 * config/rs6000/t-darwin8: Rename. 4559 * config/rs6000/t-darwin32-biarch: To this. 4560 * config/rs6000/t-darwin64 Rename. 4561 * config/rs6000/t-darwin64-biarch: To this. 4562 45632019-08-29 Jakub Jelinek <jakub@redhat.com> 4564 4565 Backported from mainline 4566 2019-07-30 Jakub Jelinek <jakub@redhat.com> 4567 4568 PR target/91150 4569 * config/i386/i386.c (expand_vec_perm_blend): Change mask type 4570 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast 4571 comparison to unsigned HOST_WIDE_INT before shifting it left. 4572 4573 2019-07-04 Jakub Jelinek <jakub@redhat.com> 4574 4575 PR middle-end/78884 4576 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member. 4577 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd 4578 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE. 4579 (gimplify_adjust_omp_clauses): Add safelen (1) clause if 4580 ctx->add_safelen1 is set. 4581 4582 PR rtl-optimization/90756 4583 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it 4584 for VECTOR_TYPE_P. 4585 4586 2019-06-12 Jakub Jelinek <jakub@redhat.com> 4587 4588 PR c/90760 4589 * symtab.c (symtab_node::set_section): Allow being called on aliases 4590 as long as they aren't analyzed yet. 4591 4592 2019-06-05 Jakub Jelinek <jakub@redhat.com> 4593 4594 PR debug/90733 4595 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs 4596 with VOIDmode inner operands. 4597 4598 2019-04-19 Jakub Jelinek <jakub@redhat.com> 4599 4600 PR middle-end/90139 4601 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return 4602 assign_temp instead of gen_reg_rtx. 4603 46042019-08-27 Iain Sandoe <iain@sandoe.co.uk> 4605 4606 Backport from mainline 4607 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> 4608 4609 * config/darwin.c (darwin_override_options): Make a final check on PIC 4610 options. 4611 46122019-08-27 Iain Sandoe <iain@sandoe.co.uk> 4613 4614 Backport from mainline 4615 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> 4616 * config/darwin.c (darwin_override_options): Don't jam symbol stubs 4617 on for kernel code. 4618 46192019-08-27 Iain Sandoe <iain@sandoe.co.uk> 4620 4621 Backport from mainline 4622 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> 4623 4624 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not 4625 use longcall for 64b code. 4626 46272019-08-27 Iain Sandoe <iain@sandoe.co.uk> 4628 4629 Backport from mainline 4630 2019-08-18 Iain Sandoe <iain@sandoe.co.uk> 4631 4632 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts 4633 for cpu and machine. Factor 64/32b builtins. 4634 4635 Backport from mainline 4636 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> 4637 4638 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. 4639 46402019-08-25 Iain Sandoe <iain@sandoe.co.uk> 4641 4642 Backport from mainline 4643 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> 4644 4645 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors 4646 in computing the number of options to be moved. 4647 4648 Backport from mainline 4649 2019-06-13 Iain Sandoe <iain@sandoe.co.uk> 4650 4651 * config/darwin-driver.c (validate_macosx_version_min): New. 4652 (darwin_default_min_version): Cleanup and validate supplied version. 4653 (darwin_driver_init): Likewise and push cleaned version into opts. 4654 46552019-08-25 Uroš Bizjak <ubizjak@gmail.com> 4656 4657 PR target/91533 4658 Backport from mainline 4659 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> 4660 4661 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2. 4662 * config/i386/i386-builtin.def (__builtin_ia32_pabsb): 4663 Use CODE_FOR_ssse3_absv8qi2. 4664 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. 4665 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. 4666 46672019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com> 4668 4669 Backport from mainline 4670 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com> 4671 4672 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI 4673 machine mode for unspec_volatile operand. 4674 46752019-08-22 Iain Sandoe <iain@sandoe.co.uk> 4676 4677 Backport from mainline 4678 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> 4679 4680 * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New. 4681 46822019-08-22 Iain Sandoe <iain@sandoe.co.uk> 4683 4684 Backport from mainline 4685 2019-05-31 Iain Sandoe <iain@sandoe.co.uk> 4686 4687 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. 4688 46892019-08-22 Iain Sandoe <iain@sandoe.co.uk> 4690 4691 Backport from mainline 4692 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> 4693 4694 * config/darwin-c.c (darwin_register_objc_includes): Do not 4695 prepend the sysroot when building gnu-runtime header search 4696 paths. 4697 46982019-08-22 Iain Sandoe <iain@sandoe.co.uk> 4699 4700 Backport from mainline 4701 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> 4702 4703 * config/darwin.c (darwin_file_end): Use switch_to_section () 4704 instead of direct output of the asm. 4705 47062019-08-20 Eric Botcazou <ebotcazou@adacore.com> 4707 4708 PR rtl-optimization/91347 4709 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls 4710 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER. 4711 47122019-08-16 Iain Sandoe <iain@sandoe.co.uk> 4713 4714 Backport from mainline 4715 2019-04-21 Iain Sandoe <iain@sandoe.co.uk> 4716 4717 * config/rs6000/rs6000.md (group_end_nop): Emit insn register 4718 names using operand format, rather than hard-wired. 4719 (speculation_barrier): Likewise. 4720 47212019-08-14 Iain Sandoe <iain@sandoe.co.uk> 4722 4723 Backport from mainline 4724 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> 4725 4726 * config/darwin.h (LINK_COMMAND_SPEC_A): Update lto options 4727 to match gcc/gcc.c. 4728 47292019-08-05 Kito Cheng <kito.cheng@sifive.com> 4730 4731 Backport from mainline 4732 2019-08-05 Kito Cheng <kito.cheng@sifive.com> 4733 4734 * config/riscv/riscv.c (riscv_promote_function_mode): New. 4735 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. 4736 47372019-08-04 Segher Boessenkool <segher@kernel.crashing.org> 4738 4739 Backport from trunk 4740 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> 4741 4742 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the 4743 correct numbers for TFHAR, TFIAR, TEXASR. 4744 47452019-07-23 Matthew Beliveau <mbelivea@redhat.com> 4746 4747 Backported from mainline 4748 2019-07-16 Jeff Law <law@redhat.com> 4749 4750 PR rtl-optimization/91173 4751 * tree-ssa-address.c (addr_for_mem_ref): If the base is an 4752 SSA_NAME with a constant value, fold its value into the offset 4753 and clear the base before calling gen_addr_rtx. 4754 * g++.dg/pr91173.C: New test. 4755 47562019-07-23 Richard Biener <rguenther@suse.de> 4757 4758 PR debug/91231 4759 * lto-streamer-in.c (input_function): Drop inline-entry markers 4760 that ended up with an unknown location block. 4761 47622019-07-22 Martin Liska <mliska@suse.cz> 4763 4764 Backport from mainline 4765 2019-07-22 Martin Liska <mliska@suse.cz> 4766 4767 PR driver/91172 4768 * opts-common.c (decode_cmdline_option): Decode 4769 argument of -Werror and check it for a wrong language. 4770 * opts-global.c (complain_wrong_lang): Remove such case. 4771 47722019-07-21 Richard Sandiford <richard.sandiford@arm.com> 4773 4774 Backport from mainline 4775 2019-07-10 Richard Sandiford <richard.sandiford@arm.com> 4776 4777 * fold-const.c (fold_relational_const): Fix folding of 4778 vector-to-scalar NE_EXPRs. 4779 (test_vector_folding): Add more tests. 4780 47812019-07-19 Jason Merrill <jason@redhat.com> 4782 4783 PR c++/82081 - tail call optimization breaks noexcept 4784 * tree-tailcall.c (find_tail_calls): Don't turn a call from a 4785 nothrow function to a might-throw function into a tail call. 4786 47872019-07-16 Wilco Dijkstra <wdijkstr@arm.com> 4788 4789 Backport from mainline 4790 PR target/89222 4791 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem 4792 to decide when to split off a non-zero offset from a symbol. 4793 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets 4794 in function symbols. 4795 47962019-07-16 Wilco Dijkstra <wdijkstr@arm.com> 4797 4798 Backport from mainline 4799 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com> 4800 PR target/89190 4801 * config/arm/arm.c (ldm_stm_operation_p) Set 4802 addr_reg_in_reglist correctly for first register. 4803 (load_multiple_sequence): Remove dead base check. 4804 (gen_ldm_seq): Correctly set write_back for Thumb-1. 4805 48062019-07-15 Andreas Krebbel <krebbel@linux.ibm.com> 4807 4808 Backport from mainline 4809 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com> 4810 4811 * config/s390/vector.md: Fix shift count operand printing. 4812 48132019-07-15 Wilco Dijkstra <wdijkstr@arm.com> 4814 4815 Backport from mainline 4816 2019-01-23 Bin Cheng <bin.cheng@arm.com> 4817 Steve Ellcey <sellcey@marvell.com> 4818 4819 PR target/85711 4820 * recog.c (address_operand): Return false on wrong mode for address. 4821 (constrain_operands): Check for mode with 'p' constraint. 4822 48232019-07-12 Eric Botcazou <ebotcazou@adacore.com> 4824 4825 PR rtl-optimization/91136 4826 * df-core.c (ACCESSING REFS): Fix typos in comment. 4827 * resource.c (mark_target_live_reg): Add artificial defs that occur at 4828 the beginning of the block to the initial set of live registers. 4829 48302019-07-04 Martin Liska <mliska@suse.cz> 4831 4832 Backport from mainline 4833 2019-07-03 Martin Liska <mliska@suse.cz> 4834 4835 PR middle-end/90899 4836 * multiple_target.c (create_dispatcher_calls): Add to comdat 4837 group only if set for ifunc. 4838 48392019-06-28 Jeff Law <law@redhat.com> 4840 4841 Backport from mainline 4842 2019-06-21 Jeff Law <law@redhat.com> 4843 4844 PR tree-optimization/90949 4845 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. 4846 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. 4847 48482019-06-26 Martin Jambor <mjambor@suse.cz> 4849 4850 Backport from mainline 4851 2019-06-25 Martin Jambor <mjambor@suse.cz> 4852 4853 PR ipa/90939 4854 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. 4855 48562019-06-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 4857 4858 Backport from mainline 4859 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 4860 4861 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for 4862 alternative Solaris 11.4 format. 4863 * configure: Regenerate. 4864 48652019-06-16 Jeff Law <law@redhat.com> 4866 4867 Backport from mainline 4868 2019-06-16 Prachi Godbole <prachi.godbole@imgtec.com> 4869 Robert Suchanek <robert.suchanek@mips.com> 4870 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st 4871 and 3rd operands of the fmadd/fmsub/maddv builtin. 4872 48732019-06-16 John David Anglin <danglin@gcc.gnu.org> 4874 4875 PR middle-end/64242 4876 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add 4877 frame clobbers and schedule block. 4878 (builtin_longjmp): Likewise. 4879 48802019-06-11 Jakub Jelinek <jakub@redhat.com> 4881 4882 PR target/90811 4883 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d 4884 instead of and.u%d. 4885 48862019-06-07 John David Anglin <danglin@gcc.gnu.orig> 4887 4888 PR target/90751 4889 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment. 4890 Call pa_output_function_label. 4891 (TARGET_ASM_FUNCTION_PROLOGUE): define. 4892 * config/pa/pa-protos.h (pa_output_function_label): Declare. 4893 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED 4894 to declaration. 4895 (pa_linux_output_function_prologue): Declare. 4896 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define. 4897 (pa_output_function_label): New. 4898 (pa_output_function_prologue): Revise to use pa_output_function_label. 4899 (pa_linux_output_function_prologue): New. 4900 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define. 4901 49022019-06-07 Iain Sandoe <iain@sandoe.co.uk> 4903 4904 Backport from mainline. 4905 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> 4906 4907 PR target/82920 4908 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for 4909 Darwin. 4910 49112019-06-07 Iain Sandoe <iain@sandoe.co.uk> 4912 4913 Backport from mainline. 4914 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> 4915 4916 PR target/82920 4917 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. 4918 (ix86_output_indirect_branch_via_reg): Use output mechanism 4919 accounting for __USER_LABEL_PREFIX__. 4920 (ix86_output_indirect_branch_via_push): Likewise. 4921 (ix86_output_function_return): Likewise. 4922 (ix86_output_indirect_function_return): Likewise. 4923 49242019-05-30 Jakub Jelinek <jakub@redhat.com> 4925 4926 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght 4927 to length. 4928 49292019-05-29 Jakub Jelinek <jakub@redhat.com> 4930 4931 PR fortran/90329 4932 * lto-streamer.h (LTO_minor_version): Bump to 2. 4933 4934 Backported from mainline 4935 2019-05-16 Jakub Jelinek <jakub@redhat.com> 4936 4937 PR fortran/90329 4938 * tree-core.h (struct tree_decl_common): Document 4939 decl_nonshareable_flag for PARM_DECLs. 4940 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. 4941 * calls.c (expand_call): Don't try tail call if caller 4942 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be 4943 passed on the stack and callee needs to pass any arguments on the 4944 stack. 4945 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use 4946 else if instead of series of mutually exclusive ifs. Handle 4947 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. 4948 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 4949 49502019-05-28 John David Anglin <danglin@gcc.gnu.org> 4951 4952 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. 4953 49542019-05-27 Eric Botcazou <ebotcazou@adacore.com> 4955 4956 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index 4957 and DW_OP_GNU_const_index opcodes. 4958 49592019-05-24 John David Anglin <danglin@gcc.gnu.org> 4960 4961 PR target/90530 4962 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from 4963 DImode to SImode in floating-point registers on 64-bit target. 4964 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to 4965 register_operand in xmpyu patterns. 4966 49672019-05-24 Martin Liska <mliska@suse.cz> 4968 4969 Backport from mainline 4970 2019-05-23 Martin Liska <mliska@suse.cz> 4971 4972 PR sanitizer/90570 4973 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target 4974 expression similarly to gimplify_decl_expr. 4975 49762019-05-23 Uroš Bizjak <ubizjak@gmail.com> 4977 4978 Backport from mainline 4979 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> 4980 4981 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero 4982 %ebx and %ecx bafore calling cpuid with leaf 1 or 4983 non-constant leaf argument. 4984 4985 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> 4986 4987 PR target/90547 4988 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): 4989 Avoid calling gen_lowpart with CONST operand. 4990 49912019-05-21 Sebastian Huber <sebastian.huber@embedded-brains.de> 4992 4993 Backported from mainline 4994 2019-05-16 Sebastian Huber <sebastian.huber@embedded-brains.de> 4995 4996 * config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M 4997 multilibs. 4998 49992019-05-20 Jeff Law <law@redhat.com> 5000 5001 Backport from mainline 5002 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 5003 5004 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace 5005 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 5006 and fpxx modes. 5007 50082019-05-16 Kelvin Nilsen <kelvin@gcc.gnu.org> 5009 5010 Backport from mainline. 5011 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> 5012 5013 PR target/89765 5014 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 5015 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic 5016 to compute vector element selector for both constant and variable 5017 operands. 5018 50192019-05-15 David Edelsohn <dje.gcc@gmail.com> 5020 5021 Backport from mainline 5022 2019-04-11 David Edelsohn <dje.gcc@gmail.com> 5023 * xcoffout.h (xcoff_private_rodata_section_name): Declare. 5024 * xcoffout.c (xcoff_private_rodata_section_name): Define. 5025 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create 5026 read_only_private_data_section using coff_private_rodata_section_name. 5027 (rs6000_xcoff_file_start): Generate coff_private_rodata_section_name. 5028 5029 2018-12-04 David Edelsohn <dje.gcc@gmail.com> 5030 2018-12-13 David Edelsohn <dje.gcc@gmail.com> 5031 PR target/61976 5032 * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates 5033 in FPRs on AIX. Ensure type is non-NULL. 5034 (rs6000_arg_partial_bytes): Same. 5035 50362019-05-14 Martin Liska <mliska@suse.cz> 5037 5038 Backport from mainline 5039 2019-05-13 Martin Liska <mliska@suse.cz> 5040 5041 PR gcov-profile/90380 5042 * gcov.c (handle_cycle): Do not support zero cycle count, 5043 it should not be possible. 5044 (path_contains_zero_cycle_arc): New function. 5045 (circuit): Ignore zero cycle arc counts. 5046 50472019-05-14 Martin Liska <mliska@suse.cz> 5048 5049 Backport from mainline 5050 2019-05-13 Martin Liska <mliska@suse.cz> 5051 5052 PR gcov-profile/90380 5053 * gcov.c (enum loop_type): Remove the enum and 5054 the operator. 5055 (handle_cycle): Assert that we should not reach 5056 a negative count. 5057 (circuit): Use loop_found instead of a tri-state loop_type. 5058 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't 5059 happen. 5060 50612019-05-11 Andreas Tobler <andreast@gcc.gnu.org> 5062 5063 Backport from mainline. 5064 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org> 5065 5066 * config/i386/freebsd64.h: Add bits for 32-bit multilib support. 5067 * config/i386/t-freebsd64: New file. 5068 * config.gcc: Add the t-freebsd64 for multilib support. 5069 50702019-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> 5071 5072 Backport from mainline. 5073 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> 5074 5075 PR target/89424 5076 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add 5077 handling of V1TImode. 5078 50792019-05-06 Richard Biener <rguenther@suse.de> 5080 5081 PR bootstrap/90359 5082 Backport from mainline 5083 2019-03-11 Jakub Jelinek <jakub@redhat.com> 5084 5085 PR middle-end/89655 5086 PR bootstrap/89656 5087 * vr-values.c (vr_values::update_value_range): If 5088 old_vr->varying_p (), don't update it, make new_vr also VARYING 5089 and return false. 5090 50912019-05-03 Richard Biener <rguenther@suse.de> 5092 5093 Backport from mainline 5094 2019-03-14 Richard Biener <rguenther@suse.de> 5095 5096 PR middle-end/89698 5097 * fold-const.c (operand_equal_p): For INDIRECT_REF check 5098 that the access types are similar. 5099 5100 2019-03-07 Richard Biener <rguenther@suse.de> 5101 5102 PR tree-optimization/89595 5103 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take 5104 stmt iterator as reference, take boolean output parameter to 5105 indicate whether the stmt was removed and thus the iterator 5106 already advanced. 5107 (dom_opt_dom_walker::before_dom_children): Re-iterate over 5108 stmts created by folding. 5109 5110 2019-03-14 Richard Biener <rguenther@suse.de> 5111 5112 PR tree-optimization/89710 5113 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use 5114 safe_dyn_cast. 5115 5116 2019-04-15 Richard Biener <rguenther@suse.de> 5117 5118 PR tree-optimization/90071 5119 * tree-ssa-reassoc.c (init_range_entry): Do not pick up 5120 abnormal operands from def stmts. 5121 5122 2018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 5123 5124 PR target/86984 5125 * expr.c (expand_assignment): Assert that bitpos is positive. 5126 (store_field): Likewise 5127 (expand_expr_real_1): Make sure that bitpos is positive. 5128 * config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed 5129 integer overflow. 5130 5131 2019-03-14 Richard Biener <rguenther@suse.de> 5132 5133 PR target/89711 5134 * config/i386/i386.c (make_resolver_func): Properly set 5135 DECL_CONTEXT on the RESULT_DECL. 5136 * config/rs6000/rs6000.c (make_resolver_func): Likewise. 5137 51382019-04-30 Jakub Jelinek <jakub@redhat.com> 5139 5140 Backported from mainline 5141 2019-04-24 Jakub Jelinek <jakub@redhat.com> 5142 5143 PR target/90193 5144 * rtl.c (classify_insn): Return JUMP_INSN for asm goto. 5145 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. 5146 5147 PR target/90187 5148 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into 5149 a register if both if_true and if_false are MEMs. 5150 5151 PR tree-optimization/90208 5152 * tree-cfg.c (remove_bb): Move forced labels from removed bbs 5153 after labels of new_bb, not before them. 5154 5155 2019-04-16 Jakub Jelinek <jakub@redhat.com> 5156 5157 PR rtl-optimization/90082 5158 * dce.c (can_delete_call): New function. 5159 (deletable_insn_p, mark_insn): Use it. 5160 5161 PR tree-optimization/90090 5162 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can 5163 throw internally. 5164 (is_division_by_square): Likewise. Formatting fix. 5165 5166 2019-04-12 Jakub Jelinek <jakub@redhat.com> 5167 5168 PR rtl-optimization/89965 5169 * dce.c: Include rtl-iter.h. 5170 (struct check_argument_load_data): New type. 5171 (check_argument_load): New function. 5172 (find_call_stack_args): Check for loads from stack slots still tracked 5173 in sp_bytes and punt if any is found. 5174 5175 PR c/89946 5176 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p 5177 and gcc_unreachable if it fails, just call tree_to_uhwi which 5178 verifies that too. Test TREE_CHAIN instead of list_length > 1. 5179 Start warning message with a lower-case letter. Formatting fixes. 5180 5181 PR rtl-optimization/90026 5182 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no 5183 successors, look for BARRIERs inside of the whole BB_FOOTER chain 5184 rather than just at the start of it. If e->src BB_FOOTER is not NULL 5185 in cfglayout mode, use emit_barrier_after_bb. 5186 5187 2019-04-11 Jakub Jelinek <jakub@redhat.com> 5188 5189 PR rtl-optimization/89965 5190 * dce.c (sp_based_mem_offset): New function. 5191 (find_call_stack_args): Use sp_based_mem_offset. 5192 5193 2019-04-10 Jakub Jelinek <jakub@redhat.com> 5194 5195 PR c++/90010 5196 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr 5197 with strlen in between hostsz-3 and hostsz-1 inclusive when no 5198 translation is needed, and when translation is needed, only append 5199 ... if the string length is hostsz or more bytes long. Avoid using 5200 strncpy or strcat. 5201 5202 2019-04-09 Jakub Jelinek <jakub@redhat.com> 5203 5204 PR tree-optimization/89998 5205 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type 5206 instead of integer_type_node if possible, don't add ranges if return 5207 type is not compatible with int. 5208 * gimple-fold.c (gimple_fold_builtin_sprintf, 5209 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded 5210 integer_type_node. 5211 5212 2019-03-29 Jakub Jelinek <jakub@redhat.com> 5213 5214 PR c/89872 5215 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a 5216 non-addressable complit into its initializer if it is volatile. 5217 5218 2019-03-28 Jakub Jelinek <jakub@redhat.com> 5219 5220 PR middle-end/89621 5221 * tree-inline.h (struct copy_body_data): Add 5222 dont_remap_vla_if_no_change flag. 5223 * tree-inline.c (remap_type_3, remap_type_2): New functions. 5224 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change 5225 and remap_type_2 returns false. 5226 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. 5227 5228 2019-03-20 Jakub Jelinek <jakub@redhat.com> 5229 5230 PR target/89752 5231 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't 5232 update this_alternative nor this_alternative_set. 5233 5234 2019-03-19 Jakub Jelinek <jakub@redhat.com> 5235 5236 PR rtl-optimization/89768 5237 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode 5238 instead of GEN_INT. 5239 (unroll_loop_runtime_iterations): Likewise. 5240 5241 PR target/89752 5242 * gimplify.c (gimplify_asm_expr): For output argument with 5243 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise 5244 diagnose error. 5245 5246 PR target/89726 5247 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil 5248 compensation use x2 += 1 instead of x2 -= -1 and when honoring 5249 signed zeros, do another copysign after the compensation. 5250 5251 2019-03-15 Jakub Jelinek <jakub@redhat.com> 5252 5253 PR debug/89704 5254 * dwarf2out.c (add_const_value_attribute): Return false for MINUS, 5255 SIGN_EXTEND and ZERO_EXTEND. 5256 5257 2019-03-14 Jakub Jelinek <jakub@redhat.com> 5258 5259 PR ipa/89684 5260 * multiple_target.c (create_dispatcher_calls): Change 5261 references_to_redirect from vector of ipa_ref * to vector of ipa_ref. 5262 In the node->iterate_referring loop, push *ref rather than ref, call 5263 ref->remove_reference () and always pass 0 to iterate_referring. 5264 5265 PR rtl-optimization/89679 5266 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it 5267 would contain a paradoxical SUBREG. 5268 5269 PR tree-optimization/89703 5270 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types 5271 aren't compatible also with builtin_decl_explicit. Check pure 5272 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} 5273 and BUILT_IN_STPNCPY{,_CHK}. 5274 5275 2019-03-13 Jakub Jelinek <jakub@redhat.com> 5276 5277 PR debug/89498 5278 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use 5279 DWARF_OFFSET_SIZE. 5280 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. 5281 5282 PR middle-end/88588 5283 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. 5284 (ipa_simd_modify_function_body): Handle PHIs. 5285 5286 2019-03-12 Jakub Jelinek <jakub@redhat.com> 5287 5288 PR middle-end/89663 5289 * builtins.c (expand_builtin_int_roundingfn, 5290 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of 5291 gcc_unreachable if validate_arglist fails. 5292 5293 2019-03-09 Jakub Jelinek <jakub@redhat.com> 5294 5295 PR c/88568 5296 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for 5297 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. 5298 5299 2019-03-05 Jakub Jelinek <jakub@redhat.com> 5300 5301 PR target/89587 5302 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only 5303 if_multiarch. 5304 5305 PR middle-end/89590 5306 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have 5307 exactly one argument. 5308 5309 2019-02-28 Jakub Jelinek <jakub@redhat.com> 5310 5311 PR c/89520 5312 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for 5313 builtins if they don't have a single scalar floating point argument. 5314 Formatting fixes. 5315 5316 2019-02-20 Jakub Jelinek <jakub@redhat.com> 5317 5318 PR middle-end/89412 5319 * expr.c (expand_assignment): If result is a MEM, use change_address 5320 instead of simplify_gen_subreg. 5321 5322 2019-02-20 Jakub Jelinek <jakub@redhat.com> 5323 David Malcolm <dmalcolm@redhat.com> 5324 5325 PR middle-end/89091 5326 * fold-const.c (decode_field_reference): Return NULL_TREE if 5327 lang_hooks.types.type_for_size returns NULL. Check it before 5328 overwriting *exp_. Use return NULL_TREE instead of return 0. 5329 5330 2019-02-20 Jakub Jelinek <jakub@redhat.com> 5331 5332 PR middle-end/88074 5333 PR middle-end/89415 5334 * toplev.c (do_compile): Double the emin/emax exponents to workaround 5335 buggy mpc_norm. 5336 5337 2019-02-19 Richard Biener <rguenther@suse.de> 5338 5339 PR middle-end/88074 5340 * toplev.c (do_compile): Initialize mpfr's exponent range 5341 based on available float modes. 5342 53432019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 5344 5345 Backport from mainline. 5346 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 5347 PR target/86538 5348 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 5349 Define __ARM_FEATURE_ATOMICS. 5350 53512019-04-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 5352 5353 Backport from mainline 5354 2018-12-11 Richard Earnshaw <Richard.Earnshaw@arm.com> 5355 5356 PR target/37369 5357 * config/aarch64/iterators.md (sizem1): Add sizes for 5358 SFmode and DFmode. 5359 (Vbtype): Add SFmode mapping. 5360 * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. 5361 (copysign<GPF:mode>3): New expand pattern. 5362 (copysign<GPF:mode>3_insn): New insn pattern. 5363 53642019-04-29 Richard Sandiford <richard.sandiford@arm.com> 5365 5366 Backport from mainline: 5367 2019-01-25 Richard Sandiford <richard.sandiford@arm.com> 5368 5369 PR middle-end/89037 5370 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi 5371 instead of accessing TREE_INT_CST_ELT directly. 5372 53732019-04-29 Richard Sandiford <richard.sandiford@arm.com> 5374 5375 Backport from mainline: 5376 2018-08-23 Richard Sandiford <richard.sandiford@arm.com> 5377 5378 PR target/85910 5379 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix 5380 aarch64_evpc_tbl guard. 5381 53822019-04-29 Richard Sandiford <richard.sandiford@arm.com> 5383 5384 Backport from mainline: 5385 2019-03-08 Richard Sandiford <richard.sandiford@arm.com> 5386 5387 PR debug/89631 5388 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT 5389 instead of POLY_INT_CST. 5390 53912019-04-26 Roman Zhuykov <zhroma@ispras.ru> 5392 5393 Backport from mainline 5394 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> 5395 5396 PR rtl-optimization/87979 5397 * modulo-sched.c (sms_schedule): Start ii value "mii" should 5398 not equal zero. 5399 5400 PR rtl-optimization/84032 5401 * modulo-sched.c (ps_insn_find_column): Change condition so that 5402 branch will always be the last insn in a row inside partial 5403 schedule. 5404 54052019-04-19 Pat Haugen <pthaugen@us.ibm.com> 5406 5407 Backport from mainline: 5408 2019-04-16 Pat Haugen <pthaugen@us.ibm.com> 5409 5410 PR target/84369 5411 * config/rs6000/power9.md: Add store forwarding bypass. 5412 54132019-04-17 Martin Jambor <mjambor@suse.cz> 5414 5415 Backport from mainline 5416 2019-03-10 Martin Jambor <mjambor@suse.cz> 5417 5418 PR tree-optimization/85762 5419 PR tree-optimization/87008 5420 PR tree-optimization/85459 5421 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool 5422 it points to if there is a type changing MEM_REF. Adjust all callers. 5423 (build_accesses_from_assign): Disable total scalarization if 5424 contains_vce_or_bfcref_p returns true through the new parameter, for 5425 both rhs and lhs. 5426 54272019-04-17 Kelvin Nilsen <kelvin@gcc.gnu.org> 5428 5429 Backport from mainline 5430 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org> 5431 5432 PR target/87532 5433 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 5434 When handling vec_extract, use modular arithmetic to allow 5435 constant selectors greater than vector length. 5436 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow 5437 V1TImode vectors to have constant selector values greater than 0. 5438 Use modular arithmetic to compute vector index. 5439 (rs6000_split_vec_extract_var): Use modular arithmetic to compute 5440 index for in-memory vectors. Correct code generation for 5441 in-register vectors. Use inner mode of vector rather than mode of 5442 destination for move instruction. 5443 (altivec_expand_vec_ext_builtin): Use modular arithmetic to 5444 compute index. 5445 5446 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org> 5447 5448 PR target/87532 5449 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var): 5450 Use QI inner mode with V16QI vector mode. 5451 54522019-04-15 Martin Jambor <mjambor@suse.cz> 5453 5454 Backport from mainline 5455 2019-04-15 Martin Jambor <mjambor@suse.cz> 5456 5457 PR ipa/89693 5458 * cgraph.c (clone_of_p): Loop over clone chain for each step in 5459 the thunk chain. 5460 54612019-04-15 Martin Liska <mliska@suse.cz> 5462 5463 Backport from mainline 5464 2019-01-18 Martin Liska <mliska@suse.cz> 5465 Richard Biener <rguenther@suse.de> 5466 5467 PR middle-end/88587 5468 * cgraph.h (create_version_clone_with_body): Add new argument 5469 with attributes. 5470 * cgraphclones.c (cgraph_node::create_version_clone): Add 5471 DECL_ATTRIBUTES to a newly created decl. And call 5472 valid_attribute_p so that proper cl_target_optimization_node 5473 is set for the newly created declaration. 5474 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES 5475 for declaration. 5476 (expand_target_clones): Do not call valid_attribute_p, it must 5477 be already done. 5478 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for 5479 vector types. 5480 54812019-04-11 Richard Biener <rguenther@suse.de> 5482 5483 PR tree-optimization/90018 5484 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): 5485 Test both SLP and interleaving variants. 5486 54872019-04-10 Matthew Malcomson <matthew.malcomson@arm.com> 5488 5489 PR target/90024 5490 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. 5491 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint 5492 into three. 5493 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode 5494 differences directly. 5495 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint. 5496 54972019-04-07 Uroš Bizjak <ubizjak@gmail.com> 5498 5499 PR target/89945 5500 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): 5501 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. 5502 55032019-04-04 Martin Sebor <msebor@redhat.com> 5504 5505 PR middle-end/89934 5506 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail 5507 out if the number of arguments is less than expected. 5508 55092019-04-03 Richard Biener <rguenther@suse.de> 5510 5511 PR lto/89896 5512 * lto-wrapper.c (run_gcc): Avoid implicit rules making 5513 the all target phony. 5514 55152019-04-02 Uroš Bizjak <ubizjak@gmail.com> 5516 5517 PR target/89902 5518 PR target/89903 5519 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): 5520 Return false for variable DImode shifts. 5521 (dimode_scalar_chain::compute_convert_gain): Do not handle 5522 register count operand in variable DImode shifts. 5523 (dimode_scalar_chain::make_vector_copies): Remove support to copy 5524 count argument of a variable shift instruction to a vector register. 5525 (dimode_scalar_chain::convert_reg): Remove support to convert 5526 count argument of a variable shift instruction. 5527 55282019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> 5529 5530 Backport from mainline 5531 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> 5532 Eric Botcazou <ebotcazou@adacore.com> 5533 5534 PR rtl-optimization/89862 5535 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations 5536 that operates on the full registers for WORD_REGISTER_OPERATIONS 5537 architectures. 5538 55392019-03-28 Uroš Bizjak <ubizjak@gmail.com> 5540 5541 PR target/89848 5542 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): 5543 Also process XEXP (src, 0) of a shift insn. 5544 55452019-03-28 Martin Liska <mliska@suse.cz> 5546 5547 Backport from mainline 5548 2018-11-05 Martin Liska <mliska@suse.cz> 5549 5550 PR web/87829 5551 * doc/invoke.texi: Remove options that are 5552 not disabled with -Os. 5553 55542019-03-26 Uroš Bizjak <ubizjak@gmail.com> 5555 5556 PR target/89827 5557 * config/i386/i386.c (dimode_scalar_chain::convert_reg): 5558 Also process XEXP (src, 0) of a shift insn. 5559 55602019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> 5561 5562 Backport from mainline 5563 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com> 5564 5565 PR target/89775 5566 * config/s390/s390.c (global_not_special_regno_p): Move to make it 5567 available to ... 5568 (s390_optimize_register_info): Use global_not_special_regno_p to 5569 check for global regs. 5570 55712019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> 5572 5573 Backport from mainline 5574 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> 5575 5576 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. 5577 55782019-03-21 Bill Schmidt <wschmidt@linux.ibm.com> 5579 5580 Backport from mainline 5581 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com> 5582 5583 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild 5584 ud- and du-chains between phases. 5585 55862019-03-19 Richard Biener <rguenther@suse.de> 5587 5588 PR debug/88389 5589 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. 5590 55912019-03-19 Eric Botcazou <ebotcazou@adacore.com> 5592 5593 PR rtl-optimization/89753 5594 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for 5595 explicit unrolling factor even more robust. 5596 55972019-03-18 Martin Sebor <msebor@redhat.com> 5598 5599 PR middle-end/88273 5600 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): 5601 Handle anti-ranges the same as no range at all. 5602 56032019-03-18 Martin Jambor <mjambor@suse.cz> 5604 5605 Backport from mainline 5606 2019-03-18 Martin Jambor <mjambor@suse.cz> 5607 5608 PR tree-optimization/89546 5609 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if 5610 any propagation to its children took place. 5611 56122019-03-17 H.J. Lu <hongjiu.lu@intel.com> 5613 5614 Backport from mainline 5615 2019-03-14 H.J. Lu <hongjiu.lu@intel.com> 5616 5617 PR target/89523 5618 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add 5619 addr32 prefix to VSIB address for X32. 5620 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend 5621 "%M2" to opcode. 5622 (*avx512pf_gatherpf<mode>df_mask): Likewise. 5623 (*avx512pf_scatterpf<mode>sf_mask): Likewise. 5624 (*avx512pf_scatterpf<mode>df_mask): Likewise. 5625 (*avx2_gathersi<mode>): Prepend "%M3" to opcode. 5626 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode. 5627 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode. 5628 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode. 5629 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode. 5630 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.` 5631 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode. 5632 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode. 5633 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode. 5634 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode. 5635 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode. 5636 (*avx512f_scatterdi<mode>): Likewise. 5637 56382019-03-15 Richard Biener <rguenther@suse.de> 5639 5640 Backport from mainline 5641 2018-11-30 Jakub Jelinek <jakub@redhat.com> 5642 5643 PR testsuite/85368 5644 * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. 5645 * tree-ssa-ifcombine.c (ifcombine_ifandif): If 5646 --param logical-op-non-short-circuit is present, override 5647 LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. 5648 * fold-const.c (fold_range_test, fold_truth_andor): Likewise. 5649 56502019-03-15 Martin Liska <mliska@suse.cz> 5651 5652 PR other/89712 5653 * doc/invoke.texi: Remove -fdump-class-hierarchy option. 5654 56552019-03-14 Martin Jambor <mjambor@suse.cz> 5656 5657 Backport from mainline 5658 2019-03-07 Martin Jambor <mjambor@suse.cz> 5659 5660 PR lto/87525 5661 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit 5662 for extern inline functions. 5663 56642019-03-14 Richard Biener <rguenther@suse.de> 5665 5666 PR middle-end/89572 5667 * tree-scalar-evolution.c (get_loop_exit_condition): Use 5668 safe_dyn_cast. 5669 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): 5670 Use gimple_location_safe. 5671 56722019-03-13 Vladimir Makarov <vmakarov@redhat.com> 5673 5674 PR target/85860 5675 * lra-constraints.c (inherit_in_ebb): Update 5676 potential_reload_hard_regs along with live_hard_regs. 5677 56782019-03-14 Richard Biener <rguenther@suse.de> 5679 5680 Backport from mainline 5681 2019-03-13 Richard Biener <rguenther@suse.de> 5682 5683 PR middle-end/89677 5684 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not 5685 throw FP expressions at tree-affine. 5686 5687 2019-03-01 Richard Biener <rguenther@suse.de> 5688 5689 PR middle-end/89497 5690 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags 5691 argument, defaulted to zero. 5692 * passes.c (execute_function_todo): Pass down SSA update flags 5693 to cleanup_tree_cfg. 5694 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. 5695 (cleanup_tree_cfg_1): After cleanup_control_flow_pre update SSA 5696 form if requested. 5697 (cleanup_tree_cfg_noloop): Pass down SSA update flags. 5698 (cleanup_tree_cfg): Get and pass down SSA update flags. 5699 5700 2019-02-18 Richard Biener <rguenther@suse.de> 5701 5702 PR tree-optimization/89296 5703 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting 5704 of no-warning flag to cases that might emit the bogus warning. 5705 57062019-03-13 Andreas Krebbel <krebbel@linux.ibm.com> 5707 5708 Backport from mainline 5709 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com> 5710 5711 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not 5712 only on the else branch. 5713 57142019-03-13 Andreas Krebbel <krebbel@linux.ibm.com> 5715 5716 Backport from mainline 5717 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com> 5718 5719 * config/s390/s390-builtin-types.def: Add new types. 5720 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2) 5721 (s390_vec_xlw4): Make the memory operand into a const pointer. 5722 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision 5723 float. 5724 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate 5725 a new vector type with the alignment of the scalar memory operand. 5726 57272019-03-12 Richard Biener <rguenther@suse.de> 5728 5729 PR tree-optimization/89664 5730 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly 5731 free the occurance tree after the early out. 5732 57332019-03-12 Andre Vieira <andre.simoesdiasvieira@arm.com> 5734 5735 Backport from mainline 5736 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> 5737 5738 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE 5739 requirement. 5740 57412019-03-11 Eric Botcazou <ebotcazou@adacore.com> 5742 5743 PR rtl-optimization/89588 5744 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for 5745 explicit unrolling factor more robust. 5746 57472019-03-11 Martin Liska <mliska@suse.cz> 5748 5749 Backport from mainline 5750 2019-03-08 Martin Liska <mliska@suse.cz> 5751 5752 PR target/86952 5753 * config/i386/i386.c (ix86_option_override_internal): Disable 5754 jump tables when retpolines are used. 5755 57562019-03-11 Martin Liska <mliska@suse.cz> 5757 5758 Backport from mainline 5759 2019-02-11 David Malcolm <dmalcolm@redhat.com> 5760 5761 PR lto/88147 5762 * input.c (selftest::test_line_offset_overflow): New selftest. 5763 (selftest::input_c_tests): Call it. 5764 57652019-03-08 Martin Jambor <mjambor@suse.cz> 5766 5767 Backport from mainline 5768 2019-03-07 Martin Jambor <mjambor@suse.cz> 5769 5770 PR ipa/88235 5771 * cgraph.h (cgraph_node): New inline method former_thunk_p. 5772 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. 5773 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they 5774 have multiple callees. At the end check if declarations match as 5775 opposed to cgraph_nodes. 5776 57772019-03-06 Tamar Christina <tamar.christina@arm.com> 5778 5779 Backport from trunk. 5780 2019-02-25 Tamar Christina <tamar.christina@arm.com> 5781 5782 PR target/88530 5783 * common/config/aarch64/aarch64-common.c 5784 (struct aarch64_option_extension): Add is_synthetic. 5785 (all_extensions): Use it. 5786 (TARGET_OPTION_INIT_STRUCT): Define hook. 5787 (struct gcc_targetm_common): Moved to end. 5788 (all_extensions_by_on): New. 5789 (opt_ext_cmp, typedef opt_ext): New. 5790 (aarch64_option_init_struct): New. 5791 (aarch64_contains_opt): New. 5792 (aarch64_get_extension_string_for_isa_flags): Output smallest set. 5793 * config/aarch64/aarch64-option-extensions.def 5794 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. 5795 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, 5796 sm4, fp16fml, sve): 5797 Set is_synthetic to false. 5798 (crypto): Set is_synthetic to true. 5799 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add 5800 SYNTHETIC. 5801 58022019-03-06 Tamar Christina <tamar.christina@arm.com> 5803 5804 Backport from trunk. 5805 2019-02-28 Tamar Christina <tamar.christina@arm.com> 5806 5807 PR target/88530 5808 * config/aarch64/aarch64-option-extensions.def: Document it. 5809 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature 5810 if empty hwcaps. 5811 58122019-03-06 Xiong Hu Luo <luoxhu@linux.ibm.com> 5813 5814 Backport of r268834 from mainline to gcc-8-branch. 5815 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> 5816 5817 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be, 5818 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines. 5819 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator. 5820 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns. 5821 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1. 5822 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE): 5823 New BU_CRYPTO_2. 5824 * config/rs6000/rs6000.c (builtin_function_type) 5825 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE, 5826 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE, 5827 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options. 5828 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, 5829 vec_ncipher_be, vec_ncipherlast_be): New builtin functions. 5830 58312019-03-05 Richard Biener <rguenther@suse.de> 5832 5833 Backport from mainline 5834 2019-02-26 Richard Biener <rguenther@suse.de> 5835 5836 PR tree-optimization/89505 5837 * tree-ssa-structalias.c (compute_dependence_clique): Make sure 5838 to handle restrict pointed-to vars with multiple subvars 5839 correctly. 5840 58412019-03-01 Tamar Christina <tamar.christina@arm.com> 5842 5843 PR target/89517 5844 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, 5845 fp16): Collapse line. 5846 58472019-03-01 Richard Biener <rguenther@suse.de> 5848 5849 Backport from mainline 5850 2019-03-01 Jakub Jelinek <jakub@redhat.com> 5851 5852 PR bootstrap/89539 5853 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to 5854 early_lto_debug argument. 5855 5856 2019-02-27 Richard Biener <rguenther@suse.de> 5857 5858 PR debug/88878 5859 * dwarf2out.c (use_debug_types): Disable when in_lto_p. 5860 5861 2019-02-27 Richard Biener <rguenther@suse.de> 5862 5863 PR debug/88878 5864 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug 5865 parameter, prefix section name with .gnu.debuglto_ if true. 5866 (dwarf2out_finish): Pass false to output_comdat_type_unit. 5867 (dwarf2out_early_finish): Pass true to output_comdat_type_unit. 5868 5869 2019-02-27 Richard Biener <rguenther@suse.de> 5870 5871 PR debug/89514 5872 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p 5873 rather than on use_debug_types, doing what output_die does. 5874 (value_format): Likewise. 5875 58762019-02-28 Eric Botcazou <ebotcazou@adacore.com> 5877 5878 PR tree-optimization/89536 5879 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test 5880 only whether bit #0 of the value is 0 instead of the entire value. 5881 58822019-02-28 Li Jia He <helijia@linux.ibm.com> 5883 5884 Backport from trunk 5885 2019-02-20 Li Jia He <helijia@linux.ibm.com> 5886 5887 PR target/88100 5888 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) 5889 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH, 5890 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before 5891 range checking it. 5892 58932019-02-27 Uroš Bizjak <ubizjak@gmail.com> 5894 5895 PR target/89397 5896 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check 5897 TARGET_SSE in addition to TARGET_SSE_MATH. 5898 5899 (ix86_excess_precision): Ditto. 5900 (ix86_float_exceptions_rounding_supported_p): Ditto. 5901 (use_rsqrt_p): Ditto. 5902 * config/i386/sse.md (rsqrt<mode>2): Ditto. 5903 59042019-02-27 Jakub Jelinek <jakub@redhat.com> 5905 5906 Backported from mainline 5907 2019-02-18 Jakub Jelinek <jakub@redhat.com> 5908 5909 PR target/89361 5910 * config/s390/s390.c (s390_indirect_branch_attrvalue, 5911 s390_indirect_branch_settings): Define unconditionally. 5912 (s390_set_current_function): Likewise, but guard the whole body except 5913 the s390_indirect_branch_settings call with 5914 #if S390_USE_TARGET_ATTRIBUTE. 5915 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. 5916 59172019-02-26 Eric Botcazou <ebotcazou@adacore.com> 5918 5919 Backport from mainline 5920 2019-02-19 Eric Botcazou <ebotcazou@adacore.com> 5921 5922 * rtlanal.c (get_initial_register_offset): Fall back to the estimate 5923 as long as the epilogue isn't completed. 5924 59252019-02-26 Eric Botcazou <ebotcazou@adacore.com> 5926 5927 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix 5928 and move around comment. 5929 <BIT_AND_EXPR>: Likewise. 5930 <BIT_NOT_EXPR>: Add specific handling for boolean types. 5931 59322019-02-24 Alan Modra <amodra@gmail.com> 5933 5934 PR target/89271 5935 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int 5936 output reg on add insn. 5937 (<bd>tf_<mode> split): Likewise. Match predicates with insn. 5938 59392019-02-22 Jakub Jelinek <jakub@redhat.com> 5940 5941 * BASE-VER: Set to 8.3.1. 5942 59432019-02-22 Release Manager 5944 5945 * GCC 8.3.0 released. 5946 59472019-02-15 Richard Biener <rguenther@suse.de> 5948 Jakub Jelinek <jakub@redhat.com> 5949 5950 PR tree-optimization/89278 5951 * tree-loop-distribution.c: Include tree-eh.h. 5952 (generate_memset_builtin, generate_memcpy_builtin): Call 5953 rewrite_to_non_trapping_overflow on builtin->size before passing it 5954 to force_gimple_operand_gsi. 5955 59562019-02-15 Jakub Jelinek <jakub@redhat.com> 5957 5958 PR other/89342 5959 * optc-save-gen.awk: Handle optimize_fast like optimize_size or 5960 optimize_debug. 5961 * opth-gen.awk: Likewise. 5962 59632019-02-14 David Malcolm <dmalcolm@redhat.com> 5964 5965 Backport of r267957 from trunk. 5966 2019-01-15 David Malcolm <dmalcolm@redhat.com> 5967 5968 PR c++/88795 5969 * tree.c (build_function_type): Assert that arg_types is not 5970 error_mark_node. 5971 59722019-02-14 Jakub Jelinek <jakub@redhat.com> 5973 5974 PR rtl-optimization/89354 5975 * combine.c (make_extraction): Punt if extraction_mode is narrower 5976 than len bits. 5977 59782019-02-14 David Malcolm <dmalcolm@redhat.com> 5979 5980 Backport of r263339 from trunk. 5981 2018-08-06 David Malcolm <dmalcolm@redhat.com> 5982 5983 * function-tests.c (selftest::test_expansion_to_rtl): Call 5984 free_after_compilation. 5985 59862019-02-14 David Malcolm <dmalcolm@redhat.com> 5987 5988 Backport of r263295 from trunk. 5989 2018-08-03 David Malcolm <dmalcolm@redhat.com> 5990 5991 * doc/gcov.texi (-x): Remove duplicate "to". 5992 * doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls". 5993 (-Wif-not-aligned): Remove duplicate "is". 5994 (-flto): Remove duplicate "the". 5995 (MicroBlaze Options): In examples of "-mcpu=cpu-type", remove 5996 duplicate "v5.00.b". 5997 (MSP430 Options): Remove duplicate "and" from the description 5998 of "-mgprel-sec=regexp". 5999 (x86 Options): Remove duplicate copies of "vmldLog102" and 6000 vmlsLog104 from description of "-mveclibabi=type". 6001 60022019-02-14 David Malcolm <dmalcolm@redhat.com> 6003 6004 Backport of r263275 from trunk. 6005 2018-08-02 David Malcolm <dmalcolm@redhat.com> 6006 6007 * diagnostic-show-locus.c (diagnostic_show_locus): Use 6008 pp_take_prefix when saving the existing prefix. 6009 * diagnostic.c (diagnostic_append_note): Likewise. 6010 * langhooks.c (lhd_print_error_function): Likewise. 6011 * pretty-print.c (pp_set_prefix): Drop the "const" from "prefix" 6012 param's type. Free the existing prefix. 6013 (pp_take_prefix): New function. 6014 (pretty_printer::pretty_printer): Drop the prefix parameter. 6015 Rename the length parameter to match the comment. 6016 (pretty_printer::~pretty_printer): Free the prefix. 6017 * pretty-print.h (pretty_printer::pretty_printer): Drop the prefix 6018 parameter. 6019 (struct pretty_printer): Drop the "const" from "prefix" field's 6020 type and clarify memory management. 6021 (pp_set_prefix): Drop the "const" from the 2nd param. 6022 (pp_take_prefix): New decl. 6023 60242019-02-14 Segher Boessenkool <segher@kernel.crashing.org> 6025 6026 Backport from trunk 6027 2018-08-31 Segher Boessenkool <segher@kernel.crashing.org> 6028 6029 PR target/86684 6030 PR target/87149 6031 * config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND. 6032 60332019-02-14 Segher Boessenkool <segher@kernel.crashing.org> 6034 6035 Backport from trunk 6036 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org> 6037 6038 PR target/88892 6039 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register 6040 operands. 6041 60422019-02-14 Segher Boessenkool <segher@kernel.crashing.org> 6043 6044 Backport from trunk 6045 2018-07-26 Segher Boessenkool <segher@kernel.crashing.org> 6046 6047 PR rtl-optimization/85805 6048 * combine.c (reg_nonzero_bits_for_combine): Only use the last set 6049 value for hard registers if that was written in the same mode. 6050 60512019-02-14 Martin Liska <mliska@suse.cz> 6052 6053 Backport from mainline 6054 2019-02-14 Martin Liska <mliska@suse.cz> 6055 6056 PR rtl-optimization/89242 6057 * dce.c (delete_unmarked_insns): Call free_dominance_info we 6058 process a transformation. 6059 60602019-02-14 Martin Liska <mliska@suse.cz> 6061 6062 Backport from mainline 6063 2019-02-13 Martin Liska <mliska@suse.cz> 6064 6065 PR lto/88858 6066 * cfgrtl.c (remove_barriers_from_footer): New function. 6067 (try_redirect_by_replacing_jump): Use it. 6068 (cfg_layout_redirect_edge_and_branch): Likewise. 6069 60702019-02-14 Martin Liska <mliska@suse.cz> 6071 6072 Backport from mainline 6073 2019-02-11 Martin Liska <mliska@suse.cz> 6074 6075 PR ipa/89009 6076 * ipa-cp.c (build_toporder_info): Remove usage of a param. 6077 * ipa-inline.c (inline_small_functions): Likewise. 6078 * ipa-pure-const.c (propagate_pure_const): Likewise. 6079 (propagate_nothrow): Likewise. 6080 * ipa-reference.c (propagate): Likewise. 6081 * ipa-utils.c (struct searchc_env): Remove unused field. 6082 (searchc): Always search across AVAIL_INTERPOSABLE. 6083 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as 6084 the only called IPA pure const can properly not propagate 6085 across interposable boundary. 6086 * ipa-utils.h (ipa_reduced_postorder): Remove param. 6087 60882019-02-14 Jakub Jelinek <jakub@redhat.com> 6089 6090 PR tree-optimization/89314 6091 * fold-const.c (fold_binary_loc): Cast strlen argument to 6092 const char * before dereferencing it. Formatting fixes. 6093 6094 Backported from mainline 6095 2019-02-13 Jakub Jelinek <jakub@redhat.com> 6096 6097 PR middle-end/89303 6098 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var 6099 into pt->vars_contains_escaped_heap instead of setting 6100 pt->vars_contains_escaped_heap to it. 6101 6102 PR middle-end/89281 6103 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of 6104 INTVAL (size), compare it to GET_MODE_MASK instead of 6105 1 << GET_MODE_BITSIZE. 6106 6107 PR target/89290 6108 * config/i386/predicates.md (x86_64_immediate_operand): Allow 6109 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with 6110 -mcmodel=large. 6111 6112 2019-02-09 Jakub Jelinek <jakub@redhat.com> 6113 6114 PR middle-end/89246 6115 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 6116 If !node->definition and TYPE_ARG_TYPES is non-NULL, use 6117 TYPE_ARG_TYPES instead of DECL_ARGUMENTS. 6118 61192019-02-13 Bill Schmidt <wschmidt@linux.ibm.com> 6120 6121 Backport from mainline 6122 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com> 6123 6124 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right 6125 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR 6126 for correct semantics. 6127 61282019-02-13 Richard Biener <rguenther@suse.de> 6129 6130 Backport from mainline 6131 2019-01-08 Richard Biener <rguenther@suse.de> 6132 6133 PR tree-optimization/86554 6134 * tree-ssa-sccvn.c (visit_nary_op): When value-numbering to 6135 expressions with different overflow behavior make sure there's an 6136 available expression on the path. 6137 61382019-02-13 Martin Liska <mliska@suse.cz> 6139 6140 PR lto/89260 6141 * lto-streamer.h (LTO_minor_version): Bump version due 6142 to r268698. 6143 61442019-02-13 Richard Biener <rguenther@suse.de> 6145 6146 Backport from mainline 6147 2019-02-12 Richard Biener <rguenther@suse.de> 6148 6149 PR tree-optimization/89253 6150 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can 6151 duplicate the loop. 6152 6153 2019-02-08 Richard Biener <rguenther@suse.de> 6154 6155 PR middle-end/89223 6156 * tree-data-ref.c (initialize_matrix_A): Fail if constant 6157 doesn't fit in HWI. 6158 (analyze_subscript_affine_affine): Handle failure from 6159 initialize_matrix_A. 6160 6161 2019-01-28 Richard Biener <rguenther@suse.de> 6162 6163 PR tree-optimization/88739 6164 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating 6165 BIT_FIELD_REFs of non-mode-precision integral operands. 6166 61672019-02-12 Jan Hubicka <hubicka@ucw.cz> 6168 6169 Backport from mainline: 6170 2019-02-09 Jan Hubicka <hubicka@ucw.cz> 6171 6172 * ipa-visibility.c (localize_node): Also do not localize 6173 LDPR_PREVAILING_DEF_IRONLY_EXP. 6174 61752019-02-11 Stefan Agner <stefan@agner.ch> 6176 6177 Backport from mainline. 6178 2019-01-10 Stefan Agner <stefan@agner.ch> 6179 6180 PR target/88648 6181 * config/arm/arm.c (arm_option_override_internal): Force 6182 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P. 6183 61842019-02-09 Jan Hubicka <hubicka@ucw.cz> 6185 6186 Backport from mainline: 6187 2019-01-05 Jan Hubicka <hubicka@ucw.cz> 6188 6189 PR tree-opt/86020 6190 Revert: 6191 2017-05-22 Jan Hubicka <hubicka@ucw.cz> 6192 6193 * ipa-inline.c (edge_badness): Use inlined_time instead of 6194 inline_summaries->get. 6195 61962019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com> 6197 6198 Backported from mainline 6199 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> 6200 6201 PR target/89112 6202 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label 6203 for the long branch case. 6204 6205 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> 6206 6207 PR target/89112 6208 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, 6209 expand_compare_loop, expand_block_compare_gpr, 6210 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert 6211 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add 6212 #include "profile-count.h" and "predict.h" for types and functions 6213 needed to work with REG_BR_PROB notes. 6214 6215 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com> 6216 6217 * config/rs6000/rs6000-string.c (expand_compare_loop, 6218 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of 6219 memcmp/strncmp. 6220 62212019-02-09 Jakub Jelinek <jakub@redhat.com> 6222 6223 Backported from mainline 6224 2019-01-16 David Malcolm <dmalcolm@redhat.com> 6225 6226 PR target/88861 6227 * combine.c (delete_noop_moves): Convert to "bool" return, 6228 returning true if any edges are eliminated. 6229 (combine_instructions): Also return true if delete_noop_moves 6230 returns true. 6231 6232 2019-02-08 Jakub Jelinek <jakub@redhat.com> 6233 6234 PR rtl-optimization/89234 6235 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn 6236 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P. 6237 (copy_reg_eh_region_note_backward): Likewise. 6238 62392019-02-09 Alan Modra <amodra@gmail.com> 6240 6241 PR target/88343 6242 * config/rs6000/rs6000.c (save_reg_p): Match logic in 6243 rs6000_emit_prologue emitting pic_offset_table setup. 6244 62452019-02-08 Richard Biener <rguenther@suse.de> 6246 6247 Backport from mainline 6248 2018-11-13 Richard Biener <rguenther@suse.de> 6249 6250 PR tree-optimization/86991 6251 * tree-vect-loop.c (vect_is_slp_reduction): Delay reduction 6252 group building until we have successfully detected the SLP 6253 reduction. 6254 (vect_is_simple_reduction): Remove fixup code here. 6255 62562019-02-08 Richard Biener <rguenther@suse.de> 6257 6258 Backport from mainline 6259 2019-02-03 Richard Biener <rguenther@suse.de> 6260 6261 PR debug/87295 6262 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as 6263 orig. 6264 6265 2019-01-29 Richard Biener <rguenther@suse.de> 6266 6267 PR debug/87295 6268 * dwarf2out.c (collect_skeleton_dies): New helper. 6269 (copy_decls_for_unworthy_types): Call it. 6270 (build_abbrev_table): Do not try to replace 6271 DW_AT_signature refs with local refs. 6272 6273 2019-01-17 Richard Biener <rguenther@suse.de> 6274 6275 PR lto/86736 6276 * dwarf2out.c (want_pubnames): Never generate pubnames sections 6277 and friends for the LTO part of debug info. 6278 6279 2019-01-24 Richard Biener <rguenther@suse.de> 6280 6281 PR lto/87187 6282 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): 6283 When in "legacy" debug mode make sure to reset self-origins. 6284 6285 2019-01-15 Richard Biener <rguenther@suse.de> 6286 6287 PR debug/88046 6288 * dwarf2out.c (gen_member_die): Do not generate inheritance 6289 DIEs late. 6290 6291 2018-11-22 Richard Biener <rguenther@suse.de> 6292 6293 PR lto/87229 6294 PR lto/88112 6295 * lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs 6296 which can appear in size expressions. 6297 * tree-streamer-in.c (unpack_ts_base_value_fields): Stream 6298 CALL_EXPR_BY_DESCRIPTOR. 6299 (streamer_read_tree_bitfields): Stream CALL_EXPR_IFN. 6300 * tree-streamer-out.c (pack_ts_base_value_fields): Stream 6301 CALL_EXPR_BY_DESCRIPTOR. 6302 (streamer_write_tree_bitfields): Stream CALL_EXPR_IFN. 6303 63042019-02-08 Christophe Lyon <christophe.lyon@linaro.org> 6305 6306 Backport from mainline 6307 2019-01-07 Christophe Lyon <christophe.lyon@linaro.org> 6308 6309 PR target/85596 6310 * doc/install.texi (with-multilib-list): Document for aarch64. 6311 63122019-02-08 Richard Biener <rguenther@suse.de> 6313 6314 Backport from mainline 6315 2018-12-10 Richard Biener <rguenther@suse.de> 6316 6317 PR tree-optimization/88427 6318 * vr-values.c (vr_values::extract_range_from_phi_node): 6319 Handle symbolic ranges conservatively when trying to drop 6320 to Inf +- 1. 6321 6322 2018-11-28 Richard Biener <rguenther@suse.de> 6323 6324 PR tree-optimization/88217 6325 * vr-values.c (vr_values::extract_range_from_phi_node): Make 6326 sure to handle results > +INF and < -INF correctly when 6327 trying to drop down to +INF - 1 or -INF + 1. 6328 6329 2018-11-23 Richard Biener <rguenther@suse.de> 6330 6331 PR tree-optimization/88149 6332 * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect 6333 the case where there are two different def types for the 6334 same operand at different operand position in the same stmt. 6335 63362019-02-07 Jakub Jelinek <jakub@redhat.com> 6337 6338 Backported from mainline 6339 2019-02-05 Jakub Jelinek <jakub@redhat.com> 6340 6341 PR target/89188 6342 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they 6343 can throw, non-call exceptions are enabled and we can't delete 6344 dead exceptions or alter cfg. Set must_clean if 6345 delete_insn_and_edges returns true, don't set it blindly for calls. 6346 6347 PR rtl-optimization/89195 6348 * combine.c (make_extraction): For MEMs, don't extract bytes outside 6349 of the original MEM. 6350 6351 PR target/89186 6352 * optabs.c (prepare_cmp_insn): Pass x and y to 6353 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0). 6354 6355 2019-02-02 Jakub Jelinek <jakub@redhat.com> 6356 6357 PR middle-end/87887 6358 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 6359 Punt with warning on aggregate return or argument types. Ignore 6360 type/mode checking for uniform arguments. 6361 6362 2019-02-01 Jakub Jelinek <jakub@redhat.com> 6363 6364 PR tree-optimization/88107 6365 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument, 6366 instead of assertion that eh_region_outermost is non-NULL, if it 6367 is NULL, set *ALL to true and return NULL. 6368 (move_sese_region_to_fn): Adjust caller, if all is set, call 6369 duplicate_eh_regions with NULL region. 6370 6371 2019-01-31 Jakub Jelinek <jakub@redhat.com> 6372 6373 PR sanitizer/89124 6374 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining 6375 always_inline callees into no_sanitize_address callers. 6376 6377 2019-01-30 Jakub Jelinek <jakub@redhat.com> 6378 6379 PR c++/89105 6380 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn 6381 for arguments to functions that are TU-local and shouldn't be 6382 referenced by assembly. 6383 6384 2019-01-29 Jakub Jelinek <jakub@redhat.com> 6385 6386 PR c++/66676 6387 PR ipa/89104 6388 * omp-simd-clone.c (simd_clone_clauses_extract) 6389 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL 6390 OMP_CLAUSE_ALIGNED_ALIGNMENT. 6391 6392 2019-01-28 Jakub Jelinek <jakub@redhat.com> 6393 6394 PR middle-end/89002 6395 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ 6396 for lastprivate/linear IV, push gimplify context around gimplify_assign 6397 and, if it needed any temporaries, pop it into a gimple bind around the 6398 sequence. 6399 6400 PR target/89073 6401 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx, 6402 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document 6403 x86 ISA options. 6404 (bmi2): Add missing @opindex. 6405 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3 6406 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2, 6407 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd, 6408 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi, 6409 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2, 6410 clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase, 6411 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig, 6412 pku, prefetchwt1, prfchw, rdpid, rdrnd, rdseed, rtm, sahf, 6413 sgx, sha, shstk, tbm, vaes, vpclmulqdq, wbnoinvd, xsave, 6414 xsavec, xsaveopt and xsaves options. 6415 6416 2019-01-27 Jakub Jelinek <jakub@redhat.com> 6417 6418 PR target/87214 6419 * config/i386/sse.md 6420 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>, 6421 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the 6422 first constants in pairs are multiples of 2. Formatting fixes. 6423 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>, 6424 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the 6425 first constants in each quadruple are multiples of 4. Formatting fixes. 6426 6427 2019-01-24 Jakub Jelinek <jakub@redhat.com> 6428 6429 PR tree-optimization/88964 6430 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also 6431 punt if HONOR_SNANS (chrec). 6432 6433 2019-01-23 Jakub Jelinek <jakub@redhat.com> 6434 6435 PR tree-optimization/88964 6436 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use 6437 build_zero_cst instead of build_int_cst. Return false for loop 6438 invariants which honor signed zeros. 6439 6440 2019-01-22 Jakub Jelinek <jakub@redhat.com> 6441 6442 PR target/88965 6443 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h. 6444 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy 6445 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first. 6446 6447 PR middle-end/88968 6448 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with 6449 non-integral DECL_BIT_FIELD_REPRESENTATIVEs. 6450 6451 PR target/88905 6452 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of 6453 GET_MODE (op0). 6454 (expand_binop_directly, expand_doubleword_clz, 6455 expand_doubleword_popcount, expand_ctz, expand_ffs, 6456 expand_unop_direct, maybe_emit_unop_insn): Adjust callers. 6457 6458 PR rtl-optimization/49429 6459 PR target/49454 6460 PR rtl-optimization/86334 6461 PR target/88906 6462 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs 6463 addressable from here... 6464 (emit_block_op_via_libcall): ... to here. 6465 6466 2019-01-17 Jakub Jelinek <jakub@redhat.com> 6467 6468 PR target/88734 6469 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace 6470 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of 6471 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics. 6472 6473 PR rtl-optimization/88870 6474 * dce.c (deletable_insn_p): Never delete const/pure calls that can 6475 throw if we can't alter the cfg or delete dead exceptions. 6476 (mark_insn): Don't call find_call_stack_args for such calls. 6477 6478 2019-01-11 Jakub Jelinek <jakub@redhat.com> 6479 6480 PR bootstrap/88714 6481 * passes.c (finish_optimization_passes): Call print_combine_total_stats 6482 inside of pass_combine_1 dump rather than pass_profile_1. 6483 6484 2019-01-10 Jakub Jelinek <jakub@redhat.com> 6485 6486 PR c/88568 6487 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting 6488 DECL_EXTERNAL. 6489 6490 2019-01-07 Jakub Jelinek <jakub@redhat.com> 6491 6492 PR debug/88723 6493 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to 6494 const_not_ok_for_debug_p target hook. 6495 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1 6496 on UNSPEC and subexpressions thereof if all subexpressions of the 6497 UNSPEC are CONSTANT_P. 6498 6499 2019-01-05 Jakub Jelinek <jakub@redhat.com> 6500 6501 PR debug/88635 6502 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains 6503 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument. 6504 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in 6505 subexpressions of both operands. 6506 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the 6507 subrtxes are CONSTANT_P. 6508 65092019-02-07 Richard Biener <rguenther@suse.de> 6510 6511 Backport from mainline 6512 2018-11-20 Richard Biener <rguenther@suse.de> 6513 6514 PR tree-optimization/88105 6515 * tree-ssa-dom.c (pass_dominator::execute): Do not walk 6516 backedges. 6517 6518 2018-11-28 Richard Biener <rguenther@suse.de> 6519 6520 PR tree-optimization/88223 6521 * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping 6522 over a stored-same value may-alias store make sure to consider 6523 partial overlaps which are valid when TBAA reasonings do not 6524 apply and byte-granular overlaps are possible at all. 6525 65262019-02-07 Richard Biener <rguenther@suse.de> 6527 6528 Backport from mainline 6529 2018-12-11 Richard Biener <rguenther@suse.de> 6530 6531 PR middle-end/88448 6532 PR middle-end/88415 6533 * tree-complex.c (update_complex_assignment): Properly transfer 6534 or clean EH info around gimple_assign_set_rhs_with_ops. 6535 6536 2018-11-15 Richard Biener <rguenther@suse.de> 6537 6538 PR tree-optimization/88030 6539 * tree-complex.c (need_eh_cleanup): New global. 6540 (update_complex_assignment): Mark blocks that need EH update. 6541 (expand_complex_comparison): Likewise. 6542 (tree_lower_complex): Allocate and deallocate need_eh_cleanup, 6543 perform EH cleanup and schedule CFG cleanup if that did anything. 6544 6545 2018-11-08 Richard Biener <rguenther@suse.de> 6546 6547 PR tree-optimization/87929 6548 * tree-complex.c (expand_complex_comparison): Clean EH. 6549 65502019-02-06 Eric Botcazou <ebotcazou@adacore.com> 6551 6552 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage 6553 after restoring registers saved to allocate the frame on Windows. 6554 65552019-02-06 Richard Biener <rguenther@suse.de> 6556 6557 Backport from mainline 6558 2019-01-31 Richard Biener <rguenther@suse.de> 6559 6560 PR tree-optimization/89135 6561 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks 6562 with abnormal preds. 6563 6564 2019-01-18 Richard Biener <rguenther@suse.de> 6565 6566 PR tree-optimization/88903 6567 * tree-vect-stmts.c (vectorizable_shift): Verify we see all 6568 scalar stmts a SLP shift amount is composed of when detecting 6569 shifts by scalars. 6570 65712019-02-05 Kelvin Nilsen <kelvin@gcc.gnu.org> 6572 6573 Backport from mainline. 6574 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org> 6575 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin): 6576 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to 6577 type of vector element when vec_extract is implemented by direct 6578 move. 6579 65802019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> 6581 6582 Backport from mainline 6583 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> 6584 6585 PR target/88856 6586 * config/s390/s390.md: Remove load and test FP splitter. 6587 65882019-02-04 Bill Schmidt <wshmidt@linux.ibm.com> 6589 6590 PR target/87064 6591 Backport from mainline 6592 6593 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com> 6594 6595 PR target/87064 6596 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): 6597 Disable for little-endian. 6598 6599 2019-01-22 Jakub Jelinek <jakub@redhat.com> 6600 6601 PR target/87064 6602 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar): 6603 Disable for little endian. 6604 66052019-02-04 Eric Botcazou <ebotcazou@adacore.com> 6606 6607 * config/sparc/sparc.h: Remove superfluous blank lines. 6608 * config/sparc/sparc.c (global_offset_table_rtx): Rename into... 6609 (got_register_rtx): ...this. 6610 (sparc_got): Adjust to above renaming. 6611 (sparc_tls_got): Likewise. 6612 (sparc_output_mi_thunk): Likewise. 6613 (sparc_init_pic_reg): Likewise. 6614 (save_local_or_in_reg_p): Fix test on the GOT register. 6615 (USE_HIDDEN_LINKONCE): Move around. 6616 (get_pc_thunk_name): Likewise. 6617 (gen_load_pcrel_sym): Likewise. 6618 (load_got_register): Likewise. 6619 66202019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> 6621 6622 Backport from mainline 6623 2018-10-15 Bin Cheng <bin.cheng@linux.alibaba.com> 6624 6625 PR tree-optimization/87022 6626 * tree-loop-distribution.c (pg_add_dependence_edges): Check all 6627 bits in dist vector rather than the first one. 6628 66292019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> 6630 6631 Backport from mainline 6632 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> 6633 6634 PR tree-optimization/88932 6635 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order. 6636 66372018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> 6638 6639 Backport from mainline 6640 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> 6641 6642 PR tree-optimization/89008 6643 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't 6644 process anything of the form X * 0. 6645 66462019-01-31 Richard Biener <rguenther@suse.de> 6647 6648 Backport from mainline 6649 2019-01-31 Richard Biener <rguenther@suse.de> 6650 6651 PR rtl-optimization/89115 6652 * lra.c (lra_rtx_hash): Properly hash CONST_INT values. 6653 6654 2019-01-30 Richard Biener <rguenther@suse.de> 6655 6656 PR rtl-optimization/89115 6657 * opts.c (default_options_optimization): Reduce 6658 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1. 6659 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative 6660 to the default. 6661 66622019-01-30 Kewen Lin <linkw@gcc.gnu.org> 6663 6664 Backport from mainline. 6665 2019-01-17 Kewen Lin <linkw@gcc.gnu.org> 6666 6667 * doc/extend.texi: Add four new prototypes for vec_ld and seven new 6668 prototypes for vec_st. 6669 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries 6670 for scalar address type variants of altivec_vec_ld/altivec_vec_st, 6671 mainly on signed/unsigned long long and double. 6672 66732019-01-29 Vineet Gupta <vgupta@synopsys.com> 6674 6675 Backport from mainline. 6676 * gcc/config.gcc: Force .init_array for ARC. 6677 66782019-01-29 Vineet Gupta <vgupta@synopsys.com> 6679 6680 Backport from mainline. 6681 * config/arc/atomic.md: Add operand to DMB instruction. 6682 66832019-01-27 Uroš Bizjak <ubizjak@gmail.com> 6684 6685 PR target/88948 6686 * rtl.h (prepare_copy_insn): New prototype. 6687 * gcse.c (prepare_copy_insn): New function, split out from 6688 process_insert_insn. 6689 (process_insert_insn): Use prepare_copy_insn. 6690 * store-motion.c (replace_store_insn): Use prepare_copy_insn 6691 instead of gen_move_insn. 6692 66932019-01-25 Richard Biener <rguenther@suse.de> 6694 6695 PR tree-optimization/86865 6696 * graphite-scop-detection.c (scop_detection::can_represent_loop): 6697 Reject non-do-while loops. 6698 66992019-01-24 Uroš Bizjak <ubizjak@gmail.com> 6700 6701 PR target/88998 6702 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives. 6703 Disparage MMX alternative. 6704 (sse2_cvtpd2pi): Ditto. 6705 (sse2_cvttpd2pi): Ditto. 6706 67072019-01-24 Richard Earnshaw <rearnsha@arm.com> 6708 6709 PR target/88469 6710 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8 6711 force the alignment of m_val. 6712 67132019-01-24 Richard Biener <rguenther@suse.de> 6714 6715 Backport from mainline 6716 2019-01-23 Richard Biener <rguenther@suse.de> 6717 6718 PR tree-optimization/89008 6719 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do 6720 not leave another stray operand. 6721 67222019-01-22 Uroš Bizjak <ubizjak@gmail.com> 6723 6724 PR target/88938 6725 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32, 6726 case IX86_BUILTIN_BEXTRI64]: Sanitize operands. 6727 67282019-01-18 Richard Earnshaw <rearnsha@arm.com> 6729 6730 PR target/88799 6731 * config/arm/arm-cpus.in (mp): New feature. 6732 (sec): New feature. 6733 (fgroup ARMv7ve): Add mp and sec features. 6734 (arch armv7-a): Add options to allow mp and sec extensions. 6735 (cpu generic-armv7-a): Add options to allow mp and sec extensions. 6736 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec 6737 extenstions to the base architecture. 6738 (cpu cortex-a8): Add sec extension to the base architecture. 6739 (cpu marvell-pj4): Add mp and sec extensions to the base architecture. 6740 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch 6741 variants down to the base v7-a varaint. 6742 * config/arm/t-multilib (v7_a_arch_variants): New variable. 6743 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list 6744 of permitted extensions for -march=armv7-a and for 6745 -mcpu=generic-armv7-a. 6746 67472019-01-17 Uroš Bizjak <ubizjak@gmail.com> 6748 6749 * config/alpha/alpha.c (alpha_gimplify_va_arg): 6750 Handle split indirect COMPLEX_TYPE arguments. 6751 67522019-01-17 Eric Botcazou <ebotcazou@adacore.com> 6753 6754 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace 6755 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. 6756 (stmt_uses_0_or_null_in_undefined_way): Likewise. 6757 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise. 6758 67592019-01-16 Aaron Sawdey <acsawdey@linux.ibm.com> 6760 6761 Backported from mainline 6762 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com> 6763 * config/rs6000/rs6000-string.c (expand_block_move): Don't use 6764 unaligned vsx and avoid lxvd2x/stxvd2x. 6765 (gen_lvx_v4si_move): New function. 6766 67672019-01-16 Martin Jambor <mjambor@suse.cz> 6768 6769 Backported from mainline 6770 2018-12-10 Martin Jambor <mjambor@suse.cz> 6771 6772 PR ipa/88214 6773 * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure 6774 we check pointers against pointers. 6775 67762019-01-10 Jan Hubicka <hubicka@ucw.cz> 6777 6778 Backported from mainline 6779 2018-12-27 Jan Hubicka <hubicka@ucw.cz> 6780 6781 * ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types. 6782 (polymorphic_call_target_hasher::hash): Hash it. 6783 (polymorphic_call_target_hasher::equal): Compare it. 6784 (possible_polymorphic_call_targets): Set it. 6785 * tree.c (free_lang_data): Rebuild type inheritance graph even on 6786 non-LTO path. 6787 67882019-01-03 Jan Hubicka <hubicka@ucw.cz> 6789 6790 Backported from mainline 6791 2019-01-02 Richard Biener <rguenther@suse.de> 6792 6793 PR ipa/85574 6794 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare. 6795 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New 6796 function. 6797 (sem_item_optimizer::do_congruence_step_f): Sort the congruence 6798 set after UIDs before splitting them. 6799 68002019-01-03 Jan Hubicka <hubicka@ucw.cz> 6801 6802 Backported from mainline 6803 2019-01-03 Jan Hubicka <hubicka@ucw.cz> 6804 6805 PR tree-optimization/85574 6806 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused 6807 structure. 6808 (struct ssa_equip_hash_traits): Declare. 6809 (val_ssa_equiv): Use custom hash traits using operand_equal_p. 6810 68112019-01-09 Eric Botcazou <ebotcazou@adacore.com> 6812 6813 * config/sparc/sparc.md (*tablejump_sp32): Merge into... 6814 (*tablejump_sp64): Likewise. 6815 (*tablejump<P:mode>): ...this. 6816 (*call_address_sp32): Merge into... 6817 (*call_address_sp64): Likewise. 6818 (*call_address<P:mode>): ...this. 6819 (*call_symbolic_sp32): Merge into... 6820 (*call_symbolic_sp64): Likewise. 6821 (*call_symbolic<P:mode>): ...this. 6822 (call_value): Remove constraint and add predicate. 6823 (*call_value_address_sp32): Merge into... 6824 (*call_value_address_sp64): Likewise. 6825 (*call_value_address<P:mode>): ...this. 6826 (*call_value_symbolic_sp32): Merge into... 6827 (*call_value_symbolic_sp64): Likewise. 6828 (*call_value_symbolic<P:mode>): ...this. 6829 (*sibcall_symbolic_sp32): Merge into... 6830 (*sibcall_symbolic_sp64): Likewise. 6831 (*sibcall_symbolic<P:mode>): ...this. 6832 (sibcall_value): Remove constraint and add predicate. 6833 (*sibcall_value_symbolic_sp32): Merge into... 6834 (*sibcall_value_symbolic_sp64): Likewise. 6835 (*sibcall_value_symbolic<P:mode>): ...this. 6836 (window_save): Minor tweak. 6837 (*branch_sp32): Merge into... 6838 (*branch_sp64): Likewise. 6839 (*branch<P:mode>): ...this. 6840 68412019-01-09 Eric Botcazou <ebotcazou@adacore.com> 6842 James Clarke <jrtc27@jrtc27.com> 6843 6844 PR target/84010 6845 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode 6846 consistently in TLS address generation and adjust code to the renaming 6847 of patterns. Mark calls to __tls_get_addr as const. 6848 * config/sparc/sparc.md (tgd_hi22): Turn into... 6849 (tgd_hi22<P:mode>): ...this and use Pmode throughout. 6850 (tgd_lo10): Turn into... 6851 (tgd_lo10<P:mode>): ...this and use Pmode throughout. 6852 (tgd_add32): Merge into... 6853 (tgd_add64): Likewise. 6854 (tgd_add<P:mode>): ...this and use Pmode throughout. 6855 (tldm_hi22): Turn into... 6856 (tldm_hi22<P:mode>): ...this and use Pmode throughout. 6857 (tldm_lo10): Turn into... 6858 (tldm_lo10<P:mode>): ...this and use Pmode throughout. 6859 (tldm_add32): Merge into... 6860 (tldm_add64): Likewise. 6861 (tldm_add<P:mode>): ...this and use Pmode throughout. 6862 (tldm_call32): Merge into... 6863 (tldm_call64): Likewise. 6864 (tldm_call<P:mode>): ...this and use Pmode throughout. 6865 (tldo_hix22): Turn into... 6866 (tldo_hix22<P:mode>): ...this and use Pmode throughout. 6867 (tldo_lox10): Turn into... 6868 (tldo_lox10<P:mode>): ...this and use Pmode throughout. 6869 (tldo_add32): Merge into... 6870 (tldo_add64): Likewise. 6871 (tldo_add<P:mode>): ...this and use Pmode throughout. 6872 (tie_hi22): Turn into... 6873 (tie_hi22<P:mode>): ...this and use Pmode throughout. 6874 (tie_lo10): Turn into... 6875 (tie_lo10<P:mode>): ...this and use Pmode throughout. 6876 (tie_ld64): Use DImode throughout. 6877 (tie_add32): Merge into... 6878 (tie_add64): Likewise. 6879 (tie_add<P:mode>): ...this and use Pmode throughout. 6880 (tle_hix22_sp32): Merge into... 6881 (tle_hix22_sp64): Likewise. 6882 (tle_hix22<P:mode>): ...this and use Pmode throughout. 6883 (tle_lox22_sp32): Merge into... 6884 (tle_lox22_sp64): Likewise. 6885 (tle_lox22<P:mode>): ...this and use Pmode throughout. 6886 (*tldo_ldub_sp32): Merge into... 6887 (*tldo_ldub_sp64): Likewise. 6888 (*tldo_ldub<P:mode>): ...this and use Pmode throughout. 6889 (*tldo_ldub1_sp32): Merge into... 6890 (*tldo_ldub1_sp64): Likewise. 6891 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout. 6892 (*tldo_ldub2_sp32): Merge into... 6893 (*tldo_ldub2_sp64): Likewise. 6894 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout. 6895 (*tldo_ldsb1_sp32): Merge into... 6896 (*tldo_ldsb1_sp64): Likewise. 6897 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout. 6898 (*tldo_ldsb2_sp32): Merge into... 6899 (*tldo_ldsb2_sp64): Likewise. 6900 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout. 6901 (*tldo_ldub3_sp64): Use DImode throughout. 6902 (*tldo_ldsb3_sp64): Likewise. 6903 (*tldo_lduh_sp32): Merge into... 6904 (*tldo_lduh_sp64): Likewise. 6905 (*tldo_lduh<P:mode>): ...this and use Pmode throughout. 6906 (*tldo_lduh1_sp32): Merge into... 6907 (*tldo_lduh1_sp64): Likewise. 6908 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout. 6909 (*tldo_ldsh1_sp32): Merge into... 6910 (*tldo_ldsh1_sp64): Likewise. 6911 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout. 6912 (*tldo_lduh2_sp64): Use DImode throughout. 6913 (*tldo_ldsh2_sp64): Likewise. 6914 (*tldo_lduw_sp32): Merge into... 6915 (*tldo_lduw_sp64): Likewise. 6916 (*tldo_lduw<P:mode>): ...this and use Pmode throughout. 6917 (*tldo_lduw1_sp64): Use DImode throughout. 6918 (*tldo_ldsw1_sp64): Likewise. 6919 (*tldo_ldx_sp64): Likewise. 6920 (*tldo_stb_sp32): Merge into... 6921 (*tldo_stb_sp64): Likewise. 6922 (*tldo_stb<P:mode>): ...this and use Pmode throughout. 6923 (*tldo_sth_sp32): Merge into... 6924 (*tldo_sth_sp64): Likewise. 6925 (*tldo_sth<P:mode>): ...this and use Pmode throughout. 6926 (*tldo_stw_sp32): Merge into... 6927 (*tldo_stw_sp64): Likewise. 6928 (*tldo_stw<P:mode>): ...this and use Pmode throughout. 6929 (*tldo_stx_sp64): Use DImode throughout. 6930 69312019-01-09 Eric Botcazou <ebotcazou@adacore.com> 6932 6933 * doc/invoke.texi (-Os): Add reference to -finline-functions. 6934 (-finline-functions): Remove reference to -O2, add references 6935 to -fprofile-use and -fauto-profile. 6936 69372019-01-08 Jakub Jelinek <jakub@redhat.com> 6938 6939 Backported from mainline 6940 2019-01-05 Jakub Jelinek <jakub@redhat.com> 6941 6942 PR middle-end/82564 6943 PR target/88620 6944 * expr.c (expand_assignment): For calls returning VLA structures 6945 if to_rtx is not a MEM, force it into a stack temporary. 6946 6947 2019-01-04 Jakub Jelinek <jakub@redhat.com> 6948 6949 PR target/88594 6950 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead 6951 of GET_MODE (opN) as modes of the libcall arguments. 6952 6953 2019-01-03 Jakub Jelinek <jakub@redhat.com> 6954 6955 PR debug/88644 6956 * dwarf2out.c (modified_type_die): If type is equal to sizetype, 6957 change it to qualified_type. 6958 6959 2018-12-21 Jakub Jelinek <jakub@redhat.com> 6960 6961 PR middle-end/85594 6962 PR middle-end/88553 6963 * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition 6964 if needed. 6965 (expand_omp_for_generic): Don't clobber t temporary for ordered loops. 6966 6967 PR target/88522 6968 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask, 6969 *avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask, 6970 *avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for 6971 -masm=intel. 6972 (gatherq_mode): Remove mode iterator. 6973 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead 6974 of <xtg_mode>. 6975 (*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>. 6976 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>, 6977 *avx512f_scatterdi<mode>): Use %X5 for -masm=intel. 6978 6979 PR rtl-optimization/88563 6980 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode 6981 and mode arguments to convert_modes. Likewise swap mode and word_mode 6982 arguments. Handle both arguments with VOIDmode before convert_modes 6983 of one of them. Formatting fixes. 6984 6985 2018-12-19 Jakub Jelinek <jakub@redhat.com> 6986 6987 PR target/88541 6988 * config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable 6989 for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq. 6990 6991 2018-12-14 Jakub Jelinek <jakub@redhat.com> 6992 6993 PR c++/82294 6994 PR c++/87436 6995 * expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument. 6996 * expr.c (categorize_ctor_elements_1): Likewise. Compute it like 6997 p_nz_elts, except don't multiply it by mult. Adjust recursive call. 6998 Fix up COMPLEX_CST handling. 6999 (categorize_ctor_elements): Add p_unique_nz_elts argument, initialize 7000 it and pass it through to categorize_ctor_elements_1. 7001 (mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers. 7002 * gimplify.c (gimplify_init_constructor): Likewise. Don't force 7003 ctor into readonly data section if num_unique_nonzero_elements is 7004 smaller or equal to 1/8 of num_nonzero_elements and size is >= 64 7005 bytes. 7006 7007 2018-12-13 Jakub Jelinek <jakub@redhat.com> 7008 7009 PR rtl-optimization/88470 7010 * cfgcleanup.c (outgoing_edges_match): If the function is 7011 shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake 7012 edge to EXIT, return false. 7013 7014 PR rtl-optimization/88416 7015 * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify 7016 even if !AUTO_INC_DEC. 7017 7018 2018-12-07 Jakub Jelinek <jakub@redhat.com> 7019 7020 PR target/85593 7021 * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage 7022 for functions with naked attribute. 7023 7024 2018-12-06 Jakub Jelinek <jakub@redhat.com> 7025 7026 PR target/87598 7027 * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't 7028 call output_operand_lossage on VOIDmode CONST_INTs. After 7029 output_operand_lossage do return false. 7030 7031 2018-12-05 Jakub Jelinek <jakub@redhat.com> 7032 7033 PR tree-optimization/87360 7034 * gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze 7035 data dependencies, don't return false, just continue. 7036 7037 2018-11-29 Jakub Jelinek <jakub@redhat.com> 7038 7039 PR target/88234 7040 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For 7041 vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR 7042 in unsigned_type_for instead of vector integral type where overflow 7043 doesn't wrap. 7044 7045 2018-11-26 Jakub Jelinek <jakub@redhat.com> 7046 7047 PR c++/86900 7048 * dwarf2out.c (secname_for_decl): For functions with 7049 DECL_SECTION_NAME if in_cold_section_p, try to return 7050 current_function_section's name if it is a named section. 7051 7052 2018-11-22 Jakub Jelinek <jakub@redhat.com> 7053 7054 PR target/85644 7055 PR target/86832 7056 * config/i386/i386.c (ix86_option_override_internal): Default 7057 ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET 7058 is defined. 7059 * config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>, 7060 stack_protect_test, stack_protect_test_<mode>): Use empty condition 7061 instead of TARGET_SSP_TLS_GUARD. 7062 7063 2018-11-20 Jakub Jelinek <jakub@redhat.com> 7064 7065 PR tree-optimization/87895 7066 * omp-simd-clone.c (ipa_simd_modify_function_body): When removing 7067 or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT. 7068 (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that 7069 redirects edges to EXIT to edges to incr_bb, iterate while EXIT 7070 has any preds and always use EDGE_PRED (, 0). 7071 7072 2018-11-19 Jakub Jelinek <jakub@redhat.com> 7073 7074 PR tree-optimization/88071 7075 * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead 7076 of false as last argument to gsi_remove. 7077 * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of 7078 false as last argument to gsi_replace. 7079 7080 PR debug/87039 7081 * omp-expand.c: Don't include debug.h. 7082 (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT 7083 from innermost outer parallel, task, or target that has a 7084 child_fn set, or, if there is no such outer region, use 7085 current_function_decl. Do the DECL_CONTEXT adjustment regardless of 7086 whether a suitable BLOCK is found or not. 7087 (expand_parallel_call): Don't call adjust_context_and_scope here. 7088 (grid_expand_target_grid_body): Revert 2017-01-25 changes. 7089 (expand_omp_taskreg, expand_omp_target): Likewise. Call 7090 adjust_context_and_scope. 7091 * dwarf2out.c (dwarf2out_early_global_decl): For 7092 decl_function_context recurse instead of calling dwarf2out_decl. 7093 7094 2018-11-16 Jakub Jelinek <jakub@redhat.com> 7095 7096 PR rtl-optimization/87475 7097 * cfgrtl.c (patch_jump_insn): Allow redirection failure for 7098 CROSSING_JUMP_P insns. 7099 (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. 7100 7101 2018-11-15 Jakub Jelinek <jakub@redhat.com> 7102 7103 PR rtl-optimization/88018 7104 * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge 7105 on the presence of fallthru edge, rather than if it is a USE or not. 7106 7107 2018-11-13 Jakub Jelinek <jakub@redhat.com> 7108 7109 PR tree-optimization/87898 7110 * omp-simd-clone.c (ipa_simd_modify_function_body): Remove debug stmts 7111 where the first argument was changed into a non-decl. 7112 71132019-01-03 Jan Hubicka <hubicka@ucw.cz> 7114 7115 Backport from mainline 7116 2019-01-02 Jan Hubicka <hubicka@ucw.cz> 7117 7118 PR lto/88130 7119 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return 7120 false at WPA time when body was removed. 7121 71222019-01-03 Jan Hubicka <hubicka@ucw.cz> 7123 7124 Backport from mainline 7125 2018-08-29 Jan Hubicka <jh@suse.cz> 7126 7127 PR lto/86517 7128 PR lto/88185 7129 * lto-opts.c (lto_write_options): Always stream PIC/PIE mode. 7130 * lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE. 7131 71322019-01-04 Aaron Sawdey <acsawdey@linux.ibm.com> 7133 7134 Backport from mainline 7135 2018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> 7136 7137 * config/rs6000/rs6000-string.c (expand_block_clear): Change how 7138 we determine if unaligned vsx is ok. 7139 71402019-01-03 Jan Hubicka <hubicka@ucw.cz> 7141 7142 Backport from mainline 7143 2019-01-03 Jan Hubicka <hubicka@ucw.cz> 7144 7145 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ... 7146 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases. 7147 71482019-01-03 Martin Liska <mliska@suse.cz> 7149 7150 Backport from mainline 7151 2019-01-01 Jan Hubicka <hubicka@ucw.cz> 7152 7153 * coverage.c (get_coverage_counts): Use current_function_decl. 7154 * profile.c (read_thunk_profile): New function. 7155 (branch_prob): Add THUNK parameter. 7156 * tree-profile.c (tree_profiling): Handle thunks. 7157 * value-prof.c (init_node_map): Handle thunks. 7158 * value-prof.h (branch_prob): Upate prototype. 7159 (read_thunk_profile): Declare. 7160 71612019-01-03 Iain Sandoe <iain@sandoe.co.uk> 7162 7163 revert: 7164 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> 7165 7166 backport from mainline. 7167 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org> 7168 Iain Sandoe <iain@sandoe.co.uk> 7169 7170 PR target/88343 7171 * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg 7172 unless it has been used. 7173 (first_reg_to_save): Remove dead code. 7174 71752019-01-02 Segher Boessenkool <segher@kernel.crashing.org> 7176 7177 Backport from trunk 7178 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 7179 7180 PR inline-asm/55681 7181 * doc/extend.texi (Basic Asm): Update grammar. 7182 (Extended Asm): Update grammar. 7183 7184 Backport from trunk 7185 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 7186 7187 * doc/extend.texi (Using Assembly Language with C): Document asm inline. 7188 (Size of an asm): Fix typo. Document asm inline. 7189 * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline. 7190 * gimple.h (enum gf_mask): Add GF_ASM_INLINE. 7191 (gimple_asm_set_volatile): Fix typo. 7192 (gimple_asm_inline_p): New. 7193 (gimple_asm_set_inline): New. 7194 * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from 7195 tree to gimple. 7196 * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the 7197 gimple_asm_inline_p flag, too. 7198 * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P 7199 in an ASM_EXPR. 7200 * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return 7201 a minimum size for an asm. 7202 * tree.h (ASM_INLINE_P): New. 7203 72042018-12-28 Thomas Schwinge <thomas@codesourcery.com> 7205 Julian Brown <julian@codesourcery.com> 7206 7207 * gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug. 7208 72092018-12-27 Martin Liska <mliska@suse.cz> 7210 7211 Backport from mainline 7212 2018-12-15 Jan Hubicka <hubicka@ucw.cz> 7213 7214 PR ipa/88561 7215 * ipa-polymorphic-call.c 7216 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle 7217 arguments of thunks correctly. 7218 (ipa_polymorphic_call_context::get_dynamic_context): Be ready for 7219 NULL instance pinter. 7220 * lto-cgraph.c (lto_output_node): Always stream thunk info. 7221 72222018-12-23 Iain Sandoe <iain@sandoe.co.uk> 7223 7224 backport from mainline. 7225 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org> 7226 Iain Sandoe <iain@sandoe.co.uk> 7227 7228 PR target/88343 7229 * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg 7230 unless it has been used. 7231 (first_reg_to_save): Remove dead code. 7232 72332018-12-23 Iain Sandoe <iain@sandoe.co.uk> 7234 7235 Backport from mainline 7236 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> 7237 7238 PR c++/87380 7239 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the 7240 default. 7241 * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New. 7242 72432018-12-23 Iain Sandoe <iain@sandoe.co.uk> 7244 7245 Backport from mainline 7246 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> 7247 7248 PR target/78444 7249 * config/i386/darwin.h (STACK_BOUNDARY): Remove macro. 7250 * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b 7251 stack alignment in non-leaf functions. 7252 72532018-12-21 Uros Bizjak <ubizjak@gmail.com> 7254 7255 Backport from mainline 7256 2018-12-10 Uros Bizjak <ubizjak@gmail.com> 7257 7258 PR target/88418 7259 * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, 7260 check operand 1 with vector_operand predicate. 7261 (ix86_expand_sse_movcc): For vector modes, check op_true with 7262 vector_operand, not nonimmediate_operand. 7263 72642018-12-19 Bill Schmidt <wschmidt@linux.ibm.com> 7265 7266 Backport from mainline 7267 2018-12-18 Bill Schmidt <wschmidt@linux.ibm.com> 7268 7269 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): 7270 Describe when a typedef name can be used as the type specifier for 7271 a vector type, and when it cannot. 7272 72732018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 7274 7275 Backport from trunk 7276 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 7277 7278 PR target/88213 7279 * config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load): 7280 Require TARGET_POWERPC64. 7281 72822018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com> 7283 7284 Backport from trunk 7285 2018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com> 7286 7287 PR rtl-optimization/88253 7288 * combine.c (combine_simplify_rtx): Test for side-effects before 7289 substituting by zero. 7290 72912018-12-15 Segher Boessenkool <segher@kernel.crashing.org> 7292 7293 Backport from trunk 7294 2018-12-14 Segher Boessenkool <segher@kernel.crashing.org> 7295 7296 PR rtl-optimization/88001 7297 * function.c (match_asm_constraints_1): Don't invalidly share RTL. 7298 72992018-12-15 Jan Hubicka <jh@suse.cz> 7300 7301 * ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET 7302 parameters. 7303 (cgraph_build_static_cdtor): Update. 7304 (build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor 7305 callsed. 7306 73072018-12-15 Jan Hubicka <jh@suse.cz> 7308 7309 Backport from mainline 7310 2018-11-02 Richard Biener <rguenther@suse.de> 7311 7312 * dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call 7313 with is_type_die. 7314 73152018-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7316 7317 Backport from mainline 7318 2018-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7319 7320 * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 7321 behavior. 7322 73232018-12-14 Andre Vieira <andre.simoesdiasvieira@arm.com> 7324 7325 Backport from mainline 7326 PR target/88224 7327 * config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations. 7328 (cortex-r7, cortex-r8): Update fpu and add new configuration. 7329 * doc/invoke.texi (armv7-r): Add two new vfp options. 7330 (nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that 7331 support this option. 7332 73332018-12-13 H.J. Lu <hongjiu.lu@intel.com> 7334 7335 Backport from mainline 7336 2018-11-05 Xuepeng Guo <xuepeng.guo@intel.com> 7337 7338 PR target/87853 7339 * config/i386/emmintrin.h (__v16qs): New to cope with option 7340 -funsigned-char. 7341 (_mm_cmpeq_epi8): Replace __v16qi with __v16qs. 7342 (_mm_cmplt_epi8): Likewise. 7343 (_mm_cmpgt_epi8): Likewise. 7344 73452018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 7346 7347 Backport from mainline 7348 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 7349 7350 * config/s390/s390-builtins.def (s390_vec_double_s64): Map to 7351 s390_vec_double_s64 instead of s390_vcdgb. 7352 (s390_vec_double_u64): Map to s390_vec_double_u64 instead of 7353 s390_vcdlgb. 7354 73552018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 7356 7357 Backport from mainline 7358 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 7359 7360 * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") 7361 ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. 7362 ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. 7363 73642018-12-13 Eric Botcazou <ebotcazou@adacore.com> 7365 7366 Backport from mainline 7367 2018-12-11 Eric Botcazou <ebotcazou@adacore.com> 7368 7369 * config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, 7370 accounting for STACK_BOUNDARY 128. 7371 (STACK_DYNAMIC_OFFSET): Likewise. 7372 73732018-12-12 Peter Bergner <bergner@linux.ibm.com> 7374 7375 Backport from mainline 7376 2018-12-07 Peter Bergner <bergner@linux.ibm.com> 7377 7378 PR target/87496 7379 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow 7380 -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. 7381 Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. 7382 * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble 7383 require -mlong-double-128. 7384 73852018-12-05 Richard Biener <rguenther@suse.de> 7386 7387 Backport from mainline 7388 2018-09-20 Richard Sandiford <richard.sandiford@arm.com> 7389 7390 PR tree-optimization/87288 7391 * tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS 7392 into account when determining PEELING_FOR_NITERS. 7393 73942018-12-05 Iain Sandoe <iain@sandoe.co.uk> 7395 7396 Backport from mainline 7397 2018-08-18 Iain Sandoe <iain@sandoe.co.uk> 7398 7399 * config/darwin.c (darwin_override_options): If -gsplit-dwarf is set, 7400 emit a diagnostic that it is not supported and reset the option. 7401 * config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not 7402 supported and consume the option. (ASM_FINAL_SPEC): New. 7403 74042018-12-04 Iain Sandoe <iain@sandoe.co.uk> 7405 7406 Backport from mainline 7407 2018-08-15 Iain Sandoe <iain@sandoe.co.uk> 7408 7409 PR target/81685 7410 * config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION, 7411 DEBUG_RNGLISTS_SECTION) new macros. (DEBUG_PUBNAMES_SECTION, 7412 DEBUG_PUBTYPES_SECTION) update to include GNU variant. 7413 74142018-11-29 Peter Bergner <bergner@linux.ibm.com> 7415 7416 Backport from mainline 7417 2018-11-29 Peter Bergner <bergner@linux.ibm.com> 7418 7419 PR target/87496 7420 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow 7421 -mabi=ieeelongdouble without both -mpopcntd and -mvsx. 7422 74232018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> 7424 7425 Backport from mainline 7426 2018-10-25 Aaron Sawdey <acsawdey@linux.ibm.com> 7427 7428 * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to 7429 a shorter sequence with fewer branches. 7430 (emit_final_str_compare_gpr): Ditto. 7431 7432 Backport from mainline to allow the above code to go in: 7433 2018-06-14 Aaron Sawdey <acsawdey@linux.ibm.com> 7434 7435 * config/rs6000/rs6000-string.c (do_and3, do_and3_mask, 7436 do_cmpb3, do_rotl3): New functions. 7437 74382018-11-28 Richard Biener <rguenther@suse.de> 7439 7440 PR tree-optimization/79351 7441 * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from 7442 empty CONSTRUCTORs ensure the store is at a constant position. 7443 74442018-11-28 Richard Biener <rguenther@suse.de> 7445 7446 PR tree-optimization/88229 7447 * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT 7448 is an INTEGER_CST before accessing it so. 7449 74502018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> 7451 7452 Backport from mainline 7453 2018-11-20 Andreas Krebbel <krebbel@linux.ibm.com> 7454 7455 * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the 7456 DImode parts of the target operand. 7457 74582018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> 7459 7460 Backport from mainline 7461 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> 7462 7463 * doc/invoke.texi: Document z14/arch12 -march option. 7464 74652018-11-23 Tamar Christina <tamar.christina@arm.com> 7466 7467 Backported from mainline. 7468 2018-08-16 Tamar Christina <tamar.christina@arm.com> 7469 7470 PR target/84711 7471 * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. 7472 (mov<mov>): ..this and enable unconditionally. 7473 74742018-11-22 Uros Bizjak <ubizjak@gmail.com> 7475 7476 Backport from mainline 7477 2018-11-16 Uros Bizjak <ubizjak@gmail.com> 7478 7479 PR target/88051 7480 * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. 7481 (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. 7482 74832018-11-20 Eric Botcazou <ebotcazou@adacore.com> 7484 7485 PR rtl-optimization/85925 7486 * rtl.h (word_register_operation_p): New predicate. 7487 * combine.c (record_dead_and_set_regs_1): Only apply specific handling 7488 for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX. 7489 * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments. 7490 (num_sign_bit_copies1): Likewise. 7491 74922018-11-19 Martin Liska <mliska@suse.cz> 7493 7494 PR gcov-profile/88045 7495 * coverage.c (coverage_begin_function): One can't relly on the 7496 fact that function ends on the same line it starts or later. 7497 74982018-11-18 Uros Bizjak <ubizjak@gmail.com> 7499 7500 Backport from mainline 7501 2018-11-11 Uros Bizjak <ubizjak@gmail.com> 7502 7503 PR target/87928 7504 * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI 7505 instead of (TARGET_64BIT && ix86_abi == MS_ABI). 7506 * config/i386/darwin.h (STACK_BOUNDARY): Ditto. 7507 * config/i386/cygming.h (STACK_BOUNDARY): Remove. 7508 75092018-11-16 Eric Botcazou <ebotcazou@adacore.com> 7510 7511 * tree-switch-conversion.c (emit_case_decision_tree): Pass location 7512 of switch statement to emit_case_nodes. 7513 (do_jump_if_equal): Add LOC parameter and set it on the newly built 7514 GIMPLE comparison statement. 7515 (emit_cmp_and_jump_insns): Likewise. 7516 (emit_case_nodes): Add LOC parameter and pass it to do_jump_if_equal 7517 as well as recursive calls. 7518 75192018-11-15 Nathan Sidwell <nathan@acm.org> 7520 7521 PR debug/88006 7522 PR debug/87462 7523 * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat 7524 type list. 7525 75262018-11-14 Paul A. Clarke <pc@us.ibm.com> 7527 7528 Backport from mainline 7529 * config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian. 7530 75312018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 7532 7533 Backport from mainline 7534 PR target/85968 7535 * config/arc/arc.c (arc_return_address_register): Fix 7536 if-condition. 7537 75382018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 7539 7540 Backport from mainline 7541 * config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty. 7542 * config/arc/elf.h (PROFILE_HOOK): Define. 7543 * config/arc/linux.h (PROFILE_HOOK): Likewise. 7544 75452018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 7546 7547 Backport from mainline 7548 * config/arc/arc.c (hwloop_optimize): Bailout when detecting a 7549 jump table data in the text section. 7550 75512018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 7552 7553 Backport from mainline 7554 * config/arc/arc.c (arc_eh_return_address_location): Repurpose it 7555 to fit the eh_return pattern. 7556 * config/arc/arc.md (eh_return): Define. 7557 (VUNSPEC_ARC_EH_RETURN): Likewise. 7558 * config/arc/arc-protos.h (arc_eh_return_address_location): Match 7559 new implementation. 7560 * config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it. 7561 75622018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 7563 7564 Backport from mainline 7565 2018-09-17 Alexey Brodkin <abrodkin@synopsys.com> 7566 7567 * config/arc/linux.h (LINK_EH_SPEC): Add missing space. 7568 75692018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 7570 7571 Backport from mainline 7572 * config/arc/linux.h (CLEAR_INSN_CACHE): Define. 7573 75742018-11-11 Uros Bizjak <ubizjak@gmail.com> 7575 7576 Backport from mainline 7577 2018-11-04 Uros Bizjak <ubizjak@gmail.com> 7578 7579 PR middle-end/58372 7580 * cfgexpand.c (pass_expand::execute): Move the call to 7581 finish_eh_generation in front of the call to expand_stack_alignment. 7582 75832018-11-07 Max Filippov <jcmvbkbc@gmail.com> 7584 7585 Backport from mainline 7586 2018-11-05 Max Filippov <jcmvbkbc@gmail.com> 7587 7588 * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0. 7589 75902018-11-05 Jakub Jelinek <jakub@redhat.com> 7591 7592 PR tree-optimization/87859 7593 * gimple-ssa-store-merging.c (struct merged_store_group): Add 7594 first_nonmergeable_order member. 7595 (merged_store_group::merged_store_group): Initialize them. 7596 (imm_store_chain_info::coalesce_immediate_stores): Don't merge 7597 stores with order >= first_nonmergeable_order. 7598 Set merged_store->first_nonmergeable_order if we've skipped any 7599 stores. Attempt to merge overlapping INTEGER_CST stores that 7600 we would otherwise skip. 7601 7602 PR sanitizer/87837 7603 * match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED. 7604 7605 Backported from mainline 7606 2018-10-20 Jakub Jelinek <jakub@redhat.com> 7607 7608 PR middle-end/87647 7609 * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR. 7610 7611 2018-10-19 Jakub Jelinek <jakub@redhat.com> 7612 7613 PR middle-end/85488 7614 PR middle-end/87649 7615 * omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without 7616 depend closely nested inside of loop with ordered clause with 7617 a parameter. 7618 76192018-10-29 Richard Biener <rguenther@suse.de> 7620 7621 Backport from mainline 7622 2018-09-26 Richard Biener <rguenther@suse.de> 7623 7624 PR debug/87428 7625 PR debug/87362 7626 * tree-inline.c (expand_call_inline): When the location 7627 of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION 7628 or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of 7629 the inserted BLOCK to make inlined_function_outer_scope_p 7630 recognize it. 7631 * dwarf2out.c (add_call_src_coords_attributes): Do not add 7632 coords for reserved locations. 7633 76342018-10-28 Iain Sandoe <iain@sandoe.co.uk> 7635 7636 Backport from mainline 7637 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> 7638 7639 PR bootstrap/81033 7640 PR target/81733 7641 PR target/52795 7642 * gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New. 7643 (dwarf2out_switch_text_section): Generate a local label for the second 7644 function sub-section and apply it as the second FDE start label. 7645 * gcc/final.c (final_scan_insn_1): Emit second FDE label after the 7646 second sub-section start. 7647 76482018-10-28 Iain Sandoe <iain@sandoe.co.uk> 7649 7650 Backport from mainline 7651 2018-08-15 Iain Sandoe <iain@sandoe.co.uk> 7652 7653 * config/darwin.c 7654 (darwin_function_switched_text_sections): Delete. 7655 * gcc/config/darwin.h 7656 (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise. 7657 76582018-10-28 Iain Sandoe <iain@sandoe.co.uk> 7659 7660 backport from mainline. 7661 2018-10-28 Iain Sandoe <iain@sandoe.co.uk> 7662 7663 PR target/85669 7664 * config/rs6000/darwin.h (STACK_BOUNDARY): New. 7665 (RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment. 7666 (STACK_DYNAMIC_OFFSET): Likewise. 7667 76682018-10-26 Bill Schmidt <wschmidt@linux.ibm.com> 7669 7670 Backport from mainline 7671 2018-10-19 Bill Schmidt <wschmidt@linux.ibm.com> 7672 7673 PR tree-optimization/87473 7674 * gimple-ssa-strength-reduction.c (record_phi_increments_1): For 7675 phi arguments identical to the base expression of the phi 7676 candidate, record a phi-adjust increment of zero minus the index 7677 expression of the hidden basis. 7678 (phi_incr_cost_1): For phi arguments identical to the base 7679 expression of the phi candidate, the difference to compare against 7680 the increment is zero minus the index expression of the hidden 7681 basis, and there is no potential savings from replacing the (phi) 7682 statement. 7683 (ncd_with_phi): For phi arguments identical to the base expression 7684 of the phi candidate, the difference to compare against the 7685 increment is zero minus the index expression of the hidden basis. 7686 (all_phi_incrs_profitable_1): For phi arguments identical to the 7687 base expression of the phi candidate, the increment to be checked 7688 for profitability is zero minus the index expression of the hidden 7689 basis. 7690 76912018-10-25 Richard Biener <rguenther@suse.de> 7692 7693 PR tree-optimization/87665 7694 PR tree-optimization/87745 7695 * tree-vectorizer.h (get_earlier_stmt): Remove. 7696 (get_later_stmt): Pick up UID from the original non-pattern stmt. 7697 76982018-10-24 Richard Biener <rguenther@suse.de> 7699 7700 PR tree-optimization/87665 7701 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust 7702 to reflect reality. 7703 77042018-10-23 Richard Biener <rguenther@suse.de> 7705 7706 PR tree-optimization/87700 7707 * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. 7708 77092018-10-19 Richard Biener <rguenther@suse.de> 7710 7711 PR middle-end/87645 7712 Backport from mainline 7713 2018-07-12 Richard Biener <rguenther@suse.de> 7714 7715 * tree-ssa-sccvn.c (mprts_hook_cnt): Remove. 7716 (vn_lookup_simplify_result): Remove recursion limit applied 7717 here. 7718 (vn_nary_build_or_lookup_1): Adjust. 7719 (try_to_simplify): Likewise. 7720 * gimple-match-head.c (gimple_resimplify1): Instead apply one 7721 here. 7722 (gimple_resimplify2): Likewise. 7723 (gimple_resimplify3): Likewise. 7724 (gimple_resimplify4): Likewise. 7725 77262018-10-19 Andreas Krebbel <krebbel@linux.ibm.com> 7727 7728 Backport from mainline 7729 2018-10-15 Andreas Krebbel <krebbel@linux.ibm.com> 7730 7731 * config/s390/s390.c (s390_expand_vec_init): Force vector element 7732 into reg if it isn't a general operand. 7733 77342018-10-18 Richard Biener <rguenther@suse.de> 7735 7736 PR middle-end/87087 7737 Revert 7738 2018-02-07 Richard Biener <rguenther@suse.de> 7739 7740 PR tree-optimization/84204 7741 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in 7742 this place. 7743 77442018-10-17 Eric Botcazou <ebotcazou@adacore.com> 7745 7746 PR middle-end/87623 7747 * fold-const.c (fold_truth_andor_1): If the right side is not constant, 7748 bail out if both sides do not have the same storage order. 7749 77502018-10-17 Richard Biener <rguenther@suse.de> 7751 7752 Backport from mainline 7753 2018-10-08 Richard Sandiford <richard.sandiford@arm.com> 7754 7755 PR middle-end/63155 7756 * gimple-ssa-backprop.c (backprop::intersect_uses): Use 7757 FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. 7758 77592018-10-16 Richard Biener <rguenther@suse.de> 7760 7761 Backport from mainline 7762 2018-10-08 Richard Biener <rguenther@suse.de> 7763 7764 PR tree-optimization/63155 7765 * tree-ssa-propagate.c (add_ssa_edge): Do cheap check first. 7766 (ssa_propagation_engine::ssa_propagate): Remove redundant 7767 bitmap bit clearing. 7768 7769 2018-10-05 Richard Biener <rguenther@suse.de> 7770 7771 PR tree-optimization/63155 7772 * tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess 7773 vertical space in dumpfiles. 7774 * tree-ssa-propagate.h 7775 (ssa_propagation_engine::process_ssa_edge_worklist): Remove. 7776 * tree-ssa-propagate.c (cfg_blocks_back): New global. 7777 (ssa_edge_worklist_back): Likewise. 7778 (curr_order): Likewise. 7779 (cfg_blocks_get): Remove abstraction. 7780 (cfg_blocks_add): Likewise. 7781 (cfg_blocks_empty_p): Likewise. 7782 (add_ssa_edge): Add to current or next worklist based on 7783 RPO index. 7784 (add_control_edge): Likewise. 7785 (ssa_propagation_engine::process_ssa_edge_worklist): Fold 7786 into ... 7787 (ssa_propagation_engine::ssa_propagate): ... here. Unify 7788 iteration from CFG and SSA edge worklist so we process 7789 everything in RPO order, prioritizing forward progress 7790 over iteration. 7791 (ssa_prop_init): Allocate new worklists, do not dump 7792 immediate uses. 7793 (ssa_prop_fini): Free new worklists. 7794 7795 2018-09-24 Richard Biener <rguenther@suse.de> 7796 7797 PR tree-optimization/63155 7798 * tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to 7799 the worklist when the edge of the respective argument isn't 7800 executable. 7801 78022018-10-16 Wilco Dijkstra <wdijkstr@arm.com> 7803 7804 Backported from mainline 7805 PR target/87511 7806 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): 7807 Use HOST_WIDE_INT_1U for shift. 7808 78092018-10-16 Richard Biener <rguenther@suse.de> 7810 7811 Backport from mainline 7812 2018-09-18 Richard Biener <rguenther@suse.de> 7813 7814 PR middle-end/63155 7815 * tree-ssa-coalesce.c (tree_int_map_hasher): Remove. 7816 (compute_samebase_partition_bases): Likewise. 7817 (coalesce_ssa_name): Always use compute_optimized_partition_bases. 7818 (gimple_can_coalesce_p): Simplify. 7819 78202018-10-16 Richard Biener <rguenther@suse.de> 7821 7822 Backport from mainline 7823 2018-10-15 Richard Biener <rguenther@suse.de> 7824 7825 PR middle-end/87610 7826 * tree-ssa-structalias.c (struct vls_data): Add escaped_p member. 7827 (visit_loadstore): When a used restrict tag escaped verify that 7828 the points-to solution of "other" pointers do not include 7829 escaped. 7830 (compute_dependence_clique): If a used restrict tag escaped 7831 communicated that down to visit_loadstore. 7832 7833 2018-10-01 Richard Biener <rguenther@suse.de> 7834 7835 PR tree-optimization/87465 7836 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo 7837 causing branch miscounts. 7838 78392018-10-11 Jakub Jelinek <jakub@redhat.com> 7840 7841 Backported from mainline 7842 2018-10-10 Jakub Jelinek <jakub@redhat.com> 7843 7844 PR target/87550 7845 * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set 7846 to special_args set. 7847 7848 2018-09-26 Jakub Jelinek <jakub@redhat.com> 7849 7850 PR target/87414 7851 * config/i386/i386.c: Include debug.h and dwarf2out.h. 7852 (output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the 7853 call. 7854 7855 2018-09-12 Jakub Jelinek <jakub@redhat.com> 7856 Andreas Krebbel <krebbel@linux.ibm.com> 7857 7858 PR tree-optimization/86844 7859 * gimple-ssa-store-merging.c 7860 (imm_store_chain_info::coalesce_immediate): For overlapping stores, if 7861 there are any overlapping stores in between them, make sure they are 7862 also coalesced or we give up completely. 7863 78642018-10-09 Will Schmidt <will_schmidt@vnet.ibm.com> 7865 7866 Backport from trunk. 7867 2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> 7868 7869 PR target/86731 7870 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic 7871 around folding of vec_sl to handle out of range shift values. 7872 78732018-10-09 H.J. Lu <hongjiu.lu@intel.com> 7874 7875 Backport from mainline 7876 2018-09-29 H.J. Lu <hongjiu.lu@intel.com> 7877 7878 PR target/87370 7879 * config/i386/i386.c (construct_container): Use TImode for 7880 BLKmode values in 2 integer registers. 7881 78822018-10-08 H.J. Lu <hongjiu.lu@intel.com> 7883 7884 Backport from mainline 7885 2018-10-08 H.J. Lu <hongjiu.lu@intel.com> 7886 7887 PR target/87517 7888 * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd): 7889 Defined with __builtin_ia32_vfmaddsubpd512_mask. 7890 78912018-10-05 H.J. Lu <hongjiu.lu@intel.com> 7892 7893 Backport from mainline 7894 2018-10-05 H.J. Lu <hongjiu.lu@intel.com> 7895 7896 PR target/87522 7897 * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to 7898 assembler for -mavx. 7899 * config/i386/gnu-user64.h (ASM_SPEC): Likewise. 7900 79012018-10-03 Uros Bizjak <ubizjak@gmail.com> 7902 7903 Backport from mainline 7904 2018-09-28 Uros Bizjak <ubizjak@gmail.com> 7905 7906 * config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG. 7907 (GET_SSE_REGNO): Rename from SSE_REGNO. Update all uses for rename. 7908 79092018-10-03 Jonathan Wakely <jwakely@redhat.com> 7910 7911 PR other/87353 7912 * doc/invoke.texi (Link Options): Fix formatting and grammar. 7913 79142018-10-03 Martin Liska <mliska@suse.cz> 7915 7916 Backport from mainline 7917 2018-10-03 Martin Liska <mliska@suse.cz> 7918 7919 PR gcov-profile/86109 7920 * coverage.c (coverage_begin_function): Do not 7921 mark lambdas as artificial. 7922 * tree-core.h (struct GTY): Remove tm_clone_flag 7923 and introduce new lambda_function. 7924 * tree.h (DECL_LAMBDA_FUNCTION): New macro. 7925 79262018-10-02 H.J. Lu <hongjiu.lu@intel.com> 7927 7928 Backport from mainline 7929 2018-09-24 H.J. Lu <hongjiu.lu@intel.com> 7930 7931 PR target/82699 7932 * config/i386/i386.c (rest_of_insert_endbranch): Set 7933 endbr_queued_at_entrance to true and don't insert ENDBR if 7934 x86_function_profiler will be called. 7935 (x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance 7936 is true. 7937 * config/i386/i386.h (machine_function): Add 7938 endbr_queued_at_entrance. 7939 79402018-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7941 7942 Backport from mainline 7943 2018-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7944 7945 * config/arm/arm.c (output_move_double): Don't allow STRD instructions 7946 if starting source register is not even. 7947 79482018-09-29 Jakub Jelinek <jakub@redhat.com> 7949 7950 PR target/87467 7951 * config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use 7952 __m512d type for __A argument rather than __m512. 7953 79542018-09-27 Michael Meissner <meissner@linux.ibm.com> 7955 7956 Backport from mainline 7957 2018-08-20 Michael Meissner <meissner@linux.ibm.com> 7958 7959 PR target/87033 7960 * config/rs6000/rs6000.md (extendsi<mode>2): Change constraints 7961 from 'Y' to 'YZ' to enable the LWAX instruction to be generated 7962 for indexed loads. 7963 79642018-09-25 Martin Liska <mliska@suse.cz> 7965 7966 Backport from mainline 7967 2018-09-24 Martin Liska <mliska@suse.cz> 7968 7969 PR sanitizer/85774 7970 * asan.c: Make asan_handled_variables extern. 7971 * asan.h: Likewise. 7972 * cfgexpand.c (expand_stack_vars): Make sure 7973 a representative is unpoison if another 7974 variable in the partition is handled by 7975 use-after-scope sanitization. 7976 79772018-09-24 Andrew Pinski <apinski@marvell.com> 7978 7979 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't 7980 access prev before checking it for NULLness in the 7981 AARCH64_FUSE_CMP_BRANCH case. 7982 79832018-09-21 Eric Botcazou <ebotcazou@adacore.com> 7984 7985 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false 7986 if the call takes a static chain. 7987 79882018-09-19 John David Anglin <danglin@gcc.gnu.org> 7989 7990 * config/pa/pa.md (atomic_storeqi): Restore deleted expander. 7991 (atomic_storehi): Likewise. 7992 (atomic_storesi): Likewise. 7993 (atomic_loaddi): Restore compare and swap exchange loop code. 7994 79952018-09-18 Segher Boessenkool <segher@kernel.crashing.org> 7996 7997 Backport from trunk 7998 2018-09-18 Segher Boessenkool <segher@kernel.crashing.org> 7999 8000 PR rtl-optimization/86882 8001 * rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER. 8002 80032018-09-18 Martin Liska <mliska@suse.cz> 8004 8005 Backport from mainline 8006 2018-09-17 Martin Liska <mliska@suse.cz> 8007 8008 PR gcov-profile/85871 8009 * gcov.c (output_intermediate_file): Fix out of bounds 8010 access. 8011 80122018-09-16 Hans-Peter Nilsson <hp@bitrange.com> 8013 8014 PR target/85666 8015 * config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size 8016 non-CONST_INT rtx:es using assemble_integer_with_op ".byte". 8017 (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call 8018 leaf_function_p, instead use has_hard_reg_initial_val. 8019 80202018-09-14 John David Anglin <danglin@gcc.gnu.org> 8021 8022 PR middle-end/87188 8023 * dojump.c (do_compare_and_jump): Canonicalize function pointers 8024 when one operand is a function pointer. Use POINTER_TYPE_P and 8025 FUNC_OR_METHOD_TYPE_P. 8026 * expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P. 8027 * fold-const.c (build_range_check): Likewise. 8028 * match.pd (simple_comparison): Likewise. 8029 80302018-09-14 Segher Boessenkool <segher@kernel.crashing.org> 8031 8032 Backport from trunk 8033 2018-09-14 Segher Boessenkool <segher@kernel.crashing.org> 8034 8035 PR target/87224 8036 * config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y 8037 alternatives. 8038 80392018-09-14 Carl Love <cel@us.ibm.com> 8040 8041 Backport from trunk 8042 2018-09-14 Carl Love <cel@us.ibm.com> 8043 8044 * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. 8045 * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. 8046 80472018-09-12 Segher Boessenkool <segher@kernel.crashing.org> 8048 8049 Backport from trunk 8050 2018-08-24 Segher Boessenkool <segher@kernel.crashing.org> 8051 8052 PR target/86989 8053 * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is 8054 the TOC register. 8055 80562018-09-12 Segher Boessenkool <segher@kernel.crashing.org> 8057 8058 Backport from trunk 8059 2018-08-22 Segher Boessenkool <segher@kernel.crashing.org> 8060 8061 PR rtl-optimization/86771 8062 * combine.c (try_combine): Do not allow splitting a resulting PARALLEL 8063 of two SETs into those two SETs, one to be placed at i2, if that SETs 8064 destination is modified between i2 and i3. 8065 80662018-09-12 Andreas Krebbel <krebbel@linux.ibm.com> 8067 8068 Backport from mainline 8069 2018-09-12 Andreas Krebbel <krebbel@linux.ibm.com> 8070 8071 * config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New 8072 constants. 8073 ("trunc<BFP:mode><DFP_ALL:mode>2") 8074 ("trunc<DFP_ALL:mode><BFP:mode>2") 8075 ("extend<BFP:mode><DFP_ALL:mode>2") 8076 ("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode 8077 according to the target operand type. 8078 80792018-09-12 Jakub Jelinek <jakub@redhat.com> 8080 8081 PR middle-end/87248 8082 * fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that 8083 BIT_AND_EXPR's second operand is a power of two. Formatting fix. 8084 80852018-09-05 Nathan Sidwell <nathan@acm.org> 8086 8087 PR c++/87137 8088 * stor-layout.c (place_field): Scan forwards to check last 8089 bitfield when ms_bitfield_placement is in effect. 8090 80912018-09-05 Richard Biener <rguenther@suse.de> 8092 8093 PR bootstrap/87225 8094 * tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus 8095 return. 8096 80972018-09-05 Jakub Jelinek <jakub@redhat.com> 8098 8099 Backported from mainline 8100 2018-09-04 Jakub Jelinek <jakub@redhat.com> 8101 8102 PR target/87198 8103 * common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET, 8104 OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use 8105 OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE. 8106 (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET 8107 and OPTION_MASK_ISA_XSAVEC_UNSET. 8108 8109 2018-08-31 Jakub Jelinek <jakub@redhat.com> 8110 8111 PR middle-end/87138 8112 * expmed.c (expand_mult_const): Use immed_wide_int_const instead of 8113 gen_int_mode. Formatting fixes. 8114 8115 2018-08-11 Jakub Jelinek <jakub@redhat.com> 8116 8117 PR tree-optimization/86835 8118 * tree-ssa-math-opts.c (insert_reciprocals): Even when inserting 8119 new_stmt after def_gsi, make sure to insert new_square_stmt after 8120 that stmt, not 2 stmts before it. 8121 81222018-09-04 Max Filippov <jcmvbkbc@gmail.com> 8123 8124 Backport from mainline 8125 2018-09-04 Max Filippov <jcmvbkbc@gmail.com> 8126 8127 * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and 8128 XOR operations in NAND case. 8129 81302018-09-04 Jonathan Wakely <jwakely@redhat.com> 8131 8132 * doc/invoke.texi (Option Summary): Add -Waligned-new. 8133 81342018-09-03 Tom de Vries <tdevries@suse.de> 8135 8136 backport from trunk: 8137 2018-06-21 Tom de Vries <tdevries@suse.de> 8138 8139 PR tree-optimization/85859 8140 * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call 8141 test with comment from bb_no_side_effects_p. 8142 81432018-09-01 Michael Matz <matz@suse.de> 8144 8145 Backport from mainline 8146 PR tree-optimization/87074 8147 * gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit 8148 PHIs for outer-loop uses. 8149 81502018-08-31 Richard Biener <rguenther@suse.de> 8151 8152 Backport from mainline 8153 2018-08-27 Richard Biener <rguenther@suse.de> 8154 8155 PR tree-optimization/86927 8156 * tree-vect-loop.c (vect_create_epilog_for_reduction): Properly 8157 use const cond reduction code. 8158 8159 2018-08-23 Richard Biener <rguenther@suse.de> 8160 8161 PR middle-end/87024 8162 * tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len 8163 calls. 8164 8165 2018-08-22 Richard Biener <rguenther@suse.de> 8166 8167 PR tree-optimization/86945 8168 * tree-cfg.c (generate_range_test): Use unsigned arithmetic. 8169 8170 2018-08-17 Richard Biener <rguenther@suse.de> 8171 8172 PR middle-end/86505 8173 * tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len () 8174 across a va-arg-pack using call adjust its return value accordingly. 8175 8176 2018-08-02 Richard Biener <rguenther@suse.de> 8177 8178 PR tree-optimization/86816 8179 * tree-ssa-tail-merge.c (tail_merge_valueize): New function 8180 which checks for value availability before querying it. 8181 (gvn_uses_equal): Use it. 8182 (same_succ_hash): Likewise. 8183 (gimple_equal_p): Likewise. 8184 8185 2018-07-17 Richard Biener <rguenther@suse.de> 8186 8187 PR lto/86456 8188 * dwarf2out.c (init_sections_and_labels): Always generate 8189 a debug_line_str_section for early LTO debug. 8190 (dwarf2out_finish): Reset debug_line_str_hash output early. 8191 Bump counter for extra dwarf5 .debug_loc labels to not conflict 8192 with fat LTO part. 8193 (dwarf2out_early_finish): Output debug_line_str. 8194 81952018-08-29 Luis Machado <luis.machado@linaro.org> 8196 8197 * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static global. 8198 (qdf24xx_tunings): Set vector cost structure to qdf24xx_vector_cost. 8199 82002018-08-29 Luis Machado <luis.machado@linaro.org> 8201 8202 * config/aarch64/aarch64.c (qdf24xx_addrcost_table) 8203 <register_sextend>: Set to 3. 8204 82052018-08-27 Martin Sebor <msebor@redhat.com> 8206 8207 PR tree-optimization/86914 8208 * tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF. 8209 82102018-08-28 Jakub Jelinek <jakub@redhat.com> 8211 8212 PR middle-end/87099 8213 * calls.c (maybe_warn_nonstring_arg): Punt early if 8214 warn_stringop_overflow is zero. Don't call get_range_strlen 8215 on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST. 8216 Only use lenrng[1] if non-NULL and INTEGER_CST. Don't uselessly 8217 increment lenrng[0]. 8218 82192018-08-27 Jakub Jelinek <jakub@redhat.com> 8220 8221 PR rtl-optimization/87065 8222 * combine.c (simplify_if_then_else): Formatting fix. 8223 (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P 8224 check. 8225 (known_cond): Don't return const_true_rtx for vector modes. Use 8226 CONST0_RTX instead of const0_rtx. Formatting fixes. 8227 82282018-08-25 Jozef Lawrynowicz <jozef.l@mittosystems.com> 8229 8230 Backport from mainline 8231 PR target/86662 8232 * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array 8233 with all enabled __intN types. 8234 8235 * gcc/testsuite/gcc.target/msp430/pr86662.c: New test. 8236 82372018-08-21 H.J. Lu <hongjiu.lu@intel.com> 8238 8239 Backport from mainline 8240 2018-08-20 H.J. Lu <hongjiu.lu@intel.com> 8241 8242 PR target/87014 8243 * config/i386/i386.md (eh_return): Always update EH return 8244 address in word_mode. 8245 82462018-08-17 John David Anglin <danglin@gcc.gnu.org> 8247 8248 Backport from mainline 8249 2018-08-11 John David Anglin <danglin@gcc.gnu.org> 8250 8251 * config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum. 8252 Update comment for atomic instructions. 8253 (atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf, 8254 atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1): 8255 Remove. 8256 (atomic_loaddi): Revise fence expansion to only emit fence prior to 8257 load for __ATOMIC_SEQ_CST model. 8258 (atomic_loaddi_1): Remove float register target. 8259 (atomic_storedi): Handle CONST_INT values. 8260 (atomic_storedi_1): Remove float register source. Add special case 8261 for zero value. 8262 (memory_barrier): New expander and insn. 8263 82642018-08-16 Tamar Christina <tamar.christina@arm.com> 8265 8266 Backport from mainline 8267 2018-07-30 Segher Boessenkool <segher@kernel.crashing.org> 8268 8269 PR target/86640 8270 * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode 8271 instead of GEN_INT. 8272 82732018-08-16 Martin Liska <mliska@suse.cz> 8274 8275 Backport from mainline 8276 2018-08-02 Martin Liska <mliska@suse.cz> 8277 8278 PR gcov-profile/86817 8279 * gcov.c (process_all_functions): New function. 8280 (main): Call it. 8281 (process_file): Move functions processing to 8282 process_all_functions. 8283 82842018-08-14 Siddhesh Poyarekar <siddhesh@sourceware.org> 8285 8286 Backport from mainline 8287 2018-08-03 Siddhesh Poyarekar <siddhesh@sourceware.org> 8288 8289 * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move 8290 neon_dup_q to... 8291 (falkor_am_1_gtov_gtov): ... a new insn reservation. 8292 82932018-08-13 Liu Hao <lh_mouse@126.com> 8294 8295 Backport from mainline 8296 2018-08-13 Liu Hao <lh_mouse@126.com> 8297 8298 * pretty-print.c (eat_esc_sequence): Swap the foreground and 8299 background colors if the COMMON_LVB_REVERSE_VIDEO flag is set, 8300 and clear it thereafter, as it only works for DBCS. 8301 83022018-08-13 Liu Hao <lh_mouse@126.com> 8303 8304 Backport from mainline 8305 2018-08-13 Liu Hao <lh_mouse@126.com> 8306 8307 * pretty-print.c (mingw_ansi_fputs): Do not call _close() on the 8308 handle returned by _get_osf_handle(). 8309 83102018-08-14 Richard Sandiford <richard.sandiford@arm.com> 8311 8312 Backport from mainline 8313 2018-08-09 Richard Sandiford <richard.sandiford@arm.com> 8314 8315 PR tree-optimization/86871 8316 * tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs 8317 instead of gimple_assign_lhs. 8318 83192018-08-07 H.J. Lu <hongjiu.lu@intel.com> 8320 8321 Backport from mainline 8322 2018-08-05 H.J. Lu <hongjiu.lu@intel.com> 8323 8324 PR target/86386 8325 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Set 8326 cfun->machine->max_used_stack_alignment if needed. 8327 83282018-08-02 Jozef Lawrynowicz <jozef.l@mittosystems.com> 8329 8330 Backport from mainline 8331 2018-07-31 Jozef Lawrynowicz <jozef.l@mittosystems.com> 8332 8333 PR middle-end/86705 8334 * gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when 8335 MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the 8336 requested variable alignment. 8337 (expand_one_ssa_partition): Likewise. 8338 (expand_one_var): Likewise. 8339 83402018-08-02 Andreas Schwab <schwab@linux-m68k.org> 8341 8342 Backport from mainline 8343 2018-07-17 Andreas Schwab <schwab@linux-m68k.org> 8344 8345 PR target/86820 8346 * config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) 8347 (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. 8348 83492018-08-01 Richard Biener <rguenther@suse.de> 8350 8351 PR bootstrap/86724 8352 * graphite.h: Include isl/id.h and isl/space.h to allow build 8353 with ISL 0.20. 8354 83552018-08-01 Jan Willem Jagersma <jwjagersma@gmail.com> 8356 8357 PR target/86651 8358 * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO 8359 mode for COFF targets. 8360 * defaults.h (TARGET_COFF): Define. 8361 * config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END, 8362 TARGET_COFF): Define. 8363 (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare. 8364 * config/i386/djgpp.c (saved_debug_info_level): New static variable. 8365 (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions. 8366 83672018-07-29 Bernd Edlinger <bernd.edlinger@hotmail.de> 8368 8369 Backport from mainline 8370 2018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> 8371 8372 PR c/86617 8373 * genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values. 8374 83752018-07-29 John David Anglin <danglin@gcc.gnu.org> 8376 8377 * config/pa/pa.c (pa_output_addr_vec): Align address table. 8378 * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment. 8379 * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define. 8380 83812018-07-26 Uros Bizjak <ubizjak@gmail.com> 8382 8383 Backport from mainline 8384 2018-07-16 Uros Bizjak <ubizjak@gmail.com> 8385 8386 PR target/86511 8387 * expmed.c (emit_store_flag): Do not emit setcc followed by a 8388 conditional move when trapping comparison was split to a 8389 non-trapping one (and vice versa). 8390 83912018-07-26 Jakub Jelinek <jakub@redhat.com> 8392 8393 Backported from mainline 8394 2018-07-24 Jakub Jelinek <jakub@redhat.com> 8395 8396 PR middle-end/86627 8397 * expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN 8398 and size > HOST_BITS_PER_WIDE_INT. For size > HOST_BITS_PER_WIDE_INT 8399 and abs_d == d, do the power of two handling if profitable. 8400 8401 2018-07-17 Jakub Jelinek <jakub@redhat.com> 8402 8403 PR middle-end/86542 8404 * omp-low.c (create_task_copyfn): Copy over also fields corresponding 8405 to _looptemp_ clauses, other than the first two. 8406 8407 PR middle-end/86539 8408 * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init 8409 and cond temporaries don't have reference type if iterator has 8410 pointer type. For init use &for_pre_body instead of pre_p if 8411 for_pre_body is non-empty. 8412 84132018-07-26 Jakub Jelinek <jakub@redhat.com> 8414 8415 PR middle-end/86660 8416 * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for 8417 declare target to variables if they have always,{to,from,tofrom} map 8418 kinds. 8419 8420 * BASE-VER: Set to 8.2.1. 8421 84222018-07-26 Release Manager 8423 8424 * GCC 8.2.0 released. 8425 84262018-07-18 Martin Sebor <msebor@redhat.com> 8427 8428 PR middle-end/85602 8429 * calls.c (maybe_warn_nonstring_arg): Handle strncat. 8430 * tree-ssa-strlen.c (is_strlen_related_p): Make extern. 8431 Handle integer subtraction. 8432 (maybe_diag_stxncpy_trunc): Handle nonstring source arguments. 8433 * tree-ssa-strlen.h (is_strlen_related_p): Declare. 8434 * doc/invoke.texi (-Wstringop-truncation): Update. 8435 8436gcc/testsuite/ChangeLog: 8437 84382018-07-16 Claudiu Zissulescu <claziss@synopsys.com> 8439 8440 Backport from mainline 8441 2017-03-24 Claudiu Zissulescu <claziss@synopsys.com> 8442 8443 * config/arc/arc-protos.h (arc_pad_return): Remove. 8444 * config/arc/arc.c (machine_function): Remove force_short_suffix 8445 and size_reason. 8446 (arc_print_operand): Adjust printing of '&'. 8447 (arc_verify_short): Remove conditional printing of short suffix. 8448 (arc_final_prescan_insn): Remove reference to size_reason. 8449 (pad_return): New function. 8450 (arc_reorg): Call pad_return. 8451 (arc_pad_return): Remove. 8452 (arc_init_machine_status): Remove reference to force_short_suffix. 8453 * config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE. 8454 (attr length): When attribute iscompact is true force to 2 8455 regardless; in the case of maybe check if we want to force the 8456 instruction to have 4 bytes length. 8457 (nopv): Change it to generate 4 byte long nop as well. 8458 (blockage): New pattern. 8459 (simple_return): Remove call to arc_pad_return. 8460 (p_return_i): Likewise. 8461 84622018-07-19 Richard Biener <rguenther@suse.de> 8463 8464 Backport from mainline 8465 2018-07-13 Richard Biener <rguenther@suse.de> 8466 8467 PR debug/86452 8468 * dwarf2out.c (gen_type_die_with_usage): Use scope_die_for 8469 instead of get_context_die. 8470 8471 2018-07-11 Richard Biener <rguenther@suse.de> 8472 8473 PR debug/86457 8474 * dwarf2out.c (init_sections_and_labels): Use 8475 output_asm_line_debug_info consistently. 8476 (dwarf2out_early_finish): Likewise. 8477 (dwarf2out_finish): Remove DW_AT_stmt_list from early generated 8478 type units. 8479 84802018-07-16 Richard Biener <rguenther@suse.de> 8481 8482 Backport from mainline 8483 2018-07-13 Richard Biener <rguenther@suse.de> 8484 8485 PR middle-end/85974 8486 * match.pd (addr1 - addr2): Allow either of the operand to 8487 have a conversion. 8488 8489 2018-06-15 Richard Biener <rguenther@suse.de> 8490 8491 PR middle-end/86076 8492 * tree-cfg.c (move_stmt_op): unshare invariant addresses 8493 before adjusting their block. 8494 8495 2018-06-06 Richard Biener <rguenther@suse.de> 8496 8497 PR tree-optimization/85935 8498 * graphite-scop-detection.c (find_params_in_bb): Analyze 8499 condition operands with respect to the correct loop. Assert 8500 the analysis doesn't fail. 8501 85022018-07-16 Eric Botcazou <ebotcazou@adacore.com> 8503 8504 PR tree-optimization/86514 8505 * tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a 8506 conversion to a boolean type from a type with greater precision. 8507 85082018-07-15 Bill Schmidt <wschmidt@linux.ibm.com> 8509 8510 Backport from mainline 8511 2018-07-13 Bill Schmidt <wschmidt@linux.ibm.com> 8512 Steve Munroe <munroesj52@gmail.com> 8513 8514 * config/rs6000/emmintrin.h (_mm_and_si128): New function. 8515 (_mm_andnot_si128): Likewise. 8516 (_mm_or_si128): Likewise. 8517 (_mm_xor_si128): Likewise. 8518 85192018-07-14 Martin Sebor <msebor@redhat.com> 8520 8521 PR tree-optimization/86274 8522 * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify 8523 precondition. 8524 (format_floating): Correct handling of infinities and NaNs. 8525 85262018-07-13 H.J. Lu <hongjiu.lu@intel.com> 8527 8528 Backport from mainline 8529 2018-07-13 H.J. Lu <hongjiu.lu@intel.com> 8530 Sunil K Pandey <sunil.k.pandey@intel.com> 8531 8532 PR target/84413 8533 * config/i386/i386.c (m_CORE_AVX512): New. 8534 (m_CORE_AVX2): Likewise. 8535 (m_CORE_ALL): Add m_CORE_AVX2. 8536 * config/i386/x86-tune.def: Replace m_HASWELL with m_CORE_AVX2. 8537 Replace m_SKYLAKE_AVX512 with m_CORE_AVX512 on avx256_optimal 8538 and remove the rest of m_SKYLAKE_AVX512. 8539 85402018-07-13 Marek Polacek <polacek@redhat.com> 8541 8542 Backport from trunk 8543 2018-07-03 Marek Polacek <polacek@redhat.com> 8544 8545 PR middle-end/86202 8546 * gimple-fold.c (size_must_be_zero_p): Check the type of the size. 8547 85482018-07-12 Richard Biener <rguenther@suse.de> 8549 8550 PR target/84829 8551 * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC): 8552 Remove -mieee-fp handling. 8553 85542018-07-12 Jakub Jelinek <jakub@redhat.com> 8555 8556 PR tree-optimization/86492 8557 * gimple-ssa-store-merging.c 8558 (imm_store_chain_info::coalesce_immediate_stores): Call 8559 check_no_overlap even for the merge_overlapping case. 8560 85612018-07-11 Jakub Jelinek <jakub@redhat.com> 8562 8563 * config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask): 8564 Use __mmask64 type instead of __mmask8 for __M argument. 8565 * config/i386/avx512fintrin.h (_mm512_mask_xor_epi64, 8566 _mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for 8567 __U argument. 8568 (_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of 8569 __mmask16 for __M argument. 8570 (_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4, 8571 _mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument 8572 to __mmask16 instead of __mmask8. 8573 * config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps, 8574 _mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps, 8575 _mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps, 8576 _mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type 8577 instead of __mmask16 for __U argument. 8578 * config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use 8579 __mmask16 instead of __mmask8 for __U argument. 8580 (_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for 8581 __U argument. 8582 (_mm256_cmp_epi8_mask): Use __mmask32 return type instead of 8583 __mmask16. 8584 (_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U 8585 argument. 8586 (_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for 8587 __U argument. 8588 (_mm256_cmp_epu8_mask): Use __mmask32 return type instead of 8589 __mmask16. 8590 (_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead 8591 of __mmask16. 8592 (_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for 8593 __U argument. 8594 (_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for 8595 __U argument. 8596 (_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for 8597 __U argument. 8598 (_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for 8599 __U argument. 8600 (_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask, 8601 _mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change 8602 return type as well as __M argument type and all casts from __mmask8 8603 to __mmask32. 8604 (_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask, 8605 _mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change 8606 return type as well as __M argument type and all casts from __mmask8 8607 to __mmask16. 8608 (_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask, 8609 _mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change 8610 return type as well as __M argument type and all casts from __mmask8 8611 to __mmask32. 8612 (_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask, 8613 _mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change 8614 return type as well as __M argument type and all casts from __mmask8 8615 to __mmask16. 8616 * config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32, 8617 _mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of 8618 __mmask16. 8619 86202018-07-11 Grazvydas Ignotas <notasas@gmail.com> 8621 8622 * config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask, 8623 _mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32 8624 for __U argument. 8625 86262018-07-05 Martin Sebor <msebor@redhat.com> 8627 8628 PR c++/86400 8629 * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather 8630 than its domain to compute its the upper bound of a char array. 8631 86322018-07-03 Carl Love <cel@us.ibm.com> 8633 8634 Backport from trunk 8635 2018-07-03 Carl Love <cel@us.ibm.com> 8636 8637 * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for 8638 float argument to VSX_BUILTIN_DOUBLEH_V4SF. 8639 Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to 8640 VSX_BUILTIN_DOUBLEL_V4SF. 8641 86422018-07-04 Luis Machado <luis.machado@linaro.org> 8643 8644 * config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static 8645 global. 8646 (qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table. 8647 86482018-07-02 Segher Boessenkool <segher@kernel.crashing.org> 8649 8650 Backport from trunk 8651 2018-06-26 Segher Boessenkool <segher@kernel.crashing.org> 8652 8653 PR target/86285 8654 * config/rs6000/rs6000.c (rs6000_init_builtins): Do not set 8655 ieee128_float_type_node to long_double_type_node unless 8656 TARGET_LONG_DOUBLE_128 is set. 8657 86582018-07-02 Eric Botcazou <ebotcazou@adacore.com> 8659 8660 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule 8661 -fno-omit-frame-pointer when not optimizing. 8662 86632018-06-30 Alexandre Oliva <aoliva@redhat.com> 8664 8665 PR debug/86064 8666 * dwarf2out.c (loc_list_has_views): Adjust comments. 8667 (dw_loc_list): Split single cross-partition range with 8668 nonzero locview. 8669 86702018-06-29 Kelvin Nilsen <kelvin@gcc.gnu.org> 8671 8672 Backport from mainline 8673 2018-06-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 8674 8675 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change 8676 behavior of vec_pack (vector double, vector double) to match 8677 behavior of vec_float2 (vector double, vector double). 8678 86792018-06-29 Jakub Jelinek <jakub@redhat.com> 8680 8681 * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H. 8682 86832018-06-28 Kelvin Nilsen <kelvin@gcc.gnu.org> 8684 8685 Backport from mainline 8686 2017-05-23 Segher Boessenkool <segher@kernel.crashing.org> 8687 8688 * doc/sourcebuild.texi (Endianness): New subsubsection. 8689 86902018-06-27 Kelvin Nilsen <kelvin@gcc.gnu.org> 8691 8692 Backport from mainline 8693 2018-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org> 8694 8695 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change 8696 behavior of vec_packsu (vector unsigned long long, vector unsigned 8697 long long) to match behavior of vec_packs with same signature. 8698 86992018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> 8700 8701 Backport from trunk 8702 2018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> 8703 8704 * config/rs6000/rs6000-string.c (expand_block_clear): Don't use 8705 unaligned vsx for 16B memset. 8706 87072018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> 8708 8709 Backport from trunk 8710 2018-06-22 Aaron Sawdey <acsawdey@linux.ibm.com> 8711 8712 PR target/86222 8713 * config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32 8714 correctly. 8715 87162018-06-26 Segher Boessenkool <segher@kernel.crashing.org> 8717 8718 Backport from trunk 8719 2018-05-08 Segher Boessenkool <segher@kernel.crashing.org> 8720 8721 PR rtl-optimization/85645 8722 * regrename.c (build_def_use): Also kill the chains that include the 8723 destination of a REG_CFA_REGISTER note. 8724 87252018-06-26 Segher Boessenkool <segher@kernel.crashing.org> 8726 8727 Backport from trunk 8728 2018-05-08 Segher Boessenkool <segher@kernel.crashing.org> 8729 8730 PR rtl-optimization/85645 8731 * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an 8732 insn that has a REG_CFA_REGISTER note. 8733 87342018-06-26 Robin Dapp <rdapp@linux.ibm.com> 8735 8736 * config/s390/s390.h (enum processor_flags): Do not use 8737 default tune parameter when -march was specified. 8738 87392018-06-26 Jakub Jelinek <jakub@redhat.com> 8740 8741 PR target/86314 8742 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s): 8743 Check reg_overlap_mentioned_p in addition to reg_set_p with the same 8744 operands. 8745 87462018-06-25 Michael Meissner <meissner@linux.ibm.com> 8747 8748 Back port from trunk 8749 2018-06-25 Michael Meissner <meissner@linux.ibm.com> 8750 8751 * config.gcc (powerpc64le*): Revert January 16th, 2018 patch that 8752 added IEEE/IBM long double multilib support on PowerPC little 8753 endian Linux systems. 8754 * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise. 8755 (MULTILIB_DEFAULTS): Likewise. 8756 * config/rs6000/rs6000.c (rs6000_option_override_internal): 8757 Likewise. 8758 * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise. 8759 * config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used. 8760 * config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used. 8761 87622018-06-25 Segher Boessenkool <segher@kernel.crashing.org> 8763 8764 Backport from trunk 8765 2018-06-04 Segher Boessenkool <segher@kernel.crashing.org> 8766 8767 * config/rs6000/rs6000.md (abs<mode>2): Handle IFmode. 8768 87692018-05-02 Jan Hubicka <jh@suse.cz> 8770 8771 Backport from mainline 8772 2018-04-30 Jan Hubicka <jh@suse.cz> 8773 8774 * lto-wrapper.c (ltrans_priorities): New static var. 8775 (cmp_priority): New. 8776 (run_gcc): Read priorities and if doing parallel build order 8777 the Makefile by them. 8778 87792018-06-25 Segher Boessenkool <segher@kernel.crashing.org> 8780 8781 Backport from trunk 8782 2018-06-19 Segher Boessenkool <segher@kernel.crashing.org> 8783 8784 PR target/86197 8785 * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An 8786 ieee128 argument takes up only one (vector) register, not two (floating 8787 point) registers. 8788 87892018-06-23 Richard Sandiford <richard.sandiford@linaro.org> 8790 8791 PR tree-optimization/85989 8792 * gimple-ssa-backprop.c (backprop::m_visited_phis): New member 8793 variable. 8794 (backprop::intersect_uses): Check it when deciding whether this 8795 is a backedge reference. 8796 (backprop::process_block): Add each phi to m_visited_phis 8797 after visiting it, then clear it at the end. 8798 87992018-06-22 David Edelsohn <dje.gcc@gmail.com> 8800 8801 Backport from mainline 8802 8803 2018-06-19 Tony Reix <tony.reix@atos.com> 8804 Damien Bergamini <damien.bergamini@atos.com> 8805 David Edelsohn <dje.gcc@gmail.com> 8806 8807 * collect2.c (static_obj): New variable. 8808 (static_libs): New variable. 8809 (is_in_list): Uncomment declaration. 8810 (main): Track AIX libraries linked statically. 8811 (is_in_list): Uncomment definition. 8812 (scan_prog_file): Don't add AIX shared libraries initializer 8813 to constructor list if linking statically. 8814 88152018-06-22 Michael Meissner <meissner@linux.ibm.com> 8816 8817 Back port from trunk 8818 2018-06-21 Michael Meissner <meissner@linux.ibm.com> 8819 8820 * config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit 8821 conversion insn that shows up when pr85657-3.c is compiled using 8822 IEEE 128-bit long double. 8823 8824 Back port from trunk 8825 2018-06-21 Michael Meissner <meissner@linux.ibm.com> 8826 8827 * config/rs6000/rs6000.c (init_float128_ieee): Prevent complex 8828 multiply and divide external functions from being created more 8829 than once. 8830 8831 Back port from trunk 8832 2018-06-21 Michael Meissner <meissner@linux.ibm.com> 8833 8834 * config/rs6000/rs6000.md (neg<mode>2_internal): Use the correct 8835 mode to check whether the mode is IBM extended. 8836 8837 2018-06-18 Michael Meissner <meissner@linux.ibm.com> 8838 8839 PR target/85358 8840 * config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit 8841 floating point modes, so that IFmode is numerically greater than 8842 TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE 8843 to declare the ordering. This prevents IFmode from being 8844 converted to TFmode when long double is IEEE 128-bit on an ISA 3.0 8845 machine. Include rs6000-modes.h to share the fractional values 8846 between genmodes* and the rest of the compiler. 8847 (IFmode): Likewise. 8848 (KFmode): Likewise. 8849 (TFmode): Likewise. 8850 * config/rs6000/rs6000-modes.h: New file. 8851 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the 8852 meaning of rs6000_long_double_size so that 126..128 selects an 8853 appropriate 128-bit floating point type. 8854 (rs6000_option_override_internal): Likewise. 8855 * config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h. 8856 (TARGET_LONG_DOUBLE_128): Change the meaning of 8857 rs6000_long_double_size so that 126..128 selects an appropriate 8858 128-bit floating point type. 8859 (LONG_DOUBLE_TYPE_SIZE): Update comment. 8860 * config/rs6000/rs6000.md (trunciftf2): Correct the modes of the 8861 source and destination to match the standard usage. 8862 (truncifkf2): Likewise. 8863 (copysign<mode>3, IEEE iterator): Rework copysign of float128 on 8864 ISA 2.07 to use an explicit clobber, instead of passing in a 8865 temporary. 8866 (copysign<mode>3_soft): Likewise. 8867 8868 Back port from trunk 8869 2018-06-08 David Edelsohn <dje.gcc@gmail.com> 8870 8871 * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if 8872 TARGET_ELF. 8873 8874 Back port from trunk 8875 2018-06-04 Michael Meissner <meissner@linux.ibm.com> 8876 8877 * config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to 8878 track if we pass or return IEEE 128-bit floating point. 8879 (ieee128_mangling_gcc_8_1): New boolean to say whether to generate 8880 C++ mangling that is compatible with GCC 8.1. 8881 (TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook. 8882 (init_cumulative_args): Note if we pass or return IEEE 128-bit 8883 floating point types. 8884 (rs6000_function_arg_advance_1): Likewise. 8885 (rs6000_mangle_type): Optionally generate mangled names that match 8886 what GCC 8.1 generated for IEEE 128-bit floating point types. 8887 (rs6000_globalize_decl_name): If we have an external function that 8888 passes or returns IEEE 128-bit types, generate a weak reference 8889 from the mangled name used in GCC 8.1 to the current mangled 8890 name. 8891 (rs6000_init_builtins): Make __ibm128 use the long double type if 8892 long double is IBM extended double. Make __float128 use the long 8893 double type if long double is IEEE 128-bit. 8894 8895 PR target/85657 8896 * config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper 8897 macro for __ibm128 built-in functions. 8898 (PACK_IF): Add __ibm128 pack/unpack functions. 8899 (UNPACK_IF): Likewise. 8900 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not 8901 enable long double built-in functions if long double is IEEE 8902 128-bit floating point. 8903 (rs6000_invalid_builtin): Update long double built-in function 8904 error message. 8905 (rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in 8906 functions, adjust the built-in function to use the long double 8907 built-in function if __ibm128 and long double are the same type. 8908 * doc/extend.texi (PowerPC builtins): Update documention for 8909 __builtin_{,un}pack_longdouble. Add documentation for 8910 __builtin_{,un}pack_ibm128. 8911 8912 Back port from trunk 8913 2018-06-01 Segher Boessenkool <segher@kernel.crashing.org> 8914 8915 * config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of 8916 the 128-bit floating point types. Fix function comment. 8917 89182018-06-22 Michael Meissner <meissner@linux.ibm.com> 8919 8920 Back port from trunk 8921 2018-05-21 Michael Meissner <meissner@linux.ibm.com> 8922 8923 PR target/85657 8924 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not 8925 define __ibm128 as long double. 8926 * config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128 8927 as a distinct type with IEEE 128-bit floating point is supported. 8928 (init_float128_ieee): Fix up conversions between IFmode and IEEE 8929 128-bit types to use the correct functions. 8930 (rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to 8931 convert between 128-bit floating point types that have different 8932 modes but the same representation, instead of using gen_lowpart to 8933 makean alias. 8934 * config/rs6000/rs6000.md (IFKF): New iterator for IFmode and 8935 KFmode. 8936 (IFKF_reg): New attributes to give the register constraints for 8937 IFmode and KFmode. 8938 (extend<mode>tf2_internal): New insns to mark an explicit 8939 conversion between 128-bit floating point types that have a 8940 different mode but share the same representation. 8941 89422018-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 8943 8944 PR target/85994 8945 * config/i386/sol2.h (CPP_SPEC): Don't pass -P for 8946 -x assembler-with-cpp. 8947 89482018-06-21 Sebastian Huber <sebastian.huber@embedded-brains.de> 8949 8950 Backported from mainline 8951 2018-06-15 Sebastian Huber <sebastian.huber@embedded-brains.de> 8952 8953 * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom 8954 multilibs for *-*-rtems*. 8955 * config/riscv/t-rtems: New file. 8956 89572018-06-20 Jakub Jelinek <jakub@redhat.com> 8958 8959 Backported from mainline 8960 2018-06-16 Jakub Jelinek <jakub@redhat.com> 8961 8962 PR rtl-optimization/86108 8963 * bb-reorder.c (create_forwarder_block): Renamed to ... 8964 (create_eh_forwarder_block): ... this. Split OLD_BB after labels and 8965 jump from new landing pad to the second part. 8966 (sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad): 8967 Adjust callers. 8968 89692018-06-20 Jakub Jelinek <jakub@redhat.com> 8970 8971 PR debug/86194 8972 * var-tracking.c (use_narrower_mode_test): Check if shift amount can 8973 be narrowed. 8974 8975 PR tree-optimization/86231 8976 * tree-vrp.c (union_ranges): For ( [ ) ] or ( )[ ] range and 8977 anti-range don't overwrite *vr0min before using it to compute *vr0max. 8978 89792018-06-19 Max Filippov <jcmvbkbc@gmail.com> 8980 8981 Backport from mainline 8982 2018-06-19 Max Filippov <jcmvbkbc@gmail.com> 8983 8984 * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec 8985 constant. 8986 (allocate_stack, frame_blockage, *frame_blockage): New patterns. 8987 89882018-06-19 Eric Botcazou <ebotcazou@adacore.com> 8989 8990 * gimplify.c (gimplify_init_constructor): Really never clear for an 8991 incomplete constructor if CONSTRUCTOR_NO_CLEARING is set. 8992 89932018-06-18 Martin Sebor <msebor@redhat.com> 8994 8995 PR c/82063 8996 * calls.c (alloc_max_size): Correct a logic error/typo. 8997 Treat excessive arguments as infinite. Warn for invalid arguments. 8998 * doc/invoke.texi (-Walloc-size-larger-than): Update. 8999 90002018-06-16 Jakub Jelinek <jakub@redhat.com> 9001 9002 PR middle-end/86095 9003 * common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var, 9004 documented as preserved for backward compatibility only. 9005 * doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation. 9006 90072018-06-15 Jakub Jelinek <jakub@redhat.com> 9008 9009 PR middle-end/85878 9010 * expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P 9011 check from first store_expr, use to_mode instead of GET_MODE (to_rtx). 9012 Only call store_expr for halves if the mode is the same. 9013 9014 PR middle-end/86123 9015 * match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions. 9016 Fix up comment formatting. 9017 90182018-06-14 Jakub Jelinek <jakub@redhat.com> 9019 9020 PR middle-end/86122 9021 * match.pd ((A +- CST1) +- CST2): Punt if last resort 9022 unsigned_type_for returns NULL. 9023 9024 PR target/85945 9025 * lower-subreg.c (find_decomposable_subregs): Don't decompose float 9026 subregs of multi-word pseudos unless the float mode has word size. 9027 90282018-06-14 Richard Biener <rguenther@suse.de> 9029 9030 PR middle-end/86139 9031 * tree-vect-generic.c (build_word_mode_vector_type): Remove 9032 duplicate and harmful type_hash_canon. 9033 * tree.c (type_hash_canon): Assert we didn't find ourselves. 9034 90352018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de> 9036 9037 Backport from mainline 9038 2018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de> 9039 9040 * config/rtems.h (STDINT_LONG32): Define. 9041 90422018-05-05 Roland McGrath <mcgrathr@google.com> 9043 9044 PR other/77609 9045 * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for 9046 any section for which we don't know a specific type it should have, 9047 regardless of name. Previously this was done only for the exact 9048 names ".init_array", ".fini_array", and ".preinit_array". 9049 (default_elf_asm_named_section): Add comment about 9050 relationship with default_section_type_flags and SECTION_NOTYPE. 9051 (get_section): Don't consider it a type conflict if one side has 9052 SECTION_NOTYPE and the other doesn't, as long as neither has the 9053 SECTION_BSS et al used in the default_section_type_flags logic. 9054 90552018-06-13 Martin Sebor <msebor@redhat.com> 9056 9057 PR tree-optimization/86114 9058 * gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS 9059 of integer types. 9060 * tree-ssa-strlen.c (maybe_set_strlen_range): Same. 9061 90622018-06-13 Eric Botcazou <ebotcazou@adacore.com> 9063 9064 PR target/86048 9065 * config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative 9066 offsets for register save directives. Emit a second batch of save 9067 directives, if need be, when the function accesses prior frames. 9068 90692018-06-11 Jason Merrill <jason@redhat.com> 9070 9071 PR c++/80485 - inline function non-zero address. 9072 * symtab.c (nonzero_address): Check DECL_COMDAT. 9073 90742018-06-11 Peter Bergner <bergner@vnet.ibm.com> 9075 9076 Backport from mainline 9077 2018-06-08 Peter Bergner <bergner@vnet.ibm.com> 9078 9079 PR target/85755 9080 * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC 9081 addresses. 9082 90832018-06-11 Segher Boessenkool <segher@kernel.crashing.org> 9084 9085 Backport from trunk 9086 2018-06-11 Segher Boessenkool <segher@kernel.crashing.org> 9087 9088 PR target/85755 9089 * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers 9090 on the correct operand. 9091 (*movdi_internal64): Ditto. 9092 90932018-06-08 Carl Love <cel@us.ibm.com> 9094 9095 Backport from mainline 9096 * gcc/config/rs6000/vsx.md (vextract_fp_from_shorth, 9097 vextract_fp_from_shortl): Add BE support. 9098 90992018-06-08 Carl Love <cel@us.ibm.com> 9100 9101 Backport from mainline 9102 * gcc/config/rs6000/vsx.md (first_match_index_<mode>): 9103 Calculate index using natureal element order. 9104 (first_match_or_eos_index_<mode>): 9105 Calculate index using natural element order. 9106 (first_match_index_<mode>): 9107 Calculate index using natural element order. 9108 (first_match_or_eos_index_<mode>): 9109 Calculate index using natural order. 9110 (define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>. 9111 for BE and LE modes. 9112 * gcc/config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB, 9113 P9V_BUILTIN_VCLZLSBB_V16QI. 9114 * gcc/config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode 9115 specific. 9116 91172018-06-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9118 9119 Backport from mainline 9120 2018-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9121 9122 PR target/81497 9123 * config/arm/arm-builtins.c (arm_type_qualifiers): Add 9124 qualifier_void_pointer and qualifier_const_void_pointer. 9125 (arm_ldc_qualifiers, arm_stc_qualifiers): Use the above. 9126 (arm_init_builtins): Handle the above. 9127 * config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc, 9128 __arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2, 9129 __arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for 9130 void intrinsics. 9131 91322018-06-07 Uros Bizjak <ubizjak@gmail.com> 9133 9134 PR target/85684 9135 * config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>: 9136 Generate SImode target register for null target. 9137 <case IX86_BUILTIN_XGETBV>: Ditto. 9138 <case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation. 9139 * config/i386/xsaveintrin.h (_xgetbv): Add missing return. 9140 91412018-06-07 Peter Bergner <bergner@vnet.ibm.com> 9142 9143 Backport from mainline 9144 2018-06-06 Peter Bergner <bergner@vnet.ibm.com> 9145 9146 PR target/63177 9147 * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9. 9148 Don't handle -mcpu=power8 if -mpower9-vector is also used. 9149 91502018-06-06 Richard Biener <rguenther@suse.de> 9151 9152 Backport from mainline 9153 2018-06-04 Richard Biener <rguenther@suse.de> 9154 9155 PR tree-optimization/86038 9156 * tracer.c (find_best_successor): Check probability for 9157 being initialized, bail out if not. 9158 9159 2018-05-30 Richard Biener <rguenther@suse.de> 9160 9161 PR tree-optimization/85964 9162 * tracer.c (better_p): Drop initialized count check, we only 9163 call the function with initialized counts now. 9164 (find_best_successor): Do find a best edge if one 9165 has uninitialized count. 9166 (find_best_predecessor): Likewise. Do BB frequency check only 9167 if count is initialized. 9168 9169 2018-05-28 Richard Biener <rguenther@suse.de> 9170 9171 PR tree-optimization/85934 9172 * tree-vect-generic.c (expand_vector_operations_1): Hoist 9173 vector boolean check before scalar optimization. 9174 9175 2018-05-22 Richard Biener <rguenther@suse.de> 9176 9177 PR tree-optimization/85863 9178 * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant 9179 comparisons when vectype is specified. 9180 (vectorizable_condition): Do not specify vectype for 9181 vect_is_simple_cond when SLP vectorizing. 9182 91832018-06-05 Andreas Krebbel <krebbel@linux.ibm.com> 9184 9185 Backport from mainline 9186 2018-06-05 Andreas Krebbel <krebbel@linux.ibm.com> 9187 9188 * config/s390/s390-builtin-types.def: Add void function type. 9189 * config/s390/s390-builtins.def: Use the function type for the 9190 tbeginc builtin. 9191 91922018-06-04 Martin Sebor <msebor@redhat.com> 9193 9194 PR c/85623 9195 * calls.c (maybe_warn_nonstring_arg): Use string length to set 9196 or ajust the presumed bound on an operation to avoid unnecessary 9197 warnings. 9198 91992018-06-04 Richard Earnshaw <rearnsha@arm.com> 9200 9201 PR target/86003 9202 * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list 9203 of bits to ignore when comparing architectures. 9204 92052018-06-04 Jakub Jelinek <jakub@redhat.com> 9206 9207 PR c++/86025 9208 * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE. 9209 92102018-06-01 Bill Schmidt <wschmidt@linux.ibm.com> 9211 9212 PR tree-optimization/85712 9213 Backport from mainline: 9214 2018-05-23 Bill Schmidt <wschmidt@linux.ibm.com> 9215 9216 PR tree-optimization/85712 9217 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add 9218 first_interp field. 9219 (alloc_cand_and_find_basis): Initialize first_interp field. 9220 (slsr_process_mul): Modify first_interp field. 9221 (slsr_process_add): Likewise. 9222 (slsr_process_cast): Modify first_interp field for each new 9223 interpretation. 9224 (slsr_process_copy): Likewise. 9225 (dump_candidate): Dump first_interp field. 9226 (replace_mult_candidate): Process all interpretations, not just 9227 subsequent ones. 9228 (replace_rhs_if_not_dup): Likewise. 9229 (replace_one_candidate): Likewise. 9230 9231 Backport from mainline: 9232 2018-05-25 Bill Schmidt <wschmidt@linux.ibm.com> 9233 9234 PR tree-optimization/85712 9235 * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if 9236 this candidate has already been replaced in-situ by a copy. 9237 92382018-05-31 Uros Bizjak <ubizjak@gmail.com> 9239 9240 PR target/85950 9241 * config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2): 9242 Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q} 9243 sequence. 9244 (sse4_1_round<mode>2): Use nonimmediate_operand 9245 for operand 1 predicate. 9246 92472018-05-31 Jakub Jelinek <jakub@redhat.com> 9248 9249 PR target/85984 9250 * bb-reorder.c (pass_partition_blocks::gate): Return false for 9251 functions with naked attribute. 9252 92532018-05-31 H.J. Lu <hongjiu.lu@intel.com> 9254 9255 PR target/85829 9256 * config/i386/x86-tune.def: Re-enable partial_reg_dependency 9257 and movx for Haswell. 9258 92592018-05-30 Jakub Jelinek <jakub@redhat.com> 9260 9261 Backported from mainline 9262 2018-05-14 Jakub Jelinek <jakub@redhat.com> 9263 9264 PR target/85756 9265 * config/i386/i386.md: Disallow non-commutative arithmetics in 9266 last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim 9267 optimization. Use COMMUTATIVE_ARITH_P test rather than != MINUS 9268 in the peephole2 before it. 9269 9270 2018-05-08 Jakub Jelinek <jakub@redhat.com> 9271 9272 PR target/85683 9273 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0 9274 after cmpelim optimization. 9275 92762018-05-28 H.J. Lu <hongjiu.lu@intel.com> 9277 9278 Backport from mainline 9279 2018-05-26 H.J. Lu <hongjiu.lu@intel.com> 9280 9281 PR target/85900 9282 PR target/85345 9283 * varasm.c (assemble_alias): Lookup ifunc attribute on error. 9284 9285 2018-05-24 H.J. Lu <hongjiu.lu@intel.com> 9286 9287 PR target/85900 9288 PR target/85345 9289 * varasm.c (assemble_alias): Check ifunc_resolver only on 9290 FUNCTION_DECL. 9291 9292 2018-05-22 H.J. Lu <hongjiu.lu@intel.com> 9293 9294 PR target/85345 9295 * cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc 9296 attribute. 9297 (cgraph_node::create_alias): Likewise. 9298 (cgraph_node::get_availability): Check ifunc_resolver instead 9299 of looking up ifunc attribute. 9300 * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. 9301 * varasm.c (do_assemble_alias): Likewise. 9302 (assemble_alias): Likewise. 9303 (default_binds_local_p_3): Likewise. 9304 * cgraph.h (cgraph_node): Add ifunc_resolver. 9305 (cgraph_node::only_called_directly_or_aliased_p): Return false 9306 for IFUNC resolver. 9307 * lto-cgraph.c (input_node): Set ifunc_resolver for ifunc 9308 attribute. 9309 * symtab.c (symtab_node::verify_base): Verify that ifunc_resolver 9310 is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)). 9311 (symtab_node::binds_to_current_def_p): Check ifunc_resolver 9312 instead of looking up ifunc attribute. 9313 93142018-05-27 John David Anglin <danglin@gcc.gnu.org> 9315 9316 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. 9317 93182018-05-25 Richard Biener <rguenther@suse.de> 9319 9320 PR c++/85912 9321 * tree-dump.c (dequeue_and_dump): Remove access to removed 9322 operand 2 of a SWITCH_EXPR. 9323 93242018-05-24 Uros Bizjak <ubizjak@gmail.com> 9325 9326 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>): 9327 Add {q} suffix to insn mnemonic. 9328 93292018-05-24 Uros Bizjak <ubizjak@gmail.com> 9330 9331 PR target/85903 9332 * config/i386/sse.md (movdi_to_sse): Do not generate pseudo 9333 when memory input operand is handled. 9334 93352018-05-23 Bin Cheng <bin.cheng@arm.com> 9336 9337 Backport from mainline 9338 2018-05-17 Bin Cheng <bin.cheng@arm.com> 9339 Richard Biener <rguenther@suse.de> 9340 9341 PR tree-optimization/85793 9342 * tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load 9343 for VMAT_ELEMENTWISE. 9344 93452018-05-23 Richard Biener <rguenther@suse.de> 9346 9347 PR middle-end/85874 9348 * tree-data-ref.c (create_runtime_alias_checks): Defer 9349 and ignore overflow warnings. 9350 93512018-05-23 Martin Liska <mliska@suse.cz> 9352 9353 Backport from mainline 9354 2018-05-23 Yury Gribov <tetra2005@gmail.com> 9355 9356 PR tree-optimization/85822 9357 * tree-vrp.c (is_masked_range_test): Fix handling of negative 9358 constants. 9359 93602018-05-23 Martin Liska <mliska@suse.cz> 9361 9362 Backport from mainline 9363 2018-05-11 Martin Liska <mliska@suse.cz> 9364 9365 PR sanitizer/85556 9366 * doc/extend.texi: Document LLVM style format for no_sanitize 9367 attribute. 9368 93692018-05-22 Martin Sebor <msebor@redhat.com> 9370 9371 PR middle-end/85643 9372 * calls.c (get_attr_nonstring_decl): Handle MEM_REF. 9373 93742018-05-22 Richard Sandiford <richard.sandiford@linaro.org> 9375 9376 PR tree-optimization/85814 9377 * tree-ssa-strlen.c (get_stridx_plus_constant): Cope with 9378 a null return from get_strinfo when unsharing the next 9379 strinfo in the chain. 9380 93812018-05-21 Pat Haugen <pthaugen@us.ibm.com> 9382 9383 Backport from mainline 9384 2018-05-17 Pat Haugen <pthaugen@us.ibm.com> 9385 Segher Boessenkool <segher@kernel.crashing.org> 9386 9387 PR target/85698 9388 * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest operand. 9389 93902018-05-18 Toon Moene <toon@moene.org> 9391 9392 * doc/invoke.texi: Move -floop-unroll-and-jam documentation 9393 directly after that of -floop-interchange. Indicate that both 9394 options are enabled by default when specifying -O3. 9395 93962018-05-11 Martin Jambor <mjambor@suse.cz> 9397 9398 PR ipa/85655 9399 * ipa-cp.c (intersect_with_plats): Check that the lattice contains 9400 single const. 9401 94022018-05-11 Richard Earnshaw <rearnsha@arm.com> 9403 9404 PR target/85733 9405 * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature. 9406 94072018-05-11 Richard Earnshaw <rearnsha@arm.com> 9408 9409 PR target/85606 9410 * config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now 9411 equivalent. 9412 (cortex-m0): Use armv6s-m isa. 9413 (cortex-m0plus): Likewise. 9414 (cortex-m1): Likewise. 9415 (cortex-m0.small-multiply): Likewise. 9416 (cortex-m0plus.small-multiply): Likewise. 9417 (cortex-m1.small-multiply): Likewise. 9418 94192018-05-09 Eric Botcazou <ebotcazou@adacore.com> 9420 9421 PR rtl-optimization/85638 9422 * bb-reorder.c: Include common/common-target.h. 9423 (create_forwarder_block): New function extracted from... 9424 (fix_up_crossing_landing_pad): ...here. Rename into... 9425 (dw2_fix_up_crossing_landing_pad): ...this. 9426 (sjlj_fix_up_crossing_landing_pad): New function. 9427 (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode, 9428 call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges 9429 from both partitions and exit the loop after one iteration. 9430 94312018-05-08 Richard Biener <rguenther@suse.de> 9432 9433 Backport from mainline 9434 2018-05-04 Richard Biener <rguenther@suse.de> 9435 9436 PR middle-end/85588 9437 * fold-const.c (negate_expr_p): Restrict negation of operand 9438 zero of a division to when we know that can happen without 9439 overflow. 9440 (fold_negate_expr_1): Likewise. 9441 9442 2018-05-03 Richard Biener <rguenther@suse.de> 9443 9444 PR tree-optimization/85615 9445 * tree-ssa-threadupdate.c (thread_block_1): Only allow exits 9446 to loops not nested in BBs loop father to avoid creating multi-entry 9447 loops. 9448 9449 2018-05-02 Richard Biener <rguenther@suse.de> 9450 9451 PR middle-end/85567 9452 * gimplify.c (gimplify_save_expr): When in SSA form allow 9453 SAVE_EXPRs to compute to SSA vars. 9454 9455 2018-05-02 Richard Biener <rguenther@suse.de> 9456 9457 PR tree-optimization/85597 9458 * tree-vect-stmts.c (vectorizable_operation): For ternary SLP 9459 do not use split vect_get_vec_defs call but call vect_get_slp_defs 9460 directly. 9461 94622018-05-08 Richard Earnshaw <rearnsha@arm.com> 9463 9464 PR target/85658 9465 * config/arm/parsecpu.awk (check_cpu): Fix operator precedence. 9466 (check_arch): Likewise. 9467 (check_fpu): Return the result rather than printing it. 9468 (end arch): Fix operator precedence. 9469 (end cpu): Likewise. 9470 (END): Print the result from check_fpu. 9471 94722018-05-08 Richard Biener <rguenther@suse.de> 9473 9474 Backport from mainline 9475 2018-05-04 Richard Biener <rguenther@suse.de> 9476 9477 * bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check. 9478 * gimple-ssa-store-merging.c 9479 (imm_store_chain_info::output_merged_store): Remove redundant create, 9480 release split_store vector contents on failure. 9481 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking 9482 scalar stmt vector on cache hit. 9483 9484 2018-05-04 Richard Biener <rguenther@suse.de> 9485 9486 PR middle-end/85627 9487 * tree-complex.c (tree_lower_complex): Handle removed blocks. 9488 94892018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 9490 9491 Backport from mainline. 9492 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 9493 9494 * config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with 9495 GET_MODE_MASK before any checking. 9496 (nds32_can_use_bset_p): Likewise. 9497 (nds32_can_use_btgl_p): Likewise. 9498 94992018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 9500 9501 Backport from mainline. 9502 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 9503 9504 * config/nds32/nds32-doubleword.md: New define_split pattern for 9505 illegal register number. 9506 95072018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 9508 9509 Backport from mainline. 9510 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 9511 9512 * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier. 9513 95142018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 9515 9516 Backport from mainline. 9517 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 9518 9519 * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character. 9520 95212018-05-06 Jakub Jelinek <jakub@redhat.com> 9522 9523 PR c++/85659 9524 * cfgexpand.c (expand_asm_stmt): Don't create a temporary if 9525 the type is addressable. Don't force op into register if it has 9526 BLKmode. 9527 95282018-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9529 9530 Backport from trunk. 9531 2018-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9532 9533 PR target/85512 9534 * config/aarch64/constraints.md (Usg): Limit to 31. 9535 (Usj): Limit to 63. 9536 95372018-05-02 Jakub Jelinek <jakub@redhat.com> 9538 9539 * BASE-VER: Set to 8.1.1. 9540 95412018-05-02 Release Manager 9542 9543 * GCC 8.1.0 released. 9544 95452018-05-02 Richard Sandiford <richard.sandiford@linaro.org> 9546 9547 PR tree-optimization/85586 9548 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only 9549 exit early for statements in the same group if the accesses are 9550 not strided. 9551 95522018-05-01 Jakub Jelinek <jakub@redhat.com> 9553 9554 PR web/85578 9555 * doc/install.texi2html: Replace _002d with - and _002a with * in 9556 generated html files using sed. 9557 95582018-04-27 Martin Jambor <mjambor@suse.cz> 9559 9560 PR ipa/85549 9561 * ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure 9562 the jump function allows for passing through aggregate values. 9563 95642018-04-27 Jeff Law <law@redhat.com> 9565 9566 * config.gcc: Mark tile* targets as deprecated/obsolete. 9567 95682018-04-27 Jakub Jelinek <jakub@redhat.com> 9569 9570 PR tree-optimization/85529 9571 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB 9572 argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE, 9573 rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious 9574 zero extension or masking of the MSB bit. 9575 (optimize_range_tests): Add FIRST_BB argument, pass it through 9576 to optimize_range_tests_var_bound. 9577 (maybe_optimize_range_tests, reassociate_bb): Adjust 9578 optimize_range_tests callers. 9579 95802018-04-26 Richard Biener <rguenther@suse.de> 9581 Jakub Jelinek <jakub@redhat.com> 9582 9583 * cgraph.h (symbol_table): Just declare debug method here. 9584 * symtab.c (symbol_table::debug): Define. 9585 95862018-04-26 Jonathan Wakely <jwakely@redhat.com> 9587 9588 * doc/invoke.texi (-Wreturn-type): Document default status for C++. 9589 95902018-04-25 H.J. Lu <hongjiu.lu@intel.com> 9591 9592 Backport from mainline 9593 2018-04-25 Sebastian Peryt <sebastian.peryt@intel.com> 9594 9595 PR target/85473 9596 * config/i386/i386.c (ix86_expand_builtin): Change memory 9597 operand to XI, extend p0 to Pmode. 9598 * config/i386/i386.md: Change unspec volatile and operand 9599 1 mode to XI, change operand 0 mode to P. 9600 96012018-04-25 Jakub Jelinek <jakub@redhat.com> 9602 9603 * DEV-PHASE: Set to prerelease. 9604 96052018-04-24 Segher Boessenkool <segher@kernel.crashing.org> 9606 9607 * config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes 9608 in __abskf2 and __powikf2. 9609 96102018-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9611 9612 PR target/85512 9613 * config/aarch64/constraints.md (Usg, Usj): New constraints. 9614 * config/aarch64/iterators.md (cmode_simd): New mode attribute. 9615 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3): 9616 Use the above on operand 2. Reindent. 9617 (*aarch64_lshr_sisd_or_int_<mode>3): Likewise. 9618 96192018-04-24 H.J. Lu <hongjiu.lu@intel.com> 9620 9621 PR target/85485 9622 * common/config/i386/i386-common.c (ix86_handle_option): Don't 9623 handle OPT_mcet. 9624 * config/i386/i386.opt (mcet): Removed. 9625 * doc/install.texi: Remove -mcet documentation. 9626 * doc/invoke.texi: Likewise. 9627 96282018-04-24 H.J. Lu <hongjiu.lu@intel.com> 9629 9630 PR target/85485 9631 * doc/install.texi: Remove -mcet from bootstrap-cet. 9632 96332018-04-24 Jakub Jelinek <jakub@redhat.com> 9634 9635 PR target/85511 9636 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define 9637 __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 9638 if TARGET_64BIT. 9639 9640 PR target/85503 9641 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if 9642 const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool 9643 containing a CONST_VECTOR. 9644 96452018-04-24 Cesar Philippidis <cesar@codesourcery.com> 9646 9647 * doc/install.texi: Update newlib dependency for nvptx. 9648 96492018-04-24 Jakub Jelinek <jakub@redhat.com> 9650 9651 PR target/85508 9652 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL 9653 instead of INTVAL when shifting x left. 9654 96552018-04-24 Andreas Krebbel <krebbel@linux.ibm.com> 9656 9657 PR tree-optimization/85478 9658 * tree-vect-loop.c (vect_analyze_loop_2): Do not call 9659 vect_grouped_store_supported for single element vectors. 9660 96612018-04-24 Richard Biener <rguenther@suse.de> 9662 9663 PR target/85491 9664 * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided 9665 load cost increase to the case of non-constant step. 9666 96672018-04-24 Jakub Jelinek <jakub@redhat.com> 9668 9669 PR target/84828 9670 * reg-stack.c (move_for_stack_reg): Don't fail assertion about dead 9671 destination if any_malformed_asm. 9672 96732018-04-23 Eric Botcazou <ebotcazou@adacore.com> 9674 9675 PR middle-end/85496 9676 * expr.c (store_field): In the bitfield case, if the value comes from 9677 a function call and is returned in registers by means of a PARALLEL, 9678 do not change the mode of the temporary unless BLKmode and VOIDmode. 9679 96802018-04-23 Andrey Belevantsev <abel@ispras.ru> 9681 9682 PR rtl-optimization/85423 9683 * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard 9684 dependencies to debug insns when the previous insn is non-debug. 9685 96862018-04-23 Claudiu Zissulescu <claziss@synopsys.com> 9687 9688 * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec 9689 enums into a single definition. 9690 (fls): Fix predicates and printing. 9691 (seti): Likewise. 9692 96932018-04-23 Claudiu Zissulescu <claziss@synopsys.com> 9694 9695 * config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove. 9696 * config/arc/arc.c (arc_expand_builtin): Sleep accepts registers 9697 and short u6 immediate. 9698 (check_if_valid_sleep_operand): Remove. 9699 * config/arc/arc.md (Sleep): Accepts registers and u6 immediates. 9700 97012018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 9702 9703 * config/nds32/nds32.c (nds32_compute_stack_frame): Consider 9704 flag_always_save_lp condition. 9705 * config/nds32/nds32.opt (malways-save-lp): New option. 9706 97072018-04-22 Shiva Chen <shiva0217@gmail.com> 9708 9709 * config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare. 9710 * config/nds32/nds32.c (nds32_use_load_post_increment): New. 9711 * config/nds32/nds32.h 9712 (USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define. 9713 (USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define. 9714 97152018-04-22 Shiva Chen <shiva0217@gmail.com> 9716 9717 * config/nds32/nds32-protos.h (nds32_ls_333_p): Remove. 9718 * config/nds32/nds32.c (nds32_ls_333_p): Remove. 9719 97202018-04-22 Shiva Chen <shiva0217@gmail.com> 9721 Chung-Ju Wu <jasonwucj@gmail.com> 9722 9723 * config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode): 9724 Declare. 9725 * config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function. 9726 * config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify. 9727 97282018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 9729 9730 * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value. 9731 97322018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 9733 9734 * config/nds32/nds32-protos.h (nds32_data_alignment, 9735 nds32_local_alignment): Declare. 9736 * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment, 9737 nds32_local_alignment): New functions. 9738 (TARGET_CONSTANT_ALIGNMENT): Define. 9739 * config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define. 9740 97412018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 9742 9743 * config/nds32/nds32.c 9744 (TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file. 9745 (TARGET_MODES_TIEABLE_P): Likewise. 9746 97472018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 9748 9749 * config/nds32/nds32.c (nds32_asm_file_start): Display optimization 9750 level Ofast and Og. 9751 97522018-04-22 Monk Chiang <sh.chiang04@gmail.com> 9753 Chung-Ju Wu <jasonwucj@gmail.com> 9754 9755 * config/nds32/constants.md (unspec_volatile_element): Add enum values 9756 for unaligned access. 9757 * config/nds32/nds32-intrinsic.c: Implementation of expanding 9758 unaligned access. 9759 * config/nds32/nds32-intrinsic.md: Likewise. 9760 * config/nds32/nds32_intrinsic.h: Likewise. 9761 * config/nds32/nds32.h (nds32_builtins): Likewise. 9762 * config/nds32/nds32.opt (munaligned-access): New option. 9763 * config/nds32/nds32.c (nds32_asm_file_start): Display 9764 flag_unaligned_access status. 9765 97662018-04-20 Kito Cheng <kito.cheng@gmail.com> 9767 9768 * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if 9769 -mno-relax is present. 9770 * config/riscv/linux.h (LINK_SPEC): Ditto. 9771 97722018-04-20 Martin Sebor <msebor@redhat.com> 9773 9774 PR c/85365 9775 * gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict 9776 for null pointers. 9777 (gimple_fold_builtin_stxcpy_chk): Same. 9778 * gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same. 9779 97802018-04-20 Michael Meissner <meissner@linux.ibm.com> 9781 9782 PR target/85456 9783 * config/rs6000/rs6000.c (init_float128_ieee): Add support to call 9784 __powikf2 when long double is IEEE 128-bit. 9785 97862018-04-20 Kito Cheng <kito.cheng@gmail.com> 9787 9788 * config/riscv/riscv.c (riscv_first_stack_step): Round up min 9789 step to make sure stack always aligned. 9790 97912018-04-20 Carl Love <cel@us.ibm.com> 9792 9793 PR target/83402 9794 * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add 9795 size check for arg0. 9796 97972018-04-20 Nathan Sidwell <nathan@codesourcery.com> 9798 Tom de Vries <tom@codesourcery.com> 9799 9800 PR target/85445 9801 * config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining): 9802 Emit insns for calls too. 9803 (nvptx_find_par): Always look for worker-level predecessor insn. 9804 (nvptx_propagate): Add is_call parm, return bool. Copy frame for 9805 calls. 9806 (nvptx_vpropagate, nvptx_wpropagate): Adjust. 9807 (nvptx_process_pars): Propagate frames for calls. 9808 98092018-04-20 H.J. Lu <hongjiu.lu@intel.com> 9810 9811 PR target/85469 9812 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): 9813 Removed. 9814 (OPTION_MASK_ISA_IBT_UNSET): Likewise. 9815 (ix86_handle_option): Don't handle OPT_mibt. 9816 * config/i386/cet.h: Check __CET__ instead of __IBT__ and 9817 __SHSTK__. 9818 * config/i386/driver-i386.c (host_detect_local_cpu): Remove 9819 has_ibt and ibt. 9820 * config/i386/i386-c.c (ix86_target_macros_internal): Don't 9821 check OPTION_MASK_ISA_IBT nor flag_cf_protection. 9822 (ix86_target_macros): Define __CET__ with flag_cf_protection 9823 for -fcf-protection. 9824 * config/i386/i386.c (isa2_opts): Remove -mibt. 9825 * config/i386/i386.h (TARGET_IBT): Removed. 9826 (TARGET_IBT_P): Likewise. 9827 (ix86_valid_target_attribute_inner_p): Don't check OPT_mibt. 9828 * config/i386/i386.md (nop_endbr): Don't check TARGET_IBT. 9829 * config/i386/i386.opt (mcet): Update help message. 9830 (mshstk): Likewise. 9831 (mibt): Removed. 9832 * doc/invoke.texi: Remove -mibt. Document __CET__. Document 9833 -mcet as an alias for -mshstk. 9834 98352018-04-20 Richard Biener <rguenther@suse.de> 9836 9837 PR middle-end/85475 9838 * match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential 9839 complexity by forcing a single use of the multiply operand. 9840 98412018-04-20 Martin Jambor <mjambor@suse.cz> 9842 9843 ipa/85449 9844 * ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding 9845 recursion dependency to only apply to non-clones. 9846 98472018-04-20 Martin Jambor <mjambor@suse.cz> 9848 9849 ipa/85447 9850 * ipa-cp.c (create_specialized_node): Check that clones of 9851 self-recursive edges exist during IPA-CP. 9852 98532018-04-19 Toon Moene <toon@moene.org> 9854 9855 * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled 9856 by -O3. 9857 98582018-04-19 Jakub Jelinek <jakub@redhat.com> 9859 9860 PR tree-optimization/85467 9861 * fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use 9862 VECTOR_TYPE_P macro. If type is vector type, VIEW_CONVERT_EXPR the 9863 VECTOR_CST element to type. 9864 98652018-04-19 H.J. Lu <hongjiu.lu@intel.com> 9866 9867 PR target/85397 9868 * config/i386/i386.h (STACK_SAVEAREA_MODE): New. 9869 * config/i386/i386.md (builtin_setjmp_setup): Removed. 9870 (builtin_longjmp): Likewise. 9871 (save_stack_nonlocal): New pattern. 9872 (restore_stack_nonlocal): Likewise. 9873 98742018-04-19 H.J. Lu <hongjiu.lu@intel.com> 9875 9876 PR target/85404 9877 * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): 9878 Replace ASM_OUTPUT_LABEL with fprintf. 9879 98802018-04-19 H.J. Lu <hongjiu.lu@intel.com> 9881 9882 PR target/85417 9883 * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): 9884 Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK. 9885 * config/i386/i386-c.c (ix86_target_macros_internal): Also 9886 define __IBT__ and __SHSTK__ for -fcf-protection. 9887 * config/i386/i386.c (pass_insert_endbranch::gate): Don't check 9888 TARGET_IBT. 9889 (ix86_trampoline_init): Likewise. 9890 (x86_output_mi_thunk): Likewise. 9891 (ix86_notrack_prefixed_insn_p): Likewise. 9892 (ix86_option_override_internal): Don't disallow -fcf-protection. 9893 * config/i386/i386.md (rdssp<mode>): Also enable for 9894 -fcf-protection. 9895 (incssp<mode>): Likewise. 9896 (nop_endbr): Likewise. 9897 * config/i386/i386.opt (mcet): Change help message to built-in 9898 functions only. 9899 (mibt): Likewise. 9900 (mshstk): Likewise. 9901 * doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition 9902 on -fcf-protection. Change -mcet, -mibt and -mshstk to only 9903 enable CET built-in functions. 9904 99052018-04-19 Sebastian Peryt <sebastian.peryt@intel.com> 9906 9907 * common/config/i386/i386-common.c 9908 (OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET, 9909 OPTION_MASK_ISA_MOVDIRI_UNSET, 9910 OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines. 9911 (ix86_handle_option): Handle -mmovdiri and -mmovdir64b. 9912 * config.gcc (movdirintrin.h): New header. 9913 * config/i386/cpuid.h (bit_MOVDIRI, 9914 bit_MOVDIR64B): New bits. 9915 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri 9916 and -mmvodir64b. 9917 * config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED), 9918 (VOID, PVOID, PCVOID)): New function types. 9919 * config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32, 9920 __builtin_ia32_directstoreu_u64, 9921 __builtin_ia32_movdir64b): New builtins. 9922 * config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New. 9923 * config/i386/i386.c (ix86_target_string): Added -mmovdir64b 9924 and -mmovdiri. 9925 (ix86_valid_target_attribute_inner_p): Ditto. 9926 (ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED 9927 and VOID_FTYPE_PUNSIGNED_UNSIGNED. 9928 (ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B. 9929 * config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P, 9930 TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New. 9931 * config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New. 9932 (movdiri<mode>, movdir64b_<mode>): New. 9933 * config/i386/i386.opt: Add -mmovdiri and -mmovdir64b. 9934 * config/i386/immintrin.h: Include movdirintrin.h. 9935 * config/i386/movdirintrin.h: New file. 9936 * doc/invoke.texi: Added -mmovdiri and -mmovdir64b. 9937 99382018-04-19 Richard Biener <rguenther@suse.de> 9939 9940 PR middle-end/85455 9941 * cfg.c (clear_bb_flags): When loop state says we have 9942 marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP. 9943 99442018-04-19 Richard Biener <rguenther@suse.de> 9945 9946 PR tree-optimization/84737 9947 * tree-vect-data-refs.c (vect_copy_ref_info): New function 9948 copying restrict info. 9949 (vect_setup_realignment): Use it. 9950 * tree-vectorizer.h (vect_copy_ref_info): Declare. 9951 * tree-vect-stmts.c (vectorizable_store): Copy ref info from 9952 the first DR to all generated stores. 9953 (vectorizable_load): Likewise for loads. 9954 99552018-04-19 Jakub Jelinek <jakub@redhat.com> 9956 9957 PR tree-optimization/85446 9958 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require 9959 the integral and pointer types to have the same precision. 9960 9961 * doc/install.texi: Document --disable-cet being the default and 9962 --enable-cet=auto. 9963 99642018-04-18 Martin Liska <mliska@suse.cz> 9965 9966 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding 9967 style. 9968 99692018-04-18 Martin Liska <mliska@suse.cz> 9970 9971 Revert 9972 2018-03-02 Eric Botcazou <ebotcazou@adacore.com> 9973 9974 PR ipa/83983 9975 * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both 9976 arguments if they are comparable. 9977 99782018-04-18 Martin Liska <mliska@suse.cz> 9979 9980 Revert 9981 2018-03-13 Eric Botcazou <ebotcazou@adacore.com> 9982 9983 PR lto/84805 9984 * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of 9985 incomplete types. 9986 99872018-04-18 H.J. Lu <hongjiu.lu@intel.com> 9988 9989 PR target/85388 9990 * config/i386/i386.c (ix86_expand_split_stack_prologue): Insert 9991 ENDBR after calling __morestack. 9992 99932018-04-18 David Malcolm <dmalcolm@redhat.com> 9994 9995 PR jit/85384 9996 * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version 9997 by using gcc_base_ver to generate a gcc_driver_version, and use 9998 it when generating GCC_DRIVER_NAME. 9999 * configure: Regenerate. 10000 100012018-04-18 Jakub Jelinek <jakub@redhat.com> 10002 10003 PR target/81084 10004 * config.gcc: Obsolete powerpc*-*-*spe*. 10005 100062018-04-17 Jakub Jelinek <jakub@redhat.com> 10007 10008 PR debug/84637 10009 * dbxout.c (dbxout_int): Perform negation in unsigned int type. 10010 (stabstr_D): Change type of unum from unsigned int to 10011 unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT 10012 type. 10013 100142018-04-17 Jim Wilson <jimw@sifive.com> 10015 10016 PR 84856 10017 * config/riscv/riscv.c (riscv_compute_frame_info): Add calls to 10018 RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size. 10019 Set arg_pointer_offset after using pretend_args_size. 10020 100212018-04-17 Jakub Jelinek <jakub@redhat.com> 10022 10023 PR rtl-optimization/85431 10024 * dse.c (record_store): Ignore zero width stores. 10025 10026 PR sanitizer/85230 10027 * asan.c (handle_builtin_stack_restore): Adjust comment. Emit 10028 __asan_allocas_unpoison call and last_alloca_addr = new_sp before 10029 __builtin_stack_restore rather than after it. 10030 * builtins.c (expand_asan_emit_allocas_unpoison): Pass 10031 arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second 10032 argument instead of virtual_dynamic_stack_rtx. 10033 100342018-04-17 Kelvin Nilsen <kelvin@gcc.gnu.org> 10035 10036 * config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p): 10037 New prototype. 10038 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 10039 Add note to error message to explain internal mapping of overloaded 10040 built-in function name to non-overloaded built-in function name. 10041 * config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New 10042 function. 10043 100442018-04-17 Michael Meissner <meissner@linux.vnet.ibm.com> 10045 10046 PR target/85424 10047 * config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack 10048 where the inputs overlap with the output. 10049 100502018-04-17 Jakub Jelinek <jakub@redhat.com> 10051 10052 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add 10053 (=v, v) alternative and explicit "memory" attribute. 10054 (vec_extract_lo_<mode><mask_name>): Likewise. Also add 10055 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 10056 attributes. 10057 (vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use 10058 "sselog1" type instead of "sselog". 10059 (vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of 10060 "sselog". Remove explicit "memory" attribute. 10061 (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory", 10062 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 10063 attributes. 10064 (vec_extract_hi_v32hi): Merge all alternatives into one, use 10065 "sselog1" type instead of "sselog". Remove explicit "memory" 10066 attribute. 10067 (vec_extract_hi_v16hi): Merge each pair of alternatives into one, 10068 use "sselog1" type instead of "sselog". Remove explicit "memory" 10069 attribute. 10070 (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory", 10071 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 10072 attributes. 10073 (vec_extract_hi_v64qi): Merge all alternatives into one, use 10074 "sselog1" type instead of "sselog". Remove explicit "memory" 10075 attribute. 10076 (vec_extract_hi_v32qi): Merge each pair of alternatives into one, 10077 use "sselog1" type instead of "sselog". Remove explicit "memory" 10078 attribute. 10079 10080 PR target/85430 10081 * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu. 10082 10083 PR middle-end/85414 10084 * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG 10085 on a SUBREG. 10086 100872018-04-17 Martin Jambor <mjambor@suse.cz> 10088 10089 PR ipa/85421 10090 * ipa-cp.c (create_specialized_node): Call 10091 expand_all_artificial_thunks if necessary. 10092 100932018-04-17 Martin Liska <mliska@suse.cz> 10094 10095 PR lto/85405 10096 * ipa-devirt.c (odr_types_equivalent_p): Remove trailing 10097 in message, remote space in between '_G' and '('. 10098 100992018-04-17 Jakub Jelinek <jakub@redhat.com> 10100 10101 PR target/85281 10102 * config/i386/sse.md (reduces<mode><mask_scalar_name>, 10103 avx512f_vmcmp<mode>3<round_saeonly_name>, 10104 avx512f_vmcmp<mode>3_mask<round_saeonly_name>, 10105 avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>, 10106 avx512f_rndscale<mode><round_saeonly_name>, 10107 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>, 10108 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): 10109 Use %<iptr>2 instead of %2 for -masm=intel. 10110 (avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>, 10111 avx512f_vcvttss2usi<round_saeonly_name>, 10112 avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for 10113 -masm=intel. 10114 (avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>, 10115 avx512f_vcvttsd2usi<round_saeonly_name>, 10116 avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>): 10117 Use %q1 instead of %1 for -masm=intel. 10118 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, 10119 avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead 10120 of %3 for -masm=intel. 10121 (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for 10122 -masm=intel. 10123 (*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for 10124 -masm=intel. 10125 (*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for 10126 -masm=intel. 10127 (avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with 10128 %k0 and %1 for -masm=intel rather than two patterns, one with %0 and 10129 %g1. 10130 (*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for 10131 -masm=intel. 10132 (avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with 10133 %q0 and %1 for -masm=intel rather than two patterns, one with %0 and 10134 %g1 and one with %0 and %1. 10135 (avx512er_vmrcp28<mode><round_saeonly_name>, 10136 avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of 10137 %1 for -masm=intel. 10138 (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask, 10139 avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask, 10140 avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order 10141 of %0 and %{%4%} for -masm=intel. 10142 (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz, 10143 avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz, 10144 avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap 10145 order of %0 and %{%5%}%{z%} for -masm=intel. 10146 101472018-04-17 Jan Hubicka <jh@suse.cz> 10148 10149 PR lto/85405 10150 * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields. 10151 101522018-04-17 Martin Liska <mliska@suse.cz> 10153 10154 PR ipa/85329 10155 * multiple_target.c (create_dispatcher_calls): Set apostrophes 10156 for target_clone error message. Make default implementation 10157 clone to be a local declaration. 10158 (separate_attrs): Add new argument and check for an empty 10159 string. 10160 (expand_target_clones): Handle it. 10161 (ipa_target_clone): Make redirection just for target_clones 10162 functions. 10163 101642018-04-16 Cesar Philippidis <cesar@codesourcery.com> 10165 Tom de Vries <tom@codesourcery.com> 10166 10167 PR middle-end/84955 10168 * omp-expand.c (expand_oacc_for): Add dummy false branch for 10169 tiled basic blocks without omp continue statements. 10170 101712018-04-16 Aaron Sawdey <acsawdey@linux.ibm.com> 10172 10173 PR target/83660 10174 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark 10175 vec_extract expression as having side effects to make sure it gets 10176 a cleanup point. 10177 101782018-04-16 H.J. Lu <hongjiu.lu@intel.com> 10179 10180 PR target/85403 10181 * config/i386/i386.c (get_builtin_code_for_version): Check 10182 error_mark_node. 10183 101842018-04-16 Olga Makhotina <olga.makhotina@intel.com> 10185 10186 PR target/84331 10187 * gcc/config.gcc: Support "skylake". 10188 * gcc/config/i386/i386-c.c (ix86_target_macros_internal): Handle 10189 PROCESSOR_SKYLAKE. 10190 * gcc/config/i386/i386.c (m_SKYLAKE): Define. 10191 (processor_target_table): Add "skylake". 10192 (ix86_option_override_internal): Add "skylake". 10193 (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE, 10194 PROCESSOR_CANNONLAKE. 10195 (get_builtin_code_for_version): Fix priority for 10196 PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER, 10197 PROCESSOR_SKYLAKE-AVX512. 10198 * gcc/config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE. 10199 (processor_type): Add PROCESSOR_SKYLAKE. 10200 102012018-04-16 Paolo Carlini <paolo.carlini@oracle.com> 10202 Jason Merrill <jason@redhat.com> 10203 10204 PR c++/85112 10205 * convert.c (convert_to_integer_1): Use direct recursion for 10206 enumeral types and types with a precision less than the number 10207 of bits in their mode. 10208 102092018-04-16 Julia Koval <julia.koval@intel.com> 10210 10211 PR target/84413 10212 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, 10213 X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512 10214 102152018-04-14 Segher Boessenkool <segher@kernel.crashing.org> 10216 10217 PR target/85293 10218 * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. 10219 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move 10220 and -mno-direct-move. 10221 102222018-04-13 Paul A. Clarke <pc@us.ibm.com> 10223 10224 PR target/83402 10225 * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}): 10226 Ensure that vec_splat_s32 is only called with 0 <= shift < 16. 10227 Ensure negative shifts result in {0}. 10228 102292018-04-13 Vladimir Makarov <vmakarov@redhat.com> 10230 10231 PR rtl-optimization/79916 10232 * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard 10233 regs (if any) to define how to gnerate SD moves when LRA is in 10234 progress. 10235 102362018-04-13 Jakub Jelinek <jakub@redhat.com> 10237 10238 PR rtl-optimization/85393 10239 * except.h (expand_dw2_landing_pad_for_region): Remove declaration. 10240 * except.c (expand_dw2_landing_pad_for_region): Make static. 10241 * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just 10242 a label and unconditional jump to old_bb, rather than 10243 expand_dw2_landing_pad_for_region insn(s) and jump to single_succ 10244 basic block. 10245 10246 PR rtl-optimization/85376 10247 * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and 10248 zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX 10249 instead of a specific value. 10250 102512018-04-13 Jan Hubicka <hubicka@ucw.cz> 10252 Bin Cheng <bin.cheng@arm.com> 10253 10254 PR tree-optimization/82965 10255 PR tree-optimization/83991 10256 * cfgloopanal.c (expected_loop_iterations_unbounded): Add 10257 by_profile_only parameter. 10258 * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile 10259 information if the loop was predicted to iterate too many times. 10260 * cfgloop.h (expected_loop_iterations_unbounded): Update prototype 10261 102622018-04-13 Jan Hubicka <hubicka@ucw.cz> 10263 10264 PR lto/71991 10265 * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for 10266 always inline. 10267 102682018-04-13 Martin Liska <mliska@suse.cz> 10269 Jakub Jelinek <jakub@redhat.com> 10270 10271 PR middle-end/81657 10272 * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. 10273 * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. 10274 * builtins.c (expand_builtin_memory_copy_args): Use 10275 BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, 10276 handle dest_addr == pc_rtx. 10277 102782018-04-12 Segher Boessenkool <segher@kernel.crashing.org> 10279 10280 PR target/85291 10281 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if 10282 asked to not generate direct moves. 10283 (fix_trunc<mode>si2_stfiwx): Similar. 10284 (fix_trunc<mode>si2_internal): Similar. 10285 102862018-04-12 Jakub Jelinek <jakub@redhat.com> 10287 10288 PR debug/83157 10289 * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST. 10290 * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest, 10291 lookup if dest in some wider mode is known to be const0_rtx and 10292 if so, record permanent equivalence for it to be ZERO_EXTEND of 10293 the narrower mode destination. 10294 102952018-04-12 Cesar Philippidis <cesar@codesourcery.com> 10296 10297 * lto-streamer-out.c (output_function): Revert 259346. 10298 * omp-expand.c (expand_oacc_for): Likewise. 10299 103002018-04-12 Alexander Monakov <amonakov@ispras.ru> 10301 10302 PR rtl-optimization/85354 10303 * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... 10304 * sel-sched.c (sel_global_init): ... here. 10305 103062018-04-12 Eric Botcazou <ebotcazou@adacore.com> 10307 10308 PR target/85238 10309 * lto-wrapper.c (debug_objcopy): Open the files in binary mode. 10310 * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO 10311 mode for PE-COFF targets. 10312 * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare. 10313 (i386_pe_asm_lto_end): Likewise. 10314 * config/i386/cygming.h (TARGET_ASM_LTO_START): Define. 10315 (TARGET_ASM_LTO_END): Likewise. 10316 * config/i386/winnt.c (saved_debug_info_level): New static variable. 10317 (i386_pe_asm_lto_start): New function. 10318 (i386_pe_asm_lto_end): Likewise. 10319 103202018-04-12 Cesar Philippidis <cesar@codesourcery.com> 10321 Richard Biener <rguenther@suse.de> 10322 10323 PR middle-end/84955 10324 * lto-streamer-out.c (output_function): Fix CFG loop state before 10325 streaming out. 10326 * omp-expand.c (expand_oacc_for): Handle calls to internal 10327 functions like regular functions. 10328 103292018-04-12 Richard Biener <rguenther@suse.de> 10330 10331 PR lto/85371 10332 * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label] 10333 for the early LTO debug to properly generate references to it 10334 during DIE emission. Do not re-use that for the skeleton for 10335 split-dwarf. 10336 (dwarf2out_early_finish): Likewise. 10337 103382018-04-12 Jakub Jelinek <jakub@redhat.com> 10339 10340 PR target/85328 10341 * config/i386/sse.md 10342 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split, 10343 <mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split, 10344 vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi, 10345 vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg 10346 and output is a reg, avoid creating invalid lowpart subreg, but 10347 instead split into a 512-bit move. Don't split if not AVX512VL, 10348 input is xmm16+ reg and output is a mem. 10349 (vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi, 10350 vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is 10351 xmm16+ reg and output is a mem. 10352 103532018-04-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 10354 10355 * config/s390/s390.c (s390_output_indirect_thunk_function): Check 10356 also for flag_dwarf2_cfi_asm. 10357 103582018-04-12 Jakub Jelinek <jakub@redhat.com> 10359 10360 PR rtl-optimization/85342 10361 * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use 10362 a bool scalar var inside of the loop instead. Don't try to update 10363 recog_data.operand after failed apply_change_group. 10364 103652018-04-12 Tom de Vries <tom@codesourcery.com> 10366 10367 PR target/85296 10368 * config/nvptx/nvptx.c (flexible_array_member_type_p): New function. 10369 (nvptx_assemble_decl_begin): Add undefined param. Declare undefined 10370 array with flexible array member as array without given dimension. 10371 (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call 10372 argument for undefined param to true. 10373 103742018-04-11 Aaron Sawdey <acsawdey@linux.ibm.com> 10375 10376 PR target/85321 10377 * doc/invoke.texi (RS/6000 and PowerPC Options): Document options 10378 -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe 10379 from PowerPC section. 10380 * config/rs6000/sysv4.opt (mcall-): Improve help text. 10381 * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim 10382 help text that is too long. 10383 * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim 10384 help text that is too long. 10385 * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim 10386 help text that is too long. 10387 103882018-04-11 Uros Bizjak <ubizjak@gmail.com> 10389 10390 * config/alpha/alpha.md (stack_probe_internal): Rename 10391 from "probe_stack". Update all callers. 10392 103932018-04-11 Alexander Monakov <amonakov@ispras.ru> 10394 10395 PR rtl-optimization/84566 10396 * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking 10397 sched_macro_fuse_insns. 10398 103992018-04-11 Alexander Monakov <amonakov@ispras.ru> 10400 10401 PR target/84301 10402 * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here... 10403 (compute_block_dependences): ... from here. 10404 104052018-04-11 Jakub Jelinek <jakub@redhat.com> 10406 10407 PR tree-optimization/85331 10408 * vec-perm-indices.h (vec_perm_indices::clamp): Change input type 10409 from int to HOST_WIDE_INT. 10410 104112018-04-11 Martin Jambor <mjambor@suse.cz> 10412 10413 PR ipa/84149 10414 * ipa-cp.c (propagate_vals_across_pass_through): Expand comment. 10415 (cgraph_edge_brings_value_p): New parameter dest_val, check if it is 10416 not the same as the source val. 10417 (cgraph_edge_brings_value_p): New parameter. 10418 (gather_edges_for_value): Pass destination value to 10419 cgraph_edge_brings_value_p. 10420 (perhaps_add_new_callers): Likewise. 10421 (get_info_about_necessary_edges): Likewise and exclude values brought 10422 only by self-recursive edges. 10423 (create_specialized_node): Redirect only clones of self-calling edges. 10424 (+self_recursive_pass_through_p): New function. 10425 (find_more_scalar_values_for_callers_subset): Use it. 10426 (find_aggregate_values_for_callers_subset): Likewise. 10427 (known_aggs_to_agg_replacement_list): Removed. 10428 (decide_whether_version_node): Re-calculate known constants for all 10429 remaining context clones. 10430 104312018-04-11 Richard Biener <rguenther@suse.de> 10432 10433 PR lto/85339 10434 * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute 10435 from early DWARF output. 10436 (dwarf2out_early_finish): Output line info unconditionally into 10437 early DWARF and add reference to it. 10438 104392018-04-11 Jakub Jelinek <jakub@redhat.com> 10440 10441 PR target/85281 10442 * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases. 10443 (<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes 10444 other than V2DFmode using iptr mode attribute. 10445 (<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute. 10446 104472018-04-11 Alexander Monakov <amonakov@ispras.ru> 10448 10449 PR rtl-optimization/84659 10450 * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg. 10451 104522018-04-11 Jakub Jelinek <jakub@redhat.com> 10453 10454 PR debug/85302 10455 * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if 10456 SIZEP is NULL. 10457 (output_loc_list): Pass address of a dummy size variable even in the 10458 locview handling loop. 10459 (index_location_lists): Add comment on why skip_loc_list_entry can't 10460 call size_of_locs. 10461 104622018-04-11 Thomas Preud'homme <thomas.preudhomme@arm.com> 10463 10464 PR target/85261 10465 * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand 10466 into register. 10467 104682018-04-10 Aaron Sawdey <acsawdey@linux.ibm.com> 10469 10470 PR target/85321 10471 * doc/invoke.texi (RS/6000 and PowerPC Options): Document options 10472 -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit, 10473 and -mstring-compare-inline-limit. 10474 104752018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 10476 10477 PR target/85287 10478 * gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size 10479 for stack clash protection in a register whenever we need it to be in 10480 a register. 10481 104822018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 10483 10484 * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct): 10485 Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF. 10486 104872018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 10488 10489 PR target/85321 10490 * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in 10491 the help text. 10492 (mlong-double-): Ditto. 10493 * config/rs6000/sysv4.opt (msdata=): Ditto. 10494 (mtls-size=): Ditto. 10495 104962018-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 10497 10498 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove 10499 erroneous entries for 10500 "vector int vec_ldl (int, long int *)", and 10501 "vector unsigned int vec_ldl (int, unsigned long int *)". 10502 Add comments and entries for 10503 "vector bool char vec_ldl (int, bool char *)", 10504 "vector bool short vec_ldl (int, bool short *)", 10505 "vector bool int vec_ldl (int, bool int *)", 10506 "vector bool long long vec_ldl (int, bool long long *)", 10507 "vector pixel vec_ldl (int, pixel *)", 10508 "vector long long vec_ldl (int, long long *)", 10509 "vector unsigned long long vec_ldl (int, unsigned long long *)". 10510 * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new 10511 type tree bool_long_long_type_node and correct definition of 10512 bool_V2DI_type_node to make reference to this new type tree. 10513 (rs6000_mangle_type): Replace erroneous reference to 10514 bool_long_type_node with bool_long_long_type_node. 10515 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add 10516 comments to emphasize sign distinctions for char and int types and 10517 replace RS6000_BTI_bool_long constant with 10518 RS6000_BTI_bool_long_long constant. Also add comment to restrict 10519 use of RS6000_BTI_pixel. 10520 (bool_long_type_node): Remove this macro definition. 10521 (bool_long_long_type_node): New macro definition 10522 105232018-04-10 Jakub Jelinek <jakub@redhat.com> 10524 10525 PR rtl-optimization/85300 10526 * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also 10527 into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if 10528 simplify_unary_operation fails. 10529 105302018-04-10 Martin Liska <mliska@suse.cz> 10531 10532 * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node, 10533 cgraph_edge and ipa_ref. 10534 105352018-04-10 Jakub Jelinek <jakub@redhat.com> 10536 10537 PR target/85177 10538 PR target/85255 10539 * config/i386/sse.md 10540 (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix 10541 computation of the VEC_MERGE selector from mask. 10542 (<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>): 10543 Fix decoding of the VEC_MERGE selector into mask. 10544 105452018-04-10 Richard Sandiford <richard.sandiford@linaro.org> 10546 10547 PR tree-optimization/85286 10548 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): 10549 105502018-04-10 Richard Sandiford <richard.sandiford@linaro.org> 10551 10552 * final.c (final_1): Set insn_last_address as well as 10553 insn_current_address. 10554 105552018-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10556 10557 PR target/85173 10558 * explow.c (emit_stack_probe): Call validize_mem on memory location 10559 before passing it to gen_probe_stack. Create address operand and 10560 legitimize it for the probe_stack_address case. 10561 105622018-04-09 Jan Hubicka <jh@suse.cz> 10563 10564 PR lto/85078 10565 * ipa-devirt.c (rebuild_type_inheritance-hash): New. 10566 * ipa-utils.h (rebuild_type_inheritance-hash): Declare. 10567 * tree.c (free_lang_data_in_type): Fix handling of binfos; 10568 walk basetypes. 10569 (free_lang_data): Rebuild type inheritance graph. 10570 105712018-04-09 Martin Sebor <msebor@redhat.com> 10572 10573 * invoke.texi (-finline-small-functions): Mention other optimization 10574 options. 10575 (-findirect-inlining, -fpartial-inlining): Same. 10576 (-finline-functions-called-once): Same. 10577 (-freorder-blocks-and-partition): Same. 10578 105792018-04-09 Jan Hubicka <jh@suse.cz> 10580 10581 PR rtl/84058 10582 * cfgcleanup.c (try_forward_edges): Do not give up on crossing 10583 jumps; choose last target that matches the criteria (i.e. 10584 no partition changes for non-crossing jumps). 10585 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic 10586 support for redirecting crossing jumps to non-crossing. 10587 105882018-04-09 Alexey Brodkin <abrodkin@synopsys.com> 10589 10590 * config/arc/arc.c (arc_expand_prologue): Set stack usage info 10591 also for naked functions. 10592 105932018-04-09 Claudiu Zissulescu <claziss@synopsys.com> 10594 10595 * config/arc/arc.md (add_shift): New pattern. 10596 (add_shift2): Likewise. 10597 (sub_shift): Likewise. 10598 (sub_shift_cmp0_noout): Likewise. 10599 (compare_si_ashiftsi): Likewise. 10600 (xbfu_cmp0_noout): New combine pattern. 10601 (xbfu_cmp0"): Likewise. 10602 (movsi_set_cc_insn): Place the predicable variant first. 10603 (commutative_binary_cmp0_noout): Remove clobber. 10604 (commutative_binary_cmp0): New pattern. 10605 (noncommutative_binary_cmp0): Likewise. 10606 (noncommutative_binary_cmp0_noout): Likewise. 10607 (noncommutative_binary_comparison_result_used): Removed. 10608 (rsub_cmp0): New pattern. 10609 (rsub_cmp0_noout): Likewise. 10610 (extzvsi): Changed, keep only meaningful variants. 10611 (SQH, SEZ): New iterators. 10612 (SQH_postfix): New mode attribute. 10613 (SEZ_prefix): New code attribute. 10614 (<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern. 10615 (<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise. 10616 * config/arc/predicates.md (cc_set_register): Use CC_REG instead 10617 of numerical value. 10618 (noncommutative_operator): Check the availability of barrel 10619 shifter option. 10620 106212018-04-09 Richard Biener <rguenther@suse.de> 10622 10623 PR tree-optimization/85284 10624 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): 10625 Only use the niter constraining form of simple_iv when the exit 10626 is always executed. 10627 106282018-04-09 Tom de Vries <tom@codesourcery.com> 10629 10630 PR target/84041 10631 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. 10632 (define_expand "*memory_barrier"): New define_expand. 10633 (define_insn "memory_barrier"): New insn. 10634 106352018-04-09 Andrey Belevantsev <abel@ispras.ru> 10636 10637 PR rtl-optimization/80463 10638 PR rtl-optimization/83972 10639 PR rtl-optimization/83480 10640 10641 * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the 10642 correct producer for the insn. 10643 (tidy_control_flow): Fixup seqnos in case of debug insns. 10644 106452018-04-09 Andrey Belevantsev <abel@ispras.ru> 10646 10647 PR rtl-optimization/83913 10648 10649 * sel-sched-ir.c (merge_expr_data): Choose the middle between two 10650 different sched-times when merging exprs. 10651 106522018-04-09 Andrey Belevantsev <abel@ispras.ru> 10653 10654 PR rtl-optimization/83962 10655 10656 * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call 10657 tidy_fallthru_edge and tidy_control_flow. 10658 106592018-04-09 Andrey Belevantsev <abel@ispras.ru> 10660 10661 PR rtl-optimization/83530 10662 10663 * sel-sched.c (force_next_insn): New global variable. 10664 (remove_insn_for_debug): When force_next_insn is true, also leave only 10665 next insn in the ready list. 10666 (sel_sched_region): When the region wasn't scheduled, make another pass 10667 over it with force_next_insn set to 1. 10668 106692018-04-08 Monk Chiang <sh.chiang04@gmail.com> 10670 10671 * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h 10672 into tm_file. 10673 * config/nds32/constants.md (unspec_volatile_element): Add enum values 10674 for interrupt control. 10675 * config/nds32/nds32-intrinsic.c: Implementation of intrinsic 10676 functions for interrupt control. 10677 * config/nds32/nds32-intrinsic.md: Likewise. 10678 * config/nds32/nds32_intrinsic.h: Likewise. 10679 * config/nds32/nds32.h (nds32_builtins): Likewise. 10680 106812018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> 10682 10683 * config/nds32/nds32.c (nds32_init_machine_status, 10684 nds32_legitimate_index_p, nds32_legitimate_address_p): Consider 10685 strict_aligned_p field. 10686 (nds32_expand_to_rtl_hook): New function. 10687 (TARGET_EXPAND_TO_RTL_HOOK): Define. 10688 * config/nds32/nds32.h (machine_function): Add strict_aligned_p field. 10689 106902018-04-08 Kito Cheng <kito.cheng@gmail.com> 10691 Chung-Ju Wu <jasonwucj@gmail.com> 10692 10693 * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu. 10694 * config/nds32/nds32-n7.md: New file. 10695 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7. 10696 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7 10697 pipeline. 10698 * config/nds32/nds32-protos.h: More declarations for n7 pipeline. 10699 * config/nds32/nds32.md (pipeline_model): Add n7. 10700 * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus. 10701 * config/nds32/pipelines.md: Include n7 settings. 10702 107032018-04-08 Kito Cheng <kito.cheng@gmail.com> 10704 Chung-Ju Wu <jasonwucj@gmail.com> 10705 10706 * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu. 10707 * config/nds32/nds32-e8.md: New file. 10708 * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8. 10709 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8 10710 pipeline. 10711 * config/nds32/nds32-protos.h: More declarations for e8 pipeline. 10712 * config/nds32/nds32.md (pipeline_model): Add e8. 10713 * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus. 10714 * config/nds32/pipelines.md: Include e8 settings. 10715 107162018-04-08 Kito Cheng <kito.cheng@gmail.com> 10717 Chung-Ju Wu <jasonwucj@gmail.com> 10718 10719 * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu. 10720 * config/nds32/nds32-n8.md: New file. 10721 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8. 10722 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8 10723 pipeline. 10724 * config/nds32/nds32-protos.h: More declarations for n8 pipeline. 10725 * config/nds32/nds32-utils.c: More implementations for n8 pipeline. 10726 * config/nds32/nds32.md (pipeline_model): Add n8. 10727 * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus. 10728 * config/nds32/pipelines.md: Include n8 settings. 10729 107302018-04-08 Kito Cheng <kito.cheng@gmail.com> 10731 Chung-Ju Wu <jasonwucj@gmail.com> 10732 10733 * config.gcc (nds32*): Add nds32-utils.o into extra_objs. 10734 * config/nds32/nds32-n9-2r1w.md: New file. 10735 * config/nds32/nds32-n9-3r2w.md: New file. 10736 * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type, 10737 nds32_register_ports): New or modify for cpu n9. 10738 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9 10739 pipeline. 10740 * config/nds32/nds32-protos.h: More declarations for n9 pipeline. 10741 * config/nds32/nds32-utils.c: New file. 10742 * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE, 10743 TARGET_MUL_SLOW): Define. 10744 * config/nds32/nds32.md (pipeline_model): New attribute. 10745 * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports): 10746 New options that support cpu n9. 10747 * config/nds32/pipelines.md: Include n9 settings. 10748 * config/nds32/t-nds32 (nds32-utils.o): Add dependency. 10749 107502018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> 10751 10752 * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align 10753 information if necessary. 10754 (output_cond_branch_compare_zero): Likewise. 10755 * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case. 10756 (nds32_target_alignment): Refine for alignment. 10757 * config/nds32/nds32.h (NDS32_ALIGN_P): Define. 10758 (FUNCTION_BOUNDARY): Modify. 10759 * config/nds32/nds32.md (call_internal, call_value_internal): Consider 10760 align case. 10761 * config/nds32/nds32.opt (malways-align, malign-functions): New. 10762 107632018-04-08 Monk Chiang <sh.chiang04@gmail.com> 10764 10765 * config/nds32/constants.md (unspec_volatile_element): Add values for 10766 TLB operation and data prefetch. 10767 * config/nds32/nds32-intrinsic.c: Implementation of intrinsic 10768 functions for TLB operation and data prefetch. 10769 * config/nds32/nds32-intrinsic.md: Likewise. 10770 * config/nds32/nds32_intrinsic.h: Likewise. 10771 * config/nds32/nds32.c (nds32_dpref_names): Likewise. 10772 (nds32_print_operand): Likewise. 10773 * config/nds32/nds32.h (nds32_builtins): Likewise. 10774 107752018-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> 10776 Andrew Pinski <pinsika@gcc.gnu.org> 10777 10778 PR middle-end/82976 10779 * match.pd: Use constant_boolean_node of correct type instead of 10780 boolean_true_node or boolean_false_node for simplifying 10781 pointer comparisons to zero. 10782 107832018-04-07 Jakub Jelinek <jakub@redhat.com> 10784 10785 PR tree-optimization/80021 10786 * tree.c (verify_type_variant): Make error call in verify_variant_match 10787 translatable and remove final full stop. 10788 107892018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 10790 10791 * config/nds32/constants.md (unspec_volatile_element): Add 10792 UNSPEC_VOLATILE_EH_RETURN. 10793 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push, 10794 nds32_output_stack_pop): Support dwarf exception handling process. 10795 * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare. 10796 * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf 10797 exception handling process. 10798 (nds32_compute_stack_frame): Likewise. 10799 (nds32_return_addr_rtx): Likewise. 10800 (nds32_initial_elimination_offset): Likewise. 10801 (nds32_expand_prologue): Likewise. 10802 (nds32_expand_epilogue): Likewise. 10803 (nds32_dynamic_chain_address): New function. 10804 * config/nds32/nds32.h (machine_function): Add fields for dwarf 10805 exception handling. 10806 (DYNAMIC_CHAIN_ADDRESS): Define. 10807 (EH_RETURN_DATA_REGNO): Define. 10808 (EH_RETURN_STACKADJ_RTX): Define. 10809 * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement 10810 patterns for dwarf exception handling. 10811 108122018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 10813 10814 * config/nds32/nds32.h: Clean up obsolete macros. 10815 108162018-04-07 Monk Chiang <sh.chiang04@gmail.com> 10817 10818 * config/nds32/constants.md (unspec_element, unspec_volatile_element): 10819 Add enum values for particular instructions. 10820 * config/nds32/nds32-intrinsic.c: Implementation of expanding 10821 particular intrinsic functions. 10822 * config/nds32/nds32-intrinsic.md: Likewise. 10823 * config/nds32/nds32_intrinsic.h: Likewise. 10824 * config/nds32/nds32.h (nds32_builtins): Likewise. 10825 * config/nds32/nds32.md (type): Add pbsad and pbsada. 10826 (btst, ave): New patterns for particular instructions. 10827 108282018-04-07 Monk Chiang <sh.chiang04@gmail.com> 10829 10830 * config/nds32/constants.md (unspec_element, unspec_volatile_element): 10831 Add enum values for atomic load/store and memory sync. 10832 * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store 10833 and memory sync. 10834 * config/nds32/nds32-intrinsic.md: Likewise. 10835 * config/nds32/nds32_intrinsic.h: Likewise. 10836 * config/nds32/nds32.h (nds32_builtins): Likewise. 10837 108382018-04-07 Jakub Jelinek <jakub@redhat.com> 10839 10840 PR tree-optimization/85257 10841 * fold-const.c (native_encode_vector): If not all elts could fit 10842 and off is -1, return 0 rather than offset. 10843 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass 10844 (offseti - offset2) / BITS_PER_UNIT as 4th argument to 10845 native_encode_expr. Verify len * BITS_PER_UNIT >= maxsizei. Don't 10846 adjust buffer in native_interpret_expr call. 10847 108482018-04-07 Monk Chiang <sh.chiang04@gmail.com> 10849 10850 * config/nds32/constants.md (unspec_volatile_element): Add cache 10851 control enum values. 10852 * config/nds32/nds32-intrinsic.c: Add cache control expand functions. 10853 * config/nds32/nds32-intrinsic.md: Add cache control patterns. 10854 * config/nds32/nds32.c (nds32_cctl_names): New. 10855 (nds32_print_operand): Handle cache control register names. 10856 * config/nds32/nds32.h (nds32_builtins): New enum values. 10857 * config/nds32/nds32_intrinsic.h: Add cache control enum types and 10858 macros. 10859 * config/nds32/nds32.md (type): Add mmu. 10860 * config/nds32/pipelines.md (simple_insn): Add mmu. 10861 108622018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 10863 10864 * config/nds32/nds32.md (type): Remove call. 10865 * config/nds32/pipelines.md (simple_insn): Likewise. 10866 108672018-04-07 Monk Chiang <sh.chiang04@gmail.com> 10868 10869 * config/nds32/constants.md (unspec_volatile_element): Add 10870 UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and 10871 UNSPEC_VOLATILE_FMFCFG. 10872 * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin 10873 description for fmfcfg and fmfcsr. 10874 (bdesc_1arg): Add fmtcsr. 10875 (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd. 10876 (nds32_expand_builtin_impl): Deal with FPU intrinsic functions. 10877 * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd, 10878 unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr, 10879 unspec_fmfcfg): New patterns. 10880 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG, 10881 NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS, 10882 NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD. 10883 * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss, 10884 __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr, 10885 __nds32__fmfcfg): Define. 10886 108872018-04-07 Monk Chiang <sh.chiang04@gmail.com> 10888 10889 * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more 10890 intrinsic register names. 10891 * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more 10892 intrinsic register enum values and macros. 10893 108942018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 10895 10896 * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition 10897 for load/store addressing form. 10898 (nds32_print_operand_address): Likewise. 10899 109002018-04-06 Eric Botcazou <ebotcazou@adacore.com> 10901 10902 PR target/85196 10903 * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands 10904 based on LABEL_REF. Remove useless assertion. 10905 (pic_address_needs_scratch): Fix formatting. 10906 (sparc_legitimize_pic_address): Minor tweaks. 10907 (sparc_delegitimize_address): Adjust assertion accordingly. 10908 * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand 10909 into symbolic_operand. 10910 (movsi_high_pic_label_ref): Likewise. 10911 (movsi_lo_sum_pic_label_ref): Likewise. 10912 (movdi_pic_label_ref): Likewise. 10913 (movdi_high_pic_label_ref): Likewise. 10914 (movdi_lo_sum_pic_label_ref): Likewise. 10915 109162018-04-06 Amaan Cheval <amaan.cheval@gmail.com> 10917 10918 * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for 10919 custom LIB_SPEC setup. 10920 109212018-04-06 Ruslan Bukin <br@bsdpad.com> 10922 Kito Cheng <kito.cheng@gmail.com> 10923 10924 * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support. 10925 * config/riscv/freebsd.h: New. 10926 109272018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 10928 10929 * config/nds32/nds32.c (nds32_adjust_insn_length): Refine. 10930 * config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in 10931 file. 10932 109332018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 10934 Kito Cheng <kito.cheng@gmail.com> 10935 10936 * config/nds32/nds32-md-auxiliary.c (nds32_output_return, 10937 nds32_output_call, nds32_symbol_binds_local_p): New functions. 10938 * config/nds32/nds32-protos.h (nds32_output_call, 10939 nds32_output_return): Declare. 10940 * config/nds32/nds32.md: Refine all the call and return patterns. 10941 109422018-04-06 Jakub Jelinek <jakub@redhat.com> 10943 10944 PR debug/85252 10945 * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only 10946 build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST. 10947 10948 PR rtl-optimization/84872 10949 * cfgloopmanip.c (create_preheader): Use make_forwarder_block even if 10950 nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is 10951 EDGE_CROSSING edge. 10952 109532018-04-06 Tamar Christina <tamar.christina@arm.com> 10954 10955 * expr.c (copy_blkmode_to_reg): Revert 254862. 10956 * doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise. 10957 109582018-04-06 Richard Biener <rguenther@suse.de> 10959 10960 PR middle-end/85244 10961 * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref 10962 after seeing a component reference with an adjacent field. Treat 10963 refs to arrays at struct end of external decls similar to 10964 refs to unconstrained commons. 10965 109662018-04-06 Jakub Jelinek <jakub@redhat.com> 10967 10968 PR sanitizer/85213 10969 * fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't 10970 look through SAVE_EXPRs with non-side-effects argument. Adjust 10971 recursive calls. 10972 (fold_comparison): Adjust twoval_comparison_p caller, don't handle 10973 save_p here. 10974 109752018-04-06 Richard Biener <rguenther@suse.de> 10976 10977 PR middle-end/85180 10978 * alias.c (find_base_term): New wrapper around find_base_term 10979 unwinding CSELIB_VAL_PTR changes. 10980 (find_base_term): Do not restore CSELIB_VAL_PTR during the 10981 recursion. 10982 109832018-04-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 10984 10985 * config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP 10986 instructions. 10987 * config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New 10988 constant definitions. 10989 ("nop"): lr 0,0 -> nopr r0 10990 ("nop_lr0", "nop_lr1"): New insn definitions. 10991 109922018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 10993 10994 * config/nds32/nds32.md (*stack_push, *stack_pop): Use 10995 NDS32_V3PUSH_AVAILABLE_P macro. 10996 109972018-04-06 Monk Chiang <sh.chiang04@gmail.com> 10998 Chung-Ju Wu <jasonwucj@gmail.com> 10999 11000 * config.gcc (nds32*-*-*): Add v2j v3f v3s checking. 11001 (nds32*-*-*): Add float and fpu_config into supported_defaults. 11002 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): 11003 Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA. 11004 * config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN, 11005 UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS. 11006 * config/nds32/constraints.md: New constraints and checking for hard 11007 float configuration. 11008 * config/nds32/iterators.md: New mode iterator and attribute for hard 11009 float configuration. 11010 * config/nds32/nds32-doubleword.md: Use hard float alternatives and 11011 patterns. 11012 * config/nds32/nds32-fpu.md: New file. 11013 * config/nds32/nds32-md-auxiliary.c: New functions and checkings to 11014 deal with hard float code generation. 11015 * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and 11016 ARCH_V3S. 11017 (abi_type, float_reg_number): New enum type. 11018 * config/nds32/nds32-predicates.c: New predicates for hard float. 11019 * config/nds32/nds32-protos.h: Declare functions for hard float. 11020 * config/nds32/nds32.c: Implementation for hard float configuration. 11021 * config/nds32/nds32.h: Definitions for hard float configuration. 11022 * config/nds32/nds32.md: Include hard float machine description and 11023 modify patterns for hard float configuration. 11024 * config/nds32/nds32.opt: New options for hard float configuration. 11025 * config/nds32/predicates.md: New predicates for hard float 11026 configuration. 11027 110282018-04-06 Kuan-Lin Chen <kuanlinchentw@gmail.com> 11029 11030 * common/config/nds32/nds32-common.c 11031 (nds32_option_optimization_table): Enable -mreleax-hint by default. 11032 110332018-04-05 Jakub Jelinek <jakub@redhat.com> 11034 11035 PR middle-end/85195 11036 * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around 11037 CONSTRUCTOR_ELT (ctor, ...)->value. 11038 110392018-04-05 Uros Bizjak <ubizjak@gmail.com> 11040 11041 PR target/85193 11042 * config/i386/i386.md (define_attr "memory"): Handle rotate1 type. 11043 110442018-04-05 Tom de Vries <tom@codesourcery.com> 11045 11046 PR target/85204 11047 * config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only 11048 cond jump. 11049 110502018-04-05 Shiva Chen <shiva0217@gmail.com> 11051 Kito Cheng <kito.cheng@gmail.com> 11052 11053 * config/nds32/constraints.md (U33): Fine-tune checking condition. 11054 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto. 11055 * config/nds32/nds32.h (nds32_16bit_address_type): Add 11056 ADDRESS_POST_MODIFY_LO_REG_IMM3U. 11057 110582018-04-05 Shiva Chen <shiva0217@gmail.com> 11059 Kito Cheng <kito.cheng@gmail.com> 11060 11061 * config/nds32/constraints.md (Ufe): New memory constraint. 11062 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format, 11063 nds32_output_16bit_load): Consider r8 register for lwi45.fe format. 11064 * config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe 11065 operands. 11066 * config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U. 11067 * config/nds32/nds32.md (*mov<mode>): Adjust pattern. 11068 110692018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 11070 11071 * config/nds32/nds32.md: Use optimize_size in the condition for 11072 alu-shift instructions. 11073 110742018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 11075 11076 * config/nds32/nds32.md (divsi4, udivsi4): New patterns. 11077 110782018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 11079 11080 * config/nds32/nds32.md (negsi2): Refine pattern. 11081 110822018-04-05 Kito Cheng <kito.cheng@gmail.com> 11083 Chung-Ju Wu <jasonwucj@gmail.com> 11084 11085 * config/nds32/iterators.md (shift_rotate): New code iterator. 11086 (shift): New code attribute. 11087 * config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New. 11088 * config/nds32/nds32-protos.h (nds32_expand_constant): Declare. 11089 * config/nds32/nds32.c (nds32_print_operand): Deal with more cases. 11090 * config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for 11091 bit-wise operations. 11092 (andsi3, *andsi3): Ditto. 11093 (iorsi3, *iorsi3, *or_slli, *or_srli): Ditto. 11094 (xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto. 11095 (<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto. 11096 * config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand, 11097 nds32_ior_operand, nds32_xor_operand): New predicates. 11098 110992018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 11100 11101 * config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ... 11102 (addsi3, subsi3): ... this. 11103 111042018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 11105 11106 * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator. 11107 111082018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 11109 11110 * config/nds32/nds32.md: Adjust indention. 11111 111122018-04-05 Kito Cheng <kito.cheng@gmail.com> 11113 11114 * config/nds32/nds32.md (feature): New attribute. 11115 111162018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 11117 11118 * config/nds32/nds32.md (subtype): New attribute. 11119 111202018-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com> 11121 11122 PR target/85203 11123 * config/arm/arm-builtins.c (arm_expand_builtin): Change 11124 expansion to perform a bitwise AND of the argument followed by a 11125 boolean negation of the result. 11126 111272018-04-04 Peter Bergner <bergner@vnet.ibm.com> 11128 11129 PR rtl-optimization/84878 11130 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine 11131 the basic block. Assert the use reference is not artificial and that 11132 it has an associated insn. 11133 111342018-04-04 Michael Matz <matz@suse.de> 11135 11136 * builtins.c (compute_objsize): Pass correct operand 11137 to array_at_struct_end_p. 11138 111392018-04-04 Richard Biener <rguenther@suse.de> 11140 11141 PR lto/85176 11142 * dwarf2out.c (dwarf2out_register_external_die): Peel namespaces 11143 from contexts for DINFO_LEVEL_TERSE and below. 11144 111452018-04-04 Kito Cheng <kito.cheng@gmail.com> 11146 11147 * config/nds32/nds32-doubleword.md (move_<mode>): Require 11148 resiter_operand condition. 11149 * config/nds32/nds32.md (*move<mode>): Ditto. 11150 111512018-04-04 Kito Cheng <kito.cheng@gmail.com> 11152 Monk Chiang <sh.chiang04@gmail.com> 11153 11154 * config/nds32/nds32.md (movmisalign<mode>): New pattern. 11155 111562018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 11157 11158 * config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>. 11159 111602018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 11161 Kito Cheng <kito.cheng@gmail.com> 11162 11163 * config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code, 11164 nds32_cond_code_str, output_cond_branch, 11165 output_cond_branch_compare_zero, nds32_expand_cbranch, 11166 nds32_expand_cstore, nds32_expand_movcc, 11167 nds32_output_cbranchsi4_equality_zero, 11168 nds32_output_cbranchsi4_equality_reg, 11169 nds32_output_cbranchsi4_equality_reg_or_const_int, 11170 nds32_output_cbranchsi4_greater_less_zero: New functions. 11171 * config/nds32/nds32-protos.h (nds32_expand_cbranch, 11172 nds32_expand_cstore, nds32_expand_movcc, 11173 nds32_output_cbranchsi4_equality_zero, 11174 nds32_output_cbranchsi4_equality_reg, 11175 nds32_output_cbranchsi4_equality_reg_or_const_int, 11176 nds32_output_cbranchsi4_greater_less_zero): Declare. 11177 * config/nds32/predicates.md (nds32_movecc_comparison_operator, 11178 nds32_rimm11s_operand): New predicates. 11179 * config/nds32/nds32.h (nds32_expand_result_type): New enum type. 11180 * config/nds32/nds32.md: Rewrite all the branch and conditional move 11181 patterns. 11182 111832018-04-04 Kito Cheng <kito.cheng@gmail.com> 11184 11185 * config/nds32/nds32-doubleword.md: Refine all the instruction type. 11186 * config/nds32/nds32.md: Ditto. 11187 * config/nds32/pipelines.md: Ditto. 11188 111892018-04-04 Richard Biener <rguenther@suse.de> 11190 11191 PR tree-optimization/85168 11192 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid 11193 propagating abnormals. 11194 111952018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 11196 11197 * config/nds32/nds32.md (enabled): Use yes/no for this attribute. 11198 111992018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 11200 Kito Cheng <kito.cheng@gmail.com> 11201 11202 * config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function. 11203 * config/nds32/nds32-protos.h (nds32_long_call_p): Declare. 11204 * config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function. 11205 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. 11206 * config/nds32/nds32.md (sibcall_internal): New. 11207 (sibcall_register): Remove. 11208 (sibcall_immediate): Remove. 11209 (sibcall_value_internal): New. 11210 (sibcall_value_register): Remove. 11211 (sibcall_value_immediate): Remove. 11212 * config/nds32/predicates.md (nds32_general_register_operand): New. 11213 (nds32_call_address_operand): New. 11214 112152018-04-03 Jakub Jelinek <jakub@redhat.com> 11216 11217 PR rtl-optimization/85167 11218 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and 11219 bb_defs if *split_p, instead preinitialize it to NULL. 11220 11221 PR tree-optimization/85156 11222 * builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid 11223 evaluating the argument multiple times. 11224 112252018-04-03 Bill Schmidt <wschmidt@linux.ibm.com> 11226 11227 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather 11228 than vector. 11229 (_mm_cvtpd_ps): Likewise. 11230 (_mm_cvttpd_epi32): Likewise. 11231 * config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise. 11232 * config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine 11233 vector, pixel, and bool following altivec.h include. 11234 112352018-04-03 Martin Sebor <msebor@redhat.com> 11236 11237 * doc/extend.texi (Common Function Attributes): Clarify. 11238 (const attribute): Likewise. 11239 (pure attribute): Likewise. 11240 112412018-04-03 Jakub Jelinek <jakub@redhat.com> 11242 11243 PR target/85169 11244 * config/i386/i386.c (ix86_expand_vector_set): Use 11245 HOST_WIDE_INT_1U << elt instead of 1 << elt. Formatting fix. 11246 112472018-04-03 Uros Bizjak <ubizjak@gmail.com> 11248 11249 * config/i386/i386.c (emit_i387_cw_initialization): Always use logic 11250 instructions when changing rounding bits to preserve precision bits 11251 in the x87 control word. 11252 112532018-04-03 Martin Liska <mliska@suse.cz> 11254 11255 PR tree-optimization/82491 11256 * rtl.h (strip_offset_and_add): Replace += suboffset with 11257 poly_uint64 () + suboffset. 11258 112592018-03-29 Martin Liska <mliska@suse.cz> 11260 Martin Jambor <mjambor@suse.cz> 11261 11262 PR ipa/84947 11263 * ipa-cp.c (propagate_bits_across_jump_function): Bail out if 11264 param_type is not an integral or pointer type. 11265 112662018-04-03 Richard Biener <rguenther@suse.de> 11267 11268 * sese.h (recompute_all_dominators): Remove. 11269 112702018-04-02 Martin Sebor <msebor@redhat.com> 11271 11272 * doc/invoke.texi (-Wrestrict): Fix typos. 11273 112742018-04-02 Jim Wilson <jimw@sifive.com> 11275 11276 * config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero. 11277 * config/riscv/riscv.md (<optab>si3): Use QImode shift count. 11278 (<optab>di3, <optab>si3_extend): Likewise. 11279 (<optab>si3_mask, <optab>si3_mask_1): New. 11280 (<optab>di3_mask, <optab>di3_mask_1): New. 11281 (<optab>si3_extend_mask, <optab>si3_extend_mask_1): New. 11282 (lshrsi3_zero_extend_1): Use VOIDmode shift count. 11283 * config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count. 11284 112852018-04-02 Gerald Pfeifer <gerald@pfeifer.com> 11286 11287 * doc/cpp.texi (Variadic Macros): Fix line continuation in an 11288 example. 11289 112902018-04-02 Chung-Ju Wu <jasonwucj@gmail.com> 11291 11292 * config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define. 11293 (nds32_canonicalize_comparison): New function. 11294 112952018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 11296 Kito Cheng <kito.cheng@gmail.com> 11297 Kuan-Lin Chen <kuanlinchentw@gmail.com> 11298 11299 * config.gcc (nds32): Add nds32-relax-opt.o into extra_objs. 11300 * config/nds32/constants.md (unspec_volatile_element): Add 11301 UNSPEC_VOLATILE_RELAX_GROUP. 11302 * config/nds32/nds32-relax-opt.c: New file. 11303 * config/nds32/nds32-predicates.c 11304 (nds32_symbol_load_store_p): New function. 11305 * config/nds32/nds32-protos.h 11306 (nds32_symbol_load_store_p): Declare function. 11307 (make_pass_nds32_relax_opt): Declare new rtl pass function. 11308 * config/nds32/nds32.c 11309 (nds32_register_pass): New function to register pass. 11310 (nds32_register_passes): New function to register passes. 11311 * config/nds32/nds32.md (relax_group): New pattern. 11312 * config/nds32/nds32.opt (mrelax-hint): New option. 11313 * config/nds32/t-nds32 (nds32-relax-opt.o): New dependency. 11314 113152018-04-01 Kito Cheng <kito.cheng@gmail.com> 11316 11317 * config/nds32/t-nds32: Modify files dependency. 11318 113192018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 11320 11321 * config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character. 11322 (PROFILE_HOOK): Define its implementation. 11323 113242018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 11325 11326 * config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int 11327 type and 32-bit size. 11328 113292018-04-01 Jakub Jelinek <jakub@redhat.com> 11330 11331 PR middle-end/85090 11332 * config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F. 11333 (V_128_256): New mode iterator. 11334 (*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split. 11335 (*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise. 11336 (xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead 11337 of V. 11338 * config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and 11339 V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F. 11340 113412018-03-31 Segher Boessenkool <segher@kernel.crashing.org> 11342 11343 PR target/83315 11344 * config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet) 11345 NaN inputs correctly. 11346 113472018-03-30 Peter Bergner <bergner@vnet.ibm.com> 11348 11349 PR target/80546 11350 * config/rs6000/vsx.md (??r): New mode attribute. 11351 (*vsx_mov<mode>_64bit): Use it. 11352 (*vsx_mov<mode>_32bit): Likewise. 11353 113542018-03-30 Martin Sebor <msebor@redhat.com> 11355 11356 PR tree-optimization/84818 11357 * builtins.c (check_access): Use warning_n. 11358 113592018-03-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 11360 11361 PR target/83822 11362 * config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant 11363 condition. 11364 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant 11365 condition. 11366 113672018-03-30 Julia Koval <julia.koval@intel.com> 11368 11369 PR target/84413 11370 * x86-tune.def (movx, partial_reg_dependency): Enable for 11371 m_SKYLAKE_AVX512. 11372 113732018-03-29 Vladimir Makarov <vmakarov@redhat.com> 11374 11375 PR inline-asm/84985 11376 * lra-constraints.c (process_alt_operands): Move setting 11377 this_alternative_matches below. 11378 113792018-03-29 Martin Liska <mliska@suse.cz> 11380 11381 PR lto/84995. 11382 * doc/invoke.texi: Document how LTO works with debug info. 11383 Describe auto-load support of binutils. Mention 'x86-64' 11384 as valid option value of -march option. 11385 113862018-03-29 Jakub Jelinek <jakub@redhat.com> 11387 11388 * config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>. 11389 11390 PR c/85094 11391 * fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT. 11392 For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe 11393 OEP_NO_HASH_CHECK for recursive call, to avoid exponential 11394 checking. 11395 113962018-03-28 Peter Bergner <bergner@vnet.ibm.com> 11397 11398 PR target/84912 11399 * config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define. 11400 (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64. 11401 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support 11402 for RS6000_BTM_POWERPC64. 11403 (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64 11404 (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64. 11405 * config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro 11406 definition. 11407 (DIVDE): Use it. 11408 (DIVDEU): Likewise. 11409 114102018-03-28 Carl Love <cel@us.ibm.com> 11411 11412 Revert 11413 2017-09-27 Carl Love <cel@us.ibm.com> 11414 11415 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. 11416 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. 11417 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the 11418 fctiw instruction. 11419 114202018-03-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 11421 11422 * config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool 11423 instead of __vector bool. 11424 (_mm_max_pu8): Likewise. 11425 (_mm_min_pi16): Likewise. 11426 114272018-03-28 Peter Bergner <bergner@vnet.ibm.com> 11428 11429 PR target/84912 11430 * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion. 11431 (DIVWEUO): Likewise. 11432 (DIVDEO): Likewise. 11433 (DIVDEUO): Likewise. 11434 * config/rs6000/rs6000.c (builtin_function_type): Remove support for 11435 DIVWEUO and DIVDEUO. 11436 * config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs. 11437 (UNSPEC_DIV_EXTEND): Remove deleted unspecs. 11438 (div_extend): Likewise. 11439 * doc/extend.texi (__builtin_divweo): Remove documentation for deleted 11440 builtin function. 11441 (__builtin_divweuo): Likewise. 11442 (__builtin_divdeo): Likewise. 11443 (__builtin_divdeuo): Likewise. 11444 114452018-03-28 Jakub Jelinek <jakub@redhat.com> 11446 11447 PR target/85095 11448 * config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0, 11449 *sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns. 11450 11451 PR tree-optimization/82004 11452 * gimple-match-head.c (optimize_pow_to_exp): New function. 11453 * match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE. 11454 Don't fold to exp if optimize_pow_to_exp is false. 11455 114562018-03-28 Martin Liska <mliska@suse.cz> 11457 11458 PR other/84819 11459 * calls.c (initialize_argument_information): Fix trailing space. 11460 * common.opt: Fix typo and provide better explanation for 11461 -fsanitize-coverage option. 11462 * config/i386/i386.opt: Fix typo. 11463 114642018-03-28 Jakub Jelinek <jakub@redhat.com> 11465 Martin Liska <mliska@suse.cz> 11466 11467 PR sanitizer/85081 11468 * gimplify.c (asan_poison_variable): Don't do the check for 11469 gimplify_omp_ctxp here. 11470 (gimplify_decl_expr): Do it here. 11471 (gimplify_target_expr): Likewise. 11472 114732018-03-28 Martin Liska <mliska@suse.cz> 11474 11475 PR target/84988 11476 * config/i386/i386.c (ix86_function_arg_advance): Do not call 11477 chkp_type_bounds_count if MPX is not enabled. 11478 114792018-03-27 Chung-Ju Wu <jasonwucj@gmail.com> 11480 11481 * config/nds32/nds32.h (BRANCH_COST): Adjust cost. 11482 114832018-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> 11484 11485 PR target/84914 11486 * config/rs6000/rs6000.c (create_complex_muldiv): New helper 11487 function to create the function decl for complex long double 11488 multiply and divide for -mabi=ieeelongdouble. 11489 (init_float128_ieee): Call it. 11490 114912018-03-27 H.J. Lu <hongjiu.lu@intel.com> 11492 11493 PR target/85044 11494 * config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for 11495 -fcf-protection=branch -mibt. 11496 * config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes. 11497 114982018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 11499 11500 PR target/81863 11501 * config/arm/arm.c (arm_valid_symbolic_address): Handle arm_word_relocations 11502 115032018-03-27 Cesar Philippidis <cesar@codesourcery.com> 11504 11505 PR target/85056 11506 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to 11507 extern array declarations. 11508 115092018-03-27 Richard Biener <rguenther@suse.de> 11510 11511 PR middle-end/84067 11512 * match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with 11513 explicit single_use checks. 11514 115152018-03-27 Richard Biener <rguenther@suse.de> 11516 11517 PR tree-optimization/85082 11518 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces): 11519 Valueize the VUSE. 11520 115212018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 11522 11523 * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES 11524 * common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]): 11525 Turn on fasynchronous-unwind-tables and funwind-tables. 11526 115272018-03-26 Uros Bizjak <ubizjak@gmail.com> 11528 11529 PR target/85073 11530 * config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern. 11531 (*bmi_blsr_<mode>_ccz): Ditto. 11532 115332018-03-26 Tom de Vries <tom@codesourcery.com> 11534 11535 PR tree-optimization/85063 11536 * omp-general.c (offloading_function_p): New function. Factor out 11537 of ... 11538 * omp-offload.c (pass_omp_target_link::gate): ... here. 11539 * omp-general.h (offloading_function_p): Declare. 11540 * tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable 11541 with attribute omp declare target for offloading functions. 11542 115432018-03-24 Richard Sandiford <richard.sandiford@linaro.org> 11544 11545 PR tree-optimization/84005 11546 * tree-data-ref.h (get_base_for_alignment): Declare. 11547 * tree-data-ref.c (get_base_for_alignment_1): New function. 11548 (get_base_for_alignment): Likewise. 11549 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use 11550 get_base_for_alignment to find a suitable base object, instead 11551 of always using drb->base_address. 11552 115532018-03-23 Jakub Jelinek <jakub@redhat.com> 11554 11555 PR inline-asm/85022 11556 * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have 11557 known size by default. 11558 115592018-03-23 Vladimir Makarov <vmakarov@redhat.com> 11560 11561 PR inline-asm/85030 11562 * lra-constraints.c (process_alt_operands): Don't match BLKmode 11563 and non BLKmode operands. 11564 115652018-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11566 11567 PR target/85026 11568 * config/arm/arm.md (unaligned_loadhis): Remove first alternative. 11569 Clean up attributes. 11570 115712018-03-23 Richard Biener <rguenther@suse.de> 11572 11573 PR debug/85020 11574 * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when 11575 we are going to emit early debug for LTO. 11576 115772018-03-23 Jakub Jelinek <jakub@redhat.com> 11578 11579 PR inline-asm/85034 11580 * function.c (match_asm_constraints_1): Don't optimize if input 11581 doesn't satisfy general_operand predicate for output's mode. 11582 11583 PR inline-asm/85022 11584 * alias.c (write_dependence_p): Don't require for x_canonicalized 11585 non-VOIDmode if x has VOIDmode. 11586 11587 PR sanitizer/85029 11588 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base), 11589 just don't try to optimize it rather than assert it never happens. 11590 115912018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 11592 11593 * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X 11594 macro expansions for definition of ST_INTERNAL_<mode> and 11595 LD_INTERNAL_<mode> builtins. 11596 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): 11597 Remove prototype. 11598 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this 11599 function. 11600 (altivec_expand_st_builtin): Likewise. 11601 (altivec_expand_builtin): Remove calls to deleted functions. 11602 (rs6000_address_for_altivec): Delete this function. 11603 * config/rs6000/vector.md: Remove expands for 11604 vector_altivec_load_<mode> and vector_altivec_store_<mode>. 11605 116062018-03-22 Sudakshina Das <sudi.das@arm.com> 11607 11608 PR target/84826 11609 * config/arm/arm.h (machine_function): Add static_chain_stack_bytes. 11610 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid 11611 re-computing once computed. 11612 (arm_expand_prologue): Compute machine->static_chain_stack_bytes. 11613 (arm_init_machine_status): Initialize 11614 machine->static_chain_stack_bytes. 11615 116162018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 11617 11618 PR target/84760 11619 * doc/extend.texi: Add four new prototypes for vec_ld. 11620 * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol 11621 definitions for more logical presentation. 11622 * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add 11623 entries for V1TI variants of __builtin_altivec_ld builtin. 11624 * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and 11625 handling of V1TI variant of LVX icode pattern. 11626 (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. 11627 (rs6000_gimple_fold_builtin): Likewise. 11628 (altivec_init_builtins): Add code to define 11629 __builtin_altivec_lvx_v1ti function. 11630 116312018-03-22 Jakub Jelinek <jakub@redhat.com> 11632 11633 PR inline-asm/84941 11634 * function.c (match_asm_constraints_1): Don't do the optimization 11635 if input isn't a REG, SUBREG, MEM or constant. 11636 116372018-03-22 Tom de Vries <tom@codesourcery.com> 11638 11639 PR tree-optimization/84956 11640 * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with 11641 bb_has_abnormal_pred. 11642 116432018-03-22 Jakub Jelinek <jakub@redhat.com> 11644 11645 PR sanitizer/85018 11646 * dwarf2asm.c (dw2_output_indirect_constant_1): Set 11647 DECL_INITIAL (decl) to decl at the end. 11648 * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, 11649 adjust the comment. 11650 116512018-03-21 Joseph Myers <joseph@codesourcery.com> 11652 11653 * doc/extend.texi (__builtin_tgmath): Document when complex 11654 integer types are treated as _Complex _Float64. 11655 116562018-03-21 Tom de Vries <tom@codesourcery.com> 11657 11658 * doc/extend.texi (__builtin_extend_pointer): Remove pasto. 11659 116602018-03-21 Jakub Jelinek <jakub@redhat.com> 11661 11662 PR tree-optimization/84960 11663 * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb 11664 if it is ENTRY block, move them into single succ of ENTRY in that case. 11665 116662018-03-21 Richard Sandiford <richard.sandiford@linaro.org> 11667 11668 PR tree-optimization/84811 11669 * poly-int.h (poly_span_traits): Remove the T3 parameter and 11670 promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT. 11671 (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p): 11672 (known_subrange_p): Update accordingly. Cast each value involved 11673 in the size comparison, rather than casting the result of the 11674 subtraction. 11675 116762018-03-21 Jakub Jelinek <jakub@redhat.com> 11677 11678 PR tree-optimization/84982 11679 * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion 11680 by flipping the least significant bit rather than all bits from 11681 bitpos to bitpos + bitsize - 1. 11682 116832018-03-21 Nathan Sidwell <nathan@acm.org> 11684 11685 * doc/extend.texi (Deprecated Features): Remove mention of 11686 long-deleted deprecations. 11687 116882018-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 11689 11690 PR jit/84288 11691 * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set. 11692 * configure: Regenerate. 11693 116942018-03-21 Tom de Vries <tom@codesourcery.com> 11695 11696 PR tree-optimization/83126 11697 * tree-parloops.c (num_phis): New function. 11698 (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure. 11699 117002018-03-21 Nathan Sidwell <nathan@acm.org> 11701 11702 * doc/extend.texi (Deprecated Features): Update deprecated flags, 11703 mention anon-struct/union members and trailing attributes. 11704 117052018-03-21 Bin Cheng <bin.cheng@arm.com> 11706 11707 PR tree-optimization/84969 11708 * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder 11709 builtin memset partitions if they set different rhs values. 11710 117112018-03-21 Jakub Jelinek <jakub@redhat.com> 11712 11713 PR rtl-optimization/84989 11714 * simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify 11715 VEC_DUPLICATE with scalar result mode. 11716 117172018-03-21 Martin Liska <mliska@suse.cz> 11718 11719 PR ipa/84963 11720 * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove 11721 not intended return statement. 11722 117232018-03-21 Martin Liska <mliska@suse.cz> 11724 11725 PR target/84988 11726 * tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro. 11727 (chkp_find_bound_slots_1): Limit number of iterations. 11728 117292018-03-20 David H. Gutteridge <dhgutteridge@sympatico.ca> 11730 11731 PR target/84838 11732 * Minor grammar fixes for x86 options. 11733 117342018-03-20 Jakub Jelinek <jakub@redhat.com> 11735 11736 PR debug/84875 11737 * dce.c (delete_unmarked_insns): Don't remove frame related noop moves 11738 holding REG_CFA_RESTORE notes, instead turn them into a USE. 11739 117402018-03-20 Peter Bergner <bergner@vnet.ibm.com> 11741 11742 PR target/83789 11743 * config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn. 11744 (altivec_lvx_<mode>_1op): Likewise. 11745 (altivec_stvx_<mode>_2op): Likewise. 11746 (altivec_stvx_<mode>_1op): Likewise. 11747 (altivec_lvx_<VM2:mode>): New define_expand. 11748 (altivec_stvx_<VM2:mode>): Likewise. 11749 (altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn. 11750 (altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. 11751 (altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise. 11752 (altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. 11753 * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders. 11754 (rs6000_gen_lvx): Likewise. 11755 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise. 11756 (altivec_expand_stv_builtin): Likewise. 11757 (altivec_expand_builtin): Likewise. 11758 * config/rs6000/vector.md: Likewise. 11759 117602018-03-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11761 11762 PR target/82518 11763 * config/arm/arm.c (arm_array_mode_supported_p): Return false for 11764 BYTES_BIG_ENDIAN. 11765 117662018-03-20 Richard Biener <rguenther@suse.de> 11767 11768 PR target/84986 11769 * config/i386/i386.c (ix86_add_stmt_cost): Only cost 11770 sign-conversions as zero, fall back to standard scalar_stmt 11771 cost for the rest. 11772 117732018-03-20 Martin Liska <mliska@suse.cz> 11774 11775 PR ipa/84825 11776 * predict.c (rebuild_frequencies): Handle case when we have 11777 PROFILE_ABSENT, but flag_guess_branch_prob is false. 11778 117792018-03-20 Jakub Jelinek <jakub@redhat.com> 11780 11781 PR target/84990 11782 * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off 11783 flag_section_anchors. 11784 * varasm.c (use_blocks_for_decl_p): Remove hack for 11785 dw2_force_const_mem. 11786 11787 PR target/84845 11788 * config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename 11789 to ... 11790 (*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this. If pseudos can't 11791 be created, use lowpart_subreg of operands[0] rather than operands[0] 11792 itself. 11793 (*aarch64_reg_<mode>3_minus_mask): Rename to ... 11794 (*aarch64_ashl_reg_<mode>3_minus_mask): ... this. 11795 (*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate 11796 and n constraint instead of aarch64_shift_imm_di and Usd. 11797 (*aarch64_reg_<optab>_minus<mode>3): Rename to ... 11798 (*aarch64_<optab>_reg_minus<mode>3): ... this. 11799 118002018-03-20 Sudakshina Das <sudi.das@arm.com> 11801 11802 PR target/82989 11803 * config/arm/neon.md (ashldi3_neon): Update ?s for constraints 11804 to favor GPR over NEON registers. 11805 (<shift>di3_neon): Likewise. 11806 118072018-03-20 Tom de Vries <tom@codesourcery.com> 11808 11809 PR target/84952 11810 * config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync. 11811 (nvptx_process_pars): Emit bar.sync asap and alap. 11812 118132018-03-20 Tom de Vries <tom@codesourcery.com> 11814 11815 PR target/84954 11816 * config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update 11817 seen_label if seen_label is already set. 11818 118192018-03-20 Jakub Jelinek <jakub@redhat.com> 11820 11821 PR target/84945 11822 * config/i386/i386.c (fold_builtin_cpu): For features above 31 11823 use __cpu_features2 variable instead of __cpu_model.__cpu_features[0]. 11824 Use 1U instead of 1. Formatting fixes. 11825 11826 PR c/84953 11827 * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type 11828 instead of TREE_TYPE (s1) for the return value. 11829 118302018-03-19 Jakub Jelinek <jakub@redhat.com> 11831 11832 PR tree-optimization/84946 11833 * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute 11834 bitsize + bitsize in poly_uint64 rather than poly_int64. 11835 11836 PR sanitizer/78651 11837 * dwarf2asm.c: Include fold-const.c. 11838 (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR 11839 of decl rather than decl itself. 11840 11841 PR rtl-optimization/84643 11842 * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator. 11843 118442018-03-19 Maxim Ostapenko <m.ostapenko@samsung.com> 11845 11846 PR sanitizer/78651 11847 * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before 11848 calling assemble_variable. 11849 118502018-03-19 Sudakshina Das <sudi.das@arm.com> 11851 11852 PR target/81647 11853 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify 11854 instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED. 11855 118562018-03-19 Jim Wilson <jimw@sifive.com> 11857 11858 PR bootstrap/84856 11859 * config/riscv/riscv.c (riscv_function_arg_boundary): Use 11860 PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY. 11861 (riscv_first_stack_step): Likewise. 11862 (riscv_option_override): Use STACK_BOUNDARY instead of 11863 MIN_STACK_BOUNDARY. 11864 * config/riscv/riscv.h (STACK_BOUNDARY): Renamed from 11865 MIN_STACK_BOUNDARY. 11866 (BIGGEST_ALIGNMENT): Set to 128. 11867 (PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY. 11868 (RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of 11869 STACK_BOUNDARY. 11870 118712018-03-19 Richard Biener <rguenther@suse.de> 11872 11873 PR tree-optimization/84933 11874 * tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound 11875 values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE. 11876 118772018-03-19 Richard Biener <rguenther@suse.de> 11878 11879 PR tree-optimization/84859 11880 * tree-ssa-phiopt.c (single_trailing_store_in_bb): New function. 11881 (cond_if_else_store_replacement): Perform sinking operation on 11882 single-store BBs regardless of MAX_STORES_TO_SINK setting. 11883 Generalize what a BB with a single eligible store is. 11884 118852018-03-19 Richard Biener <rguenther@suse.de> 11886 11887 PR tree-optimization/84929 11888 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard 11889 chrec_is_positive against non-chrec arg. 11890 118912018-03-19 Tamar Christina <tamar.christina@arm.com> 11892 11893 PR target/84711 11894 * config/arm/arm.c (arm_can_change_mode_class): revert r258554. 11895 118962018-03-18 Martin Liska <mliska@suse.cz> 11897 11898 PR rtl-optimization/84635 11899 * regrename.c (build_def_use): Use matches_mode only when 11900 matches >= 0. 11901 119022018-03-18 Richard Sandiford <richard.sandiford@linaro.org> 11903 11904 PR tree-optimization/84913 11905 * tree-vect-loop.c (vectorizable_reduction): Don't try to 11906 vectorize chains of COND_EXPRs. 11907 119082018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 11909 11910 * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value. 11911 119122018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 11913 11914 * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. 11915 119162018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 11917 11918 * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. 11919 119202018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> 11921 Kito Cheng <kito.cheng@gmail.com> 11922 11923 * config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare. 11924 * config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array. 11925 (nds32_adjust_reg_alloc_order): New function. 11926 * config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define. 11927 119282018-03-17 Kito Cheng <kito.cheng@gmail.com> 11929 11930 * config/nds32/nds32.c (nds32_asm_output_mi_thunk, 11931 nds32_print_operand, nds32_print_operand_address): Use 11932 HOST_WIDE_INT_PRINT_DEC instead. 11933 119342018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> 11935 11936 * config/nds32/nds32.c (nds32_register_priority): Modify cost. 11937 119382018-03-17 Jakub Jelinek <jakub@redhat.com> 11939 11940 PR target/84902 11941 * config/i386/i386.c (initial_ix86_tune_features, 11942 initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than 11943 unsigned long long. 11944 (set_ix86_tune_features): Change ix86_tune_mask from unsigned int 11945 to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune 11946 rather than 1u << ix86_tune. Formatting fix. 11947 (ix86_option_override_internal): Change ix86_arch_mask from 11948 unsigned int to unsigned HOST_WIDE_INT, initialize to 11949 HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch. 11950 (ix86_function_specific_restore): Likewise. 11951 119522018-03-16 Jakub Jelinek <jakub@redhat.com> 11953 11954 PR target/84899 11955 * postreload.c (reload_combine_recognize_pattern): Perform 11956 INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and 11957 truncate_int_for_mode the result for the destination's mode. 11958 11959 PR c/84909 11960 * hsa-gen.c (mem_type_for_type): Fix comment typo. 11961 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): 11962 Likewise. 11963 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): 11964 Likewise. 11965 119662018-03-16 Vladimir Makarov <vmakarov@redhat.com> 11967 11968 PR target/84876 11969 * lra-assigns.c (lra_split_hard_reg_for): Don't use 11970 regno_allocno_class_array and sorted_pseudos. 11971 * lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in 11972 insns where regno is used. 11973 119742018-03-16 Martin Liska <mliska@suse.cz> 11975 11976 PR ipa/84833 11977 * multiple_target.c (create_dispatcher_calls): Redirect 11978 reference in the symbol table. 11979 119802018-03-16 Martin Liska <mliska@suse.cz> 11981 11982 PR ipa/84722 11983 * multiple_target.c (create_dispatcher_calls): Redirect also 11984 an alias. 11985 119862018-03-16 Jakub Jelinek <jakub@redhat.com> 11987 11988 PR c++/79937 11989 PR c++/82410 11990 * tree.h (TARGET_EXPR_NO_ELIDE): Define. 11991 * gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with 11992 TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR. 11993 119942018-03-16 Julia Koval <julia.koval@intel.com> 11995 11996 * doc/invoke.texi (Skylake Server): Add CLWB. 11997 Cannonlake): Remove CLWB. 11998 119992018-03-16 Jakub Jelinek <jakub@redhat.com> 12000 12001 PR tree-optimization/84841 12002 * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from 12003 1 << 3. 12004 (FLOAT_ONE_CONST_TYPE): Define. 12005 (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0. 12006 (sort_by_operand_rank): Put entries with higher constant_type last 12007 rather than first to match comments. 12008 120092018-03-15 Sandra Loosemore <sandra@codesourcery.com> 12010 12011 * config/nios2/nios2.md (movsi_internal): Fix thinko in 12012 split predicate. 12013 120142018-03-15 Jakub Jelinek <jakub@redhat.com> 12015 12016 PR c++/79085 12017 * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment 12018 check and use address of target always. 12019 120202018-03-15 H.J. Lu <hongjiu.lu@intel.com> 12021 12022 PR target/84574 12023 * config/i386/i386.c (indirect_thunk_needed): Update comments. 12024 (indirect_thunk_bnd_needed): Likewise. 12025 (indirect_thunks_used): Likewise. 12026 (indirect_thunks_bnd_used): Likewise. 12027 (indirect_return_needed): New. 12028 (indirect_return_bnd_needed): Likewise. 12029 (output_indirect_thunk_function): Add a bool argument for 12030 function return. 12031 (output_indirect_thunk_function): Don't generate alias for 12032 function return thunk. 12033 (ix86_code_end): Call output_indirect_thunk_function to generate 12034 function return thunks. 12035 (ix86_output_function_return): Set indirect_return_bnd_needed 12036 and indirect_return_needed instead of indirect_thunk_bnd_needed 12037 and indirect_thunk_needed. 12038 120392018-03-15 Olga Makhotina <olga.makhotina@intel.com> 12040 12041 * config/i386/sgxintrin.h (_enclv_u32): New intrinsic. 12042 (__enclv_bc, __enclv_cd, __enclv_generic): New definitions. 12043 (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves. 12044 120452018-03-15 David Malcolm <dmalcolm@redhat.com> 12046 Paul Hua <paul.hua.gm@gmail.com> 12047 12048 PR c/84852 12049 * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp. 12050 120512018-03-15 Segher Boessenkool <segher@kernel.crashing.org> 12052 12053 * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the 12054 TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode 12055 resp. SFmode cases. 12056 120572018-03-15 Tamar Christina <tamar.christina@arm.com> 12058 12059 PR target/84711 12060 * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE 12061 instead of GET_MODE_SIZE when comparing Units. 12062 120632018-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> 12064 12065 PR target/68256 12066 * varasm.c (hash_section): Return an unchangeble hash value 12067 * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): 12068 Return !aarch64_can_use_per_function_literal_pools_p (). 12069 120702018-03-15 Jakub Jelinek <jakub@redhat.com> 12071 12072 PR target/84860 12073 * optabs.c (emit_conditional_move): Pass address of cmode's copy 12074 rather than address of cmode as last argument to prepare_cmp_insn. 12075 120762018-03-15 Julia Koval <julia.koval@intel.com> 12077 12078 * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, 12079 F_AVX512VNNI, F_AVX512BITALG): New. 12080 120812018-03-14 John David Anglin <danglin@gcc.gnu.org> 12082 12083 PR target/83451 12084 * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload 12085 insn for floating-point loads and stores. 12086 120872018-03-14 Carl Love <cel@us.ibm.com> 12088 12089 * config/rs6000/rs6000-c.c: Add macro definitions for 12090 ALTIVEC_BUILTIN_VEC_PERMXOR. 12091 * config/rs6000/rs6000.h: Add #define for vec_permxor builtin. 12092 * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR. 12093 * config/rs6000/altivec.md (altivec_vpermxor): New define expand. 12094 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case 12095 UNSPEC_VPERMXOR. 12096 * config/doc/extend.texi: Add prototypes for vec_permxor. 12097 120982018-03-14 David Malcolm <dmalcolm@redhat.com> 12099 12100 PR c/84852 12101 * diagnostic-show-locus.c (class layout_point): Convert m_line 12102 from int to linenum_type. 12103 (line_span::comparator): Use linenum "compare" function when 12104 comparing line numbers. 12105 (test_line_span): New function. 12106 (layout_range::contains_point): Convert param "row" from int to 12107 linenum_type. 12108 (layout_range::intersects_line_p): Likewise. 12109 (layout::will_show_line_p): Likewise. 12110 (layout::print_source_line): Likewise. 12111 (layout::should_print_annotation_line_p): Likewise. 12112 (layout::print_annotation_line): Likewise. 12113 (layout::print_leading_fixits): Likewise. 12114 (layout::annotation_line_showed_range_p): Likewise. 12115 (struct line_corrections): Likewise for field m_row. 12116 (line_corrections::line_corrections): Likewise for param "row". 12117 (layout::print_trailing_fixits): Likewise. 12118 (layout::get_state_at_point): Likewise. 12119 (layout::get_x_bound_for_row): Likewise. 12120 (layout::print_line): Likewise. 12121 (diagnostic_show_locus): Likewise for locals "last_line" and 12122 "row". 12123 (selftest::diagnostic_show_locus_c_tests): Call test_line_span. 12124 * input.c (selftest::test_linenum_comparisons): New function. 12125 (selftest::input_c_tests): Call it. 12126 * selftest.c (selftest::test_assertions): Test ASSERT_GT, 12127 ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT. 12128 * selftest.h (ASSERT_GT): New macro. 12129 (ASSERT_GT_AT): New macro. 12130 (ASSERT_LT): New macro. 12131 (ASSERT_LT_AT): New macro. 12132 121332018-03-14 Segher Boessenkool <segher@kernel.crashing.org> 12134 12135 PR rtl-optimization/84780 12136 * combine.c (distribute_links): Don't make a link based on pc_rtx. 12137 121382018-03-14 Martin Liska <mliska@suse.cz> 12139 12140 * tree.c (record_node_allocation_statistics): Use 12141 get_stats_node_kind. 12142 (get_stats_node_kind): New function extracted from 12143 record_node_allocation_statistics. 12144 (free_node): Use get_stats_node_kind. 12145 121462018-03-14 Richard Biener <rguenther@suse.de> 12147 12148 * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts 12149 that the value-set of ANTIC_IN doesn't grow. 12150 12151 Revert 12152 * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs 12153 member. 12154 (BB_VISITED_WITH_VISITED_SUCCS): New define. 12155 (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. 12156 121572018-03-14 Julia Koval <julia.koval@intel.com> 12158 12159 * config.gcc (icelake-client, icelake-server): New. 12160 (icelake): Remove. 12161 * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit. 12162 (initial_ix86_arch_features): Ditto. 12163 (PTA_SKYLAKE): Add SGX. 12164 (PTA_ICELAKE): Remove. 12165 (PTA_ICELAKE_CLIENT): New. 12166 (PTA_ICELAKE_SERVER): New. 12167 (ix86_option_override_internal): Split up icelake on icelake client and 12168 icelake server. 12169 (get_builtin_code_for_version): Ditto. 12170 (fold_builtin_cpu): Ditto. 12171 * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto. 12172 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto 12173 * config/i386/i386.h (processor_type): Ditto. 12174 * doc/invoke.texi: Ditto. 12175 121762018-03-14 Jakub Jelinek <jakub@redhat.com> 12177 12178 PR sanitizer/83392 12179 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also 12180 INTEGER_CST offset, add it together with bitpos / 8 and 12181 sign extend based on POINTER_SIZE. 12182 12183 PR target/84844 12184 Revert 12185 2017-04-20 Uros Bizjak <ubizjak@gmail.com> 12186 12187 PR target/78090 12188 * config/i386/constraints.md (Yc): New register constraint. 12189 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): 12190 Use Yc constraint for alternative 2 of operand 0. Remove 12191 preferred_for_speed attribute. 12192 121932018-03-14 Richard Biener <rguenther@suse.de> 12194 12195 PR tree-optimization/84830 12196 * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN 12197 with the old one to avoid oscillations. 12198 121992018-03-13 Vladimir Makarov <vmakarov@redhat.com> 12200 12201 PR target/83712 12202 * lra-assigns.c (find_all_spills_for): Ignore uninteresting 12203 pseudos. 12204 (assign_by_spills): Return a flag of reload assignment failure. 12205 Do not process the reload assignment failures. Do not spill other 12206 reload pseudos if they has the same reg class. Update n if 12207 necessary. 12208 (lra_assign): Add a return arg. Set up from the result of 12209 assign_by_spills call. 12210 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 12211 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 12212 usage_insns if it is not NULL. 12213 (spill_hard_reg_in_range): New function. 12214 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 12215 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 12216 function prototypes. 12217 (lra_assign): Change prototype. 12218 * lra.c (lra): Add code to deal with fails by splitting hard reg 12219 live ranges. 12220 122212018-03-01 Palmer Dabbelt <palmer@sifive.com> 12222 12223 * config/riscv/riscv.opt (mrelax): New option. 12224 * config/riscv/riscv.c (riscv_file_start): Emit ".option 12225 "norelax" when riscv_mrelax is disabled. 12226 * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". 12227 122282018-03-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 12229 12230 PR target/84743 12231 * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel 12232 reassociation for int modes. 12233 122342018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 12235 12236 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): 12237 Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR 12238 for big-endian. 12239 * config/aarch64/iterators.md (hi_lanes_optab): New int attribute. 12240 * config/aarch64/aarch64-sve.md 12241 (*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to... 12242 (aarch64_sve_<perm_insn><perm_hilo><mode>): ...this. 12243 (*extend<mode><Vwide>2): Rename to... 12244 (aarch64_sve_extend<mode><Vwide>2): ...this. 12245 (vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand, 12246 renaming the old pattern to... 12247 (aarch64_sve_punpk<perm_hilo>_<mode>): ...this. Only define 12248 unsigned packs. 12249 (vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a 12250 define_expand, renaming the old pattern to... 12251 (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this. 12252 (*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete. 12253 (vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into 12254 account when deciding which SVE instruction the optab should use. 12255 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise. 12256 122572018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 12258 12259 * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM) 12260 (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM) 12261 (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM) 12262 (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants. 12263 (tlsdesc_small_<mode>): Turn a define_expand and use 12264 tlsdesc_small_sve_<mode> for SVE. Rename original define_insn to... 12265 (tlsdesc_small_advsimd_<mode>): ...this. 12266 (tlsdesc_small_sve_<mode>): New pattern. 12267 122682018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 12269 12270 * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) 12271 (UNSPEC_UMUL_HIGHPART): New constants. 12272 (MUL_HIGHPART): New int iteraor. 12273 (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART. 12274 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New 12275 define_expand. 12276 (*<su>mul<mode>3_highpart): New define_insn. 12277 122782018-03-13 Eric Botcazou <ebotcazou@adacore.com> 12279 12280 PR lto/84805 12281 * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of 12282 incomplete types. 12283 122842018-03-13 Martin Liska <mliska@suse.cz> 12285 12286 PR ipa/84658. 12287 * (sem_item_optimizer::sem_item_optimizer): Initialize new 12288 vector. 12289 (sem_item_optimizer::~sem_item_optimizer): Release it. 12290 (sem_item_optimizer::merge_classes): Register variable aliases. 12291 (sem_item_optimizer::fixup_pt_set): New function. 12292 (sem_item_optimizer::fixup_points_to_sets): Likewise. 12293 * ipa-icf.h: Declare new variables and functions. 12294 122952018-03-13 Jakub Jelinek <jakub@redhat.com> 12296 12297 PR middle-end/84834 12298 * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of 12299 integer_pow2p@2 and test integer_pow2p in condition. 12300 (A < 0 ? C : 0): Similarly for @1. 12301 12302 PR middle-end/84831 12303 * stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p) 12304 characters starting at p contain '\0' character, don't look beyond 12305 that. 12306 12307 PR target/84827 12308 * config/i386/i386.md (round<mode>2): For 387 fancy math, disable 12309 pattern if -ftrapping-math -fno-fp-int-builtin-inexact. 12310 12311 PR target/84828 12312 * reg-stack.c (change_stack): Change update_end var from int to 12313 rtx_insn *, if non-NULL don't update just BB_END (current_block), but 12314 also call set_block_for_insn on the newly added insns and rescan. 12315 12316 PR target/84786 12317 * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v 12318 on the last operand. 12319 12320 PR c++/84704 12321 * tree.c (stabilize_reference_1): Return save_expr (e) for 12322 STATEMENT_LIST even if it doesn't have side-effects. 12323 123242018-03-12 Jonathan Wakely <jwakely@redhat.com> 12325 12326 * doc/invoke.texi (-mclflushopt): Fix spelling of option. 12327 123282018-03-12 Renlin Li <renlin.li@arm.com> 12329 12330 * config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to 12331 aarch64_output_scalar_simd_mov_immediate. 12332 123332018-03-12 Martin Sebor <msebor@redhat.com> 12334 12335 PR tree-optimization/83456 12336 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning 12337 for perfectly overlapping calls to memcpy. 12338 (gimple_fold_builtin_memory_chk): Same. 12339 (gimple_fold_builtin_strcpy): Handle no-warning. 12340 (gimple_fold_builtin_stxcpy_chk): Same. 12341 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning. 12342 123432018-03-12 Segher Boessenkool <segher@kernel.crashing.org> 12344 12345 * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named" 12346 parameter. Use it for SFmode. 12347 (rs6000_function_arg_advance_1): Adjust. 12348 (rs6000_function_arg): Adjust. 12349 (rs6000_gimplify_va_arg): Pass false for that new parameter. 12350 123512018-03-12 Segher Boessenkool <segher@kernel.crashing.org> 12352 12353 PR rtl-optimization/84169 12354 PR rtl-optimization/84780 12355 * combine.c (can_combine_p): Check for a 2-insn combination whether 12356 the destination register is used between the two insns, too. 12357 123582018-03-12 Richard Biener <rguenther@suse.de> 12359 12360 PR tree-optimization/84803 12361 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything 12362 for refs DR analysis didn't process. 12363 123642018-03-12 Richard Biener <rguenther@suse.de> 12365 12366 PR tree-optimization/84777 12367 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For 12368 force-vectorize loops ignore whether we are optimizing for size. 12369 123702018-03-12 Chung-Ju Wu <jasonwucj@gmail.com> 12371 12372 * config/nds32/nds32.c (nds32_md_asm_adjust): New function. 12373 (TARGET_MD_ASM_ADJUST): Define. 12374 123752018-03-12 Monk Chiang <sh.chiang04@gmail.com> 12376 Kito Cheng <kito.cheng@gmail.com> 12377 Chung-Ju Wu <jasonwucj@gmail.com> 12378 12379 * config/nds32/nds32.c (nds32_compute_stack_frame, 12380 nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple, 12381 nds32_emit_stack_v3push, nds32_emit_stack_v3pop, 12382 nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue, 12383 nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine. 12384 * config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM, 12385 NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New. 12386 * config/nds32/nds32.md (prologue, epilogue): Use macro 12387 NDS32_V3PUSH_AVAILABLE_P to do checking. 12388 123892018-03-11 Jakub Jelinek <jakub@redhat.com> 12390 12391 PR debug/58150 12392 * dwarf2out.c (gen_enumeration_type_die): Don't guard adding 12393 DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf, 12394 but on TYPE_SIZE. Don't do anything for ENUM_IS_OPAQUE if not creating 12395 a new die. Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE. Guard 12396 addition of most attributes on !orig_type_die or the attribute not 12397 being present already. Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE. 12398 123992018-03-11 Kito Cheng <kito.cheng@gmail.com> 12400 Chung-Ju Wu <jasonwucj@gmail.com> 12401 12402 * config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define 12403 __NDS32_VH__ macro. 12404 * config/nds32/nds32.opt (mvh): New option. 12405 124062018-03-11 Kito Cheng <kito.cheng@gmail.com> 12407 Chung-Ju Wu <jasonwucj@gmail.com> 12408 12409 * config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare 12410 function. 12411 * config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function. 12412 * config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its 12413 definition. 12414 124152018-03-11 Kito Cheng <kito.cheng@gmail.com> 12416 Chung-Ju Wu <jasonwucj@gmail.com> 12417 12418 * config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New 12419 function. 12420 * config/nds32/nds32-multiple.md (strlensi): New pattern. 12421 * config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function. 12422 124232018-03-11 Monk Chiang <sh.chiang04@gmail.com> 12424 Kito Cheng <kito.cheng@gmail.com> 12425 Chung-Ju Wu <jasonwucj@gmail.com> 12426 12427 * config/nds32/constants.md (unspec_element): Add UNSPEC_FFB, 12428 UNSPEC_FFMISM and UNSPEC_FLMISM. 12429 * config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description 12430 for ffb, ffmism and flmism. 12431 * config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern. 12432 (unspec_ffmism): Ditto. 12433 (unspec_flmism): Ditto. 12434 (nds32_expand_builtin_impl): Check if string extension is available. 12435 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB, 12436 NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM. 12437 124382018-03-10 Vladimir Makarov <vmakarov@redhat.com> 12439 12440 Reverting patch: 12441 2018-03-09 Vladimir Makarov <vmakarov@redhat.com> 12442 12443 PR target/83712 12444 * lra-assigns.c (assign_by_spills): Return a flag of reload 12445 assignment failure. Do not process the reload assignment 12446 failures. Do not spill other reload pseudos if they has the same 12447 reg class. 12448 (lra_assign): Add a return arg. Set up from the result of 12449 assign_by_spills call. 12450 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 12451 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 12452 usage_insns if it is not NULL. 12453 (spill_hard_reg_in_range): New function. 12454 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 12455 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 12456 function prototypes. 12457 (lra_assign): Change prototype. 12458 * lra.c (lra): Add code to deal with fails by splitting hard reg 12459 live ranges. 12460 124612018-03-10 H.J. Lu <hongjiu.lu@intel.com> 12462 12463 PR target/84807 12464 * config/i386/i386.opt: Replace Enforcment with Enforcement. 12465 124662018-03-10 Alexandre Oliva <aoliva@redhat.com> 12467 12468 PR debug/84620 12469 * dwarf2out.h (dw_val_class): Add dw_val_class_symview. 12470 (dw_val_node): Add val_symbolic_view. 12471 * dwarf2out.c (dw_line_info_table): Add symviews_since_reset. 12472 (symview_upper_bound): New. 12473 (new_line_info_table): Initialize symviews_since_reset. 12474 (dwarf2out_source_line): Count symviews_since_reset and set 12475 symview_upper_bound. 12476 (dw_val_equal_p): Handle symview. 12477 (add_AT_symview): New. 12478 (print_dw_val): Handle symview. 12479 (attr_checksum, attr_checksum_ordered): Likewise. 12480 (same_dw_val_p, size_of_die): Likewise. 12481 (value_format, output_die): Likewise. 12482 (add_high_low_attributes): Use add_AT_symview for entry_view. 12483 (dwarf2out_finish): Reset symview_upper_bound, clear 12484 zero_view_p. 12485 124862018-03-09 Peter Bergner <bergner@vnet.ibm.com> 12487 12488 PR target/83969 12489 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype. 12490 Add strict argument and use it. 12491 (rs6000_split_multireg_move): Update for new strict argument. 12492 (mem_operand_gpr): Disallow all non-offsettable addresses. 12493 * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint. 12494 124952018-03-09 Jakub Jelinek <jakub@redhat.com> 12496 12497 PR target/84772 12498 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp 12499 temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY. 12500 * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise. 12501 12502 PR c++/84767 12503 * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped 12504 decl, use remap_type if we want to use the type. 12505 125062018-03-09 Martin Sebor <msebor@redhat.com> 12507 12508 PR tree-optimization/84526 12509 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): 12510 Remove dead code. 12511 (builtin_access::generic_overlap): Be prepared to handle non-array 12512 base objects. 12513 125142018-03-09 Alexandre Oliva <aoliva@redhat.com> 12515 12516 PR rtl-optimization/84682 12517 * lra-constraints.c (process_address_1): Check is_address flag 12518 for address constraints. 12519 (process_alt_operands): Likewise. 12520 * lra.c (lra_set_insn_recog_data): Pass asm operand locs to 12521 preprocess_constraints. 12522 * recog.h (preprocess_constraints): Add oploc parameter. 12523 Adjust callers. 12524 * recog.c (preprocess_constraints): Test address_operand for 12525 CT_ADDRESS constraints. 12526 125272018-03-09 Vladimir Makarov <vmakarov@redhat.com> 12528 12529 PR target/83712 12530 * lra-assigns.c (assign_by_spills): Return a flag of reload 12531 assignment failure. Do not process the reload assignment 12532 failures. Do not spill other reload pseudos if they has the same 12533 reg class. 12534 (lra_assign): Add a return arg. Set up from the result of 12535 assign_by_spills call. 12536 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 12537 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 12538 usage_insns if it is not NULL. 12539 (spill_hard_reg_in_range): New function. 12540 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 12541 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 12542 function prototypes. 12543 (lra_assign): Change prototype. 12544 * lra.c (lra): Add code to deal with fails by splitting hard reg 12545 live ranges. 12546 125472018-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12548 12549 PR target/83193 12550 * common/config/arm/arm-common.c (arm_parse_arch_option_name): 12551 Accept complain bool parameter. Only emit errors if it is true. 12552 (arm_parse_cpu_option_name): Likewise. 12553 (arm_target_thumb_only): Adjust callers of the above. 12554 * config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust 12555 prototype to take a default true bool parameter. 12556 (arm_parse_arch_option_name): Likewise. 12557 125582018-03-09 David Malcolm <dmalcolm@redhat.com> 12559 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 12560 12561 PR jit/64089 12562 PR jit/84288 12563 * Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New. 12564 * configure: Regenerate. 12565 * configure.ac ("linker --version-script option"): New. 12566 ("linker soname option"): New. 12567 125682018-03-09 Richard Biener <rguenther@suse.de> 12569 12570 PR tree-optimization/84775 12571 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink 12572 immediate uses of predicate stmts and mark them modified. 12573 12574 Revert 12575 PR tree-optimization/84178 12576 * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates 12577 to caller. 12578 (version_loop_for_if_conversion): Delay update_ssa call. 12579 (tree_if_conversion): Delay update_ssa until after predicate 12580 insertion. 12581 125822018-03-09 Eric Botcazou <ebotcazou@adacore.com> 12583 12584 PR target/84763 12585 * config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation 12586 when the function accesses prior frames. 12587 125882018-03-08 Jakub Jelinek <jakub@redhat.com> 12589 12590 PR debug/84456 12591 * dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call 12592 gen_llsym, otherwise call maybe_gen_llsym. 12593 12594 PR inline-asm/84742 12595 * recog.c (asm_operand_ok): Return 0 if multi-character constraint 12596 has ',' character inside of it. 12597 125982018-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12599 12600 PR target/84748 12601 * config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern 12602 as clobbering CC_REGNUM. 12603 126042018-03-08 Richard Biener <rguenther@suse.de> 12605 12606 PR middle-end/84552 12607 * tree-scalar-evolution.c: Include tree-into-ssa.h. 12608 (follow_copies_to_constant): Do not follow SSA names registered 12609 for update. 12610 126112018-03-08 Richard Biener <rguenther@suse.de> 12612 12613 PR tree-optimization/84178 12614 * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates 12615 to caller. 12616 (version_loop_for_if_conversion): Delay update_ssa call. 12617 (tree_if_conversion): Delay update_ssa until after predicate 12618 insertion. 12619 126202018-03-08 David Malcolm <dmalcolm@redhat.com> 12621 12622 PR tree-optimization/84178 12623 * tree-if-conv.c (release_bb_predicate): Remove the 12624 the assertion that the stmts have NULL use_ops. 12625 Discard the statements, asserting that they haven't 12626 yet been added to a BB. 12627 126282018-03-08 Richard Biener <rguenther@suse.de> 12629 12630 PR tree-optimization/84746 12631 * tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL. 12632 (phi_translate): Pass in destination ANTIC_OUT set. 12633 (phi_translate_1): Likewise. For a simplified result lookup 12634 a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets. 12635 (phi_translate_set): Adjust. 12636 (do_pre_regular_insertion): Likewise. 12637 (do_pre_partial_partial_insertion): Likewise. 12638 126392018-03-08 Martin Liska <mliska@suse.cz> 12640 12641 PR gcov-profile/84735 12642 * doc/gcov.texi: Document usage of profile files. 12643 * gcov-io.h: Document changes in the format. 12644 126452018-03-08 Alexandre Oliva <aoliva@redhat.com> 12646 12647 PR debug/84404 12648 PR debug/84408 12649 * dwarf2out.c (struct dw_line_info_table): Update comments for 12650 view == -1. 12651 (FORCE_RESET_NEXT_VIEW): New. 12652 (FORCE_RESETTING_VIEW_P): New. 12653 (RESETTING_VIEW_P): Check for -1 too. 12654 (ZERO_VIEW_P): Likewise. 12655 (new_line_info_table): Force-reset next view. 12656 (dwarf2out_begin_function): Likewise. 12657 (dwarf2out_source_line): Simplify zero_view_p initialization. 12658 Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of 12659 view directly. Omit view when omitting .loc at line 0. 12660 126612018-03-08 Jakub Jelinek <jakub@redhat.com> 12662 12663 PR tree-optimization/84740 12664 * tree-switch-conversion.c (process_switch): Call build_constructors 12665 only if info.phi_count is non-zero. 12666 12667 PR tree-optimization/84739 12668 * tree-tailcall.c (find_tail_calls): Check call arguments against 12669 DECL_ARGUMENTS (current_function_decl) rather than 12670 DECL_ARGUMENTS (func) when checking for tail recursion. 12671 126722018-03-07 Jakub Jelinek <jakub@redhat.com> 12673 12674 * doc/contrib.texi: Add entries for Martin Liska, David Malcolm, 12675 Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and 12676 Volker Reichelt's entry and add entries for people that perform 12677 GCC fuzzy testing and report numerous bugs. 12678 126792018-03-07 Segher Boessenkool <segher@kernel.crashing.org> 12680 12681 PR target/82411 12682 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put 12683 readonly data in sdata, if that is disabled. 12684 * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option. 12685 * doc/invoke.texi (RS/6000 and PowerPC Options): Document 12686 -mreadonly-in-sdata option. 12687 126882018-03-07 Martin Sebor <msebor@redhat.com> 12689 12690 PR tree-optimization/84468 12691 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor 12692 basic block when looking for nul assignment. 12693 126942018-03-07 Eric Botcazou <ebotcazou@adacore.com> 12695 12696 PR target/84277 12697 * except.h (output_function_exception_table): Adjust prototype. 12698 * except.c (output_function_exception_table): Remove FNNAME parameter 12699 and add SECTION parameter. Ouput one part of the table at a time. 12700 * final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output 12701 the first part of the exception table and emit unwind directives. 12702 * config/i386/i386-protos.h (i386_pe_end_cold_function): Declare. 12703 (i386_pe_seh_cold_init): Likewise. 12704 * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro. 12705 (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise. 12706 * config/i386/i386.c (x86_expand_epilogue): Fix wording in comment. 12707 (ix86_output_call_insn): Emit a nop in one more case for SEH. 12708 * config/i386/winnt.c: Include except.h. 12709 (struct seh_frame_state): Add reg_offset, after_prologue and 12710 in_cold_section fields. 12711 (i386_pe_seh_end_prologue): Set seh->after_prologue. 12712 (i386_pe_seh_cold_init): New function. 12713 (i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal 12714 to seh->in_cold_section. 12715 (seh_emit_push): Record the offset of the push. 12716 (seh_emit_save): Record the offet of the save. 12717 (i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS. 12718 Test seh->after_prologue to disregard the epilogue. 12719 (i386_pe_end_function): Pass FALSE to i386_pe_seh_fini. 12720 (i386_pe_end_cold_function): New function. 12721 127222018-03-07 Jakub Jelinek <jakub@redhat.com> 12723 12724 PR fortran/84565 12725 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use 12726 aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero. 12727 12728 PR c++/84704 12729 * gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag 12730 on tmp_var. 12731 * tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG, 12732 don't print names of DECL_NAMELESS DECL_IGNORED_P decls. 12733 12734 PR middle-end/84723 12735 * multiple_target.c: Include tree-inline.h and intl.h. 12736 (expand_target_clones): Diagnose and fail if node->definition and 12737 !tree_versionable_function_p (node->decl). 12738 127392018-03-06 John David Anglin <danglin@gcc.gnu.org> 12740 12741 * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use 12742 sprint_ul. 12743 (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change. 12744 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 12745 * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above. 12746 127472018-03-06 Jakub Jelinek <jakub@redhat.com> 12748 12749 PR target/84710 12750 * combine.c (try_combine): Use reg_or_subregno instead of handling 12751 just paradoxical SUBREGs and REGs. 12752 127532018-03-06 Claudiu Zissulescu <claziss@synopsys.com> 12754 12755 * config/arc/arc.c (arc_finalize_pic): Remove function. 12756 (arc_must_save_register): We use single base PIC register, remove 12757 checks to save/restore the PIC register. 12758 (arc_expand_prologue): Likewise. 12759 * config/arc/arc-protos.h (arc_set_default_type_attributes): 12760 Remove. 12761 (arc_verify_short): Likewise. 12762 (arc_attr_type): Likewise. 12763 * config/arc/arc.c (arc_set_default_type_attributes): Remove. 12764 (walk_stores): Likewise. 12765 (arc_address_cost): Make it static. 12766 (arc_verify_short): Likewise. 12767 (branch_dest): Likewise. 12768 (arc_attr_type): Likewise. 12769 * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove. 12770 (TARGET_INSN_LENGTH_PARAMETERS): Likewise. 12771 (arc_final_prescan_insn): Remove inserting the nops due to 12772 hardware hazards. It is done in reorg step. 12773 (insn_length_variant_t): Remove. 12774 (insn_length_parameters_t): Likewise. 12775 (arc_insn_length_parameters): Likewise. 12776 (arc_get_insn_variants): Likewise. 12777 * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove. 12778 127792018-03-06 Jakub Jelinek <jakub@redhat.com> 12780 12781 PR inline-asm/84683 12782 * reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid 12783 assertion failure. 12784 12785 PR tree-optimization/84687 12786 * omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS 12787 on new_node->decl. 12788 * match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization. 12789 127902018-03-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 12791 12792 * config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier): 12793 Rename to ppc_speculation_barrier. 12794 * config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to 12795 __builtin_ppc_speculation_barrier. 12796 127972018-03-05 Jakub Jelinek <jakub@redhat.com> 12798 12799 PR target/84700 12800 * combine.c (combine_simplify_rtx): Don't try to simplify if 12801 if_then_else_cond returned non-NULL, but either true_rtx or false_rtx 12802 are equal to x. 12803 128042018-03-05 Segher Boessenkool <segher@kernel.crashing.org> 12805 12806 * config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops 12807 to 32 bytes when compiling for POWER9. 12808 128092018-03-05 Jakub Jelinek <jakub@redhat.com> 12810 12811 PR target/84564 12812 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for 12813 regparm >= 3 with no arg reg available also for calls with 12814 flag_force_indirect_call. Pass decl to ix86_function_regparm. 12815 12816 PR target/84524 12817 * config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with 12818 orig,vex. 12819 (*<plusminus_insn><mode>3): Likewise. Remove <mask_operand3> uses. 12820 128212018-03-05 Peter Bergner <bergner@vnet.ibm.com> 12822 12823 PR target/84264 12824 * config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands. 12825 128262018-03-05 Richard Biener <rguenther@suse.de> 12827 12828 PR tree-optimization/84486 12829 * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code. 12830 When inserting a __builtin_assume_aligned call set the LHS 12831 SSA name alignment info accordingly. 12832 128332018-03-05 Wilco Dijkstra <wdijkstr@arm.com> 12834 12835 PR tree-optimization/84114 12836 * config/aarch64/aarch64.c (aarch64_reassociation_width) 12837 Avoid reassociation of FLOAT_MODE addition. 12838 128392018-03-05 Olga Makhotina <olga.makhotina@intel.com> 12840 12841 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET, 12842 OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET, 12843 OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions. 12844 (ix86_handle_option): Handle -mpconfig and -mwbnoinvd. 12845 * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers. 12846 * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New. 12847 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig 12848 and -mwbnoinvd. 12849 * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd, 12850 __builtin_ia32_wbinvd): New builtins. 12851 (SPECIAL_ARGS2): New. 12852 * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New. 12853 (SPECIAL_ARGS2): New. 12854 * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd. 12855 (ix86_valid_target_attribute_inner_p): Ditto. 12856 (ix86_init_mmx_sse_builtins): Add special_args2. 12857 * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD, 12858 TARGET_WBNOINVD_P): New. 12859 * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New. 12860 (define_insn "wbinvd", define_insn "wbnoinvd"): New. 12861 * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd. 12862 * config/i386/immintrin.h (_wbinvd): New intrinsic. 12863 * config/i386/pconfigintrin.h: New file. 12864 * config/i386/wbnoinvdintrin.h: Ditto. 12865 * config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.h. 12866 * doc/invoke.texi (-mpconfig, -mwbnoinvd): New. 12867 128682018-03-05 Richard Biener <rguenther@suse.de> 12869 12870 PR tree-optimization/84670 12871 * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs 12872 member. 12873 (BB_VISITED_WITH_VISITED_SUCCS): New define. 12874 (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. 12875 (compute_antic_aux): Only assert the number of values in ANTIC_IN 12876 doesn't grow if all successors (recursively) were visited at least 12877 once. 12878 128792018-03-05 Richard Biener <rguenther@suse.de> 12880 12881 PR tree-optimization/84650 12882 * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache 12883 if executed in the loop pipeline. 12884 128852018-03-05 Sandra Loosemore <sandra@codesourcery.com> 12886 12887 * doc/configfiles.texi (Configuration Files): Move info about 12888 conditionalizing $target-protos.h to... 12889 * doc/sourcebuild.texi (Back End): Here. Explain how $target.h 12890 differs from $target-protos.h. 12891 128922018-03-05 Kito Cheng <kito.cheng@gmail.com> 12893 Chung-Ju Wu <jasonwucj@gmail.com> 12894 12895 * config/nds32/nds32-protos.h (nds32_expand_setmem): Declare. 12896 * config/nds32/nds32-multiple.md (setmemsi): Define. 12897 * config/nds32/nds32-memory-manipulation.c 12898 (nds32_gen_dup_4_byte_to_word_value): New. 12899 (emit_setmem_word_loop): New. 12900 (emit_setmem_byte_loop): New. 12901 (nds32_expand_setmem_loop): New. 12902 (nds32_expand_setmem_loop_v3m): New. 12903 (nds32_expand_setmem_unroll): New. 12904 (nds32_expand_setmem): New. 12905 129062018-03-04 Kito Cheng <kito.cheng@gmail.com> 12907 Chung-Ju Wu <jasonwucj@gmail.com> 12908 12909 * config/nds32/nds32-memory-manipulation.c 12910 (nds32_emit_load_store): New. 12911 (nds32_emit_post_inc_load_store): New. 12912 (nds32_emit_mem_move): New. 12913 (nds32_emit_mem_move_block): New. 12914 (nds32_expand_movmemsi_loop_unknown_size): New. 12915 (nds32_expand_movmemsi_loop_known_size): New. 12916 (nds32_expand_movmemsi_loop): New. 12917 (nds32_expand_movmemsi_unroll): New. 12918 (nds32_expand_movmemqi): Rename ... 12919 (nds32_expand_movmemsi): ... to this. 12920 * config/nds32/nds32-multiple.md (movmemqi): Rename ... 12921 (movmemsi): ... to this. 12922 * config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ... 12923 (nds32_expand_movmemsi): ... to this. 12924 129252018-03-04 Kito Cheng <kito.cheng@gmail.com> 12926 Monk Chiang <sh.chiang04@gmail.com> 12927 Chung-Ju Wu <jasonwucj@gmail.com> 12928 12929 * config/nds32/nds32-protos.h 12930 (nds32_expand_load_multiple): New arguments. 12931 (nds32_expand_store_multiple): Ditto. 12932 (nds32_valid_multiple_load_store): Rename ... 12933 (nds32_valid_multiple_load_store_p): ... to this. 12934 * config/nds32/nds32-memory-manipulation.c 12935 (nds32_expand_load_multiple): Refine implementation. 12936 (nds32_expand_store_multiple): Ditto. 12937 * config/nds32/nds32-multiple.md 12938 (load_multiple): Update nds32_expand_load_multiple interface. 12939 (store_multiple): Update nds32_expand_store_multiple interface. 12940 * config/nds32/nds32-predicates.c 12941 (nds32_valid_multiple_load_store): Rename ... 12942 (nds32_valid_multiple_load_store_p): ... to this and refine 12943 implementation. 12944 * config/nds32/predicates.md 12945 (nds32_load_multiple_and_update_address_operation): New predicate. 12946 (nds32_store_multiple_and_update_address_operation): New predicate. 12947 129482018-03-04 Kito Cheng <kito.cheng@gmail.com> 12949 Chung-Ju Wu <jasonwucj@gmail.com> 12950 12951 * config/nds32/nds32.md (type): Add load_multiple and store_multiple. 12952 (combo): New attribute. 12953 * config/nds32/nds32-multiple.md: Refine patterns with new attributes. 12954 129552018-03-03 Chung-Ju Wu <jasonwucj@gmail.com> 12956 12957 * config/nds32/nds32.opt: Change -mcmodel= default value. 12958 129592018-03-03 Kito Cheng <kito.cheng@gmail.com> 12960 Monk Chiang <sh.chiang04@gmail.com> 12961 Chung-Ju Wu <jasonwucj@gmail.com> 12962 12963 * config/nds32/constants.md (unspec_element): New enum. 12964 * config/nds32/constraints.md (Umw): New constraint. 12965 * config/nds32/nds32-intrinsic.c: Add more builtin functions. 12966 * config/nds32/nds32-intrinsic.md: Likewise. 12967 * config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New. 12968 (nds32_valid_smw_lwm_base_p): New. 12969 (nds32_output_smw_single_word): New. 12970 (nds32_output_lmw_single_word): New. 12971 (nds32_expand_unaligned_load): New. 12972 (nds32_expand_unaligned_store): New. 12973 * config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare. 12974 (nds32_output_smw_single_word): Declare. 12975 (nds32_output_lmw_single_word): Declare. 12976 (nds32_expand_unaligned_load): Declare. 12977 (nds32_expand_unaligned_store): Declare. 12978 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW, 12979 NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW, 12980 NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W, 12981 NDS32_BUILTIN_UASTORE_DW. 12982 * config/nds32/predicates.md (nds32_lmw_smw_base_operand): New 12983 predicate. 12984 129852018-03-03 Monk Chiang <sh.chiang04@gmail.com> 12986 Kito Cheng <kito.cheng@gmail.com> 12987 Chung-Ju Wu <jasonwucj@gmail.com> 12988 12989 * config/nds32/nds32-intrinsic.c 12990 (nds32_expand_builtin_null_ftype_reg): Delete. 12991 (nds32_expand_builtin_reg_ftype_imm): Ditto. 12992 (nds32_expand_builtin_null_ftype_reg_imm): Ditto. 12993 (nds32_read_argument): New. 12994 (nds32_legitimize_target): Ditto. 12995 (nds32_legitimize_argument): Ditto. 12996 (nds32_check_constant_argument): Ditto. 12997 (nds32_expand_unop_builtin): Ditto. 12998 (nds32_expand_unopimm_builtin): Ditto. 12999 (nds32_expand_binop_builtin): Ditto. 13000 (nds32_builtin_decl_impl): Ditto. 13001 (builtin_description): Ditto. 13002 (nds32_expand_builtin_impl): Rewrite with new infrastructure. 13003 (nds32_init_builtins_impl): Ditto. 13004 * config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define. 13005 (nds32_builtin_decl): New. 13006 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT. 13007 * config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare. 13008 130092018-03-02 Jeff Law <law@redhat.com> 13010 13011 * reorg.c (stop_search_p): Handle DEBUG_INSN. 13012 (redundant_insn, fill_simple_delay_slots): Likewise. 13013 (fill_slots_from_thread): Likewise. 13014 * resource.c (mark_referenced_resources): Likewise. 13015 (mark_set_resources, find_dead_or_set_registers): Likewise. 13016 130172018-03-02 Jakub Jelinek <jakub@redhat.com> 13018 13019 * substring-locations.h (format_warning_va): Formatting fix for 13020 ATTRIBUTE_GCC_DIAG. 13021 (format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second 13022 argument. 13023 (format_warning_n_va, format_warning_at_substring_n): New prototypes. 13024 * substring-locations.c: Include intl.h. 13025 (format_warning_va): Turned into small wrapper around 13026 format_warning_n_va, renamed to ... 13027 (format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments, 13028 rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID, 13029 use ngettext. 13030 (format_warning_at_substring_n): New function. 13031 * gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma. 13032 (fmtwarn): Add ATTRIBUTE_GCC_DIAG. Turn into a copy of 13033 format_warning_at_substring with just a shorter name instead of 13034 const function pointer. 13035 (fmtwarn_n): New function. 13036 (maybe_warn, format_directive, parse_directive): Use fmtwarn_n where 13037 appropriate, get rid of all the fmtstr temporaries, move conditionals 13038 with G_() wrapped string literals directly into fmtwarn arguments, 13039 cast dir.len to (int), formatting fixes. 13040 130412018-03-02 Thomas Schwinge <thomas@codesourcery.com> 13042 13043 * doc/invoke.texi: Remove "Cilk Plus" references. 13044 130452018-03-02 Jakub Jelinek <jakub@redhat.com> 13046 Richard Biener <rguenther@suse.de> 13047 13048 PR ipa/84628 13049 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics 13050 for error or warning attributes if CALL_FROM_THUNK_P is set. 13051 Formatting fixes. 13052 130532018-03-02 Jakub Jelinek <jakub@redhat.com> 13054 13055 PR target/56540 13056 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine 13057 __SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY. 13058 13059 PR target/56540 13060 * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine 13061 __SIZEOF_{FPREG,FLOAT{80,128}}__ macros. 13062 13063 * predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED 13064 instead of -1U in last predictors element's probability member. 13065 130662018-03-02 Eric Botcazou <ebotcazou@adacore.com> 13067 13068 PR ipa/83983 13069 * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both 13070 arguments if they are comparable. 13071 130722018-03-02 Richard Sandiford <richard.sandiford@linaro.org> 13073 13074 PR tree-optimization/84634 13075 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace 13076 masks and masked_loop_p with a single loop_masks, making sure it's 13077 null for bb vectorization. 13078 130792018-03-02 Richard Sandiford <richard.sandiford@linaro.org> 13080 13081 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) 13082 (vect_analyze_data_ref_access): Use loop->safe_len rather than 13083 loop->force_vectorize to check whether there is no alias. 13084 130852018-03-02 Jakub Jelinek <jakub@redhat.com> 13086 13087 PR target/84614 13088 * rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New 13089 prototypes. 13090 * emit-rtl.c (next_real_insn, prev_real_insn): Fix up function 13091 comments. 13092 (next_real_nondebug_insn, prev_real_nondebug_insn): New functions. 13093 * cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn 13094 instead of a loop around prev_real_insn. 13095 * combine.c (move_deaths): Use prev_real_nondebug_insn instead of 13096 prev_real_insn. 13097 13098 PR inline-asm/84625 13099 * config/i386/i386.c (ix86_print_operand): Use conditional 13100 output_operand_lossage instead of gcc_assert if CONST_VECTOR is not 13101 zero vector. 13102 131032018-03-02 Richard Biener <rguenther@suse.de> 13104 13105 PR tree-optimization/84427 13106 * tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove. 13107 (bitmap_set_subtract_values): Rewrite to handle multiple 13108 exprs per value. 13109 (clean): Likewise. 13110 (prune_clobbered_mems): Likewise. 13111 (phi_translate): Take edge instead of pred/phiblock. 13112 (phi_translate_1): Likewise. 13113 (phi_translate_set): Likewise. Insert all translated 13114 exprs for a value into the set, keeping possibly multiple 13115 expressions per value. 13116 (compute_antic_aux): Adjust for phi_translate changes. 13117 When intersecting union the expressions and prune those 13118 not in the final value set, keeping possibly multiple 13119 expressions per value. Do not use value-insertion 13120 for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge 13121 all expressions. Add verification that the value-sets 13122 only shrink during iteration. 13123 (compute_partial_antic_aux): Adjust for the phi_translate changes. 13124 (do_pre_regular_insertion): Likewise. 13125 (do_pre_partial_partial_insertion): Likewise. 13126 131272018-03-02 Richard Biener <rguenther@suse.de> 13128 13129 PR target/82005 13130 * config/darwin.c (saved_debug_info_level): New static global. 13131 (darwin_asm_lto_start): Disable debug info generation for LTO out. 13132 (darwin_asm_lto_end): Restore debug info generation settings. 13133 131342018-03-01 Martin Liska <mliska@suse.cz> 13135 13136 PR sanitizer/82484 13137 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle 13138 volatile arguments. 13139 131402018-03-01 Richard Biener <rguenther@suse.de> 13141 13142 PR debug/84645 13143 * dwarf2out.c (gen_variable_die): Properly handle late VLA 13144 type annotation with LTO when debug was disabled at compile-time. 13145 131462018-03-01 Matthew Fortune <mfortune@gmail.com> 13147 13148 * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect 13149 XINT with INTVAL. 13150 (mips_final_postscan_insn): Likewise. 13151 131522018-03-01 Richard Sandiford <richard.sandiford@linaro.org> 13153 13154 PR rtl-optimization/84528 13155 * alias.c (init_alias_target): Add commentary. 13156 (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM 13157 a unique base value if the frame pointer is not eliminated 13158 to the stack pointer. 13159 131602018-03-01 Tom de Vries <tom@codesourcery.com> 13161 13162 PR rtl-optimization/83327 13163 * lra-int.h (hard_regs_spilled_into): Declare. 13164 * lra.c (hard_regs_spilled_into): Define. 13165 (init_reg_info): Init hard_regs_spilled_into. 13166 * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. 13167 * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) 13168 (process_bb_lives): Handle hard_regs_spilled_into. 13169 (lra_create_live_ranges_1): Before doing liveness propagation, clear 13170 regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. 13171 131722018-02-28 David Edelsohn <dje.gcc@gmail.com> 13173 13174 * config.gcc (powerpc-ibm-aix7.1.*): New stanza. 13175 (powerpc-ibm-aix[789]*): Default to AIX 7.2. 13176 * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA. 13177 * config/rs6000/aix72.h: New file. 13178 131792018-02-28 Jakub Jelinek <jakub@redhat.com> 13180 13181 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n 13182 instead of warning_at with conditional singular and plural messages 13183 where possible. 13184 13185 PR target/52991 13186 * stor-layout.c (update_alignment_for_field): For 13187 targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield 13188 && !DECL_PACKED (field), do the alignment update, just use 13189 only desired_align instead of MAX (type_align, desired_align) 13190 as the alignment. 13191 (place_field): Don't do known_align < desired_align handling 13192 early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field 13193 is non-NULL, instead do it after rli->prev_field handling and 13194 only if not within a bitfield word. For DECL_PACKED (field) 13195 use type_align of BITS_PER_UNIT. 13196 131972018-02-28 Eric Botcazou <ebotcazou@adacore.com> 13198 13199 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove 13200 superfluous parentheses and trailing spaces. 13201 132022018-02-28 Richard Biener <rguenther@suse.de> 13203 13204 PR tree-optimization/84584 13205 * graphite-scop-detection.c (scop_detection::add_scop): Discard 13206 SCoPs with fake exit edge. 13207 132082018-02-28 Martin Liska <mliska@suse.cz> 13209 13210 PR testsuite/84597 13211 * timevar.c (timer::print): Fix format to properly print 100% 13212 values. 13213 132142018-02-28 Richard Biener <rguenther@suse.de> 13215 13216 PR middle-end/84607 13217 * genmatch.c (capture_info::walk_match): Do not mark 13218 captured expressions without operands as expr_p given 13219 they act more like predicates and should be subject to 13220 "lost tail" side-effect preserving. 13221 132222018-02-28 Alexandre Oliva <aoliva@redhat.com> 13223 13224 PR rtl-optimization/81611 13225 * auto-inc-dec.c (attempt_change): Move dead note from 13226 mem_insn if it's the next use of regno 13227 (find_address): Take address use of reg holding 13228 non-incremented value. Add parm to limit search to the named 13229 reg only. 13230 (merge_in_block): Attempt to use a mem insn that is the next 13231 use of the original regno. 13232 132332018-02-27 Martin Sebor <msebor@redhat.com> 13234 13235 PR c++/83871 13236 * gcc/doc/invoke.texi (-Wmissing-attributes): New option. 13237 * gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE. 13238 132392018-02-27 Martin Sebor <msebor@redhat.com> 13240 13241 PR translation/84207 13242 * diagnostic-core.h (warning_n, error_n, inform_n): Change 13243 n argument to unsigned HOST_WIDE_INT. 13244 * diagnostic.c (warning_n, error_n, inform_n): Ditto. 13245 (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. 13246 * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. 13247 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. 13248 132492018-02-27 Richard Biener <rguenther@suse.de> 13250 13251 PR tree-optimization/84512 13252 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 13253 Do not use the estimate returned from record_stmt_cost for 13254 the scalar iteration cost but sum properly using add_stmt_cost. 13255 132562018-02-27 Richard Biener <rguenther@suse.de> 13257 13258 PR tree-optimization/84466 13259 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): 13260 Adjust last change to less strictly validate use operands. 13261 132622018-02-27 Martin Liska <mliska@suse.cz> 13263 13264 PR gcov-profile/84548 13265 * gcov.c (process_file): Allow partial overlap and consider it 13266 also as group functions. 13267 (output_lines): Properly calculate range of lines for a group. 13268 132692018-02-27 Martin Liska <mliska@suse.cz> 13270 13271 * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and 13272 'ggc' suffixes. Change first column width. 13273 (timer::print): Fix formatting of the column. 13274 132752018-02-27 Alexandre Oliva <aoliva@redhat.com> 13276 13277 * tree-ssa-live.c (remove_unused_scope_block_p): Do not 13278 preserve inline entry blocks for the sake of debug inline 13279 entry point markers alone. 13280 (remove_unused_locals): Suggest in comments a better place to 13281 force the preservation of inline entry blocks that are 13282 otherwise unused, but do not preserve them. 13283 132842018-02-26 H.J. Lu <hongjiu.lu@intel.com> 13285 13286 * config/i386/i386.c (ix86_output_indirect_jmp): Update comments. 13287 132882018-02-26 H.J. Lu <hongjiu.lu@intel.com> 13289 13290 PR target/84039 13291 * config/i386/constraints.md (Bs): Replace 13292 ix86_indirect_branch_register with 13293 TARGET_INDIRECT_BRANCH_REGISTER. 13294 (Bw): Likewise. 13295 * config/i386/i386.md (indirect_jump): Likewise. 13296 (tablejump): Likewise. 13297 (*sibcall_memory): Likewise. 13298 (*sibcall_value_memory): Likewise. 13299 Peepholes of indirect call and jump via memory: Likewise. 13300 (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER. 13301 (*sibcall_value_GOT_32): Likewise. 13302 * config/i386/predicates.md (indirect_branch_operand): Likewise. 13303 (GOT_memory_operand): Likewise. 13304 (call_insn_operand): Likewise. 13305 (sibcall_insn_operand): Likewise. 13306 (GOT32_symbol_operand): Likewise. 13307 * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New. 13308 133092018-02-26 Eric Botcazou <ebotcazou@adacore.com> 13310 13311 PR rtl-optimization/83496 13312 * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from 13313 booleans to RTXes. Call fix_reg_dead_note on every non-null element. 13314 (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a 13315 redundant insn, if any. 13316 (relax_delay_slots): Likewise. 13317 (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN. 13318 133192018-02-26 Richard Sandiford <richard.sandiford@linaro.org> 13320 13321 PR tree-optimization/83965 13322 * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume 13323 that grouped statements are part of a reduction chain. Return 13324 true if the statement is not marked as a reduction itself but 13325 is part of a group. 13326 (vect_recog_dot_prod_pattern): Don't check whether the statement 13327 is part of a group here. 13328 (vect_recog_sad_pattern): Likewise. 13329 (vect_recog_widen_sum_pattern): Likewise. 13330 133312018-02-26 Eric Botcazou <ebotcazou@adacore.com> 13332 13333 PR debug/84545 13334 * final.c (rest_of_clean_state): Also look for calls inside sequences. 13335 133362018-02-26 H.J. Lu <hongjiu.lu@intel.com> 13337 13338 PR target/84530 13339 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove 13340 the bool argument. 13341 (ix86_output_indirect_function_return): New prototype. 13342 (ix86_split_simple_return_pop_internal): Likewise. 13343 * config/i386/i386.c (indirect_return_via_cx): New. 13344 (indirect_return_via_cx_bnd): Likewise. 13345 (indirect_thunk_name): Handle return va CX_REG. 13346 (output_indirect_thunk_function): Create alias for 13347 __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd. 13348 (ix86_output_indirect_jmp): Remove the bool argument. 13349 (ix86_output_indirect_function_return): New function. 13350 (ix86_split_simple_return_pop_internal): Likewise. 13351 * config/i386/i386.md (*indirect_jump): Don't pass false 13352 to ix86_output_indirect_jmp. 13353 (*tablejump_1): Likewise. 13354 (simple_return_pop_internal): Change it to define_insn_and_split. 13355 Call ix86_split_simple_return_pop_internal to split it for 13356 -mfunction-return=. 13357 (simple_return_indirect_internal): Call 13358 ix86_output_indirect_function_return instead of 13359 ix86_output_indirect_jmp. 13360 133612018-02-26 Jakub Jelinek <jakub@redhat.com> 13362 13363 PR bootstrap/84405 13364 * vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use 13365 memset and value initialization afterwards. 13366 133672018-02-26 Christophe Lyon <christophe.lyon@linaro.org> 13368 13369 * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS. 13370 133712018-02-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 13372 13373 PR target/84521 13374 * common/config/aarch64/aarch64-common.c 13375 (aarch_option_optimization_table[]): Switch 13376 off fomit-frame-pointer 13377 133782018-02-26 Kito Cheng <kito.cheng@gmail.com> 13379 Chung-Ju Wu <jasonwucj@gmail.com> 13380 13381 * config/nds32/nds32-multiple.md (load_multiple): Disallow 13382 volatile memory. 13383 (store_multiple): Ditto. 13384 133852018-02-26 Kito Cheng <kito.cheng@gmail.com> 13386 13387 * config.gcc: Add --with-cpu support for nds32 target. 13388 * config/nds32/nds32-opts.h (nds32_cpu_type): New. 13389 * config/nds32/nds32.opt: Add -mcpu= option. 13390 133912018-02-25 Segher Boessenkool <segher@kernel.crashing.org> 13392 13393 * config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no, 13394 isel=yes): Warn for these deprecated options. 13395 133962018-02-23 David Edelsohn <dje.gcc@gmail.com> 13397 13398 * config/rs6000/aix71.h (TARGET_DEFAULT): Change to 13399 ISA_2_5_MASKS_EMBEDDED. 13400 134012018-02-23 Jakub Jelinek <jakub@redhat.com> 13402 13403 * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and 13404 p->max as pointers rather than using iterative_hash_expr. 13405 134062018-02-23 Carl Love <cel@us.ibm.com> 13407 13408 * config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 13409 macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to 13410 BU_P8V_OVERLOAD_2. 13411 * config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to 13412 P8V_BUILTIN_VEC_VSIGNED2. Change VSX_BUILTIN_VEC_VUNSIGNED2 to 13413 P8V_BUILTIN_VEC_VUNSIGNED2. 13414 134152018-02-22 Vladimir Makarov <vmakarov@redhat.com> 13416 13417 PR target/81572 13418 * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros. 13419 * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use 13420 LRA_UNKNOWN_ALT. 13421 * lra-constraints.c (curr_insn_transform): Set up 13422 LRA_NON_CLOBBERED_ALT for moves processed on the fast path. Use 13423 LRA_UNKNOWN_ALT. 13424 (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT. 13425 * lra-eliminations.c (spill_pseudos): Ditto. 13426 (process_insn_for_elimination): Ditto. 13427 * lra-lives.c (reg_early_clobber_p): Use the new macros. 13428 * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and 13429 LRA_NON_CLOBBERED_ALT. 13430 134312018-02-22 Martin Sebor <msebor@redhat.com> 13432 13433 PR tree-optimization/84480 13434 * gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings 13435 to maybe_diag_stxncpy_trunc. Call it. 13436 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings 13437 from gimple_fold_builtin_strcpy. Print inlining stack. 13438 (handle_builtin_stxncpy): Print inlining stack. 13439 * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare. 13440 134412018-02-22 H.J. Lu <hongjiu.lu@intel.com> 13442 13443 PR target/84176 13444 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an 13445 error when -mindirect-branch=thunk-extern, -fcf-protection=branch 13446 and -fcheck-pointer-bounds are used together. 13447 (indirect_thunk_prefix): New enum. 13448 (indirect_thunk_need_prefix): New function. 13449 (indirect_thunk_name): Replace need_bnd_p with need_prefix. Use 13450 "_nt" instead of "_bnd" for NOTRACK prefix. 13451 (output_indirect_thunk): Replace need_bnd_p with need_prefix. 13452 (output_indirect_thunk_function): Likewise. 13453 (): Likewise. 13454 (ix86_code_end): Update output_indirect_thunk_function calls. 13455 (ix86_output_indirect_branch_via_reg): Replace 13456 ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix. 13457 (ix86_output_indirect_branch_via_push): Likewise. 13458 (ix86_output_function_return): Likewise. 13459 * doc/invoke.texi: Document -mindirect-branch=thunk-extern is 13460 incompatible with -fcf-protection=branch and 13461 -fcheck-pointer-bounds. 13462 134632018-02-22 Steve Ellcey <sellcey@cavium.com> 13464 13465 PR target/83335 13466 * config/aarch64/aarch64.c (aarch64_print_address_internal): 13467 Change gcc_assert call to output_operand_lossage. 13468 134692018-02-22 Steve Ellcey <sellcey@cavium.com> 13470 13471 * doc/extend.texi (__builtin_extend_pointer): Document builtin. 13472 134732018-02-22 DJ Delorie <dj@redhat.com> 13474 Sebastian Perta <sebastian.perta@renesas.com> 13475 Oleg Endo <olegendo@gcc.gnu.org> 13476 13477 * config/rx/rx.c (rx_rtx_costs): New function. 13478 (TARGET_RTX_COSTS): Override to use rx_rtx_costs. 13479 134802018-02-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 13481 13482 * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs. 13483 134842018-02-22 Martin Liska <mliska@suse.cz> 13485 13486 PR driver/83193 13487 * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): 13488 Add "native" as a possible value. 13489 134902018-02-22 Martin Liska <mliska@suse.cz> 13491 13492 PR driver/83193 13493 * config/i386/i386.c (ix86_option_override_internal): 13494 Add "native" as a possible value for -march and -mtune. 13495 134962018-02-22 Jakub Jelinek <jakub@redhat.com> 13497 13498 PR target/84502 13499 * stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag 13500 to all type variants. 13501 13502 PR tree-optimization/84503 13503 * gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute 13504 width as info->bitpos + info->bitsize - start. 13505 (merged_store_group::merge_overlapping): Simplify width computation. 13506 (check_no_overlap): New function. 13507 (imm_store_chain_info::try_coalesce_bswap): Compute expected 13508 start + width and last_order of the group, fail if check_no_overlap 13509 fails. 13510 (imm_store_chain_info::coalesce_immediate_stores): Don't merge info 13511 to group if check_no_overlap fails. 13512 135132018-02-21 Segher Boessenkool <segher@kernel.crashing.org> 13514 13515 * config/rs6000/altivec.md: Delete contraint arguments to 13516 define_expand, define_split, and define_peephole2, and in 13517 define_insn_and_split if always unused. 13518 * config/rs6000/darwin.md: Ditto. 13519 * config/rs6000/dfp.md: Ditto. 13520 * config/rs6000/rs6000.md: Ditto. 13521 * config/rs6000/sync.md: Ditto. 13522 * config/rs6000/vector.md: Ditto. 13523 * config/rs6000/vsx.md: Ditto. 13524 135252018-02-21 Segher Boessenkool <segher@kernel.crashing.org> 13526 13527 * config/rs6000/altivec.md: Write output control strings as braced 13528 blocks instead of double-quoted strings. 13529 * config/rs6000/darwin.md: Ditto. 13530 * config/rs6000/rs6000.md: Ditto. 13531 * config/rs6000/vector.md: Ditto. 13532 * config/rs6000/vsx.md: Ditto. 13533 135342018-02-21 Jason Merrill <jason@redhat.com> 13535 13536 PR c++/84314 - ICE with templates and fastcall attribute. 13537 * attribs.c (build_type_attribute_qual_variant): Remove assert. 13538 135392018-02-21 Jan Hubicka <hubicka@ucw.cz> 13540 13541 * ipa-cp.c (determine_versionability): Fix comment typos. 13542 135432018-02-21 Jan Hubicka <hubicka@ucw.cz> 13544 13545 PR c/84229 13546 * ipa-cp.c (determine_versionability): Do not version functions caling 13547 va_arg_pack. 13548 135492018-02-21 Martin Liska <mliska@suse.cz> 13550 13551 PR driver/83193 13552 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): 13553 Add "native" as a possible value. 13554 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT): Define 13555 the macro when native cpu detection is available. 13556 135572018-02-21 Martin Liska <mliska@suse.cz> 13558 13559 PR driver/83193 13560 * common/config/arm/arm-common.c (arm_print_hint_for_arch_option): 13561 Add "native" as a possible value. 13562 * config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro 13563 when native cpu detection is available. 13564 135652018-02-21 Jakub Jelinek <jakub@redhat.com> 13566 Martin Sebor <msebor@redhat.com> 13567 13568 PR tree-optimization/84478 13569 * gimple-fold.h (get_range_strlen): Add a bool argument defaulted to 13570 false. 13571 * gimple-fold.c (get_range_strlen): Make minlen const and assume it 13572 can't be NULL. Change FUZZY from bool to int, for 1 add PHI/COND_EXPR 13573 support which is conservatively correct, for 2 only stay conservative 13574 for maxlen. Formatting and comment capitalization fixes. Add STRICT 13575 argument to the 2 argument get_range_strlen, adjust 6 arg 13576 get_range_strlen caller and clear minmaxlen[0] and [1] if it returned 13577 false. 13578 (get_maxval_strlen): Adjust 6 arg get_range_strlen caller. 13579 (gimple_fold_builtin_strlen): Pass true as last argument to 13580 get_range_strlen. 13581 135822018-02-20 Martin Sebor <msebor@redhat.com> 13583 13584 PR middle-end/84095 13585 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New. 13586 (builtin_memref::set_base_and_offset): Same. Handle inner references. 13587 (builtin_memref::builtin_memref): Factor out parts into 13588 set_base_and_offset and call it. 13589 135902018-02-20 Richard Sandiford <richard.sandiford@linaro.org> 13591 13592 PR middle-end/84406 13593 * optabs-query.c (find_widening_optab_handler_and_mode): If from_mode 13594 is a scalar_int_mode, assert that to_mode is a scalar_int_mode with 13595 greater precision. If to_mode is a MODE_PARTIAL_INT, stop the 13596 search at the associated MODE_INT. 13597 135982018-02-20 Jeff Law <law@redhat.com> 13599 13600 PR middle-end/82123 13601 PR tree-optimization/81592 13602 PR middle-end/79257 13603 * gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer 13604 for range data rather than using global data. 13605 * gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for 13606 range data rather than using global data. 13607 * gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter 13608 pass it to children as needed. 13609 (struct directive::fmtresult): Similarly. 13610 (struct directive::set_width): Similarly. 13611 (struct directive::set_precision): Similarly. 13612 (format_integer, format_directive, parse_directive): Similarly. 13613 (format_none): Accept unnamed vr_values parameter. 13614 (format_percent, format_floating, format_character): Similarly. 13615 (format_string, format_plain): Similarly. 13616 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query 13617 the EVRP range analyzer for range data rather than using global data. 13618 * gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and 13619 gimple-ssa-evrp-analyze.h 13620 (class sprintf_dom_walker): Add after_dom_children member function. 13621 Add evrp_range_analyzer member. 13622 (sprintf_dom_walker::before_dom_children): Call into the EVRP 13623 range analyzer as needed. 13624 (sprintf_dom_walker::after_dom_children): New member function. 13625 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing 13626 if not optimizing. 13627 (evrp_range_analyzer::record_ranges_from_stmt): Likewise. 13628 (evrp_range_analyzer::pop_to_marker): Likewise. 13629 136302018-02-20 Richard Sandiford <richard.sandiford@linaro.org> 13631 13632 PR tree-optimization/84419 13633 * internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF 13634 with the required type if its current type is compatible but 13635 different. 13636 136372018-02-20 Jakub Jelinek <jakub@redhat.com> 13638 13639 PR middle-end/82004 13640 * match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until 13641 after vectorization. 13642 136432018-02-20 Martin Liska <mliska@suse.cz> 13644 13645 PR driver/83193 13646 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print 13647 possible values if we don't have a hint. 13648 136492018-02-20 Martin Liska <mliska@suse.cz> 13650 13651 PR c/84310 13652 PR target/79747 13653 * final.c (shorten_branches): Build align_tab array with one 13654 more element. 13655 * opts.c (finish_options): Add alignment option limit check. 13656 (MAX_CODE_ALIGN): Likewise. 13657 (MAX_CODE_ALIGN_VALUE): Likewise. 13658 * doc/invoke.texi: Document maximum allowed option value for 13659 all -falign-* options. 13660 136612018-02-19 Jakub Jelinek <jakub@redhat.com> 13662 13663 PR target/84146 13664 * reg-notes.def (REG_CALL_ARG_LOCATION): New reg note. 13665 * insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove. 13666 * var-tracking.c (emit_note_insn_var_location): Remove all references 13667 to NOTE_INSN_CALL_ARG_LOCATION. 13668 (emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on 13669 the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note. 13670 Use copy_rtx_if_shared. 13671 * dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of 13672 NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note. 13673 (dwarf2out_var_location): Remove handling of 13674 NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note 13675 on call_insn. 13676 * final.c (final_scan_insn): Remove all references to 13677 NOTE_INSN_CALL_ARG_LOCATION. 13678 (rest_of_clean_state): Likewise. Remove REG_CALL_ARG_LOCATION notes 13679 before dumping final insns. 13680 * except.c (emit_note_eh_region_end): Remove all references to 13681 NOTE_INSN_CALL_ARG_LOCATION. 13682 * config/alpha/alpha.c (alpha_pad_function_end): Likewise. 13683 * config/c6x/c6x.c (c6x_gen_bundles): Likewise. 13684 * config/arc/arc.c (hwloop_optimize): Likewise. 13685 * config/arm/arm.c (create_fix_barrier): Likewise. 13686 * config/s390/s390.c (s390_chunkify_start): Likewise. 13687 * config/sh/sh.c (find_barrier): Likewise. 13688 * config/i386/i386.c (rest_of_insert_endbranch, 13689 ix86_seh_fixup_eh_fallthru): Likewise. 13690 * config/xtensa/xtensa.c (hwloop_optimize): Likewise. 13691 * config/iq2000/iq2000.c (final_prescan_insn): Likewise. 13692 * config/frv/frv.c (frv_function_prologue): Likewise. 13693 * emit-rtl.c (try_split): Likewise. Copy over REG_CALL_ARG_LOCATION 13694 reg note. 13695 (note_outside_basic_block_p): Remove all references to 13696 NOTE_INSN_CALL_ARG_LOCATION. 13697 * gengtype.c (adjust_field_rtx_def): Likewise. 13698 * print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn): 13699 Likewise. 13700 * jump.c (cleanup_barriers, delete_related_insns): Likewise. 13701 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 13702 13703 PR c++/84444 13704 * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t) 13705 is ADDR_EXPR. 13706 13707 PR tree-optimization/84452 13708 * tree-vect-patterns.c (vect_recog_pow_pattern): Don't call 13709 expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen 13710 is NULL. 13711 137122018-02-19 Martin Liska <mliska@suse.cz> 13713 13714 PR sanitizer/82183 13715 * passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0. 13716 137172018-02-19 Martin Liska <mliska@suse.cz> 13718 Richard Sandiford <richard.sandiford@linaro.org> 13719 13720 PR tree-optimization/82491 13721 * gimple-fold.c (get_base_constructor): Make earlier bail out 13722 to prevent ubsan. 13723 137242018-02-19 Carl Love <cel@us.ibm.com> 13725 13726 * config/rs6000/rs6000-builtin.def: Change NEG macro expansions from 13727 BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to 13728 BU_P8V_OVERLOAD_1. 13729 * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to 13730 P8V_BUILTIN_VEC_NEG. 13731 137322018-02-19 Sebastian Perta <sebastian.perta@renesas.com> 13733 13734 * config/rl78/rl78.md (movdf): New define expand. 13735 137362018-02-19 Martin Liska <mliska@suse.cz> 13737 13738 PR other/80589 13739 * doc/invoke.texi: Fix typo. 13740 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise. 13741 137422018-02-18 Segher Boessenkool <segher@kernel.crashing.org> 13743 13744 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't 13745 handle rs6000_single_float and rs6000_double_float specially for 13746 e500 family CPUs. 13747 137482018-02-16 Jeff Law <law@redhat.com> 13749 13750 * config/rx/rx.c (add_pop_cfi_notes): New function.; 13751 (pop_regs): Use it. 13752 137532018-02-16 Jakub Jelinek <jakub@redhat.com> 13754 13755 PR ipa/84425 13756 * ipa-inline.c (inline_small_functions): Fix a typo. 13757 137582018-02-16 Nathan Sidwell <nathan@acm.org> 13759 13760 * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'. 13761 137622018-02-16 Carl Love <cel@us.ibm.com> 13763 13764 * config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition. 13765 Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and 13766 from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2. 13767 * config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2 13768 expansion to P8V_BUILTIN_VEC_FLOAT2. 13769 137702018-02-16 Vladimir Makarov <vmakarov@redhat.com> 13771 13772 PR rtl-optimization/70023 13773 * lra-constraints.c (inherit_in_ebb): Take hard reg mode of 13774 src_regno into account. 13775 137762018-02-16 Carl Love <cel@us.ibm.com> 13777 13778 * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b. 13779 * config/rs6000/rs6000-builtin.def: Remove macro expansion for 13780 VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B. 13781 * config/rs6000/rs6000.c: Remove case statements for 13782 P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B, 13783 P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI, 13784 and P9V_BUILTIN_VEC_VINSERT4B. 13785 * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for 13786 P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B. 13787 * config/rs6000/vsx.md: 13788 * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for 13789 vec_insert4b. 13790 137912018-02-16 Carl Love <cel@us.ibm.com> 13792 13793 * config/rs6000/altivec.h: Add builtin names vec_extract4b 13794 vec_insert4b. 13795 * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B 13796 definitions. 13797 * config/rs6000/rs6000-c.c: Add the definitions for 13798 P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B. 13799 * config/rs6000/rs6000.c (altivec_expand_builtin): Add 13800 P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements. 13801 * config/rs6000/vsx.md: Add define_insn extract4b. Add define_expand 13802 definition for insert4b and define insn *insert3b_internal. 13803 * doc/extend.texi: Add documentation for vec_extract4b. 13804 138052018-02-16 Nathan Sidwell <nathan@acm.org> 13806 13807 * doc/extend.texi (Backwards Compatibility): Mention friend 13808 injection. Note for-scope is deprecated. 13809 * doc/invoke.texi (-ffriend-injection): Deprecate. 13810 138112018-02-16 Segher Boessenkool <segher@kernel.crashing.org> 13812 13813 * combine.c (try_combine): When adjusting LOG_LINKS for the destination 13814 that moved to I2, also allow destinations that are a paradoxical 13815 subreg (instead of a normal reg). 13816 138172018-02-16 Oleg Endo <olegendo@gcc.gnu.org> 13818 13819 PR target/83831 13820 * config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand 13821 to QImode. 13822 138232018-02-16 Richard Biener <rguenther@suse.de> 13824 13825 PR tree-optimization/84037 13826 PR tree-optimization/84016 13827 PR target/82862 13828 * config/i386/i386.c (ix86_builtin_vectorization_cost): 13829 Adjust vec_construct for the fact we need additional higher latency 13830 128bit inserts for AVX256 and AVX512 vector builds. 13831 (ix86_add_stmt_cost): Scale vector construction cost for 13832 elementwise loads. 13833 138342018-02-16 Richard Biener <rguenther@suse.de> 13835 13836 PR tree-optimization/84417 13837 * tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain 13838 the MEM_REF offset when conversion to BIT_FIELD_REF is desired. 13839 (non_rewritable_lvalue_p): Likewise, use poly-ints. 13840 138412018-02-16 Martin Liska <mliska@suse.cz> 13842 13843 PR sanitizer/84307 13844 * internal-fn.def (ASAN_CHECK): Set proper flags. 13845 (ASAN_MARK): Likewise. 13846 138472018-02-16 Julia Koval <julia.koval@intel.com> 13848 13849 * config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB 13850 from PTA_CANNONLAKE. 13851 138522018-02-16 Jakub Jelinek <jakub@redhat.com> 13853 13854 PR target/84272 13855 * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest): 13856 Use ++iter rather than iter++ for std::list iterators. 13857 (func_fma_steering::dfs): Likewise. Don't delete nodes right away, 13858 defer deleting them until all nodes in the forest are processed. Do 13859 free even leaf nodes. Change to_process into auto_vec. 13860 13861 PR bootstrap/84405 13862 * system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3. 13863 * vec.h (vec_default_construct): Use memset instead of placement new 13864 if BROKEN_VALUE_INITIALIZATION is defined. 13865 * hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use 13866 memset instead of value initialization if BROKEN_VALUE_INITIALIZATION 13867 is defined. 13868 13869 PR rtl-optimization/83723 13870 * lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument. 13871 * lra.c (lra_substitute_pseudo): Likewise. If true, use 13872 gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG. Pass DEBUG_P to 13873 recursive calls. 13874 (lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo 13875 callers. 13876 * lra-constraints.c (inherit_reload_reg, split_reg): Likewise. 13877 138782018-02-16 Eric Botcazou <ebotcazou@adacore.com> 13879 13880 PR rtl-optimization/81443 13881 * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results 13882 from inner REGs to paradoxical SUBREGs. 13883 138842018-02-16 Richard Biener <rguenther@suse.de> 13885 13886 PR tree-optimization/84399 13887 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): 13888 For operands we can analyze at their definition make sure we can 13889 analyze them at each use as well. 13890 138912018-02-16 Richard Biener <rguenther@suse.de> 13892 13893 PR tree-optimization/84190 13894 * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch 13895 volatile accesses if the decl isn't volatile. 13896 138972018-02-15 Jason Merrill <jason@redhat.com> 13898 13899 PR c++/84314 - ICE with templates and fastcall attribute. 13900 * attribs.c (build_type_attribute_qual_variant): Don't clobber 13901 TYPE_CANONICAL on an existing type. 13902 139032018-02-15 Jakub Jelinek <jakub@redhat.com> 13904 13905 PR tree-optimization/84383 13906 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at 13907 dstoff nor call operand_equal_p if dstbase is NULL. 13908 13909 PR tree-optimization/84334 13910 * match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is 13911 also a CONSTANT_CLASS_P, punt. 13912 139132018-02-14 Jim Wilson <jimw@sifive.com> 13914 13915 * config/riscv/riscv.c (riscv_first_stack_step): Move locals after 13916 first SMALL_OPERAND check. New local min_second_step. Move assert 13917 to where locals are set. Add TARGET_RVC support. 13918 * config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New. 13919 139202018-02-14 Indu Bhagat <indu.bhagat@oracle.com> 13921 13922 * doc/invoke.texi: Correct -Wformat-overflow code sample. 13923 139242018-02-14 Martin Sebor <msebor@redhat.com> 13925 13926 PR tree-optimization/83698 13927 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For 13928 arrays constrain the offset range to their bounds. 13929 (builtin_access::strcat_overlap): Adjust the bounds of overlap offset. 13930 (builtin_access::overlap): Avoid setting the size of overlap if it's 13931 already been set. 13932 (maybe_diag_overlap): Also consider arrays when deciding what values 13933 of offsets to include in diagnostics. 13934 139352018-02-14 Martin Sebor <msebor@redhat.com> 13936 13937 PR c/84108 13938 * attribs.c (diag_attr_exclusions): Consider the exclusion(s) 13939 that correspond to the kind of a declaration. 13940 139412018-02-14 John David Anglin <danglin@gcc.gnu.org> 13942 13943 PR target/83984 13944 * config/pa/pa.md: Load address of PIC label using the linkage table 13945 if the label is nonlocal. 13946 139472018-02-14 Kelvin Nilsen <kelvin@gcc.gnu.org> 13948 13949 * config/rs6000/rs6000.c (rs6000_option_override_internal): Issue 13950 warning message if user requests -maltivec=be. 13951 * doc/invoke.texi: Document deprecation of -maltivec=be. 13952 139532018-02-14 Will Schmidt <will_schmidt@vnet.ibm.com> 13954 13955 PR target/84220 13956 * config/rs6000/rs6000-c.c: Update definitions for 13957 ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW, 13958 VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins. 13959 139602018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 13961 13962 PR target/84239 13963 * config/i386/cetintrin.h: Remove _rdssp[d|q] and 13964 add _get_ssp intrinsics. Remove argument from 13965 __builtin_ia32_rdssp[d|q]. 13966 * config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID. 13967 * config/i386/i386-builtin.def: Remove argument from 13968 __builtin_ia32_rdssp[d|q]. 13969 * config/i386/i386.c: Use UINT_FTYPE_VOID. Use 13970 ix86_expand_special_args_builtin for _rdssp[d|q]. 13971 * config/i386/i386.md: Remove argument from rdssp[si|di] insn. 13972 Clear register before usage. 13973 * doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q]. 13974 Add documentation for new _get_ssp and _inc_ssp intrinsics. 13975 139762018-02-14 Richard Sandiford <richard.sandiford@linaro.org> 13977 13978 PR tree-optimization/84357 13979 * tree-data-ref.c (object_address_invariant_in_loop_p): Check 13980 operand 1 of an ARRAY_REF too. 13981 139822018-02-14 Oleg Endo <olegendo@gcc.gnu.org> 13983 13984 PR target/83831 13985 * config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn, 13986 rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New 13987 declarations. 13988 (set_of_reg): New struct. 13989 (rx_find_set_of_reg, rx_find_use_of_reg): New functions. 13990 * config/rx/rx.c (rx_reg_dead_or_unused_after_insn, 13991 rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New 13992 functions. 13993 * config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split. 13994 Split into bitclr, bitset, bitinvert patterns if appropriate. 13995 (*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and 13996 use rx_fuse_in_memory_bitop. 13997 (*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert 13998 to named insn, correct maximum insn length. 13999 140002018-02-14 Jozef Lawrynowicz <jozefl.gcc@gmail.com> 14001 14002 PR target/79242 14003 * machmode.def: Define a complex mode for PARTIAL_INT. 14004 * genmodes.c (complex_class): Return MODE_COMPLEX_INT for 14005 MODE_PARTIAL_INT. 14006 * doc/rtl.texi: Document CSPImode. 14007 * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode 14008 handling. 14009 (msp430_hard_regno_nregs_with_padding): Likewise. 14010 140112018-02-13 Peter Bergner <bergner@vnet.ibm.com> 14012 14013 PR target/84279 14014 * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses. 14015 140162018-02-13 Segher Boessenkool <segher@kernel.crashing.org> 14017 14018 PR rtl-optimization/84169 14019 * combine.c (try_combine): New variable split_i2i3. Set it to true if 14020 we generated a parallel as new i3 and we split that to new i2 and i3 14021 instructions. Handle split_i2i3 similar to swap_i2i3: scan the 14022 LOG_LINKs of i3 to see which of those need to link to i2 now. Link 14023 those to i2, not i1. Partially rewrite this scan code. 14024 140252018-02-13 Jakub Jelinek <jakub@redhat.com> 14026 14027 PR c/82210 14028 * stor-layout.c (place_field): For variable length fields, adjust 14029 offset_align afterwards not just based on the field's alignment, 14030 but also on the size. 14031 14032 PR middle-end/84309 14033 * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead 14034 of exps and logs in the use_exp2 case. 14035 140362018-02-13 Jeff Law <law@redhat.com> 14037 14038 * config/rl/rl78.c (rl78_attribute_table): Fix terminator and 14039 entry for "vector". 14040 14041 * config/rl78/rl78.c (rl78_handle_func_attribute): Mark 14042 ARGS as unused. 14043 140442018-02-13 Alexandre Oliva <aoliva@redhat.com> 14045 14046 PR debug/84342 14047 PR debug/84319 14048 * common.opt (gas-loc-support, gas-locview-support): New. 14049 (ginline-points, ginternal-reset-location-views): New. 14050 * doc/invoke.texi: Document them. Use @itemx where intended. 14051 (gvariable-location-views): Adjust. 14052 * target.def (reset_location_view): New. 14053 * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. 14054 (TARGET_RESET_LOCATION_VIEW): New. 14055 * doc/tm.texi: Rebuilt. 14056 * dwarf2out.c (dwarf2out_default_as_loc_support): New. 14057 (dwarf2out_default_as_locview_support): New. 14058 (output_asm_line_debug_info): Use option variables. 14059 (dwarf2out_maybe_output_loclist_view_pair): Likewise. 14060 (output_loc_list): Likewise. 14061 (add_high_low_attributes): Check option variables. 14062 Don't output entry view attribute in strict mode. 14063 (gen_inlined_subroutine_die): Check option variables. 14064 (dwarf2out_inline_entry): Likewise. 14065 (init_sections_and_labels): Likewise. 14066 (dwarf2out_early_finish): Likewise. 14067 (maybe_reset_location_view): New, from... 14068 (dwarf2out_var_location): ... here. Call it. 14069 * debug.h (dwarf2out_default_as_loc_support): Declare. 14070 (dwarf2out_default_as_locview_support): Declare. 14071 * hooks.c (hook_int_rtx_insn_0): New. 14072 * hooks.h (hook_int_rtx_insn_0): Declare. 14073 * toplev.c (process_options): Take -gas-loc-support and 14074 -gas-locview-support from dwarf2out. Enable 14075 -gvariable-location-views by default only with locview 14076 assembler support. Enable -ginternal-reset-location-views by 14077 default only if the target defines the corresponding hook. 14078 Enable -ginline-points by default if location views are 14079 enabled; force it disabled if statement frontiers are 14080 disabled. 14081 * tree-inline.c (expand_call_inline): Check option variables. 14082 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. 14083 140842018-02-13 Richard Sandiford <richard.sandiford@linaro.org> 14085 14086 PR tree-optimization/84321 14087 * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE 14088 handling. Also check whether the anti-range contains any values 14089 that satisfy the mask; switch to a VR_RANGE if not. 14090 140912018-02-13 Paolo Bonzini <bonzini@gnu.org> 14092 14093 PR sanitizer/84340 14094 * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec. 14095 140962018-02-13 Martin Jambor <mjambor@suse.cz> 14097 14098 PR c++/83990 14099 * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location 14100 of call statements, also set location of a load to a temporary. 14101 141022018-02-13 Sebastian Perta <sebastian.perta@renesas.com> 14103 14104 * config/rl78/rl78.c (add_vector_labels): New function. 14105 * config/rl78/rl78.c (rl78_handle_vector_attribute): New function. 14106 * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels. 14107 * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert 14108 which checks that no arguments are passed. 14109 * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute. 14110 * doc/extend.texi: Documentation for the new attribute. 14111 141122018-02-13 Andreas Schwab <schwab@suse.de> 14113 14114 * config/riscv/linux.h (CPP_SPEC): Define. 14115 141162018-02-13 Jakub Jelinek <jakub@redhat.com> 14117 14118 PR target/84335 14119 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass 14120 OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of 14121 OPTION_MASK_ISA_AES as first argument to def_builtin_const 14122 for AES builtins. Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2 14123 instead of OPTION_MASK_ISA_PCLMUL as first argument to 14124 def_builtin_const for __builtin_ia32_pclmulqdq128 builtin. 14125 * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it 14126 temporarily for AES and PCLMUL builtins. 14127 14128 PR tree-optimization/84339 14129 * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling 14130 ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF. 14131 Formatting fixes. 14132 14133 PR middle-end/84309 14134 * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into 14135 exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available. 14136 * generic-match-head.c (canonicalize_math_after_vectorization_p): New 14137 inline function. 14138 * gimple-match-head.c (canonicalize_math_after_vectorization_p): New 14139 inline function. 14140 * omp-simd-clone.h: New file. 14141 * omp-simd-clone.c: Include omp-simd-clone.h. 14142 (expand_simd_clones): No longer static. 14143 * tree-vect-patterns.c: Include fold-const-call.h, attribs.h, 14144 cgraph.h and omp-simd-clone.h. 14145 (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x). 14146 (vect_recog_widen_shift_pattern): Formatting fix. 14147 (vect_pattern_recog_1): Don't check optab for calls. 14148 14149 PR target/84336 14150 * config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force 14151 operands[2] into a REG before using gen_lowpart on it. 14152 141532018-02-12 Jeff Law <law@redhat.com> 14154 14155 PR target/83760 14156 * config/sh/sh.c (find_barrier): Consider a sibling call 14157 a barrier as well. 14158 14159 * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when 14160 successfully back substituting a reg. 14161 141622018-02-12 Richard Biener <rguenther@suse.de> 14163 14164 PR tree-optimization/84037 14165 * tree-vect-slp.c (vect_analyze_slp_cost): Add visited 14166 parameter, move visited init to caller. 14167 (vect_slp_analyze_operations): Separate cost from validity 14168 check, initialize visited once for all instances. 14169 (vect_schedule_slp): Analyze map to CSE vectorized nodes once 14170 for all instances. 14171 * tree-vect-stmts.c (vect_model_simple_cost): Make early 14172 out an assert. 14173 (vect_model_promotion_demotion_cost): Likewise. 14174 (vectorizable_bswap): Guard cost modeling with !slp_node 14175 instead of !PURE_SLP_STMT to avoid double-counting on hybrid 14176 SLP stmts. 14177 (vectorizable_call): Likewise. 14178 (vectorizable_conversion): Likewise. 14179 (vectorizable_assignment): Likewise. 14180 (vectorizable_shift): Likewise. 14181 (vectorizable_operation): Likewise. 14182 (vectorizable_store): Likewise. 14183 (vectorizable_load): Likewise. 14184 (vectorizable_condition): Likewise. 14185 (vectorizable_comparison): Likewise. 14186 141872018-02-12 Paolo Bonzini <bonzini@gnu.org> 14188 14189 PR sanitizer/84307 14190 * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value. 14191 (ASAN_MARK): Fix fnspec to account for return value, change pointer 14192 argument from 'R' to 'W' so that the pointed-to datum is clobbered. 14193 141942018-02-08 Jan Hubicka <hubicka@ucw.cz> 14195 14196 PR middle-end/83665 14197 * params.def (inline-min-speedup): Increase from 8 to 15. 14198 (max-inline-insns-auto): Decrease from 40 to 30. 14199 * ipa-split.c (consider_split): Add some buffer for function to 14200 be considered inlining candidate. 14201 * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate 14202 default values. 14203 142042018-02-12 Richard Biener <rguenther@suse.de> 14205 14206 PR tree-optimization/84037 14207 * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the 14208 matched stmts if we cannot swap the non-matched ones. 14209 142102018-02-12 Olga Makhotina <olga.makhotina@intel.com> 14211 14212 * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd, 14213 _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, 14214 _mm_maskz_scalef_round_ss): New intrinsics. 14215 (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix. 14216 * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round, 14217 __builtin_ia32_scalefss_round): Remove. 14218 (__builtin_ia32_scalefsd_mask_round, 14219 __builtin_ia32_scalefss_mask_round): New intrinsics. 14220 * config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ... 14221 (vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this. 14222 ((match_operand:VF_128 2 "<round_nimm_predicate>" 14223 "<round_constraint>")): Changed to ... 14224 ((match_operand:VF_128 2 "<round_scalar_nimm_predicate>" 14225 "<round_scalar_constraint>")): ... this. 14226 ("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0| 14227 %0, %1, %2<round_op3>}"): Changed to ... 14228 ("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1, 14229 %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, 14230 %2<round_scalar_mask_op3>}"): ... this. 14231 * config/i386/subst.md (round_scalar_nimm_predicate): New. 14232 142332018-02-12 Olga Makhotina <olga.makhotina@intel.com> 14234 14235 * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd) 14236 (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss) 14237 (_mm_maskz_sqrt_round_ss): New intrinsics. 14238 (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove. 14239 (__builtin_ia32_sqrtsd_mask_round) 14240 (__builtin_ia32_sqrtss_mask_round): New builtins. 14241 * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round) 14242 (__builtin_ia32_sqrtss_round): Remove. 14243 (__builtin_ia32_sqrtsd_mask_round) 14244 (__builtin_ia32_sqrtss_mask_round): New builtins. 14245 * config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ... 14246 (vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this. 14247 ((match_operand:VF_128 1 "vector_operand" 14248 "xBm,<round_constraint>")): Changed to ... 14249 ((match_operand:VF_128 1 "vector_operand" 14250 "xBm,<round_scalar_constraint>")): ... this. 14251 (vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0| 14252 %0, %2, %<iptr>1<round_op3>}): Changed to ... 14253 (vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2, 14254 %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2, 14255 %<iptr>1<round_scalar_mask_op3>}): ... this. 14256 ((set_attr "prefix" "<round_prefix>")): Changed to ... 14257 ((set_attr "prefix" "<round_scalar_prefix>")): ... this. 14258 142592018-02-11 Steven Munroe <munroesj@gcc.gnu.org> 14260 14261 PR target/84266 14262 * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]): 14263 Cast vec_cmpeq result to correct type. 14264 * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]): 14265 Cast vec_cmpgt result to correct type. 14266 142672018-02-11 Alexandre Oliva <aoliva@redhat.com> 14268 14269 * final.c (final_scan_insn_1): Renamed from... 14270 (final_scan_insn): ... this. New wrapper, to recover 14271 seen from the outermost call in recursive ones. 14272 * config/sparc/sparc.c (output_return): Drop seen from call. 14273 (output_sibcall): Likewise. 14274 * config/visium/visium.c (output_branch): Likewise. 14275 142762018-02-10 John David Anglin <danglin@gcc.gnu.org> 14277 14278 * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as 14279 function label. 14280 142812018-02-10 Alan Modra <amodra@gmail.com> 14282 14283 PR target/84300 14284 * config/rs6000/rs6000.md (split_stack_return): Remove (use ..). 14285 Specify LR as an input. 14286 142872018-02-10 Jakub Jelinek <jakub@redhat.com> 14288 14289 PR sanitizer/83987 14290 * omp-low.c (maybe_remove_omp_member_access_dummy_vars, 14291 remove_member_access_dummy_vars): New functions. 14292 (lower_omp_for, lower_omp_taskreg, lower_omp_target, 14293 lower_omp_1, execute_lower_omp): Use them. 14294 14295 PR rtl-optimization/84308 14296 * shrink-wrap.c (spread_components): Release todo vector. 14297 142982018-02-09 Vladimir Makarov <vmakarov@redhat.com> 14299 14300 PR rtl-optimization/57193 14301 * ira-color.c (struct allocno_color_data): Add member 14302 conflict_allocno_hard_prefs. 14303 (update_conflict_allocno_hard_prefs): New. 14304 (bucket_allocno_compare_func): Add a preference based on 14305 conflict_allocno_hard_prefs. 14306 (push_allocno_to_stack): Update conflict_allocno_hard_prefs. 14307 (color_allocnos): Remove a dead code. Initiate 14308 conflict_allocno_hard_prefs. Call update_costs_from_prefs. 14309 143102018-02-09 Jakub Jelinek <jakub@redhat.com> 14311 14312 PR target/84226 14313 * config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand 14314 constraint from =wa to wa. Avoid a subreg on the output operand, 14315 instead use a pseudo and subreg it in a move. 14316 (p9_xxbrd_<mode>): Changed to ... 14317 (p9_xxbrd_v2di): ... this insn, without VSX_D iterator. 14318 (p9_xxbrd_v2df): New expander. 14319 (p9_xxbrw_<mode>): Changed to ... 14320 (p9_xxbrw_v4si): ... this insn, without VSX_W iterator. 14321 (p9_xxbrw_v4sf): New expander. 14322 143232018-02-09 Sebastian Perta <sebastian.perta@renesas.com> 14324 14325 * config/rx/rx.md (movsicc): Update expander to be matched by GCC. 14326 143272018-02-09 Peter Bergner <bergner@vnet.ibm.com> 14328 14329 PR target/83926 14330 * config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit 14331 multiply in 32-bit mode. 14332 (vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode. 14333 (vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit 14334 mode. 14335 143362018-02-09 Sebastian Perta <sebastian.perta@renesas.com> 14337 14338 * config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint 14339 to allow or block "symbol_ref" depending on the value of TARGET_JSR. 14340 * config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF. 14341 * config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF. 14342 143432018-02-09 Pierre-Marie de Rodat <derodat@adacore.com> 14344 14345 PR lto/84213 14346 * dwarf2out.c (is_trivial_indirect_ref): New function. 14347 (dwarf2out_late_global_decl): Do not generate a location 14348 attribute for variables that have a non-trivial DECL_VALUE_EXPR 14349 and that are not defined in the current unit. 14350 143512018-02-09 Eric Botcazou <ebotcazou@adacore.com> 14352 14353 * optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison 14354 instead of a libcall for UNORDERED. 14355 143562018-02-09 Tamar Christina <tamar.christina@arm.com> 14357 14358 PR target/82641 14359 * config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX, 14360 __ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP. 14361 143622018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 14363 14364 PR target/PR84295 14365 * config/s390/s390.c (s390_set_current_function): Invoke 14366 s390_indirect_branch_settings also if fndecl didn't change. 14367 143682018-02-09 Alexandre Oliva <aoliva@redhat.com> 14369 14370 * config/rs6000/rs6000.md (blockage): Set length to zero. 14371 143722018-02-09 Eric Botcazou <ebotcazou@adacore.com> 14373 14374 * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion. 14375 143762018-02-09 Jakub Jelinek <jakub@redhat.com> 14377 14378 PR sanitizer/84285 14379 * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS, 14380 STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like 14381 -static-lib*san. 14382 14383 PR debug/84252 14384 * var-tracking.c (vt_add_function_parameter): Punt for non-onepart 14385 PARALLEL incoming that failed vt_get_decl_and_offset check. 14386 14387 PR middle-end/84237 14388 * output.h (bss_initializer_p): Add NAMED argument, defaulted to false. 14389 * varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore 14390 TREE_READONLY bit. 14391 (get_variable_section): For decls in named .bss* sections pass true as 14392 second argument to bss_initializer_p. 14393 143942018-02-09 Marek Polacek <polacek@redhat.com> 14395 Jakub Jelinek <jakub@redhat.com> 14396 14397 PR c++/83659 14398 * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro. 14399 Formatting fixes. Verify first that tree_fits_poly_int64_p (op01). 14400 Sync some changes from cxx_fold_indirect_ref. 14401 144022018-02-09 Alexandre Oliva <aoliva@redhat.com> 14403 14404 * cfgexpand.c (expand_gimple_basic_block): Handle inline entry 14405 markers. 14406 * dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook. 14407 (BLOCK_INLINE_ENTRY_LABEL): New. 14408 (dwarf2out_var_location): Disregard inline entry markers. 14409 (inline_entry_data): New struct. 14410 (inline_entry_data_hasher): New hashtable type. 14411 (inline_entry_data_hasher::hash): New. 14412 (inline_entry_data_hasher::equal): New. 14413 (inline_entry_data_table): New variable. 14414 (add_high_low_attributes): Add DW_AT_entry_pc and 14415 DW_AT_GNU_entry_view attributes if a pending entry is found 14416 in inline_entry_data_table. Add old entry_pc attribute only 14417 if debug nonbinding markers are disabled. 14418 (gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding 14419 markers are enabled. 14420 (block_within_block_p, dwarf2out_inline_entry): New. 14421 (dwarf2out_finish): Check that no entries remained in 14422 inline_entry_data_table. 14423 * final.c (reemit_insn_block_notes): Handle inline entry notes. 14424 (final_scan_insn, notice_source_line): Likewise. 14425 (rest_of_clean_state): Skip inline entry markers. 14426 * gimple-pretty-print.c (dump_gimple_debug): Handle inline entry 14427 markers. 14428 * gimple.c (gimple_build_debug_inline_entry): New. 14429 * gimple.h (enum gimple_debug_subcode): Add 14430 GIMPLE_DEBUG_INLINE_ENTRY. 14431 (gimple_build_debug_inline_entry): Declare. 14432 (gimple_debug_inline_entry_p): New. 14433 (gimple_debug_nonbind_marker_p): Adjust. 14434 * insn-notes.def (INLINE_ENTRY): New. 14435 * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle 14436 inline entry marker notes. 14437 (print_insn): Likewise. 14438 * rtl.h (NOTE_MARKER_P): Add INLINE_ENTRY support. 14439 (INSN_DEBUG_MARKER_KIND): Likewise. 14440 (GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New. 14441 * tree-inline.c (expand_call_inline): Build and insert 14442 debug_inline_entry stmt. 14443 * tree-ssa-live.c (remove_unused_scope_block_p): Preserve 14444 inline entry blocks early, if nonbind markers are enabled. 14445 (dump_scope_block): Dump fragment info. 14446 * var-tracking.c (reemit_marker_as_note): Handle inline entry note. 14447 * doc/gimple.texi (gimple_debug_inline_entry_p): New. 14448 (gimple_build_debug_inline_entry): New. 14449 * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): 14450 Enable/disable inline entry points too. 14451 * doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New. 14452 (DEBUG_INSN): Describe inline entry markers. 14453 14454 * common.opt (gvariable-location-views): New. 14455 (gvariable-location-views=incompat5): New. 14456 * config.in: Rebuilt. 14457 * configure: Rebuilt. 14458 * configure.ac: Test assembler for view support. 14459 * dwarf2asm.c (dw2_asm_output_symname_uleb128): New. 14460 * dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare. 14461 * dwarf2out.c (var_loc_view): New typedef. 14462 (struct dw_loc_list_struct): Add vl_symbol, vbegin, vend. 14463 (dwarf2out_locviews_in_attribute): New. 14464 (dwarf2out_locviews_in_loclist): New. 14465 (dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists. 14466 (enum dw_line_info_opcode): Add LI_adv_address. 14467 (struct dw_line_info_table): Add view. 14468 (RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros. 14469 (DWARF2_ASM_VIEW_DEBUG_INFO): Define default. 14470 (zero_view_p): New variable. 14471 (ZERO_VIEW_P): New macro. 14472 (output_asm_line_debug_info): New. 14473 (struct var_loc_node): Add view. 14474 (add_AT_view_list, AT_loc_list): New. 14475 (add_var_loc_to_decl): Add view param. Test it against last. 14476 (new_loc_list): Add view params. Record them. 14477 (AT_loc_list_ptr): Handle loc and view lists. 14478 (view_list_to_loc_list_val_node): New. 14479 (print_dw_val): Handle dw_val_class_view_list. 14480 (size_of_die): Likewise. 14481 (value_format): Likewise. 14482 (loc_list_has_views): New. 14483 (gen_llsym): Set vl_symbol too. 14484 (maybe_gen_llsym, skip_loc_list_entry): New. 14485 (dwarf2out_maybe_output_loclist_view_pair): New. 14486 (output_loc_list): Output view list or entries too. 14487 (output_view_list_offset): New. 14488 (output_die): Handle dw_val_class_view_list. 14489 (output_dwarf_version): New. 14490 (output_compilation_unit_header): Use it. 14491 (output_skeleton_debug_sections): Likewise. 14492 (output_rnglists, output_line_info): Likewise. 14493 (output_pubnames, output_aranges): Update version comments. 14494 (output_one_line_info_table): Output view numbers in asm comments. 14495 (dw_loc_list): Determine current endview, pass it to new_loc_list. 14496 Call maybe_gen_llsym. 14497 (loc_list_from_tree_1): Adjust. 14498 (add_AT_location_description): Create view list attribute if 14499 needed, check it's absent otherwise. 14500 (convert_cfa_to_fb_loc_list): Adjust. 14501 (maybe_emit_file): Call output_asm_line_debug_info for test. 14502 (dwarf2out_var_location): Reset views as needed. Precompute 14503 add_var_loc_to_decl args. Call get_attr_min_length only if we have the 14504 attribute. Set view. 14505 (new_line_info_table): Reset next view. 14506 (set_cur_line_info_table): Call output_asm_line_debug_info for test. 14507 (dwarf2out_source_line): Likewise. Output view resets and labels to 14508 the assembler, or select appropriate line info opcodes. 14509 (prune_unused_types_walk_attribs): Handle dw_val_class_view_list. 14510 (optimize_string_length): Catch it. Adjust. 14511 (resolve_addr): Copy vl_symbol along with ll_symbol. Handle 14512 dw_val_class_view_list, and remove it if no longer needed. 14513 (hash_loc_list): Hash view numbers. 14514 (loc_list_hasher::equal): Compare them. 14515 (optimize_location_lists): Check whether a view list symbol is 14516 needed, and whether the locview attribute is present, and 14517 whether they match. Remove the locview attribute if no longer 14518 needed. 14519 (index_location_lists): Call skip_loc_list_entry for test. 14520 (dwarf2out_finish): Call output_asm_line_debug_info for test. 14521 Use output_dwarf_version. 14522 * dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list. 14523 (struct dw_val_node): Add val_view_list. 14524 * final.c (SEEN_NEXT_VIEW): New. 14525 (set_next_view_needed): New. 14526 (clear_next_view_needed): New. 14527 (maybe_output_next_view): New. 14528 (final_start_function): Rename to... 14529 (final_start_function_1): ... this. Take pointer to FIRST, 14530 add SEEN parameter. Emit param bindings in the initial view. 14531 (final_start_function): Reintroduce SEEN-less interface. 14532 (final): Rename to... 14533 (final_1): ... this. Take SEEN parameter. Output final pending 14534 next view at the end. 14535 (final): Reintroduce seen-less interface. 14536 (final_scan_insn): Output pending next view before switching 14537 sections or ending a block. Mark the next view as needed when 14538 outputting variable locations. Notify debug backend of section 14539 changes, and of location view changes. 14540 (rest_of_handle_final): Adjust. 14541 * toplev.c (process_options): Autodetect value for debug variable 14542 location views option. Warn on incompat5 without -gdwarf-5. 14543 * doc/invoke.texi (gvariable-location-views): New. 14544 (gvariable-location-views=incompat5): New. 14545 (gno-variable-location-views): New. 14546 145472018-02-08 David Malcolm <dmalcolm@redhat.com> 14548 14549 PR tree-optimization/84136 14550 * tree-cfg.c (find_taken_edge_computed_goto): Remove assertion 14551 that the result of find_edge is non-NULL. 14552 145532018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> 14554 14555 PR target/83008 14556 * config/i386/x86-tune-costs.h (skylake_cost): Fix cost of 14557 storing integer register in SImode. Fix cost of 256 and 512 14558 byte aligned SSE register store. 14559 145602018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> 14561 14562 * config/i386/i386.c (ix86_multiplication_cost): Fix 14563 multiplication cost for TARGET_AVX512DQ. 14564 145652018-02-08 Marek Polacek <polacek@redhat.com> 14566 14567 PR tree-optimization/84238 14568 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of 14569 get_range_strlen. 14570 145712018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 14572 14573 PR tree-optimization/84265 14574 * tree-vect-stmts.c (vectorizable_store): Don't treat 14575 VMAT_CONTIGUOUS accesses as grouped. 14576 (vectorizable_load): Likewise. 14577 145782018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 14579 14580 PR tree-optimization/81635 14581 * wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare. 14582 * wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask) 14583 (test_round_for_mask): New functions. 14584 (wide_int_cc_tests): Call test_round_for_mask. 14585 * tree-vrp.h (intersect_range_with_nonzero_bits): Declare. 14586 * tree-vrp.c (intersect_range_with_nonzero_bits): New function. 14587 * tree-data-ref.c (split_constant_offset_1): Use it to refine the 14588 range returned by get_range_info. 14589 145902018-02-08 Jan Hubicka <hubicka@ucw.cz> 14591 14592 PR ipa/81360 14593 * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare 14594 * symtab.c: Include builtins.h 14595 (symtab_node::output_to_lto_symbol_table_p): Move here 14596 from lto-streamer-out.c:output_symbol_p. 14597 * lto-streamer-out.c (write_symbol): Turn early exit to assert. 14598 (output_symbol_p): Move all logic to symtab.c 14599 (produce_symtab): Update. 14600 146012018-02-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 14602 14603 * config/s390/s390-opts.h (enum indirect_branch): Define. 14604 * config/s390/s390-protos.h (s390_return_addr_from_memory) 14605 (s390_indirect_branch_via_thunk) 14606 (s390_indirect_branch_via_inline_thunk): Add function prototypes. 14607 (enum s390_indirect_branch_type): Define. 14608 * config/s390/s390.c (struct s390_frame_layout, struct 14609 machine_function): Remove. 14610 (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask) 14611 (indirect_branch_table_label_no, indirect_branch_table_name): 14612 Define variables. 14613 (INDIRECT_BRANCH_NUM_OPTIONS): Define macro. 14614 (enum s390_indirect_branch_option): Define. 14615 (s390_return_addr_from_memory): New function. 14616 (s390_handle_string_attribute): New function. 14617 (s390_attribute_table): Add new attribute handler. 14618 (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns. 14619 (s390_indirect_branch_via_thunk): New function. 14620 (s390_indirect_branch_via_inline_thunk): New function. 14621 (s390_function_ok_for_sibcall): When jumping via thunk disallow 14622 sibling call optimization for non z10 compiles. 14623 (s390_emit_call): Force indirect branch target to be a single 14624 register. Add r1 clobber for non-z10 compiles. 14625 (s390_emit_epilogue): Emit return jump via return_use expander. 14626 (s390_reorg): Handle JUMP_INSNs as execute targets. 14627 (s390_option_override_internal): Perform validity checks for the 14628 new command line options. 14629 (s390_indirect_branch_attrvalue): New function. 14630 (s390_indirect_branch_settings): New function. 14631 (s390_set_current_function): Invoke s390_indirect_branch_settings. 14632 (s390_output_indirect_thunk_function): New function. 14633 (s390_code_end): Implement target hook. 14634 (s390_case_values_threshold): Implement target hook. 14635 (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target 14636 macros. 14637 * config/s390/s390.h (struct s390_frame_layout) 14638 (struct machine_function): Move here from s390.c. 14639 (TARGET_INDIRECT_BRANCH_NOBP_RET) 14640 (TARGET_INDIRECT_BRANCH_NOBP_JUMP) 14641 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK) 14642 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK) 14643 (TARGET_INDIRECT_BRANCH_NOBP_CALL) 14644 (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE) 14645 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL) 14646 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX) 14647 (TARGET_INDIRECT_BRANCH_TABLE): Define macros. 14648 * config/s390/s390.md (UNSPEC_EXECUTE_JUMP) 14649 (INDIRECT_BRANCH_THUNK_REGNUM): Define constants. 14650 (mnemonic attribute): Add values which aren't recognized 14651 automatically. 14652 ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable 14653 pattern for branch conversion. Fix mnemonic attribute. 14654 ("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit 14655 indirect branch via thunk if requested. 14656 ("indirect_jump", "<code>"): Expand patterns for branch conversion. 14657 ("*indirect_jump"): Disable for branch conversion using out of 14658 line thunks. 14659 ("indirect_jump_via_thunk<mode>_z10") 14660 ("indirect_jump_via_thunk<mode>") 14661 ("indirect_jump_via_inlinethunk<mode>_z10") 14662 ("indirect_jump_via_inlinethunk<mode>", "*casesi_jump") 14663 ("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>") 14664 ("casesi_jump_via_inlinethunk<mode>_z10") 14665 ("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10") 14666 ("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10") 14667 ("*basr_r_via_thunk", "return<mode>_prez10"): New pattern. 14668 ("*indirect2_jump"): Disable for branch conversion. 14669 ("casesi_jump"): Turn into expander and expand patterns for branch 14670 conversion. 14671 ("return_use"): New expander. 14672 ("*return"): Emit return via thunk and rename it to ... 14673 ("*return<mode>"): ... this one. 14674 * config/s390/s390.opt: Add new options and and enum for the 14675 option values. 14676 146772018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 14678 14679 * lra-constraints.c (match_reload): Unconditionally use 14680 gen_lowpart_SUBREG, rather than selecting between that 14681 and equivalent gen_rtx_SUBREG code. 14682 146832018-02-08 Richard Biener <rguenther@suse.de> 14684 14685 PR tree-optimization/84233 14686 * tree-ssa-phiprop.c (propagate_with_phi): Use separate 14687 changed flag instead of boguously re-using phi_inserted. 14688 146892018-02-08 Martin Jambor <mjambor@suse.cz> 14690 14691 * hsa-gen.c (get_symbol_for_decl): Set program allocation for 14692 static local variables. 14693 146942018-02-08 Richard Biener <rguenther@suse.de> 14695 14696 PR tree-optimization/84278 14697 * tree-vect-stmts.c (vectorizable_store): When looking for 14698 smaller vector types to perform grouped strided loads/stores 14699 make sure the mode is supported by the target. 14700 (vectorizable_load): Likewise. 14701 147022018-02-08 Wilco Dijkstra <wdijkstr@arm.com> 14703 14704 * config/aarch64/aarch64.c (aarch64_components_for_bb): 14705 Increase LDP/STP opportunities by adding adjacent callee-saves. 14706 147072018-02-08 Wilco Dijkstra <wdijkstr@arm.com> 14708 14709 PR rtl-optimization/84068 14710 PR rtl-optimization/83459 14711 * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting. 14712 147132018-02-08 Aldy Hernandez <aldyh@redhat.com> 14714 14715 PR tree-optimization/84224 14716 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert. 14717 * calls.c (gimple_alloca_call_p): Only return TRUE when we have 14718 non-zero arguments. 14719 147202018-02-07 Iain Sandoe <iain@codesourcery.com> 14721 14722 PR target/84113 14723 * config/rs6000/altivec.md (*restore_world): Remove LR use. 14724 * config/rs6000/predicates.md (restore_world_operation): Adjust op 14725 count, remove one USE. 14726 147272018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> 14728 14729 * doc/install.texi (Configuration): Document the 14730 --with-long-double-format={ibm,ieee} PowerPC configuration 14731 options. 14732 14733 PR target/84154 14734 * config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2): 14735 Convert from define_expand to be define_insn_and_split. Rework 14736 float/double/_Float128 conversions to QI/HI/SImode to work with 14737 both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where 14738 conversions to QI/HImode types did a store and then a load to 14739 truncate the value. For conversions to VSX registers, don't split 14740 the insn, instead emit the code directly. Use the code iterator 14741 any_fix to combine signed and unsigned conversions. 14742 (fix<uns>_trunc<SFDF:mode>si2_p8): Likewise. 14743 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise. 14744 (fix_trunc<IEEE128:mode><QHI:mode>2): Likewise. 14745 (fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise. 14746 (fix_<mode>di2_hw): Likewise. 14747 (fixuns_<mode>di2_hw): Likewise. 14748 (fix_<mode>si2_hw): Likewise. 14749 (fixuns_<mode>si2_hw): Likewise. 14750 (fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise. 14751 (fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise. 14752 (fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to 14753 fix<uns>_trunc<SFDF:mode>si2_p8. 14754 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer 14755 used. 14756 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. 14757 (fix<uns>_<mode>_mem): Likewise. 14758 (fctiw<u>z_<mode>_mem): Likewise. 14759 (fix<uns>_<mode>_mem): Likewise. 14760 (fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent 14761 the register allocator from doing a direct move to the GPRs to do 14762 a store, and instead use the ISA 3.0 store byte/half-word from 14763 vector register instruction. For IEEE 128-bit floating point, 14764 also optimize stores of 32-bit ints. 14765 (fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise. 14766 147672018-02-07 Alan Hayward <alan.hayward@arm.com> 14768 14769 * genextract.c (push_pathstr_operand): New function to support 14770 [a-zA-Z]. 14771 (walk_rtx): Call push_pathstr_operand. 14772 (print_path): Support [a-zA-Z]. 14773 147742018-02-07 Richard Biener <rguenther@suse.de> 14775 14776 PR tree-optimization/84037 14777 * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member. 14778 (cse_and_gimplify_to_preheader): Declare. 14779 (vect_get_place_in_interleaving_chain): Likewise. 14780 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 14781 ivexpr_map. 14782 (_loop_vec_info::~_loop_vec_info): Delete it. 14783 (cse_and_gimplify_to_preheader): New function. 14784 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export. 14785 * tree-vect-stmts.c (vectorizable_store): CSE base and steps. 14786 (vectorizable_load): Likewise. For grouped stores always base 14787 the IV on the first element. 14788 * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning 14789 condition before gimplifying. 14790 147912018-02-07 Jakub Jelinek <jakub@redhat.com> 14792 14793 * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for 14794 *DIV_EXPR and *MOD_EXPR. 14795 147962018-02-07 H.J. Lu <hongjiu.lu@intel.com> 14797 14798 PR target/84248 14799 * config/i386/i386.c (ix86_option_override_internal): Mask out 14800 the CF_SET bit when checking -fcf-protection. 14801 148022018-02-07 Tom de Vries <tom@codesourcery.com> 14803 14804 PR libgomp/84217 14805 * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large 14806 enough. 14807 148082018-02-07 Richard Biener <rguenther@suse.de> 14809 14810 PR tree-optimization/84204 14811 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in 14812 this place. 14813 14814 PR tree-optimization/84205 14815 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also 14816 special-case isl_ast_op_zdiv_r. 14817 14818 PR tree-optimization/84223 14819 * graphite-scop-detection.c (gather_bbs::before_dom_children): 14820 Only add conditions from within the region. 14821 (gather_bbs::after_dom_children): Adjust. 14822 148232018-02-07 Georg-Johann Lay <avr@gjlay.de> 14824 14825 PR target/84209 14826 * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros. 14827 * config/avr/avr.md: Only post-reload split REG-REG moves if 14828 either register is GENERAL_REG_P. 14829 148302018-02-07 Jakub Jelinek <jakub@redhat.com> 14831 14832 PR tree-optimization/84235 14833 * tree-ssa-scopedtables.c 14834 (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt 14835 if the subtraction is performed in floating point type where NaNs are 14836 honored. For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't 14837 build 1. Formatting fix. 14838 148392018-02-06 Jakub Jelinek <jakub@redhat.com> 14840 14841 PR target/84146 14842 * config/i386/i386.c (rest_of_insert_endbranch): Only skip 14843 NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else, 14844 and skip it regardless of bb boundaries. Use CALL_P macro, 14845 don't test INSN_P (insn) together with CALL_P or JUMP_P check 14846 unnecessarily, formatting fix. 14847 148482018-02-06 Michael Collison <michael.collison@arm.com> 14849 14850 * config/arm/thumb2.md: 14851 (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it. 14852 (*thumb_mov_notscc): Ditto. 14853 148542018-02-06 Michael Meissner <meissner@linux.vnet.ibm.com> 14855 14856 PR target/84154 14857 * config/rs6000/rs6000.md (su code attribute): Use "u" for 14858 unsigned_fix, not "s". 14859 148602018-02-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 14861 14862 * configure.ac (gcc_fn_eh_frame_ro): New function. 14863 (gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for 14864 correct .eh_frame permissions. 14865 * configure: Regenerate. 14866 148672018-02-06 Andrew Jenner <andrew@codeourcery.com> 14868 14869 * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove 14870 irrelevant options. 14871 148722018-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 14873 14874 * config/rs6000/rs6000.c (rs6000_option_override_internal): 14875 Display warning message for -mno-speculate-indirect-jumps. 14876 148772018-02-06 Andrew Jenner <andrew@codesourcery.com> 14878 14879 * config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add 14880 Undocumented. 14881 * config/powerpcspe/sysv4.opt (mbit-align): Likewise. 14882 148832018-02-06 Aldy Hernandez <aldyh@redhat.com> 14884 14885 PR tree-optimization/84225 14886 * tree-eh.c (find_trapping_overflow): Only call 14887 operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P. 14888 148892018-02-06 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 14890 14891 PR target/84145 14892 * config/i386/i386.c: Reimplement the check of possible options 14893 -mibt/-mshstk conbination. Change error messages. 14894 * doc/invoke.texi: Fix a typo: remove extra '='. 14895 148962018-02-06 Marek Polacek <polacek@redhat.com> 14897 14898 PR tree-optimization/84228 14899 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements. 14900 149012018-02-06 Tamar Christina <tamar.christina@arm.com> 14902 14903 PR target/82641 14904 * config/arm/arm.c (arm_print_asm_arch_directives): Record already 14905 emitted arch directives. 14906 * config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and 14907 __ARM_FEATURE_COPROC before changing architectures. 14908 149092018-02-06 Richard Biener <rguenther@suse.de> 14910 14911 * config/i386/i386.c (print_reg): Fix typo. 14912 (ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll. 14913 149142018-02-06 Eric Botcazou <ebotcazou@adacore.com> 14915 14916 * configure: Regenerate. 14917 149182018-02-05 Martin Sebor <msebor@redhat.com> 14919 14920 PR tree-optimization/83369 14921 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print 14922 inlining context. 14923 149242018-02-05 Martin Liska <mliska@suse.cz> 14925 14926 * doc/invoke.texi: Cherry-pick upstream r323995. 14927 149282018-02-05 Richard Sandiford <richard.sandiford@linaro.org> 14929 14930 * ira.c (ira_init_register_move_cost): Adjust comment. 14931 149322018-02-05 Martin Liska <mliska@suse.cz> 14933 14934 PR gcov-profile/84137 14935 * doc/gcov.texi: Fix typo in documentation. 14936 149372018-02-05 Martin Liska <mliska@suse.cz> 14938 14939 PR gcov-profile/83879 14940 * doc/gcov.texi: Document necessity of --dynamic-list-data when 14941 using dlopen functionality. 14942 149432018-02-05 Olga Makhotina <olga.makhotina@intel.com> 14944 14945 * config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd, 14946 _mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss, 14947 _mm_maskz_range_ss, _mm_mask_range_round_ss, 14948 _mm_maskz_range_round_ss): New intrinsics. 14949 (__builtin_ia32_rangesd128_round) 14950 (__builtin_ia32_rangess128_round): Remove. 14951 (__builtin_ia32_rangesd128_mask_round, 14952 __builtin_ia32_rangess128_mask_round): New builtins. 14953 * config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round, 14954 __builtin_ia32_rangess128_round): Remove. 14955 (__builtin_ia32_rangesd128_mask_round, 14956 __builtin_ia32_rangess128_mask_round): New builtins. 14957 * config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ... 14958 (ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this. 14959 ((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>" 14960 "<round_saeonly_constraint>")): Changed to ... 14961 ((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>" 14962 "<round_saeonly_scalar_constraint>")): ... this. 14963 ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| 14964 %0, %1, %2<round_saeonly_op4>, %3}"): Changed to ... 14965 ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2, 14966 %1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1, 14967 %2<round_saeonly_scalar_mask_op4>, %3}"): ... this. 14968 149692018-02-02 Andrew Jenner <andrew@codesourcery.com> 14970 14971 * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant 14972 options. 14973 * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value): 14974 Remove all values except native, 8540 and 8548. 14975 149762018-02-02 H.J. Lu <hongjiu.lu@intel.com> 14977 14978 * config/i386/i386.c (ix86_output_function_return): Pass 14979 INVALID_REGNUM, instead of -1, as invalid register number to 14980 indirect_thunk_name and output_indirect_thunk. 14981 149822018-02-02 Julia Koval <julia.koval@intel.com> 14983 14984 * config.gcc: Add -march=icelake. 14985 * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake. 14986 * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake. 14987 * config/i386/i386.c (processor_costs): Add m_ICELAKE. 14988 (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2, 14989 PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New. 14990 (processor_target_table): Add icelake. 14991 (ix86_option_override_internal): Handle new PTAs. 14992 (get_builtin_code_for_version): Handle icelake. 14993 (M_INTEL_COREI7_ICELAKE): New. 14994 (fold_builtin_cpu): Handle icelake. 14995 * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New. 14996 * doc/invoke.texi: Add -march=icelake. 14997 149982018-02-02 Julia Koval <julia.koval@intel.com> 14999 15000 * config/i386/i386.c (ix86_option_override_internal): Change flags type 15001 to wide_int_bitmask. 15002 * wide-int-bitmask.h: New. 15003 150042018-02-02 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 15005 15006 PR target/84066 15007 * config/i386/i386.md: Replace Pmode with word_mode in 15008 builtin_setjmp_setup and builtin_longjmp to support x32. 15009 150102018-02-01 Peter Bergner <bergner@vnet.ibm.com> 15011 15012 PR target/56010 15013 PR target/83743 15014 * config/rs6000/driver-rs6000.c: #include "diagnostic.h". 15015 #include "opts.h". 15016 (rs6000_supported_cpu_names): New static variable. 15017 (linux_cpu_translation_table): Likewise. 15018 (elf_platform) <cpu>: Define new static variable and use it. 15019 Translate kernel AT_PLATFORM name to canonical name if needed. 15020 Error if platform name is unknown. 15021 150222018-02-01 Aldy Hernandez <aldyh@redhat.com> 15023 15024 PR target/84089 15025 * config/pa/predicates.md (base14_operand): Handle E_VOIDmode. 15026 150272018-02-01 Jeff Law <law@redhat.com> 15028 15029 PR target/84128 15030 * config/i386/i386.c (release_scratch_register_on_entry): Add new 15031 OFFSET and RELEASE_VIA_POP arguments. Use SP+OFFSET to restore 15032 the scratch if RELEASE_VIA_POP is false. 15033 (ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE. 15034 If we have to save a temporary register, decrement SIZE appropriately. 15035 Pass new arguments to release_scratch_register_on_entry. 15036 (ix86_adjust_stack_and_probe): Likewise. 15037 (ix86_emit_probe_stack_range): Pass new arguments to 15038 release_scratch_register_on_entry. 15039 150402018-02-01 Uros Bizjak <ubizjak@gmail.com> 15041 15042 PR rtl-optimization/84157 15043 * combine.c (change_zero_ext): Use REG_P predicate in 15044 front of HARD_REGISTER_P predicate. 15045 150462018-02-01 Georg-Johann Lay <avr@gjlay.de> 15047 15048 * config/avr/avr.c (avr_option_override): Move disabling of 15049 -fdelete-null-pointer-checks to... 15050 * common/config/avr/avr-common.c (avr_option_optimization_table): 15051 ...here. 15052 150532018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 15054 15055 PR tree-optimization/81635 15056 * tree-data-ref.c (split_constant_offset_1): For types that 15057 wrap on overflow, try to use range info to prove that wrapping 15058 cannot occur. 15059 150602018-02-01 Renlin Li <renlin.li@arm.com> 15061 15062 PR target/83370 15063 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle 15064 TAILCALL_ADDR_REGS. 15065 (aarch64_register_move_cost): Likewise. 15066 * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to 15067 TAILCALL_ADDR_REGS. 15068 (REG_CLASS_NAMES): Likewise. 15069 (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to 15070 TAILCALL_ADDR_REGS. Remove IP registers. 15071 * config/aarch64/aarch64.md (Ucs): Update register constraint. 15072 150732018-02-01 Richard Biener <rguenther@suse.de> 15074 15075 * domwalk.h (dom_walker::dom_walker): Add additional constructor 15076 for specifying RPO order and allow NULL for that. 15077 * domwalk.c (dom_walker::dom_walker): Likewise. 15078 (dom_walker::walk): Handle NULL RPO order. 15079 * tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children 15080 in RPO order. 15081 (rewrite_update_dom_walker): Likewise. 15082 (mark_def_dom_walker): Likewise. 15083 150842018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 15085 15086 * config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move) 15087 (aarch64_maybe_expand_sve_subreg_move): Declare. 15088 * config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec. 15089 * config/aarch64/predicates.md (aarch64_any_register_operand): New 15090 predicate. 15091 * config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves 15092 that are semantically a reverse operation. 15093 (*aarch64_sve_mov<mode>_subreg_be): New pattern. 15094 * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): 15095 (aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New 15096 functions. 15097 (aarch64_can_change_mode_class): For big-endian, forbid changes 15098 between two SVE modes if they have different element sizes. 15099 151002018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 15101 15102 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer 15103 the TImode handling for big-endian targets. 15104 151052018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 15106 15107 * config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with... 15108 (*sve_ld1rq<Vesize>): ... this new pattern. Handle all element sizes, 15109 not just bytes. 15110 * config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate): 15111 Remove BSWAP handing for big-endian targets and use the form of 15112 LD1RQ appropariate for the mode. 15113 151142018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 15115 15116 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle 15117 all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single 15118 duplicated element. 15119 151202018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 15121 15122 PR tearget/83845 15123 * config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten 15124 check for operands that need to go through aarch64_sve_reload_be. 15125 151262018-02-01 Jakub Jelinek <jakub@redhat.com> 15127 15128 PR tree-optimization/81661 15129 PR tree-optimization/84117 15130 * tree-eh.h (rewrite_to_non_trapping_overflow): Declare. 15131 * tree-eh.c: Include gimplify.h. 15132 (find_trapping_overflow, replace_trapping_overflow, 15133 rewrite_to_non_trapping_overflow): New functions. 15134 * tree-vect-loop.c: Include tree-eh.h. 15135 (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow. 15136 * tree-data-ref.c: Include tree-eh.h. 15137 (get_segment_min_max): Use rewrite_to_non_trapping_overflow. 15138 151392018-01-31 Uros Bizjak <ubizjak@gmail.com> 15140 15141 PR rtl-optimization/84123 15142 * combine.c (change_zero_ext): Check if hard register satisfies 15143 can_change_dest_mode before calling gen_lowpart_SUBREG. 15144 151452018-01-31 Vladimir Makarov <vmakarov@redhat.com> 15146 15147 PR target/82444 15148 * ira.c (ira_init_register_move_cost): Remove assert. 15149 151502018-01-31 Eric Botcazou <ebotcazou@adacore.com> 15151 15152 PR rtl-optimization/84071 15153 * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case. 15154 * doc/tm.texi: Regenerate. 15155 151562018-01-31 Richard Biener <rguenther@suse.de> 15157 15158 PR tree-optimization/84132 15159 * tree-data-ref.c (analyze_miv_subscript): Properly 15160 check whether evolution_function_is_affine_multivariate_p 15161 before calling gcd_of_steps_may_divide_p. 15162 151632018-01-31 Julia Koval <julia.koval@intel.com> 15164 15165 PR target/83618 15166 * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. 15167 * config/i386/i386.md (rdpid_rex64) New. 15168 (rdpid): Make 32bit only. 15169 151702018-01-29 Aldy Hernandez <aldyh@redhat.com> 15171 15172 PR lto/84105 15173 * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with 15174 an IDENTIFIER_NODE for FUNCTION_TYPE's. 15175 151762018-01-31 Eric Botcazou <ebotcazou@adacore.com> 15177 15178 Revert 15179 2018-01-12 Eric Botcazou <ebotcazou@adacore.com> 15180 15181 * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. 15182 151832018-01-31 Eric Botcazou <ebotcazou@adacore.com> 15184 15185 PR rtl-optimization/84071 15186 * combine.c (record_dead_and_set_regs_1): Record the source unmodified 15187 for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target. 15188 151892018-01-31 Claudiu Zissulescu <claziss@synopsys.com> 15190 15191 * config/arc/arc.c (arc_handle_aux_attribute): New function. 15192 (arc_attribute_table): Add 'aux' attribute. 15193 (arc_in_small_data_p): Consider aux like variables. 15194 (arc_is_aux_reg_p): New function. 15195 (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables. 15196 (arc_get_aux_arg): New function. 15197 (prepare_move_operands): Handle aux-register access. 15198 (arc_handle_aux_attribute): New function. 15199 * doc/extend.texi (ARC Variable attributes): Add subsection. 15200 152012018-01-31 Claudiu Zissulescu <claziss@synopsys.com> 15202 15203 * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto. 15204 * config/arc/arc.c (arc_handle_uncached_attribute): New function. 15205 (arc_attribute_table): Add 'uncached' attribute. 15206 (arc_print_operand): Print '.di' flag for uncached memory 15207 accesses. 15208 (arc_in_small_data_p): Do not consider for small data the uncached 15209 types. 15210 (arc_is_uncached_mem_p): New function. 15211 * config/arc/predicates.md (compact_store_memory_operand): Check 15212 for uncached memory accesses. 15213 (nonvol_nonimm_operand): Likewise. 15214 * gcc/doc/extend.texi (ARC Type Attribute): New subsection. 15215 152162018-01-31 Jakub Jelinek <jakub@redhat.com> 15217 15218 PR c/84100 15219 * common.opt (falign-functions=, falign-jumps=, falign-labels=, 15220 falign-loops=): Add Optimization flag. 15221 152222018-01-30 Jeff Law <law@redhat.com> 15223 15224 PR target/84064 15225 * i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument 15226 INT_REGISTERS_SAVED. Check it prior to calling 15227 get_scratch_register_on_entry. 15228 (ix86_adjust_stack_and_probe): Similarly. 15229 (ix86_emit_probe_stack_range): Similarly. 15230 (ix86_expand_prologue): Corresponding changes. 15231 152322018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 15233 15234 PR target/40411 15235 * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, 15236 -std=iso9899:199409 instead of -pedantic to select values-Xc.o. 15237 152382018-01-30 Vladimir Makarov <vmakarov@redhat.com> 15239 15240 PR target/84112 15241 * lra-constraints.c (curr_insn_transform): Process AND in the 15242 address. 15243 152442018-01-30 Jakub Jelinek <jakub@redhat.com> 15245 15246 PR rtl-optimization/83986 15247 * sched-deps.c (sched_analyze_insn): For frame related insns, add anti 15248 dependence against last_pending_memory_flush in addition to 15249 pending_jump_insns. 15250 152512018-01-30 Alexandre Oliva <aoliva@redhat.com> 15252 15253 PR tree-optimization/81611 15254 * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening 15255 copies. 15256 152572018-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 15258 15259 PR target/83758 15260 * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return 15261 a reg rtx. 15262 152632018-01-30 Richard Biener <rguenther@suse.de> 15264 Jakub Jelinek <jakub@redhat.com> 15265 15266 PR tree-optimization/84111 15267 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip 15268 inner loops added during recursion, as they don't have up-to-date 15269 SSA form. 15270 152712018-01-30 Jan Hubicka <hubicka@ucw.cz> 15272 15273 PR ipa/81360 15274 * ipa-inline.c (can_inline_edge_p): Break out late tests to... 15275 (can_inline_edge_by_limits_p): ... here. 15276 (can_early_inline_edge_p, check_callers, 15277 update_caller_keys, update_callee_keys, recursive_inlining, 15278 add_new_edges_to_heap, speculation_useful_p, 15279 inline_small_functions, 15280 inline_small_functions, flatten_function, 15281 inline_to_all_callers_1): Update. 15282 152832018-01-30 Jan Hubicka <hubicka@ucw.cz> 15284 15285 * profile-count.c (profile_count::combine_with_ipa_count): Handle 15286 zeros correctly. 15287 152882018-01-30 Richard Biener <rguenther@suse.de> 15289 15290 PR tree-optimization/83008 15291 * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost 15292 invariant and constant vector uses in stmts when they need 15293 more than one stmt. 15294 152952018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 15296 15297 PR bootstrap/84017 15298 * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86. 15299 * configure: Regenerate. 15300 153012018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 15302 15303 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New 15304 pattern. 15305 (*vec_extract<mode><Vel>_v128): Require a nonzero lane number. 15306 Use gen_rtx_REG rather than gen_lowpart. 15307 153082018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 15309 15310 * lra-constraints.c (match_reload): Use subreg_lowpart_offset 15311 rather than 0 when creating partial subregs. 15312 153132018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 15314 15315 * vec-perm-indices.c (vec_perm_indices::series_p): Give examples 15316 of usage. 15317 153182018-01-29 Michael Meissner <meissner@linux.vnet.ibm.com> 15319 15320 PR target/81550 15321 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode 15322 and SFmode can go in Altivec registers (-mcpu=power7 for DFmode, 15323 -mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY 15324 flags. This restores the settings used before the 2017-07-24. 15325 Turning off pre increment/decrement/modify allows IVOPTS to 15326 optimize DF/SF loops where the index is an int. 15327 153282018-01-29 Richard Biener <rguenther@suse.de> 15329 Kelvin Nilsen <kelvin@gcc.gnu.org> 15330 15331 PR bootstrap/80867 15332 * tree-vect-stmts.c (vectorizable_call): Don't call 15333 targetm.vectorize_builtin_md_vectorized_function if callee is 15334 NULL. 15335 153362018-01-22 Carl Love <cel@us.ibm.com> 15337 15338 * doc/extend.tex: Fix typo in second arg in 15339 __builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}. 15340 153412018-01-29 Richard Biener <rguenther@suse.de> 15342 15343 PR tree-optimization/84086 15344 * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h. 15345 (flush_ssaname_freelist): When SSA names were released reset 15346 the SCEV hash table. 15347 153482018-01-29 Richard Biener <rguenther@suse.de> 15349 15350 PR tree-optimization/84057 15351 * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already 15352 removed paths when removing edges. 15353 153542018-01-27 H.J. Lu <hongjiu.lu@intel.com> 15355 15356 * doc/invoke.texi: Replace -mfunction-return==@var{choice} with 15357 -mfunction-return=@var{choice}. 15358 153592018-01-27 Bernd Edlinger <bernd.edlinger@hotmail.de> 15360 15361 PR diagnostic/84034 15362 * diagnostic-show-locus.c (get_line_width_without_trailing_whitespace): 15363 Handle CR like TAB. 15364 (layout::print_source_line): Likewise. 15365 (test_get_line_width_without_trailing_whitespace): Add test cases. 15366 153672018-01-27 Jakub Jelinek <jakub@redhat.com> 15368 15369 PR middle-end/84040 15370 * sched-deps.c (sched_macro_fuse_insns): Return immediately for 15371 debug insns. 15372 153732018-01-26 Jim Wilson <jimw@sifive.com> 15374 15375 * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New. 15376 15377 * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs 15378 specified. 15379 153802018-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15381 15382 * config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS 15383 and CMP + SUB-immediate -> SUBS. 15384 153852018-01-26 Martin Sebor <msebor@redhat.com> 15386 15387 PR tree-optimization/83896 15388 * tree-ssa-strlen.c (get_string_len): Rename... 15389 (get_string_cst_length): ...to this. Return HOST_WIDE_INT. 15390 Avoid assuming length is constant. 15391 (handle_char_store): Use HOST_WIDE_INT for string length. 15392 153932018-01-26 Uros Bizjak <ubizjak@gmail.com> 15394 15395 PR target/81763 15396 * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber 15397 to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives. 15398 153992018-01-26 Richard Biener <rguenther@suse.de> 15400 15401 PR rtl-optimization/84003 15402 * dse.c (record_store): Only record redundant stores when 15403 the earlier store aliases at least all accesses the later one does. 15404 154052018-01-26 Jakub Jelinek <jakub@redhat.com> 15406 15407 PR rtl-optimization/83985 15408 * dce.c (deletable_insn_p): Return false for separate shrink wrapping 15409 REG_CFA_RESTORE insns. 15410 (delete_unmarked_insns): Don't ignore separate shrink wrapping 15411 REG_CFA_RESTORE insns here. 15412 15413 PR c/83989 15414 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't 15415 use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR. 15416 154172018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 15418 15419 * config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3. 15420 * config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... . 15421 (arc_init): Likewise. 15422 (arc_override_options): Likewise. 15423 (arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune 15424 value. 15425 (hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn 15426 support. 15427 * config/arc/arc.h (TARGET_DBNZ): Define. 15428 * config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to 15429 properly set the tune attribute. 15430 (dbnz): Use TARGET_DBNZ guard. 15431 * config/arc/arc.opt (mtune): Add core3 option. 15432 154332018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 15434 15435 * config/arc/arc.c (arc_delegitimize_address_0): Refactored to 15436 recognize new pic like addresses. 15437 (arc_delegitimize_address): Clean up. 15438 154392018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 15440 15441 * config/arc/arc-arches.def: Option mrf16 valid for all 15442 architectures. 15443 * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. 15444 * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. 15445 * config/arc/arc-options.def (FL_RF16): Add mrf16 option. 15446 * config/arc/arc-tables.opt: Regenerate. 15447 * config/arc/arc.c (arc_conditional_register_usage): Handle 15448 reduced register file case. 15449 (arc_file_start): Set must have build attributes. 15450 * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using 15451 mrf16 option value. 15452 * config/arc/arc.opt (mrf16): Add new option. 15453 * config/arc/elf.h (ATTRIBUTE_PCS): Define. 15454 * config/arc/genmultilib.awk: Handle new mrf16 option. 15455 * config/arc/linux.h (ATTRIBUTE_PCS): Define. 15456 * config/arc/t-multilib: Regenerate. 15457 * doc/invoke.texi (ARC Options): Document mrf16 option. 15458 154592018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 15460 15461 * config/arc/arc-protos.h: Add arc_is_secure_call_p proto. 15462 * config/arc/arc.c (arc_handle_secure_attribute): New function. 15463 (arc_attribute_table): Add 'secure_call' attribute. 15464 (arc_print_operand): Print secure call operand. 15465 (arc_function_ok_for_sibcall): Don't optimize tail calls when 15466 secure. 15467 (arc_is_secure_call_p): New function. * config/arc/arc.md 15468 (call_i): Add support for sjli instruction. 15469 (call_value_i): Likewise. 15470 * config/arc/constraints.md (Csc): New constraint. 15471 154722018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 15473 John Eric Martin <John.Martin@emmicro-us.com> 15474 15475 * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. 15476 * config/arc/arc.c (_arc_jli_section): New struct. 15477 (arc_jli_section): New type. 15478 (rc_jli_sections): New static variable. 15479 (arc_handle_jli_attribute): New function. 15480 (arc_attribute_table): Add jli_always and jli_fixed attribute. 15481 (arc_file_end): New function. 15482 (TARGET_ASM_FILE_END): Define. 15483 (arc_print_operand): Reuse 'S' letter for JLI output instruction. 15484 (arc_add_jli_section): New function. 15485 (jli_call_scan): Likewise. 15486 (arc_reorg): Call jli_call_scan. 15487 (arc_output_addsi): Remove 'S' from printing asm operand. 15488 (arc_is_jli_call_p): New function. 15489 * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm 15490 operand. 15491 (movhi_insn): Likewise. 15492 (movsi_insn): Likewise. 15493 (movsi_set_cc_insn): Likewise. 15494 (loadqi_update): Likewise. 15495 (load_zeroextendqisi_update): Likewise. 15496 (load_signextendqisi_update): Likewise. 15497 (loadhi_update): Likewise. 15498 (load_zeroextendhisi_update): Likewise. 15499 (load_signextendhisi_update): Likewise. 15500 (loadsi_update): Likewise. 15501 (loadsf_update): Likewise. 15502 (movsicc_insn): Likewise. 15503 (bset_insn): Likewise. 15504 (bxor_insn): Likewise. 15505 (bclr_insn): Likewise. 15506 (bmsk_insn): Likewise. 15507 (bicsi3_insn): Likewise. 15508 (cmpsi_cc_c_insn): Likewise. 15509 (movsi_ne): Likewise. 15510 (movsi_cond_exec): Likewise. 15511 (clrsbsi2): Likewise. 15512 (norm_f): Likewise. 15513 (normw): Likewise. 15514 (swap): Likewise. 15515 (divaw): Likewise. 15516 (flag): Likewise. 15517 (sr): Likewise. 15518 (kflag): Likewise. 15519 (ffs): Likewise. 15520 (ffs_f): Likewise. 15521 (fls): Likewise. 15522 (call_i): Remove 'S' asm letter, add jli instruction. 15523 (call_value_i): Likewise. 15524 * config/arc/arc.op (mjli-always): New option. 15525 * config/arc/constraints.md (Cji): New constraint. 15526 * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm 15527 operand. 15528 (subsf3_fpx): Likewise. 15529 (mulsf3_fpx): Likewise. 15530 * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing 15531 asm operand. 15532 * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' 15533 function attrbutes. 15534 * doc/invoke.texi (ARC): Document mjli-always option. 15535 155362018-01-26 Sebastian Perta <sebastian.perta@renesas.com> 15537 15538 * config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const 15539 avoid addition with 0 and use incw and decw where possible. 15540 155412018-01-26 Richard Biener <rguenther@suse.de> 15542 15543 PR tree-optimization/81082 15544 * fold-const.c (fold_plusminus_mult_expr): Do not perform the 15545 association if it requires casting to unsigned. 15546 * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived 15547 from fold_plusminus_mult_expr to catch important cases late when 15548 range info is available. 15549 155502018-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 15551 15552 * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. 15553 * configure.ac (hidden_linkonce): New test. 15554 * configure: Regenerate. 15555 * config.in: Regenerate. 15556 155572018-01-26 Julia Koval <julia.koval@intel.com> 15558 15559 * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, 15560 _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, 15561 _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, 15562 _mm_mask_bitshuffle_epi64_mask): Fix type. 15563 * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, 15564 USI_FTYPE_V4DI_V4DI_USI): Remove. 15565 * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, 15566 __builtin_ia32_vpshufbitqmb256_mask, 15567 __builtin_ia32_vpshufbitqmb128_mask): Fix types. 15568 * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. 15569 * config/i386/sse.md (VI1_AVX512VLBW): Change types. 15570 155712018-01-26 Alan Modra <amodra@gmail.com> 15572 15573 PR target/84033 15574 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude 15575 UNSPEC_VBPERMQ. Sort other unspecs. 15576 155772018-01-25 David Edelsohn <dje.gcc@gmail.com> 15578 15579 * doc/invoke.texi (PowerPC Options): Document 'native' cpu type. 15580 155812018-01-25 Jan Hubicka <hubicka@ucw.cz> 15582 15583 PR middle-end/83055 15584 * predict.c (drop_profile): Do not push/pop cfun; update also 15585 node->count. 15586 (handle_missing_profiles): Fix logic looking for zero profiles. 15587 155882018-01-25 Jakub Jelinek <jakub@redhat.com> 15589 15590 PR middle-end/83977 15591 * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature 15592 on functions with #pragma omp declare simd or functions with simd 15593 attribute. 15594 * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. 15595 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 15596 Remove trailing \n from warning_at calls. 15597 155982018-01-25 Tom de Vries <tom@codesourcery.com> 15599 15600 PR target/84028 15601 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call 15602 for neutered workers. 15603 156042018-01-24 Joseph Myers <joseph@codesourcery.com> 15605 15606 PR target/68467 15607 * config/m68k/m68k.c (m68k_promote_function_mode): New function. 15608 (TARGET_PROMOTE_FUNCTION_MODE): New macro. 15609 156102018-01-24 Jeff Law <law@redhat.com> 15611 15612 PR target/83994 15613 * i386.c (get_probe_interval): Move to earlier point. 15614 (ix86_compute_frame_layout): If -fstack-clash-protection and 15615 the frame is larger than the probe interval, then use pushes 15616 to save registers rather than reg->mem moves. 15617 (ix86_expand_prologue): Remove conditional for int_registers_saved 15618 assertion. 15619 156202018-01-24 Vladimir Makarov <vmakarov@redhat.com> 15621 15622 PR target/84014 15623 * ira-build.c (setup_min_max_allocno_live_range_point): Set up 15624 min/max for never referenced object. 15625 156262018-01-24 Jakub Jelinek <jakub@redhat.com> 15627 15628 PR middle-end/83977 15629 * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN 15630 here. 15631 * omp-low.c (create_omp_child_function): Remove "omp declare simd" 15632 attributes from DECL_ATTRIBUTES (decl) without affecting 15633 DECL_ATTRIBUTES (current_function_decl). 15634 * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL 15635 functions with non-NULL DECL_ABSTRACT_ORIGIN. 15636 156372018-01-24 Richard Sandiford <richard.sandiford@linaro.org> 15638 15639 PR tree-optimization/83979 15640 * fold-const.c (fold_comparison): Use constant_boolean_node 15641 instead of boolean_{true,false}_node. 15642 156432018-01-24 Jan Hubicka <hubicka@ucw.cz> 15644 15645 * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls 15646 with zero counts. 15647 156482018-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15649 15650 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 15651 Simplify the clause that sets the length attribute. 15652 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 15653 (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the 15654 clause that sets the length attribute. 15655 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 15656 156572018-01-24 Tom de Vries <tom@codesourcery.com> 15658 15659 PR target/83589 15660 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1. 15661 (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c. 15662 Add strict parameter. 15663 (prevent_branch_around_nothing): Insert dummy insn between branch to 15664 label and label with no ptx insn inbetween. 15665 * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn. 15666 156672018-01-24 Tom de Vries <tom@codesourcery.com> 15668 15669 PR target/81352 15670 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call 15671 for neutered threads in warp. 15672 * config/nvptx/nvptx.md (define_insn "exit"): New insn. 15673 156742018-01-24 Richard Biener <rguenther@suse.de> 15675 15676 PR tree-optimization/83176 15677 * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. } 15678 operands. 15679 156802018-01-24 Richard Biener <rguenther@suse.de> 15681 15682 PR tree-optimization/82819 15683 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid 15684 code generating pluses that are no-ops in the target precision. 15685 156862018-01-24 Richard Biener <rguenther@suse.de> 15687 15688 PR middle-end/84000 15689 * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind. 15690 156912018-01-23 Jan Hubicka <hubicka@ucw.cz> 15692 15693 * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count 15694 to merge probabilities. 15695 * predict.c (probably_never_executed): Also mark as cold functions 15696 with global 0 profile and guessed local profile. 15697 * profile-count.c (profile_probability::combine_with_count): New 15698 member function. 15699 * profile-count.h (profile_probability::operator*, 15700 profile_probability::operator*=, profile_probability::operator/, 15701 profile_probability::operator/=): Reduce precision to adjusted 15702 and set value to guessed on contradictory divisions. 15703 (profile_probability::combine_with_freq): Remove. 15704 (profile_probability::combine_wiht_count): Declare. 15705 (profile_count::force_nonzero):: Set to adjusted. 15706 (profile_count::probability_in):: Set quality to adjusted. 15707 * tree-ssa-tail-merge.c (replace_block_by): Use 15708 combine_with_count. 15709 157102018-01-23 Andrew Waterman <andrew@sifive.com> 15711 Jim Wilson <jimw@sifive.com> 15712 15713 * config/riscv/riscv.c (riscv_stack_boundary): New. 15714 (riscv_option_override): Set riscv_stack_boundary. Handle 15715 riscv_preferred_stack_boundary_arg. 15716 * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New. 15717 (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY. 15718 (STACK_BOUNDARY): Set to riscv_stack_boundary. 15719 (RISCV_STACK_ALIGN): Use STACK_BOUNDARY. 15720 * config/riscv/riscv.opt (mpreferred-stack-boundary): New. 15721 * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary. 15722 157232018-01-23 H.J. Lu <hongjiu.lu@intel.com> 15724 15725 PR target/83905 15726 * config/i386/i386.c (ix86_expand_prologue): Use cost reference 15727 of struct ix86_frame. 15728 (ix86_expand_epilogue): Likewise. Add a local variable for 15729 the reg_save_offset field in struct ix86_frame. 15730 157312018-01-23 Bin Cheng <bin.cheng@arm.com> 15732 15733 PR tree-optimization/82604 15734 * tree-loop-distribution.c (enum partition_kind): New enum item 15735 PKIND_PARTIAL_MEMSET. 15736 (partition_builtin_p): Support above new enum item. 15737 (generate_code_for_partition): Ditto. 15738 (compute_access_range): Differentiate cases that equality can be 15739 proven at all loops, the innermost loops or no loops. 15740 (classify_builtin_st, classify_builtin_ldst): Adjust call to above 15741 function. Set PKIND_PARTIAL_MEMSET for partition appropriately. 15742 (finalize_partitions, distribute_loop): Don't fuse partition of 15743 PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest. 15744 (prepare_perfect_loop_nest): Distribute 3-level loop nest only if 15745 parloop is enabled. 15746 157472018-01-23 Martin Liska <mliska@suse.cz> 15748 15749 * predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in 15750 order to ignore the predictor. 15751 (PRED_POLYMORPHIC_CALL): Likewise. 15752 (PRED_RECURSIVE_CALL): Likewise. 15753 157542018-01-23 Martin Liska <mliska@suse.cz> 15755 15756 * tree-profile.c (tree_profiling): Print function header to 15757 aware reader which function we are working on. 15758 * value-prof.c (gimple_find_values_to_profile): Do not print 15759 not interesting value histograms. 15760 157612018-01-23 Martin Liska <mliska@suse.cz> 15762 15763 * profile-count.h (enum profile_quality): Add 15764 profile_uninitialized as the first value. Do not number values 15765 as they are zero based. 15766 (profile_count::verify): Update sanity check. 15767 (profile_probability::verify): Likewise. 15768 157692018-01-23 Nathan Sidwell <nathan@acm.org> 15770 15771 * doc/invoke.texi (ffor-scope): Deprecate. 15772 157732018-01-23 David Malcolm <dmalcolm@redhat.com> 15774 15775 PR tree-optimization/83510 15776 * domwalk.c (set_all_edges_as_executable): New function. 15777 (dom_walker::dom_walker): Convert bool param 15778 "skip_unreachable_blocks" to enum reachability. Move setup of 15779 edge flags to set_all_edges_as_executable and only do it when 15780 reachability is REACHABLE_BLOCKS. 15781 * domwalk.h (enum dom_walker::reachability): New enum. 15782 (dom_walker::dom_walker): Convert bool param 15783 "skip_unreachable_blocks" to enum reachability. 15784 (set_all_edges_as_executable): New decl. 15785 * graphite-scop-detection.c (gather_bbs::gather_bbs): Convert 15786 from false for "skip_unreachable_blocks" to ALL_BLOCKS for 15787 "reachability". 15788 * tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise, 15789 but converting true to REACHABLE_BLOCKS. 15790 * tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise. 15791 * tree-vrp.c 15792 (check_array_bounds_dom_walker::check_array_bounds_dom_walker): 15793 Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS. 15794 (vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to 15795 REACHABLE_BLOCKS. 15796 (vrp_prop::vrp_finalize): Call set_all_edges_as_executable 15797 if check_all_array_refs will be called. 15798 157992018-01-23 David Malcolm <dmalcolm@redhat.com> 15800 15801 * tree.c (selftest::test_location_wrappers): Add more test 15802 coverage. 15803 158042018-01-23 David Malcolm <dmalcolm@redhat.com> 15805 15806 * sbitmap.c (selftest::test_set_range): Fix memory leaks. 15807 (selftest::test_bit_in_range): Likewise. 15808 158092018-01-23 Richard Sandiford <richard.sandiford@linaro.org> 15810 15811 PR testsuite/83888 15812 * doc/sourcebuild.texi (vect_float): Say that the selector 15813 only describes the situation when -funsafe-math-optimizations is on. 15814 (vect_float_strict): Document. 15815 158162018-01-23 Richard Sandiford <richard.sandiford@linaro.org> 15817 15818 PR tree-optimization/83965 15819 * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. 15820 (vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it 15821 instead of checking only for a reduction. 15822 (vect_recog_widen_sum_pattern): Likewise. 15823 158242018-01-23 Jan Hubicka <hubicka@ucw.cz> 15825 15826 * predict.c (probably_never_executed): Only use precise profile info. 15827 (compute_function_frequency): Skip after inlining hack since we now 15828 have quality checking. 15829 158302018-01-23 Jan Hubicka <hubicka@ucw.cz> 15831 15832 * profile-count.h (profile_probability::very_unlikely, 15833 profile_probability::unlikely, profile_probability::even): Set 15834 precision to guessed. 15835 158362018-01-23 Richard Biener <rguenther@suse.de> 15837 15838 PR tree-optimization/83963 15839 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): 15840 Properly terminate dominator walk when crossing the exit edge not 15841 when visiting its source block. 15842 158432018-01-23 Jakub Jelinek <jakub@redhat.com> 15844 15845 PR c++/83918 15846 * tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than 15847 VIEW_CONVERT_EXPR to wrap CONST_DECLs. 15848 158492018-01-22 Jakub Jelinek <jakub@redhat.com> 15850 15851 PR tree-optimization/83957 15852 * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove 15853 semicolon after for body surrounded by braces. 15854 15855 PR tree-optimization/83081 15856 * profile-count.h (profile_probability::split): New method. 15857 * dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>: 15858 Use profile_probability::split. 15859 (do_compare_rtx_and_jump): Fix adjustment of probabilities 15860 when splitting a single conditional jump into 2. 15861 158622018-01-22 David Malcolm <dmalcolm@redhat.com> 15863 15864 PR tree-optimization/69452 15865 * tree-ssa-loop-im.c (class move_computations_dom_walker): Remove 15866 decl. 15867 158682018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15869 15870 * config/rl78/rl78-expand.md (bswaphi2): New define_expand. 15871 * config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn. 15872 * config/rl78/rl78-real.md (*bswaphi2_real): New define_insn. 15873 158742018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15875 15876 * config/rl78/rl78-protos.h (rl78_split_movdi): New function declaration. 15877 * config/rl78/rl78.md (movdi): New define_expand. 15878 * config/rl78/rl78.c (rl78_split_movdi): New function. 15879 158802018-01-22 Michael Meissner <meissner@linux.vnet.ibm.com> 15881 15882 PR target/83862 15883 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete, 15884 no longer used. 15885 * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise. 15886 * config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE 15887 128-bit to produce an UNSPEC move to get the double word with the 15888 signbit and then a shift directly to do signbit. 15889 (signbit<mode>2_dm): Replace old IEEE 128-bit signbit 15890 implementation with a new version that just does either a direct 15891 move or a regular move. Move memory interface to separate insns. 15892 Move insns so they are next to the expander. 15893 (signbit<mode>2_dm_mem_be): New combiner insns to combine load 15894 with signbit move. Split big and little endian case. 15895 (signbit<mode>2_dm_mem_le): Likewise. 15896 (signbit<mode>2_dm_<su>ext): Delete, no longer used. 15897 (signbit<mode>2_dm2): Likewise. 15898 158992018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15900 15901 * config/rl78/rl78.md (anddi3): New define_expand. 15902 159032018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15904 15905 * config/rl78/rl78.md (umindi3): New define_expand. 15906 159072018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15908 15909 * config/rl78/rl78.md (smindi3): New define_expand. 15910 159112018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15912 15913 * config/rl78/rl78.md (smaxdi3): New define_expand. 15914 159152018-01-22 Carl Love <cel@us.ibm.com> 15916 15917 * config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI, 15918 LVX_V1TI): Add macro expansion. 15919 * config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument 15920 definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST, 15921 VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins. 15922 * config/rs6000/rs6000-p8swap.c (insn_is_swappable_p); 15923 Change check to determine if the instruction is a byte reversing 15924 entry. Fix typo in comment. 15925 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry 15926 for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI. 15927 Add def_builtin calls for new builtins. 15928 * config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti): 15929 Add define_insn expansion. 15930 159312018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15932 15933 * config/rl78/rl78.md (umaxdi3): New define_expand. 15934 159352018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 15936 15937 * config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check 15938 for non-QImode registers. 15939 159402018-01-22 Richard Biener <rguenther@suse.de> 15941 15942 PR tree-optimization/83963 15943 * graphite-scop-detection.c (scop_detection::get_sese): Delay 15944 including the loop exit block. 15945 (scop_detection::merge_sese): Likewise. 15946 (scop_detection::add_scop): Do it here instead. 15947 159482018-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15949 15950 * doc/sourcebuild.texi (arm_softfloat): Document. 15951 159522018-01-21 John David Anglin <danglin@gcc.gnu.org> 15953 15954 PR gcc/77734 15955 * config/pa/pa.c (pa_function_ok_for_sibcall): Use 15956 targetm.binds_local_p instead of TREE_PUBLIC to check local binding. 15957 Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check. 15958 159592018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15960 David Edelsohn <dje.gcc@gmail.com> 15961 15962 PR target/83946 15963 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 15964 Change "crset eq" to "crset 2". 15965 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 15966 (*call_indirect_aix<mode>_nospec): Likewise. 15967 (*call_value_indirect_aix<mode>_nospec): Likewise. 15968 (*call_indirect_elfv2<mode>_nospec): Likewise. 15969 (*call_value_indirect_elfv2<mode>_nospec): Likewise. 15970 (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2"; 15971 change assembly output from . to $. 15972 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 15973 (indirect_jump<mode>_nospec): Change assembly output from . to $. 15974 (*tablejump<mode>_internal1_nospec): Likewise. 15975 159762018-01-21 Oleg Endo <olegendo@gcc.gnu.org> 15977 15978 PR target/80870 15979 * config/sh/sh_optimize_sett_clrt.cc: 15980 Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes. 15981 159822018-01-20 Richard Sandiford <richard.sandiford@linaro.org> 15983 15984 PR tree-optimization/83940 15985 * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set 15986 offset_dt to vect_constant_def rather than vect_unknown_def_type. 15987 (vect_check_load_store_mask): Add a mask_dt_out parameter and 15988 use it to pass back the definition type. 15989 (vect_check_store_rhs): Likewise rhs_dt_out. 15990 (vect_build_gather_load_calls): Add a mask_dt argument and use 15991 it instead of a call to vect_is_simple_use. 15992 (vectorizable_store): Update calls to vect_check_load_store_mask 15993 and vect_check_store_rhs. Use the dt returned by the latter instead 15994 of scatter_src_dt. Use the cached mask_dt and gs_info.offset_dt 15995 instead of calls to vect_is_simple_use. Pass the scalar rather 15996 than the vector operand to vect_is_simple_use when handling 15997 second and subsequent copies of an rhs value. 15998 (vectorizable_load): Update calls to vect_check_load_store_mask 15999 and vect_build_gather_load_calls. Use the cached mask_dt and 16000 gs_info.offset_dt instead of calls to vect_is_simple_use. 16001 160022018-01-20 Jakub Jelinek <jakub@redhat.com> 16003 16004 PR middle-end/83945 16005 * tree-emutls.c: Include gimplify.h. 16006 (lower_emutls_2): New function. 16007 (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree 16008 with lower_emutls_2 callback finds some TLS decl in it, unshare_expr 16009 it before further processing. 16010 16011 PR target/83930 16012 * simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use 16013 UINTVAL (trueop1) instead of INTVAL (op1). 16014 160152018-01-19 Jakub Jelinek <jakub@redhat.com> 16016 16017 PR debug/81570 16018 PR debug/83728 16019 * dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to 16020 INCOMING_FRAME_SP_OFFSET if not defined. 16021 (scan_trace): Add ENTRY argument. If true and 16022 DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET, 16023 emit a note to adjust the CFA offset. 16024 (create_cfi_notes): Adjust scan_trace callers. 16025 (create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than 16026 INCOMING_FRAME_SP_OFFSET in the CIE. 16027 * config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define. 16028 * config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): 16029 Likewise. 16030 * doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document. 16031 * doc/tm.texi: Regenerated. 16032 160332018-01-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 16034 16035 PR rtl-optimization/83147 16036 * lra-constraints.c (remove_inheritance_pseudos): Use 16037 lra_substitute_pseudo_within_insn. 16038 160392018-01-19 Tom de Vries <tom@codesourcery.com> 16040 Cesar Philippidis <cesar@codesourcery.com> 16041 16042 PR target/83920 16043 * config/nvptx/nvptx.c (nvptx_single): Fix jit workaround. 16044 160452018-01-19 Cesar Philippidis <cesar@codesourcery.com> 16046 16047 PR target/83790 16048 * config/nvptx/nvptx.c (output_init_frag): Don't use generic address 16049 spaces for function labels. 16050 160512018-01-19 Martin Liska <mliska@suse.cz> 16052 16053 * predict.def (PRED_LOOP_EXIT): Change from 85 to 89. 16054 (PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78. 16055 (PRED_LOOP_EXTRA_EXIT): Change from 83 to 67. 16056 (PRED_OPCODE_POSITIVE): Change from 64 to 59. 16057 (PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59. 16058 (PRED_CONST_RETURN): Change from 69 to 65. 16059 (PRED_NULL_RETURN): Change from 91 to 71. 16060 (PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64. 16061 (PRED_LOOP_GUARD): Change from 66 to 73. 16062 160632018-01-19 Martin Liska <mliska@suse.cz> 16064 16065 * predict.c (predict_insn_def): Add new assert. 16066 (struct branch_predictor): Change type to signed integer. 16067 (test_prediction_value_range): Amend test to cover 16068 PROB_UNINITIALIZED. 16069 * predict.def (PRED_LOOP_ITERATIONS): Use the new constant. 16070 (PRED_LOOP_ITERATIONS_GUESSED): Likewise. 16071 (PRED_LOOP_ITERATIONS_MAX): Likewise. 16072 (PRED_LOOP_IV_COMPARE): Likewise. 16073 * predict.h (PROB_UNINITIALIZED): Define new constant. 16074 160752018-01-19 Martin Liska <mliska@suse.cz> 16076 16077 * predict.c (dump_prediction): Add new format for 16078 analyze_brprob.py script which is enabled with -details 16079 suboption. 16080 * profile-count.h (precise_p): New function. 16081 160822018-01-19 Richard Sandiford <richard.sandiford@linaro.org> 16083 16084 PR tree-optimization/83922 16085 * tree-vect-loop.c (vect_verify_full_masking): Return false if 16086 there are no statements that need masking. 16087 (vect_active_double_reduction_p): New function. 16088 (vect_analyze_loop_operations): Use it when handling phis that 16089 are not in the loop header. 16090 160912018-01-19 Richard Sandiford <richard.sandiford@linaro.org> 16092 16093 PR tree-optimization/83914 16094 * tree-vect-loop.c (vectorizable_induction): Don't convert 16095 init_expr or apply the peeling adjustment for inductions 16096 that are nested within the vectorized loop. 16097 160982018-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 16099 16100 * config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic 16101 instead of NEG. 16102 161032018-01-18 Jakub Jelinek <jakub@redhat.com> 16104 16105 PR sanitizer/81715 16106 PR testsuite/83882 16107 * function.h (gimplify_parameters): Add gimple_seq * argument. 16108 * function.c: Include gimple.h and options.h. 16109 (gimplify_parameters): Add cleanup argument, add CLOBBER stmts 16110 for the added local temporaries if needed. 16111 * gimplify.c (gimplify_body): Adjust gimplify_parameters caller, 16112 if there are any parameter cleanups, wrap whole body into a 16113 try/finally with the cleanups. 16114 161152018-01-18 Wilco Dijkstra <wdijkstr@arm.com> 16116 16117 PR target/82964 16118 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): 16119 Use GET_MODE_CLASS for scalar floating point. 16120 161212018-01-18 Jan Hubicka <hubicka@ucw.cz> 16122 16123 PR ipa/82256 16124 patch by PaX Team 16125 * cgraphclones.c (cgraph_node::create_version_clone_with_body): 16126 Fix call of call_cgraph_insertion_hooks. 16127 161282018-01-18 Martin Sebor <msebor@redhat.com> 16129 16130 * doc/invoke.texi (-Wclass-memaccess): Tweak text. 16131 161322018-01-18 Jan Hubicka <hubicka@ucw.cz> 16133 16134 PR ipa/83619 16135 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge 16136 frequencies. 16137 161382018-01-18 Boris Kolpackov <boris@codesynthesis.com> 16139 16140 PR other/70268 16141 * common.opt: (-ffile-prefix-map): New option. 16142 * opts.c (common_handle_option): Defer it. 16143 * opts-global.c (handle_common_deferred_options): Handle it. 16144 * debug.h (remap_debug_filename, add_debug_prefix_map): Move to... 16145 * file-prefix-map.h: New file. 16146 (remap_debug_filename, add_debug_prefix_map): ...here. 16147 (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New. 16148 * final.c (debug_prefix_map, add_debug_prefix_map 16149 remap_debug_filename): Move to... 16150 * file-prefix-map.c: New file. 16151 (file_prefix_map, add_prefix_map, remap_filename) ...here and rename, 16152 generalize, get rid of alloca(), use strrchr() instead of strchr(). 16153 (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map): 16154 Implement in terms of add_prefix_map(). 16155 (remap_macro_filename, remap_debug_filename): Implement in term of 16156 remap_filename(). 16157 * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files. 16158 * builtins.c (fold_builtin_FILE): Call remap_macro_filename(). 16159 * dbxout.c: Include file-prefix-map.h. 16160 * varasm.c: Likewise. 16161 * vmsdbgout.c: Likewise. 16162 * xcoffout.c: Likewise. 16163 * dwarf2out.c: Likewise plus omit new options from DW_AT_producer. 16164 * doc/cppopts.texi (-fmacro-prefix-map): Document. 16165 * doc/invoke.texi (-ffile-prefix-map): Document. 16166 (-fdebug-prefix-map): Update description. 16167 161682018-01-18 Martin Liska <mliska@suse.cz> 16169 16170 * config/i386/i386.c (indirect_thunk_name): Document that also 16171 lfence is emitted. 16172 (output_indirect_thunk): Document why both instructions 16173 (pause and lfence) are generated. 16174 161752018-01-18 Richard Biener <rguenther@suse.de> 16176 16177 PR tree-optimization/83887 16178 * graphite-scop-detection.c 16179 (scop_detection::get_nearest_dom_with_single_entry): Remove. 16180 (scop_detection::get_nearest_pdom_with_single_exit): Likewise. 16181 (scop_detection::merge_sese): Re-implement with a flood-fill 16182 algorithm that properly finds a SESE region if it exists. 16183 161842018-01-18 Jakub Jelinek <jakub@redhat.com> 16185 16186 PR c/61240 16187 * match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For 16188 pointer_diff optimizations use view_convert instead of convert. 16189 161902018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 16191 16192 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 16193 Generate different code for -mno-speculate-indirect-jumps. 16194 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 16195 (*call_indirect_aix<mode>): Disable for 16196 -mno-speculate-indirect-jumps. 16197 (*call_indirect_aix<mode>_nospec): New define_insn. 16198 (*call_value_indirect_aix<mode>): Disable for 16199 -mno-speculate-indirect-jumps. 16200 (*call_value_indirect_aix<mode>_nospec): New define_insn. 16201 (*sibcall_nonlocal_sysv<mode>): Generate different code for 16202 -mno-speculate-indirect-jumps. 16203 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 16204 162052018-01-17 Michael Meissner <meissner@linux.vnet.ibm.com> 16206 16207 * config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a 16208 long double type, set the flags for noting the default long double 16209 type, even if we don't pass or return a long double type. 16210 162112018-01-17 Jan Hubicka <hubicka@ucw.cz> 16212 16213 PR ipa/83051 16214 * ipa-inline.c (flatten_function): Do not overwrite final inlining 16215 failure. 16216 162172018-01-17 Will Schmidt <will_schmidt@vnet.ibm.com> 16218 16219 * config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding 16220 support for merge[hl]. 16221 (fold_mergehl_helper): New helper function. 16222 (tree-vector-builder.h): New #include for tree_vector_builder usage. 16223 * config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn. 16224 (altivec_vmrglw_direct): Add xxmrglw insn. 16225 162262018-01-17 Andrew Waterman <andrew@sifive.com> 16227 16228 * config/riscv/riscv.c (riscv_conditional_register_usage): If 16229 UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs. 16230 162312018-01-17 David Malcolm <dmalcolm@redhat.com> 16232 16233 PR lto/83121 16234 * ipa-devirt.c (add_type_duplicate): When comparing memory layout, 16235 call the lto_location_cache before reading the 16236 DECL_SOURCE_LOCATION of the types. 16237 162382018-01-17 Wilco Dijkstra <wdijkstr@arm.com> 16239 Richard Sandiford <richard.sandiford@linaro.org> 16240 16241 * config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint. 16242 * config/aarch64/aarch64.c (aarch64_mov128_immediate): New function. 16243 (aarch64_legitimate_constant_p): Just support CONST_DOUBLE 16244 SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates. 16245 * config/aarch64/aarch64-protos.h (aarch64_mov128_immediate): 16246 Add declaration. 16247 * config/aarch64/constraints.md (aarch64_movti_operand): 16248 Limit immediates. 16249 * config/aarch64/predicates.md (Uti): Add new constraint. 16250 162512018-01-17 Carl Love <cel@us.ibm.com> 16252 16253 * config/rs6000/vsx.md (define_expand xl_len_r, 16254 define_expand stxvl, define_expand *stxvl): Add match_dup argument. 16255 (define_insn): Add, match_dup 1 argument to define_insn stxvll and 16256 lxvll. 16257 (define_expand, define_insn): Move the shift left from the 16258 define_insn to the define_expand for lxvl and stxvl instructions. 16259 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL 16260 and XL_LEN_R definitions to PURE. 16261 162622018-01-17 Uros Bizjak <ubizjak@gmail.com> 16263 16264 * config/i386/i386.c (indirect_thunk_name): Declare regno 16265 as unsigned int. Compare regno with INVALID_REGNUM. 16266 (output_indirect_thunk): Ditto. 16267 (output_indirect_thunk_function): Ditto. 16268 (ix86_code_end): Declare regno as unsigned int. Use INVALID_REGNUM 16269 in the call to output_indirect_thunk_function. 16270 162712018-01-17 Richard Sandiford <richard.sandiford@linaro.org> 16272 16273 PR middle-end/83884 16274 * expr.c (expand_expr_real_1): Use the size of GET_MODE (op0) 16275 rather than the size of inner_type to determine the stack slot size 16276 when handling VIEW_CONVERT_EXPRs on strict-alignment targets. 16277 162782018-01-16 Sebastian Peryt <sebastian.peryt@intel.com> 16279 16280 PR target/83546 16281 * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND 16282 to PTA_SILVERMONT. 16283 162842018-01-16 Michael Meissner <meissner@linux.vnet.ibm.com> 16285 16286 * config.gcc (powerpc*-linux*-*): Add support for 64-bit little 16287 endian Linux systems to optionally enable multilibs for selecting 16288 the long double type if the user configured an explicit type. 16289 * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we 16290 have no long double multilibs if not defined. 16291 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not 16292 warn if the user used -mabi={ieee,ibm}longdouble and we built 16293 multilibs for long double. 16294 * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the 16295 appropriate multilib option. 16296 (MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default 16297 multilib options. 16298 * config/rs6000/t-ldouble-linux64le-ibm: New configuration files 16299 for building long double multilibs. 16300 * config/rs6000/t-ldouble-linux64le-ieee: Likewise. 16301 163022018-01-16 John David Anglin <danglin@gcc.gnu.org> 16303 16304 * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller 16305 copies. 16306 16307 * config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to 16308 64 bits. 16309 * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to 16310 128 bits. 16311 16312 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode 16313 variables. 16314 16315 * config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE 16316 return value. 16317 163182018-01-16 Eric Botcazou <ebotcazou@adacore.com> 16319 16320 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an 16321 ADDR_EXPR, do not count the offset of a COMPONENT_REF twice. 16322 163232018-01-16 Kelvin Nilsen <kelvin@gcc.gnu.org> 16324 16325 * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate 16326 different rtl trees depending on TARGET_64BIT. 16327 (rs6000_gen_lvx): Likewise. 16328 163292018-01-16 Eric Botcazou <ebotcazou@adacore.com> 16330 16331 * config/visium/visium.md (nop): Tweak comment. 16332 (hazard_nop): Likewise. 16333 163342018-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 16335 16336 * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for 16337 -mspeculate-indirect-jumps. 16338 * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable 16339 for -mno-speculate-indirect-jumps. 16340 (*call_indirect_elfv2<mode>_nospec): New define_insn. 16341 (*call_value_indirect_elfv2<mode>): Disable for 16342 -mno-speculate-indirect-jumps. 16343 (*call_value_indirect_elfv2<mode>_nospec): New define_insn. 16344 (indirect_jump): Emit different RTL for 16345 -mno-speculate-indirect-jumps. 16346 (*indirect_jump<mode>): Disable for 16347 -mno-speculate-indirect-jumps. 16348 (*indirect_jump<mode>_nospec): New define_insn. 16349 (tablejump): Emit different RTL for 16350 -mno-speculate-indirect-jumps. 16351 (tablejumpsi): Disable for -mno-speculate-indirect-jumps. 16352 (tablejumpsi_nospec): New define_expand. 16353 (tablejumpdi): Disable for -mno-speculate-indirect-jumps. 16354 (tablejumpdi_nospec): New define_expand. 16355 (*tablejump<mode>_internal1): Disable for 16356 -mno-speculate-indirect-jumps. 16357 (*tablejump<mode>_internal1_nospec): New define_insn. 16358 * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New 16359 option. 16360 163612018-01-16 Artyom Skrobov tyomitch@gmail.com 16362 16363 * caller-save.c (insert_save): Drop unnecessary parameter. All 16364 callers updated. 16365 163662018-01-16 Jakub Jelinek <jakub@redhat.com> 16367 Richard Biener <rguenth@suse.de> 16368 16369 PR libgomp/83590 16370 * gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr) 16371 return early, inline manually is_gimple_sizepos. Make sure if we 16372 call gimplify_expr we don't end up with a gimple constant. 16373 * tree.c (variably_modified_type_p): Don't return true for 16374 is_gimple_constant (_t). Inline manually is_gimple_sizepos. 16375 * gimplify.h (is_gimple_sizepos): Remove. 16376 163772018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 16378 16379 PR tree-optimization/83857 16380 * tree-vect-loop.c (vect_analyze_loop_operations): Don't call 16381 vectorizable_live_operation for pure SLP statements. 16382 (vectorizable_live_operation): Handle PHIs. 16383 163842018-01-16 Richard Biener <rguenther@suse.de> 16385 16386 PR tree-optimization/83867 16387 * tree-vect-stmts.c (vect_transform_stmt): Precompute 16388 nested_in_vect_loop_p since the scalar stmt may get invalidated. 16389 163902018-01-16 Jakub Jelinek <jakub@redhat.com> 16391 16392 PR c/83844 16393 * stor-layout.c (handle_warn_if_not_align): Use byte_position and 16394 multiple_of_p instead of unchecked tree_to_uhwi and UHWI check. 16395 If off is not INTEGER_CST, issue a may not be aligned warning 16396 rather than isn't aligned. Use isn%'t rather than isn't. 16397 * fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through 16398 into MULT_EXPR. 16399 <case MULT_EXPR>: Improve the case when bottom and one of the 16400 MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that 16401 operand, in that case check if the other operand is multiple of 16402 bottom divided by the INTEGER_CST operand. 16403 164042018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 16405 16406 PR target/83858 16407 * config/pa/pa.h (FUNCTION_ARG_SIZE): Delete. 16408 * config/pa/pa-protos.h (pa_function_arg_size): Declare. 16409 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use 16410 pa_function_arg_size instead of FUNCTION_ARG_SIZE. 16411 * config/pa/pa.c (pa_function_arg_advance): Likewise. 16412 (pa_function_arg, pa_arg_partial_bytes): Likewise. 16413 (pa_function_arg_size): New function. 16414 164152018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 16416 16417 * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices 16418 in a separate statement. 16419 164202018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 16421 16422 PR tree-optimization/83847 16423 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't 16424 group gathers and scatters. 16425 164262018-01-16 Jakub Jelinek <jakub@redhat.com> 16427 16428 PR rtl-optimization/86620 16429 * params.def (max-sched-ready-insns): Bump minimum value to 1. 16430 16431 PR rtl-optimization/83213 16432 * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn 16433 to last if both are JUMP_INSNs. 16434 16435 PR tree-optimization/83843 16436 * gimple-ssa-store-merging.c 16437 (imm_store_chain_info::output_merged_store): Handle bit_not_p on 16438 store_immediate_info for bswap/nop orig_stores. 16439 164402018-01-15 Andrew Waterman <andrew@sifive.com> 16441 16442 * config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if 16443 !TARGET_MUL. 16444 <UDIV>: Increase cost if !TARGET_DIV. 16445 164462018-01-15 Segher Boessenkool <segher@kernel.crashing.org> 16447 16448 * config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr. 16449 (define_attr "cr_logical_3op"): New. 16450 (cceq_ior_compare): Adjust. 16451 (cceq_ior_compare_complement): Adjust. 16452 (*cceq_rev_compare): Adjust. 16453 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust. 16454 (is_cracked_insn): Adjust. 16455 (insn_must_be_first_in_group): Adjust. 16456 * config/rs6000/40x.md: Adjust. 16457 * config/rs6000/440.md: Adjust. 16458 * config/rs6000/476.md: Adjust. 16459 * config/rs6000/601.md: Adjust. 16460 * config/rs6000/603.md: Adjust. 16461 * config/rs6000/6xx.md: Adjust. 16462 * config/rs6000/7450.md: Adjust. 16463 * config/rs6000/7xx.md: Adjust. 16464 * config/rs6000/8540.md: Adjust. 16465 * config/rs6000/cell.md: Adjust. 16466 * config/rs6000/e300c2c3.md: Adjust. 16467 * config/rs6000/e500mc.md: Adjust. 16468 * config/rs6000/e500mc64.md: Adjust. 16469 * config/rs6000/e5500.md: Adjust. 16470 * config/rs6000/e6500.md: Adjust. 16471 * config/rs6000/mpc.md: Adjust. 16472 * config/rs6000/power4.md: Adjust. 16473 * config/rs6000/power5.md: Adjust. 16474 * config/rs6000/power6.md: Adjust. 16475 * config/rs6000/power7.md: Adjust. 16476 * config/rs6000/power8.md: Adjust. 16477 * config/rs6000/power9.md: Adjust. 16478 * config/rs6000/rs64.md: Adjust. 16479 * config/rs6000/titan.md: Adjust. 16480 164812018-01-15 H.J. Lu <hongjiu.lu@intel.com> 16482 16483 * config/i386/predicates.md (indirect_branch_operand): Rewrite 16484 ix86_indirect_branch_register logic. 16485 164862018-01-15 H.J. Lu <hongjiu.lu@intel.com> 16487 16488 * config/i386/constraints.md (Bs): Update 16489 ix86_indirect_branch_register check. Don't check 16490 ix86_indirect_branch_register with GOT_memory_operand. 16491 (Bw): Likewise. 16492 * config/i386/predicates.md (GOT_memory_operand): Don't check 16493 ix86_indirect_branch_register here. 16494 (GOT32_symbol_operand): Likewise. 16495 164962018-01-15 H.J. Lu <hongjiu.lu@intel.com> 16497 16498 * config/i386/predicates.md (constant_call_address_operand): 16499 Rewrite ix86_indirect_branch_register logic. 16500 (sibcall_insn_operand): Likewise. 16501 165022018-01-15 H.J. Lu <hongjiu.lu@intel.com> 16503 16504 * config/i386/constraints.md (Bs): Replace 16505 ix86_indirect_branch_thunk_register with 16506 ix86_indirect_branch_register. 16507 (Bw): Likewise. 16508 * config/i386/i386.md (indirect_jump): Likewise. 16509 (tablejump): Likewise. 16510 (*sibcall_memory): Likewise. 16511 (*sibcall_value_memory): Likewise. 16512 Peepholes of indirect call and jump via memory: Likewise. 16513 * config/i386/i386.opt: Likewise. 16514 * config/i386/predicates.md (indirect_branch_operand): Likewise. 16515 (GOT_memory_operand): Likewise. 16516 (call_insn_operand): Likewise. 16517 (sibcall_insn_operand): Likewise. 16518 (GOT32_symbol_operand): Likewise. 16519 165202018-01-15 Jakub Jelinek <jakub@redhat.com> 16521 16522 PR middle-end/83837 16523 * omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val 16524 type rather than type addr's type points to. 16525 (expand_omp_atomic_mutex): Likewise. 16526 (expand_omp_atomic): Likewise. 16527 165282018-01-15 H.J. Lu <hongjiu.lu@intel.com> 16529 16530 PR target/83839 16531 * config/i386/i386.c (output_indirect_thunk_function): Use 16532 ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO 16533 for __x86_return_thunk. 16534 165352018-01-15 Richard Biener <rguenther@suse.de> 16536 16537 PR middle-end/83850 16538 * expmed.c (extract_bit_field_1): Fix typo. 16539 165402018-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 16541 16542 PR target/83687 16543 * config/arm/iterators.md (VF): New mode iterator. 16544 * config/arm/neon.md (neon_vabd<mode>_2): Use the above. 16545 Remove integer-related logic from pattern. 16546 (neon_vabd<mode>_3): Likewise. 16547 165482018-01-15 Jakub Jelinek <jakub@redhat.com> 16549 16550 PR middle-end/82694 16551 * common.opt (fstrict-overflow): No longer an alias. 16552 (fwrapv-pointer): New option. 16553 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define 16554 also for pointer types based on flag_wrapv_pointer. 16555 * opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set 16556 opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if 16557 opts->x_flag_wrapv got set. 16558 * fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01 16559 changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of 16560 POINTER_TYPE_OVERFLOW_UNDEFINED. 16561 * match.pd: Likewise in address comparison pattern. 16562 * doc/invoke.texi: Document -fwrapv and -fstrict-overflow. 16563 165642018-01-15 Richard Biener <rguenther@suse.de> 16565 16566 PR lto/83804 16567 * tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs 16568 from TYPE_FIELDS. Free TYPE_BINFO if not used by devirtualization. 16569 Reset type names to their identifier if their TYPE_DECL doesn't 16570 have linkage (and thus is used for ODR and devirt). 16571 (save_debug_info_for_decl): Remove. 16572 (save_debug_info_for_type): Likewise. 16573 (add_tree_to_fld_list): Adjust. 16574 * tree-pretty-print.c (dump_generic_node): Make dumping of 16575 type names more robust. 16576 165772018-01-15 Richard Biener <rguenther@suse.de> 16578 16579 * BASE-VER: Bump to 8.0.1. 16580 165812018-01-14 Martin Sebor <msebor@redhat.com> 16582 16583 PR other/83508 16584 * builtins.c (check_access): Avoid warning when the no-warning bit 16585 is set. 16586 165872018-01-14 Cory Fields <cory-nospam-@coryfields.com> 16588 16589 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort. 16590 * ira-color (allocno_hard_regs_compare): Likewise. 16591 165922018-01-14 Nathan Rossi <nathan@nathanrossi.com> 16593 16594 PR target/83013 16595 * config/microblaze/microblaze.c (microblaze_asm_output_ident): 16596 Use .pushsection/.popsection. 16597 165982018-01-14 Martin Sebor <msebor@redhat.com> 16599 16600 PR c++/81327 16601 * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting. 16602 166032018-01-14 Jakub Jelinek <jakub@redhat.com> 16604 16605 * config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h 16606 entry from extra_headers. 16607 (x86_64-*-*): Remove two duplicate gfniintrin.h entries from 16608 extra_headers, make the list bitwise identical to the i?86-*-* one. 16609 166102018-01-14 H.J. Lu <hongjiu.lu@intel.com> 16611 16612 * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow 16613 -mcmodel=large with -mindirect-branch=thunk, 16614 -mindirect-branch=thunk-extern, -mfunction-return=thunk and 16615 -mfunction-return=thunk-extern. 16616 * doc/invoke.texi: Document -mcmodel=large is incompatible with 16617 -mindirect-branch=thunk, -mindirect-branch=thunk-extern, 16618 -mfunction-return=thunk and -mfunction-return=thunk-extern. 16619 166202018-01-14 H.J. Lu <hongjiu.lu@intel.com> 16621 16622 * config/i386/i386.c (print_reg): Print the name of the full 16623 integer register without '%'. 16624 (ix86_print_operand): Handle 'V'. 16625 * doc/extend.texi: Document 'V' modifier. 16626 166272018-01-14 H.J. Lu <hongjiu.lu@intel.com> 16628 16629 * config/i386/constraints.md (Bs): Disallow memory operand for 16630 -mindirect-branch-register. 16631 (Bw): Likewise. 16632 * config/i386/predicates.md (indirect_branch_operand): Likewise. 16633 (GOT_memory_operand): Likewise. 16634 (call_insn_operand): Likewise. 16635 (sibcall_insn_operand): Likewise. 16636 (GOT32_symbol_operand): Likewise. 16637 * config/i386/i386.md (indirect_jump): Call convert_memory_address 16638 for -mindirect-branch-register. 16639 (tablejump): Likewise. 16640 (*sibcall_memory): Likewise. 16641 (*sibcall_value_memory): Likewise. 16642 Disallow peepholes of indirect call and jump via memory for 16643 -mindirect-branch-register. 16644 (*call_pop): Replace m with Bw. 16645 (*call_value_pop): Likewise. 16646 (*sibcall_pop_memory): Replace m with Bs. 16647 * config/i386/i386.opt (mindirect-branch-register): New option. 16648 * doc/invoke.texi: Document -mindirect-branch-register option. 16649 166502018-01-14 H.J. Lu <hongjiu.lu@intel.com> 16651 16652 * config/i386/i386-protos.h (ix86_output_function_return): New. 16653 * config/i386/i386.c (ix86_set_indirect_branch_type): Also 16654 set function_return_type. 16655 (indirect_thunk_name): Add ret_p to indicate thunk for function 16656 return. 16657 (output_indirect_thunk_function): Pass false to 16658 indirect_thunk_name. 16659 (ix86_output_indirect_branch_via_reg): Likewise. 16660 (ix86_output_indirect_branch_via_push): Likewise. 16661 (output_indirect_thunk_function): Create alias for function 16662 return thunk if regno < 0. 16663 (ix86_output_function_return): New function. 16664 (ix86_handle_fndecl_attribute): Handle function_return. 16665 (ix86_attribute_table): Add function_return. 16666 * config/i386/i386.h (machine_function): Add 16667 function_return_type. 16668 * config/i386/i386.md (simple_return_internal): Use 16669 ix86_output_function_return. 16670 (simple_return_internal_long): Likewise. 16671 * config/i386/i386.opt (mfunction-return=): New option. 16672 (indirect_branch): Mention -mfunction-return=. 16673 * doc/extend.texi: Document function_return function attribute. 16674 * doc/invoke.texi: Document -mfunction-return= option. 16675 166762018-01-14 H.J. Lu <hongjiu.lu@intel.com> 16677 16678 * config/i386/i386-opts.h (indirect_branch): New. 16679 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise. 16680 * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone 16681 with local indirect jump when converting indirect call and jump. 16682 (ix86_set_indirect_branch_type): New. 16683 (ix86_set_current_function): Call ix86_set_indirect_branch_type. 16684 (indirectlabelno): New. 16685 (indirect_thunk_needed): Likewise. 16686 (indirect_thunk_bnd_needed): Likewise. 16687 (indirect_thunks_used): Likewise. 16688 (indirect_thunks_bnd_used): Likewise. 16689 (INDIRECT_LABEL): Likewise. 16690 (indirect_thunk_name): Likewise. 16691 (output_indirect_thunk): Likewise. 16692 (output_indirect_thunk_function): Likewise. 16693 (ix86_output_indirect_branch_via_reg): Likewise. 16694 (ix86_output_indirect_branch_via_push): Likewise. 16695 (ix86_output_indirect_branch): Likewise. 16696 (ix86_output_indirect_jmp): Likewise. 16697 (ix86_code_end): Call output_indirect_thunk_function if needed. 16698 (ix86_output_call_insn): Call ix86_output_indirect_branch if 16699 needed. 16700 (ix86_handle_fndecl_attribute): Handle indirect_branch. 16701 (ix86_attribute_table): Add indirect_branch. 16702 * config/i386/i386.h (machine_function): Add indirect_branch_type 16703 and has_local_indirect_jump. 16704 * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump 16705 to true. 16706 (tablejump): Likewise. 16707 (*indirect_jump): Use ix86_output_indirect_jmp. 16708 (*tablejump_1): Likewise. 16709 (simple_return_indirect_internal): Likewise. 16710 * config/i386/i386.opt (mindirect-branch=): New option. 16711 (indirect_branch): New. 16712 (keep): Likewise. 16713 (thunk): Likewise. 16714 (thunk-inline): Likewise. 16715 (thunk-extern): Likewise. 16716 * doc/extend.texi: Document indirect_branch function attribute. 16717 * doc/invoke.texi: Document -mindirect-branch= option. 16718 167192018-01-14 Jan Hubicka <hubicka@ucw.cz> 16720 16721 PR ipa/83051 16722 * ipa-inline.c (edge_badness): Tolerate roundoff errors. 16723 167242018-01-14 Richard Sandiford <richard.sandiford@linaro.org> 16725 16726 * ipa-inline.c (want_inline_small_function_p): Return false if 16727 inlining has already failed with CIF_FINAL_ERROR. 16728 (update_caller_keys): Call want_inline_small_function_p before 16729 can_inline_edge_p. 16730 (update_callee_keys): Likewise. 16731 167322018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 16733 16734 * config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p): 16735 New function. 16736 (rs6000_quadword_masked_address_p): Likewise. 16737 (quad_aligned_load_p): Likewise. 16738 (quad_aligned_store_p): Likewise. 16739 (const_load_sequence_p): Add comment to describe the outer-most loop. 16740 (mimic_memory_attributes_and_flags): New function. 16741 (rs6000_gen_stvx): Likewise. 16742 (replace_swapped_aligned_store): Likewise. 16743 (rs6000_gen_lvx): Likewise. 16744 (replace_swapped_aligned_load): Likewise. 16745 (replace_swapped_load_constant): Capitalize argument name in 16746 comment describing this function. 16747 (rs6000_analyze_swaps): Add a third pass to search for vector loads 16748 and stores that access quad-word aligned addresses and replace 16749 with stvx or lvx instructions when appropriate. 16750 * config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p): 16751 New function prototype. 16752 (rs6000_quadword_masked_address_p): Likewise. 16753 (rs6000_gen_lvx): Likewise. 16754 (rs6000_gen_stvx): Likewise. 16755 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes 16756 VSX_D (V2DF, V2DI), modify this split to select lvx instruction 16757 when memory address is aligned. 16758 (*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify 16759 this split to select lvx instruction when memory address is aligned. 16760 (*vsx_le_perm_load_v8hi): Modify this split to select lvx 16761 instruction when memory address is aligned. 16762 (*vsx_le_perm_load_v16qi): Likewise. 16763 (four unnamed splitters): Modify to select the stvx instruction 16764 when memory is aligned. 16765 167662018-01-13 Jan Hubicka <hubicka@ucw.cz> 16767 16768 * predict.c (determine_unlikely_bbs): Handle correctly BBs 16769 which appears in the queue multiple times. 16770 167712018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 16772 Alan Hayward <alan.hayward@arm.com> 16773 David Sherwood <david.sherwood@arm.com> 16774 16775 * tree-vectorizer.h (vec_lower_bound): New structure. 16776 (_loop_vec_info): Add check_nonzero and lower_bounds. 16777 (LOOP_VINFO_CHECK_NONZERO): New macro. 16778 (LOOP_VINFO_LOWER_BOUNDS): Likewise. 16779 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too. 16780 * tree-data-ref.h (dr_with_seg_len): Add access_size and align 16781 fields. Make seg_len the distance travelled, not including the 16782 access size. 16783 (dr_direction_indicator): Declare. 16784 (dr_zero_step_indicator): Likewise. 16785 (dr_known_forward_stride_p): Likewise. 16786 * tree-data-ref.c: Include stringpool.h, tree-vrp.h and 16787 tree-ssanames.h. 16788 (runtime_alias_check_p): Allow runtime alias checks with 16789 variable strides. 16790 (operator ==): Compare access_size and align. 16791 (prune_runtime_alias_test_list): Rework for new distinction between 16792 the access_size and seg_len. 16793 (create_intersect_range_checks_index): Likewise. Cope with polynomial 16794 segment lengths. 16795 (get_segment_min_max): New function. 16796 (create_intersect_range_checks): Use it. 16797 (dr_step_indicator): New function. 16798 (dr_direction_indicator): Likewise. 16799 (dr_zero_step_indicator): Likewise. 16800 (dr_known_forward_stride_p): Likewise. 16801 * tree-loop-distribution.c (data_ref_segment_size): Return 16802 DR_STEP * (niters - 1). 16803 (compute_alias_check_pairs): Update call to the dr_with_seg_len 16804 constructor. 16805 * tree-vect-data-refs.c (vect_check_nonzero_value): New function. 16806 (vect_preserves_scalar_order_p): New function, split out from... 16807 (vect_analyze_data_ref_dependence): ...here. Check for zero steps. 16808 (vect_vfa_segment_size): Return DR_STEP * (length_factor - 1). 16809 (vect_vfa_access_size): New function. 16810 (vect_vfa_align): Likewise. 16811 (vect_compile_time_alias): Take access_size_a and access_b arguments. 16812 (dump_lower_bound): New function. 16813 (vect_check_lower_bound): Likewise. 16814 (vect_small_gap_p): Likewise. 16815 (vectorizable_with_step_bound_p): Likewise. 16816 (vect_prune_runtime_alias_test_list): Ignore cross-iteration 16817 depencies if the vectorization factor is 1. Convert the checks 16818 for nonzero steps into checks on the bounds of DR_STEP. Try using 16819 a bunds check for variable steps if the minimum required step is 16820 relatively small. Update calls to the dr_with_seg_len 16821 constructor and to vect_compile_time_alias. 16822 * tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New 16823 function. 16824 (vect_loop_versioning): Call it. 16825 * tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS 16826 when retrying. 16827 (vect_estimate_min_profitable_iters): Account for any bounds checks. 16828 168292018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 16830 Alan Hayward <alan.hayward@arm.com> 16831 David Sherwood <david.sherwood@arm.com> 16832 16833 * doc/sourcebuild.texi (vect_scatter_store): Document. 16834 * optabs.def (scatter_store_optab, mask_scatter_store_optab): New 16835 optabs. 16836 * doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}): 16837 Document. 16838 * genopinit.c (main): Add supports_vec_scatter_store and 16839 supports_vec_scatter_store_cached to target_optabs. 16840 * gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and 16841 IFN_MASK_SCATTER_STORE. 16842 * internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal 16843 functions. 16844 * internal-fn.h (internal_store_fn_p): Declare. 16845 (internal_fn_stored_value_index): Likewise. 16846 * internal-fn.c (scatter_store_direct): New macro. 16847 (expand_scatter_store_optab_fn): New function. 16848 (direct_scatter_store_optab_supported_p): New macro. 16849 (internal_store_fn_p): New function. 16850 (internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and 16851 IFN_MASK_SCATTER_STORE. 16852 (internal_fn_mask_index): Likewise. 16853 (internal_fn_stored_value_index): New function. 16854 (internal_gather_scatter_fn_supported_p): Adjust operand numbers 16855 for scatter stores. 16856 * optabs-query.h (supports_vec_scatter_store_p): Declare. 16857 * optabs-query.c (supports_vec_scatter_store_p): New function. 16858 * tree-vectorizer.h (vect_get_store_rhs): Declare. 16859 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Return 16860 true for scatter stores. 16861 (vect_gather_scatter_fn_p): Handle scatter stores too. 16862 (vect_check_gather_scatter): Consider using scatter stores if 16863 supports_vec_scatter_store_p. 16864 * tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle 16865 scatter stores too. 16866 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use 16867 internal_fn_stored_value_index. 16868 (check_load_store_masking): Handle scatter stores too. 16869 (vect_get_store_rhs): Make public. 16870 (vectorizable_call): Use internal_store_fn_p. 16871 (vectorizable_store): Handle scatter store internal functions. 16872 (vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE 16873 when deciding whether the end of the group has been reached. 16874 * config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec. 16875 * config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander. 16876 (mask_scatter_store<mode>): New insns. 16877 168782018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 16879 Alan Hayward <alan.hayward@arm.com> 16880 David Sherwood <david.sherwood@arm.com> 16881 16882 * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare. 16883 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public. 16884 * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New 16885 function. 16886 (vect_use_strided_gather_scatters_p): Take a masked_p argument. 16887 Use vect_truncate_gather_scatter_offset if we can't treat the 16888 operation as a normal gather load or scatter store. 16889 (get_group_load_store_type): Take the gather_scatter_info 16890 as argument. Try using a gather load or scatter store for 16891 single-element groups. 16892 (get_load_store_type): Update calls to get_group_load_store_type 16893 and vect_use_strided_gather_scatters_p. 16894 168952018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 16896 Alan Hayward <alan.hayward@arm.com> 16897 David Sherwood <david.sherwood@arm.com> 16898 16899 * tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra 16900 optional tree argument. 16901 * tree-vect-data-refs.c (vect_check_gather_scatter): Check for 16902 null target hooks. 16903 (vect_create_data_ref_ptr): Take the iv_step as an optional argument, 16904 but continue to use the current value as a fallback. 16905 (bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare 16906 to compare the updates. 16907 * tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function. 16908 (get_load_store_type): Use it when handling a strided access. 16909 (vect_get_strided_load_store_ops): New function. 16910 (vect_get_data_ptr_increment): Likewise. 16911 (vectorizable_load): Handle strided gather loads. Always pass 16912 a step to vect_create_data_ref_ptr and bump_vector_ptr. 16913 169142018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 16915 Alan Hayward <alan.hayward@arm.com> 16916 David Sherwood <david.sherwood@arm.com> 16917 16918 * doc/md.texi (gather_load@var{m}): Document. 16919 (mask_gather_load@var{m}): Likewise. 16920 * genopinit.c (main): Add supports_vec_gather_load and 16921 supports_vec_gather_load_cached to target_optabs. 16922 * optabs-tree.c (init_tree_optimization_optabs): Use 16923 ggc_cleared_alloc to allocate target_optabs. 16924 * optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs. 16925 * internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal 16926 functions. 16927 * internal-fn.h (internal_load_fn_p): Declare. 16928 (internal_gather_scatter_fn_p): Likewise. 16929 (internal_fn_mask_index): Likewise. 16930 (internal_gather_scatter_fn_supported_p): Likewise. 16931 * internal-fn.c (gather_load_direct): New macro. 16932 (expand_gather_load_optab_fn): New function. 16933 (direct_gather_load_optab_supported_p): New macro. 16934 (direct_internal_fn_optab): New function. 16935 (internal_load_fn_p): Likewise. 16936 (internal_gather_scatter_fn_p): Likewise. 16937 (internal_fn_mask_index): Likewise. 16938 (internal_gather_scatter_fn_supported_p): Likewise. 16939 * optabs-query.c (supports_at_least_one_mode_p): New function. 16940 (supports_vec_gather_load_p): Likewise. 16941 * optabs-query.h (supports_vec_gather_load_p): Declare. 16942 * tree-vectorizer.h (gather_scatter_info): Add ifn, element_type 16943 and memory_type field. 16944 (NUM_PATTERNS): Bump to 15. 16945 * tree-vect-data-refs.c: Include internal-fn.h. 16946 (vect_gather_scatter_fn_p): New function. 16947 (vect_describe_gather_scatter_call): Likewise. 16948 (vect_check_gather_scatter): Try using internal functions for 16949 gather loads. Recognize existing calls to a gather load function. 16950 (vect_analyze_data_refs): Consider using gather loads if 16951 supports_vec_gather_load_p. 16952 * tree-vect-patterns.c (vect_get_load_store_mask): New function. 16953 (vect_get_gather_scatter_offset_type): Likewise. 16954 (vect_convert_mask_for_vectype): Likewise. 16955 (vect_add_conversion_to_patterm): Likewise. 16956 (vect_try_gather_scatter_pattern): Likewise. 16957 (vect_recog_gather_scatter_pattern): New pattern recognizer. 16958 (vect_vect_recog_func_ptrs): Add it. 16959 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use 16960 internal_fn_mask_index and internal_gather_scatter_fn_p. 16961 (check_load_store_masking): Take the gather_scatter_info as an 16962 argument and handle gather loads. 16963 (vect_get_gather_scatter_ops): New function. 16964 (vectorizable_call): Check internal_load_fn_p. 16965 (vectorizable_load): Likewise. Handle gather load internal 16966 functions. 16967 (vectorizable_store): Update call to check_load_store_masking. 16968 * config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec. 16969 * config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators. 16970 * config/aarch64/predicates.md (aarch64_gather_scale_operand_w) 16971 (aarch64_gather_scale_operand_d): New predicates. 16972 * config/aarch64/aarch64-sve.md (gather_load<mode>): New expander. 16973 (mask_gather_load<mode>): New insns. 16974 169752018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 16976 Alan Hayward <alan.hayward@arm.com> 16977 David Sherwood <david.sherwood@arm.com> 16978 16979 * optabs.def (fold_left_plus_optab): New optab. 16980 * doc/md.texi (fold_left_plus_@var{m}): Document. 16981 * internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function. 16982 * internal-fn.c (fold_left_direct): Define. 16983 (expand_fold_left_optab_fn): Likewise. 16984 (direct_fold_left_optab_supported_p): Likewise. 16985 * fold-const-call.c (fold_const_fold_left): New function. 16986 (fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS. 16987 * tree-parloops.c (valid_reduction_p): New function. 16988 (gather_scalar_reductions): Use it. 16989 * tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type. 16990 (vect_finish_replace_stmt): Declare. 16991 * tree-vect-loop.c (fold_left_reduction_fn): New function. 16992 (needs_fold_left_reduction_p): New function, split out from... 16993 (vect_is_simple_reduction): ...here. Accept reductions that 16994 forbid reassociation, but give them type FOLD_LEFT_REDUCTION. 16995 (vect_force_simple_reduction): Also store the reduction type in 16996 the assignment's STMT_VINFO_REDUC_TYPE. 16997 (vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION. 16998 (merge_with_identity): New function. 16999 (vect_expand_fold_left): Likewise. 17000 (vectorize_fold_left_reduction): Likewise. 17001 (vectorizable_reduction): Handle FOLD_LEFT_REDUCTION. Leave the 17002 scalar phi in place for it. Check for target support and reject 17003 cases that would reassociate the operation. Defer the transform 17004 phase to vectorize_fold_left_reduction. 17005 * config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec. 17006 * config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander. 17007 (*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns. 17008 170092018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17010 17011 * tree-if-conv.c (predicate_mem_writes): Remove redundant 17012 call to ifc_temp_var. 17013 170142018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17015 Alan Hayward <alan.hayward@arm.com> 17016 David Sherwood <david.sherwood@arm.com> 17017 17018 * target.def (legitimize_address_displacement): Take the original 17019 offset as a poly_int. 17020 * targhooks.h (default_legitimize_address_displacement): Update 17021 accordingly. 17022 * targhooks.c (default_legitimize_address_displacement): Likewise. 17023 * doc/tm.texi: Regenerate. 17024 * lra-constraints.c (base_plus_disp_to_reg): Take the displacement 17025 as an argument, moving assert of ad->disp == ad->disp_term to... 17026 (process_address_1): ...here. Update calls to base_plus_disp_to_reg. 17027 Try calling targetm.legitimize_address_displacement before expanding 17028 the address rather than afterwards, and adjust for the new interface. 17029 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): 17030 Match the new hook interface. Handle SVE addresses. 17031 * config/sh/sh.c (sh_legitimize_address_displacement): Make the 17032 new hook interface. 17033 170342018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17035 17036 * Makefile.in (OBJS): Add early-remat.o. 17037 * target.def (select_early_remat_modes): New hook. 17038 * doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook. 17039 * doc/tm.texi: Regenerate. 17040 * targhooks.h (default_select_early_remat_modes): Declare. 17041 * targhooks.c (default_select_early_remat_modes): New function. 17042 * timevar.def (TV_EARLY_REMAT): New timevar. 17043 * passes.def (pass_early_remat): New pass. 17044 * tree-pass.h (make_pass_early_remat): Declare. 17045 * early-remat.c: New file. 17046 * config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New 17047 function. 17048 (TARGET_SELECT_EARLY_REMAT_MODES): Define. 17049 170502018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17051 Alan Hayward <alan.hayward@arm.com> 17052 David Sherwood <david.sherwood@arm.com> 17053 17054 * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace 17055 vfm1 with a bound_epilog parameter. 17056 (vect_do_peeling): Update calls accordingly, and move the prologue 17057 call earlier in the function. Treat the base bound_epilog as 0 for 17058 fully-masked loops and retain vf - 1 for other loops. Add 1 to 17059 this base when peeling for gaps. 17060 * tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps 17061 with fully-masked loops. 17062 (vect_estimate_min_profitable_iters): Handle the single peeled 17063 iteration in that case. 17064 170652018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17066 Alan Hayward <alan.hayward@arm.com> 17067 David Sherwood <david.sherwood@arm.com> 17068 17069 * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow 17070 single-element interleaving even if the size is not a power of 2. 17071 * tree-vect-stmts.c (get_load_store_type): Disallow elementwise 17072 accesses for single-element interleaving if the group size is 17073 not a power of 2. 17074 170752018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17076 Alan Hayward <alan.hayward@arm.com> 17077 David Sherwood <david.sherwood@arm.com> 17078 17079 * doc/md.texi (fold_extract_last_@var{m}): Document. 17080 * doc/sourcebuild.texi (vect_fold_extract_last): Likewise. 17081 * optabs.def (fold_extract_last_optab): New optab. 17082 * internal-fn.def (FOLD_EXTRACT_LAST): New internal function. 17083 * internal-fn.c (fold_extract_direct): New macro. 17084 (expand_fold_extract_optab_fn): Likewise. 17085 (direct_fold_extract_optab_supported_p): Likewise. 17086 * tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type. 17087 * tree-vect-loop.c (vect_model_reduction_cost): Handle 17088 EXTRACT_LAST_REDUCTION. 17089 (get_initial_def_for_reduction): Do not create an initial vector 17090 for EXTRACT_LAST_REDUCTION reductions. 17091 (vectorizable_reduction): Leave the scalar phi in place for 17092 EXTRACT_LAST_REDUCTIONs. Try using EXTRACT_LAST_REDUCTION 17093 ahead of INTEGER_INDUC_COND_REDUCTION. Do not check for an 17094 epilogue code for EXTRACT_LAST_REDUCTION and defer the 17095 transform phase to vectorizable_condition. 17096 * tree-vect-stmts.c (vect_finish_stmt_generation_1): New function, 17097 split out from... 17098 (vect_finish_stmt_generation): ...here. 17099 (vect_finish_replace_stmt): New function. 17100 (vectorizable_condition): Handle EXTRACT_LAST_REDUCTION. 17101 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New 17102 pattern. 17103 * config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec. 17104 171052018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17106 Alan Hayward <alan.hayward@arm.com> 17107 David Sherwood <david.sherwood@arm.com> 17108 17109 * doc/md.texi (extract_last_@var{m}): Document. 17110 * optabs.def (extract_last_optab): New optab. 17111 * internal-fn.def (EXTRACT_LAST): New internal function. 17112 * internal-fn.c (cond_unary_direct): New macro. 17113 (expand_cond_unary_optab_fn): Likewise. 17114 (direct_cond_unary_optab_supported_p): Likewise. 17115 * tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked 17116 loops using EXTRACT_LAST. 17117 * config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to... 17118 (extract_last_<mode>): ...this optab. 17119 (vec_extract<mode><Vel>): Update accordingly. 17120 171212018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17122 Alan Hayward <alan.hayward@arm.com> 17123 David Sherwood <david.sherwood@arm.com> 17124 17125 * target.def (empty_mask_is_expensive): New hook. 17126 * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook. 17127 * doc/tm.texi: Regenerate. 17128 * targhooks.h (default_empty_mask_is_expensive): Declare. 17129 * targhooks.c (default_empty_mask_is_expensive): New function. 17130 * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores 17131 if the target says that empty masks are expensive. 17132 * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive): 17133 New function. 17134 (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine. 17135 171362018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17137 Alan Hayward <alan.hayward@arm.com> 17138 David Sherwood <david.sherwood@arm.com> 17139 17140 * tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field. 17141 (LOOP_VINFO_MASK_SKIP_NITERS): New macro. 17142 (vect_use_loop_mask_for_alignment_p): New function. 17143 (vect_prepare_for_masked_peels, vect_gen_while_not): Declare. 17144 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an 17145 niters_skip argument. Make sure that the first niters_skip elements 17146 of the first iteration are inactive. 17147 (vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS. 17148 Update call to vect_set_loop_masks_directly. 17149 (get_misalign_in_elems): New function, split out from... 17150 (vect_gen_prolog_loop_niters): ...here. 17151 (vect_update_init_of_dr): Take a code argument that specifies whether 17152 the adjustment should be added or subtracted. 17153 (vect_update_init_of_drs): Likewise. 17154 (vect_prepare_for_masked_peels): New function. 17155 (vect_do_peeling): Skip prologue peeling if we're using a mask 17156 instead. Update call to vect_update_inits_of_drs. 17157 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 17158 mask_skip_niters. 17159 (vect_analyze_loop_2): Allow fully-masked loops with peeling for 17160 alignment. Do not include the number of peeled iterations in 17161 the minimum threshold in that case. 17162 (vectorizable_induction): Adjust the start value down by 17163 LOOP_VINFO_MASK_SKIP_NITERS iterations. 17164 (vect_transform_loop): Call vect_prepare_for_masked_peels. 17165 Take the number of skipped iterations into account when calculating 17166 the loop bounds. 17167 * tree-vect-stmts.c (vect_gen_while_not): New function. 17168 171692018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17170 Alan Hayward <alan.hayward@arm.com> 17171 David Sherwood <david.sherwood@arm.com> 17172 17173 * doc/sourcebuild.texi (vect_fully_masked): Document. 17174 * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and 17175 default value to 0. 17176 * tree-vect-loop.c (vect_analyze_loop_costing): New function, 17177 split out from... 17178 (vect_analyze_loop_2): ...here. Don't check the vectorization 17179 factor against the number of loop iterations if the loop is 17180 fully-masked. 17181 171822018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17183 Alan Hayward <alan.hayward@arm.com> 17184 David Sherwood <david.sherwood@arm.com> 17185 17186 * tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into... 17187 (USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types. 17188 (dump_groups): Update accordingly. 17189 (iv_use::mem_type): New member variable. 17190 (address_p): New function. 17191 (record_use): Add a mem_type argument and initialize the new 17192 mem_type field. 17193 (record_group_use): Add a mem_type argument. Use address_p. 17194 Remove obsolete null checks of base_object. Update call to record_use. 17195 (find_interesting_uses_op): Update call to record_group_use. 17196 (find_interesting_uses_cond): Likewise. 17197 (find_interesting_uses_address): Likewise. 17198 (get_mem_type_for_internal_fn): New function. 17199 (find_address_like_use): Likewise. 17200 (find_interesting_uses_stmt): Try find_address_like_use before 17201 calling find_interesting_uses_op. 17202 (addr_offset_valid_p): Use the iv mem_type field as the type 17203 of the addressed memory. 17204 (add_autoinc_candidates): Likewise. 17205 (get_address_cost): Likewise. 17206 (split_small_address_groups_p): Use address_p. 17207 (split_address_groups): Likewise. 17208 (add_iv_candidate_for_use): Likewise. 17209 (autoinc_possible_for_pair): Likewise. 17210 (rewrite_groups): Likewise. 17211 (get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS. 17212 (determine_group_iv_cost): Update after split of USE_ADDRESS. 17213 (get_alias_ptr_type_for_ptr_address): New function. 17214 (rewrite_use_address): Rewrite address uses in calls that were 17215 identified by find_address_like_use. 17216 172172018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17218 Alan Hayward <alan.hayward@arm.com> 17219 David Sherwood <david.sherwood@arm.com> 17220 17221 * expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of 17222 TARGET_MEM_REFs. 17223 * gimple-expr.h (is_gimple_addressable: Likewise. 17224 * gimple-expr.c (is_gimple_address): Likewise. 17225 * internal-fn.c (expand_call_mem_ref): New function. 17226 (expand_mask_load_optab_fn): Use it. 17227 (expand_mask_store_optab_fn): Likewise. 17228 172292018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17230 Alan Hayward <alan.hayward@arm.com> 17231 David Sherwood <david.sherwood@arm.com> 17232 17233 * doc/md.texi (cond_add@var{mode}, cond_sub@var{mode}) 17234 (cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode}) 17235 (cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode}) 17236 (cond_umax@var{mode}): Document. 17237 * optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab) 17238 (cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab) 17239 (cond_umin_optab, cond_umax_optab): New optabs. 17240 * internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND) 17241 (COND_IOR, COND_XOR): New internal functions. 17242 * internal-fn.h (get_conditional_internal_fn): Declare. 17243 * internal-fn.c (cond_binary_direct): New macro. 17244 (expand_cond_binary_optab_fn): Likewise. 17245 (direct_cond_binary_optab_supported_p): Likewise. 17246 (get_conditional_internal_fn): New function. 17247 * tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops. 17248 Cope with reduction statements that are vectorized as calls rather 17249 than assignments. 17250 * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns. 17251 * config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB) 17252 (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN) 17253 (UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) 17254 (UNSPEC_COND_EOR): New unspecs. 17255 (optab): Add mappings for them. 17256 (SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators. 17257 (sve_int_op, sve_fp_op): New int attributes. 17258 172592018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17260 Alan Hayward <alan.hayward@arm.com> 17261 David Sherwood <david.sherwood@arm.com> 17262 17263 * optabs.def (while_ult_optab): New optab. 17264 * doc/md.texi (while_ult@var{m}@var{n}): Document. 17265 * internal-fn.def (WHILE_ULT): New internal function. 17266 * internal-fn.h (direct_internal_fn_supported_p): New override 17267 that takes two types as argument. 17268 * internal-fn.c (while_direct): New macro. 17269 (expand_while_optab_fn): New function. 17270 (convert_optab_supported_p): Likewise. 17271 (direct_while_optab_supported_p): New macro. 17272 * wide-int.h (wi::udiv_ceil): New function. 17273 * tree-vectorizer.h (rgroup_masks): New structure. 17274 (vec_loop_masks): New typedef. 17275 (_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p 17276 and fully_masked_p. 17277 (LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P) 17278 (LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros. 17279 (vect_max_vf): New function. 17280 (slpeel_make_loop_iterate_ntimes): Delete. 17281 (vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while) 17282 (vect_halve_mask_nunits, vect_double_mask_nunits): Declare. 17283 (vect_record_loop_mask, vect_get_loop_mask): Likewise. 17284 * tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h, 17285 internal-fn.h, stor-layout.h and optabs-query.h. 17286 (vect_set_loop_mask): New function. 17287 (add_preheader_seq): Likewise. 17288 (add_header_seq): Likewise. 17289 (interleave_supported_p): Likewise. 17290 (vect_maybe_permute_loop_masks): Likewise. 17291 (vect_set_loop_masks_directly): Likewise. 17292 (vect_set_loop_condition_masked): Likewise. 17293 (vect_set_loop_condition_unmasked): New function, split out from 17294 slpeel_make_loop_iterate_ntimes. 17295 (slpeel_make_loop_iterate_ntimes): Rename to.. 17296 (vect_set_loop_condition): ...this. Use vect_set_loop_condition_masked 17297 for fully-masked loops and vect_set_loop_condition_unmasked otherwise. 17298 (vect_do_peeling): Update call accordingly. 17299 (vect_gen_vector_loop_niters): Use VF as the step for fully-masked 17300 loops. 17301 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 17302 mask_compare_type, can_fully_mask_p and fully_masked_p. 17303 (release_vec_loop_masks): New function. 17304 (_loop_vec_info): Use it to free the loop masks. 17305 (can_produce_all_loop_masks_p): New function. 17306 (vect_get_max_nscalars_per_iter): Likewise. 17307 (vect_verify_full_masking): Likewise. 17308 (vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around 17309 retries, and free the mask rgroups before retrying. Check loop-wide 17310 reasons for disallowing fully-masked loops. Make the final decision 17311 about whether use a fully-masked loop or not. 17312 (vect_estimate_min_profitable_iters): Do not assume that peeling 17313 for the number of iterations will be needed for fully-masked loops. 17314 (vectorizable_reduction): Disable fully-masked loops. 17315 (vectorizable_live_operation): Likewise. 17316 (vect_halve_mask_nunits): New function. 17317 (vect_double_mask_nunits): Likewise. 17318 (vect_record_loop_mask): Likewise. 17319 (vect_get_loop_mask): Likewise. 17320 (vect_transform_loop): Handle the case in which the final loop 17321 iteration might handle a partial vector. Call vect_set_loop_condition 17322 instead of slpeel_make_loop_iterate_ntimes. 17323 * tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h. 17324 (check_load_store_masking): New function. 17325 (prepare_load_store_mask): Likewise. 17326 (vectorizable_store): Handle fully-masked loops. 17327 (vectorizable_load): Likewise. 17328 (supportable_widening_operation): Use vect_halve_mask_nunits for 17329 booleans. 17330 (supportable_narrowing_operation): Likewise vect_double_mask_nunits. 17331 (vect_gen_while): New function. 17332 * config/aarch64/aarch64.md (umax<mode>3): New expander. 17333 (aarch64_uqdec<mode>): New insn. 17334 173352018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17336 Alan Hayward <alan.hayward@arm.com> 17337 David Sherwood <david.sherwood@arm.com> 17338 17339 * optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab) 17340 (reduc_xor_scal_optab): New optabs. 17341 * doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m}) 17342 (reduc_xor_scal_@var{m}): Document. 17343 * doc/sourcebuild.texi (vect_logical_reduc): Likewise. 17344 * internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New 17345 internal functions. 17346 * fold-const-call.c (fold_const_call): Handle them. 17347 * tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new 17348 internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. 17349 * config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>): 17350 (*reduc_<bit_reduc>_scal_<mode>): New patterns. 17351 * config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV) 17352 (UNSPEC_XORV): New unspecs. 17353 (optab): Add entries for them. 17354 (BITWISEV): New int iterator. 17355 (bit_reduc_op): New int attributes. 17356 173572018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17358 Alan Hayward <alan.hayward@arm.com> 17359 David Sherwood <david.sherwood@arm.com> 17360 17361 * doc/md.texi (vec_shl_insert_@var{m}): New optab. 17362 * internal-fn.def (VEC_SHL_INSERT): New internal function. 17363 * optabs.def (vec_shl_insert_optab): New optab. 17364 * tree-vectorizer.h (can_duplicate_and_interleave_p): Declare. 17365 (duplicate_and_interleave): Likewise. 17366 * tree-vect-loop.c: Include internal-fn.h. 17367 (neutral_op_for_slp_reduction): New function, split out from 17368 get_initial_defs_for_reduction. 17369 (get_initial_def_for_reduction): Handle option 2 for variable-length 17370 vectors by loading the neutral value into a vector and then shifting 17371 the initial value into element 0. 17372 (get_initial_defs_for_reduction): Replace the code argument with 17373 the neutral value calculated by neutral_op_for_slp_reduction. 17374 Use gimple_build_vector for constant-length vectors. 17375 Use IFN_VEC_SHL_INSERT for variable-length vectors if all 17376 but the first group_size elements have a neutral value. 17377 Use duplicate_and_interleave otherwise. 17378 (vect_create_epilog_for_reduction): Take a neutral_op parameter. 17379 Update call to get_initial_defs_for_reduction. Handle SLP 17380 reductions for variable-length vectors by creating one vector 17381 result for each scalar result, with the elements associated 17382 with other scalar results stubbed out with the neutral value. 17383 (vectorizable_reduction): Call neutral_op_for_slp_reduction. 17384 Require IFN_VEC_SHL_INSERT for double reductions on 17385 variable-length vectors, or SLP reductions that have 17386 a neutral value. Require can_duplicate_and_interleave_p 17387 support for variable-length unchained SLP reductions if there 17388 is no neutral value, such as for MIN/MAX reductions. Also require 17389 the number of vector elements to be a multiple of the number of 17390 SLP statements when doing variable-length unchained SLP reductions. 17391 Update call to vect_create_epilog_for_reduction. 17392 * tree-vect-slp.c (can_duplicate_and_interleave_p): Make public 17393 and remove initial values. 17394 (duplicate_and_interleave): Make public. 17395 * config/aarch64/aarch64.md (UNSPEC_INSR): New unspec. 17396 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn. 17397 173982018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17399 Alan Hayward <alan.hayward@arm.com> 17400 David Sherwood <david.sherwood@arm.com> 17401 17402 * tree-vect-slp.c: Include gimple-fold.h and internal-fn.h 17403 (can_duplicate_and_interleave_p): New function. 17404 (vect_get_and_check_slp_defs): Take the vector of statements 17405 rather than just the current one. Remove excess parentheses. 17406 Restriction rejectinon of vect_constant_def and vect_external_def 17407 for variable-length vectors to boolean types, or types for which 17408 can_duplicate_and_interleave_p is false. 17409 (vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs. 17410 (duplicate_and_interleave): New function. 17411 (vect_get_constant_vectors): Use gimple_build_vector for 17412 constant-length vectors and suitable variable-length constant 17413 vectors. Use duplicate_and_interleave for other variable-length 17414 vectors. Don't defer the update when inserting new statements. 17415 174162018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17417 Alan Hayward <alan.hayward@arm.com> 17418 David Sherwood <david.sherwood@arm.com> 17419 17420 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure 17421 min_profitable_iters doesn't go negative. 17422 174232018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17424 Alan Hayward <alan.hayward@arm.com> 17425 David Sherwood <david.sherwood@arm.com> 17426 17427 * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document. 17428 (vec_mask_store_lanes@var{m}@var{n}): Likewise. 17429 * optabs.def (vec_mask_load_lanes_optab): New optab. 17430 (vec_mask_store_lanes_optab): Likewise. 17431 * internal-fn.def (MASK_LOAD_LANES): New internal function. 17432 (MASK_STORE_LANES): Likewise. 17433 * internal-fn.c (mask_load_lanes_direct): New macro. 17434 (mask_store_lanes_direct): Likewise. 17435 (expand_mask_load_optab_fn): Handle masked operations. 17436 (expand_mask_load_lanes_optab_fn): New macro. 17437 (expand_mask_store_optab_fn): Handle masked operations. 17438 (expand_mask_store_lanes_optab_fn): New macro. 17439 (direct_mask_load_lanes_optab_supported_p): Likewise. 17440 (direct_mask_store_lanes_optab_supported_p): Likewise. 17441 * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p 17442 parameter. 17443 (vect_load_lanes_supported): Likewise. 17444 * tree-vect-data-refs.c (strip_conversion): New function. 17445 (can_group_stmts_p): Likewise. 17446 (vect_analyze_data_ref_accesses): Use it instead of checking 17447 for a pair of assignments. 17448 (vect_store_lanes_supported): Take a masked_p parameter. 17449 (vect_load_lanes_supported): Likewise. 17450 * tree-vect-loop.c (vect_analyze_loop_2): Update calls to 17451 vect_store_lanes_supported and vect_load_lanes_supported. 17452 * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. 17453 * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p 17454 parameter. Don't allow gaps for masked accesses. 17455 Use vect_get_store_rhs. Update calls to vect_store_lanes_supported 17456 and vect_load_lanes_supported. 17457 (get_load_store_type): Take a masked_p parameter and update 17458 call to get_group_load_store_type. 17459 (vectorizable_store): Update call to get_load_store_type. 17460 Handle IFN_MASK_STORE_LANES. 17461 (vectorizable_load): Update call to get_load_store_type. 17462 Handle IFN_MASK_LOAD_LANES. 17463 174642018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17465 Alan Hayward <alan.hayward@arm.com> 17466 David Sherwood <david.sherwood@arm.com> 17467 17468 * config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector 17469 modes for SVE. 17470 * config/aarch64/aarch64-protos.h 17471 (aarch64_sve_struct_memory_operand_p): Declare. 17472 * config/aarch64/iterators.md (SVE_STRUCT): New mode iterator. 17473 (vector_count, insn_length, VSINGLE, vsingle): New mode attributes. 17474 (VPRED, vpred): Handle SVE structure modes. 17475 * config/aarch64/constraints.md (Utx): New constraint. 17476 * config/aarch64/predicates.md (aarch64_sve_struct_memory_operand) 17477 (aarch64_sve_struct_nonimmediate_operand): New predicates. 17478 * config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs. 17479 * config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le) 17480 (*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for 17481 structure modes. Split into pieces after RA. 17482 (vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>) 17483 (vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>): 17484 New patterns. 17485 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle 17486 SVE structure modes. 17487 (aarch64_classify_address): Likewise. 17488 (sizetochar): Move earlier in file. 17489 (aarch64_print_operand): Handle SVE register lists. 17490 (aarch64_array_mode): New function. 17491 (aarch64_sve_struct_memory_operand_p): Likewise. 17492 (TARGET_ARRAY_MODE): Redefine. 17493 174942018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17495 Alan Hayward <alan.hayward@arm.com> 17496 David Sherwood <david.sherwood@arm.com> 17497 17498 * target.def (array_mode): New target hook. 17499 * doc/tm.texi.in (TARGET_ARRAY_MODE): New hook. 17500 * doc/tm.texi: Regenerate. 17501 * hooks.h (hook_optmode_mode_uhwi_none): Declare. 17502 * hooks.c (hook_optmode_mode_uhwi_none): New function. 17503 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use 17504 targetm.array_mode. 17505 * stor-layout.c (mode_for_array): Likewise. Support polynomial 17506 type sizes. 17507 175082018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17509 Alan Hayward <alan.hayward@arm.com> 17510 David Sherwood <david.sherwood@arm.com> 17511 17512 * fold-const.c (fold_binary_loc): Check the argument types 17513 rather than the result type when testing for a vector operation. 17514 175152018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17516 17517 * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document. 17518 * doc/tm.texi: Regenerate. 17519 175202018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17521 Alan Hayward <alan.hayward@arm.com> 17522 David Sherwood <david.sherwood@arm.com> 17523 17524 * doc/invoke.texi (-msve-vector-bits=): Document new option. 17525 (sve): Document new AArch64 extension. 17526 * doc/md.texi (w): Extend the description of the AArch64 17527 constraint to include SVE vectors. 17528 (Upl, Upa): Document new AArch64 predicate constraints. 17529 * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New 17530 enum. 17531 * config/aarch64/aarch64.opt (sve_vector_bits): New enum. 17532 (msve-vector-bits=): New option. 17533 * config/aarch64/aarch64-option-extensions.def (fp, simd): Disable 17534 SVE when these are disabled. 17535 (sve): New extension. 17536 * config/aarch64/aarch64-modes.def: Define SVE vector and predicate 17537 modes. Adjust their number of units based on aarch64_sve_vg. 17538 (MAX_BITSIZE_MODE_ANY_MODE): Define. 17539 * config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New 17540 aarch64_addr_query_type. 17541 (aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode) 17542 (aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p) 17543 (aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries) 17544 (aarch64_split_add_offset, aarch64_output_sve_cnt_immediate) 17545 (aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate) 17546 (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare. 17547 (aarch64_simd_imm_zero_p): Delete. 17548 (aarch64_check_zero_based_sve_index_immediate): Declare. 17549 (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) 17550 (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) 17551 (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) 17552 (aarch64_sve_float_mul_immediate_p): Likewise. 17553 (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT 17554 rather than an rtx. 17555 (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare. 17556 (aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback. 17557 (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare. 17558 (aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float) 17559 (aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare. 17560 (aarch64_regmode_natural_size): Likewise. 17561 * config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro. 17562 (AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift 17563 left one place. 17564 (AARCH64_ISA_SVE, TARGET_SVE): New macros. 17565 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries 17566 for VG and the SVE predicate registers. 17567 (V_ALIASES): Add a "z"-prefixed alias. 17568 (FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1. 17569 (AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros. 17570 (PR_REGNUM_P, PR_LO_REGNUM_P): Likewise. 17571 (PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes. 17572 (REG_CLASS_NAMES): Add entries for them. 17573 (REG_CLASS_CONTENTS): Likewise. Update ALL_REGS to include VG 17574 and the predicate registers. 17575 (aarch64_sve_vg): Declare. 17576 (BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED) 17577 (SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros. 17578 (REGMODE_NATURAL_SIZE): Define. 17579 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle 17580 SVE macros. 17581 * config/aarch64/aarch64.c: Include cfgrtl.h. 17582 (simd_immediate_info): Add a constructor for series vectors, 17583 and an associated step field. 17584 (aarch64_sve_vg): New variable. 17585 (aarch64_dbx_register_number): Handle VG and the predicate registers. 17586 (aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete. 17587 (VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE) 17588 (VEC_ANY_DATA, VEC_STRUCT): New constants. 17589 (aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p) 17590 (aarch64_classify_vector_mode, aarch64_vector_data_mode_p) 17591 (aarch64_sve_data_mode_p, aarch64_sve_pred_mode) 17592 (aarch64_get_mask_mode): New functions. 17593 (aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS 17594 and FP_LO_REGS. Handle PR_REGS, PR_LO_REGS and PR_HI_REGS. 17595 (aarch64_hard_regno_mode_ok): Handle VG. Also handle the SVE 17596 predicate modes and predicate registers. Explicitly restrict 17597 GPRs to modes of 16 bytes or smaller. Only allow FP registers 17598 to store a vector mode if it is recognized by 17599 aarch64_classify_vector_mode. 17600 (aarch64_regmode_natural_size): New function. 17601 (aarch64_hard_regno_caller_save_mode): Return the original mode 17602 for predicates. 17603 (aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate) 17604 (aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl) 17605 (aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate) 17606 (aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New 17607 functions. 17608 (aarch64_add_offset): Add a temp2 parameter. Assert that temp1 17609 does not overlap dest if the function is frame-related. Handle 17610 SVE constants. 17611 (aarch64_split_add_offset): New function. 17612 (aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass 17613 them aarch64_add_offset. 17614 (aarch64_allocate_and_probe_stack_space): Add a temp2 parameter 17615 and update call to aarch64_sub_sp. 17616 (aarch64_add_cfa_expression): New function. 17617 (aarch64_expand_prologue): Pass extra temporary registers to the 17618 functions above. Handle the case in which we need to emit new 17619 DW_CFA_expressions for registers that were originally saved 17620 relative to the stack pointer, but now have to be expressed 17621 relative to the frame pointer. 17622 (aarch64_output_mi_thunk): Pass extra temporary registers to the 17623 functions above. 17624 (aarch64_expand_epilogue): Likewise. Prevent inheritance of 17625 IP0 and IP1 values for SVE frames. 17626 (aarch64_expand_vec_series): New function. 17627 (aarch64_expand_sve_widened_duplicate): Likewise. 17628 (aarch64_expand_sve_const_vector): Likewise. 17629 (aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter. 17630 Handle SVE constants. Use emit_move_insn to move a force_const_mem 17631 into the register, rather than emitting a SET directly. 17632 (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move) 17633 (aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p) 17634 (offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p) 17635 (offset_9bit_signed_scaled_p): New functions. 17636 (aarch64_replicate_bitmask_imm): New function. 17637 (aarch64_bitmask_imm): Use it. 17638 (aarch64_cannot_force_const_mem): Reject expressions involving 17639 a CONST_POLY_INT. Update call to aarch64_classify_symbol. 17640 (aarch64_classify_index): Handle SVE indices, by requiring 17641 a plain register index with a scale that matches the element size. 17642 (aarch64_classify_address): Handle SVE addresses. Assert that 17643 the mode of the address is VOIDmode or an integer mode. 17644 Update call to aarch64_classify_symbol. 17645 (aarch64_classify_symbolic_expression): Update call to 17646 aarch64_classify_symbol. 17647 (aarch64_const_vec_all_in_range_p): New function. 17648 (aarch64_print_vector_float_operand): Likewise. 17649 (aarch64_print_operand): Handle 'N' and 'C'. Use "zN" rather than 17650 "vN" for FP registers with SVE modes. Handle (const ...) vectors 17651 and the FP immediates 1.0 and 0.5. 17652 (aarch64_print_address_internal): Handle SVE addresses. 17653 (aarch64_print_operand_address): Use ADDR_QUERY_ANY. 17654 (aarch64_regno_regclass): Handle predicate registers. 17655 (aarch64_secondary_reload): Handle big-endian reloads of SVE 17656 data modes. 17657 (aarch64_class_max_nregs): Handle SVE modes and predicate registers. 17658 (aarch64_rtx_costs): Check for ADDVL and ADDPL instructions. 17659 (aarch64_convert_sve_vector_bits): New function. 17660 (aarch64_override_options): Use it to handle -msve-vector-bits=. 17661 (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT 17662 rather than an rtx. 17663 (aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode. 17664 Handle SVE vector and predicate modes. Accept VL-based constants 17665 that need only one temporary register, and VL offsets that require 17666 no temporary registers. 17667 (aarch64_conditional_register_usage): Mark the predicate registers 17668 as fixed if SVE isn't available. 17669 (aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode. 17670 Return true for SVE vector and predicate modes. 17671 (aarch64_simd_container_mode): Take the number of bits as a poly_int64 17672 rather than an unsigned int. Handle SVE modes. 17673 (aarch64_preferred_simd_mode): Update call accordingly. Handle 17674 SVE modes. 17675 (aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR 17676 if SVE is enabled. 17677 (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) 17678 (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) 17679 (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) 17680 (aarch64_sve_float_mul_immediate_p): New functions. 17681 (aarch64_sve_valid_immediate): New function. 17682 (aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors. 17683 Explicitly reject structure modes. Check for INDEX constants. 17684 Handle PTRUE and PFALSE constants. 17685 (aarch64_check_zero_based_sve_index_immediate): New function. 17686 (aarch64_simd_imm_zero_p): Delete. 17687 (aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for 17688 vector modes. Accept constants in the range of CNT[BHWD]. 17689 (aarch64_simd_scalar_immediate_valid_for_move): Explicitly 17690 ask for an Advanced SIMD mode. 17691 (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions. 17692 (aarch64_simd_vector_alignment): Handle SVE predicates. 17693 (aarch64_vectorize_preferred_vector_alignment): New function. 17694 (aarch64_simd_vector_alignment_reachable): Use it instead of 17695 the vector size. 17696 (aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p. 17697 (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New 17698 functions. 17699 (MAX_VECT_LEN): Delete. 17700 (expand_vec_perm_d): Add a vec_flags field. 17701 (emit_unspec2, aarch64_expand_sve_vec_perm): New functions. 17702 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) 17703 (aarch64_evpc_ext): Don't apply a big-endian lane correction 17704 for SVE modes. 17705 (aarch64_evpc_rev): Rename to... 17706 (aarch64_evpc_rev_local): ...this. Use a predicated operation for SVE. 17707 (aarch64_evpc_rev_global): New function. 17708 (aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP. 17709 (aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of 17710 MAX_VECT_LEN. 17711 (aarch64_evpc_sve_tbl): New function. 17712 (aarch64_expand_vec_perm_const_1): Update after rename of 17713 aarch64_evpc_rev. Handle SVE permutes too, trying 17714 aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather 17715 than aarch64_evpc_tbl. 17716 (aarch64_vectorize_vec_perm_const): Initialize vec_flags. 17717 (aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code) 17718 (aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int) 17719 (aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or) 17720 (aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float) 17721 (aarch64_expand_sve_vcond): New functions. 17722 (aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead 17723 of aarch64_vector_mode_p. 17724 (aarch64_dwarf_poly_indeterminate_value): New function. 17725 (aarch64_compute_pressure_classes): Likewise. 17726 (aarch64_can_change_mode_class): Likewise. 17727 (TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine. 17728 (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise. 17729 (TARGET_VECTORIZE_GET_MASK_MODE): Likewise. 17730 (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise. 17731 (TARGET_COMPUTE_PRESSURE_CLASSES): Likewise. 17732 (TARGET_CAN_CHANGE_MODE_CLASS): Likewise. 17733 * config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr) 17734 (Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New 17735 constraints. 17736 (Dn, Dl, Dr): Accept const as well as const_vector. 17737 (Dz): Likewise. Compare against CONST0_RTX. 17738 * config/aarch64/iterators.md: Refer to "Advanced SIMD" instead 17739 of "vector" where appropriate. 17740 (SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD) 17741 (SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators. 17742 (UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT) 17743 (UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE) 17744 (UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS) 17745 (UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs. 17746 (Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV) 17747 (v_int_equiv): Extend to SVE modes. 17748 (Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New 17749 mode attributes. 17750 (LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators. 17751 (optab): Handle popcount, smin, smax, umin, umax, abs and sqrt. 17752 (logical_nn, lr, sve_int_op, sve_fp_op): New code attributs. 17753 (LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP) 17754 (SVE_COND_FP_CMP): New int iterators. 17755 (perm_hilo): Handle the new unpack unspecs. 17756 (optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int 17757 attributes. 17758 * config/aarch64/predicates.md (aarch64_sve_cnt_immediate) 17759 (aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate) 17760 (aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand) 17761 (aarch64_equality_operator, aarch64_constant_vector_operand) 17762 (aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates. 17763 (aarch64_sve_nonimmediate_operand): Likewise. 17764 (aarch64_sve_general_operand): Likewise. 17765 (aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise. 17766 (aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate) 17767 (aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise. 17768 (aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise. 17769 (aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise. 17770 (aarch64_sve_float_arith_immediate): Likewise. 17771 (aarch64_sve_float_arith_with_sub_immediate): Likewise. 17772 (aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise. 17773 (aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise. 17774 (aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise. 17775 (aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise. 17776 (aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise. 17777 (aarch64_sve_float_arith_operand): Likewise. 17778 (aarch64_sve_float_arith_with_sub_operand): Likewise. 17779 (aarch64_sve_float_mul_operand): Likewise. 17780 (aarch64_sve_vec_perm_operand): Likewise. 17781 (aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate. 17782 (aarch64_mov_operand): Accept const_poly_int and const_vector. 17783 (aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const 17784 as well as const_vector. 17785 (aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier 17786 in file. Use CONST0_RTX and CONSTM1_RTX. 17787 (aarch64_simd_or_scalar_imm_zero): Likewise. Add match_codes. 17788 (aarch64_simd_reg_or_zero): Accept const as well as const_vector. 17789 Use aarch64_simd_imm_zero. 17790 * config/aarch64/aarch64-sve.md: New file. 17791 * config/aarch64/aarch64.md: Include it. 17792 (VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers. 17793 (UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE) 17794 (UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI) 17795 (UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK) 17796 (UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants. 17797 (sve): New attribute. 17798 (enabled): Disable instructions with the sve attribute unless 17799 TARGET_SVE. 17800 (movqi, movhi): Pass CONST_POLY_INT operaneds through 17801 aarch64_expand_mov_immediate. 17802 (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle 17803 CNT[BHSD] immediates. 17804 (movti): Split CONST_POLY_INT moves into two halves. 17805 (add<mode>3): Accept aarch64_pluslong_or_poly_operand. 17806 Split additions that need a temporary here if the destination 17807 is the stack pointer. 17808 (*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates. 17809 (*add<mode>3_poly_1): New instruction. 17810 (set_clobber_cc): New expander. 17811 178122018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17813 17814 * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes 17815 parameter and use it instead of GET_MODE_SIZE (innermode). Use 17816 inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode). 17817 Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of 17818 GET_MODE_NUNITS (innermode). Also add a first_elem parameter. 17819 Change innermode from fixed_mode_size to machine_mode. 17820 (simplify_subreg): Update call accordingly. Handle a constant-sized 17821 subreg of a variable-length CONST_VECTOR. 17822 178232018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 17824 Alan Hayward <alan.hayward@arm.com> 17825 David Sherwood <david.sherwood@arm.com> 17826 17827 * tree-ssa-address.c (mem_ref_valid_without_offset_p): New function. 17828 (add_offset_to_base): New function, split out from... 17829 (create_mem_ref): ...here. When handling a scale other than 1, 17830 check first whether the address is valid without the offset. 17831 Add it into the base if so, leaving the index and scale as-is. 17832 178332018-01-12 Jakub Jelinek <jakub@redhat.com> 17834 17835 PR c++/83778 17836 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call 17837 fold_for_warn before checking if arg2 is INTEGER_CST. 17838 178392018-01-12 Segher Boessenkool <segher@kernel.crashing.org> 17840 17841 * config/rs6000/predicates.md (load_multiple_operation): Delete. 17842 (store_multiple_operation): Delete. 17843 * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING. 17844 * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete. 17845 * config/rs6000/rs6000-string.c (expand_block_move): Delete everything 17846 guarded by TARGET_STRING. 17847 (rs6000_output_load_multiple): Delete. 17848 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete 17849 OPTION_MASK_STRING / TARGET_STRING handling. 17850 (print_operand) <'N', 'O'>: Add comment that these are unused now. 17851 (const rs6000_opt_masks) <"string">: Change mask to 0. 17852 * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING. 17853 (MASK_STRING): Delete. 17854 * config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING 17855 parts. Simplify. 17856 (load_multiple): Delete. 17857 (*ldmsi8): Delete. 17858 (*ldmsi7): Delete. 17859 (*ldmsi6): Delete. 17860 (*ldmsi5): Delete. 17861 (*ldmsi4): Delete. 17862 (*ldmsi3): Delete. 17863 (store_multiple): Delete. 17864 (*stmsi8): Delete. 17865 (*stmsi7): Delete. 17866 (*stmsi6): Delete. 17867 (*stmsi5): Delete. 17868 (*stmsi4): Delete. 17869 (*stmsi3): Delete. 17870 (movmemsi_8reg): Delete. 17871 (corresponding unnamed define_insn): Delete. 17872 (movmemsi_6reg): Delete. 17873 (corresponding unnamed define_insn): Delete. 17874 (movmemsi_4reg): Delete. 17875 (corresponding unnamed define_insn): Delete. 17876 (movmemsi_2reg): Delete. 17877 (corresponding unnamed define_insn): Delete. 17878 (movmemsi_1reg): Delete. 17879 (corresponding unnamed define_insn): Delete. 17880 * config/rs6000/rs6000.opt (mno-string): New. 17881 (mstring): Replace by deprecation warning stub. 17882 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring. 17883 178842018-01-12 Jakub Jelinek <jakub@redhat.com> 17885 17886 * regrename.c (regrename_do_replace): If replacing the same 17887 reg multiple times, try to reuse last created gen_raw_REG. 17888 17889 PR debug/81155 17890 * bb-reorder.c (pass_partition_blocks::gate): In lto don't partition 17891 main to workaround a bug in GDB. 17892 178932018-01-12 Tom de Vries <tom@codesourcery.com> 17894 17895 PR target/83737 17896 * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap. 17897 178982018-01-12 Vladimir Makarov <vmakarov@redhat.com> 17899 17900 PR rtl-optimization/80481 17901 * ira-color.c (get_cap_member): New function. 17902 (allocnos_conflict_by_live_ranges_p): Use it. 17903 (slot_coalesced_allocno_live_ranges_intersect_p): Add assert. 17904 (setup_slot_coalesced_allocno_live_ranges): Ditto. 17905 179062018-01-12 Uros Bizjak <ubizjak@gmail.com> 17907 17908 PR target/83628 17909 * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern. 17910 (*saddl_se_1): Ditto. 17911 (*ssubsi_1): Ditto. 17912 (*ssubl_se_1): Ditto. 17913 179142018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 17915 17916 * tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest 17917 rather than wi::to_widest for DR_INITs. 17918 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Use 17919 wi::to_poly_offset rather than wi::to_offset for DR_INIT. 17920 (vect_analyze_data_ref_accesses): Require both DR_INITs to be 17921 INTEGER_CSTs. 17922 (vect_analyze_group_access_1): Note that here. 17923 179242018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 17925 17926 * tree-vectorizer.c (get_vec_alignment_for_array_type): Handle 17927 polynomial type sizes. 17928 179292018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 17930 17931 * gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a 17932 poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size. 17933 (gimple_add_tmp_var): Likewise. 17934 179352018-01-12 Martin Liska <mliska@suse.cz> 17936 17937 * gimple.c (gimple_alloc_counts): Use uint64_t instead of int. 17938 (gimple_alloc_sizes): Likewise. 17939 (dump_gimple_statistics): Use PRIu64 in printf format. 17940 * gimple.h: Change uint64_t to int. 17941 179422018-01-12 Martin Liska <mliska@suse.cz> 17943 17944 * tree-core.h: Use uint64_t instead of int. 17945 * tree.c (tree_node_counts): Likewise. 17946 (tree_node_sizes): Likewise. 17947 (dump_tree_statistics): Use PRIu64 in printf format. 17948 179492018-01-12 Martin Liska <mliska@suse.cz> 17950 17951 * Makefile.in: As qsort_chk is implemented in vec.c, add 17952 vec.o to linkage of gencfn-macros. 17953 * tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's 17954 passing the info to record_node_allocation_statistics. 17955 (test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration 17956 and pass the info. 17957 * ggc-common.c (struct ggc_usage): Add operator== and use 17958 it in operator< and compare function. 17959 * mem-stats.h (struct mem_usage): Likewise. 17960 * vec.c (struct vec_usage): Remove operator< and compare 17961 function. Can be simply inherited. 17962 179632018-01-12 Martin Jambor <mjambor@suse.cz> 17964 17965 PR target/81616 17966 * params.def: New parameter PARAM_AVOID_FMA_MAX_BITS. 17967 * tree-ssa-math-opts.c: Include domwalk.h. 17968 (convert_mult_to_fma_1): New function. 17969 (fma_transformation_info): New type. 17970 (fma_deferring_state): Likewise. 17971 (cancel_fma_deferring): New function. 17972 (result_of_phi): Likewise. 17973 (last_fma_candidate_feeds_initial_phi): Likewise. 17974 (convert_mult_to_fma): Added deferring logic, split actual 17975 transformation to convert_mult_to_fma_1. 17976 (math_opts_dom_walker): New type. 17977 (math_opts_dom_walker::after_dom_children): New method, body moved 17978 here from pass_optimize_widening_mul::execute, added deferring logic 17979 bits. 17980 (pass_optimize_widening_mul::execute): Moved most of code to 17981 math_opts_dom_walker::after_dom_children. 17982 * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New. 17983 * config/i386/i386.c (ix86_option_override_internal): Added 17984 maybe_setting of PARAM_AVOID_FMA_MAX_BITS. 17985 179862018-01-12 Richard Biener <rguenther@suse.de> 17987 17988 PR debug/83157 17989 * dwarf2out.c (gen_variable_die): Do not reset old_die for 17990 inline instance vars. 17991 179922018-01-12 Oleg Endo <olegendo@gcc.gnu.org> 17993 17994 PR target/81819 17995 * config/rx/rx.c (rx_is_restricted_memory_address): 17996 Handle SUBREG case. 17997 179982018-01-12 Richard Biener <rguenther@suse.de> 17999 18000 PR tree-optimization/80846 18001 * target.def (split_reduction): New target hook. 18002 * targhooks.c (default_split_reduction): New function. 18003 * targhooks.h (default_split_reduction): Declare. 18004 * tree-vect-loop.c (vect_create_epilog_for_reduction): If the 18005 target requests first reduce vectors by combining low and high 18006 parts. 18007 * tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust. 18008 (get_vectype_for_scalar_type_and_size): Export. 18009 * tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare. 18010 * doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document. 18011 * doc/tm.texi: Regenerate. 18012 * config/i386/i386.c (ix86_split_reduction): Implement 18013 TARGET_VECTORIZE_SPLIT_REDUCTION. 18014 180152018-01-12 Eric Botcazou <ebotcazou@adacore.com> 18016 18017 PR target/83368 18018 * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM 18019 in PIC mode except for TARGET_VXWORKS_RTP. 18020 * config/sparc/sparc.c: Include cfgrtl.h. 18021 (TARGET_INIT_PIC_REG): Define. 18022 (TARGET_USE_PSEUDO_PIC_REG): Likewise. 18023 (sparc_pic_register_p): New predicate. 18024 (sparc_legitimate_address_p): Use it. 18025 (sparc_legitimize_pic_address): Likewise. 18026 (sparc_delegitimize_address): Likewise. 18027 (sparc_mode_dependent_address_p): Likewise. 18028 (gen_load_pcrel_sym): Remove 4th parameter. 18029 (load_got_register): Adjust call to above. Remove obsolete stuff. 18030 (sparc_expand_prologue): Do not call load_got_register here. 18031 (sparc_flat_expand_prologue): Likewise. 18032 (sparc_output_mi_thunk): Set the pic_offset_table_rtx object. 18033 (sparc_use_pseudo_pic_reg): New function. 18034 (sparc_init_pic_reg): Likewise. 18035 * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. 18036 (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP. 18037 180382018-01-12 Christophe Lyon <christophe.lyon@linaro.org> 18039 18040 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): 18041 Add item for branch_cost. 18042 180432018-01-12 Eric Botcazou <ebotcazou@adacore.com> 18044 18045 PR rtl-optimization/83565 18046 * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do 18047 not extend the result to a larger mode for rotate operations. 18048 (num_sign_bit_copies1): Likewise. 18049 180502018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 18051 18052 PR target/40411 18053 * config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or 18054 -symbolic. 18055 Use values-Xc.o for -pedantic. 18056 Link with values-xpg4.o for C90, values-xpg6.o otherwise. 18057 180582018-01-12 Martin Liska <mliska@suse.cz> 18059 18060 PR ipa/83054 18061 * ipa-devirt.c (final_warning_record::grow_type_warnings): 18062 New function. 18063 (possible_polymorphic_call_targets): Use it. 18064 (ipa_devirt): Likewise. 18065 180662018-01-12 Martin Liska <mliska@suse.cz> 18067 18068 * profile-count.h (enum profile_quality): Use 0 as invalid 18069 enum value of profile_quality. 18070 180712018-01-12 Chung-Ju Wu <jasonwucj@gmail.com> 18072 18073 * doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and 18074 -mext-string options. 18075 180762018-01-12 Richard Biener <rguenther@suse.de> 18077 18078 * lto-streamer-out.c (DFS::DFS_write_tree_body): Process 18079 DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P. 18080 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): 18081 Likewise. 18082 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. 18083 180842018-01-11 Michael Meissner <meissner@linux.vnet.ibm.com> 18085 18086 * configure.ac (--with-long-double-format): Add support for the 18087 configuration option to change the default long double format on 18088 PowerPC systems. 18089 * config.gcc (powerpc*-linux*-*): Likewise. 18090 * configure: Regenerate. 18091 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long 18092 double is IEEE, define __KC__ and __KF__ to allow floatn.h to be 18093 used without modification. 18094 180952018-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 18096 18097 * config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define. 18098 (SPEC_BARRIER): New instantiation of BU_P7_MISC_X. 18099 * config/rs6000/rs6000.c (rs6000_expand_builtin): Handle 18100 MISC_BUILTIN_SPEC_BARRIER. 18101 (rs6000_init_builtins): Likewise. 18102 * config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV 18103 enum value. 18104 (speculation_barrier): New define_insn. 18105 * doc/extend.texi: Document __builtin_speculation_barrier. 18106 181072018-01-11 Jakub Jelinek <jakub@redhat.com> 18108 18109 PR target/83203 18110 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var 18111 is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0. 18112 * config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode 18113 iterators. 18114 (ssescalarmodesuffix): Add 512-bit vectors. Use "d" or "q" for 18115 integral modes instead of "ss" and "sd". 18116 (vec_set<mode>_0): New define_insns for 256-bit and 512-bit 18117 vectors with 32-bit and 64-bit elements. 18118 (vecdupssescalarmodesuffix): New mode attribute. 18119 (vec_dup<mode>): Use it. 18120 181212018-01-11 H.J. Lu <hongjiu.lu@intel.com> 18122 18123 PR target/83330 18124 * config/i386/i386.c (ix86_compute_frame_layout): Align stack 18125 frame if argument is passed on stack. 18126 181272018-01-11 Jakub Jelinek <jakub@redhat.com> 18128 18129 PR target/82682 18130 * ree.c (combine_reaching_defs): Optimize also 18131 reg2=exp; reg1=reg2; reg2=any_extend(reg1); into 18132 reg2=any_extend(exp); reg1=reg2;, formatting fix. 18133 181342018-01-11 Jan Hubicka <hubicka@ucw.cz> 18135 18136 PR middle-end/83189 18137 * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. 18138 181392018-01-11 Jan Hubicka <hubicka@ucw.cz> 18140 18141 PR middle-end/83718 18142 * tree-inline.c (copy_cfg_body): Adjust num&den for scaling 18143 after they are computed. 18144 181452018-01-11 Bin Cheng <bin.cheng@arm.com> 18146 18147 PR tree-optimization/83695 18148 * gimple-loop-linterchange.cc 18149 (tree_loop_interchange::interchange_loops): Call scev_reset_htab to 18150 reset cached scev information after interchange. 18151 (pass_linterchange::execute): Remove call to scev_reset_htab. 18152 181532018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18154 18155 * config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32, 18156 vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32, 18157 vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32, 18158 vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32, 18159 vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32, 18160 vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define. 18161 * config/arm/arm_neon_builtins.def (vfmal_lane_low, 18162 vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high, 18163 vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low, 18164 vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high, 18165 vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins. 18166 * config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes. 18167 (V_lane_reg): Likewise. 18168 * config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>): 18169 New define_expand. 18170 (neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise. 18171 (vfmal_lane_low<mode>_intrinsic, 18172 vfmal_lane_low<vfmlsel2><mode>_intrinsic, 18173 vfmal_lane_high<vfmlsel2><mode>_intrinsic, 18174 vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic, 18175 vfmsl_lane_low<vfmlsel2><mode>_intrinsic, 18176 vfmsl_lane_high<vfmlsel2><mode>_intrinsic, 18177 vfmsl_lane_high<mode>_intrinsic): New define_insns. 18178 181792018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18180 18181 * config/arm/arm-cpus.in (fp16fml): New feature. 18182 (ALL_SIMD): Add fp16fml. 18183 (armv8.2-a): Add fp16fml as an option. 18184 (armv8.3-a): Likewise. 18185 (armv8.4-a): Add fp16fml as part of fp16. 18186 * config/arm/arm.h (TARGET_FP16FML): Define. 18187 * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML 18188 when appropriate. 18189 * config/arm/arm-modes.def (V2HF): Define. 18190 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, 18191 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, 18192 vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define. 18193 * config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high, 18194 vfmsl_low, vfmsl_high): New set of builtins. 18195 * config/arm/iterators.md (PLUSMINUS): New code iterator. 18196 (vfml_op): New code attribute. 18197 (VFMLHALVES): New int iterator. 18198 (VFML, VFMLSEL): New mode attributes. 18199 (V_reg): Define mapping for V2HF. 18200 (V_hi, V_lo): New mode attributes. 18201 (VF_constraint): Likewise. 18202 (vfml_half, vfml_half_selector): New int attributes. 18203 * config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New 18204 define_expand. 18205 (vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic, 18206 vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic): 18207 New define_insn. 18208 * config/arm/t-arm-elf (v8_fps): Add fp16fml. 18209 * config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml. 18210 * config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs. 18211 * doc/invoke.texi (ARM Options): Document fp16fml. Update armv8.4-a 18212 documentation. 18213 * doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon): 18214 Document new effective target and option set. 18215 182162018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18217 18218 * config/arm/arm-cpus.in (armv8_4): New feature. 18219 (ARMv8_4a): New fgroup. 18220 (armv8.4-a): New arch. 18221 * config/arm/arm-tables.opt: Regenerate. 18222 * config/arm/t-aprofile: Add matching rules for -march=armv8.4-a. 18223 * config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a. 18224 * config/arm/t-multilib (v8_4_a_simd_variants): New variable. 18225 Add matching rules for -march=armv8.4-a and extensions. 18226 * doc/invoke.texi (ARM Options): Document -march=armv8.4-a. 18227 182282018-01-11 Oleg Endo <olegendo@gcc.gnu.org> 18229 18230 PR target/81821 18231 * config/rx/rx.md (BW): New mode attribute. 18232 (sync_lock_test_and_setsi): Add mode suffix to insn output. 18233 182342018-01-11 Richard Biener <rguenther@suse.de> 18235 18236 PR tree-optimization/83435 18237 * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges. 18238 * graphite-scop-detection.c (scop_detection::get_sese): Likewise. 18239 * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear. 18240 182412018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 18242 Alan Hayward <alan.hayward@arm.com> 18243 David Sherwood <david.sherwood@arm.com> 18244 18245 * config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset 18246 field. 18247 (aarch64_classify_address): Initialize it. Track polynomial offsets. 18248 (aarch64_print_address_internal): Use it to check for a zero offset. 18249 182502018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 18251 Alan Hayward <alan.hayward@arm.com> 18252 David Sherwood <david.sherwood@arm.com> 18253 18254 * config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2. 18255 * config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset): 18256 Return a poly_int64 rather than a HOST_WIDE_INT. 18257 (aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64 18258 rather than a HOST_WIDE_INT. 18259 * config/aarch64/aarch64.h (aarch64_frame): Protect with 18260 HAVE_POLY_INT_H rather than HOST_WIDE_INT. Change locals_offset, 18261 hard_fp_offset, frame_size, initial_adjust, callee_offset and 18262 final_offset from HOST_WIDE_INT to poly_int64. 18263 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use 18264 to_constant when getting the number of units in an Advanced SIMD 18265 mode. 18266 (aarch64_builtin_vectorized_function): Check for a constant number 18267 of units. 18268 * config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial 18269 GET_MODE_SIZE. 18270 (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits 18271 attribute instead of GET_MODE_NUNITS. 18272 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) 18273 (aarch64_class_max_nregs): Use the constant_lowest_bound of the 18274 GET_MODE_SIZE for fixed-size registers. 18275 (aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p. 18276 (aarch64_hard_regno_call_part_clobbered, aarch64_classify_index) 18277 (aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address) 18278 (aarch64_legitimize_address_displacement, aarch64_secondary_reload) 18279 (aarch64_print_operand, aarch64_print_address_internal) 18280 (aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost) 18281 (aarch64_short_vector_p, aapcs_vfp_sub_candidate) 18282 (aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp): 18283 Handle polynomial GET_MODE_SIZE. 18284 (aarch64_hard_regno_caller_save_mode): Likewise. Return modes 18285 wider than SImode without modification. 18286 (tls_symbolic_operand_type): Use strip_offset instead of split_const. 18287 (aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward) 18288 (aarch64_gimplify_va_arg_expr): Assert that we don't yet handle 18289 passing and returning SVE modes. 18290 (aarch64_function_value, aarch64_layout_arg): Use gen_int_mode 18291 rather than GEN_INT. 18292 (aarch64_emit_probe_stack_range): Take the size as a poly_int64 18293 rather than a HOST_WIDE_INT, but call sorry if it isn't constant. 18294 (aarch64_allocate_and_probe_stack_space): Likewise. 18295 (aarch64_layout_frame): Cope with polynomial offsets. 18296 (aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the 18297 start_offset as a poly_int64 rather than a HOST_WIDE_INT. Track 18298 polynomial offsets. 18299 (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p) 18300 (aarch64_offset_7bit_signed_scaled_p): Take the offset as a 18301 poly_int64 rather than a HOST_WIDE_INT. 18302 (aarch64_get_separate_components, aarch64_process_components) 18303 (aarch64_expand_prologue, aarch64_expand_epilogue) 18304 (aarch64_use_return_insn_p): Handle polynomial frame offsets. 18305 (aarch64_anchor_offset): New function, split out from... 18306 (aarch64_legitimize_address): ...here. 18307 (aarch64_builtin_vectorization_cost): Handle polynomial 18308 TYPE_VECTOR_SUBPARTS. 18309 (aarch64_simd_check_vect_par_cnst_half): Handle polynomial 18310 GET_MODE_NUNITS. 18311 (aarch64_simd_make_constant, aarch64_expand_vector_init): Get the 18312 number of elements from the PARALLEL rather than the mode. 18313 (aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE 18314 rather than GET_MODE_BITSIZE. 18315 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext) 18316 (aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip) 18317 (aarch64_expand_vec_perm_const_1): Handle polynomial 18318 d->perm.length () and d->perm elements. 18319 (aarch64_evpc_tbl): Likewise. Use nelt rather than GET_MODE_NUNITS. 18320 Apply to_constant to d->perm elements. 18321 (aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle 18322 polynomial CONST_VECTOR_NUNITS. 18323 (aarch64_move_pointer): Take amount as a poly_int64 rather 18324 than an int. 18325 (aarch64_progress_pointer): Avoid temporary variable. 18326 * config/aarch64/aarch64.md (aarch64_<crc_variant>): Use 18327 the mode attribute instead of GET_MODE. 18328 183292018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 18330 Alan Hayward <alan.hayward@arm.com> 18331 David Sherwood <david.sherwood@arm.com> 18332 18333 * config/aarch64/aarch64.c (aarch64_force_temporary): Assert that 18334 x exists before using it. 18335 (aarch64_add_constant_internal): Rename to... 18336 (aarch64_add_offset_1): ...this. Replace regnum with separate 18337 src and dest rtxes. Handle the case in which they're different, 18338 including when the offset is zero. Replace scratchreg with an rtx. 18339 Use 2 additions if there is no spare register into which we can 18340 move a 16-bit constant. 18341 (aarch64_add_constant): Delete. 18342 (aarch64_add_offset): Replace reg with separate src and dest 18343 rtxes. Take a poly_int64 offset instead of a HOST_WIDE_INT. 18344 Use aarch64_add_offset_1. 18345 (aarch64_add_sp, aarch64_sub_sp): Take the scratch register as 18346 an rtx rather than an int. Take the delta as a poly_int64 18347 rather than a HOST_WIDE_INT. Use aarch64_add_offset. 18348 (aarch64_expand_mov_immediate): Update uses of aarch64_add_offset. 18349 (aarch64_expand_prologue): Update calls to aarch64_sub_sp, 18350 aarch64_allocate_and_probe_stack_space and aarch64_add_offset. 18351 (aarch64_expand_epilogue): Update calls to aarch64_add_offset 18352 and aarch64_add_sp. 18353 (aarch64_output_mi_thunk): Use aarch64_add_offset rather than 18354 aarch64_add_constant. 18355 183562018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 18357 18358 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): 18359 Use scalar_float_mode. 18360 183612018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 18362 18363 * config/aarch64/aarch64-simd.md 18364 (aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS. 18365 (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise. 18366 (aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise. 18367 (aarch64_fml<f16mac1>l_lane_highv2sf): Likewise. 18368 (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise. 18369 (aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise. 18370 (aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise. 18371 (aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise. 18372 (aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise. 18373 (aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise. 18374 183752018-01-11 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 18376 18377 PR target/83514 18378 * config/arm/arm.c (arm_declare_function_name): Set arch_to_print if 18379 targ_options->x_arm_arch_string is non NULL. 18380 183812018-01-11 Tamar Christina <tamar.christina@arm.com> 18382 18383 * config/aarch64/aarch64.h 18384 (AARCH64_FL_FOR_ARCH8_4): Add AARCH64_FL_DOTPROD. 18385 183862018-01-11 Sudakshina Das <sudi.das@arm.com> 18387 18388 PR target/82096 18389 * expmed.c (emit_store_flag_force): Swap if const op0 18390 and change VOIDmode to mode of op0. 18391 183922018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 18393 18394 PR rtl-optimization/83761 18395 * caller-save.c (replace_reg_with_saved_mem): Pass bits rather 18396 than bytes to mode_for_size. 18397 183982018-01-10 Jan Hubicka <hubicka@ucw.cz> 18399 18400 PR middle-end/83189 18401 * gfortran.fortran-torture/compile/pr83189.f90: New testcase. 18402 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero 18403 profile. 18404 184052018-01-10 Jan Hubicka <hubicka@ucw.cz> 18406 18407 PR middle-end/83575 18408 * cfgrtl.c (rtl_verify_edges): Only verify fixability of partition 18409 when in layout mode. 18410 (cfg_layout_finalize): Do not verify cfg before we are out of layout. 18411 * cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing 18412 partition fixup. 18413 184142018-01-10 Michael Collison <michael.collison@arm.com> 18415 18416 * config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE. 18417 * config/aarch64/aarch64-option-extension.def: Add 18418 AARCH64_OPT_EXTENSION of 'fp16fml'. 18419 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 18420 (__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true. 18421 * config/aarch64/predicates.md (aarch64_lane_imm3): New predicate. 18422 * config/aarch64/constraints.md (Ui7): New constraint. 18423 * config/aarch64/iterators.md (VFMLA_W): New mode iterator. 18424 (VFMLA_SEL_W): Ditto. 18425 (f16quad): Ditto. 18426 (f16mac1): Ditto. 18427 (VFMLA16_LOW): New int iterator. 18428 (VFMLA16_HIGH): Ditto. 18429 (UNSPEC_FMLAL): New unspec. 18430 (UNSPEC_FMLSL): Ditto. 18431 (UNSPEC_FMLAL2): Ditto. 18432 (UNSPEC_FMLSL2): Ditto. 18433 (f16mac): New code attribute. 18434 * config/aarch64/aarch64-simd-builtins.def 18435 (aarch64_fmlal_lowv2sf): Ditto. 18436 (aarch64_fmlsl_lowv2sf): Ditto. 18437 (aarch64_fmlalq_lowv4sf): Ditto. 18438 (aarch64_fmlslq_lowv4sf): Ditto. 18439 (aarch64_fmlal_highv2sf): Ditto. 18440 (aarch64_fmlsl_highv2sf): Ditto. 18441 (aarch64_fmlalq_highv4sf): Ditto. 18442 (aarch64_fmlslq_highv4sf): Ditto. 18443 (aarch64_fmlal_lane_lowv2sf): Ditto. 18444 (aarch64_fmlsl_lane_lowv2sf): Ditto. 18445 (aarch64_fmlal_laneq_lowv2sf): Ditto. 18446 (aarch64_fmlsl_laneq_lowv2sf): Ditto. 18447 (aarch64_fmlalq_lane_lowv4sf): Ditto. 18448 (aarch64_fmlsl_lane_lowv4sf): Ditto. 18449 (aarch64_fmlalq_laneq_lowv4sf): Ditto. 18450 (aarch64_fmlsl_laneq_lowv4sf): Ditto. 18451 (aarch64_fmlal_lane_highv2sf): Ditto. 18452 (aarch64_fmlsl_lane_highv2sf): Ditto. 18453 (aarch64_fmlal_laneq_highv2sf): Ditto. 18454 (aarch64_fmlsl_laneq_highv2sf): Ditto. 18455 (aarch64_fmlalq_lane_highv4sf): Ditto. 18456 (aarch64_fmlsl_lane_highv4sf): Ditto. 18457 (aarch64_fmlalq_laneq_highv4sf): Ditto. 18458 (aarch64_fmlsl_laneq_highv4sf): Ditto. 18459 * config/aarch64/aarch64-simd.md: 18460 (aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern. 18461 (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto. 18462 (aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto. 18463 (aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto. 18464 (aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto. 18465 (aarch64_fml<f16mac1>l_lane_highv2sf): Ditto. 18466 (aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto. 18467 (aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto. 18468 (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto. 18469 (aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto. 18470 (aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto. 18471 (aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto. 18472 (aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto. 18473 (aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto. 18474 (aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto. 18475 (aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto. 18476 (aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto. 18477 (aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto. 18478 (aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto. 18479 (aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto. 18480 * config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic. 18481 (vfmlsl_low_u32): Ditto. 18482 (vfmlalq_low_u32): Ditto. 18483 (vfmlslq_low_u32): Ditto. 18484 (vfmlal_high_u32): Ditto. 18485 (vfmlsl_high_u32): Ditto. 18486 (vfmlalq_high_u32): Ditto. 18487 (vfmlslq_high_u32): Ditto. 18488 (vfmlal_lane_low_u32): Ditto. 18489 (vfmlsl_lane_low_u32): Ditto. 18490 (vfmlal_laneq_low_u32): Ditto. 18491 (vfmlsl_laneq_low_u32): Ditto. 18492 (vfmlalq_lane_low_u32): Ditto. 18493 (vfmlslq_lane_low_u32): Ditto. 18494 (vfmlalq_laneq_low_u32): Ditto. 18495 (vfmlslq_laneq_low_u32): Ditto. 18496 (vfmlal_lane_high_u32): Ditto. 18497 (vfmlsl_lane_high_u32): Ditto. 18498 (vfmlal_laneq_high_u32): Ditto. 18499 (vfmlsl_laneq_high_u32): Ditto. 18500 (vfmlalq_lane_high_u32): Ditto. 18501 (vfmlslq_lane_high_u32): Ditto. 18502 (vfmlalq_laneq_high_u32): Ditto. 18503 (vfmlslq_laneq_high_u32): Ditto. 18504 * config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag. 18505 (AARCH64_FL_FOR_ARCH8_4): New. 18506 (AARCH64_ISA_F16FML): New ISA flag. 18507 (TARGET_F16FML): New feature flag for fp16fml. 18508 (doc/invoke.texi): Document new fp16fml option. 18509 185102018-01-10 Michael Collison <michael.collison@arm.com> 18511 18512 * config/aarch64/aarch64-builtins.c: 18513 (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New. 18514 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 18515 (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true. 18516 * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags. 18517 (AARCH64_ISA_SHA3): New ISA flag. 18518 (TARGET_SHA3): New feature flag for sha3. 18519 * config/aarch64/iterators.md (sha512_op): New int attribute. 18520 (CRYPTO_SHA512): New int iterator. 18521 (UNSPEC_SHA512H): New unspec. 18522 (UNSPEC_SHA512H2): Ditto. 18523 (UNSPEC_SHA512SU0): Ditto. 18524 (UNSPEC_SHA512SU1): Ditto. 18525 * config/aarch64/aarch64-simd-builtins.def 18526 (aarch64_crypto_sha512hqv2di): New builtin. 18527 (aarch64_crypto_sha512h2qv2di): Ditto. 18528 (aarch64_crypto_sha512su0qv2di): Ditto. 18529 (aarch64_crypto_sha512su1qv2di): Ditto. 18530 (aarch64_eor3qv8hi): Ditto. 18531 (aarch64_rax1qv2di): Ditto. 18532 (aarch64_xarqv2di): Ditto. 18533 (aarch64_bcaxqv8hi): Ditto. 18534 * config/aarch64/aarch64-simd.md: 18535 (aarch64_crypto_sha512h<sha512_op>qv2di): New pattern. 18536 (aarch64_crypto_sha512su0qv2di): Ditto. 18537 (aarch64_crypto_sha512su1qv2di): Ditto. 18538 (aarch64_eor3qv8hi): Ditto. 18539 (aarch64_rax1qv2di): Ditto. 18540 (aarch64_xarqv2di): Ditto. 18541 (aarch64_bcaxqv8hi): Ditto. 18542 * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic. 18543 (vsha512h2q_u64): Ditto. 18544 (vsha512su0q_u64): Ditto. 18545 (vsha512su1q_u64): Ditto. 18546 (veor3q_u16): Ditto. 18547 (vrax1q_u64): Ditto. 18548 (vxarq_u64): Ditto. 18549 (vbcaxq_u16): Ditto. 18550 * config/arm/types.md (crypto_sha512): New type attribute. 18551 (crypto_sha3): Ditto. 18552 (doc/invoke.texi): Document new sha3 option. 18553 185542018-01-10 Michael Collison <michael.collison@arm.com> 18555 18556 * config/aarch64/aarch64-builtins.c: 18557 (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New. 18558 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 18559 (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true. 18560 (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true. 18561 * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags. 18562 (AARCH64_ISA_SM4): New ISA flag. 18563 (TARGET_SM4): New feature flag for sm4. 18564 * config/aarch64/aarch64-simd-builtins.def 18565 (aarch64_sm3ss1qv4si): Ditto. 18566 (aarch64_sm3tt1aq4si): Ditto. 18567 (aarch64_sm3tt1bq4si): Ditto. 18568 (aarch64_sm3tt2aq4si): Ditto. 18569 (aarch64_sm3tt2bq4si): Ditto. 18570 (aarch64_sm3partw1qv4si): Ditto. 18571 (aarch64_sm3partw2qv4si): Ditto. 18572 (aarch64_sm4eqv4si): Ditto. 18573 (aarch64_sm4ekeyqv4si): Ditto. 18574 * config/aarch64/aarch64-simd.md: 18575 (aarch64_sm3ss1qv4si): Ditto. 18576 (aarch64_sm3tt<sm3tt_op>qv4si): Ditto. 18577 (aarch64_sm3partw<sm3part_op>qv4si): Ditto. 18578 (aarch64_sm4eqv4si): Ditto. 18579 (aarch64_sm4ekeyqv4si): Ditto. 18580 * config/aarch64/iterators.md (sm3tt_op): New int iterator. 18581 (sm3part_op): Ditto. 18582 (CRYPTO_SM3TT): Ditto. 18583 (CRYPTO_SM3PART): Ditto. 18584 (UNSPEC_SM3SS1): New unspec. 18585 (UNSPEC_SM3TT1A): Ditto. 18586 (UNSPEC_SM3TT1B): Ditto. 18587 (UNSPEC_SM3TT2A): Ditto. 18588 (UNSPEC_SM3TT2B): Ditto. 18589 (UNSPEC_SM3PARTW1): Ditto. 18590 (UNSPEC_SM3PARTW2): Ditto. 18591 (UNSPEC_SM4E): Ditto. 18592 (UNSPEC_SM4EKEY): Ditto. 18593 * config/aarch64/constraints.md (Ui2): New constraint. 18594 * config/aarch64/predicates.md (aarch64_imm2): New predicate. 18595 * config/arm/types.md (crypto_sm3): New type attribute. 18596 (crypto_sm4): Ditto. 18597 * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic. 18598 (vsm3tt1aq_u32): Ditto. 18599 (vsm3tt1bq_u32): Ditto. 18600 (vsm3tt2aq_u32): Ditto. 18601 (vsm3tt2bq_u32): Ditto. 18602 (vsm3partw1q_u32): Ditto. 18603 (vsm3partw2q_u32): Ditto. 18604 (vsm4eq_u32): Ditto. 18605 (vsm4ekeyq_u32): Ditto. 18606 (doc/invoke.texi): Document new sm4 option. 18607 186082018-01-10 Michael Collison <michael.collison@arm.com> 18609 18610 * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture. 18611 * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag. 18612 (AARCH64_FL_FOR_ARCH8_4): New. 18613 (AARCH64_FL_V8_4): New flag. 18614 (doc/invoke.texi): Document new armv8.4-a option. 18615 186162018-01-10 Michael Collison <michael.collison@arm.com> 18617 18618 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 18619 (__ARM_FEATURE_AES): Define if TARGET_AES is true. 18620 (__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true. 18621 * config/aarch64/aarch64-option-extension.def: Add 18622 AARCH64_OPT_EXTENSION of 'sha2'. 18623 (aes): Add AARCH64_OPT_EXTENSION of 'aes'. 18624 (crypto): Disable sha2 and aes if crypto disabled. 18625 (crypto): Enable aes and sha2 if enabled. 18626 (simd): Disable sha2 and aes if simd disabled. 18627 * config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2): 18628 New flags. 18629 (AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags. 18630 (TARGET_SHA2): New feature flag for sha2. 18631 (TARGET_AES): New feature flag for aes. 18632 * config/aarch64/aarch64-simd.md: 18633 (aarch64_crypto_aes<aes_op>v16qi): Make pattern 18634 conditional on TARGET_AES. 18635 (aarch64_crypto_aes<aesmc_op>v16qi): Ditto. 18636 (aarch64_crypto_sha1hsi): Make pattern conditional 18637 on TARGET_SHA2. 18638 (aarch64_crypto_sha1hv4si): Ditto. 18639 (aarch64_be_crypto_sha1hv4si): Ditto. 18640 (aarch64_crypto_sha1su1v4si): Ditto. 18641 (aarch64_crypto_sha1<sha1_op>v4si): Ditto. 18642 (aarch64_crypto_sha1su0v4si): Ditto. 18643 (aarch64_crypto_sha256h<sha256_op>v4si): Ditto. 18644 (aarch64_crypto_sha256su0v4si): Ditto. 18645 (aarch64_crypto_sha256su1v4si): Ditto. 18646 (doc/invoke.texi): Document new aes and sha2 options. 18647 186482018-01-10 Martin Sebor <msebor@redhat.com> 18649 18650 PR tree-optimization/83781 18651 * gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers 18652 as string arrays. 18653 186542018-01-11 Martin Sebor <msebor@gmail.com> 18655 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 18656 18657 PR tree-optimization/83501 18658 PR tree-optimization/81703 18659 18660 * tree-ssa-strlen.c (get_string_cst): Rename... 18661 (get_string_len): ...to this. Handle global constants. 18662 (handle_char_store): Adjust. 18663 186642018-01-10 Kito Cheng <kito.cheng@gmail.com> 18665 Jim Wilson <jimw@sifive.com> 18666 18667 * config/riscv/riscv-protos.h (riscv_output_return): New. 18668 * config/riscv/riscv.c (struct machine_function): New naked_p field. 18669 (riscv_attribute_table, riscv_output_return), 18670 (riscv_handle_fndecl_attribute, riscv_naked_function_p), 18671 (riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New. 18672 (riscv_compute_frame_info): Only compute frame->mask if not a naked 18673 function. 18674 (riscv_expand_prologue): Add early return for naked function. 18675 (riscv_expand_epilogue): Likewise. 18676 (riscv_function_ok_for_sibcall): Return false for naked function. 18677 (riscv_set_current_function): New. 18678 (TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS), 18679 (TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New. 18680 * config/riscv/riscv.md (simple_return): Call riscv_output_return. 18681 * doc/extend.texi (RISC-V Function Attributes): New. 18682 186832018-01-10 Michael Meissner <meissner@linux.vnet.ibm.com> 18684 18685 * config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly 18686 check for 128-bit long double before checking TCmode. 18687 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for 18688 128-bit long doubles before checking TFmode or TCmode. 18689 (FLOAT128_IBM_P): Likewise. 18690 186912018-01-10 Martin Sebor <msebor@redhat.com> 18692 18693 PR tree-optimization/83671 18694 * builtins.c (c_strlen): Unconditionally return zero for the empty 18695 string. 18696 Use -Warray-bounds for warnings. 18697 * gimple-fold.c (get_range_strlen): Handle non-constant lengths 18698 for non-constant array indices with COMPONENT_REF, arrays of 18699 arrays, and pointers to arrays. 18700 (gimple_fold_builtin_strlen): Determine and set length range for 18701 non-constant character arrays. 18702 187032018-01-10 Aldy Hernandez <aldyh@redhat.com> 18704 18705 PR middle-end/81897 18706 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip 18707 empty blocks. 18708 187092018-01-10 Eric Botcazou <ebotcazou@adacore.com> 18710 18711 * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf. 18712 187132018-01-10 Peter Bergner <bergner@vnet.ibm.com> 18714 18715 PR target/83399 18716 * config/rs6000/rs6000.c (print_operand) <'y'>: Use 18717 VECTOR_MEM_ALTIVEC_OR_VSX_P. 18718 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use 18719 indexed_or_indirect_operand predicate. 18720 (*vsx_le_perm_load_<mode> for VSX_W): Likewise. 18721 (*vsx_le_perm_load_v8hi): Likewise. 18722 (*vsx_le_perm_load_v16qi): Likewise. 18723 (*vsx_le_perm_store_<mode> for VSX_D): Likewise. 18724 (*vsx_le_perm_store_<mode> for VSX_W): Likewise. 18725 (*vsx_le_perm_store_v8hi): Likewise. 18726 (*vsx_le_perm_store_v16qi): Likewise. 18727 (eight unnamed splitters): Likewise. 18728 187292018-01-10 Peter Bergner <bergner@vnet.ibm.com> 18730 18731 * config/rs6000/x86intrin.h: Change #warning to #error. Update message. 18732 * config/rs6000/emmintrin.h: Likewise. 18733 * config/rs6000/mmintrin.h: Likewise. 18734 * config/rs6000/xmmintrin.h: Likewise. 18735 187362018-01-10 David Malcolm <dmalcolm@redhat.com> 18737 18738 PR c++/43486 18739 * tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of 18740 "public_flag". 18741 * tree.c (tree_nop_conversion): Return true for location wrapper 18742 nodes. 18743 (maybe_wrap_with_location): New function. 18744 (selftest::check_strip_nops): New function. 18745 (selftest::test_location_wrappers): New function. 18746 (selftest::tree_c_tests): Call it. 18747 * tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro. 18748 (maybe_wrap_with_location): New decl. 18749 (EXPR_LOCATION_WRAPPER_P): New macro. 18750 (location_wrapper_p): New inline function. 18751 (tree_strip_any_location_wrapper): New inline function. 18752 187532018-01-10 H.J. Lu <hongjiu.lu@intel.com> 18754 18755 PR target/83735 18756 * config/i386/i386.c (ix86_compute_frame_layout): Always adjust 18757 stack_realign_offset for the largest alignment of stack slot 18758 actually used. 18759 (ix86_find_max_used_stack_alignment): New function. 18760 (ix86_finalize_stack_frame_flags): Use it. Set 18761 max_used_stack_alignment if we don't realign stack. 18762 * config/i386/i386.h (machine_function): Add 18763 max_used_stack_alignment. 18764 187652018-01-10 Christophe Lyon <christophe.lyon@linaro.org> 18766 18767 * config/arm/arm.opt (-mbranch-cost): New option. 18768 * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into 18769 account. 18770 187712018-01-10 Segher Boessenkool <segher@kernel.crashing.org> 18772 18773 PR target/83629 18774 * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b, 18775 load_toc_v4_PIC_3c): Wrap const term in CONST RTL. 18776 187772018-01-10 Richard Biener <rguenther@suse.de> 18778 18779 PR debug/83765 18780 * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration 18781 early out so it also covers the case where we have a non-NULL 18782 origin. 18783 187842018-01-10 Richard Sandiford <richard.sandiford@linaro.org> 18785 18786 PR tree-optimization/83753 18787 * tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS 18788 for non-strided grouped accesses if the number of elements is 1. 18789 187902018-01-10 Jan Hubicka <hubicka@ucw.cz> 18791 18792 PR target/81616 18793 * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. 18794 * i386.h (TARGET_USE_GATHER): Define. 18795 * x86-tune.def (X86_TUNE_USE_GATHER): New. 18796 187972018-01-10 Martin Liska <mliska@suse.cz> 18798 18799 PR bootstrap/82831 18800 * basic-block.h (CLEANUP_NO_PARTITIONING): New define. 18801 * bb-reorder.c (pass_reorder_blocks::execute): Do not clean up 18802 partitioning. 18803 * cfgcleanup.c (try_optimize_cfg): Fix up partitioning if 18804 CLEANUP_NO_PARTITIONING is not set. 18805 188062018-01-10 Richard Sandiford <richard.sandiford@linaro.org> 18807 18808 * doc/rtl.texi: Remove documentation of (const ...) wrappers 18809 for vectors, as a partial revert of r254296. 18810 * rtl.h (const_vec_p): Delete. 18811 (const_vec_duplicate_p): Don't test for vector CONSTs. 18812 (unwrap_const_vec_duplicate, const_vec_series_p): Likewise. 18813 * expmed.c (make_tree): Likewise. 18814 18815 Revert: 18816 * common.md (E, F): Use CONSTANT_P instead of checking for 18817 CONST_VECTOR. 18818 * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of 18819 checking for CONST_VECTOR. 18820 188212018-01-09 Jan Hubicka <hubicka@ucw.cz> 18822 18823 PR middle-end/83575 18824 * predict.c (force_edge_cold): Handle in more sane way edges 18825 with no prediction. 18826 188272018-01-09 Carl Love <cel@us.ibm.com> 18828 18829 * config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF, 18830 V4SI, V4SF types. 18831 (p8_vmrgew): Add support for V2DI, V2DF, V4SF types. 18832 * config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF, 18833 VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF, 18834 VMRGOW_V2DI, VMRGOW_V2DF. Remove definition for VMRGOW. 18835 * config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2, 18836 P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW): Add definitions. 18837 * config/rs6000/rs6000-protos.h: Add extern defition for 18838 rs6000_generate_float2_double_code. 18839 * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add 18840 function. 18841 * config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn. 18842 (float2_v2df): Add define_expand. 18843 188442018-01-09 Uros Bizjak <ubizjak@gmail.com> 18845 18846 PR target/83628 18847 * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of 18848 op_mode in the force_to_mode call. 18849 188502018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 18851 18852 * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p 18853 instead of checking each element individually. 18854 (aarch64_evpc_uzp): Likewise. 18855 (aarch64_evpc_zip): Likewise. 18856 (aarch64_evpc_ext): Likewise. 18857 (aarch64_evpc_rev): Likewise. 18858 (aarch64_evpc_dup): Test the encoding for a single duplicated element, 18859 instead of checking each element individually. Return true without 18860 generating rtl if 18861 (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test 18862 whether all selected elements come from the same input, instead of 18863 checking each element individually. Remove calls to gen_rtx_REG, 18864 start_sequence and end_sequence and instead assert that no rtl is 18865 generated. 18866 188672018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 18868 18869 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix 18870 order of HIGH and CONST checks. 18871 188722018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 18873 18874 * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable 18875 if the destination isn't an SSA_NAME. 18876 188772018-01-09 Richard Biener <rguenther@suse.de> 18878 18879 PR tree-optimization/83668 18880 * graphite.c (canonicalize_loop_closed_ssa): Add edge argument, 18881 move prologue... 18882 (canonicalize_loop_form): ... here, renamed from ... 18883 (canonicalize_loop_closed_ssa_form): ... this and amended to 18884 swap successor edges for loop exit blocks to make us use 18885 the RPO order we need for initial schedule generation. 18886 188872018-01-09 Joseph Myers <joseph@codesourcery.com> 18888 18889 PR tree-optimization/64811 18890 * match.pd: When optimizing comparisons with Inf, avoid 18891 introducing or losing exceptions from comparisons with NaN. 18892 188932018-01-09 Martin Liska <mliska@suse.cz> 18894 18895 PR sanitizer/82517 18896 * asan.c (shadow_mem_size): Add gcc_assert. 18897 188982018-01-09 Georg-Johann Lay <avr@gjlay.de> 18899 18900 Don't save registers in main(). 18901 18902 PR target/83738 18903 * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it. 18904 * config/avr/avr.opt (-mmain-is-OS_task): New target option. 18905 * config/avr/avr.c (avr_set_current_function): Don't error if 18906 naked, OS_task or OS_main are specified at the same time. 18907 (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task, 18908 OS_main. 18909 (avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task 18910 attribute. 18911 * common/config/avr/avr-common.c (avr_option_optimization_table): 18912 Switch on -mmain-is-OS_task for optimizing compilations. 18913 189142018-01-09 Richard Biener <rguenther@suse.de> 18915 18916 PR tree-optimization/83572 18917 * graphite.c: Include cfganal.h. 18918 (graphite_transform_loops): Connect infinite loops to exit 18919 and remove fake edges at the end. 18920 189212018-01-09 Jan Hubicka <hubicka@ucw.cz> 18922 18923 * ipa-inline.c (edge_badness): Revert accidental checkin. 18924 189252018-01-09 Jan Hubicka <hubicka@ucw.cz> 18926 18927 PR ipa/80763 18928 * ipa-comdats.c (set_comdat_group): Only set comdat group of real 18929 symbols; not inline clones. 18930 189312018-01-09 Jakub Jelinek <jakub@redhat.com> 18932 18933 PR target/83507 18934 * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move 18935 hard registers. Formatting fixes. 18936 18937 PR preprocessor/83722 18938 * gcc.c (try_generate_repro): Pass 18939 &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than 18940 &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to 18941 do_report_bug. 18942 189432018-01-08 Monk Chiang <sh.chiang04@gmail.com> 18944 Kito Cheng <kito.cheng@gmail.com> 18945 18946 * config/riscv/riscv.c (machine_function::is_leaf): Remove field. 18947 (riscv_leaf_function_p): Delete. 18948 (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE. 18949 189502018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 18951 18952 * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New 18953 function. 18954 (do_ifelse): New function. 18955 (do_isel): New function. 18956 (do_sub3): New function. 18957 (do_add3): New function. 18958 (do_load_mask_compare): New function. 18959 (do_overlap_load_compare): New function. 18960 (expand_compare_loop): New function. 18961 (expand_block_compare): Call expand_compare_loop() when appropriate. 18962 * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change 18963 option description. 18964 (-mblock-compare-inline-loop-limit): New option. 18965 189662018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 18967 18968 PR target/83677 18969 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal): 18970 Reverse order of second and third operands in first alternative. 18971 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order 18972 of first and second elements in UNSPEC_VPERMR vector. 18973 (altivec_expand_vec_perm_le): Likewise. 18974 189752018-01-08 Jeff Law <law@redhat.com> 18976 18977 PR rtl-optimizatin/81308 18978 * tree-switch-conversion.c (cfg_altered): New file scoped static. 18979 (process_switch): If group_case_labels makes a change, then set 18980 cfg_altered. 18981 (pass_convert_switch::execute): If a switch is converted, then 18982 set cfg_altered. Return TODO_cfg_cleanup if cfg_altered is true. 18983 18984 PR rtl-optimization/81308 18985 * recog.c (split_all_insns): Conditionally cleanup the CFG after 18986 splitting insns. 18987 189882018-01-08 Vidya Praveen <vidyapraveen@arm.com> 18989 18990 PR target/83663 - Revert r255946 18991 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code 18992 generation for cases where splatting a value is not useful. 18993 * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge 18994 across a vec_duplicate and a paradoxical subreg forming a vector 18995 mode to a vec_concat. 18996 189972018-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18998 18999 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for 19000 -march=armv8.3-a variants. 19001 * config/arm/t-multilib: Likewise. 19002 * config/arm/t-arm-elf: Likewise. Handle dotprod extension. 19003 190042018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 19005 19006 * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it 19007 to generate rtl. 19008 (cceq_ior_compare_complement): Give it a name so I can use it, and 19009 change boolean_or_operator predicate to boolean_operator so it can 19010 be used to generate a crand. 19011 (eqne): New code iterator. 19012 (bd/bd_neg): New code_attrs. 19013 (<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into 19014 a single define_insn. 19015 (<bd>tf_<mode>): A new insn pattern for the conditional form branch 19016 decrement (bdnzt/bdnzf/bdzt/bdzf). 19017 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated 19018 with the new names of the branch decrement patterns, and added the 19019 names of the branch decrement conditional patterns. 19020 190212018-01-08 Richard Biener <rguenther@suse.de> 19022 19023 PR tree-optimization/83563 19024 * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV 19025 cache. 19026 190272018-01-08 Richard Biener <rguenther@suse.de> 19028 19029 PR middle-end/83713 19030 * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. 19031 190322018-01-08 Richard Biener <rguenther@suse.de> 19033 19034 PR tree-optimization/83685 19035 * tree-ssa-pre.c (create_expression_by_pieces): Do not insert 19036 references to abnormals. 19037 190382018-01-08 Richard Biener <rguenther@suse.de> 19039 19040 PR lto/83719 19041 * dwarf2out.c (output_indirect_strings): Handle empty 19042 skeleton_debug_str_hash. 19043 (dwarf2out_early_finish): Index strings for -gsplit-dwarf. 19044 190452018-01-08 Claudiu Zissulescu <claziss@synopsys.com> 19046 19047 * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete. 19048 (emit_store_direct): Likewise. 19049 (arc_trampoline_adjust_address): Likewise. 19050 (arc_asm_trampoline_template): New function. 19051 (arc_initialize_trampoline): Use asm_trampoline_template. 19052 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define. 19053 * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16. 19054 * config/arc/arc.md (flush_icache): Delete pattern. 19055 190562018-01-08 Claudiu Zissulescu <claziss@synopsys.com> 19057 19058 * config/arc/arc-c.def (__ARC_UNALIGNED__): New define. 19059 * config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using 19060 munaligned-access. 19061 190622018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> 19063 19064 PR target/83681 19065 * config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard 19066 by not USED_FOR_TARGET. 19067 (make_pass_resolve_sw_modes): Likewise. 19068 190692018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> 19070 19071 * config/nios2/nios2.h (nios2_section_threshold): Guard by not 19072 USED_FOR_TARGET. 19073 190742018-01-08 Richard Biener <rguenther@suse.de> 19075 19076 PR middle-end/83580 19077 * tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS. 19078 190792018-01-08 Richard Biener <rguenther@suse.de> 19080 19081 PR middle-end/83517 19082 * match.pd ((t * 2) / 2) -> t): Add missing :c. 19083 190842018-01-06 Aldy Hernandez <aldyh@redhat.com> 19085 19086 PR middle-end/81897 19087 * tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on 19088 basic blocks with a small number of successors. 19089 (convert_control_dep_chain_into_preds): Improve handling of 19090 forwarder blocks. 19091 (dump_predicates): Split apart into... 19092 (dump_pred_chain): ...here... 19093 (dump_pred_info): ...and here. 19094 (can_one_predicate_be_invalidated_p): Add debugging printfs. 19095 (can_chain_union_be_invalidated_p): Improve check for invalidation 19096 of paths. 19097 (uninit_uses_cannot_happen): Avoid unnecessary if 19098 convert_control_dep_chain_into_preds yielded nothing. 19099 191002018-01-06 Martin Sebor <msebor@redhat.com> 19101 19102 PR tree-optimization/83640 19103 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid 19104 subtracting negative offset from size. 19105 (builtin_access::overlap): Adjust offset bounds of the access to fall 19106 within the size of the object if possible. 19107 191082018-01-06 Richard Sandiford <richard.sandiford@linaro.org> 19109 19110 PR rtl-optimization/83699 19111 * expmed.c (extract_bit_field_1): Restrict the vector usage of 19112 extract_bit_field_as_subreg to cases in which the extracted 19113 value is also a vector. 19114 19115 * lra-constraints.c (process_alt_operands): Test for the equivalence 19116 substitutions when detecting a possible reload cycle. 19117 191182018-01-06 Jakub Jelinek <jakub@redhat.com> 19119 19120 PR debug/83480 19121 * toplev.c (process_options): Don't enable debug_nonbind_markers_p 19122 by default if flag_selective_schedling{,2}. Formatting fixes. 19123 19124 PR rtl-optimization/83682 19125 * rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE 19126 if it has non-VECTOR_MODE element mode. 19127 (vec_duplicate_p): Likewise. 19128 19129 PR middle-end/83694 19130 * cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode 19131 and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT. 19132 191332018-01-05 Jakub Jelinek <jakub@redhat.com> 19134 19135 PR target/83604 19136 * config/i386/i386-builtin.def 19137 (__builtin_ia32_vgf2p8affineinvqb_v64qi, 19138 __builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi): 19139 Require also OPTION_MASK_ISA_AVX512F in addition to 19140 OPTION_MASK_ISA_GFNI. 19141 (__builtin_ia32_vgf2p8affineinvqb_v16qi_mask, 19142 __builtin_ia32_vgf2p8affineqb_v16qi_mask): Require 19143 OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition 19144 to OPTION_MASK_ISA_GFNI. 19145 (__builtin_ia32_vgf2p8mulb_v32qi_mask): Require 19146 OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and 19147 OPTION_MASK_ISA_AVX512BW. 19148 (__builtin_ia32_vgf2p8mulb_v16qi_mask): Require 19149 OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in 19150 addition to OPTION_MASK_ISA_GFNI. 19151 (__builtin_ia32_vgf2p8affineinvqb_v16qi, 19152 __builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi): 19153 Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition 19154 to OPTION_MASK_ISA_GFNI. 19155 * config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being 19156 a requirement for all ISAs rather than any of them with a few 19157 exceptions. 19158 (ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before 19159 processing. 19160 (ix86_expand_builtin): Require all ISAs from builtin's isa and isa2 19161 bitmasks to be enabled with 3 exceptions, instead of requiring any 19162 enabled ISA with lots of exceptions. 19163 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, 19164 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>): 19165 Change avx512bw in isa attribute to avx512f. 19166 * config/i386/sgxintrin.h: Add license boilerplate. 19167 * config/i386/vaesintrin.h: Likewise. Fix macro spelling __AVX512F 19168 to __AVX512F__ and __AVX512VL to __AVX512VL__. 19169 (_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128, 19170 _mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not 19171 defined. 19172 * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, 19173 _mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable 19174 temporarily sse2 rather than sse if not enabled already. 19175 19176 PR target/83604 19177 * config/i386/sse.md (VI248_VLBW): Rename to ... 19178 (VI248_AVX512VL): ... this. Don't guard V32HI with TARGET_AVX512BW. 19179 (vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, 19180 vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, 19181 vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, 19182 vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL 19183 mode iterator instead of VI248_VLBW. 19184 191852018-01-05 Jan Hubicka <hubicka@ucw.cz> 19186 19187 * ipa-fnsummary.c (record_modified_bb_info): Add OP. 19188 (record_modified): Skip clobbers; add debug output. 19189 (param_change_prob): Use sreal frequencies. 19190 191912018-01-05 Richard Sandiford <richard.sandiford@linaro.org> 19192 19193 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't 19194 punt for user-aligned variables. 19195 191962018-01-05 Richard Sandiford <richard.sandiford@linaro.org> 19197 19198 * tree-chrec.c (chrec_contains_symbols): Return true for 19199 POLY_INT_CST. 19200 192012018-01-05 Sudakshina Das <sudi.das@arm.com> 19202 19203 PR target/82439 19204 * simplify-rtx.c (simplify_relational_operation_1): Add simplifications 19205 of (x|y) == x for BICS pattern. 19206 192072018-01-05 Jakub Jelinek <jakub@redhat.com> 19208 19209 PR tree-optimization/83605 19210 * gimple-ssa-strength-reduction.c: Include tree-eh.h. 19211 (find_candidates_dom_walker::before_dom_children): Ignore stmts that 19212 can throw. 19213 192142018-01-05 Sebastian Huber <sebastian.huber@embedded-brains.de> 19215 19216 * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. 19217 * config/epiphany/rtems.h: New file. 19218 192192018-01-04 Jakub Jelinek <jakub@redhat.com> 19220 Uros Bizjak <ubizjak@gmail.com> 19221 19222 PR target/83554 19223 * config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use 19224 QIreg_operand instead of register_operand predicate. 19225 * config/i386/i386.c (ix86_rop_should_change_byte_p, 19226 set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in 19227 comments instead of -fmitigate[-_]rop. 19228 192292018-01-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 19230 19231 PR bootstrap/81926 19232 * cgraphunit.c (symbol_table::compile): Switch to text_section 19233 before calling assembly_start debug hook. 19234 * run-rtl-passes.c (run_rtl_passes): Likewise. 19235 Include output.h. 19236 192372018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 19238 19239 * tree-vrp.c (extract_range_from_binary_expr_1): Check 19240 range_int_cst_p rather than !symbolic_range_p before calling 19241 extract_range_from_multiplicative_op_1. 19242 192432018-01-04 Jeff Law <law@redhat.com> 19244 19245 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove 19246 redundant test in assertion. 19247 192482018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 19249 19250 * doc/rtl.texi: Document machine_mode wrapper classes. 19251 192522018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 19253 19254 * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before 19255 using tree_to_uhwi. 19256 192572018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 19258 19259 * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow 19260 the VEC_PERM_EXPR fold to fail. 19261 192622018-01-04 Jakub Jelinek <jakub@redhat.com> 19263 19264 PR debug/83585 19265 * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition 19266 to switched_sections. 19267 192682018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 19269 19270 PR target/83680 19271 * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted 19272 test for d.testing. 19273 192742018-01-04 Peter Bergner <bergner@vnet.ibm.com> 19275 19276 PR target/83387 19277 * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not 19278 allow arguments in FP registers if TARGET_HARD_FLOAT is false. 19279 192802018-01-04 Jakub Jelinek <jakub@redhat.com> 19281 19282 PR debug/83666 19283 * cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode 19284 is BLKmode and bitpos not zero or mode change is needed. 19285 192862018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 19287 19288 PR target/83675 19289 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require 19290 TARGET_VIS2. 19291 192922018-01-04 Uros Bizjak <ubizjak@gmail.com> 19293 19294 PR target/83628 19295 * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT 19296 instead of MULT rtx. Update all corresponding splitters. 19297 (*saddl_se): Ditto. 19298 (*ssub<modesuffix>): Ditto. 19299 (*ssubl_se): Ditto. 19300 (*cmp_sadd_di): Update split patterns. 19301 (*cmp_sadd_si): Ditto. 19302 (*cmp_sadd_sidi): Ditto. 19303 (*cmp_ssub_di): Ditto. 19304 (*cmp_ssub_si): Ditto. 19305 (*cmp_ssub_sidi): Ditto. 19306 * config/alpha/predicates.md (const23_operand): New predicate. 19307 * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: 19308 Look for ASHIFT, not MULT inner operand. 19309 (alpha_split_conditional_move): Update for *sadd<modesuffix> change. 19310 193112018-01-04 Martin Liska <mliska@suse.cz> 19312 19313 PR gcov-profile/83669 19314 * gcov.c (output_intermediate_file): Add version to intermediate 19315 gcov file. 19316 * doc/gcov.texi: Document new field 'version' in intermediate 19317 file format. Fix location of '-k' option of gcov command. 19318 193192018-01-04 Martin Liska <mliska@suse.cz> 19320 19321 PR ipa/82352 19322 * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. 19323 193242018-01-04 Jakub Jelinek <jakub@redhat.com> 19325 19326 * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi. 19327 193282018-01-03 Martin Sebor <msebor@redhat.com> 19329 19330 PR tree-optimization/83655 19331 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid 19332 checking calls with invalid arguments. 19333 193342018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19335 19336 * tree-vect-stmts.c (vect_get_store_rhs): New function. 19337 (vectorizable_mask_load_store): Delete. 19338 (vectorizable_call): Return false for masked loads and stores. 19339 (vectorizable_store): Handle IFN_MASK_STORE. Use vect_get_store_rhs 19340 instead of gimple_assign_rhs1. 19341 (vectorizable_load): Handle IFN_MASK_LOAD. 19342 (vect_transform_stmt): Don't set is_store for call_vec_info_type. 19343 193442018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19345 19346 * tree-vect-stmts.c (vect_build_gather_load_calls): New function, 19347 split out from.., 19348 (vectorizable_mask_load_store): ...here. 19349 (vectorizable_load): ...and here. 19350 193512018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19352 19353 * tree-vect-stmts.c (vect_build_all_ones_mask) 19354 (vect_build_zero_merge_argument): New functions, split out from... 19355 (vectorizable_load): ...here. 19356 193572018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19358 19359 * tree-vect-stmts.c (vect_check_store_rhs): New function, 19360 split out from... 19361 (vectorizable_mask_load_store): ...here. 19362 (vectorizable_store): ...and here. 19363 193642018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19365 19366 * tree-vect-stmts.c (vect_check_load_store_mask): New function, 19367 split out from... 19368 (vectorizable_mask_load_store): ...here. 19369 193702018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19371 19372 * tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c 19373 (vect_model_store_cost): Take a vec_load_store_type instead of a 19374 vect_def_type. 19375 * tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h. 19376 (vect_model_store_cost): Take a vec_load_store_type instead of a 19377 vect_def_type. 19378 (vectorizable_mask_load_store): Update accordingly. 19379 (vectorizable_store): Likewise. 19380 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly. 19381 193822018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19383 19384 * tree-vect-loop.c (vect_transform_loop): Stub out scalar 19385 IFN_MASK_LOAD calls here rather than... 19386 * tree-vect-stmts.c (vectorizable_mask_load_store): ...here. 19387 193882018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19389 Alan Hayward <alan.hayward@arm.com> 19390 David Sherwood <david.sherwood@arm.com> 19391 19392 * expmed.c (extract_bit_field_1): For vector extracts, 19393 fall back to extract_bit_field_as_subreg if vec_extract 19394 isn't available. 19395 193962018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19397 Alan Hayward <alan.hayward@arm.com> 19398 David Sherwood <david.sherwood@arm.com> 19399 19400 * lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether 19401 they are variable or constant sized. 19402 (assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized 19403 slots for constant-sized data. 19404 194052018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19406 Alan Hayward <alan.hayward@arm.com> 19407 David Sherwood <david.sherwood@arm.com> 19408 19409 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When 19410 handling COND_EXPRs with boolean comparisons, try to find a better 19411 basis for the mask type than the boolean itself. 19412 194132018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19414 19415 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default 19416 is calculated and how it can be overridden. 19417 * genmodes.c (max_bitsize_mode_any_mode): New variable. 19418 (create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE, 19419 if defined. 19420 (emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE, 19421 if nonzero. 19422 194232018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19424 Alan Hayward <alan.hayward@arm.com> 19425 David Sherwood <david.sherwood@arm.com> 19426 19427 * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate): 19428 Remove the mode argument. 19429 (aarch64_simd_valid_immediate): Remove the mode and inverse 19430 arguments. 19431 * config/aarch64/iterators.md (bitsize): New iterator. 19432 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3) 19433 (ior<mode>3): Update calls to aarch64_output_simd_mov_immediate. 19434 * config/aarch64/constraints.md (Do, Db, Dn): Update calls to 19435 aarch64_simd_valid_immediate. 19436 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise. 19437 (aarch64_reg_or_bic_imm): Likewise. 19438 * config/aarch64/aarch64.c (simd_immediate_info): Replace mvn 19439 with an insn_type enum and msl with a modifier_type enum. 19440 Replace element_width with a scalar_mode. Change the shift 19441 to unsigned int. Add constructors for scalar_float_mode and 19442 scalar_int_mode elements. 19443 (aarch64_vect_float_const_representable_p): Delete. 19444 (aarch64_can_const_movi_rtx_p) 19445 (aarch64_simd_scalar_immediate_valid_for_move) 19446 (aarch64_simd_make_constant): Update call to 19447 aarch64_simd_valid_immediate. 19448 (aarch64_advsimd_valid_immediate_hs): New function. 19449 (aarch64_advsimd_valid_immediate): Likewise. 19450 (aarch64_simd_valid_immediate): Remove mode and inverse 19451 arguments. Rewrite to use the above. Use const_vec_duplicate_p 19452 to detect duplicated constants and use aarch64_float_const_zero_rtx_p 19453 and aarch64_float_const_representable_p on the result. 19454 (aarch64_output_simd_mov_immediate): Remove mode argument. 19455 Update call to aarch64_simd_valid_immediate and use of 19456 simd_immediate_info. 19457 (aarch64_output_scalar_simd_mov_immediate): Update call 19458 accordingly. 19459 194602018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19461 Alan Hayward <alan.hayward@arm.com> 19462 David Sherwood <david.sherwood@arm.com> 19463 19464 * machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION. 19465 (mode_nunits): Likewise CONST_MODE_NUNITS. 19466 * machmode.def (ADJUST_NUNITS): Document. 19467 * genmodes.c (mode_data::need_nunits_adj): New field. 19468 (blank_mode): Update accordingly. 19469 (adj_nunits): New variable. 19470 (print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ 19471 parameter. 19472 (emit_mode_size_inline): Set need_bytesize_adj for all modes 19473 listed in adj_nunits. 19474 (emit_mode_nunits_inline): Set need_nunits_adj for all modes 19475 listed in adj_nunits. Don't emit case statements for such modes. 19476 (emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS 19477 and CONST_MODE_PRECISION. Make CONST_MODE_SIZE expand to 19478 nothing if adj_nunits is nonnull. 19479 (emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl. 19480 (emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit) 19481 (emit_mode_fbit): Update use of print_maybe_const_decl. 19482 (emit_move_size): Likewise. Treat the array as non-const 19483 if adj_nunits. 19484 (emit_mode_adjustments): Handle adj_nunits. 19485 194862018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19487 19488 * machmode.def (VECTOR_MODES_WITH_PREFIX): Document. 19489 * genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro. 19490 (VECTOR_MODES): Use it. 19491 (make_vector_modes): Take the prefix as an argument. 19492 194932018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19494 Alan Hayward <alan.hayward@arm.com> 19495 David Sherwood <david.sherwood@arm.com> 19496 19497 * mode-classes.def (MODE_VECTOR_BOOL): New mode class. 19498 * machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true 19499 for MODE_VECTOR_BOOL. 19500 * machmode.def (VECTOR_BOOL_MODE): Document. 19501 * genmodes.c (VECTOR_BOOL_MODE): New macro. 19502 (make_vector_bool_mode): New function. 19503 (complete_mode, emit_mode_wider, emit_mode_adjustments): Handle 19504 MODE_VECTOR_BOOL. 19505 * lto-streamer-in.c (lto_input_mode_table): Likewise. 19506 * rtx-vector-builder.c (rtx_vector_builder::find_cached_value): 19507 Likewise. 19508 * stor-layout.c (int_mode_for_mode): Likewise. 19509 * tree.c (build_vector_type_for_mode): Likewise. 19510 * varasm.c (output_constant_pool_2): Likewise. 19511 * emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and 19512 CONSTM1_RTX (BImode) are the same thing. Initialize const_tiny_rtx 19513 for MODE_VECTOR_BOOL. 19514 * expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list 19515 of mode class checks. 19516 * tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P 19517 instead of a list of mode class checks. 19518 (expand_vector_scalar_condition): Likewise. 19519 (type_for_widest_vector_mode): Handle BImode as an inner mode. 19520 195212018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19522 Alan Hayward <alan.hayward@arm.com> 19523 David Sherwood <david.sherwood@arm.com> 19524 19525 * machmode.h (mode_size): Change from unsigned short to 19526 poly_uint16_pod. 19527 (mode_to_bytes): Return a poly_uint16 rather than an unsigned short. 19528 (GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES, 19529 or if measurement_type is not polynomial. 19530 (fixed_size_mode::includes_p): Check for constant-sized modes. 19531 * genmodes.c (emit_mode_size_inline): Make mode_size_inline 19532 return a poly_uint16 rather than an unsigned short. 19533 (emit_mode_size): Change the type of mode_size from unsigned short 19534 to poly_uint16_pod. Use ZERO_COEFFS for the initializer. 19535 (emit_mode_adjustments): Cope with polynomial vector sizes. 19536 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 19537 for GET_MODE_SIZE. 19538 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 19539 for GET_MODE_SIZE. 19540 * auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial. 19541 * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise. 19542 * caller-save.c (setup_save_areas): Likewise. 19543 (replace_reg_with_saved_mem): Likewise. 19544 * calls.c (emit_library_call_value_1): Likewise. 19545 * combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise. 19546 * combine.c (simplify_set, make_extraction, simplify_shift_const_1) 19547 (gen_lowpart_for_combine): Likewise. 19548 * convert.c (convert_to_integer_1): Likewise. 19549 * cse.c (equiv_constant, cse_insn): Likewise. 19550 * cselib.c (autoinc_split, cselib_hash_rtx): Likewise. 19551 (cselib_subst_to_values): Likewise. 19552 * dce.c (word_dce_process_block): Likewise. 19553 * df-problems.c (df_word_lr_mark_ref): Likewise. 19554 * dwarf2cfi.c (init_one_dwarf_reg_size): Likewise. 19555 * dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor) 19556 (concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor) 19557 (rtl_for_decl_location): Likewise. 19558 * emit-rtl.c (gen_highpart, widen_memory_access): Likewise. 19559 * expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise. 19560 * expr.c (emit_group_load_1, clear_storage_hints): Likewise. 19561 (emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise. 19562 (expand_expr_real_1): Likewise. 19563 * function.c (assign_parm_setup_block_p, assign_parm_setup_block) 19564 (pad_below): Likewise. 19565 * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. 19566 * gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise. 19567 * ira.c (get_subreg_tracking_sizes): Likewise. 19568 * ira-build.c (ira_create_allocno_objects): Likewise. 19569 * ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise. 19570 (ira_sort_regnos_for_alter_reg): Likewise. 19571 * ira-costs.c (record_operand_costs): Likewise. 19572 * lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn) 19573 (resolve_simple_move): Likewise. 19574 * lra-constraints.c (get_reload_reg, operands_match_p): Likewise. 19575 (process_addr_reg, simplify_operand_subreg, curr_insn_transform) 19576 (lra_constraints): Likewise. 19577 (CONST_POOL_OK_P): Reject variable-sized modes. 19578 * lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare) 19579 (add_pseudo_to_slot, lra_spill): Likewise. 19580 * omp-low.c (omp_clause_aligned_alignment): Likewise. 19581 * optabs-query.c (get_best_extraction_insn): Likewise. 19582 * optabs-tree.c (expand_vec_cond_expr_p): Likewise. 19583 * optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise. 19584 (expand_mult_highpart, valid_multiword_target_p): Likewise. 19585 * recog.c (offsettable_address_addr_space_p): Likewise. 19586 * regcprop.c (maybe_mode_change): Likewise. 19587 * reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise. 19588 * regrename.c (build_def_use): Likewise. 19589 * regstat.c (dump_reg_info): Likewise. 19590 * reload.c (complex_word_subreg_p, push_reload, find_dummy_reload) 19591 (find_reloads, find_reloads_subreg_address): Likewise. 19592 * reload1.c (eliminate_regs_1): Likewise. 19593 * rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise. 19594 * simplify-rtx.c (avoid_constant_pool_reference): Likewise. 19595 (simplify_binary_operation_1, simplify_subreg): Likewise. 19596 * targhooks.c (default_function_arg_padding): Likewise. 19597 (default_hard_regno_nregs, default_class_max_nregs): Likewise. 19598 * tree-cfg.c (verify_gimple_assign_binary): Likewise. 19599 (verify_gimple_assign_ternary): Likewise. 19600 * tree-inline.c (estimate_move_cost): Likewise. 19601 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 19602 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise. 19603 (get_address_cost_ainc): Likewise. 19604 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. 19605 (vect_supportable_dr_alignment): Likewise. 19606 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 19607 (vectorizable_reduction): Likewise. 19608 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift) 19609 (vectorizable_operation, vectorizable_load): Likewise. 19610 * tree.c (build_same_sized_truth_vector_type): Likewise. 19611 * valtrack.c (cleanup_auto_inc_dec): Likewise. 19612 * var-tracking.c (emit_note_insn_var_location): Likewise. 19613 * config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>. 19614 (ADDR_VEC_ALIGN): Likewise. 19615 196162018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19617 Alan Hayward <alan.hayward@arm.com> 19618 David Sherwood <david.sherwood@arm.com> 19619 19620 * machmode.h (mode_to_bits): Return a poly_uint16 rather than an 19621 unsigned short. 19622 (GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES, 19623 or if measurement_type is polynomial. 19624 * calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial. 19625 * combine.c (make_extraction): Likewise. 19626 * dse.c (find_shift_sequence): Likewise. 19627 * dwarf2out.c (mem_loc_descriptor): Likewise. 19628 * expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise. 19629 (extract_bit_field, extract_low_bits): Likewise. 19630 * expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise. 19631 (optimize_bitfield_assignment_op, expand_assignment): Likewise. 19632 (store_expr_with_bounds, store_field, expand_expr_real_1): Likewise. 19633 * fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise. 19634 * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. 19635 * reload.c (find_reloads): Likewise. 19636 * reload1.c (alter_reg): Likewise. 19637 * stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise. 19638 * targhooks.c (default_secondary_memory_needed_mode): Likewise. 19639 * tree-if-conv.c (predicate_mem_writes): Likewise. 19640 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. 19641 * tree-vect-patterns.c (adjust_bool_pattern): Likewise. 19642 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. 19643 * valtrack.c (dead_debug_insert_temp): Likewise. 19644 * varasm.c (mergeable_constant_section): Likewise. 19645 * config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>. 19646 196472018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19648 Alan Hayward <alan.hayward@arm.com> 19649 David Sherwood <david.sherwood@arm.com> 19650 19651 * expr.c (expand_assignment): Cope with polynomial mode sizes 19652 when assigning to a CONCAT. 19653 196542018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19655 Alan Hayward <alan.hayward@arm.com> 19656 David Sherwood <david.sherwood@arm.com> 19657 19658 * machmode.h (mode_precision): Change from unsigned short to 19659 poly_uint16_pod. 19660 (mode_to_precision): Return a poly_uint16 rather than an unsigned 19661 short. 19662 (GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES, 19663 or if measurement_type is not polynomial. 19664 (HWI_COMPUTABLE_MODE_P): Turn into a function. Optimize the case 19665 in which the mode is already known to be a scalar_int_mode. 19666 * genmodes.c (emit_mode_precision): Change the type of mode_precision 19667 from unsigned short to poly_uint16_pod. Use ZERO_COEFFS for the 19668 initializer. 19669 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 19670 for GET_MODE_PRECISION. 19671 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 19672 for GET_MODE_PRECISION. 19673 * combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION 19674 as polynomial. 19675 (try_combine, find_split_point, combine_simplify_rtx): Likewise. 19676 (expand_field_assignment, make_extraction): Likewise. 19677 (make_compound_operation_int, record_dead_and_set_regs_1): Likewise. 19678 (get_last_value): Likewise. 19679 * convert.c (convert_to_integer_1): Likewise. 19680 * cse.c (cse_insn): Likewise. 19681 * expr.c (expand_expr_real_1): Likewise. 19682 * lra-constraints.c (simplify_operand_subreg): Likewise. 19683 * optabs-query.c (can_atomic_load_p): Likewise. 19684 * optabs.c (expand_atomic_load): Likewise. 19685 (expand_atomic_store): Likewise. 19686 * ree.c (combine_reaching_defs): Likewise. 19687 * rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise. 19688 * rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise. 19689 * tree.h (type_has_mode_precision_p): Likewise. 19690 * ubsan.c (instrument_si_overflow): Likewise. 19691 196922018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19693 Alan Hayward <alan.hayward@arm.com> 19694 David Sherwood <david.sherwood@arm.com> 19695 19696 * tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle 19697 polynomial numbers of units. 19698 (SET_TYPE_VECTOR_SUBPARTS): Likewise. 19699 (valid_vector_subparts_p): New function. 19700 (build_vector_type): Remove temporary shim and take the number 19701 of units as a poly_uint64 rather than an int. 19702 (build_opaque_vector_type): Take the number of units as a 19703 poly_uint64 rather than an int. 19704 * tree.c (build_vector_from_ctor): Handle polynomial 19705 TYPE_VECTOR_SUBPARTS. 19706 (type_hash_canon_hash, type_cache_hasher::equal): Likewise. 19707 (uniform_vector_p, vector_type_mode, build_vector): Likewise. 19708 (build_vector_from_val): If the number of units is variable, 19709 use build_vec_duplicate_cst for constant operands and 19710 VEC_DUPLICATE_EXPR otherwise. 19711 (make_vector_type): Remove temporary is_constant (). 19712 (build_vector_type, build_opaque_vector_type): Take the number of 19713 units as a poly_uint64 rather than an int. 19714 (check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and 19715 VECTOR_CST_NELTS. 19716 * cfgexpand.c (expand_debug_expr): Likewise. 19717 * expr.c (count_type_elements, categorize_ctor_elements_1): Likewise. 19718 (store_constructor, expand_expr_real_1): Likewise. 19719 (const_scalar_mask_from_tree): Likewise. 19720 * fold-const-call.c (fold_const_reduction): Likewise. 19721 * fold-const.c (const_binop, const_unop, fold_convert_const): Likewise. 19722 (operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise. 19723 (native_encode_vector, vec_cst_ctor_to_array): Likewise. 19724 (fold_relational_const): Likewise. 19725 (native_interpret_vector): Likewise. Change the size from an 19726 int to an unsigned int. 19727 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial 19728 TYPE_VECTOR_SUBPARTS. 19729 (gimple_fold_indirect_ref, gimple_build_vector): Likewise. 19730 (gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when 19731 duplicating a non-constant operand into a variable-length vector. 19732 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial 19733 TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS. 19734 * ipa-icf.c (sem_variable::equals): Likewise. 19735 * match.pd: Likewise. 19736 * omp-simd-clone.c (simd_clone_subparts): Likewise. 19737 * print-tree.c (print_node): Likewise. 19738 * stor-layout.c (layout_type): Likewise. 19739 * targhooks.c (default_builtin_vectorization_cost): Likewise. 19740 * tree-cfg.c (verify_gimple_comparison): Likewise. 19741 (verify_gimple_assign_binary): Likewise. 19742 (verify_gimple_assign_ternary): Likewise. 19743 (verify_gimple_assign_single): Likewise. 19744 * tree-pretty-print.c (dump_generic_node): Likewise. 19745 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 19746 (simplify_bitfield_ref, is_combined_permutation_identity): Likewise. 19747 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. 19748 (vect_grouped_load_supported, vect_permute_load_chain): Likewise. 19749 (vect_shift_permute_load_chain): Likewise. 19750 * tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise. 19751 (expand_vector_condition, optimize_vector_constructor): Likewise. 19752 (lower_vec_perm, get_compute_type): Likewise. 19753 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 19754 (get_initial_defs_for_reduction, vect_transform_loop): Likewise. 19755 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. 19756 (vect_recog_mask_conversion_pattern): Likewise. 19757 * tree-vect-slp.c (vect_supported_load_permutation_p): Likewise. 19758 (vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise. 19759 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 19760 (get_group_load_store_type, vectorizable_mask_load_store): Likewise. 19761 (vectorizable_bswap, simd_clone_subparts, vectorizable_assignment) 19762 (vectorizable_shift, vectorizable_operation, vectorizable_store) 19763 (vectorizable_load, vect_is_simple_cond, vectorizable_comparison) 19764 (supportable_widening_operation): Likewise. 19765 (supportable_narrowing_operation): Likewise. 19766 * tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts): 19767 Likewise. 19768 * varasm.c (output_constant): Likewise. 19769 197702018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19771 Alan Hayward <alan.hayward@arm.com> 19772 David Sherwood <david.sherwood@arm.com> 19773 19774 * tree-vect-data-refs.c (vect_permute_store_chain): Reorganize 19775 so that both the length == 3 and length != 3 cases set up their 19776 own permute vectors. Add comments explaining why we know the 19777 number of elements is constant. 19778 (vect_permute_load_chain): Likewise. 19779 197802018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19781 Alan Hayward <alan.hayward@arm.com> 19782 David Sherwood <david.sherwood@arm.com> 19783 19784 * machmode.h (mode_nunits): Change from unsigned char to 19785 poly_uint16_pod. 19786 (ONLY_FIXED_SIZE_MODES): New macro. 19787 (pod_mode::measurement_type, scalar_int_mode::measurement_type) 19788 (scalar_float_mode::measurement_type, scalar_mode::measurement_type) 19789 (complex_mode::measurement_type, fixed_size_mode::measurement_type): 19790 New typedefs. 19791 (mode_to_nunits): Return a poly_uint16 rather than an unsigned short. 19792 (GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES, 19793 or if measurement_type is not polynomial. 19794 * genmodes.c (ZERO_COEFFS): New macro. 19795 (emit_mode_nunits_inline): Make mode_nunits_inline return a 19796 poly_uint16. 19797 (emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod. 19798 Use ZERO_COEFFS when emitting initializers. 19799 * data-streamer.h (bp_pack_poly_value): New function. 19800 (bp_unpack_poly_value): Likewise. 19801 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 19802 for GET_MODE_NUNITS. 19803 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 19804 for GET_MODE_NUNITS. 19805 * tree.c (make_vector_type): Remove temporary shim and make 19806 the real function take the number of units as a poly_uint64 19807 rather than an int. 19808 (build_vector_type_for_mode): Handle polynomial nunits. 19809 * dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise. 19810 * emit-rtl.c (const_vec_series_p_1): Likewise. 19811 (gen_rtx_CONST_VECTOR): Likewise. 19812 * fold-const.c (test_vec_duplicate_folding): Likewise. 19813 * genrecog.c (validate_pattern): Likewise. 19814 * optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise. 19815 * optabs-tree.c (expand_vec_cond_expr_p): Likewise. 19816 * optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise. 19817 (shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise. 19818 (expand_vec_cond_expr, expand_mult_highpart): Likewise. 19819 * rtlanal.c (subreg_get_info): Likewise. 19820 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 19821 (vect_grouped_load_supported): Likewise. 19822 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. 19823 * tree-vect-loop.c (have_whole_vector_shift): Likewise. 19824 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 19825 (simplify_const_unary_operation, simplify_binary_operation_1) 19826 (simplify_const_binary_operation, simplify_ternary_operation) 19827 (test_vector_ops_duplicate, test_vector_ops): Likewise. 19828 (simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode 19829 instead of CONST_VECTOR_NUNITS. 19830 * varasm.c (output_constant_pool_2): Likewise. 19831 * rtx-vector-builder.c (rtx_vector_builder::build): Only include the 19832 explicit-encoded elements in the XVEC for variable-length vectors. 19833 198342018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19835 19836 * lra-constraints.c (curr_insn_transform): Use partial_subreg_p. 19837 198382018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19839 Alan Hayward <alan.hayward@arm.com> 19840 David Sherwood <david.sherwood@arm.com> 19841 19842 * coretypes.h (fixed_size_mode): Declare. 19843 (fixed_size_mode_pod): New typedef. 19844 * builtins.h (target_builtins::x_apply_args_mode) 19845 (target_builtins::x_apply_result_mode): Change type to 19846 fixed_size_mode_pod. 19847 * builtins.c (apply_args_size, apply_result_size, result_vector) 19848 (expand_builtin_apply_args_1, expand_builtin_apply) 19849 (expand_builtin_return): Update accordingly. 19850 198512018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19852 19853 * cse.c (hash_rtx_cb): Hash only the encoded elements. 19854 * cselib.c (cselib_hash_rtx): Likewise. 19855 * expmed.c (make_tree): Build VECTOR_CSTs directly from the 19856 CONST_VECTOR encoding. 19857 198582018-01-03 Jakub Jelinek <jakub@redhat.com> 19859 Jeff Law <law@redhat.com> 19860 19861 PR target/83641 19862 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For 19863 noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop, 19864 only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp 19865 and add REG_CFA_ADJUST_CFA notes in that case to both insns. 19866 19867 PR target/83641 19868 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not 19869 explicitly probe *sp in a noreturn function if there were any callee 19870 register saves or frame pointer is needed. 19871 198722018-01-03 Jakub Jelinek <jakub@redhat.com> 19873 19874 PR debug/83621 19875 * cfgexpand.c (expand_debug_expr): Return NULL if mode is 19876 BLKmode for ternary, binary or unary expressions. 19877 19878 PR debug/83645 19879 * var-tracking.c (delete_vta_debug_insn): New inline function. 19880 (delete_vta_debug_insns): Add USE_CFG argument, if true, walk just 19881 insns from get_insns () to NULL instead of each bb separately. 19882 Use delete_vta_debug_insn. No longer static. 19883 (vt_debug_insns_local, variable_tracking_main_1): Adjust 19884 delete_vta_debug_insns callers. 19885 * rtl.h (delete_vta_debug_insns): Declare. 19886 * final.c (rest_of_handle_final): Call delete_vta_debug_insns 19887 instead of variable_tracking_main. 19888 198892018-01-03 Martin Sebor <msebor@redhat.com> 19890 19891 PR tree-optimization/83603 19892 * calls.c (maybe_warn_nonstring_arg): Avoid accessing function 19893 arguments past the endof the argument list in functions declared 19894 without a prototype. 19895 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): 19896 Avoid checking when arguments are null. 19897 198982018-01-03 Martin Sebor <msebor@redhat.com> 19899 19900 PR c/83559 19901 * doc/extend.texi (attribute const): Fix a typo. 19902 * ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid 19903 issuing -Wsuggest-attribute for void functions. 19904 199052018-01-03 Martin Sebor <msebor@redhat.com> 19906 19907 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use 19908 offset_int::from instead of wide_int::to_shwi. 19909 (maybe_diag_overlap): Remove assertion. 19910 Use HOST_WIDE_INT_PRINT_DEC instead of %lli. 19911 * gimple-ssa-sprintf.c (format_directive): Same. 19912 (parse_directive): Same. 19913 (sprintf_dom_walker::compute_format_length): Same. 19914 (try_substitute_return_value): Same. 19915 199162018-01-03 Jeff Law <law@redhat.com> 19917 19918 PR middle-end/83654 19919 * explow.c (anti_adjust_stack_and_probe_stack_clash): Test a 19920 non-constant residual for zero at runtime and avoid probing in 19921 that case. Reorganize code for trailing problem to mirror handling 19922 of the residual. 19923 199242018-01-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 19925 19926 PR tree-optimization/83501 19927 * tree-ssa-strlen.c (get_string_cst): New. 19928 (handle_char_store): Call get_string_cst. 19929 199302018-01-03 Martin Liska <mliska@suse.cz> 19931 19932 PR tree-optimization/83593 19933 * tree-ssa-strlen.c: Include tree-cfg.h. 19934 (strlen_check_and_optimize_stmt): Add new argument cleanup_eh. 19935 (strlen_dom_walker): Add new member variable m_cleanup_cfg. 19936 (strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg 19937 to false. 19938 (strlen_dom_walker::before_dom_children): Call 19939 gimple_purge_dead_eh_edges. Dump tranformation with details 19940 dump flags. 19941 (strlen_dom_walker::before_dom_children): Update call by adding 19942 new argument cleanup_eh. 19943 (pass_strlen::execute): Return TODO_cleanup_cfg if needed. 19944 199452018-01-03 Martin Liska <mliska@suse.cz> 19946 19947 PR ipa/83549 19948 * cif-code.def (VARIADIC_THUNK): New enum value. 19949 * ipa-fnsummary.c (compute_fn_summary): Do not inline variadic 19950 thunks. 19951 199522018-01-03 Jan Beulich <jbeulich@suse.com> 19953 19954 * sse.md (mov<mode>_internal): Tighten condition for when to use 19955 vmovdqu<ssescalarsize> for TI and OI modes. 19956 199572018-01-03 Jakub Jelinek <jakub@redhat.com> 19958 19959 Update copyright years. 19960 199612018-01-03 Martin Liska <mliska@suse.cz> 19962 19963 PR ipa/83594 19964 * ipa-visibility.c (function_and_variable_visibility): Skip 19965 functions with noipa attribure. 19966 199672018-01-03 Jakub Jelinek <jakub@redhat.com> 19968 19969 * gcc.c (process_command): Update copyright notice dates. 19970 * gcov-dump.c (print_version): Ditto. 19971 * gcov.c (print_version): Ditto. 19972 * gcov-tool.c (print_version): Ditto. 19973 * gengtype.c (create_file): Ditto. 19974 * doc/cpp.texi: Bump @copying's copyright year. 19975 * doc/cppinternals.texi: Ditto. 19976 * doc/gcc.texi: Ditto. 19977 * doc/gccint.texi: Ditto. 19978 * doc/gcov.texi: Ditto. 19979 * doc/install.texi: Ditto. 19980 * doc/invoke.texi: Ditto. 19981 199822018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 19983 19984 * vector-builder.h (vector_builder::m_full_nelts): Change from 19985 unsigned int to poly_uint64. 19986 (vector_builder::full_nelts): Update prototype accordingly. 19987 (vector_builder::new_vector): Likewise. 19988 (vector_builder::encoded_full_vector_p): Handle polynomial full_nelts. 19989 (vector_builder::operator ==): Likewise. 19990 (vector_builder::finalize): Likewise. 19991 * int-vector-builder.h (int_vector_builder::int_vector_builder): 19992 Take the number of elements as a poly_uint64 rather than an 19993 unsigned int. 19994 * vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change 19995 from unsigned int to poly_uint64. 19996 (vec_perm_indices::vec_perm_indices): Update prototype accordingly. 19997 (vec_perm_indices::new_vector): Likewise. 19998 (vec_perm_indices::length): Likewise. 19999 (vec_perm_indices::nelts_per_input): Likewise. 20000 (vec_perm_indices::input_nelts): Likewise. 20001 * vec-perm-indices.c (vec_perm_indices::new_vector): Take the 20002 number of elements per input as a poly_uint64 rather than an 20003 unsigned int. Use the original encoding for variable-length 20004 vectors, rather than clamping each individual element. 20005 For the second and subsequent elements in each pattern, 20006 clamp the step and base before clamping their sum. 20007 (vec_perm_indices::series_p): Handle polynomial element counts. 20008 (vec_perm_indices::all_in_range_p): Likewise. 20009 (vec_perm_indices_to_tree): Likewise. 20010 (vec_perm_indices_to_rtx): Likewise. 20011 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. 20012 * tree-vector-builder.c (tree_vector_builder::new_unary_operation) 20013 (tree_vector_builder::new_binary_operation): Handle polynomial 20014 element counts. Return false if we need to know the number 20015 of elements at compile time. 20016 * fold-const.c (fold_vec_perm): Punt if the number of elements 20017 isn't known at compile time. 20018 200192018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20020 20021 * vec-perm-indices.h (vec_perm_builder): Change element type 20022 from HOST_WIDE_INT to poly_int64. 20023 (vec_perm_indices::element_type): Update accordingly. 20024 (vec_perm_indices::clamp): Handle polynomial element_types. 20025 * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. 20026 (vec_perm_indices::all_in_range_p): Likewise. 20027 (tree_to_vec_perm_builder): Check for poly_int64 trees rather 20028 than shwi trees. 20029 * vector-builder.h (vector_builder::stepped_sequence_p): Handle 20030 polynomial vec_perm_indices element types. 20031 * int-vector-builder.h (int_vector_builder::equal_p): Likewise. 20032 * fold-const.c (fold_vec_perm): Likewise. 20033 * optabs.c (shift_amt_for_vec_perm_mask): Likewise. 20034 * tree-vect-generic.c (lower_vec_perm): Likewise. 20035 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 20036 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm 20037 element type to HOST_WIDE_INT. 20038 200392018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20040 Alan Hayward <alan.hayward@arm.com> 20041 David Sherwood <david.sherwood@arm.com> 20042 20043 * alias.c (addr_side_effect_eval): Take the size as a poly_int64 20044 rather than an int. Use plus_constant. 20045 (memrefs_conflict_p): Take the sizes as poly_int64s rather than ints. 20046 Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT. 20047 200482018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20049 Alan Hayward <alan.hayward@arm.com> 20050 David Sherwood <david.sherwood@arm.com> 20051 20052 * calls.c (emit_call_1, expand_call): Change struct_value_size from 20053 a HOST_WIDE_INT to a poly_int64. 20054 200552018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20056 Alan Hayward <alan.hayward@arm.com> 20057 David Sherwood <david.sherwood@arm.com> 20058 20059 * calls.c (load_register_parameters): Cope with polynomial 20060 mode sizes. Require a constant size for BLKmode parameters 20061 that aren't described by a PARALLEL. If BLOCK_REG_PADDING 20062 forces a parameter to be padded at the lsb end in order to 20063 fill a complete number of words, require the parameter size 20064 to be ordered wrt UNITS_PER_WORD. 20065 200662018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20067 Alan Hayward <alan.hayward@arm.com> 20068 David Sherwood <david.sherwood@arm.com> 20069 20070 * reload1.c (spill_stack_slot_width): Change element type 20071 from unsigned int to poly_uint64_pod. 20072 (alter_reg): Treat mode sizes as polynomial. 20073 200742018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20075 Alan Hayward <alan.hayward@arm.com> 20076 David Sherwood <david.sherwood@arm.com> 20077 20078 * reload.c (complex_word_subreg_p): New function. 20079 (reload_inner_reg_of_subreg, push_reload): Use it. 20080 200812018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20082 Alan Hayward <alan.hayward@arm.com> 20083 David Sherwood <david.sherwood@arm.com> 20084 20085 * lra-constraints.c (process_alt_operands): Reject matched 20086 operands whose sizes aren't ordered. 20087 (match_reload): Refer to this check here. 20088 200892018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20090 Alan Hayward <alan.hayward@arm.com> 20091 David Sherwood <david.sherwood@arm.com> 20092 20093 * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert 20094 that the mode size is in the set {1, 2, 4, 8, 16}. 20095 200962018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20097 Alan Hayward <alan.hayward@arm.com> 20098 David Sherwood <david.sherwood@arm.com> 20099 20100 * var-tracking.c (adjust_mems): Treat mode sizes as polynomial. 20101 Use plus_constant instead of gen_rtx_PLUS. 20102 201032018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20104 Alan Hayward <alan.hayward@arm.com> 20105 David Sherwood <david.sherwood@arm.com> 20106 20107 * config/cr16/cr16-protos.h (cr16_push_rounding): Declare. 20108 * config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to... 20109 * config/cr16/cr16.c (cr16_push_rounding): ...this new function. 20110 * config/h8300/h8300-protos.h (h8300_push_rounding): Declare. 20111 * config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to... 20112 * config/h8300/h8300.c (h8300_push_rounding): ...this new function. 20113 * config/i386/i386-protos.h (ix86_push_rounding): Declare. 20114 * config/i386/i386.h (PUSH_ROUNDING): Move implementation to... 20115 * config/i386/i386.c (ix86_push_rounding): ...this new function. 20116 * config/m32c/m32c-protos.h (m32c_push_rounding): Take and return 20117 a poly_int64. 20118 * config/m32c/m32c.c (m32c_push_rounding): Likewise. 20119 * config/m68k/m68k-protos.h (m68k_push_rounding): Declare. 20120 * config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to... 20121 * config/m68k/m68k.c (m68k_push_rounding): ...this new function. 20122 * config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare. 20123 * config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to... 20124 * config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function. 20125 * config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare. 20126 * config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to... 20127 * config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new 20128 function. 20129 * expr.c (emit_move_resolve_push): Treat the input and result 20130 of PUSH_ROUNDING as a poly_int64. 20131 (emit_move_complex_push, emit_single_push_insn_1): Likewise. 20132 (emit_push_insn): Likewise. 20133 * lra-eliminations.c (mark_not_eliminable): Likewise. 20134 * recog.c (push_operand): Likewise. 20135 * reload1.c (elimination_effects): Likewise. 20136 * rtlanal.c (nonzero_bits1): Likewise. 20137 * calls.c (store_one_arg): Likewise. Require the padding to be 20138 known at compile time. 20139 201402018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20141 Alan Hayward <alan.hayward@arm.com> 20142 David Sherwood <david.sherwood@arm.com> 20143 20144 * expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial. 20145 Use plus_constant instead of gen_rtx_PLUS. 20146 201472018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20148 Alan Hayward <alan.hayward@arm.com> 20149 David Sherwood <david.sherwood@arm.com> 20150 20151 * auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64 20152 rather than an int. 20153 201542018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20155 Alan Hayward <alan.hayward@arm.com> 20156 David Sherwood <david.sherwood@arm.com> 20157 20158 * expr.c (expand_expr_real_1): Use tree_to_poly_uint64 20159 instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs 20160 via stack temporaries. Treat the mode size as polynomial too. 20161 201622018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20163 Alan Hayward <alan.hayward@arm.com> 20164 David Sherwood <david.sherwood@arm.com> 20165 20166 * expr.c (expand_expr_real_2): When handling conversions involving 20167 unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than 20168 multiplying int_size_in_bytes by BITS_PER_UNIT. Treat GET_MODE_BISIZE 20169 as a poly_uint64 too. 20170 201712018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20172 Alan Hayward <alan.hayward@arm.com> 20173 David Sherwood <david.sherwood@arm.com> 20174 20175 * rtlanal.c (subreg_get_info): Handle polynomial mode sizes. 20176 201772018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20178 Alan Hayward <alan.hayward@arm.com> 20179 David Sherwood <david.sherwood@arm.com> 20180 20181 * combine.c (can_change_dest_mode): Handle polynomial 20182 REGMODE_NATURAL_SIZE. 20183 * expmed.c (store_bit_field_1): Likewise. 20184 * expr.c (store_constructor): Likewise. 20185 * emit-rtl.c (validate_subreg): Operate on polynomial mode sizes 20186 and polynomial REGMODE_NATURAL_SIZE. 20187 (gen_lowpart_common): Likewise. 20188 * reginfo.c (record_subregs_of_mode): Likewise. 20189 * rtlanal.c (read_modify_subreg_p): Likewise. 20190 201912018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20192 Alan Hayward <alan.hayward@arm.com> 20193 David Sherwood <david.sherwood@arm.com> 20194 20195 * internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial 20196 numbers of elements. 20197 201982018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20199 Alan Hayward <alan.hayward@arm.com> 20200 David Sherwood <david.sherwood@arm.com> 20201 20202 * match.pd: Cope with polynomial numbers of vector elements. 20203 202042018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20205 Alan Hayward <alan.hayward@arm.com> 20206 David Sherwood <david.sherwood@arm.com> 20207 20208 * fold-const.c (fold_indirect_ref_1): Handle polynomial offsets 20209 in a POINTER_PLUS_EXPR. 20210 202112018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20212 Alan Hayward <alan.hayward@arm.com> 20213 David Sherwood <david.sherwood@arm.com> 20214 20215 * omp-simd-clone.c (simd_clone_subparts): New function. 20216 (simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS. 20217 (ipa_simd_modify_function_body): Likewise. 20218 202192018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20220 Alan Hayward <alan.hayward@arm.com> 20221 David Sherwood <david.sherwood@arm.com> 20222 20223 * tree-vect-generic.c (nunits_for_known_piecewise_op): New function. 20224 (expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS. 20225 (expand_vector_addition, add_rshift, expand_vector_divmod): Likewise. 20226 (expand_vector_condition, vector_element): Likewise. 20227 (subparts_gt): New function. 20228 (get_compute_type): Use subparts_gt. 20229 (count_type_subparts): Delete. 20230 (expand_vector_operations_1): Use subparts_gt instead of 20231 count_type_subparts. 20232 202332018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20234 Alan Hayward <alan.hayward@arm.com> 20235 David Sherwood <david.sherwood@arm.com> 20236 20237 * tree-vect-data-refs.c (vect_no_alias_p): Replace with... 20238 (vect_compile_time_alias): ...this new function. Do the calculation 20239 on poly_ints rather than trees. 20240 (vect_prune_runtime_alias_test_list): Update call accordingly. 20241 202422018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20243 Alan Hayward <alan.hayward@arm.com> 20244 David Sherwood <david.sherwood@arm.com> 20245 20246 * tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial 20247 numbers of units. 20248 (vect_schedule_slp_instance): Likewise. 20249 202502018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20251 Alan Hayward <alan.hayward@arm.com> 20252 David Sherwood <david.sherwood@arm.com> 20253 20254 * tree-vect-slp.c (vect_get_and_check_slp_defs): Reject 20255 constant and extern definitions for variable-length vectors. 20256 (vect_get_constant_vectors): Note that the number of units 20257 is known to be constant. 20258 202592018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20260 Alan Hayward <alan.hayward@arm.com> 20261 David Sherwood <david.sherwood@arm.com> 20262 20263 * tree-vect-stmts.c (vectorizable_conversion): Treat the number 20264 of units as polynomial. Choose between WIDE and NARROW based 20265 on multiple_p. 20266 202672018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20268 Alan Hayward <alan.hayward@arm.com> 20269 David Sherwood <david.sherwood@arm.com> 20270 20271 * tree-vect-stmts.c (simd_clone_subparts): New function. 20272 (vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS. 20273 202742018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20275 Alan Hayward <alan.hayward@arm.com> 20276 David Sherwood <david.sherwood@arm.com> 20277 20278 * tree-vect-stmts.c (vectorizable_call): Treat the number of 20279 vectors as polynomial. Use build_index_vector for 20280 IFN_GOMP_SIMD_LANE. 20281 202822018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20283 Alan Hayward <alan.hayward@arm.com> 20284 David Sherwood <david.sherwood@arm.com> 20285 20286 * tree-vect-stmts.c (get_load_store_type): Treat the number of 20287 units as polynomial. Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP 20288 for variable-length vectors. 20289 (vectorizable_mask_load_store): Treat the number of units as 20290 polynomial, asserting that it is constant if the condition has 20291 already been enforced. 20292 (vectorizable_store, vectorizable_load): Likewise. 20293 202942018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20295 Alan Hayward <alan.hayward@arm.com> 20296 David Sherwood <david.sherwood@arm.com> 20297 20298 * tree-vect-loop.c (vectorizable_live_operation): Treat the number 20299 of units as polynomial. Punt if we can't tell at compile time 20300 which vector contains the final result. 20301 203022018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20303 Alan Hayward <alan.hayward@arm.com> 20304 David Sherwood <david.sherwood@arm.com> 20305 20306 * tree-vect-loop.c (vectorizable_induction): Treat the number 20307 of units as polynomial. Punt on SLP inductions. Use an integer 20308 VEC_SERIES_EXPR for variable-length integer reductions. Use a 20309 cast of such a series for variable-length floating-point 20310 reductions. 20311 203122018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20313 Alan Hayward <alan.hayward@arm.com> 20314 David Sherwood <david.sherwood@arm.com> 20315 20316 * tree.h (build_index_vector): Declare. 20317 * tree.c (build_index_vector): New function. 20318 * tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number 20319 of units as polynomial, forcibly converting it to a constant if 20320 vectorizable_reduction has already enforced the condition. 20321 (vect_create_epilog_for_reduction): Likewise. Use build_index_vector 20322 to create a {1,2,3,...} vector. 20323 (vectorizable_reduction): Treat the number of units as polynomial. 20324 Choose vectype_in based on the largest scalar element size rather 20325 than the smallest number of units. Enforce the restrictions 20326 relied on above. 20327 203282018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20329 Alan Hayward <alan.hayward@arm.com> 20330 David Sherwood <david.sherwood@arm.com> 20331 20332 * tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the 20333 number of units as polynomial. 20334 203352018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20336 Alan Hayward <alan.hayward@arm.com> 20337 David Sherwood <david.sherwood@arm.com> 20338 20339 * target.h (vector_sizes, auto_vector_sizes): New typedefs. 20340 * target.def (autovectorize_vector_sizes): Return the vector sizes 20341 by pointer, using vector_sizes rather than a bitmask. 20342 * targhooks.h (default_autovectorize_vector_sizes): Update accordingly. 20343 * targhooks.c (default_autovectorize_vector_sizes): Likewise. 20344 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): 20345 Likewise. 20346 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. 20347 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. 20348 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. 20349 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. 20350 * omp-general.c (omp_max_vf): Likewise. 20351 * omp-low.c (omp_clause_aligned_alignment): Likewise. 20352 * optabs-query.c (can_vec_mask_load_store_p): Likewise. 20353 * tree-vect-loop.c (vect_analyze_loop): Likewise. 20354 * tree-vect-slp.c (vect_slp_bb): Likewise. 20355 * doc/tm.texi: Regenerate. 20356 * tree-vectorizer.h (current_vector_size): Change from an unsigned int 20357 to a poly_uint64. 20358 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take 20359 the vector size as a poly_uint64 rather than an unsigned int. 20360 (current_vector_size): Change from an unsigned int to a poly_uint64. 20361 (get_vectype_for_scalar_type): Update accordingly. 20362 * tree.h (build_truth_vector_type): Take the size and number of 20363 units as a poly_uint64 rather than an unsigned int. 20364 (build_vector_type): Add a temporary overload that takes 20365 the number of units as a poly_uint64 rather than an unsigned int. 20366 * tree.c (make_vector_type): Likewise. 20367 (build_truth_vector_type): Take the number of units as a poly_uint64 20368 rather than an unsigned int. 20369 203702018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20371 Alan Hayward <alan.hayward@arm.com> 20372 David Sherwood <david.sherwood@arm.com> 20373 20374 * target.def (get_mask_mode): Take the number of units and length 20375 as poly_uint64s rather than unsigned ints. 20376 * targhooks.h (default_get_mask_mode): Update accordingly. 20377 * targhooks.c (default_get_mask_mode): Likewise. 20378 * config/i386/i386.c (ix86_get_mask_mode): Likewise. 20379 * doc/tm.texi: Regenerate. 20380 203812018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20382 Alan Hayward <alan.hayward@arm.com> 20383 David Sherwood <david.sherwood@arm.com> 20384 20385 * omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int. 20386 * omp-general.c (omp_max_vf): Likewise. 20387 * omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf. 20388 (expand_omp_simd): Handle polynomial safelen. 20389 * omp-low.c (omplow_simd_context): Add a default constructor. 20390 (omplow_simd_context::max_vf): Change from int to poly_uint64. 20391 (lower_rec_simd_input_clauses): Update accordingly. 20392 (lower_rec_input_clauses): Likewise. 20393 203942018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20395 Alan Hayward <alan.hayward@arm.com> 20396 David Sherwood <david.sherwood@arm.com> 20397 20398 * tree-vectorizer.h (vect_nunits_for_cost): New function. 20399 * tree-vect-loop.c (vect_model_reduction_cost): Use it. 20400 * tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise. 20401 (vect_analyze_slp_cost): Likewise. 20402 * tree-vect-stmts.c (vect_model_store_cost): Likewise. 20403 (vect_model_load_cost): Likewise. 20404 204052018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20406 Alan Hayward <alan.hayward@arm.com> 20407 David Sherwood <david.sherwood@arm.com> 20408 20409 * tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1) 20410 (vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits 20411 from an unsigned int * to a poly_uint64_pod *. 20412 (calculate_unrolling_factor): New function. 20413 (vect_analyze_slp_instance): Use it. Track polynomial max_nunits. 20414 204152018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20416 Alan Hayward <alan.hayward@arm.com> 20417 David Sherwood <david.sherwood@arm.com> 20418 20419 * tree-vectorizer.h (_slp_instance::unrolling_factor): Change 20420 from an unsigned int to a poly_uint64. 20421 (_loop_vec_info::slp_unrolling_factor): Likewise. 20422 (_loop_vec_info::vectorization_factor): Change from an int 20423 to a poly_uint64. 20424 (MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX. 20425 (vect_get_num_vectors): New function. 20426 (vect_update_max_nunits, vect_vf_for_cost): Likewise. 20427 (vect_get_num_copies): Use vect_get_num_vectors. 20428 (vect_analyze_data_ref_dependences): Change max_vf from an int * 20429 to an unsigned int *. 20430 (vect_analyze_data_refs): Change min_vf from an int * to a 20431 poly_uint64 *. 20432 (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather 20433 than an unsigned HOST_WIDE_INT. 20434 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) 20435 (vect_analyze_data_ref_dependence): Change max_vf from an int * 20436 to an unsigned int *. 20437 (vect_analyze_data_ref_dependences): Likewise. 20438 (vect_compute_data_ref_alignment): Handle polynomial vf. 20439 (vect_enhance_data_refs_alignment): Likewise. 20440 (vect_prune_runtime_alias_test_list): Likewise. 20441 (vect_shift_permute_load_chain): Likewise. 20442 (vect_supportable_dr_alignment): Likewise. 20443 (dependence_distance_ge_vf): Take the vectorization factor as a 20444 poly_uint64 rather than an unsigned HOST_WIDE_INT. 20445 (vect_analyze_data_refs): Change min_vf from an int * to a 20446 poly_uint64 *. 20447 * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take 20448 vfm1 as a poly_uint64 rather than an int. Make the same change 20449 for the returned bound_scalar. 20450 (vect_gen_vector_loop_niters): Handle polynomial vf. 20451 (vect_do_peeling): Likewise. Update call to 20452 vect_gen_scalar_loop_niters and handle polynomial bound_scalars. 20453 (vect_gen_vector_loop_niters_mult_vf): Assert that the vf must 20454 be constant. 20455 * tree-vect-loop.c (vect_determine_vectorization_factor) 20456 (vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf. 20457 (vect_get_known_peeling_cost): Likewise. 20458 (vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise. 20459 (vect_worthwhile_without_simd_p, vectorizable_induction): Likewise. 20460 (vect_transform_loop): Likewise. Use the lowest possible VF when 20461 updating the upper bounds of the loop. 20462 (vect_min_worthwhile_factor): Make static. Return an unsigned int 20463 rather than an int. 20464 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with 20465 polynomial unroll factors. 20466 (vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise. 20467 (vect_make_slp_decision): Likewise. 20468 (vect_supported_load_permutation_p): Likewise, and polynomial 20469 vf too. 20470 (vect_analyze_slp_cost): Handle polynomial vf. 20471 (vect_slp_analyze_node_operations): Likewise. 20472 (vect_slp_analyze_bb_1): Likewise. 20473 (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather 20474 than an unsigned HOST_WIDE_INT. 20475 * tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store) 20476 (vectorizable_load): Handle polynomial vf. 20477 * tree-vectorizer.c (simduid_to_vf::vf): Change from an int to 20478 a poly_uint64. 20479 (adjust_simduid_builtins, shrink_simd_arrays): Update accordingly. 20480 204812018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20482 Alan Hayward <alan.hayward@arm.com> 20483 David Sherwood <david.sherwood@arm.com> 20484 20485 * match.pd: Handle bit operations involving three constants 20486 and try to fold one pair. 20487 204882018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 20489 20490 * tree-vect-loop-manip.c: Include gimple-fold.h. 20491 (slpeel_make_loop_iterate_ntimes): Add step, final_iv and 20492 niters_maybe_zero parameters. Handle other cases besides a step of 1. 20493 (vect_gen_vector_loop_niters): Add a step_vector_ptr parameter. 20494 Add a path that uses a step of VF instead of 1, but disable it 20495 for now. 20496 (vect_do_peeling): Add step_vector, niters_vector_mult_vf_var 20497 and niters_no_overflow parameters. Update calls to 20498 slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters. 20499 Create a new SSA name if the latter choses to use a ste other 20500 than zero, and return it via niters_vector_mult_vf_var. 20501 * tree-vect-loop.c (vect_transform_loop): Update calls to 20502 vect_do_peeling, vect_gen_vector_loop_niters and 20503 slpeel_make_loop_iterate_ntimes. 20504 * tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling) 20505 (vect_gen_vector_loop_niters): Update declarations after above changes. 20506 205072018-01-02 Michael Meissner <meissner@linux.vnet.ibm.com> 20508 20509 * config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE 20510 128-bit round to integer instructions. 20511 (ceil<mode>2): Likewise. 20512 (btrunc<mode>2): Likewise. 20513 (round<mode>2): Likewise. 20514 205152018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 20516 20517 * config/rs6000/rs6000-string.c (expand_block_move): Allow the use of 20518 unaligned VSX load/store on P8/P9. 20519 (expand_block_clear): Allow the use of unaligned VSX 20520 load/store on P8/P9. 20521 205222018-01-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 20523 20524 * config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store): 20525 New function. 20526 (rs6000_analyze_swaps): Mark a web unoptimizable if it contains a 20527 swap associated with both a load and a store. 20528 205292018-01-02 Andrew Waterman <andrew@sifive.com> 20530 20531 * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New. 20532 * config/riscv/riscv.md (clear_cache): Use it. 20533 205342018-01-02 Artyom Skrobov <tyomitch@gmail.com> 20535 20536 * web.c: Remove out-of-date comment. 20537 205382018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20539 20540 * expr.c (fixup_args_size_notes): Check that any existing 20541 REG_ARGS_SIZE notes are correct, and don't try to re-add them. 20542 (emit_single_push_insn_1): Move stack_pointer_delta adjustment to... 20543 (emit_single_push_insn): ...here. 20544 205452018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20546 20547 * rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt. 20548 (const_vector_encoded_nelts): New function. 20549 (CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS. 20550 (const_vector_int_elt, const_vector_elt): Declare. 20551 * emit-rtl.c (const_vector_int_elt_1): New function. 20552 (const_vector_elt): Likewise. 20553 * simplify-rtx.c (simplify_immed_subreg): Avoid taking the address 20554 of CONST_VECTOR_ELT. 20555 205562018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20557 20558 * expr.c: Include rtx-vector-builder.h. 20559 (const_vector_mask_from_tree): Use rtx_vector_builder and operate 20560 directly on the tree encoding. 20561 (const_vector_from_tree): Likewise. 20562 * optabs.c: Include rtx-vector-builder.h. 20563 (expand_vec_perm_var): Use rtx_vector_builder and create a repeating 20564 sequence of "u" values. 20565 * vec-perm-indices.c: Include rtx-vector-builder.h. 20566 (vec_perm_indices_to_rtx): Use rtx_vector_builder and operate 20567 directly on the vec_perm_indices encoding. 20568 205692018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20570 20571 * doc/rtl.texi (const_vector): Describe new encoding scheme. 20572 * Makefile.in (OBJS): Add rtx-vector-builder.o. 20573 * rtx-vector-builder.h: New file. 20574 * rtx-vector-builder.c: Likewise. 20575 * rtl.h (rtx_def::u2): Add a const_vector field. 20576 (CONST_VECTOR_NPATTERNS): New macro. 20577 (CONST_VECTOR_NELTS_PER_PATTERN): Likewise. 20578 (CONST_VECTOR_DUPLICATE_P): Likewise. 20579 (CONST_VECTOR_STEPPED_P): Likewise. 20580 (CONST_VECTOR_ENCODED_ELT): Likewise. 20581 (const_vec_duplicate_p): Check for a duplicated vector encoding. 20582 (unwrap_const_vec_duplicate): Likewise. 20583 (const_vec_series_p): Check for a non-duplicated vector encoding. 20584 Say that the function only returns true for integer vectors. 20585 * emit-rtl.c: Include rtx-vector-builder.h. 20586 (gen_const_vec_duplicate_1): Delete. 20587 (gen_const_vector): Call gen_const_vec_duplicate instead of 20588 gen_const_vec_duplicate_1. 20589 (const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding. 20590 (gen_const_vec_duplicate): Use rtx_vector_builder. 20591 (gen_const_vec_series): Likewise. 20592 (gen_rtx_CONST_VECTOR): Likewise. 20593 * config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h. 20594 (swap_const_vector_halves): Take an rtx pointer rather than rtx. 20595 Build a new vector rather than modifying a CONST_VECTOR in-place. 20596 (handle_special_swappables): Update call accordingly. 20597 * config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h. 20598 (swap_const_vector_halves): Take an rtx pointer rather than rtx. 20599 Build a new vector rather than modifying a CONST_VECTOR in-place. 20600 (handle_special_swappables): Update call accordingly. 20601 206022018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20603 20604 * simplify-rtx.c (simplify_const_binary_operation): Use 20605 CONST_VECTOR_ELT instead of XVECEXP. 20606 206072018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20608 20609 * tree-cfg.c (verify_gimple_assign_ternary): Allow the size of 20610 the selector elements to be different from the data elements 20611 if the selector is a VECTOR_CST. 20612 * tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of 20613 ssizetype for the selector. 20614 206152018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20616 20617 * optabs.c (shift_amt_for_vec_perm_mask): Try using series_p 20618 before testing each element individually. 20619 * tree-vect-generic.c (lower_vec_perm): Likewise. 20620 206212018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20622 20623 * selftest.h (selftest::vec_perm_indices_c_tests): Declare. 20624 * selftest-run-tests.c (selftest::run_tests): Call it. 20625 * vector-builder.h (vector_builder::operator ==): New function. 20626 (vector_builder::operator !=): Likewise. 20627 * vec-perm-indices.h (vec_perm_indices::series_p): Declare. 20628 (vec_perm_indices::all_from_input_p): New function. 20629 * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. 20630 (test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise. 20631 * fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder 20632 instead of reading the VECTOR_CST directly. Detect whether both 20633 vector inputs are the same before constructing the vec_perm_indices, 20634 and update the number of inputs argument accordingly. Use the 20635 utility functions added above. Only construct sel2 if we need to. 20636 206372018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20638 20639 * optabs.c (expand_vec_perm_var): Use an explicit encoding for 20640 the broadcast of the low byte. 20641 (expand_mult_highpart): Use an explicit encoding for the permutes. 20642 * optabs-query.c (can_mult_highpart_p): Likewise. 20643 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. 20644 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 20645 (vectorizable_bswap): Likewise. 20646 * tree-vect-data-refs.c (vect_grouped_store_supported): Use an 20647 explicit encoding for the power-of-2 permutes. 20648 (vect_permute_store_chain): Likewise. 20649 (vect_grouped_load_supported): Likewise. 20650 (vect_permute_load_chain): Likewise. 20651 206522018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20653 20654 * vec-perm-indices.h (vec_perm_indices_to_tree): Declare. 20655 * vec-perm-indices.c (vec_perm_indices_to_tree): New function. 20656 * tree-ssa-forwprop.c (simplify_vector_constructor): Use it. 20657 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 20658 * tree-vect-stmts.c (vectorizable_bswap): Likewise. 20659 (vect_gen_perm_mask_any): Likewise. 20660 206612018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20662 20663 * int-vector-builder.h: New file. 20664 * vec-perm-indices.h: Include int-vector-builder.h. 20665 (vec_perm_indices): Redefine as an int_vector_builder. 20666 (auto_vec_perm_indices): Delete. 20667 (vec_perm_builder): Redefine as a stand-alone class. 20668 (vec_perm_indices::vec_perm_indices): New function. 20669 (vec_perm_indices::clamp): Likewise. 20670 * vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h. 20671 (vec_perm_indices::new_vector): New function. 20672 (vec_perm_indices::new_expanded_vector): Update for new 20673 vec_perm_indices class. 20674 (vec_perm_indices::rotate_inputs): New function. 20675 (vec_perm_indices::all_in_range_p): Operate directly on the 20676 encoded form, without computing elided elements. 20677 (tree_to_vec_perm_builder): Operate directly on the VECTOR_CST 20678 encoding. Update for new vec_perm_indices class. 20679 * optabs.c (expand_vec_perm_const): Create a vec_perm_indices for 20680 the given vec_perm_builder. 20681 (expand_vec_perm_var): Update vec_perm_builder constructor. 20682 (expand_mult_highpart): Use vec_perm_builder instead of 20683 auto_vec_perm_indices. 20684 * optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and 20685 vec_perm_indices instead of auto_vec_perm_indices. Use a single 20686 or double series encoding as appropriate. 20687 * fold-const.c (fold_ternary_loc): Use vec_perm_builder and 20688 vec_perm_indices instead of auto_vec_perm_indices. 20689 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 20690 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 20691 (vect_permute_store_chain): Likewise. 20692 (vect_grouped_load_supported): Likewise. 20693 (vect_permute_load_chain): Likewise. 20694 (vect_shift_permute_load_chain): Likewise. 20695 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. 20696 (vect_transform_slp_perm_load): Likewise. 20697 (vect_schedule_slp_instance): Likewise. 20698 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 20699 (vectorizable_mask_load_store): Likewise. 20700 (vectorizable_bswap): Likewise. 20701 (vectorizable_store): Likewise. 20702 (vectorizable_load): Likewise. 20703 * tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and 20704 vec_perm_indices instead of auto_vec_perm_indices. Use 20705 tree_to_vec_perm_builder to read the vector from a tree. 20706 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a 20707 vec_perm_builder instead of a vec_perm_indices. 20708 (have_whole_vector_shift): Use vec_perm_builder and 20709 vec_perm_indices instead of auto_vec_perm_indices. Leave the 20710 truncation to calc_vec_perm_mask_for_shift. 20711 (vect_create_epilog_for_reduction): Likewise. 20712 * config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change 20713 from auto_vec_perm_indices to vec_perm_indices. 20714 (aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm 20715 instead of changing individual elements. 20716 (aarch64_vectorize_vec_perm_const): Use new_vector to install 20717 the vector in d.perm. 20718 * config/arm/arm.c (expand_vec_perm_d::perm): Change 20719 from auto_vec_perm_indices to vec_perm_indices. 20720 (arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm 20721 instead of changing individual elements. 20722 (arm_vectorize_vec_perm_const): Use new_vector to install 20723 the vector in d.perm. 20724 * config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even): 20725 Update vec_perm_builder constructor. 20726 (rs6000_expand_interleave): Likewise. 20727 * config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise. 20728 (rs6000_expand_interleave): Likewise. 20729 207302018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20731 20732 * optabs-query.c (can_vec_perm_var_p): Check whether lowering 20733 to qimode could truncate the indices. 20734 * optabs.c (expand_vec_perm_var): Likewise. 20735 207362018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20737 20738 * Makefile.in (OBJS): Add vec-perm-indices.o. 20739 * vec-perm-indices.h: New file. 20740 * vec-perm-indices.c: Likewise. 20741 * target.h (vec_perm_indices): Replace with a forward class 20742 declaration. 20743 (auto_vec_perm_indices): Move to vec-perm-indices.h. 20744 * optabs.h: Include vec-perm-indices.h. 20745 (expand_vec_perm): Delete. 20746 (selector_fits_mode_p, expand_vec_perm_var): Declare. 20747 (expand_vec_perm_const): Declare. 20748 * target.def (vec_perm_const_ok): Replace with... 20749 (vec_perm_const): ...this new hook. 20750 * doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with... 20751 (TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook. 20752 * doc/tm.texi: Regenerate. 20753 * optabs.def (vec_perm_const): Delete. 20754 * doc/md.texi (vec_perm_const): Likewise. 20755 (vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST. 20756 * expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than 20757 expand_vec_perm for constant permutation vectors. Assert that 20758 the mode of variable permutation vectors is the integer equivalent 20759 of the mode that is being permuted. 20760 * optabs-query.h (selector_fits_mode_p): Declare. 20761 * optabs-query.c: Include vec-perm-indices.h. 20762 (selector_fits_mode_p): New function. 20763 (can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const 20764 is defined, instead of checking whether the vec_perm_const_optab 20765 exists. Use targetm.vectorize.vec_perm_const instead of 20766 targetm.vectorize.vec_perm_const_ok. Check whether the indices 20767 fit in the vector mode before using a variable permute. 20768 * optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a 20769 vec_perm_indices instead of an rtx. 20770 (expand_vec_perm): Replace with... 20771 (expand_vec_perm_const): ...this new function. Take the selector 20772 as a vec_perm_indices rather than an rtx. Also take the mode of 20773 the selector. Update call to shift_amt_for_vec_perm_mask. 20774 Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab. 20775 Use vec_perm_indices::new_expanded_vector to expand the original 20776 selector into bytes. Check whether the indices fit in the vector 20777 mode before using a variable permute. 20778 (expand_vec_perm_var): Make global. 20779 (expand_mult_highpart): Use expand_vec_perm_const. 20780 * fold-const.c: Includes vec-perm-indices.h. 20781 * tree-ssa-forwprop.c: Likewise. 20782 * tree-vect-data-refs.c: Likewise. 20783 * tree-vect-generic.c: Likewise. 20784 * tree-vect-loop.c: Likewise. 20785 * tree-vect-slp.c: Likewise. 20786 * tree-vect-stmts.c: Likewise. 20787 * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const): 20788 Delete. 20789 * config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete. 20790 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const) 20791 (aarch64_vectorize_vec_perm_const_ok): Fuse into... 20792 (aarch64_vectorize_vec_perm_const): ...this new function. 20793 (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 20794 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 20795 * config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete. 20796 * config/arm/vec-common.md (vec_perm_const<mode>): Delete. 20797 * config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 20798 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 20799 (arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge 20800 into... 20801 (arm_vectorize_vec_perm_const): ...this new function. Explicitly 20802 check for NEON modes. 20803 * config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete. 20804 * config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete. 20805 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment. 20806 (ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge 20807 into... 20808 (ix86_vectorize_vec_perm_const): ...this new function. Incorporate 20809 the old VEC_PERM_CONST conditions. 20810 * config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete. 20811 * config/ia64/vect.md (vec_perm_const<mode>): Delete. 20812 * config/ia64/ia64.c (ia64_expand_vec_perm_const) 20813 (ia64_vectorize_vec_perm_const_ok): Merge into... 20814 (ia64_vectorize_vec_perm_const): ...this new function. 20815 * config/mips/loongson.md (vec_perm_const<mode>): Delete. 20816 * config/mips/mips-msa.md (vec_perm_const<mode>): Delete. 20817 * config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete. 20818 * config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete. 20819 * config/mips/mips.c (mips_expand_vec_perm_const) 20820 (mips_vectorize_vec_perm_const_ok): Merge into... 20821 (mips_vectorize_vec_perm_const): ...this new function. 20822 * config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete. 20823 * config/powerpcspe/paired.md (vec_perm_constv2sf): Delete. 20824 * config/powerpcspe/spe.md (vec_perm_constv2si): Delete. 20825 * config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete. 20826 * config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const) 20827 (rs6000_expand_vec_perm_const): Delete. 20828 * config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): 20829 Delete. 20830 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 20831 (altivec_expand_vec_perm_const_le): Take each operand individually. 20832 Operate on constant selectors rather than rtxes. 20833 (altivec_expand_vec_perm_const): Likewise. Update call to 20834 altivec_expand_vec_perm_const_le. 20835 (rs6000_expand_vec_perm_const): Delete. 20836 (rs6000_vectorize_vec_perm_const_ok): Delete. 20837 (rs6000_vectorize_vec_perm_const): New function. 20838 (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of 20839 an element count and rtx array. 20840 (rs6000_expand_extract_even): Update call accordingly. 20841 (rs6000_expand_interleave): Likewise. 20842 * config/rs6000/altivec.md (vec_perm_constv16qi): Delete. 20843 * config/rs6000/paired.md (vec_perm_constv2sf): Delete. 20844 * config/rs6000/vsx.md (vec_perm_const<mode>): Delete. 20845 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const) 20846 (rs6000_expand_vec_perm_const): Delete. 20847 * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 20848 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 20849 (altivec_expand_vec_perm_const_le): Take each operand individually. 20850 Operate on constant selectors rather than rtxes. 20851 (altivec_expand_vec_perm_const): Likewise. Update call to 20852 altivec_expand_vec_perm_const_le. 20853 (rs6000_expand_vec_perm_const): Delete. 20854 (rs6000_vectorize_vec_perm_const_ok): Delete. 20855 (rs6000_vectorize_vec_perm_const): New function. Remove stray 20856 reference to the SPE evmerge intructions. 20857 (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of 20858 an element count and rtx array. 20859 (rs6000_expand_extract_even): Update call accordingly. 20860 (rs6000_expand_interleave): Likewise. 20861 * config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of... 20862 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this 20863 new function. 20864 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 20865 208662018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20867 20868 * optabs.c (expand_vec_perm_1): Assert that SEL has an integer 20869 vector mode and that that mode matches the mode of the data 20870 being permuted. 20871 (expand_vec_perm): Split handling of non-CONST_VECTOR selectors 20872 out into expand_vec_perm_var. Do all CONST_VECTOR handling here, 20873 directly using expand_vec_perm_1 when forcing selectors into 20874 registers. 20875 (expand_vec_perm_var): New function, split out from expand_vec_perm. 20876 208772018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20878 20879 * optabs-query.h (can_vec_perm_p): Delete. 20880 (can_vec_perm_var_p, can_vec_perm_const_p): Declare. 20881 * optabs-query.c (can_vec_perm_p): Split into... 20882 (can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions. 20883 (can_mult_highpart_p): Use can_vec_perm_const_p to test whether a 20884 particular selector is valid. 20885 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 20886 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 20887 (vect_grouped_load_supported): Likewise. 20888 (vect_shift_permute_load_chain): Likewise. 20889 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. 20890 (vect_transform_slp_perm_load): Likewise. 20891 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 20892 (vectorizable_bswap): Likewise. 20893 (vect_gen_perm_mask_checked): Likewise. 20894 * fold-const.c (fold_ternary_loc): Likewise. Don't take 20895 implementations of variable permutation vectors into account 20896 when deciding which selector to use. 20897 * tree-vect-loop.c (have_whole_vector_shift): Don't check whether 20898 vec_perm_const_optab is supported; instead use can_vec_perm_const_p 20899 with a false third argument. 20900 * tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p 20901 to test whether the constant selector is valid and can_vec_perm_var_p 20902 to test whether a variable selector is valid. 20903 209042018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20905 20906 * optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *. 20907 * optabs-query.c (can_vec_perm_p): Likewise. 20908 * fold-const.c (fold_vec_perm): Take a const vec_perm_indices & 20909 instead of vec_perm_indices. 20910 * tree-vectorizer.h (vect_gen_perm_mask_any): Likewise, 20911 (vect_gen_perm_mask_checked): Likewise, 20912 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise, 20913 (vect_gen_perm_mask_checked): Likewise, 20914 209152018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 20916 20917 * optabs-query.h (qimode_for_vec_perm): Declare. 20918 * optabs-query.c (can_vec_perm_p): Split out qimode search to... 20919 (qimode_for_vec_perm): ...this new function. 20920 * optabs.c (expand_vec_perm): Use qimode_for_vec_perm. 20921 209222018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 20923 20924 * rtlanal.c (canonicalize_condition): Return 0 if final rtx 20925 does not have a conditional at the top. 20926 209272018-01-02 Richard Biener <rguenther@suse.de> 20928 20929 * ipa-inline.c (big_speedup_p): Fix expression. 20930 209312018-01-02 Jan Hubicka <hubicka@ucw.cz> 20932 20933 PR target/81616 20934 * config/i386/x86-tune-costs.h: Increase cost of integer load costs 20935 for generic 4->6. 20936 209372018-01-02 Jan Hubicka <hubicka@ucw.cz> 20938 20939 PR target/81616 20940 Generic tuning. 20941 * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17, 20942 cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14 20943 and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase 20944 cond_taken_branch_cost 3->4. 20945 209462018-01-01 Jakub Jelinek <jakub@redhat.com> 20947 20948 PR tree-optimization/83581 20949 * tree-loop-distribution.c (pass_loop_distribution::execute): Return 20950 TODO_cleanup_cfg if any changes have been made. 20951 20952 PR middle-end/83608 20953 * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of 20954 convert_modes if target mode has the right side, but different mode 20955 class. 20956 20957 PR middle-end/83609 20958 * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg 20959 last argument when extracting from CONCAT. If either from_real or 20960 from_imag is NULL, use expansion through memory. If result is not 20961 a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg 20962 the parts directly to inner mode, if even that fails, use expansion 20963 through memory. 20964 20965 PR middle-end/83623 20966 * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT, 20967 check for bswap in mode rather than HImode and use that in expand_unop 20968 too. 20969 20970Copyright (C) 2018 Free Software Foundation, Inc. 20971 20972Copying and distribution of this file, with or without modification, 20973are permitted in any medium without royalty provided the copyright 20974notice and this notice are preserved. 20975