12020-03-04 Release Manager 2 3 * GCC 8.4.0 released. 4 52020-03-02 Martin Liska <mliska@suse.cz> 6 7 Backport from mainline 8 2020-02-28 Martin Liska <mliska@suse.cz> 9 10 PR other/93965 11 * configure.ac: Improve detection of ld_date by requiring 12 either two dashes or none. 13 * configure: Regenerate. 14 152020-02-29 Peter Bergner <bergner@linux.ibm.com> 16 17 Revert 18 2020-02-20 Peter Bergner <bergner@linux.ibm.com> 19 20 PR target/93658 21 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX 22 vector modes. 23 24 2020-02-03 Michael Meissner <meissner@linux.ibm.com> 25 26 * config/rs6000/rs6000.c (get_vector_offset): New helper function 27 to calculate the offset in memory from the start of a vector of a 28 particular element. Add code to keep the element number in 29 bounds if the element number is variable. 30 (rs6000_adjust_vec_address): Move calculation of offset of the 31 vector element to get_vector_offset. 32 (rs6000_split_vec_extract_var): Do not do the initial AND of 33 element here, move the code to get_vector_offset. 34 35 2020-02-05 Michael Meissner <meissner@linux.ibm.com> 36 37 PR target/93568 38 * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert 39 to use MEM. 40 41 2020-01-06 Michael Meissner <meissner@linux.ibm.com> 42 43 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): 44 Use 'Q' for doing vector extract from memory. 45 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from 46 memory. 47 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for 48 doing vector extract from memory. 49 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector 50 extract from memory. 51 522020-02-26 Carl Love <cel@us.ibm.com> 53 54 PR target/91276 55 * doc/extend.texi (PowerPC AltiVec Built-in Functions): The 56 builtin-function name __builtin_crypto_vpmsumb is only for the 57 vector unsigned short arguments. It is also listed as the name of 58 the built-in for arguments vector unsigned short, 59 vector unsigned int and vector unsigned long long built-ins. The 60 name of the builtins for these arguments should be: 61 __builtin_crypto_vpmsumh, __builtin_crypto_vpmsumw and 62 __builtin_crypto_vpmsumd respectively. 63 642020-02-26 Jakub Jelinek <jakub@redhat.com> 65 66 PR tree-optimization/93820 67 * gimple-ssa-store-merging.c (check_no_overlap): Change RHS_CODE 68 argument to ALL_INTEGER_CST_P boolean. 69 (imm_store_chain_info::try_coalesce_bswap): Adjust caller. 70 (imm_store_chain_info::coalesce_immediate_stores): Likewise. Handle 71 adjacent INTEGER_CST store into merged_store->only_constants like 72 overlapping one. 73 742020-02-25 Jakub Jelinek <jakub@redhat.com> 75 76 PR rtl-optimization/93908 77 * combine.c (find_split_point): For store into ZERO_EXTRACT, and src 78 with mask. 79 802019-02-25 Eric Botcazou <ebotcazou@adacore.com> 81 82 * dwarf2out.c (dwarf2out_size_function): Run in early-DWARF mode. 83 842020-02-25 Roman Zhuykov <zhroma@ispras.ru> 85 86 Backport from master 87 2020-02-24 Roman Zhuykov <zhroma@ispras.ru> 88 89 * doc/install.texi (--enable-checking): Properly document current 90 behavior. 91 (--enable-stage1-checking): Minor clarification about bootstrap. 92 932020-02-25 Richard Sandiford <richard.sandiford@arm.com> 94 95 Backport from mainline 96 2020-02-19 Richard Sandiford <richard.sandiford@arm.com> 97 98 PR tree-optimization/93767 99 * tree-vect-data-refs.c (vect_compile_time_alias): Remove the 100 access-size bias from the offset calculations for negative strides. 101 1022020-02-25 Richard Sandiford <richard.sandiford@arm.com> 103 104 Backport from mainline 105 2020-01-28 Richard Sandiford <richard.sandiford@arm.com> 106 107 PR tree-optimization/93434 108 * tree-predcom.c (split_data_refs_to_components): Record which 109 components have had aliasing loads removed. Prevent store-store 110 commoning for all such components. 111 1122020-02-25 Richard Sandiford <richard.sandiford@arm.com> 113 114 Backport from mainline 115 2019-12-05 Richard Sandiford <richard.sandiford@arm.com> 116 117 PR middle-end/92768 118 * tree-core.h (OEP_BITWISE): New flag. 119 * fold-const.c (operand_compare::operand_equal_p): Handle it. 120 * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it. 121 1222020-02-25 Richard Sandiford <richard.sandiford@arm.com> 123 124 Backport from mainline 125 2019-11-11 Richard Sandiford <richard.sandiford@arm.com> 126 127 PR tree-optimization/92420 128 * tree-vect-stmts.c (get_negative_load_store_type): Move further 129 up file. 130 (get_group_load_store_type): Use it for reversed SLP accesses. 131 1322020-02-25 Richard Sandiford <richard.sandiford@arm.com> 133 134 Backport from mainline 135 2019-08-09 Richard Sandiford <richard.sandiford@arm.com> 136 137 PR middle-end/90313 138 * tree-tailcall.c (find_tail_calls): Reject calls that might 139 read from an escaped RESULT_DECL. 140 1412020-02-24 Jason Merrill <jason@redhat.com> 142 143 PR c++/92003 144 * symtab.c (symtab_node::nonzero_address): A DECL_COMDAT decl has 145 non-zero address even if weak and not yet defined. 146 1472020-02-23 Peter Bergner <bergner@linux.ibm.com> 148 149 Backport from master 150 2020-02-20 Peter Bergner <bergner@linux.ibm.com> 151 152 PR target/93658 153 * config/rs6000/rs6000.c (rs6000_legitimate_address_p): Handle VSX 154 vector modes. 155 1562020-02-23 Peter Bergner <bergner@linux.ibm.com> 157 158 Backport from master 159 2020-02-03 Michael Meissner <meissner@linux.ibm.com> 160 161 * config/rs6000/rs6000.c (get_vector_offset): New helper function 162 to calculate the offset in memory from the start of a vector of a 163 particular element. Add code to keep the element number in 164 bounds if the element number is variable. 165 (rs6000_adjust_vec_address): Move calculation of offset of the 166 vector element to get_vector_offset. 167 (rs6000_split_vec_extract_var): Do not do the initial AND of 168 element here, move the code to get_vector_offset. 169 170 Backport from master 171 2020-02-05 Michael Meissner <meissner@linux.ibm.com> 172 173 PR target/93568 174 * config/rs6000/rs6000.c (get_vector_offset): Fix Q constraint assert 175 to use MEM. 176 1772020-02-23 Peter Bergner <bergner@linux.ibm.com> 178 179 Backport from master 180 2020-01-06 Michael Meissner <meissner@linux.ibm.com> 181 182 * config/rs6000/vsx.md (vsx_extract_<mode>_var, VSX_D iterator): 183 Use 'Q' for doing vector extract from memory. 184 (vsx_extract_v4sf_var): Use 'Q' for doing vector extract from 185 memory. 186 (vsx_extract_<mode>_var, VSX_EXTRACT_I iterator): Use 'Q' for 187 doing vector extract from memory. 188 (vsx_extract_<mode>_<VS_scalar>mode_var): Use 'Q' for doing vector 189 extract from memory. 190 1912020-02-21 John David Anglin <danglin@gcc.gnu.org> 192 193 * gcc/config/pa/pa.c (pa_function_value): Fix check for word and 194 double-word size when handling aggregate return values. 195 * gcc/config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Fix to indicate 196 that homogeneous SFmode and DFmode aggregates are passed and returned 197 in general registers. 198 1992020-02-20 Uroš Bizjak <ubizjak@gmail.com> 200 201 PR target/93828 202 * config/i386/mmx.md (*vec_extractv2sf_1): Match source operand 203 to destination operand for shufps alternative. 204 (*vec_extractv2si_1): Ditto. 205 2062020-02-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 207 208 * collect2.c (tool_cleanup): Avoid calling not signal-safe 209 functions. 210 (maybe_run_lto_and_relink): Avoid possible signal handler 211 access to unintialzed memory (lto_o_files). 212 2132020-02-20 H.J. Lu <hongjiu.lu@intel.com> 214 215 Backport from master 216 2020-02-13 H.J. Lu <hongjiu.lu@intel.com> 217 218 PR target/93656 219 * config/i386/i386.c (ix86_trampoline_init): Skip ENDBR32 at 220 the target function entry. 221 2222020-02-17 Richard Biener <rguenther@suse.de> 223 224 Backport from mainline 225 2020-01-22 Richard Biener <rguenther@suse.de> 226 227 PR tree-optimization/93381 228 * tree-ssa-structalias.c (find_func_aliases): Assume offsetting 229 throughout, handle all conversions the same. 230 2312020-02-17 Richard Biener <rguenther@suse.de> 232 233 Backport from mainline 234 2020-01-28 Richard Biener <rguenther@suse.de> 235 236 PR tree-optimization/93439 237 * tree-parloops.c (create_loop_fn): Move clique bookkeeping... 238 * tree-cfg.c (move_sese_region_to_fn): ... here. 239 (verify_types_in_gimple_reference): Verify used cliques are 240 tracked. 241 2422020-02-17 Richard Biener <rguenther@suse.de> 243 244 Backport from mainline 245 2020-01-09 Richard Biener <rguenther@suse.de> 246 247 PR middle-end/93054 248 * gimplify.c (gimplify_expr): Deal with NOP definitions. 249 2502020-02-17 Richard Biener <rguenther@suse.de> 251 252 Backport from mainline 253 2020-01-20 Richard Biener <rguenther@suse.de> 254 255 PR debug/92763 256 * dwarf2out.c (prune_unused_types): Unconditionally mark 257 called function DIEs. 258 2592020-02-17 Richard Biener <rguenther@suse.de> 260 261 Backport from mainline 262 2019-11-29 Richard Biener <rguenther@suse.de> 263 264 PR tree-optimization/92704 265 * tree-if-conv.c (combine_blocks): Deal with virtual PHIs 266 in loops performing only loads. 267 2682020-02-17 Richard Biener <rguenther@suse.de> 269 270 Backport from mainline 271 2019-11-27 Richard Biener <rguenther@suse.de> 272 273 PR middle-end/92674 274 * tree-inline.c (expand_call_inline): Delay purging EH/abnormal 275 edges and instead record blocks in bitmap. 276 (gimple_expand_calls_inline): Adjust. 277 (fold_marked_statements): Delay EH cleanup until all folding is 278 done. 279 (optimize_inline_calls): Do EH/abnormal cleanup for calls after 280 inlining finished. 281 2822020-02-14 Hongtao Liu <hongtao.liu@intel.com> 283 284 PR target/93724 285 * config/i386/avx512vbmi2intrin.h 286 (_mm512_shrdi_epi16, _mm512_mask_shrdi_epi16, 287 _mm512_maskz_shrdi_epi16, _mm512_shrdi_epi32, 288 _mm512_mask_shrdi_epi32, _mm512_maskz_shrdi_epi32, 289 _m512_shrdi_epi64, _m512_mask_shrdi_epi64, 290 _m512_maskz_shrdi_epi64, _mm512_shldi_epi16, 291 _mm512_mask_shldi_epi16, _mm512_maskz_shldi_epi16, 292 _mm512_shldi_epi32, _mm512_mask_shldi_epi32, 293 _mm512_maskz_shldi_epi32, _mm512_shldi_epi64, 294 _mm512_mask_shldi_epi64, _mm512_maskz_shldi_epi64): Fix typo 295 of lacking a closing parenthesis. 296 * config/i386/avx512vbmi2vlintrin.h 297 (_mm256_shrdi_epi16, _mm256_mask_shrdi_epi16, 298 _mm256_maskz_shrdi_epi16, _mm256_shrdi_epi32, 299 _mm256_mask_shrdi_epi32, _mm256_maskz_shrdi_epi32, 300 _m256_shrdi_epi64, _m256_mask_shrdi_epi64, 301 _m256_maskz_shrdi_epi64, _mm256_shldi_epi16, 302 _mm256_mask_shldi_epi16, _mm256_maskz_shldi_epi16, 303 _mm256_shldi_epi32, _mm256_mask_shldi_epi32, 304 _mm256_maskz_shldi_epi32, _mm256_shldi_epi64, 305 _mm256_mask_shldi_epi64, _mm256_maskz_shldi_epi64, 306 _mm_shrdi_epi16, _mm_mask_shrdi_epi16, 307 _mm_maskz_shrdi_epi16, _mm_shrdi_epi32, 308 _mm_mask_shrdi_epi32, _mm_maskz_shrdi_epi32, 309 _mm_shrdi_epi64, _mm_mask_shrdi_epi64, 310 _m_maskz_shrdi_epi64, _mm_shldi_epi16, 311 _mm_mask_shldi_epi16, _mm_maskz_shldi_epi16, 312 _mm_shldi_epi32, _mm_mask_shldi_epi32, 313 _mm_maskz_shldi_epi32, _mm_shldi_epi64, 314 _mm_mask_shldi_epi64, _mm_maskz_shldi_epi64): Ditto. 315 3162020-02-15 Jakub Jelinek <jakub@redhat.com> 317 318 PR tree-optimization/93744 319 * match.pd (((m1 >/</>=/<= m2) * d -> (m1 >/</>=/<= m2) ? d : 0): For 320 GENERIC, make sure @2 in the first and @1 in the other patterns has no 321 side-effects. 322 3232020-02-14 Eric Botcazou <ebotcazou@adacore.com> 324 325 PR target/93704 326 * config/sparc/sparc.c (eligible_for_call_delay): Test HAVE_GNU_LD in 327 conjunction with TARGET_GNU_TLS in early return. 328 3292020-02-14 Jakub Jelinek <jakub@redhat.com> 330 331 Backported from mainline 332 2020-02-13 Jakub Jelinek <jakub@redhat.com> 333 334 PR target/93696 335 * config/i386/avx512bitalgintrin.h (_mm512_mask_popcnt_epi8, 336 _mm512_mask_popcnt_epi16, _mm256_mask_popcnt_epi8, 337 _mm256_mask_popcnt_epi16, _mm_mask_popcnt_epi8, 338 _mm_mask_popcnt_epi16): Rename __B argument to __A and __A to __W, 339 pass __A to the builtin followed by __W instead of __A followed by 340 __B. 341 * config/i386/avx512vpopcntdqintrin.h (_mm512_mask_popcnt_epi32, 342 _mm512_mask_popcnt_epi64): Likewise. 343 * config/i386/avx512vpopcntdqvlintrin.h (_mm_mask_popcnt_epi32, 344 _mm256_mask_popcnt_epi32, _mm_mask_popcnt_epi64, 345 _mm256_mask_popcnt_epi64): Likewise. 346 347 PR target/93673 348 * config/i386/sse.md (k<code><mode>): Drop mode from last operand and 349 use const_0_to_255_operand predicate instead of immediate_operand. 350 (avx512dq_fpclass<mode><mask_scalar_merge_name>, 351 avx512dq_vmfpclass<mode><mask_scalar_merge_name>, 352 vgf2p8affineinvqb_<mode><mask_name>, 353 vgf2p8affineqb_<mode><mask_name>): Drop mode from 354 const_0_to_255_operand predicated operands. 355 356 2020-02-12 Jakub Jelinek <jakub@redhat.com> 357 358 PR target/93670 359 * config/i386/sse.md (VI48F_256_DQ): New mode iterator. 360 (avx512vl_vextractf128<mode>): Use it instead of VI48F_256. Remove 361 TARGET_AVX512DQ from condition. 362 (vec_extract_lo_<mode><mask_name>): Use <mask_avx512dq_condition> 363 instead of <mask_mode512bit_condition> in condition. If 364 TARGET_AVX512DQ is false, emit vextract*64x4 instead of 365 vextract*32x8. 366 (vec_extract_lo_<mode><mask_name>): Drop <mask_avx512dq_condition> 367 from condition. 368 369 2020-02-10 Jakub Jelinek <jakub@redhat.com> 370 371 PR target/93637 372 * config/i386/sse.md (VI_256_AVX2): New mode iterator. 373 (vcond_mask_<mode><sseintvecmodelower>): Use it instead of VI_256. 374 Change condition from TARGET_AVX2 to TARGET_AVX. 375 376 2020-02-08 Uroš Bizjak <ubizjak@gmail.com> 377 Jakub Jelinek <jakub@redhat.com> 378 379 PR target/65782 380 * config/i386/i386.h (CALL_USED_REGISTERS): Make 381 xmm16-xmm31 call-used even in 64-bit ms-abi. 382 383 2020-02-06 Jakub Jelinek <jakub@redhat.com> 384 385 PR libgomp/93515 386 * omp-low.c (use_pointer_for_field): For nested constructs, also 387 look for map clauses on target construct. 388 (scan_omp_1_stmt) <case GIMPLE_OMP_TARGET>: Bump temporarily 389 taskreg_nesting_level. 390 391 2020-02-05 Jakub Jelinek <jakub@redhat.com> 392 393 PR middle-end/93555 394 * omp-simd-clone.c (expand_simd_clones): If simd_clone_mangle or 395 simd_clone_create failed when i == 0, adjust clone->nargs by 396 clone->inbranch. 397 398 2020-01-30 Jakub Jelinek <jakub@redhat.com> 399 400 PR middle-end/93505 401 * combine.c (simplify_comparison) <case ROTATE>: Punt on out of range 402 rotate counts. 403 404 2020-01-23 Jakub Jelinek <jakub@redhat.com> 405 406 PR rtl-optimization/93402 407 * postreload.c (reload_combine_recognize_pattern): Don't try to adjust 408 USE insns. 409 410 2020-01-22 Jakub Jelinek <jakub@redhat.com> 411 412 PR target/91298 413 * output.h (assemble_name_resolve): Declare. 414 * varasm.c (assemble_name_resolve): New function. 415 (assemble_name): Use it. 416 * config/i386/i386.h (ASM_OUTPUT_SYMBOL_REF): Define. 417 418 2020-01-21 Jakub Jelinek <jakub@redhat.com> 419 420 PR target/93333 421 * config/riscv/riscv.c (riscv_rtx_costs) <case ZERO_EXTRACT>: Verify 422 the last two operands are CONST_INT_P before using them as such. 423 424 PR target/93073 425 * config/rs6000/rs6000.c (rs6000_emit_cmove): If using fsel, punt for 426 compare_mode other than SFmode or DFmode. 427 428 2020-01-09 Jakub Jelinek <jakub@redhat.com> 429 430 PR inline-asm/93202 431 * config/riscv/riscv.c (riscv_print_operand_reloc): Use 432 output_operand_lossage instead of gcc_unreachable. 433 * doc/md.texi (riscv f constraint): Fix typo. 434 435 2020-01-03 Jakub Jelinek <jakub@redhat.com> 436 437 PR rtl-optimization/93088 438 * loop-iv.c (find_single_def_src): Punt after looking through 439 128 reg copies for regs with single definitions. Move definitions 440 to first uses. 441 442 2020-01-02 Jakub Jelinek <jakub@redhat.com> 443 444 PR ipa/93087 445 * predict.c (compute_function_frequency): Don't call 446 warn_function_cold on functions that already have cold attribute. 447 448 2019-12-14 Jakub Jelinek <jakub@redhat.com> 449 450 PR ipa/92357 451 * ipa-fnsummary.c (ipa_fn_summary_write): Use 452 lto_symtab_encoder_iterator with lsei_start_function_in_partition and 453 lsei_next_function_in_partition instead of walking all cgraph nodes 454 in encoder. 455 456 PR tree-optimization/92930 457 * ipa-pure-const.c (special_builtin_state): Don't handle 458 BUILT_IN_APPLY. 459 460 2019-12-12 Jakub Jelinek <jakub@redhat.com> 461 462 PR target/92904 463 * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and 464 not need_temp, decrease alignment of the read because the GPR save 465 area only guarantees 8-byte alignment. 466 467 2019-12-11 Jakub Jelinek <jakub@redhat.com> 468 469 PR target/92723 470 * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not 471 vect_internal_def, use oprnd1 as is, without trying to cast it. 472 Formatting fix. 473 474 2019-11-27 Jakub Jelinek <jakub@redhat.com> 475 476 PR debug/92664 477 * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "". 478 479 2019-11-23 Jakub Jelinek <jakub@redhat.com> 480 481 PR target/92615 482 * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is 483 GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not 484 register_operand, force x into register before storing it into dest. 485 Formatting fix. 486 4872020-02-14 Richard Biener <rguenther@suse.de> 488 489 Backport from mainline 490 PR middle-end/93246 491 * alias.c (record_component_aliases): Take superset to record 492 into, recurse for alias-set zero fields. 493 (record_component_aliases): New oveerload wrapping around the above. 494 4952020-02-11 Tamar Christina <tamar.christina@arm.com> 496 497 Backport from mainline 498 2020-01-31 Tamar Christina <tamar.christina@arm.com> 499 500 PR rtl-optimization/91838 501 * simplify-rtx.c (simplify_binary_operation_1): Update LSHIFTRT case 502 to truncate if allowed or reject combination. 503 5042020-01-27 Wilco Dijkstra <wdijkstr@arm.com> 505 506 PR target/92692 507 * config/aarch64/aarch64.c (aarch64_split_compare_and_swap) 508 Add assert to ensure prolog has been emitted. 509 (aarch64_split_atomic_op): Likewise. 510 * config/aarch64/atomics.md (aarch64_compare_and_swap<mode>) 511 Use epilogue_completed rather than reload_completed. 512 (aarch64_atomic_exchange<mode>): Likewise. 513 (aarch64_atomic_<atomic_optab><mode>): Likewise. 514 (atomic_nand<mode>): Likewise. 515 (aarch64_atomic_fetch_<atomic_optab><mode>): Likewise. 516 (atomic_fetch_nand<mode>): Likewise. 517 (aarch64_atomic_<atomic_optab>_fetch<mode>): Likewise. 518 (atomic_nand_fetch<mode>): Likewise. 519 5202020-01-19 Eric S. Raymond <esr@thyrsus.com> 521 Sandra Loosemore <sandra@codesourcery.com> 522 523 Backport from mainline: 524 525 2020-01-19 Eric S. Raymond <esr@thyrsus.com> 526 527 * doc/contribute.texi: Update for SVN -> Git transition. 528 * doc/install.texi: Likewise. 529 5302020-01-15 Martin Liska <mliska@suse.cz> 531 532 Backport from mainline 533 2019-04-14 Jan Hubicka <hubicka@ucw.cz> 534 535 PR lto/89358 536 * ipa-devirt.c (skip_in_fields_list_p): New. 537 (odr_types_equivalent_p): Use it. 538 5392020-01-10 Martin Jambor <mjambor@suse.cz> 540 541 Backport from mainline 542 2019-12-17 Martin Jambor <mjambor@suse.cz> 543 544 PR ipa/92971 545 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix 546 definition of values, release memory on exit. 547 5482020-01-09 Martin Liska <mliska@suse.cz> 549 550 Backport from mainline 551 2019-12-12 Jan Hubicka <hubicka@ucw.cz> 552 553 * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering 554 of execution of function call parameters. 555 5562020-01-08 Georg-Johann Lay <avr@gjlay.de> 557 558 Backport from 2020-01-08 trunk r279995. 559 560 Add -nodevicespecs option for avr. 561 562 PR target/93182 563 * config/avr/avr.opt (-nodevicespecs): New driver option. 564 * config/avr/driver-avr.c (avr_devicespecs_file): Only issue 565 "-specs=device-specs/..." if that option is not set. 566 * doc/invoke.texi (AVR Options) <-nodevicespecs>: Document. 567 5682020-01-06 John David Anglin <danglin@gcc.gnu.org> 569 570 * config/pa/pa.md: Revert change to use ordered_comparison_operator 571 instead of cmpib_comparison_operator in cmpib patterns. 572 * config/pa/predicates.md (cmpib_comparison_operator): Revert removal 573 of cmpib_comparison_operator. Revise comment. 574 5752020-01-01 John David Anglin <danglin@gcc.gnu.org> 576 577 PR target/93111 578 * config/pa/pa.md (scc): Use ordered_comparison_operator instead of 579 comparison_operator in B and S integer comparisons. Likewise, use 580 ordered_comparison_operator instead of cmpib_comparison_operator in 581 cmpib patterns. 582 * config/pa/predicates.md (cmpib_comparison_operator): Remove. 583 5842019-12-28 Iain Sandoe <iain@sandoe.co.uk> 585 586 Backport from mainline. 587 2019-12-14 Iain Sandoe <iain@sandoe.co.uk> 588 589 * config/darwin.h (DARWIN_EXTRA_SPECS): Add new 590 bundle spec. (DARWIN_BUNDLE1_SPEC): New. 591 (STARTFILE_SPEC): Use darwin bundle spec. 592 * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. 593 (DARWIN_DYLIB1_SPEC): Delete duplicate. 594 5952019-12-20 Roman Zhuykov <zhroma@ispras.ru> 596 597 Backport from mainline 598 2019-12-13 Roman Zhuykov <zhroma@ispras.ru> 599 600 PR rtl-optimization/92591 601 * modulo-sched.c (ps_add_node_check_conflicts): Improve checking 602 for history > 0 case. 603 * params.def (sms-dfa-history): Limit to 16. 604 6052019-12-19 Georg-Johann Lay <avr@gjlay.de> 606 607 Backport support for some AVR devices from avrxmega3 family 608 from SVN trunk r279309, r278387, r278389, r278478. 609 610 PR target/92545 611 * config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field. 612 * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers. 613 * config/avr/avr-mcus.def (AVR_MCU): Add respective field. 614 * config/avr/gen-avr-mmcu-specs.c (print_mcu) 615 <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code 616 for spec definitions. 617 * config/avr/gen-avr-mmcu-texi.c: Rewrite. 618 * doc/avr-mmcu.texi: Regenerate. 619 6202019-12-17 Andreas Krebbel <krebbel@linux.ibm.com> 621 622 Backport from mainline 623 2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com> 624 625 PR target/92950 626 * config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy, 627 and lhrl with llc. 628 6292019-12-02 Wilco Dijkstra <wdijkstr@arm.com> 630 631 * config/aarch64/aarch64-cores.def (ares): Define. 632 (cortex-a76): Likewise. 633 (neoverse-n1): Likewise. 634 * config/aarch64/aarch64-tune.md: Regenerate. 635 * doc/invoke.texi (AArch64 Options): Document ares, cortex-a75 and 636 neoverse-n1. 637 6382019-11-29 David Malcolm <dmalcolm@redhat.com> 639 640 PR driver/89014 641 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix 642 use-after-free of the result of 643 aarch64_get_extension_string_for_isa_flags. 644 6452019-11-21 Jakub Jelinek <jakub@redhat.com> 646 647 PR tree-optimization/91355 648 * tree-ssa-sink.c (select_best_block): Use >= rather than > 649 for early_bb scaled count with best_bb count comparison. 650 651 Backported from mainline 652 2019-11-20 Jakub Jelinek <jakub@redhat.com> 653 654 PR middle-end/90840 655 * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM 656 and has a mode that doesn't have corresponding integral type. 657 658 PR target/90867 659 * config/i386/i386.c (ix86_valid_target_attribute_tree): Don't 660 clear opts->x_ix86_isa_flags{,2} here... 661 (ix86_valid_target_attribute_inner_p): ... but here when seeing 662 arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit. 663 664 PR c/90898 665 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove 666 assertion. 667 (insert_clobbers_for_var): Fix a typo in function comment. 668 669 2019-11-19 Jakub Jelinek <jakub@redhat.com> 670 671 PR middle-end/91450 672 * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one 673 operand is negative and one non-negative, compare the non-negative 674 one against 0 rather than comparing s1 & s2 against 0. Otherwise, 675 don't compare (s1 & s2) == 0, but compare separately both s1 == 0 676 and s2 == 0, unless one of them is known to be negative. Remove 677 tem2 variable, use tem where tem2 has been used before. 678 679 2019-11-08 Jakub Jelinek <jakub@redhat.com> 680 681 PR c++/92384 682 * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't 683 copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm 684 slot. 685 (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type 686 force creation of a unique data.stack_parm slot. 687 688 2019-10-17 Jakub Jelinek <jakub@redhat.com> 689 690 PR tree-optimization/92056 691 * tree-object-size.c (cond_expr_object_size): Return early if then_ 692 processing resulted in unknown size. 693 694 2019-09-07 Jakub Jelinek <jakub@redhat.com> 695 696 PR tree-optimization/91665 697 * tree-vect-loop.c (vectorizable_reduction): Punt if base has type 698 incompatible with the type of PHI result. 699 700 2019-09-06 Jakub Jelinek <jakub@redhat.com> 701 702 * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P 703 before testing TYPE_TRANSPARENT_AGGR. 704 * calls.c (initialize_argument_information, load_register_parameters): 705 Likewise. 706 707 2019-09-05 Jakub Jelinek <jakub@redhat.com> 708 709 PR middle-end/91001 710 PR middle-end/91105 711 PR middle-end/91106 712 * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR 713 types, use type of their first field instead of type of 714 args[i].tree_value. 715 716 2019-09-01 Jakub Jelinek <jakub@redhat.com> 717 718 PR middle-end/91623 719 * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only 720 EQ_EXPR/NE_EXPR is supported, verify that op0 only contains 721 zeros or negative elements and use NE_EXPR instead of LT_EXPR against 722 zero vector. 723 7242019-11-20 Peter Bergner <bergner@linux.ibm.com> 725 726 Backport from mainline 727 2019-11-07 Peter Bergner <bergner@linux.ibm.com> 728 729 PR other/92090 730 * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT 731 modes for integer constants. 732 7332019-11-19 Eric Botcazou <ebotcazou@adacore.com> 734 735 * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo. 736 7372019-11-14 Martin Liska <mliska@suse.cz> 738 739 Backport from mainline 740 2019-11-14 Martin Liska <mliska@suse.cz> 741 742 PR target/92389 743 * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to 744 PTA_ICELAKE_CLIENT which is later interited by 745 PTA_ICELAKE_SERVER and PTA_TIGERLAKE. 746 7472019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 748 749 Backport from mainline 750 * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument 751 instead of asserting its value. 752 7532019-11-11 H.J. Lu <hjl.tools@gmail.com> 754 755 Backport from trunk: 756 PR target/87833 757 * config/i386/intelmic-mkoffload.c (prepare_target_image): Put 758 -fPIC and -shared the last to create offload image. 759 7602019-11-11 Thomas Schwinge <thomas@codesourcery.com> 761 762 Backport from trunk: 763 * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead 764 of 'offset'. 765 766 Backport from trunk: 767 * Makefile.in (LANG_CONFIGUREFRAGS): Define. 768 (config.status): Use/depend on it. 769 * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'. 770 * configure: Regenerate. 771 7722019-11-09 John David Anglin <danglin@gcc.gnu.org> 773 774 Backport from mainline 775 2019-11-07 John David Anglin <danglin@gcc.gnu.org> 776 777 * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers. 778 Enhance comment. 779 (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New 780 insn patterns using ldcw instruction. 781 (memory_barrier): Remove insn pattern using sync instruction. 782 * config/pa/pa.opt (coherent-ldcw): New option. 783 (ordered): New option. 784 7852019-11-08 Eric Botcazou <ebotcazou@adacore.com> 786 787 PR target/92095 788 * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare. 789 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest 790 change. 791 (got_helper_needed): New static variable. 792 (output_load_pcrel_sym): New function. 793 (get_pc_thunk_name): Remove after inlining... 794 (load_got_register): ...here. Rework the initialization of the GOT 795 register and of the GOT helper. 796 (save_local_or_in_reg_p): Test the REGNO of the GOT register. 797 (sparc_file_end): Test got_helper_needed to decide whether the GOT 798 helper must be emitted. Use output_asm_insn instead of fprintf. 799 (sparc_init_pic_reg): In PIC mode, always initialize the PIC register 800 if optimization is enabled. 801 * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly 802 by calling output_load_pcrel_sym. 803 8042019-11-06 John David Anglin <danglin@gcc.gnu.org> 805 806 Backport from mainline 807 2018-09-19 John David Anglin <danglin@gcc.gnu.org> 808 809 PR rtl-optimization/85458 810 * config/pa/pa.c (pa_adjust_priority): Delete. 811 (TARGET_SCHED_ADJUST_PRIORITY): Delete define. 812 8132019-11-05 Segher Boessenkool <segher@kernel.crashing.org> 814 815 Backport from trunk 816 2019-10-24 Segher Boessenkool <segher@kernel.crashing.org> 817 818 * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to... 819 (uavg<mode>3_ceil): ... This. 820 (altivec_vavgs<VI_char>): Rename to... 821 (avg<mode>3_ceil): ... This. 822 * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH, 823 VAVGUW, VAVGSW): Adjust. 824 8252019-11-05 Segher Boessenkool <segher@kernel.crashing.org> 826 827 Backport from trunk 828 2019-10-26 Segher Boessenkool <segher@kernel.crashing.org> 829 830 PR target/91289 831 * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Don't add an 832 immediate to r0; use r11 instead. Save and restore r11 to r0 around 833 this. 834 8352019-11-04 John David Anglin <danglin@gcc.gnu.org> 836 837 Backport from mainline 838 2019-10-03 John David Anglin <danglin@gcc.gnu.org> 839 840 * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust. 841 8422019-11-04 John David Anglin <danglin@gcc.gnu.org> 843 844 Backport from mainline 845 2019-10-03 John David Anglin <danglin@gcc.gnu.org> 846 847 * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence. 848 (pa_attr_length_call): Adjust length for 64-bit plabel sequence. 849 8502019-11-04 John David Anglin <danglin@gcc.gnu.org> 851 852 Backport from mainline 853 2019-10-12 John David Anglin <danglin@gcc.gnu.org> 854 855 * config/pa/pa.c (pa_output_call): Load descriptor address to register 856 %r22. Load function address before global pointer. 857 (pa_attr_length_indirect_call): Adjust length of inline versions of 858 $$dyncall. 859 (pa_output_indirect_call): Remove fast inline version of $$dyncall 860 before normal cases. Update inline $$dyncall sequences to preserve 861 function descriptor address in register %r22. 862 (TRAMPOLINE_CODE_SIZE): Adjust. 863 (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume 864 register %r22 contains trampoline address. 865 (pa_trampoline_init): Adjust offsets. 866 (pa_trampoline_adjust_address): Likewise. 867 * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size. 868 869 2019-10-17 John David Anglin <danglin@gcc.gnu.org> 870 871 * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change. 872 8732019-11-1 Delia Burduv <Delia.Burduv@arm.com> 874 875 Backport from trunk 876 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> 877 878 PR target/86487 879 * lra-constraints.c(uses_hard_regs_p): Fix handling of 880 paradoxical SUBREGS. 881 8822019-10-31 Iain Sandoe <iain@sandoe.co.uk> 883 884 Backport from mainline 885 2019-10-13 Iain Sandoe <iain@sandoe.co.uk> 886 887 * config/darwin.c (machopic_indirection_name): Rework the 888 function to emit linker-visible symbols only for indirections 889 in the data section. Clean up the code and update comments. 890 8912019-10-31 Iain Sandoe <iain@sandoe.co.uk> 892 893 Backport from mainline 894 2019-10-09 Iain Sandoe <iain@sandoe.co.uk> 895 896 * config/darwin.c (darwin_override_options): Make the check for 897 Objective-C ABI version more specific for 64bit code. 898 899 Backport from mainline 900 2019-10-06 Iain Sandoe <iain@sandoe.co.uk> 901 902 * config/darwin.c (darwin_override_options): Adjust objective-c 903 ABI version error messages to avoid punctuation and contracted 904 negations. 905 9062019-10-31 Iain Sandoe <iain@sandoe.co.uk> 907 908 Backport from mainline 909 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> 910 911 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. 912 (STARTFILE_SPEC): Split crt3 into a separate spec. 913 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. 914 (DARWIN_CRT2_SPEC): New. 915 (DARWIN_CRT3_SPEC): New. 916 (MIN_LD64_OMIT_STUBS): Revise to 62.1. 917 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. 918 (DARWIN_CRT3_SPEC): New. 919 9202019-10-31 Iain Sandoe <iain@sandoe.co.uk> 921 922 Backport from mainline 923 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> 924 925 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the 926 spec. 927 928 Backport from mainline 929 2019-06-25 Iain Sandoe <iain@sandoe.co.uk> 930 931 * config/rs6000/darwin.h (ENDFILE_SPEC): New. 932 9332019-10-31 Iain Sandoe <iain@sandoe.co.uk> 934 935 Backport from mainline 936 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> 937 938 * config/darwin.c (darwin_emit_unwind_label): New default to false. 939 (darwin_override_options): Set darwin_emit_unwind_label as needed. 940 9412019-10-31 Iain Sandoe <iain@sandoe.co.uk> 942 943 Backport from mainline 944 2019-08-13 Iain Sandoe <iain@sandoe.co.uk> 945 946 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub 947 flag. 948 (darwin_override_options): Likewise. 949 * config/darwin.h: Likewise. 950 * config/darwin.opt: Likewise. 951 * config/i386/i386.c (output_pic_addr_const): Likewise. 952 * config/rs6000/darwin.h: Likewise. 953 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise. 954 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ... 955 ... this TARGET_MACHO_SYMBOL_STUBS. 956 (FUNCTION_PROFILER):Likewise. 957 * config/i386/i386.h: Likewise. 958 959 Backport from mainline 960 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> 961 962 * config/darwin.c (machopic_indirect_call_target): Use renamed 963 darwin_picsymbol_stubs to decide on output. 964 (darwin_override_options): Handle darwin_picsymbol_stubs. 965 * config/darwin.h (MIN_LD64_OMIT_STUBS): New. 966 (LD64_VERSION): Revise default. 967 * config/darwin.opt: (mpic-symbol-stubs): New option. 968 (darwin_picsymbol_stubs): New variable. 969 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): 970 rename to TARGET_MACHO_PICSYM_STUBS. 971 * config/i386/i386.c (output_pic_addr_const): Likewise. 972 * config/i386/i386.h Likewise. 973 * config/rs6000/darwin.h: Likewise. 974 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed 975 darwin_picsymbol_stubs. 976 9772019-10-31 Iain Sandoe <iain@sandoe.co.uk> 978 979 Backport from mainline 980 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> 981 982 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour 983 user-specified float mode choice for kernel mode code. 984 9852019-10-31 Iain Sandoe <iain@sandoe.co.uk> 986 987 Backport from mainline 988 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> 989 990 * config/rs6000/darwin.h: Handle GCC target pragma. 991 9922019-10-30 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 993 994 Backport from mainline 995 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 996 997 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal 998 for both call instructions. 999 10002019-10-28 Iain Sandoe <iain@sandoe.co.uk> 1001 1002 Backport from mainline 1003 2019-10-17 Iain Sandoe <iain@sandoe.co.uk> 1004 1005 PR target/65342 1006 * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete. 1007 (movdi_low_st): Delete. 1008 * config/rs6000/rs6000.c 1009 (darwin_rs6000_legitimate_lo_sum_const_p): New. 1010 (mem_operand_gpr): Validate Mach-O LO_SUM cases separately. 1011 * config/rs6000/rs6000.md (movsi_low): Delete. 1012 10132019-10-28 Iain Sandoe <iain@sandoe.co.uk> 1014 1015 Backport from mainline 1016 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> 1017 1018 PR target/67183 1019 * config/darwin.c (machopic_indirection): New field to flag 1020 non-lazy-symbol-pointers in the data section. 1021 (machopic_indirection_name): Compute if an indirection should 1022 appear in the data section. 1023 (machopic_output_data_section_indirection): New callback split 1024 from machopic_output_indirection. 1025 (machopic_output_stub_indirection): Likewise. 1026 (machopic_output_indirection): Retain the code for non-lazy 1027 symbol pointers in their regular section. 1028 (machopic_finish): Use the new callbacks to order the indirection 1029 output. 1030 10312019-10-28 Iain Sandoe <iain@sandoe.co.uk> 1032 1033 Backport from mainline 1034 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> 1035 1036 * config/darwin-protos.h (machopic_finish): Delete. 1037 * config/darwin.c (machopic_finish): Make static. 1038 1039 Backport from mainline 1040 2019-10-09 Iain Sandoe <iain@sandoe.co.uk> 1041 1042 * config/darwin.c (machopic_indirect_data_reference): Set flag to 1043 indicate that the new symbol is an indirection. 1044 (machopic_indirect_call_target): Likewise. 1045 * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New. 1046 (MACHO_SYMBOL_INDIRECTION_P): New. 1047 (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number. 1048 1049 Backport from mainline 1050 2019-10-08 Iain Sandoe <iain@sandoe.co.uk> 1051 1052 * config/darwin.c (machopic_indirect_data_reference): Check for 1053 required indirections before making direct access to defined 1054 values. 1055 (machopic_output_indirection): Place the indirected pointes for 1056 required indirections into the non-lazy symbol pointers section. 1057 (darwin_encode_section_info): 1058 * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New. 1059 (MACHO_SYMBOL_MUST_INDIRECT_P): New. 1060 1061 Backport from mainline 1062 2019-10-07 Iain Sandoe <iain@sandoe.co.uk> 1063 1064 * config/darwin.c (machopic_output_indirection): Don't put 1065 hidden symbol indirections into the .data section, use the 1066 non-lazy symbol pointers section as normal. 1067 (darwin_encode_section_info): Record if a symbol is hidden. 1068 * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New. 1069 (MACHO_SYMBOL_HIDDEN_VIS_P): New. 1070 1071 Backport from mainline 1072 2019-10-07 Iain Sandoe <iain@sandoe.co.uk> 1073 1074 * config/darwin.c (machopic_symbol_defined_p): Use symbol flag 1075 predicates instead of accessing bits directly. 1076 (machopic_indirect_call_target): Likewise. 1077 (machopic_output_indirection): Likewise. 1078 (darwin_encode_section_info): Improve description. Use renamed 1079 symbol flags. Use predicate macros for variables and functions. 1080 * config/darwin.h: 1081 Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE. 1082 Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED. 1083 Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC. 1084 (MACHO_SYMBOL_VARIABLE_P): New. 1085 (MACHO_SYMBOL_DEFINED_P):New. 1086 (MACHO_SYMBOL_STATIC_P): New. 1087 * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete. 1088 (SYMBOL_FLAG_SUBT_DEP): New. 1089 * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New. 1090 10912019-10-28 Iain Sandoe <iain@sandoe.co.uk> 1092 1093 Backport from mainline 1094 2019-10-05 Iain Sandoe <iain@sandoe.co.uk> 1095 1096 PR target/59888 1097 * config/darwin.c (darwin_rodata_section): Add relocation flag, 1098 choose const_data section for constants with relocations. 1099 (machopic_select_section): Pass relocation flag to 1100 darwin_rodata_section (). 1101 11022019-10-28 Iain Sandoe <iain@sandoe.co.uk> 1103 1104 Backport from mainline 1105 2019-09-21 Iain Sandoe <iain@sandoe.co.uk> 1106 1107 * config/darwin.c (machopic_legitimize_pic_address): Check 1108 for lra, rather than reload. 1109 11102019-10-28 Peter Bergner <bergner@linux.ibm.com> 1111 Jiufu Guo <guojiufu@linux.ibm.com> 1112 1113 PR target/70010 1114 * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if 1115 the callee explicitly disables some isa_flags the caller is using. 1116 11172019-10-25 Iain Sandoe <iain@sandoe.co.uk> 1118 1119 * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN):Guard 1120 against out of range max skip or log values. 1121 11222019-10-25 Richard Earnshaw <rearnsha@arm.com> 1123 1124 Backport from mainline 1125 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com> 1126 Richard Earnshaw <rearnsha@arm.com> 1127 PR target/88167 1128 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New 1129 function. 1130 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. 1131 (thumb1_compute_save_core_reg_mask): Don't force a spare work 1132 register if both the epilogue and prologue can use call-clobbered 1133 regs. 1134 (thumb1_unexpanded_epilogue): Use 1135 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for 1136 picking temporaries for restoring high regs to match that of the 1137 prologue where possible. 1138 (thumb1_expand_prologue): Add any usable call-clobbered low registers to 1139 the list of work registers. Detect if the return address is still live 1140 at the end of the prologue and avoid using it for a work register if so. 1141 If the return address is not live, add LR to the list of pushable regs 1142 after the first pass. 1143 11442019-10-23 Peter Bergner <bergner@linux.ibm.com> 1145 1146 Backport from mainline 1147 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> 1148 1149 * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and 1150 LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and 1151 MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain. 1152 11532019-10-23 Richard Biener <rguenther@suse.de> 1154 1155 Backport from mainline 1156 2019-10-17 Richard Biener <rguenther@suse.de> 1157 1158 PR debug/91887 1159 * dwarf2out.c (gen_formal_parameter_die): Also try to match 1160 context_die against a DW_TAG_GNU_formal_parameter_pack parent. 1161 1162 2019-09-19 Richard Biener <rguenther@suse.de> 1163 1164 PR tree-optimization/91812 1165 * tree-ssa-phiprop.c (propagate_with_phi): Do not replace 1166 volatile loads. 1167 1168 2019-09-17 Richard Biener <rguenther@suse.de> 1169 1170 PR debug/91772 1171 * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf 1172 was missing generate locations only once. 1173 11742019-10-23 Eric Botcazou <ebotcazou@adacore.com> 1175 1176 PR tree-optimization/92131 1177 * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting 1178 range would be symbolic, drop to varying for any explicit overflow 1179 in the constant part or if neither range is a singleton. 1180 11812019-10-20 Iain Sandoe <iain@sandoe.co.uk> 1182 1183 Backport from mainline 1184 2019-10-03 Iain Sandoe <iain@sandoe.co.uk> 1185 1186 PR target/87243 1187 * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New. 1188 (darwin_driver_init): Use the sysroot provided by SDKROOT when that 1189 is available and the user has not set one on the command line. 1190 11912019-10-20 Iain Sandoe <iain@sandoe.co.uk> 1192 1193 Backport from mainline 1194 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> 1195 1196 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. 1197 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. 1198 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker 1199 clauses. 1200 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and 1201 DARWIN_NOPIE_SPEC. 1202 1203 Backport from mainline 1204 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> 1205 1206 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC 1207 and DARWIN_NOPIE_SPEC. 1208 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. 1209 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. 1210 (DARWIN_NOPIE_SPEC): Collate from darwin10.h. 1211 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h 1212 (DARWIN_EXPORT_DYNAMIC): Delete. 1213 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind 1214 and pie options processing to darwin.h. 1215 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h 1216 12172019-10-18 Georg-Johann Lay <avr@gjlay.de> 1218 1219 Backport from 2019-10-18 trunk r277143. 1220 1221 PR target/86040 1222 * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. 1223 12242019-10-17 Segher Boessenkool <segher@kernel.crashing.org> 1225 1226 Backport from trunk 1227 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org> 1228 1229 PR rtl-optimization/89721 1230 * lra-constraints (invariant_p): Return false if side_effects_p holds. 1231 12322019-10-17 Richard Earnshaw <rearnsha@arm.com> 1233 1234 Backport from mainline 1235 2019-05-03 Richard Earnshaw <rearnsha@arm.com> 1236 1237 PR target/89400 1238 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. 1239 Restrict 'all' variant to 32-bit configurations. 1240 (unaligned_loadhiu): Likewise. 1241 (unaligned_storehi): Likewise. 1242 (unaligned_storesi): Likewise. 1243 (unaligned_loadhis): Disable when compiling for thumb1. 1244 12452019-10-14 Will Schmidt <will_schmidt@vnet.ibm.com> 1246 1247 Backport from trunk 1248 2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com> 1249 1250 * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX, 1251 LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, 1252 LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, 1253 LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI, 1254 LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI, 1255 LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF, 1256 LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI, 1257 LD_ELEMREV_V16QI): Use the PURE attribute. 1258 12592019-10-10 Uroš Bizjak <ubizjak@gmail.com> 1260 1261 PR target/92022 1262 * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN. 1263 12642019-10-10 Oleg Endo <olegendo@gcc.gnu.org> 1265 1266 Backport from mainline 1267 2019-10-10 Oleg Endo <olegendo@gcc.gnu.org> 1268 1269 PR target/88630 1270 * config/sh/sh.h (TARGET_FPU_SH4_300): New macro. 1271 * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns 1272 also for TARGET_FPU_SH4_300. 1273 (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of 1274 TARGET_SH4_300. 1275 * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition. 1276 (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr. 1277 (*negsf2_i): Split into ... 1278 (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns. 1279 (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc. 1280 (**abssf2_i): Split into ... 1281 (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns. 1282 (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr. 1283 (*negdf2_i): Split into ... 1284 (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns. 1285 (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc. 1286 (**abssf2_i): Split into ... 1287 (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns. 1288 12892019-10-07 Bill Schmidt <wschmidt@linux.ibm.com> 1290 1291 Backport from mainline 1292 2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com> 1293 1294 PR target/91275 1295 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap 1296 vpmsumd. 1297 12982019-10-01 Oleg Endo <olegendo@gcc.gnu.org> 1299 1300 Backport from mainline 1301 1302 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org> 1303 1304 PR target/88562 1305 * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use 1306 sh_check_add_incdec_notes to preserve REG_INC notes when replacing 1307 a memory access insn. 1308 13092019-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1310 1311 Backport from mainline 1312 2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1313 1314 * config/aarch64/aarch64.md (mov<mode>): Don't call 1315 aarch64_split_dimode_const_store on volatile MEM. 1316 13172019-10-01 Eric Botcazou <ebotcazou@adacore.com> 1318 1319 PR target/91854 1320 Backport from mainline 1321 2019-09-20 Eric Botcazou <ebotcazou@adacore.com> 1322 1323 PR target/91269 1324 * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define. 1325 13262019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 1327 1328 Backport from mainline 1329 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 1330 1331 PR target/80672 1332 * config/sh/sh.c (parse_validate_atomic_model_option): Use 1333 std::string::compare instead of std::string::find. 1334 13352019-09-28 Oleg Endo <olegendo@gcc.gnu.org> 1336 1337 Backport from mainline 1338 2018-07-15 Jeff Law <law@redhat.com> 1339 1340 PR target/85993 1341 * config/sh/sh.c (output_mi_thunk): Remove dead conditional 1342 block. 1343 13442019-09-26 Iain Sandoe <iain@sandoe.co.uk> 1345 1346 Backport from mainline 1347 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> 1348 1349 * config/darwin.opt (prebind, noprebind, seglinkedit, 1350 noseglinkedit): Add RejectNegative. 1351 1352 Backport from mainline 1353 2019-06-14 Iain Sandoe <iain@sandoe.co.uk> 1354 1355 * config/darwin.opt: Add RejectNegative where needed, reorder 1356 and add minimal functional descriptions. 1357 13582019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1359 1360 Backport from mainline 1361 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1362 1363 * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 1364 intrinsics if __ARM_FP. 1365 Use __ARM_FEATURE_CRC32 ifdef guard. 1366 13672019-09-23 Max Filippov <jcmvbkbc@gmail.com> 1368 1369 Backport from mainline 1370 2019-06-18 Max Filippov <jcmvbkbc@gmail.com> 1371 1372 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack 1373 pointer adjustment for the case of no callee-saved registers and 1374 stack frame bigger than 128 bytes. 1375 13762019-09-20 John David Anglin <danglin@gcc.gnu.org> 1377 1378 * config/pa/pa.c (pa_trampoline_init): Remove spurious extended 1379 character. 1380 13812019-09-20 Andreas Krebbel <krebbel@linux.ibm.com> 1382 1383 Backport from mainline 1384 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com> 1385 1386 PR rtl-optimization/88751 1387 * ira.c (ira): Use the number of the actually referenced registers 1388 when calculating the threshold. 1389 13902019-09-11 Eric Botcazou <ebotcazou@adacore.com> 1391 1392 PR rtl-optimization/89795 1393 * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from 1394 inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. 1395 13962019-09-09 Jakub Jelinek <jakub@redhat.com> 1397 1398 PR target/87853 1399 * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi 1400 instead of __v16qs. 1401 1402 PR target/91704 1403 * config/i386/avxintrin.h (__v32qs): New typedef. 1404 * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs 1405 instead of __v32qi. 1406 14072019-09-04 Wilco Dijkstra <wdijkstr@arm.com> 1408 1409 Backport from mainline 1410 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com> 1411 1412 PR target/81800 1413 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF 1414 operand is larger than a long int. 1415 14162019-09-03 Iain Sandoe <iain@sandoe.co.uk> 1417 1418 Backport from mainline 1419 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> 1420 1421 PR pch/61250 1422 * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure 1423 and issue any diagnostics needed before collecting the pre-PCH 1424 state. 1425 14262019-09-01 Eric Botcazou <ebotcazou@adacore.com> 1427 1428 PR target/91472 1429 * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true 1430 during LRA/reload in PIC mode if the PIC register hasn't been used yet. 1431 (sparc_pic_register_p): Test reload_in_progress for consistency's sake. 1432 14332019-08-30 Richard Biener <rguenther@suse.de> 1434 1435 Backport from mainline 1436 2019-06-21 Richard Biener <rguenther@suse.de> 1437 1438 PR tree-optimization/90930 1439 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited 1440 flag on new stmts to avoid re-processing them. 1441 1442 2019-05-27 Richard Biener <rguenther@suse.de> 1443 1444 PR tree-optimization/90637 1445 * tree-ssa-sink.c (statement_sink_location): Honor the 1446 computed sink location for single-uses. 1447 14482019-08-30 Richard Biener <rguenther@suse.de> 1449 1450 Backport from mainline 1451 2019-07-08 Richard Biener <rguenther@suse.de> 1452 1453 PR tree-optimization/91108 1454 * tree-ssa-sccvn.c: Include builtins.h. 1455 (vn_reference_lookup_3): Use only alignment constraints to 1456 verify same-valued store disambiguation. 1457 14582019-08-30 Segher Boessenkool <segher@kernel.crashing.org> 1459 1460 Backport from trunk 1461 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> 1462 1463 PR target/91481 1464 * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, 1465 and UNSPEC_DARN_RAW. 1466 (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and 1467 UNSPECV_DARN_RAW. 1468 (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. 1469 (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. 1470 (darn): Use an unspec_volatile, and UNSPECV_DARN. 1471 14722019-08-30 Segher Boessenkool <segher@kernel.crashing.org> 1473 1474 Backport from trunk 1475 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> 1476 1477 * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, 1478 UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... 1479 * config/rs6000/rs6000.md (unspec): ... here. 1480 * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, 1481 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, 1482 cmpeqb, *cmpeqb_internal): Delete, move to... 1483 * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, 1484 *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, 1485 cmpeqb, *cmpeqb_internal): ... here. 1486 14872019-08-30 Richard Biener <rguenther@suse.de> 1488 1489 Backport from mainline 1490 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> 1491 1492 PR middle-end/88567 1493 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the 1494 output vector directly to duplicate_and_interleave instead of 1495 going through a temporary. Postpone insertion of ctor_seq to 1496 the end of the loop. 1497 1498 2018-12-04 Richard Biener <rguenther@suse.de> 1499 1500 PR tree-optimization/88315 1501 * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify 1502 and fix initialization vector for SAD and DOT_PROD SLP reductions. 1503 15042019-08-30 Richard Biener <rguenther@suse.de> 1505 1506 Backport from mainline 1507 2019-06-18 Richard Biener <rguenther@suse.de> 1508 1509 PR debug/90900 1510 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL 1511 as if optimized away. 1512 1513 2019-04-29 Richard Biener <rguenther@suse.de> 1514 1515 PR tree-optimization/90278 1516 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean 1517 EH on comparison simplification. 1518 1519 2019-04-25 Richard Biener <rguenther@suse.de> 1520 1521 PR middle-end/90194 1522 * match.pd: Add pattern to simplify view-conversion of an 1523 empty constructor. 1524 15252019-08-30 Richard Biener <rguenther@suse.de> 1526 1527 Backport from mainline 1528 2019-08-12 Richard Biener <rguenther@suse.de> 1529 1530 PR lto/91375 1531 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on 1532 flag_devirtualize. 1533 1534 2019-07-31 Richard Biener <rguenther@suse.de> 1535 1536 PR tree-optimization/91293 1537 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands 1538 of reduction stmts. 1539 1540 2019-07-31 Richard Biener <rguenther@suse.de> 1541 1542 PR tree-optimization/91280 1543 * tree-ssa-structalias.c (get_constraint_for_component_ref): 1544 Decompose MEM_REF manually for offset handling. 1545 1546 2019-07-19 Richard Biener <rguenther@suse.de> 1547 1548 PR tree-optimization/91200 1549 * tree-ssa-phiopt.c (cond_store_replacement): Check we have 1550 no PHI nodes in middle-bb. 1551 1552 2019-07-15 Richard Biener <rguenther@suse.de> 1553 1554 PR middle-end/91162 1555 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI 1556 node make sure to replace all uses with something valid. 1557 1558 2019-07-11 Richard Biener <rguenther@suse.de> 1559 1560 PR middle-end/91131 1561 * gimplify.c (gimplify_compound_literal_expr): Force a temporary 1562 when the object is volatile and we have not cleared it even though 1563 there are no nonzero elements. 1564 1565 2019-07-10 Richard Biener <rguenther@suse.de> 1566 1567 PR tree-optimization/91126 1568 * tree-ssa-sccvn.c (vn_reference_lookup_3): Adjust 1569 native encoding offset for BYTES_BIG_ENDIAN. 1570 15712019-08-30 Richard Biener <rguenther@suse.de> 1572 1573 * lto-streamer.h (LTO_minor_version): Bump. 1574 1575 Backport from mainline 1576 2019-05-06 Richard Biener <rguenther@suse.de> 1577 1578 PR tree-optimization/90328 1579 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. 1580 * tree-data-ref.c (dr_may_alias_p): Check whether the clique 1581 is valid in the loop nest before using it. 1582 (initialize_data_dependence_relation): Adjust. 1583 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing 1584 loop as loop-nest to dr_may_alias_p. 1585 1586 2019-03-08 Richard Biener <rguenther@suse.de> 1587 1588 PR middle-end/89578 1589 * cfgloop.h (struct loop): Add owned_clique field. 1590 * cfgloopmanip.c (copy_loop_info): Copy it. 1591 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique 1592 cliques. 1593 * tree-inline.c (copy_loops): Remap owned_clique. 1594 * lto-streamer-in.c (input_cfg): Stream owned_clique. 1595 * lto-streamer-out.c (output_cfg): Likewise. 1596 1597 2019-02-22 Richard Biener <rguenther@suse.de> 1598 1599 PR tree-optimization/87609 1600 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. 1601 1602 2019-02-22 Richard Biener <rguenther@suse.de> 1603 1604 PR middle-end/87609 1605 * cfghooks.h (dependence_hash): New typedef. 1606 (struct copy_bb_data): New type. 1607 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. 1608 (duplicate_block): Likewise. 1609 * cfghooks.c (duplicate_block): Pass down copy_bb_data. 1610 (copy_bbs): Create and pass down copy_bb_data. 1611 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. 1612 (rtl_duplicate_bb): Likewise. 1613 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL 1614 remap dependence info. 1615 1616 2019-02-22 Richard Biener <rguenther@suse.de> 1617 1618 PR tree-optimization/87609 1619 * tree-core.h (tree_base): Document special clique values. 1620 * tree-inline.c (remap_dependence_clique): Do not use the 1621 special clique value of one. 1622 (maybe_set_dependence_info): Use clique one. 1623 (clear_dependence_clique): New callback. 1624 (compute_dependence_clique): Clear clique one from all refs 1625 before assigning it (again). 1626 16272019-08-30 Bin Cheng <bin.linux@linux.alibaba.com> 1628 1629 Backport from mainline 1630 2019-07-18 Bin Cheng <bin.linux@linux.alibaba.com> 1631 1632 PR tree-optimization/91137 1633 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. 1634 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): 1635 Init, use and fini the above new field. 1636 (determine_base_object_1): New function. 1637 (determine_base_object): Reimplement using walk_tree. 1638 16392019-08-30 Richard Biener <rguenther@suse.de> 1640 1641 Backport from mainline 1642 2019-04-09 Richard Sandiford <richard.sandiford@arm.com> 1643 1644 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always 1645 use gimple_expr_type for load and store calls. Skip over the 1646 condition argument in a conditional internal function. 1647 Protect use of TREE_INT_CST_LOW. 1648 1649 2019-04-08 Richard Biener <rguenther@suse.de> 1650 1651 PR tree-optimization/90006 1652 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle 1653 calls like lrint. 1654 1655 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com> 1656 1657 PR tree-optimization/89725 1658 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer 1659 loop's chrec as invariant symbol. 1660 * tree-chrec.h (chrec_contains_symbols): New parameter. 1661 * tree-data-ref.c (analyze_miv_subscript): Pass new argument. 1662 (build_classic_dist_vector_1, add_other_self_distances): Bypass access 1663 function of loops not in DDR's loop_nest. 1664 1665 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com> 1666 1667 PR tree-optimization/81740 1668 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): 1669 In case of outer loop vectorization, check for backward dependence 1670 at the inner loop if outer loop dependence is reversed. 1671 16722019-08-30 Richard Biener <rguenther@suse.de> 1673 1674 Backport from mainline 1675 2019-04-24 Richard Biener <rguenther@suse.de> 1676 1677 PR middle-end/90213 1678 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication 1679 by size and BITS_PER_UNIT on poly-wide-ints. 1680 1681 2019-04-11 Richard Biener <rguenther@suse.de> 1682 1683 PR tree-optimization/90020 1684 * tree-ssa-sccvn.c (vn_reference_may_trap): New function. 1685 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. 1686 * tree-ssa-pre.c (compute_avail): Use it to not put 1687 possibly trapping references after a call that might not 1688 return into EXP_GEN. 1689 * gcse.c (compute_hash_table_work): Do not elide 1690 marking a block containing a call if the call might not 1691 return. 1692 16932019-08-29 Iain Sandoe <iain@sandoe.co.uk> 1694 1695 Backport from mainline 1696 2019-07-24 Iain Sandoe <iain@sandoe.co.uk> 1697 1698 PR bootstrap/87030 1699 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749. 1700 1701 PR bootstrap/87030 1702 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here... 1703 * config/i386/darwin32-biarch.h .. to here. 1704 * config/i386/darwin64-biarch.h: Adjust comments. 1705 * config/rs6000/darwin32-biarch.h: Likewise. 1706 * config/rs6000/darwin64-biarch.h: Likewise. 1707 * config.gcc: Missed commit from r273746 1708 (*-*-darwin*): Don't include CPU t-darwin here. 1709 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce 1710 an error message if i686-darwin configuration is attempted for 1711 Darwin >= 18. 1712 1713 Backport from mainline 1714 2019-07-23 Iain Sandoe <iain@sandoe.co.uk> 1715 1716 PR bootstrap/87030 1717 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here. 1718 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce 1719 an error message if i686-darwin configuration is attempted for 1720 Darwin >= 18. 1721 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18. 1722 (powerpc-*-darwin*): Use biarch files where needed. 1723 (powerpc64-*-darwin*): Likewise. 1724 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file. 1725 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single 1726 arch case. 1727 * config/i386/darwin32-biarch.h: New. 1728 * config/i386/darwin64.h: Rename. 1729 * gcc/config/i386/darwin64-biarch.h: To this. 1730 * config/i386/t-darwin: Rename. 1731 * gcc/config/i386/t-darwin32-biarch: To this. 1732 * config/i386/t-darwin64: Rename. 1733 * gcc/config/i386/t-darwin64-biarch: To this. 1734 * config/rs6000/darwin32-biarch.h: New. 1735 * config/rs6000/darwin64.h: Rename. 1736 * config/rs6000/darwin64-biarch.h: To this. 1737 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single 1738 arch case. 1739 * config/rs6000/t-darwin8: Rename. 1740 * config/rs6000/t-darwin32-biarch: To this. 1741 * config/rs6000/t-darwin64 Rename. 1742 * config/rs6000/t-darwin64-biarch: To this. 1743 17442019-08-29 Jakub Jelinek <jakub@redhat.com> 1745 1746 Backported from mainline 1747 2019-07-30 Jakub Jelinek <jakub@redhat.com> 1748 1749 PR target/91150 1750 * config/i386/i386.c (expand_vec_perm_blend): Change mask type 1751 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast 1752 comparison to unsigned HOST_WIDE_INT before shifting it left. 1753 1754 2019-07-04 Jakub Jelinek <jakub@redhat.com> 1755 1756 PR middle-end/78884 1757 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member. 1758 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd 1759 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE. 1760 (gimplify_adjust_omp_clauses): Add safelen (1) clause if 1761 ctx->add_safelen1 is set. 1762 1763 PR rtl-optimization/90756 1764 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it 1765 for VECTOR_TYPE_P. 1766 1767 2019-06-12 Jakub Jelinek <jakub@redhat.com> 1768 1769 PR c/90760 1770 * symtab.c (symtab_node::set_section): Allow being called on aliases 1771 as long as they aren't analyzed yet. 1772 1773 2019-06-05 Jakub Jelinek <jakub@redhat.com> 1774 1775 PR debug/90733 1776 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs 1777 with VOIDmode inner operands. 1778 1779 2019-04-19 Jakub Jelinek <jakub@redhat.com> 1780 1781 PR middle-end/90139 1782 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return 1783 assign_temp instead of gen_reg_rtx. 1784 17852019-08-27 Iain Sandoe <iain@sandoe.co.uk> 1786 1787 Backport from mainline 1788 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> 1789 1790 * config/darwin.c (darwin_override_options): Make a final check on PIC 1791 options. 1792 17932019-08-27 Iain Sandoe <iain@sandoe.co.uk> 1794 1795 Backport from mainline 1796 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> 1797 * config/darwin.c (darwin_override_options): Don't jam symbol stubs 1798 on for kernel code. 1799 18002019-08-27 Iain Sandoe <iain@sandoe.co.uk> 1801 1802 Backport from mainline 1803 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> 1804 1805 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not 1806 use longcall for 64b code. 1807 18082019-08-27 Iain Sandoe <iain@sandoe.co.uk> 1809 1810 Backport from mainline 1811 2019-08-18 Iain Sandoe <iain@sandoe.co.uk> 1812 1813 * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts 1814 for cpu and machine. Factor 64/32b builtins. 1815 1816 Backport from mainline 1817 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> 1818 1819 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. 1820 18212019-08-25 Iain Sandoe <iain@sandoe.co.uk> 1822 1823 Backport from mainline 1824 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> 1825 1826 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors 1827 in computing the number of options to be moved. 1828 1829 Backport from mainline 1830 2019-06-13 Iain Sandoe <iain@sandoe.co.uk> 1831 1832 * config/darwin-driver.c (validate_macosx_version_min): New. 1833 (darwin_default_min_version): Cleanup and validate supplied version. 1834 (darwin_driver_init): Likewise and push cleaned version into opts. 1835 18362019-08-25 Uroš Bizjak <ubizjak@gmail.com> 1837 1838 PR target/91533 1839 Backport from mainline 1840 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> 1841 1842 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2. 1843 * config/i386/i386-builtin.def (__builtin_ia32_pabsb): 1844 Use CODE_FOR_ssse3_absv8qi2. 1845 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. 1846 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. 1847 18482019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com> 1849 1850 Backport from mainline 1851 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com> 1852 1853 * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI 1854 machine mode for unspec_volatile operand. 1855 18562019-08-22 Iain Sandoe <iain@sandoe.co.uk> 1857 1858 Backport from mainline 1859 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> 1860 1861 * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New. 1862 18632019-08-22 Iain Sandoe <iain@sandoe.co.uk> 1864 1865 Backport from mainline 1866 2019-05-31 Iain Sandoe <iain@sandoe.co.uk> 1867 1868 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. 1869 18702019-08-22 Iain Sandoe <iain@sandoe.co.uk> 1871 1872 Backport from mainline 1873 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> 1874 1875 * config/darwin-c.c (darwin_register_objc_includes): Do not 1876 prepend the sysroot when building gnu-runtime header search 1877 paths. 1878 18792019-08-22 Iain Sandoe <iain@sandoe.co.uk> 1880 1881 Backport from mainline 1882 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> 1883 1884 * config/darwin.c (darwin_file_end): Use switch_to_section () 1885 instead of direct output of the asm. 1886 18872019-08-20 Eric Botcazou <ebotcazou@adacore.com> 1888 1889 PR rtl-optimization/91347 1890 * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls 1891 before reload if HARD_FRAME_POINTER_IS_ARG_POINTER. 1892 18932019-08-16 Iain Sandoe <iain@sandoe.co.uk> 1894 1895 Backport from mainline 1896 2019-04-21 Iain Sandoe <iain@sandoe.co.uk> 1897 1898 * config/rs6000/rs6000.md (group_end_nop): Emit insn register 1899 names using operand format, rather than hard-wired. 1900 (speculation_barrier): Likewise. 1901 19022019-08-14 Iain Sandoe <iain@sandoe.co.uk> 1903 1904 Backport from mainline 1905 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> 1906 1907 * config/darwin.h (LINK_COMMAND_SPEC_A): Update lto options 1908 to match gcc/gcc.c. 1909 19102019-08-05 Kito Cheng <kito.cheng@sifive.com> 1911 1912 Backport from mainline 1913 2019-08-05 Kito Cheng <kito.cheng@sifive.com> 1914 1915 * config/riscv/riscv.c (riscv_promote_function_mode): New. 1916 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. 1917 19182019-08-04 Segher Boessenkool <segher@kernel.crashing.org> 1919 1920 Backport from trunk 1921 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> 1922 1923 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the 1924 correct numbers for TFHAR, TFIAR, TEXASR. 1925 19262019-07-23 Matthew Beliveau <mbelivea@redhat.com> 1927 1928 Backported from mainline 1929 2019-07-16 Jeff Law <law@redhat.com> 1930 1931 PR rtl-optimization/91173 1932 * tree-ssa-address.c (addr_for_mem_ref): If the base is an 1933 SSA_NAME with a constant value, fold its value into the offset 1934 and clear the base before calling gen_addr_rtx. 1935 * g++.dg/pr91173.C: New test. 1936 19372019-07-23 Richard Biener <rguenther@suse.de> 1938 1939 PR debug/91231 1940 * lto-streamer-in.c (input_function): Drop inline-entry markers 1941 that ended up with an unknown location block. 1942 19432019-07-22 Martin Liska <mliska@suse.cz> 1944 1945 Backport from mainline 1946 2019-07-22 Martin Liska <mliska@suse.cz> 1947 1948 PR driver/91172 1949 * opts-common.c (decode_cmdline_option): Decode 1950 argument of -Werror and check it for a wrong language. 1951 * opts-global.c (complain_wrong_lang): Remove such case. 1952 19532019-07-21 Richard Sandiford <richard.sandiford@arm.com> 1954 1955 Backport from mainline 1956 2019-07-10 Richard Sandiford <richard.sandiford@arm.com> 1957 1958 * fold-const.c (fold_relational_const): Fix folding of 1959 vector-to-scalar NE_EXPRs. 1960 (test_vector_folding): Add more tests. 1961 19622019-07-19 Jason Merrill <jason@redhat.com> 1963 1964 PR c++/82081 - tail call optimization breaks noexcept 1965 * tree-tailcall.c (find_tail_calls): Don't turn a call from a 1966 nothrow function to a might-throw function into a tail call. 1967 19682019-07-16 Wilco Dijkstra <wdijkstr@arm.com> 1969 1970 Backport from mainline 1971 PR target/89222 1972 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem 1973 to decide when to split off a non-zero offset from a symbol. 1974 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets 1975 in function symbols. 1976 19772019-07-16 Wilco Dijkstra <wdijkstr@arm.com> 1978 1979 Backport from mainline 1980 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com> 1981 PR target/89190 1982 * config/arm/arm.c (ldm_stm_operation_p) Set 1983 addr_reg_in_reglist correctly for first register. 1984 (load_multiple_sequence): Remove dead base check. 1985 (gen_ldm_seq): Correctly set write_back for Thumb-1. 1986 19872019-07-15 Andreas Krebbel <krebbel@linux.ibm.com> 1988 1989 Backport from mainline 1990 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com> 1991 1992 * config/s390/vector.md: Fix shift count operand printing. 1993 19942019-07-15 Wilco Dijkstra <wdijkstr@arm.com> 1995 1996 Backport from mainline 1997 2019-01-23 Bin Cheng <bin.cheng@arm.com> 1998 Steve Ellcey <sellcey@marvell.com> 1999 2000 PR target/85711 2001 * recog.c (address_operand): Return false on wrong mode for address. 2002 (constrain_operands): Check for mode with 'p' constraint. 2003 20042019-07-12 Eric Botcazou <ebotcazou@adacore.com> 2005 2006 PR rtl-optimization/91136 2007 * df-core.c (ACCESSING REFS): Fix typos in comment. 2008 * resource.c (mark_target_live_reg): Add artificial defs that occur at 2009 the beginning of the block to the initial set of live registers. 2010 20112019-07-04 Martin Liska <mliska@suse.cz> 2012 2013 Backport from mainline 2014 2019-07-03 Martin Liska <mliska@suse.cz> 2015 2016 PR middle-end/90899 2017 * multiple_target.c (create_dispatcher_calls): Add to comdat 2018 group only if set for ifunc. 2019 20202019-06-28 Jeff Law <law@redhat.com> 2021 2022 Backport from mainline 2023 2019-06-21 Jeff Law <law@redhat.com> 2024 2025 PR tree-optimization/90949 2026 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. 2027 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. 2028 20292019-06-26 Martin Jambor <mjambor@suse.cz> 2030 2031 Backport from mainline 2032 2019-06-25 Martin Jambor <mjambor@suse.cz> 2033 2034 PR ipa/90939 2035 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. 2036 20372019-06-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2038 2039 Backport from mainline 2040 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2041 2042 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for 2043 alternative Solaris 11.4 format. 2044 * configure: Regenerate. 2045 20462019-06-16 Jeff Law <law@redhat.com> 2047 2048 Backport from mainline 2049 2019-06-16 Prachi Godbole <prachi.godbole@imgtec.com> 2050 Robert Suchanek <robert.suchanek@mips.com> 2051 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st 2052 and 3rd operands of the fmadd/fmsub/maddv builtin. 2053 20542019-06-16 John David Anglin <danglin@gcc.gnu.org> 2055 2056 PR middle-end/64242 2057 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add 2058 frame clobbers and schedule block. 2059 (builtin_longjmp): Likewise. 2060 20612019-06-11 Jakub Jelinek <jakub@redhat.com> 2062 2063 PR target/90811 2064 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d 2065 instead of and.u%d. 2066 20672019-06-07 John David Anglin <danglin@gcc.gnu.orig> 2068 2069 PR target/90751 2070 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment. 2071 Call pa_output_function_label. 2072 (TARGET_ASM_FUNCTION_PROLOGUE): define. 2073 * config/pa/pa-protos.h (pa_output_function_label): Declare. 2074 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED 2075 to declaration. 2076 (pa_linux_output_function_prologue): Declare. 2077 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define. 2078 (pa_output_function_label): New. 2079 (pa_output_function_prologue): Revise to use pa_output_function_label. 2080 (pa_linux_output_function_prologue): New. 2081 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define. 2082 20832019-06-07 Iain Sandoe <iain@sandoe.co.uk> 2084 2085 Backport from mainline. 2086 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> 2087 2088 PR target/82920 2089 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for 2090 Darwin. 2091 20922019-06-07 Iain Sandoe <iain@sandoe.co.uk> 2093 2094 Backport from mainline. 2095 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> 2096 2097 PR target/82920 2098 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. 2099 (ix86_output_indirect_branch_via_reg): Use output mechanism 2100 accounting for __USER_LABEL_PREFIX__. 2101 (ix86_output_indirect_branch_via_push): Likewise. 2102 (ix86_output_function_return): Likewise. 2103 (ix86_output_indirect_function_return): Likewise. 2104 21052019-05-30 Jakub Jelinek <jakub@redhat.com> 2106 2107 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght 2108 to length. 2109 21102019-05-29 Jakub Jelinek <jakub@redhat.com> 2111 2112 PR fortran/90329 2113 * lto-streamer.h (LTO_minor_version): Bump to 2. 2114 2115 Backported from mainline 2116 2019-05-16 Jakub Jelinek <jakub@redhat.com> 2117 2118 PR fortran/90329 2119 * tree-core.h (struct tree_decl_common): Document 2120 decl_nonshareable_flag for PARM_DECLs. 2121 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. 2122 * calls.c (expand_call): Don't try tail call if caller 2123 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be 2124 passed on the stack and callee needs to pass any arguments on the 2125 stack. 2126 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use 2127 else if instead of series of mutually exclusive ifs. Handle 2128 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. 2129 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. 2130 21312019-05-28 John David Anglin <danglin@gcc.gnu.org> 2132 2133 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. 2134 21352019-05-27 Eric Botcazou <ebotcazou@adacore.com> 2136 2137 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index 2138 and DW_OP_GNU_const_index opcodes. 2139 21402019-05-24 John David Anglin <danglin@gcc.gnu.org> 2141 2142 PR target/90530 2143 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from 2144 DImode to SImode in floating-point registers on 64-bit target. 2145 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to 2146 register_operand in xmpyu patterns. 2147 21482019-05-24 Martin Liska <mliska@suse.cz> 2149 2150 Backport from mainline 2151 2019-05-23 Martin Liska <mliska@suse.cz> 2152 2153 PR sanitizer/90570 2154 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target 2155 expression similarly to gimplify_decl_expr. 2156 21572019-05-23 Uroš Bizjak <ubizjak@gmail.com> 2158 2159 Backport from mainline 2160 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> 2161 2162 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero 2163 %ebx and %ecx bafore calling cpuid with leaf 1 or 2164 non-constant leaf argument. 2165 2166 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> 2167 2168 PR target/90547 2169 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): 2170 Avoid calling gen_lowpart with CONST operand. 2171 21722019-05-21 Sebastian Huber <sebastian.huber@embedded-brains.de> 2173 2174 Backported from mainline 2175 2019-05-16 Sebastian Huber <sebastian.huber@embedded-brains.de> 2176 2177 * config/arm/t-rtems: Replace ARMv7-M multilibs with Cortex-M 2178 multilibs. 2179 21802019-05-20 Jeff Law <law@redhat.com> 2181 2182 Backport from mainline 2183 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com> 2184 2185 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace 2186 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 2187 and fpxx modes. 2188 21892019-05-16 Kelvin Nilsen <kelvin@gcc.gnu.org> 2190 2191 Backport from mainline. 2192 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> 2193 2194 PR target/89765 2195 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 2196 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic 2197 to compute vector element selector for both constant and variable 2198 operands. 2199 22002019-05-15 David Edelsohn <dje.gcc@gmail.com> 2201 2202 Backport from mainline 2203 2019-04-11 David Edelsohn <dje.gcc@gmail.com> 2204 * xcoffout.h (xcoff_private_rodata_section_name): Declare. 2205 * xcoffout.c (xcoff_private_rodata_section_name): Define. 2206 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create 2207 read_only_private_data_section using coff_private_rodata_section_name. 2208 (rs6000_xcoff_file_start): Generate coff_private_rodata_section_name. 2209 2210 2018-12-04 David Edelsohn <dje.gcc@gmail.com> 2211 2018-12-13 David Edelsohn <dje.gcc@gmail.com> 2212 PR target/61976 2213 * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates 2214 in FPRs on AIX. Ensure type is non-NULL. 2215 (rs6000_arg_partial_bytes): Same. 2216 22172019-05-14 Martin Liska <mliska@suse.cz> 2218 2219 Backport from mainline 2220 2019-05-13 Martin Liska <mliska@suse.cz> 2221 2222 PR gcov-profile/90380 2223 * gcov.c (handle_cycle): Do not support zero cycle count, 2224 it should not be possible. 2225 (path_contains_zero_cycle_arc): New function. 2226 (circuit): Ignore zero cycle arc counts. 2227 22282019-05-14 Martin Liska <mliska@suse.cz> 2229 2230 Backport from mainline 2231 2019-05-13 Martin Liska <mliska@suse.cz> 2232 2233 PR gcov-profile/90380 2234 * gcov.c (enum loop_type): Remove the enum and 2235 the operator. 2236 (handle_cycle): Assert that we should not reach 2237 a negative count. 2238 (circuit): Use loop_found instead of a tri-state loop_type. 2239 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't 2240 happen. 2241 22422019-05-11 Andreas Tobler <andreast@gcc.gnu.org> 2243 2244 Backport from mainline. 2245 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org> 2246 2247 * config/i386/freebsd64.h: Add bits for 32-bit multilib support. 2248 * config/i386/t-freebsd64: New file. 2249 * config.gcc: Add the t-freebsd64 for multilib support. 2250 22512019-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> 2252 2253 Backport from mainline. 2254 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> 2255 2256 PR target/89424 2257 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add 2258 handling of V1TImode. 2259 22602019-05-06 Richard Biener <rguenther@suse.de> 2261 2262 PR bootstrap/90359 2263 Backport from mainline 2264 2019-03-11 Jakub Jelinek <jakub@redhat.com> 2265 2266 PR middle-end/89655 2267 PR bootstrap/89656 2268 * vr-values.c (vr_values::update_value_range): If 2269 old_vr->varying_p (), don't update it, make new_vr also VARYING 2270 and return false. 2271 22722019-05-03 Richard Biener <rguenther@suse.de> 2273 2274 Backport from mainline 2275 2019-03-14 Richard Biener <rguenther@suse.de> 2276 2277 PR middle-end/89698 2278 * fold-const.c (operand_equal_p): For INDIRECT_REF check 2279 that the access types are similar. 2280 2281 2019-03-07 Richard Biener <rguenther@suse.de> 2282 2283 PR tree-optimization/89595 2284 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take 2285 stmt iterator as reference, take boolean output parameter to 2286 indicate whether the stmt was removed and thus the iterator 2287 already advanced. 2288 (dom_opt_dom_walker::before_dom_children): Re-iterate over 2289 stmts created by folding. 2290 2291 2019-03-14 Richard Biener <rguenther@suse.de> 2292 2293 PR tree-optimization/89710 2294 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use 2295 safe_dyn_cast. 2296 2297 2019-04-15 Richard Biener <rguenther@suse.de> 2298 2299 PR tree-optimization/90071 2300 * tree-ssa-reassoc.c (init_range_entry): Do not pick up 2301 abnormal operands from def stmts. 2302 2303 2018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 2304 2305 PR target/86984 2306 * expr.c (expand_assignment): Assert that bitpos is positive. 2307 (store_field): Likewise 2308 (expand_expr_real_1): Make sure that bitpos is positive. 2309 * config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed 2310 integer overflow. 2311 2312 2019-03-14 Richard Biener <rguenther@suse.de> 2313 2314 PR target/89711 2315 * config/i386/i386.c (make_resolver_func): Properly set 2316 DECL_CONTEXT on the RESULT_DECL. 2317 * config/rs6000/rs6000.c (make_resolver_func): Likewise. 2318 23192019-04-30 Jakub Jelinek <jakub@redhat.com> 2320 2321 Backported from mainline 2322 2019-04-24 Jakub Jelinek <jakub@redhat.com> 2323 2324 PR target/90193 2325 * rtl.c (classify_insn): Return JUMP_INSN for asm goto. 2326 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. 2327 2328 PR target/90187 2329 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into 2330 a register if both if_true and if_false are MEMs. 2331 2332 PR tree-optimization/90208 2333 * tree-cfg.c (remove_bb): Move forced labels from removed bbs 2334 after labels of new_bb, not before them. 2335 2336 2019-04-16 Jakub Jelinek <jakub@redhat.com> 2337 2338 PR rtl-optimization/90082 2339 * dce.c (can_delete_call): New function. 2340 (deletable_insn_p, mark_insn): Use it. 2341 2342 PR tree-optimization/90090 2343 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can 2344 throw internally. 2345 (is_division_by_square): Likewise. Formatting fix. 2346 2347 2019-04-12 Jakub Jelinek <jakub@redhat.com> 2348 2349 PR rtl-optimization/89965 2350 * dce.c: Include rtl-iter.h. 2351 (struct check_argument_load_data): New type. 2352 (check_argument_load): New function. 2353 (find_call_stack_args): Check for loads from stack slots still tracked 2354 in sp_bytes and punt if any is found. 2355 2356 PR c/89946 2357 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p 2358 and gcc_unreachable if it fails, just call tree_to_uhwi which 2359 verifies that too. Test TREE_CHAIN instead of list_length > 1. 2360 Start warning message with a lower-case letter. Formatting fixes. 2361 2362 PR rtl-optimization/90026 2363 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no 2364 successors, look for BARRIERs inside of the whole BB_FOOTER chain 2365 rather than just at the start of it. If e->src BB_FOOTER is not NULL 2366 in cfglayout mode, use emit_barrier_after_bb. 2367 2368 2019-04-11 Jakub Jelinek <jakub@redhat.com> 2369 2370 PR rtl-optimization/89965 2371 * dce.c (sp_based_mem_offset): New function. 2372 (find_call_stack_args): Use sp_based_mem_offset. 2373 2374 2019-04-10 Jakub Jelinek <jakub@redhat.com> 2375 2376 PR c++/90010 2377 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr 2378 with strlen in between hostsz-3 and hostsz-1 inclusive when no 2379 translation is needed, and when translation is needed, only append 2380 ... if the string length is hostsz or more bytes long. Avoid using 2381 strncpy or strcat. 2382 2383 2019-04-09 Jakub Jelinek <jakub@redhat.com> 2384 2385 PR tree-optimization/89998 2386 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type 2387 instead of integer_type_node if possible, don't add ranges if return 2388 type is not compatible with int. 2389 * gimple-fold.c (gimple_fold_builtin_sprintf, 2390 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded 2391 integer_type_node. 2392 2393 2019-03-29 Jakub Jelinek <jakub@redhat.com> 2394 2395 PR c/89872 2396 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a 2397 non-addressable complit into its initializer if it is volatile. 2398 2399 2019-03-28 Jakub Jelinek <jakub@redhat.com> 2400 2401 PR middle-end/89621 2402 * tree-inline.h (struct copy_body_data): Add 2403 dont_remap_vla_if_no_change flag. 2404 * tree-inline.c (remap_type_3, remap_type_2): New functions. 2405 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change 2406 and remap_type_2 returns false. 2407 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. 2408 2409 2019-03-20 Jakub Jelinek <jakub@redhat.com> 2410 2411 PR target/89752 2412 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't 2413 update this_alternative nor this_alternative_set. 2414 2415 2019-03-19 Jakub Jelinek <jakub@redhat.com> 2416 2417 PR rtl-optimization/89768 2418 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode 2419 instead of GEN_INT. 2420 (unroll_loop_runtime_iterations): Likewise. 2421 2422 PR target/89752 2423 * gimplify.c (gimplify_asm_expr): For output argument with 2424 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise 2425 diagnose error. 2426 2427 PR target/89726 2428 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil 2429 compensation use x2 += 1 instead of x2 -= -1 and when honoring 2430 signed zeros, do another copysign after the compensation. 2431 2432 2019-03-15 Jakub Jelinek <jakub@redhat.com> 2433 2434 PR debug/89704 2435 * dwarf2out.c (add_const_value_attribute): Return false for MINUS, 2436 SIGN_EXTEND and ZERO_EXTEND. 2437 2438 2019-03-14 Jakub Jelinek <jakub@redhat.com> 2439 2440 PR ipa/89684 2441 * multiple_target.c (create_dispatcher_calls): Change 2442 references_to_redirect from vector of ipa_ref * to vector of ipa_ref. 2443 In the node->iterate_referring loop, push *ref rather than ref, call 2444 ref->remove_reference () and always pass 0 to iterate_referring. 2445 2446 PR rtl-optimization/89679 2447 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it 2448 would contain a paradoxical SUBREG. 2449 2450 PR tree-optimization/89703 2451 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types 2452 aren't compatible also with builtin_decl_explicit. Check pure 2453 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} 2454 and BUILT_IN_STPNCPY{,_CHK}. 2455 2456 2019-03-13 Jakub Jelinek <jakub@redhat.com> 2457 2458 PR debug/89498 2459 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use 2460 DWARF_OFFSET_SIZE. 2461 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. 2462 2463 PR middle-end/88588 2464 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. 2465 (ipa_simd_modify_function_body): Handle PHIs. 2466 2467 2019-03-12 Jakub Jelinek <jakub@redhat.com> 2468 2469 PR middle-end/89663 2470 * builtins.c (expand_builtin_int_roundingfn, 2471 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of 2472 gcc_unreachable if validate_arglist fails. 2473 2474 2019-03-09 Jakub Jelinek <jakub@redhat.com> 2475 2476 PR c/88568 2477 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for 2478 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. 2479 2480 2019-03-05 Jakub Jelinek <jakub@redhat.com> 2481 2482 PR target/89587 2483 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only 2484 if_multiarch. 2485 2486 PR middle-end/89590 2487 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have 2488 exactly one argument. 2489 2490 2019-02-28 Jakub Jelinek <jakub@redhat.com> 2491 2492 PR c/89520 2493 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for 2494 builtins if they don't have a single scalar floating point argument. 2495 Formatting fixes. 2496 2497 2019-02-20 Jakub Jelinek <jakub@redhat.com> 2498 2499 PR middle-end/89412 2500 * expr.c (expand_assignment): If result is a MEM, use change_address 2501 instead of simplify_gen_subreg. 2502 2503 2019-02-20 Jakub Jelinek <jakub@redhat.com> 2504 David Malcolm <dmalcolm@redhat.com> 2505 2506 PR middle-end/89091 2507 * fold-const.c (decode_field_reference): Return NULL_TREE if 2508 lang_hooks.types.type_for_size returns NULL. Check it before 2509 overwriting *exp_. Use return NULL_TREE instead of return 0. 2510 2511 2019-02-20 Jakub Jelinek <jakub@redhat.com> 2512 2513 PR middle-end/88074 2514 PR middle-end/89415 2515 * toplev.c (do_compile): Double the emin/emax exponents to workaround 2516 buggy mpc_norm. 2517 2518 2019-02-19 Richard Biener <rguenther@suse.de> 2519 2520 PR middle-end/88074 2521 * toplev.c (do_compile): Initialize mpfr's exponent range 2522 based on available float modes. 2523 25242019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 2525 2526 Backport from mainline. 2527 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 2528 PR target/86538 2529 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 2530 Define __ARM_FEATURE_ATOMICS. 2531 25322019-04-30 Srinath Parvathaneni <srinath.parvathaneni@arm.com> 2533 2534 Backport from mainline 2535 2018-12-11 Richard Earnshaw <Richard.Earnshaw@arm.com> 2536 2537 PR target/37369 2538 * config/aarch64/iterators.md (sizem1): Add sizes for 2539 SFmode and DFmode. 2540 (Vbtype): Add SFmode mapping. 2541 * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. 2542 (copysign<GPF:mode>3): New expand pattern. 2543 (copysign<GPF:mode>3_insn): New insn pattern. 2544 25452019-04-29 Richard Sandiford <richard.sandiford@arm.com> 2546 2547 Backport from mainline: 2548 2019-01-25 Richard Sandiford <richard.sandiford@arm.com> 2549 2550 PR middle-end/89037 2551 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi 2552 instead of accessing TREE_INT_CST_ELT directly. 2553 25542019-04-29 Richard Sandiford <richard.sandiford@arm.com> 2555 2556 Backport from mainline: 2557 2018-08-23 Richard Sandiford <richard.sandiford@arm.com> 2558 2559 PR target/85910 2560 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix 2561 aarch64_evpc_tbl guard. 2562 25632019-04-29 Richard Sandiford <richard.sandiford@arm.com> 2564 2565 Backport from mainline: 2566 2019-03-08 Richard Sandiford <richard.sandiford@arm.com> 2567 2568 PR debug/89631 2569 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT 2570 instead of POLY_INT_CST. 2571 25722019-04-26 Roman Zhuykov <zhroma@ispras.ru> 2573 2574 Backport from mainline 2575 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> 2576 2577 PR rtl-optimization/87979 2578 * modulo-sched.c (sms_schedule): Start ii value "mii" should 2579 not equal zero. 2580 2581 PR rtl-optimization/84032 2582 * modulo-sched.c (ps_insn_find_column): Change condition so that 2583 branch will always be the last insn in a row inside partial 2584 schedule. 2585 25862019-04-19 Pat Haugen <pthaugen@us.ibm.com> 2587 2588 Backport from mainline: 2589 2019-04-16 Pat Haugen <pthaugen@us.ibm.com> 2590 2591 PR target/84369 2592 * config/rs6000/power9.md: Add store forwarding bypass. 2593 25942019-04-17 Martin Jambor <mjambor@suse.cz> 2595 2596 Backport from mainline 2597 2019-03-10 Martin Jambor <mjambor@suse.cz> 2598 2599 PR tree-optimization/85762 2600 PR tree-optimization/87008 2601 PR tree-optimization/85459 2602 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool 2603 it points to if there is a type changing MEM_REF. Adjust all callers. 2604 (build_accesses_from_assign): Disable total scalarization if 2605 contains_vce_or_bfcref_p returns true through the new parameter, for 2606 both rhs and lhs. 2607 26082019-04-17 Kelvin Nilsen <kelvin@gcc.gnu.org> 2609 2610 Backport from mainline 2611 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org> 2612 2613 PR target/87532 2614 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 2615 When handling vec_extract, use modular arithmetic to allow 2616 constant selectors greater than vector length. 2617 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow 2618 V1TImode vectors to have constant selector values greater than 0. 2619 Use modular arithmetic to compute vector index. 2620 (rs6000_split_vec_extract_var): Use modular arithmetic to compute 2621 index for in-memory vectors. Correct code generation for 2622 in-register vectors. Use inner mode of vector rather than mode of 2623 destination for move instruction. 2624 (altivec_expand_vec_ext_builtin): Use modular arithmetic to 2625 compute index. 2626 2627 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org> 2628 2629 PR target/87532 2630 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var): 2631 Use QI inner mode with V16QI vector mode. 2632 26332019-04-15 Martin Jambor <mjambor@suse.cz> 2634 2635 Backport from mainline 2636 2019-04-15 Martin Jambor <mjambor@suse.cz> 2637 2638 PR ipa/89693 2639 * cgraph.c (clone_of_p): Loop over clone chain for each step in 2640 the thunk chain. 2641 26422019-04-15 Martin Liska <mliska@suse.cz> 2643 2644 Backport from mainline 2645 2019-01-18 Martin Liska <mliska@suse.cz> 2646 Richard Biener <rguenther@suse.de> 2647 2648 PR middle-end/88587 2649 * cgraph.h (create_version_clone_with_body): Add new argument 2650 with attributes. 2651 * cgraphclones.c (cgraph_node::create_version_clone): Add 2652 DECL_ATTRIBUTES to a newly created decl. And call 2653 valid_attribute_p so that proper cl_target_optimization_node 2654 is set for the newly created declaration. 2655 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES 2656 for declaration. 2657 (expand_target_clones): Do not call valid_attribute_p, it must 2658 be already done. 2659 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for 2660 vector types. 2661 26622019-04-11 Richard Biener <rguenther@suse.de> 2663 2664 PR tree-optimization/90018 2665 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): 2666 Test both SLP and interleaving variants. 2667 26682019-04-10 Matthew Malcomson <matthew.malcomson@arm.com> 2669 2670 PR target/90024 2671 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. 2672 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint 2673 into three. 2674 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode 2675 differences directly. 2676 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint. 2677 26782019-04-07 Uroš Bizjak <ubizjak@gmail.com> 2679 2680 PR target/89945 2681 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): 2682 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. 2683 26842019-04-04 Martin Sebor <msebor@redhat.com> 2685 2686 PR middle-end/89934 2687 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail 2688 out if the number of arguments is less than expected. 2689 26902019-04-03 Richard Biener <rguenther@suse.de> 2691 2692 PR lto/89896 2693 * lto-wrapper.c (run_gcc): Avoid implicit rules making 2694 the all target phony. 2695 26962019-04-02 Uroš Bizjak <ubizjak@gmail.com> 2697 2698 PR target/89902 2699 PR target/89903 2700 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): 2701 Return false for variable DImode shifts. 2702 (dimode_scalar_chain::compute_convert_gain): Do not handle 2703 register count operand in variable DImode shifts. 2704 (dimode_scalar_chain::make_vector_copies): Remove support to copy 2705 count argument of a variable shift instruction to a vector register. 2706 (dimode_scalar_chain::convert_reg): Remove support to convert 2707 count argument of a variable shift instruction. 2708 27092019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> 2710 2711 Backport from mainline 2712 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> 2713 Eric Botcazou <ebotcazou@adacore.com> 2714 2715 PR rtl-optimization/89862 2716 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations 2717 that operates on the full registers for WORD_REGISTER_OPERATIONS 2718 architectures. 2719 27202019-03-28 Uroš Bizjak <ubizjak@gmail.com> 2721 2722 PR target/89848 2723 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): 2724 Also process XEXP (src, 0) of a shift insn. 2725 27262019-03-28 Martin Liska <mliska@suse.cz> 2727 2728 Backport from mainline 2729 2018-11-05 Martin Liska <mliska@suse.cz> 2730 2731 PR web/87829 2732 * doc/invoke.texi: Remove options that are 2733 not disabled with -Os. 2734 27352019-03-26 Uroš Bizjak <ubizjak@gmail.com> 2736 2737 PR target/89827 2738 * config/i386/i386.c (dimode_scalar_chain::convert_reg): 2739 Also process XEXP (src, 0) of a shift insn. 2740 27412019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> 2742 2743 Backport from mainline 2744 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com> 2745 2746 PR target/89775 2747 * config/s390/s390.c (global_not_special_regno_p): Move to make it 2748 available to ... 2749 (s390_optimize_register_info): Use global_not_special_regno_p to 2750 check for global regs. 2751 27522019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> 2753 2754 Backport from mainline 2755 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> 2756 2757 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. 2758 27592019-03-21 Bill Schmidt <wschmidt@linux.ibm.com> 2760 2761 Backport from mainline 2762 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com> 2763 2764 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild 2765 ud- and du-chains between phases. 2766 27672019-03-19 Richard Biener <rguenther@suse.de> 2768 2769 PR debug/88389 2770 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. 2771 27722019-03-19 Eric Botcazou <ebotcazou@adacore.com> 2773 2774 PR rtl-optimization/89753 2775 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for 2776 explicit unrolling factor even more robust. 2777 27782019-03-18 Martin Sebor <msebor@redhat.com> 2779 2780 PR middle-end/88273 2781 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): 2782 Handle anti-ranges the same as no range at all. 2783 27842019-03-18 Martin Jambor <mjambor@suse.cz> 2785 2786 Backport from mainline 2787 2019-03-18 Martin Jambor <mjambor@suse.cz> 2788 2789 PR tree-optimization/89546 2790 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if 2791 any propagation to its children took place. 2792 27932019-03-17 H.J. Lu <hongjiu.lu@intel.com> 2794 2795 Backport from mainline 2796 2019-03-14 H.J. Lu <hongjiu.lu@intel.com> 2797 2798 PR target/89523 2799 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add 2800 addr32 prefix to VSIB address for X32. 2801 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend 2802 "%M2" to opcode. 2803 (*avx512pf_gatherpf<mode>df_mask): Likewise. 2804 (*avx512pf_scatterpf<mode>sf_mask): Likewise. 2805 (*avx512pf_scatterpf<mode>df_mask): Likewise. 2806 (*avx2_gathersi<mode>): Prepend "%M3" to opcode. 2807 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode. 2808 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode. 2809 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode. 2810 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode. 2811 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.` 2812 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode. 2813 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode. 2814 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode. 2815 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode. 2816 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode. 2817 (*avx512f_scatterdi<mode>): Likewise. 2818 28192019-03-15 Richard Biener <rguenther@suse.de> 2820 2821 Backport from mainline 2822 2018-11-30 Jakub Jelinek <jakub@redhat.com> 2823 2824 PR testsuite/85368 2825 * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. 2826 * tree-ssa-ifcombine.c (ifcombine_ifandif): If 2827 --param logical-op-non-short-circuit is present, override 2828 LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. 2829 * fold-const.c (fold_range_test, fold_truth_andor): Likewise. 2830 28312019-03-15 Martin Liska <mliska@suse.cz> 2832 2833 PR other/89712 2834 * doc/invoke.texi: Remove -fdump-class-hierarchy option. 2835 28362019-03-14 Martin Jambor <mjambor@suse.cz> 2837 2838 Backport from mainline 2839 2019-03-07 Martin Jambor <mjambor@suse.cz> 2840 2841 PR lto/87525 2842 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit 2843 for extern inline functions. 2844 28452019-03-14 Richard Biener <rguenther@suse.de> 2846 2847 PR middle-end/89572 2848 * tree-scalar-evolution.c (get_loop_exit_condition): Use 2849 safe_dyn_cast. 2850 * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): 2851 Use gimple_location_safe. 2852 28532019-03-13 Vladimir Makarov <vmakarov@redhat.com> 2854 2855 PR target/85860 2856 * lra-constraints.c (inherit_in_ebb): Update 2857 potential_reload_hard_regs along with live_hard_regs. 2858 28592019-03-14 Richard Biener <rguenther@suse.de> 2860 2861 Backport from mainline 2862 2019-03-13 Richard Biener <rguenther@suse.de> 2863 2864 PR middle-end/89677 2865 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not 2866 throw FP expressions at tree-affine. 2867 2868 2019-03-01 Richard Biener <rguenther@suse.de> 2869 2870 PR middle-end/89497 2871 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags 2872 argument, defaulted to zero. 2873 * passes.c (execute_function_todo): Pass down SSA update flags 2874 to cleanup_tree_cfg. 2875 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. 2876 (cleanup_tree_cfg_1): After cleanup_control_flow_pre update SSA 2877 form if requested. 2878 (cleanup_tree_cfg_noloop): Pass down SSA update flags. 2879 (cleanup_tree_cfg): Get and pass down SSA update flags. 2880 2881 2019-02-18 Richard Biener <rguenther@suse.de> 2882 2883 PR tree-optimization/89296 2884 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting 2885 of no-warning flag to cases that might emit the bogus warning. 2886 28872019-03-13 Andreas Krebbel <krebbel@linux.ibm.com> 2888 2889 Backport from mainline 2890 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com> 2891 2892 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not 2893 only on the else branch. 2894 28952019-03-13 Andreas Krebbel <krebbel@linux.ibm.com> 2896 2897 Backport from mainline 2898 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com> 2899 2900 * config/s390/s390-builtin-types.def: Add new types. 2901 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2) 2902 (s390_vec_xlw4): Make the memory operand into a const pointer. 2903 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision 2904 float. 2905 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate 2906 a new vector type with the alignment of the scalar memory operand. 2907 29082019-03-12 Richard Biener <rguenther@suse.de> 2909 2910 PR tree-optimization/89664 2911 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly 2912 free the occurance tree after the early out. 2913 29142019-03-12 Andre Vieira <andre.simoesdiasvieira@arm.com> 2915 2916 Backport from mainline 2917 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> 2918 2919 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE 2920 requirement. 2921 29222019-03-11 Eric Botcazou <ebotcazou@adacore.com> 2923 2924 PR rtl-optimization/89588 2925 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for 2926 explicit unrolling factor more robust. 2927 29282019-03-11 Martin Liska <mliska@suse.cz> 2929 2930 Backport from mainline 2931 2019-03-08 Martin Liska <mliska@suse.cz> 2932 2933 PR target/86952 2934 * config/i386/i386.c (ix86_option_override_internal): Disable 2935 jump tables when retpolines are used. 2936 29372019-03-11 Martin Liska <mliska@suse.cz> 2938 2939 Backport from mainline 2940 2019-02-11 David Malcolm <dmalcolm@redhat.com> 2941 2942 PR lto/88147 2943 * input.c (selftest::test_line_offset_overflow): New selftest. 2944 (selftest::input_c_tests): Call it. 2945 29462019-03-08 Martin Jambor <mjambor@suse.cz> 2947 2948 Backport from mainline 2949 2019-03-07 Martin Jambor <mjambor@suse.cz> 2950 2951 PR ipa/88235 2952 * cgraph.h (cgraph_node): New inline method former_thunk_p. 2953 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. 2954 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they 2955 have multiple callees. At the end check if declarations match as 2956 opposed to cgraph_nodes. 2957 29582019-03-06 Tamar Christina <tamar.christina@arm.com> 2959 2960 Backport from trunk. 2961 2019-02-25 Tamar Christina <tamar.christina@arm.com> 2962 2963 PR target/88530 2964 * common/config/aarch64/aarch64-common.c 2965 (struct aarch64_option_extension): Add is_synthetic. 2966 (all_extensions): Use it. 2967 (TARGET_OPTION_INIT_STRUCT): Define hook. 2968 (struct gcc_targetm_common): Moved to end. 2969 (all_extensions_by_on): New. 2970 (opt_ext_cmp, typedef opt_ext): New. 2971 (aarch64_option_init_struct): New. 2972 (aarch64_contains_opt): New. 2973 (aarch64_get_extension_string_for_isa_flags): Output smallest set. 2974 * config/aarch64/aarch64-option-extensions.def 2975 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. 2976 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, 2977 sm4, fp16fml, sve): 2978 Set is_synthetic to false. 2979 (crypto): Set is_synthetic to true. 2980 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add 2981 SYNTHETIC. 2982 29832019-03-06 Tamar Christina <tamar.christina@arm.com> 2984 2985 Backport from trunk. 2986 2019-02-28 Tamar Christina <tamar.christina@arm.com> 2987 2988 PR target/88530 2989 * config/aarch64/aarch64-option-extensions.def: Document it. 2990 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature 2991 if empty hwcaps. 2992 29932019-03-06 Xiong Hu Luo <luoxhu@linux.ibm.com> 2994 2995 Backport of r268834 from mainline to gcc-8-branch. 2996 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> 2997 2998 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be, 2999 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines. 3000 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator. 3001 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns. 3002 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1. 3003 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE): 3004 New BU_CRYPTO_2. 3005 * config/rs6000/rs6000.c (builtin_function_type) 3006 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE, 3007 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE, 3008 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options. 3009 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, 3010 vec_ncipher_be, vec_ncipherlast_be): New builtin functions. 3011 30122019-03-05 Richard Biener <rguenther@suse.de> 3013 3014 Backport from mainline 3015 2019-02-26 Richard Biener <rguenther@suse.de> 3016 3017 PR tree-optimization/89505 3018 * tree-ssa-structalias.c (compute_dependence_clique): Make sure 3019 to handle restrict pointed-to vars with multiple subvars 3020 correctly. 3021 30222019-03-01 Tamar Christina <tamar.christina@arm.com> 3023 3024 PR target/89517 3025 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, 3026 fp16): Collapse line. 3027 30282019-03-01 Richard Biener <rguenther@suse.de> 3029 3030 Backport from mainline 3031 2019-03-01 Jakub Jelinek <jakub@redhat.com> 3032 3033 PR bootstrap/89539 3034 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to 3035 early_lto_debug argument. 3036 3037 2019-02-27 Richard Biener <rguenther@suse.de> 3038 3039 PR debug/88878 3040 * dwarf2out.c (use_debug_types): Disable when in_lto_p. 3041 3042 2019-02-27 Richard Biener <rguenther@suse.de> 3043 3044 PR debug/88878 3045 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug 3046 parameter, prefix section name with .gnu.debuglto_ if true. 3047 (dwarf2out_finish): Pass false to output_comdat_type_unit. 3048 (dwarf2out_early_finish): Pass true to output_comdat_type_unit. 3049 3050 2019-02-27 Richard Biener <rguenther@suse.de> 3051 3052 PR debug/89514 3053 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p 3054 rather than on use_debug_types, doing what output_die does. 3055 (value_format): Likewise. 3056 30572019-02-28 Eric Botcazou <ebotcazou@adacore.com> 3058 3059 PR tree-optimization/89536 3060 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test 3061 only whether bit #0 of the value is 0 instead of the entire value. 3062 30632019-02-28 Li Jia He <helijia@linux.ibm.com> 3064 3065 Backport from trunk 3066 2019-02-20 Li Jia He <helijia@linux.ibm.com> 3067 3068 PR target/88100 3069 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) 3070 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH, 3071 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before 3072 range checking it. 3073 30742019-02-27 Uroš Bizjak <ubizjak@gmail.com> 3075 3076 PR target/89397 3077 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check 3078 TARGET_SSE in addition to TARGET_SSE_MATH. 3079 3080 (ix86_excess_precision): Ditto. 3081 (ix86_float_exceptions_rounding_supported_p): Ditto. 3082 (use_rsqrt_p): Ditto. 3083 * config/i386/sse.md (rsqrt<mode>2): Ditto. 3084 30852019-02-27 Jakub Jelinek <jakub@redhat.com> 3086 3087 Backported from mainline 3088 2019-02-18 Jakub Jelinek <jakub@redhat.com> 3089 3090 PR target/89361 3091 * config/s390/s390.c (s390_indirect_branch_attrvalue, 3092 s390_indirect_branch_settings): Define unconditionally. 3093 (s390_set_current_function): Likewise, but guard the whole body except 3094 the s390_indirect_branch_settings call with 3095 #if S390_USE_TARGET_ATTRIBUTE. 3096 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. 3097 30982019-02-26 Eric Botcazou <ebotcazou@adacore.com> 3099 3100 Backport from mainline 3101 2019-02-19 Eric Botcazou <ebotcazou@adacore.com> 3102 3103 * rtlanal.c (get_initial_register_offset): Fall back to the estimate 3104 as long as the epilogue isn't completed. 3105 31062019-02-26 Eric Botcazou <ebotcazou@adacore.com> 3107 3108 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix 3109 and move around comment. 3110 <BIT_AND_EXPR>: Likewise. 3111 <BIT_NOT_EXPR>: Add specific handling for boolean types. 3112 31132019-02-24 Alan Modra <amodra@gmail.com> 3114 3115 PR target/89271 3116 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int 3117 output reg on add insn. 3118 (<bd>tf_<mode> split): Likewise. Match predicates with insn. 3119 31202019-02-22 Jakub Jelinek <jakub@redhat.com> 3121 3122 * BASE-VER: Set to 8.3.1. 3123 31242019-02-22 Release Manager 3125 3126 * GCC 8.3.0 released. 3127 31282019-02-15 Richard Biener <rguenther@suse.de> 3129 Jakub Jelinek <jakub@redhat.com> 3130 3131 PR tree-optimization/89278 3132 * tree-loop-distribution.c: Include tree-eh.h. 3133 (generate_memset_builtin, generate_memcpy_builtin): Call 3134 rewrite_to_non_trapping_overflow on builtin->size before passing it 3135 to force_gimple_operand_gsi. 3136 31372019-02-15 Jakub Jelinek <jakub@redhat.com> 3138 3139 PR other/89342 3140 * optc-save-gen.awk: Handle optimize_fast like optimize_size or 3141 optimize_debug. 3142 * opth-gen.awk: Likewise. 3143 31442019-02-14 David Malcolm <dmalcolm@redhat.com> 3145 3146 Backport of r267957 from trunk. 3147 2019-01-15 David Malcolm <dmalcolm@redhat.com> 3148 3149 PR c++/88795 3150 * tree.c (build_function_type): Assert that arg_types is not 3151 error_mark_node. 3152 31532019-02-14 Jakub Jelinek <jakub@redhat.com> 3154 3155 PR rtl-optimization/89354 3156 * combine.c (make_extraction): Punt if extraction_mode is narrower 3157 than len bits. 3158 31592019-02-14 David Malcolm <dmalcolm@redhat.com> 3160 3161 Backport of r263339 from trunk. 3162 2018-08-06 David Malcolm <dmalcolm@redhat.com> 3163 3164 * function-tests.c (selftest::test_expansion_to_rtl): Call 3165 free_after_compilation. 3166 31672019-02-14 David Malcolm <dmalcolm@redhat.com> 3168 3169 Backport of r263295 from trunk. 3170 2018-08-03 David Malcolm <dmalcolm@redhat.com> 3171 3172 * doc/gcov.texi (-x): Remove duplicate "to". 3173 * doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls". 3174 (-Wif-not-aligned): Remove duplicate "is". 3175 (-flto): Remove duplicate "the". 3176 (MicroBlaze Options): In examples of "-mcpu=cpu-type", remove 3177 duplicate "v5.00.b". 3178 (MSP430 Options): Remove duplicate "and" from the description 3179 of "-mgprel-sec=regexp". 3180 (x86 Options): Remove duplicate copies of "vmldLog102" and 3181 vmlsLog104 from description of "-mveclibabi=type". 3182 31832019-02-14 David Malcolm <dmalcolm@redhat.com> 3184 3185 Backport of r263275 from trunk. 3186 2018-08-02 David Malcolm <dmalcolm@redhat.com> 3187 3188 * diagnostic-show-locus.c (diagnostic_show_locus): Use 3189 pp_take_prefix when saving the existing prefix. 3190 * diagnostic.c (diagnostic_append_note): Likewise. 3191 * langhooks.c (lhd_print_error_function): Likewise. 3192 * pretty-print.c (pp_set_prefix): Drop the "const" from "prefix" 3193 param's type. Free the existing prefix. 3194 (pp_take_prefix): New function. 3195 (pretty_printer::pretty_printer): Drop the prefix parameter. 3196 Rename the length parameter to match the comment. 3197 (pretty_printer::~pretty_printer): Free the prefix. 3198 * pretty-print.h (pretty_printer::pretty_printer): Drop the prefix 3199 parameter. 3200 (struct pretty_printer): Drop the "const" from "prefix" field's 3201 type and clarify memory management. 3202 (pp_set_prefix): Drop the "const" from the 2nd param. 3203 (pp_take_prefix): New decl. 3204 32052019-02-14 Segher Boessenkool <segher@kernel.crashing.org> 3206 3207 Backport from trunk 3208 2018-08-31 Segher Boessenkool <segher@kernel.crashing.org> 3209 3210 PR target/86684 3211 PR target/87149 3212 * config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND. 3213 32142019-02-14 Segher Boessenkool <segher@kernel.crashing.org> 3215 3216 Backport from trunk 3217 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org> 3218 3219 PR target/88892 3220 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register 3221 operands. 3222 32232019-02-14 Segher Boessenkool <segher@kernel.crashing.org> 3224 3225 Backport from trunk 3226 2018-07-26 Segher Boessenkool <segher@kernel.crashing.org> 3227 3228 PR rtl-optimization/85805 3229 * combine.c (reg_nonzero_bits_for_combine): Only use the last set 3230 value for hard registers if that was written in the same mode. 3231 32322019-02-14 Martin Liska <mliska@suse.cz> 3233 3234 Backport from mainline 3235 2019-02-14 Martin Liska <mliska@suse.cz> 3236 3237 PR rtl-optimization/89242 3238 * dce.c (delete_unmarked_insns): Call free_dominance_info we 3239 process a transformation. 3240 32412019-02-14 Martin Liska <mliska@suse.cz> 3242 3243 Backport from mainline 3244 2019-02-13 Martin Liska <mliska@suse.cz> 3245 3246 PR lto/88858 3247 * cfgrtl.c (remove_barriers_from_footer): New function. 3248 (try_redirect_by_replacing_jump): Use it. 3249 (cfg_layout_redirect_edge_and_branch): Likewise. 3250 32512019-02-14 Martin Liska <mliska@suse.cz> 3252 3253 Backport from mainline 3254 2019-02-11 Martin Liska <mliska@suse.cz> 3255 3256 PR ipa/89009 3257 * ipa-cp.c (build_toporder_info): Remove usage of a param. 3258 * ipa-inline.c (inline_small_functions): Likewise. 3259 * ipa-pure-const.c (propagate_pure_const): Likewise. 3260 (propagate_nothrow): Likewise. 3261 * ipa-reference.c (propagate): Likewise. 3262 * ipa-utils.c (struct searchc_env): Remove unused field. 3263 (searchc): Always search across AVAIL_INTERPOSABLE. 3264 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as 3265 the only called IPA pure const can properly not propagate 3266 across interposable boundary. 3267 * ipa-utils.h (ipa_reduced_postorder): Remove param. 3268 32692019-02-14 Jakub Jelinek <jakub@redhat.com> 3270 3271 PR tree-optimization/89314 3272 * fold-const.c (fold_binary_loc): Cast strlen argument to 3273 const char * before dereferencing it. Formatting fixes. 3274 3275 Backported from mainline 3276 2019-02-13 Jakub Jelinek <jakub@redhat.com> 3277 3278 PR middle-end/89303 3279 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var 3280 into pt->vars_contains_escaped_heap instead of setting 3281 pt->vars_contains_escaped_heap to it. 3282 3283 PR middle-end/89281 3284 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of 3285 INTVAL (size), compare it to GET_MODE_MASK instead of 3286 1 << GET_MODE_BITSIZE. 3287 3288 PR target/89290 3289 * config/i386/predicates.md (x86_64_immediate_operand): Allow 3290 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with 3291 -mcmodel=large. 3292 3293 2019-02-09 Jakub Jelinek <jakub@redhat.com> 3294 3295 PR middle-end/89246 3296 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 3297 If !node->definition and TYPE_ARG_TYPES is non-NULL, use 3298 TYPE_ARG_TYPES instead of DECL_ARGUMENTS. 3299 33002019-02-13 Bill Schmidt <wschmidt@linux.ibm.com> 3301 3302 Backport from mainline 3303 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com> 3304 3305 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right 3306 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR 3307 for correct semantics. 3308 33092019-02-13 Richard Biener <rguenther@suse.de> 3310 3311 Backport from mainline 3312 2019-01-08 Richard Biener <rguenther@suse.de> 3313 3314 PR tree-optimization/86554 3315 * tree-ssa-sccvn.c (visit_nary_op): When value-numbering to 3316 expressions with different overflow behavior make sure there's an 3317 available expression on the path. 3318 33192019-02-13 Martin Liska <mliska@suse.cz> 3320 3321 PR lto/89260 3322 * lto-streamer.h (LTO_minor_version): Bump version due 3323 to r268698. 3324 33252019-02-13 Richard Biener <rguenther@suse.de> 3326 3327 Backport from mainline 3328 2019-02-12 Richard Biener <rguenther@suse.de> 3329 3330 PR tree-optimization/89253 3331 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can 3332 duplicate the loop. 3333 3334 2019-02-08 Richard Biener <rguenther@suse.de> 3335 3336 PR middle-end/89223 3337 * tree-data-ref.c (initialize_matrix_A): Fail if constant 3338 doesn't fit in HWI. 3339 (analyze_subscript_affine_affine): Handle failure from 3340 initialize_matrix_A. 3341 3342 2019-01-28 Richard Biener <rguenther@suse.de> 3343 3344 PR tree-optimization/88739 3345 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating 3346 BIT_FIELD_REFs of non-mode-precision integral operands. 3347 33482019-02-12 Jan Hubicka <hubicka@ucw.cz> 3349 3350 Backport from mainline: 3351 2019-02-09 Jan Hubicka <hubicka@ucw.cz> 3352 3353 * ipa-visibility.c (localize_node): Also do not localize 3354 LDPR_PREVAILING_DEF_IRONLY_EXP. 3355 33562019-02-11 Stefan Agner <stefan@agner.ch> 3357 3358 Backport from mainline. 3359 2019-01-10 Stefan Agner <stefan@agner.ch> 3360 3361 PR target/88648 3362 * config/arm/arm.c (arm_option_override_internal): Force 3363 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P. 3364 33652019-02-09 Jan Hubicka <hubicka@ucw.cz> 3366 3367 Backport from mainline: 3368 2019-01-05 Jan Hubicka <hubicka@ucw.cz> 3369 3370 PR tree-opt/86020 3371 Revert: 3372 2017-05-22 Jan Hubicka <hubicka@ucw.cz> 3373 3374 * ipa-inline.c (edge_badness): Use inlined_time instead of 3375 inline_summaries->get. 3376 33772019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com> 3378 3379 Backported from mainline 3380 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> 3381 3382 PR target/89112 3383 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label 3384 for the long branch case. 3385 3386 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> 3387 3388 PR target/89112 3389 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, 3390 expand_compare_loop, expand_block_compare_gpr, 3391 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert 3392 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add 3393 #include "profile-count.h" and "predict.h" for types and functions 3394 needed to work with REG_BR_PROB notes. 3395 3396 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com> 3397 3398 * config/rs6000/rs6000-string.c (expand_compare_loop, 3399 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of 3400 memcmp/strncmp. 3401 34022019-02-09 Jakub Jelinek <jakub@redhat.com> 3403 3404 Backported from mainline 3405 2019-01-16 David Malcolm <dmalcolm@redhat.com> 3406 3407 PR target/88861 3408 * combine.c (delete_noop_moves): Convert to "bool" return, 3409 returning true if any edges are eliminated. 3410 (combine_instructions): Also return true if delete_noop_moves 3411 returns true. 3412 3413 2019-02-08 Jakub Jelinek <jakub@redhat.com> 3414 3415 PR rtl-optimization/89234 3416 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn 3417 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P. 3418 (copy_reg_eh_region_note_backward): Likewise. 3419 34202019-02-09 Alan Modra <amodra@gmail.com> 3421 3422 PR target/88343 3423 * config/rs6000/rs6000.c (save_reg_p): Match logic in 3424 rs6000_emit_prologue emitting pic_offset_table setup. 3425 34262019-02-08 Richard Biener <rguenther@suse.de> 3427 3428 Backport from mainline 3429 2018-11-13 Richard Biener <rguenther@suse.de> 3430 3431 PR tree-optimization/86991 3432 * tree-vect-loop.c (vect_is_slp_reduction): Delay reduction 3433 group building until we have successfully detected the SLP 3434 reduction. 3435 (vect_is_simple_reduction): Remove fixup code here. 3436 34372019-02-08 Richard Biener <rguenther@suse.de> 3438 3439 Backport from mainline 3440 2019-02-03 Richard Biener <rguenther@suse.de> 3441 3442 PR debug/87295 3443 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as 3444 orig. 3445 3446 2019-01-29 Richard Biener <rguenther@suse.de> 3447 3448 PR debug/87295 3449 * dwarf2out.c (collect_skeleton_dies): New helper. 3450 (copy_decls_for_unworthy_types): Call it. 3451 (build_abbrev_table): Do not try to replace 3452 DW_AT_signature refs with local refs. 3453 3454 2019-01-17 Richard Biener <rguenther@suse.de> 3455 3456 PR lto/86736 3457 * dwarf2out.c (want_pubnames): Never generate pubnames sections 3458 and friends for the LTO part of debug info. 3459 3460 2019-01-24 Richard Biener <rguenther@suse.de> 3461 3462 PR lto/87187 3463 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): 3464 When in "legacy" debug mode make sure to reset self-origins. 3465 3466 2019-01-15 Richard Biener <rguenther@suse.de> 3467 3468 PR debug/88046 3469 * dwarf2out.c (gen_member_die): Do not generate inheritance 3470 DIEs late. 3471 3472 2018-11-22 Richard Biener <rguenther@suse.de> 3473 3474 PR lto/87229 3475 PR lto/88112 3476 * lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs 3477 which can appear in size expressions. 3478 * tree-streamer-in.c (unpack_ts_base_value_fields): Stream 3479 CALL_EXPR_BY_DESCRIPTOR. 3480 (streamer_read_tree_bitfields): Stream CALL_EXPR_IFN. 3481 * tree-streamer-out.c (pack_ts_base_value_fields): Stream 3482 CALL_EXPR_BY_DESCRIPTOR. 3483 (streamer_write_tree_bitfields): Stream CALL_EXPR_IFN. 3484 34852019-02-08 Christophe Lyon <christophe.lyon@linaro.org> 3486 3487 Backport from mainline 3488 2019-01-07 Christophe Lyon <christophe.lyon@linaro.org> 3489 3490 PR target/85596 3491 * doc/install.texi (with-multilib-list): Document for aarch64. 3492 34932019-02-08 Richard Biener <rguenther@suse.de> 3494 3495 Backport from mainline 3496 2018-12-10 Richard Biener <rguenther@suse.de> 3497 3498 PR tree-optimization/88427 3499 * vr-values.c (vr_values::extract_range_from_phi_node): 3500 Handle symbolic ranges conservatively when trying to drop 3501 to Inf +- 1. 3502 3503 2018-11-28 Richard Biener <rguenther@suse.de> 3504 3505 PR tree-optimization/88217 3506 * vr-values.c (vr_values::extract_range_from_phi_node): Make 3507 sure to handle results > +INF and < -INF correctly when 3508 trying to drop down to +INF - 1 or -INF + 1. 3509 3510 2018-11-23 Richard Biener <rguenther@suse.de> 3511 3512 PR tree-optimization/88149 3513 * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect 3514 the case where there are two different def types for the 3515 same operand at different operand position in the same stmt. 3516 35172019-02-07 Jakub Jelinek <jakub@redhat.com> 3518 3519 Backported from mainline 3520 2019-02-05 Jakub Jelinek <jakub@redhat.com> 3521 3522 PR target/89188 3523 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they 3524 can throw, non-call exceptions are enabled and we can't delete 3525 dead exceptions or alter cfg. Set must_clean if 3526 delete_insn_and_edges returns true, don't set it blindly for calls. 3527 3528 PR rtl-optimization/89195 3529 * combine.c (make_extraction): For MEMs, don't extract bytes outside 3530 of the original MEM. 3531 3532 PR target/89186 3533 * optabs.c (prepare_cmp_insn): Pass x and y to 3534 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0). 3535 3536 2019-02-02 Jakub Jelinek <jakub@redhat.com> 3537 3538 PR middle-end/87887 3539 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 3540 Punt with warning on aggregate return or argument types. Ignore 3541 type/mode checking for uniform arguments. 3542 3543 2019-02-01 Jakub Jelinek <jakub@redhat.com> 3544 3545 PR tree-optimization/88107 3546 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument, 3547 instead of assertion that eh_region_outermost is non-NULL, if it 3548 is NULL, set *ALL to true and return NULL. 3549 (move_sese_region_to_fn): Adjust caller, if all is set, call 3550 duplicate_eh_regions with NULL region. 3551 3552 2019-01-31 Jakub Jelinek <jakub@redhat.com> 3553 3554 PR sanitizer/89124 3555 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining 3556 always_inline callees into no_sanitize_address callers. 3557 3558 2019-01-30 Jakub Jelinek <jakub@redhat.com> 3559 3560 PR c++/89105 3561 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn 3562 for arguments to functions that are TU-local and shouldn't be 3563 referenced by assembly. 3564 3565 2019-01-29 Jakub Jelinek <jakub@redhat.com> 3566 3567 PR c++/66676 3568 PR ipa/89104 3569 * omp-simd-clone.c (simd_clone_clauses_extract) 3570 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL 3571 OMP_CLAUSE_ALIGNED_ALIGNMENT. 3572 3573 2019-01-28 Jakub Jelinek <jakub@redhat.com> 3574 3575 PR middle-end/89002 3576 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ 3577 for lastprivate/linear IV, push gimplify context around gimplify_assign 3578 and, if it needed any temporaries, pop it into a gimple bind around the 3579 sequence. 3580 3581 PR target/89073 3582 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx, 3583 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document 3584 x86 ISA options. 3585 (bmi2): Add missing @opindex. 3586 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3 3587 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2, 3588 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd, 3589 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi, 3590 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2, 3591 clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase, 3592 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig, 3593 pku, prefetchwt1, prfchw, rdpid, rdrnd, rdseed, rtm, sahf, 3594 sgx, sha, shstk, tbm, vaes, vpclmulqdq, wbnoinvd, xsave, 3595 xsavec, xsaveopt and xsaves options. 3596 3597 2019-01-27 Jakub Jelinek <jakub@redhat.com> 3598 3599 PR target/87214 3600 * config/i386/sse.md 3601 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>, 3602 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the 3603 first constants in pairs are multiples of 2. Formatting fixes. 3604 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>, 3605 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the 3606 first constants in each quadruple are multiples of 4. Formatting fixes. 3607 3608 2019-01-24 Jakub Jelinek <jakub@redhat.com> 3609 3610 PR tree-optimization/88964 3611 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also 3612 punt if HONOR_SNANS (chrec). 3613 3614 2019-01-23 Jakub Jelinek <jakub@redhat.com> 3615 3616 PR tree-optimization/88964 3617 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use 3618 build_zero_cst instead of build_int_cst. Return false for loop 3619 invariants which honor signed zeros. 3620 3621 2019-01-22 Jakub Jelinek <jakub@redhat.com> 3622 3623 PR target/88965 3624 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h. 3625 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy 3626 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first. 3627 3628 PR middle-end/88968 3629 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with 3630 non-integral DECL_BIT_FIELD_REPRESENTATIVEs. 3631 3632 PR target/88905 3633 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of 3634 GET_MODE (op0). 3635 (expand_binop_directly, expand_doubleword_clz, 3636 expand_doubleword_popcount, expand_ctz, expand_ffs, 3637 expand_unop_direct, maybe_emit_unop_insn): Adjust callers. 3638 3639 PR rtl-optimization/49429 3640 PR target/49454 3641 PR rtl-optimization/86334 3642 PR target/88906 3643 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs 3644 addressable from here... 3645 (emit_block_op_via_libcall): ... to here. 3646 3647 2019-01-17 Jakub Jelinek <jakub@redhat.com> 3648 3649 PR target/88734 3650 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace 3651 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of 3652 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics. 3653 3654 PR rtl-optimization/88870 3655 * dce.c (deletable_insn_p): Never delete const/pure calls that can 3656 throw if we can't alter the cfg or delete dead exceptions. 3657 (mark_insn): Don't call find_call_stack_args for such calls. 3658 3659 2019-01-11 Jakub Jelinek <jakub@redhat.com> 3660 3661 PR bootstrap/88714 3662 * passes.c (finish_optimization_passes): Call print_combine_total_stats 3663 inside of pass_combine_1 dump rather than pass_profile_1. 3664 3665 2019-01-10 Jakub Jelinek <jakub@redhat.com> 3666 3667 PR c/88568 3668 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting 3669 DECL_EXTERNAL. 3670 3671 2019-01-07 Jakub Jelinek <jakub@redhat.com> 3672 3673 PR debug/88723 3674 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to 3675 const_not_ok_for_debug_p target hook. 3676 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1 3677 on UNSPEC and subexpressions thereof if all subexpressions of the 3678 UNSPEC are CONSTANT_P. 3679 3680 2019-01-05 Jakub Jelinek <jakub@redhat.com> 3681 3682 PR debug/88635 3683 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains 3684 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument. 3685 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in 3686 subexpressions of both operands. 3687 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the 3688 subrtxes are CONSTANT_P. 3689 36902019-02-07 Richard Biener <rguenther@suse.de> 3691 3692 Backport from mainline 3693 2018-11-20 Richard Biener <rguenther@suse.de> 3694 3695 PR tree-optimization/88105 3696 * tree-ssa-dom.c (pass_dominator::execute): Do not walk 3697 backedges. 3698 3699 2018-11-28 Richard Biener <rguenther@suse.de> 3700 3701 PR tree-optimization/88223 3702 * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping 3703 over a stored-same value may-alias store make sure to consider 3704 partial overlaps which are valid when TBAA reasonings do not 3705 apply and byte-granular overlaps are possible at all. 3706 37072019-02-07 Richard Biener <rguenther@suse.de> 3708 3709 Backport from mainline 3710 2018-12-11 Richard Biener <rguenther@suse.de> 3711 3712 PR middle-end/88448 3713 PR middle-end/88415 3714 * tree-complex.c (update_complex_assignment): Properly transfer 3715 or clean EH info around gimple_assign_set_rhs_with_ops. 3716 3717 2018-11-15 Richard Biener <rguenther@suse.de> 3718 3719 PR tree-optimization/88030 3720 * tree-complex.c (need_eh_cleanup): New global. 3721 (update_complex_assignment): Mark blocks that need EH update. 3722 (expand_complex_comparison): Likewise. 3723 (tree_lower_complex): Allocate and deallocate need_eh_cleanup, 3724 perform EH cleanup and schedule CFG cleanup if that did anything. 3725 3726 2018-11-08 Richard Biener <rguenther@suse.de> 3727 3728 PR tree-optimization/87929 3729 * tree-complex.c (expand_complex_comparison): Clean EH. 3730 37312019-02-06 Eric Botcazou <ebotcazou@adacore.com> 3732 3733 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage 3734 after restoring registers saved to allocate the frame on Windows. 3735 37362019-02-06 Richard Biener <rguenther@suse.de> 3737 3738 Backport from mainline 3739 2019-01-31 Richard Biener <rguenther@suse.de> 3740 3741 PR tree-optimization/89135 3742 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks 3743 with abnormal preds. 3744 3745 2019-01-18 Richard Biener <rguenther@suse.de> 3746 3747 PR tree-optimization/88903 3748 * tree-vect-stmts.c (vectorizable_shift): Verify we see all 3749 scalar stmts a SLP shift amount is composed of when detecting 3750 shifts by scalars. 3751 37522019-02-05 Kelvin Nilsen <kelvin@gcc.gnu.org> 3753 3754 Backport from mainline. 3755 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org> 3756 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin): 3757 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to 3758 type of vector element when vec_extract is implemented by direct 3759 move. 3760 37612019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> 3762 3763 Backport from mainline 3764 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> 3765 3766 PR target/88856 3767 * config/s390/s390.md: Remove load and test FP splitter. 3768 37692019-02-04 Bill Schmidt <wshmidt@linux.ibm.com> 3770 3771 PR target/87064 3772 Backport from mainline 3773 3774 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com> 3775 3776 PR target/87064 3777 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): 3778 Disable for little-endian. 3779 3780 2019-01-22 Jakub Jelinek <jakub@redhat.com> 3781 3782 PR target/87064 3783 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar): 3784 Disable for little endian. 3785 37862019-02-04 Eric Botcazou <ebotcazou@adacore.com> 3787 3788 * config/sparc/sparc.h: Remove superfluous blank lines. 3789 * config/sparc/sparc.c (global_offset_table_rtx): Rename into... 3790 (got_register_rtx): ...this. 3791 (sparc_got): Adjust to above renaming. 3792 (sparc_tls_got): Likewise. 3793 (sparc_output_mi_thunk): Likewise. 3794 (sparc_init_pic_reg): Likewise. 3795 (save_local_or_in_reg_p): Fix test on the GOT register. 3796 (USE_HIDDEN_LINKONCE): Move around. 3797 (get_pc_thunk_name): Likewise. 3798 (gen_load_pcrel_sym): Likewise. 3799 (load_got_register): Likewise. 3800 38012019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> 3802 3803 Backport from mainline 3804 2018-10-15 Bin Cheng <bin.cheng@linux.alibaba.com> 3805 3806 PR tree-optimization/87022 3807 * tree-loop-distribution.c (pg_add_dependence_edges): Check all 3808 bits in dist vector rather than the first one. 3809 38102019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> 3811 3812 Backport from mainline 3813 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> 3814 3815 PR tree-optimization/88932 3816 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order. 3817 38182018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> 3819 3820 Backport from mainline 3821 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> 3822 3823 PR tree-optimization/89008 3824 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't 3825 process anything of the form X * 0. 3826 38272019-01-31 Richard Biener <rguenther@suse.de> 3828 3829 Backport from mainline 3830 2019-01-31 Richard Biener <rguenther@suse.de> 3831 3832 PR rtl-optimization/89115 3833 * lra.c (lra_rtx_hash): Properly hash CONST_INT values. 3834 3835 2019-01-30 Richard Biener <rguenther@suse.de> 3836 3837 PR rtl-optimization/89115 3838 * opts.c (default_options_optimization): Reduce 3839 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1. 3840 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative 3841 to the default. 3842 38432019-01-30 Kewen Lin <linkw@gcc.gnu.org> 3844 3845 Backport from mainline. 3846 2019-01-17 Kewen Lin <linkw@gcc.gnu.org> 3847 3848 * doc/extend.texi: Add four new prototypes for vec_ld and seven new 3849 prototypes for vec_st. 3850 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries 3851 for scalar address type variants of altivec_vec_ld/altivec_vec_st, 3852 mainly on signed/unsigned long long and double. 3853 38542019-01-29 Vineet Gupta <vgupta@synopsys.com> 3855 3856 Backport from mainline. 3857 * gcc/config.gcc: Force .init_array for ARC. 3858 38592019-01-29 Vineet Gupta <vgupta@synopsys.com> 3860 3861 Backport from mainline. 3862 * config/arc/atomic.md: Add operand to DMB instruction. 3863 38642019-01-27 Uroš Bizjak <ubizjak@gmail.com> 3865 3866 PR target/88948 3867 * rtl.h (prepare_copy_insn): New prototype. 3868 * gcse.c (prepare_copy_insn): New function, split out from 3869 process_insert_insn. 3870 (process_insert_insn): Use prepare_copy_insn. 3871 * store-motion.c (replace_store_insn): Use prepare_copy_insn 3872 instead of gen_move_insn. 3873 38742019-01-25 Richard Biener <rguenther@suse.de> 3875 3876 PR tree-optimization/86865 3877 * graphite-scop-detection.c (scop_detection::can_represent_loop): 3878 Reject non-do-while loops. 3879 38802019-01-24 Uroš Bizjak <ubizjak@gmail.com> 3881 3882 PR target/88998 3883 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives. 3884 Disparage MMX alternative. 3885 (sse2_cvtpd2pi): Ditto. 3886 (sse2_cvttpd2pi): Ditto. 3887 38882019-01-24 Richard Earnshaw <rearnsha@arm.com> 3889 3890 PR target/88469 3891 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8 3892 force the alignment of m_val. 3893 38942019-01-24 Richard Biener <rguenther@suse.de> 3895 3896 Backport from mainline 3897 2019-01-23 Richard Biener <rguenther@suse.de> 3898 3899 PR tree-optimization/89008 3900 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do 3901 not leave another stray operand. 3902 39032019-01-22 Uroš Bizjak <ubizjak@gmail.com> 3904 3905 PR target/88938 3906 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32, 3907 case IX86_BUILTIN_BEXTRI64]: Sanitize operands. 3908 39092019-01-18 Richard Earnshaw <rearnsha@arm.com> 3910 3911 PR target/88799 3912 * config/arm/arm-cpus.in (mp): New feature. 3913 (sec): New feature. 3914 (fgroup ARMv7ve): Add mp and sec features. 3915 (arch armv7-a): Add options to allow mp and sec extensions. 3916 (cpu generic-armv7-a): Add options to allow mp and sec extensions. 3917 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec 3918 extenstions to the base architecture. 3919 (cpu cortex-a8): Add sec extension to the base architecture. 3920 (cpu marvell-pj4): Add mp and sec extensions to the base architecture. 3921 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch 3922 variants down to the base v7-a varaint. 3923 * config/arm/t-multilib (v7_a_arch_variants): New variable. 3924 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list 3925 of permitted extensions for -march=armv7-a and for 3926 -mcpu=generic-armv7-a. 3927 39282019-01-17 Uroš Bizjak <ubizjak@gmail.com> 3929 3930 * config/alpha/alpha.c (alpha_gimplify_va_arg): 3931 Handle split indirect COMPLEX_TYPE arguments. 3932 39332019-01-17 Eric Botcazou <ebotcazou@adacore.com> 3934 3935 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace 3936 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. 3937 (stmt_uses_0_or_null_in_undefined_way): Likewise. 3938 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise. 3939 39402019-01-16 Aaron Sawdey <acsawdey@linux.ibm.com> 3941 3942 Backported from mainline 3943 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com> 3944 * config/rs6000/rs6000-string.c (expand_block_move): Don't use 3945 unaligned vsx and avoid lxvd2x/stxvd2x. 3946 (gen_lvx_v4si_move): New function. 3947 39482019-01-16 Martin Jambor <mjambor@suse.cz> 3949 3950 Backported from mainline 3951 2018-12-10 Martin Jambor <mjambor@suse.cz> 3952 3953 PR ipa/88214 3954 * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure 3955 we check pointers against pointers. 3956 39572019-01-10 Jan Hubicka <hubicka@ucw.cz> 3958 3959 Backported from mainline 3960 2018-12-27 Jan Hubicka <hubicka@ucw.cz> 3961 3962 * ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types. 3963 (polymorphic_call_target_hasher::hash): Hash it. 3964 (polymorphic_call_target_hasher::equal): Compare it. 3965 (possible_polymorphic_call_targets): Set it. 3966 * tree.c (free_lang_data): Rebuild type inheritance graph even on 3967 non-LTO path. 3968 39692019-01-03 Jan Hubicka <hubicka@ucw.cz> 3970 3971 Backported from mainline 3972 2019-01-02 Richard Biener <rguenther@suse.de> 3973 3974 PR ipa/85574 3975 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare. 3976 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New 3977 function. 3978 (sem_item_optimizer::do_congruence_step_f): Sort the congruence 3979 set after UIDs before splitting them. 3980 39812019-01-03 Jan Hubicka <hubicka@ucw.cz> 3982 3983 Backported from mainline 3984 2019-01-03 Jan Hubicka <hubicka@ucw.cz> 3985 3986 PR tree-optimization/85574 3987 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused 3988 structure. 3989 (struct ssa_equip_hash_traits): Declare. 3990 (val_ssa_equiv): Use custom hash traits using operand_equal_p. 3991 39922019-01-09 Eric Botcazou <ebotcazou@adacore.com> 3993 3994 * config/sparc/sparc.md (*tablejump_sp32): Merge into... 3995 (*tablejump_sp64): Likewise. 3996 (*tablejump<P:mode>): ...this. 3997 (*call_address_sp32): Merge into... 3998 (*call_address_sp64): Likewise. 3999 (*call_address<P:mode>): ...this. 4000 (*call_symbolic_sp32): Merge into... 4001 (*call_symbolic_sp64): Likewise. 4002 (*call_symbolic<P:mode>): ...this. 4003 (call_value): Remove constraint and add predicate. 4004 (*call_value_address_sp32): Merge into... 4005 (*call_value_address_sp64): Likewise. 4006 (*call_value_address<P:mode>): ...this. 4007 (*call_value_symbolic_sp32): Merge into... 4008 (*call_value_symbolic_sp64): Likewise. 4009 (*call_value_symbolic<P:mode>): ...this. 4010 (*sibcall_symbolic_sp32): Merge into... 4011 (*sibcall_symbolic_sp64): Likewise. 4012 (*sibcall_symbolic<P:mode>): ...this. 4013 (sibcall_value): Remove constraint and add predicate. 4014 (*sibcall_value_symbolic_sp32): Merge into... 4015 (*sibcall_value_symbolic_sp64): Likewise. 4016 (*sibcall_value_symbolic<P:mode>): ...this. 4017 (window_save): Minor tweak. 4018 (*branch_sp32): Merge into... 4019 (*branch_sp64): Likewise. 4020 (*branch<P:mode>): ...this. 4021 40222019-01-09 Eric Botcazou <ebotcazou@adacore.com> 4023 James Clarke <jrtc27@jrtc27.com> 4024 4025 PR target/84010 4026 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode 4027 consistently in TLS address generation and adjust code to the renaming 4028 of patterns. Mark calls to __tls_get_addr as const. 4029 * config/sparc/sparc.md (tgd_hi22): Turn into... 4030 (tgd_hi22<P:mode>): ...this and use Pmode throughout. 4031 (tgd_lo10): Turn into... 4032 (tgd_lo10<P:mode>): ...this and use Pmode throughout. 4033 (tgd_add32): Merge into... 4034 (tgd_add64): Likewise. 4035 (tgd_add<P:mode>): ...this and use Pmode throughout. 4036 (tldm_hi22): Turn into... 4037 (tldm_hi22<P:mode>): ...this and use Pmode throughout. 4038 (tldm_lo10): Turn into... 4039 (tldm_lo10<P:mode>): ...this and use Pmode throughout. 4040 (tldm_add32): Merge into... 4041 (tldm_add64): Likewise. 4042 (tldm_add<P:mode>): ...this and use Pmode throughout. 4043 (tldm_call32): Merge into... 4044 (tldm_call64): Likewise. 4045 (tldm_call<P:mode>): ...this and use Pmode throughout. 4046 (tldo_hix22): Turn into... 4047 (tldo_hix22<P:mode>): ...this and use Pmode throughout. 4048 (tldo_lox10): Turn into... 4049 (tldo_lox10<P:mode>): ...this and use Pmode throughout. 4050 (tldo_add32): Merge into... 4051 (tldo_add64): Likewise. 4052 (tldo_add<P:mode>): ...this and use Pmode throughout. 4053 (tie_hi22): Turn into... 4054 (tie_hi22<P:mode>): ...this and use Pmode throughout. 4055 (tie_lo10): Turn into... 4056 (tie_lo10<P:mode>): ...this and use Pmode throughout. 4057 (tie_ld64): Use DImode throughout. 4058 (tie_add32): Merge into... 4059 (tie_add64): Likewise. 4060 (tie_add<P:mode>): ...this and use Pmode throughout. 4061 (tle_hix22_sp32): Merge into... 4062 (tle_hix22_sp64): Likewise. 4063 (tle_hix22<P:mode>): ...this and use Pmode throughout. 4064 (tle_lox22_sp32): Merge into... 4065 (tle_lox22_sp64): Likewise. 4066 (tle_lox22<P:mode>): ...this and use Pmode throughout. 4067 (*tldo_ldub_sp32): Merge into... 4068 (*tldo_ldub_sp64): Likewise. 4069 (*tldo_ldub<P:mode>): ...this and use Pmode throughout. 4070 (*tldo_ldub1_sp32): Merge into... 4071 (*tldo_ldub1_sp64): Likewise. 4072 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout. 4073 (*tldo_ldub2_sp32): Merge into... 4074 (*tldo_ldub2_sp64): Likewise. 4075 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout. 4076 (*tldo_ldsb1_sp32): Merge into... 4077 (*tldo_ldsb1_sp64): Likewise. 4078 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout. 4079 (*tldo_ldsb2_sp32): Merge into... 4080 (*tldo_ldsb2_sp64): Likewise. 4081 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout. 4082 (*tldo_ldub3_sp64): Use DImode throughout. 4083 (*tldo_ldsb3_sp64): Likewise. 4084 (*tldo_lduh_sp32): Merge into... 4085 (*tldo_lduh_sp64): Likewise. 4086 (*tldo_lduh<P:mode>): ...this and use Pmode throughout. 4087 (*tldo_lduh1_sp32): Merge into... 4088 (*tldo_lduh1_sp64): Likewise. 4089 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout. 4090 (*tldo_ldsh1_sp32): Merge into... 4091 (*tldo_ldsh1_sp64): Likewise. 4092 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout. 4093 (*tldo_lduh2_sp64): Use DImode throughout. 4094 (*tldo_ldsh2_sp64): Likewise. 4095 (*tldo_lduw_sp32): Merge into... 4096 (*tldo_lduw_sp64): Likewise. 4097 (*tldo_lduw<P:mode>): ...this and use Pmode throughout. 4098 (*tldo_lduw1_sp64): Use DImode throughout. 4099 (*tldo_ldsw1_sp64): Likewise. 4100 (*tldo_ldx_sp64): Likewise. 4101 (*tldo_stb_sp32): Merge into... 4102 (*tldo_stb_sp64): Likewise. 4103 (*tldo_stb<P:mode>): ...this and use Pmode throughout. 4104 (*tldo_sth_sp32): Merge into... 4105 (*tldo_sth_sp64): Likewise. 4106 (*tldo_sth<P:mode>): ...this and use Pmode throughout. 4107 (*tldo_stw_sp32): Merge into... 4108 (*tldo_stw_sp64): Likewise. 4109 (*tldo_stw<P:mode>): ...this and use Pmode throughout. 4110 (*tldo_stx_sp64): Use DImode throughout. 4111 41122019-01-09 Eric Botcazou <ebotcazou@adacore.com> 4113 4114 * doc/invoke.texi (-Os): Add reference to -finline-functions. 4115 (-finline-functions): Remove reference to -O2, add references 4116 to -fprofile-use and -fauto-profile. 4117 41182019-01-08 Jakub Jelinek <jakub@redhat.com> 4119 4120 Backported from mainline 4121 2019-01-05 Jakub Jelinek <jakub@redhat.com> 4122 4123 PR middle-end/82564 4124 PR target/88620 4125 * expr.c (expand_assignment): For calls returning VLA structures 4126 if to_rtx is not a MEM, force it into a stack temporary. 4127 4128 2019-01-04 Jakub Jelinek <jakub@redhat.com> 4129 4130 PR target/88594 4131 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead 4132 of GET_MODE (opN) as modes of the libcall arguments. 4133 4134 2019-01-03 Jakub Jelinek <jakub@redhat.com> 4135 4136 PR debug/88644 4137 * dwarf2out.c (modified_type_die): If type is equal to sizetype, 4138 change it to qualified_type. 4139 4140 2018-12-21 Jakub Jelinek <jakub@redhat.com> 4141 4142 PR middle-end/85594 4143 PR middle-end/88553 4144 * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition 4145 if needed. 4146 (expand_omp_for_generic): Don't clobber t temporary for ordered loops. 4147 4148 PR target/88522 4149 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask, 4150 *avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask, 4151 *avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for 4152 -masm=intel. 4153 (gatherq_mode): Remove mode iterator. 4154 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead 4155 of <xtg_mode>. 4156 (*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>. 4157 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>, 4158 *avx512f_scatterdi<mode>): Use %X5 for -masm=intel. 4159 4160 PR rtl-optimization/88563 4161 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode 4162 and mode arguments to convert_modes. Likewise swap mode and word_mode 4163 arguments. Handle both arguments with VOIDmode before convert_modes 4164 of one of them. Formatting fixes. 4165 4166 2018-12-19 Jakub Jelinek <jakub@redhat.com> 4167 4168 PR target/88541 4169 * config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable 4170 for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq. 4171 4172 2018-12-14 Jakub Jelinek <jakub@redhat.com> 4173 4174 PR c++/82294 4175 PR c++/87436 4176 * expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument. 4177 * expr.c (categorize_ctor_elements_1): Likewise. Compute it like 4178 p_nz_elts, except don't multiply it by mult. Adjust recursive call. 4179 Fix up COMPLEX_CST handling. 4180 (categorize_ctor_elements): Add p_unique_nz_elts argument, initialize 4181 it and pass it through to categorize_ctor_elements_1. 4182 (mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers. 4183 * gimplify.c (gimplify_init_constructor): Likewise. Don't force 4184 ctor into readonly data section if num_unique_nonzero_elements is 4185 smaller or equal to 1/8 of num_nonzero_elements and size is >= 64 4186 bytes. 4187 4188 2018-12-13 Jakub Jelinek <jakub@redhat.com> 4189 4190 PR rtl-optimization/88470 4191 * cfgcleanup.c (outgoing_edges_match): If the function is 4192 shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake 4193 edge to EXIT, return false. 4194 4195 PR rtl-optimization/88416 4196 * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify 4197 even if !AUTO_INC_DEC. 4198 4199 2018-12-07 Jakub Jelinek <jakub@redhat.com> 4200 4201 PR target/85593 4202 * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage 4203 for functions with naked attribute. 4204 4205 2018-12-06 Jakub Jelinek <jakub@redhat.com> 4206 4207 PR target/87598 4208 * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't 4209 call output_operand_lossage on VOIDmode CONST_INTs. After 4210 output_operand_lossage do return false. 4211 4212 2018-12-05 Jakub Jelinek <jakub@redhat.com> 4213 4214 PR tree-optimization/87360 4215 * gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze 4216 data dependencies, don't return false, just continue. 4217 4218 2018-11-29 Jakub Jelinek <jakub@redhat.com> 4219 4220 PR target/88234 4221 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For 4222 vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR 4223 in unsigned_type_for instead of vector integral type where overflow 4224 doesn't wrap. 4225 4226 2018-11-26 Jakub Jelinek <jakub@redhat.com> 4227 4228 PR c++/86900 4229 * dwarf2out.c (secname_for_decl): For functions with 4230 DECL_SECTION_NAME if in_cold_section_p, try to return 4231 current_function_section's name if it is a named section. 4232 4233 2018-11-22 Jakub Jelinek <jakub@redhat.com> 4234 4235 PR target/85644 4236 PR target/86832 4237 * config/i386/i386.c (ix86_option_override_internal): Default 4238 ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET 4239 is defined. 4240 * config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>, 4241 stack_protect_test, stack_protect_test_<mode>): Use empty condition 4242 instead of TARGET_SSP_TLS_GUARD. 4243 4244 2018-11-20 Jakub Jelinek <jakub@redhat.com> 4245 4246 PR tree-optimization/87895 4247 * omp-simd-clone.c (ipa_simd_modify_function_body): When removing 4248 or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT. 4249 (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that 4250 redirects edges to EXIT to edges to incr_bb, iterate while EXIT 4251 has any preds and always use EDGE_PRED (, 0). 4252 4253 2018-11-19 Jakub Jelinek <jakub@redhat.com> 4254 4255 PR tree-optimization/88071 4256 * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead 4257 of false as last argument to gsi_remove. 4258 * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of 4259 false as last argument to gsi_replace. 4260 4261 PR debug/87039 4262 * omp-expand.c: Don't include debug.h. 4263 (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT 4264 from innermost outer parallel, task, or target that has a 4265 child_fn set, or, if there is no such outer region, use 4266 current_function_decl. Do the DECL_CONTEXT adjustment regardless of 4267 whether a suitable BLOCK is found or not. 4268 (expand_parallel_call): Don't call adjust_context_and_scope here. 4269 (grid_expand_target_grid_body): Revert 2017-01-25 changes. 4270 (expand_omp_taskreg, expand_omp_target): Likewise. Call 4271 adjust_context_and_scope. 4272 * dwarf2out.c (dwarf2out_early_global_decl): For 4273 decl_function_context recurse instead of calling dwarf2out_decl. 4274 4275 2018-11-16 Jakub Jelinek <jakub@redhat.com> 4276 4277 PR rtl-optimization/87475 4278 * cfgrtl.c (patch_jump_insn): Allow redirection failure for 4279 CROSSING_JUMP_P insns. 4280 (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. 4281 4282 2018-11-15 Jakub Jelinek <jakub@redhat.com> 4283 4284 PR rtl-optimization/88018 4285 * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge 4286 on the presence of fallthru edge, rather than if it is a USE or not. 4287 4288 2018-11-13 Jakub Jelinek <jakub@redhat.com> 4289 4290 PR tree-optimization/87898 4291 * omp-simd-clone.c (ipa_simd_modify_function_body): Remove debug stmts 4292 where the first argument was changed into a non-decl. 4293 42942019-01-03 Jan Hubicka <hubicka@ucw.cz> 4295 4296 Backport from mainline 4297 2019-01-02 Jan Hubicka <hubicka@ucw.cz> 4298 4299 PR lto/88130 4300 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return 4301 false at WPA time when body was removed. 4302 43032019-01-03 Jan Hubicka <hubicka@ucw.cz> 4304 4305 Backport from mainline 4306 2018-08-29 Jan Hubicka <jh@suse.cz> 4307 4308 PR lto/86517 4309 PR lto/88185 4310 * lto-opts.c (lto_write_options): Always stream PIC/PIE mode. 4311 * lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE. 4312 43132019-01-04 Aaron Sawdey <acsawdey@linux.ibm.com> 4314 4315 Backport from mainline 4316 2018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> 4317 4318 * config/rs6000/rs6000-string.c (expand_block_clear): Change how 4319 we determine if unaligned vsx is ok. 4320 43212019-01-03 Jan Hubicka <hubicka@ucw.cz> 4322 4323 Backport from mainline 4324 2019-01-03 Jan Hubicka <hubicka@ucw.cz> 4325 4326 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ... 4327 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases. 4328 43292019-01-03 Martin Liska <mliska@suse.cz> 4330 4331 Backport from mainline 4332 2019-01-01 Jan Hubicka <hubicka@ucw.cz> 4333 4334 * coverage.c (get_coverage_counts): Use current_function_decl. 4335 * profile.c (read_thunk_profile): New function. 4336 (branch_prob): Add THUNK parameter. 4337 * tree-profile.c (tree_profiling): Handle thunks. 4338 * value-prof.c (init_node_map): Handle thunks. 4339 * value-prof.h (branch_prob): Upate prototype. 4340 (read_thunk_profile): Declare. 4341 43422019-01-03 Iain Sandoe <iain@sandoe.co.uk> 4343 4344 revert: 4345 2018-12-23 Iain Sandoe <iain@sandoe.co.uk> 4346 4347 backport from mainline. 4348 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org> 4349 Iain Sandoe <iain@sandoe.co.uk> 4350 4351 PR target/88343 4352 * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg 4353 unless it has been used. 4354 (first_reg_to_save): Remove dead code. 4355 43562019-01-02 Segher Boessenkool <segher@kernel.crashing.org> 4357 4358 Backport from trunk 4359 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 4360 4361 PR inline-asm/55681 4362 * doc/extend.texi (Basic Asm): Update grammar. 4363 (Extended Asm): Update grammar. 4364 4365 Backport from trunk 4366 2018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 4367 4368 * doc/extend.texi (Using Assembly Language with C): Document asm inline. 4369 (Size of an asm): Fix typo. Document asm inline. 4370 * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline. 4371 * gimple.h (enum gf_mask): Add GF_ASM_INLINE. 4372 (gimple_asm_set_volatile): Fix typo. 4373 (gimple_asm_inline_p): New. 4374 (gimple_asm_set_inline): New. 4375 * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from 4376 tree to gimple. 4377 * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the 4378 gimple_asm_inline_p flag, too. 4379 * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P 4380 in an ASM_EXPR. 4381 * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return 4382 a minimum size for an asm. 4383 * tree.h (ASM_INLINE_P): New. 4384 43852018-12-28 Thomas Schwinge <thomas@codesourcery.com> 4386 Julian Brown <julian@codesourcery.com> 4387 4388 * gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug. 4389 43902018-12-27 Martin Liska <mliska@suse.cz> 4391 4392 Backport from mainline 4393 2018-12-15 Jan Hubicka <hubicka@ucw.cz> 4394 4395 PR ipa/88561 4396 * ipa-polymorphic-call.c 4397 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle 4398 arguments of thunks correctly. 4399 (ipa_polymorphic_call_context::get_dynamic_context): Be ready for 4400 NULL instance pinter. 4401 * lto-cgraph.c (lto_output_node): Always stream thunk info. 4402 44032018-12-23 Iain Sandoe <iain@sandoe.co.uk> 4404 4405 backport from mainline. 4406 2018-12-12 Segher Boessenkool <segher@kernel.crashing.org> 4407 Iain Sandoe <iain@sandoe.co.uk> 4408 4409 PR target/88343 4410 * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg 4411 unless it has been used. 4412 (first_reg_to_save): Remove dead code. 4413 44142018-12-23 Iain Sandoe <iain@sandoe.co.uk> 4415 4416 Backport from mainline 4417 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> 4418 4419 PR c++/87380 4420 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the 4421 default. 4422 * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New. 4423 44242018-12-23 Iain Sandoe <iain@sandoe.co.uk> 4425 4426 Backport from mainline 4427 2018-12-06 Iain Sandoe <iain@sandoe.co.uk> 4428 4429 PR target/78444 4430 * config/i386/darwin.h (STACK_BOUNDARY): Remove macro. 4431 * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b 4432 stack alignment in non-leaf functions. 4433 44342018-12-21 Uros Bizjak <ubizjak@gmail.com> 4435 4436 Backport from mainline 4437 2018-12-10 Uros Bizjak <ubizjak@gmail.com> 4438 4439 PR target/88418 4440 * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, 4441 check operand 1 with vector_operand predicate. 4442 (ix86_expand_sse_movcc): For vector modes, check op_true with 4443 vector_operand, not nonimmediate_operand. 4444 44452018-12-19 Bill Schmidt <wschmidt@linux.ibm.com> 4446 4447 Backport from mainline 4448 2018-12-18 Bill Schmidt <wschmidt@linux.ibm.com> 4449 4450 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): 4451 Describe when a typedef name can be used as the type specifier for 4452 a vector type, and when it cannot. 4453 44542018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 4455 4456 Backport from trunk 4457 2018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 4458 4459 PR target/88213 4460 * config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load): 4461 Require TARGET_POWERPC64. 4462 44632018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com> 4464 4465 Backport from trunk 4466 2018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com> 4467 4468 PR rtl-optimization/88253 4469 * combine.c (combine_simplify_rtx): Test for side-effects before 4470 substituting by zero. 4471 44722018-12-15 Segher Boessenkool <segher@kernel.crashing.org> 4473 4474 Backport from trunk 4475 2018-12-14 Segher Boessenkool <segher@kernel.crashing.org> 4476 4477 PR rtl-optimization/88001 4478 * function.c (match_asm_constraints_1): Don't invalidly share RTL. 4479 44802018-12-15 Jan Hubicka <jh@suse.cz> 4481 4482 * ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET 4483 parameters. 4484 (cgraph_build_static_cdtor): Update. 4485 (build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor 4486 callsed. 4487 44882018-12-15 Jan Hubicka <jh@suse.cz> 4489 4490 Backport from mainline 4491 2018-11-02 Richard Biener <rguenther@suse.de> 4492 4493 * dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call 4494 with is_type_die. 4495 44962018-12-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4497 4498 Backport from mainline 4499 2018-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 4500 4501 * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 4502 behavior. 4503 45042018-12-14 Andre Vieira <andre.simoesdiasvieira@arm.com> 4505 4506 Backport from mainline 4507 PR target/88224 4508 * config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations. 4509 (cortex-r7, cortex-r8): Update fpu and add new configuration. 4510 * doc/invoke.texi (armv7-r): Add two new vfp options. 4511 (nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that 4512 support this option. 4513 45142018-12-13 H.J. Lu <hongjiu.lu@intel.com> 4515 4516 Backport from mainline 4517 2018-11-05 Xuepeng Guo <xuepeng.guo@intel.com> 4518 4519 PR target/87853 4520 * config/i386/emmintrin.h (__v16qs): New to cope with option 4521 -funsigned-char. 4522 (_mm_cmpeq_epi8): Replace __v16qi with __v16qs. 4523 (_mm_cmplt_epi8): Likewise. 4524 (_mm_cmpgt_epi8): Likewise. 4525 45262018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 4527 4528 Backport from mainline 4529 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 4530 4531 * config/s390/s390-builtins.def (s390_vec_double_s64): Map to 4532 s390_vec_double_s64 instead of s390_vcdgb. 4533 (s390_vec_double_u64): Map to s390_vec_double_u64 instead of 4534 s390_vcdlgb. 4535 45362018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 4537 4538 Backport from mainline 4539 2018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 4540 4541 * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") 4542 ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. 4543 ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. 4544 45452018-12-13 Eric Botcazou <ebotcazou@adacore.com> 4546 4547 Backport from mainline 4548 2018-12-11 Eric Botcazou <ebotcazou@adacore.com> 4549 4550 * config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, 4551 accounting for STACK_BOUNDARY 128. 4552 (STACK_DYNAMIC_OFFSET): Likewise. 4553 45542018-12-12 Peter Bergner <bergner@linux.ibm.com> 4555 4556 Backport from mainline 4557 2018-12-07 Peter Bergner <bergner@linux.ibm.com> 4558 4559 PR target/87496 4560 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow 4561 -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. 4562 Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. 4563 * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble 4564 require -mlong-double-128. 4565 45662018-12-05 Richard Biener <rguenther@suse.de> 4567 4568 Backport from mainline 4569 2018-09-20 Richard Sandiford <richard.sandiford@arm.com> 4570 4571 PR tree-optimization/87288 4572 * tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS 4573 into account when determining PEELING_FOR_NITERS. 4574 45752018-12-05 Iain Sandoe <iain@sandoe.co.uk> 4576 4577 Backport from mainline 4578 2018-08-18 Iain Sandoe <iain@sandoe.co.uk> 4579 4580 * config/darwin.c (darwin_override_options): If -gsplit-dwarf is set, 4581 emit a diagnostic that it is not supported and reset the option. 4582 * config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not 4583 supported and consume the option. (ASM_FINAL_SPEC): New. 4584 45852018-12-04 Iain Sandoe <iain@sandoe.co.uk> 4586 4587 Backport from mainline 4588 2018-08-15 Iain Sandoe <iain@sandoe.co.uk> 4589 4590 PR target/81685 4591 * config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION, 4592 DEBUG_RNGLISTS_SECTION) new macros. (DEBUG_PUBNAMES_SECTION, 4593 DEBUG_PUBTYPES_SECTION) update to include GNU variant. 4594 45952018-11-29 Peter Bergner <bergner@linux.ibm.com> 4596 4597 Backport from mainline 4598 2018-11-29 Peter Bergner <bergner@linux.ibm.com> 4599 4600 PR target/87496 4601 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow 4602 -mabi=ieeelongdouble without both -mpopcntd and -mvsx. 4603 46042018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> 4605 4606 Backport from mainline 4607 2018-10-25 Aaron Sawdey <acsawdey@linux.ibm.com> 4608 4609 * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to 4610 a shorter sequence with fewer branches. 4611 (emit_final_str_compare_gpr): Ditto. 4612 4613 Backport from mainline to allow the above code to go in: 4614 2018-06-14 Aaron Sawdey <acsawdey@linux.ibm.com> 4615 4616 * config/rs6000/rs6000-string.c (do_and3, do_and3_mask, 4617 do_cmpb3, do_rotl3): New functions. 4618 46192018-11-28 Richard Biener <rguenther@suse.de> 4620 4621 PR tree-optimization/79351 4622 * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from 4623 empty CONSTRUCTORs ensure the store is at a constant position. 4624 46252018-11-28 Richard Biener <rguenther@suse.de> 4626 4627 PR tree-optimization/88229 4628 * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT 4629 is an INTEGER_CST before accessing it so. 4630 46312018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> 4632 4633 Backport from mainline 4634 2018-11-20 Andreas Krebbel <krebbel@linux.ibm.com> 4635 4636 * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the 4637 DImode parts of the target operand. 4638 46392018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> 4640 4641 Backport from mainline 4642 2018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> 4643 4644 * doc/invoke.texi: Document z14/arch12 -march option. 4645 46462018-11-23 Tamar Christina <tamar.christina@arm.com> 4647 4648 Backported from mainline. 4649 2018-08-16 Tamar Christina <tamar.christina@arm.com> 4650 4651 PR target/84711 4652 * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. 4653 (mov<mov>): ..this and enable unconditionally. 4654 46552018-11-22 Uros Bizjak <ubizjak@gmail.com> 4656 4657 Backport from mainline 4658 2018-11-16 Uros Bizjak <ubizjak@gmail.com> 4659 4660 PR target/88051 4661 * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. 4662 (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. 4663 46642018-11-20 Eric Botcazou <ebotcazou@adacore.com> 4665 4666 PR rtl-optimization/85925 4667 * rtl.h (word_register_operation_p): New predicate. 4668 * combine.c (record_dead_and_set_regs_1): Only apply specific handling 4669 for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX. 4670 * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments. 4671 (num_sign_bit_copies1): Likewise. 4672 46732018-11-19 Martin Liska <mliska@suse.cz> 4674 4675 PR gcov-profile/88045 4676 * coverage.c (coverage_begin_function): One can't relly on the 4677 fact that function ends on the same line it starts or later. 4678 46792018-11-18 Uros Bizjak <ubizjak@gmail.com> 4680 4681 Backport from mainline 4682 2018-11-11 Uros Bizjak <ubizjak@gmail.com> 4683 4684 PR target/87928 4685 * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI 4686 instead of (TARGET_64BIT && ix86_abi == MS_ABI). 4687 * config/i386/darwin.h (STACK_BOUNDARY): Ditto. 4688 * config/i386/cygming.h (STACK_BOUNDARY): Remove. 4689 46902018-11-16 Eric Botcazou <ebotcazou@adacore.com> 4691 4692 * tree-switch-conversion.c (emit_case_decision_tree): Pass location 4693 of switch statement to emit_case_nodes. 4694 (do_jump_if_equal): Add LOC parameter and set it on the newly built 4695 GIMPLE comparison statement. 4696 (emit_cmp_and_jump_insns): Likewise. 4697 (emit_case_nodes): Add LOC parameter and pass it to do_jump_if_equal 4698 as well as recursive calls. 4699 47002018-11-15 Nathan Sidwell <nathan@acm.org> 4701 4702 PR debug/88006 4703 PR debug/87462 4704 * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat 4705 type list. 4706 47072018-11-14 Paul A. Clarke <pc@us.ibm.com> 4708 4709 Backport from mainline 4710 * config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian. 4711 47122018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 4713 4714 Backport from mainline 4715 PR target/85968 4716 * config/arc/arc.c (arc_return_address_register): Fix 4717 if-condition. 4718 47192018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 4720 4721 Backport from mainline 4722 * config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty. 4723 * config/arc/elf.h (PROFILE_HOOK): Define. 4724 * config/arc/linux.h (PROFILE_HOOK): Likewise. 4725 47262018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 4727 4728 Backport from mainline 4729 * config/arc/arc.c (hwloop_optimize): Bailout when detecting a 4730 jump table data in the text section. 4731 47322018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 4733 4734 Backport from mainline 4735 * config/arc/arc.c (arc_eh_return_address_location): Repurpose it 4736 to fit the eh_return pattern. 4737 * config/arc/arc.md (eh_return): Define. 4738 (VUNSPEC_ARC_EH_RETURN): Likewise. 4739 * config/arc/arc-protos.h (arc_eh_return_address_location): Match 4740 new implementation. 4741 * config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it. 4742 47432018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 4744 4745 Backport from mainline 4746 2018-09-17 Alexey Brodkin <abrodkin@synopsys.com> 4747 4748 * config/arc/linux.h (LINK_EH_SPEC): Add missing space. 4749 47502018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 4751 4752 Backport from mainline 4753 * config/arc/linux.h (CLEAR_INSN_CACHE): Define. 4754 47552018-11-11 Uros Bizjak <ubizjak@gmail.com> 4756 4757 Backport from mainline 4758 2018-11-04 Uros Bizjak <ubizjak@gmail.com> 4759 4760 PR middle-end/58372 4761 * cfgexpand.c (pass_expand::execute): Move the call to 4762 finish_eh_generation in front of the call to expand_stack_alignment. 4763 47642018-11-07 Max Filippov <jcmvbkbc@gmail.com> 4765 4766 Backport from mainline 4767 2018-11-05 Max Filippov <jcmvbkbc@gmail.com> 4768 4769 * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0. 4770 47712018-11-05 Jakub Jelinek <jakub@redhat.com> 4772 4773 PR tree-optimization/87859 4774 * gimple-ssa-store-merging.c (struct merged_store_group): Add 4775 first_nonmergeable_order member. 4776 (merged_store_group::merged_store_group): Initialize them. 4777 (imm_store_chain_info::coalesce_immediate_stores): Don't merge 4778 stores with order >= first_nonmergeable_order. 4779 Set merged_store->first_nonmergeable_order if we've skipped any 4780 stores. Attempt to merge overlapping INTEGER_CST stores that 4781 we would otherwise skip. 4782 4783 PR sanitizer/87837 4784 * match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED. 4785 4786 Backported from mainline 4787 2018-10-20 Jakub Jelinek <jakub@redhat.com> 4788 4789 PR middle-end/87647 4790 * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR. 4791 4792 2018-10-19 Jakub Jelinek <jakub@redhat.com> 4793 4794 PR middle-end/85488 4795 PR middle-end/87649 4796 * omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without 4797 depend closely nested inside of loop with ordered clause with 4798 a parameter. 4799 48002018-10-29 Richard Biener <rguenther@suse.de> 4801 4802 Backport from mainline 4803 2018-09-26 Richard Biener <rguenther@suse.de> 4804 4805 PR debug/87428 4806 PR debug/87362 4807 * tree-inline.c (expand_call_inline): When the location 4808 of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION 4809 or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of 4810 the inserted BLOCK to make inlined_function_outer_scope_p 4811 recognize it. 4812 * dwarf2out.c (add_call_src_coords_attributes): Do not add 4813 coords for reserved locations. 4814 48152018-10-28 Iain Sandoe <iain@sandoe.co.uk> 4816 4817 Backport from mainline 4818 2018-08-22 Iain Sandoe <iain@sandoe.co.uk> 4819 4820 PR bootstrap/81033 4821 PR target/81733 4822 PR target/52795 4823 * gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New. 4824 (dwarf2out_switch_text_section): Generate a local label for the second 4825 function sub-section and apply it as the second FDE start label. 4826 * gcc/final.c (final_scan_insn_1): Emit second FDE label after the 4827 second sub-section start. 4828 48292018-10-28 Iain Sandoe <iain@sandoe.co.uk> 4830 4831 Backport from mainline 4832 2018-08-15 Iain Sandoe <iain@sandoe.co.uk> 4833 4834 * config/darwin.c 4835 (darwin_function_switched_text_sections): Delete. 4836 * gcc/config/darwin.h 4837 (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise. 4838 48392018-10-28 Iain Sandoe <iain@sandoe.co.uk> 4840 4841 backport from mainline. 4842 2018-10-28 Iain Sandoe <iain@sandoe.co.uk> 4843 4844 PR target/85669 4845 * config/rs6000/darwin.h (STACK_BOUNDARY): New. 4846 (RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment. 4847 (STACK_DYNAMIC_OFFSET): Likewise. 4848 48492018-10-26 Bill Schmidt <wschmidt@linux.ibm.com> 4850 4851 Backport from mainline 4852 2018-10-19 Bill Schmidt <wschmidt@linux.ibm.com> 4853 4854 PR tree-optimization/87473 4855 * gimple-ssa-strength-reduction.c (record_phi_increments_1): For 4856 phi arguments identical to the base expression of the phi 4857 candidate, record a phi-adjust increment of zero minus the index 4858 expression of the hidden basis. 4859 (phi_incr_cost_1): For phi arguments identical to the base 4860 expression of the phi candidate, the difference to compare against 4861 the increment is zero minus the index expression of the hidden 4862 basis, and there is no potential savings from replacing the (phi) 4863 statement. 4864 (ncd_with_phi): For phi arguments identical to the base expression 4865 of the phi candidate, the difference to compare against the 4866 increment is zero minus the index expression of the hidden basis. 4867 (all_phi_incrs_profitable_1): For phi arguments identical to the 4868 base expression of the phi candidate, the increment to be checked 4869 for profitability is zero minus the index expression of the hidden 4870 basis. 4871 48722018-10-25 Richard Biener <rguenther@suse.de> 4873 4874 PR tree-optimization/87665 4875 PR tree-optimization/87745 4876 * tree-vectorizer.h (get_earlier_stmt): Remove. 4877 (get_later_stmt): Pick up UID from the original non-pattern stmt. 4878 48792018-10-24 Richard Biener <rguenther@suse.de> 4880 4881 PR tree-optimization/87665 4882 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust 4883 to reflect reality. 4884 48852018-10-23 Richard Biener <rguenther@suse.de> 4886 4887 PR tree-optimization/87700 4888 * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. 4889 48902018-10-19 Richard Biener <rguenther@suse.de> 4891 4892 PR middle-end/87645 4893 Backport from mainline 4894 2018-07-12 Richard Biener <rguenther@suse.de> 4895 4896 * tree-ssa-sccvn.c (mprts_hook_cnt): Remove. 4897 (vn_lookup_simplify_result): Remove recursion limit applied 4898 here. 4899 (vn_nary_build_or_lookup_1): Adjust. 4900 (try_to_simplify): Likewise. 4901 * gimple-match-head.c (gimple_resimplify1): Instead apply one 4902 here. 4903 (gimple_resimplify2): Likewise. 4904 (gimple_resimplify3): Likewise. 4905 (gimple_resimplify4): Likewise. 4906 49072018-10-19 Andreas Krebbel <krebbel@linux.ibm.com> 4908 4909 Backport from mainline 4910 2018-10-15 Andreas Krebbel <krebbel@linux.ibm.com> 4911 4912 * config/s390/s390.c (s390_expand_vec_init): Force vector element 4913 into reg if it isn't a general operand. 4914 49152018-10-18 Richard Biener <rguenther@suse.de> 4916 4917 PR middle-end/87087 4918 Revert 4919 2018-02-07 Richard Biener <rguenther@suse.de> 4920 4921 PR tree-optimization/84204 4922 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in 4923 this place. 4924 49252018-10-17 Eric Botcazou <ebotcazou@adacore.com> 4926 4927 PR middle-end/87623 4928 * fold-const.c (fold_truth_andor_1): If the right side is not constant, 4929 bail out if both sides do not have the same storage order. 4930 49312018-10-17 Richard Biener <rguenther@suse.de> 4932 4933 Backport from mainline 4934 2018-10-08 Richard Sandiford <richard.sandiford@arm.com> 4935 4936 PR middle-end/63155 4937 * gimple-ssa-backprop.c (backprop::intersect_uses): Use 4938 FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. 4939 49402018-10-16 Richard Biener <rguenther@suse.de> 4941 4942 Backport from mainline 4943 2018-10-08 Richard Biener <rguenther@suse.de> 4944 4945 PR tree-optimization/63155 4946 * tree-ssa-propagate.c (add_ssa_edge): Do cheap check first. 4947 (ssa_propagation_engine::ssa_propagate): Remove redundant 4948 bitmap bit clearing. 4949 4950 2018-10-05 Richard Biener <rguenther@suse.de> 4951 4952 PR tree-optimization/63155 4953 * tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess 4954 vertical space in dumpfiles. 4955 * tree-ssa-propagate.h 4956 (ssa_propagation_engine::process_ssa_edge_worklist): Remove. 4957 * tree-ssa-propagate.c (cfg_blocks_back): New global. 4958 (ssa_edge_worklist_back): Likewise. 4959 (curr_order): Likewise. 4960 (cfg_blocks_get): Remove abstraction. 4961 (cfg_blocks_add): Likewise. 4962 (cfg_blocks_empty_p): Likewise. 4963 (add_ssa_edge): Add to current or next worklist based on 4964 RPO index. 4965 (add_control_edge): Likewise. 4966 (ssa_propagation_engine::process_ssa_edge_worklist): Fold 4967 into ... 4968 (ssa_propagation_engine::ssa_propagate): ... here. Unify 4969 iteration from CFG and SSA edge worklist so we process 4970 everything in RPO order, prioritizing forward progress 4971 over iteration. 4972 (ssa_prop_init): Allocate new worklists, do not dump 4973 immediate uses. 4974 (ssa_prop_fini): Free new worklists. 4975 4976 2018-09-24 Richard Biener <rguenther@suse.de> 4977 4978 PR tree-optimization/63155 4979 * tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to 4980 the worklist when the edge of the respective argument isn't 4981 executable. 4982 49832018-10-16 Wilco Dijkstra <wdijkstr@arm.com> 4984 4985 Backported from mainline 4986 PR target/87511 4987 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): 4988 Use HOST_WIDE_INT_1U for shift. 4989 49902018-10-16 Richard Biener <rguenther@suse.de> 4991 4992 Backport from mainline 4993 2018-09-18 Richard Biener <rguenther@suse.de> 4994 4995 PR middle-end/63155 4996 * tree-ssa-coalesce.c (tree_int_map_hasher): Remove. 4997 (compute_samebase_partition_bases): Likewise. 4998 (coalesce_ssa_name): Always use compute_optimized_partition_bases. 4999 (gimple_can_coalesce_p): Simplify. 5000 50012018-10-16 Richard Biener <rguenther@suse.de> 5002 5003 Backport from mainline 5004 2018-10-15 Richard Biener <rguenther@suse.de> 5005 5006 PR middle-end/87610 5007 * tree-ssa-structalias.c (struct vls_data): Add escaped_p member. 5008 (visit_loadstore): When a used restrict tag escaped verify that 5009 the points-to solution of "other" pointers do not include 5010 escaped. 5011 (compute_dependence_clique): If a used restrict tag escaped 5012 communicated that down to visit_loadstore. 5013 5014 2018-10-01 Richard Biener <rguenther@suse.de> 5015 5016 PR tree-optimization/87465 5017 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo 5018 causing branch miscounts. 5019 50202018-10-11 Jakub Jelinek <jakub@redhat.com> 5021 5022 Backported from mainline 5023 2018-10-10 Jakub Jelinek <jakub@redhat.com> 5024 5025 PR target/87550 5026 * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set 5027 to special_args set. 5028 5029 2018-09-26 Jakub Jelinek <jakub@redhat.com> 5030 5031 PR target/87414 5032 * config/i386/i386.c: Include debug.h and dwarf2out.h. 5033 (output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the 5034 call. 5035 5036 2018-09-12 Jakub Jelinek <jakub@redhat.com> 5037 Andreas Krebbel <krebbel@linux.ibm.com> 5038 5039 PR tree-optimization/86844 5040 * gimple-ssa-store-merging.c 5041 (imm_store_chain_info::coalesce_immediate): For overlapping stores, if 5042 there are any overlapping stores in between them, make sure they are 5043 also coalesced or we give up completely. 5044 50452018-10-09 Will Schmidt <will_schmidt@vnet.ibm.com> 5046 5047 Backport from trunk. 5048 2018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> 5049 5050 PR target/86731 5051 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic 5052 around folding of vec_sl to handle out of range shift values. 5053 50542018-10-09 H.J. Lu <hongjiu.lu@intel.com> 5055 5056 Backport from mainline 5057 2018-09-29 H.J. Lu <hongjiu.lu@intel.com> 5058 5059 PR target/87370 5060 * config/i386/i386.c (construct_container): Use TImode for 5061 BLKmode values in 2 integer registers. 5062 50632018-10-08 H.J. Lu <hongjiu.lu@intel.com> 5064 5065 Backport from mainline 5066 2018-10-08 H.J. Lu <hongjiu.lu@intel.com> 5067 5068 PR target/87517 5069 * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd): 5070 Defined with __builtin_ia32_vfmaddsubpd512_mask. 5071 50722018-10-05 H.J. Lu <hongjiu.lu@intel.com> 5073 5074 Backport from mainline 5075 2018-10-05 H.J. Lu <hongjiu.lu@intel.com> 5076 5077 PR target/87522 5078 * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to 5079 assembler for -mavx. 5080 * config/i386/gnu-user64.h (ASM_SPEC): Likewise. 5081 50822018-10-03 Uros Bizjak <ubizjak@gmail.com> 5083 5084 Backport from mainline 5085 2018-09-28 Uros Bizjak <ubizjak@gmail.com> 5086 5087 * config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG. 5088 (GET_SSE_REGNO): Rename from SSE_REGNO. Update all uses for rename. 5089 50902018-10-03 Jonathan Wakely <jwakely@redhat.com> 5091 5092 PR other/87353 5093 * doc/invoke.texi (Link Options): Fix formatting and grammar. 5094 50952018-10-03 Martin Liska <mliska@suse.cz> 5096 5097 Backport from mainline 5098 2018-10-03 Martin Liska <mliska@suse.cz> 5099 5100 PR gcov-profile/86109 5101 * coverage.c (coverage_begin_function): Do not 5102 mark lambdas as artificial. 5103 * tree-core.h (struct GTY): Remove tm_clone_flag 5104 and introduce new lambda_function. 5105 * tree.h (DECL_LAMBDA_FUNCTION): New macro. 5106 51072018-10-02 H.J. Lu <hongjiu.lu@intel.com> 5108 5109 Backport from mainline 5110 2018-09-24 H.J. Lu <hongjiu.lu@intel.com> 5111 5112 PR target/82699 5113 * config/i386/i386.c (rest_of_insert_endbranch): Set 5114 endbr_queued_at_entrance to true and don't insert ENDBR if 5115 x86_function_profiler will be called. 5116 (x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance 5117 is true. 5118 * config/i386/i386.h (machine_function): Add 5119 endbr_queued_at_entrance. 5120 51212018-10-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 5122 5123 Backport from mainline 5124 2018-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 5125 5126 * config/arm/arm.c (output_move_double): Don't allow STRD instructions 5127 if starting source register is not even. 5128 51292018-09-29 Jakub Jelinek <jakub@redhat.com> 5130 5131 PR target/87467 5132 * config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use 5133 __m512d type for __A argument rather than __m512. 5134 51352018-09-27 Michael Meissner <meissner@linux.ibm.com> 5136 5137 Backport from mainline 5138 2018-08-20 Michael Meissner <meissner@linux.ibm.com> 5139 5140 PR target/87033 5141 * config/rs6000/rs6000.md (extendsi<mode>2): Change constraints 5142 from 'Y' to 'YZ' to enable the LWAX instruction to be generated 5143 for indexed loads. 5144 51452018-09-25 Martin Liska <mliska@suse.cz> 5146 5147 Backport from mainline 5148 2018-09-24 Martin Liska <mliska@suse.cz> 5149 5150 PR sanitizer/85774 5151 * asan.c: Make asan_handled_variables extern. 5152 * asan.h: Likewise. 5153 * cfgexpand.c (expand_stack_vars): Make sure 5154 a representative is unpoison if another 5155 variable in the partition is handled by 5156 use-after-scope sanitization. 5157 51582018-09-24 Andrew Pinski <apinski@marvell.com> 5159 5160 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't 5161 access prev before checking it for NULLness in the 5162 AARCH64_FUSE_CMP_BRANCH case. 5163 51642018-09-21 Eric Botcazou <ebotcazou@adacore.com> 5165 5166 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false 5167 if the call takes a static chain. 5168 51692018-09-19 John David Anglin <danglin@gcc.gnu.org> 5170 5171 * config/pa/pa.md (atomic_storeqi): Restore deleted expander. 5172 (atomic_storehi): Likewise. 5173 (atomic_storesi): Likewise. 5174 (atomic_loaddi): Restore compare and swap exchange loop code. 5175 51762018-09-18 Segher Boessenkool <segher@kernel.crashing.org> 5177 5178 Backport from trunk 5179 2018-09-18 Segher Boessenkool <segher@kernel.crashing.org> 5180 5181 PR rtl-optimization/86882 5182 * rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER. 5183 51842018-09-18 Martin Liska <mliska@suse.cz> 5185 5186 Backport from mainline 5187 2018-09-17 Martin Liska <mliska@suse.cz> 5188 5189 PR gcov-profile/85871 5190 * gcov.c (output_intermediate_file): Fix out of bounds 5191 access. 5192 51932018-09-16 Hans-Peter Nilsson <hp@bitrange.com> 5194 5195 PR target/85666 5196 * config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size 5197 non-CONST_INT rtx:es using assemble_integer_with_op ".byte". 5198 (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call 5199 leaf_function_p, instead use has_hard_reg_initial_val. 5200 52012018-09-14 John David Anglin <danglin@gcc.gnu.org> 5202 5203 PR middle-end/87188 5204 * dojump.c (do_compare_and_jump): Canonicalize function pointers 5205 when one operand is a function pointer. Use POINTER_TYPE_P and 5206 FUNC_OR_METHOD_TYPE_P. 5207 * expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P. 5208 * fold-const.c (build_range_check): Likewise. 5209 * match.pd (simple_comparison): Likewise. 5210 52112018-09-14 Segher Boessenkool <segher@kernel.crashing.org> 5212 5213 Backport from trunk 5214 2018-09-14 Segher Boessenkool <segher@kernel.crashing.org> 5215 5216 PR target/87224 5217 * config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y 5218 alternatives. 5219 52202018-09-14 Carl Love <cel@us.ibm.com> 5221 5222 Backport from trunk 5223 2018-09-14 Carl Love <cel@us.ibm.com> 5224 5225 * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. 5226 * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. 5227 52282018-09-12 Segher Boessenkool <segher@kernel.crashing.org> 5229 5230 Backport from trunk 5231 2018-08-24 Segher Boessenkool <segher@kernel.crashing.org> 5232 5233 PR target/86989 5234 * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is 5235 the TOC register. 5236 52372018-09-12 Segher Boessenkool <segher@kernel.crashing.org> 5238 5239 Backport from trunk 5240 2018-08-22 Segher Boessenkool <segher@kernel.crashing.org> 5241 5242 PR rtl-optimization/86771 5243 * combine.c (try_combine): Do not allow splitting a resulting PARALLEL 5244 of two SETs into those two SETs, one to be placed at i2, if that SETs 5245 destination is modified between i2 and i3. 5246 52472018-09-12 Andreas Krebbel <krebbel@linux.ibm.com> 5248 5249 Backport from mainline 5250 2018-09-12 Andreas Krebbel <krebbel@linux.ibm.com> 5251 5252 * config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New 5253 constants. 5254 ("trunc<BFP:mode><DFP_ALL:mode>2") 5255 ("trunc<DFP_ALL:mode><BFP:mode>2") 5256 ("extend<BFP:mode><DFP_ALL:mode>2") 5257 ("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode 5258 according to the target operand type. 5259 52602018-09-12 Jakub Jelinek <jakub@redhat.com> 5261 5262 PR middle-end/87248 5263 * fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that 5264 BIT_AND_EXPR's second operand is a power of two. Formatting fix. 5265 52662018-09-05 Nathan Sidwell <nathan@acm.org> 5267 5268 PR c++/87137 5269 * stor-layout.c (place_field): Scan forwards to check last 5270 bitfield when ms_bitfield_placement is in effect. 5271 52722018-09-05 Richard Biener <rguenther@suse.de> 5273 5274 PR bootstrap/87225 5275 * tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus 5276 return. 5277 52782018-09-05 Jakub Jelinek <jakub@redhat.com> 5279 5280 Backported from mainline 5281 2018-09-04 Jakub Jelinek <jakub@redhat.com> 5282 5283 PR target/87198 5284 * common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET, 5285 OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use 5286 OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE. 5287 (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET 5288 and OPTION_MASK_ISA_XSAVEC_UNSET. 5289 5290 2018-08-31 Jakub Jelinek <jakub@redhat.com> 5291 5292 PR middle-end/87138 5293 * expmed.c (expand_mult_const): Use immed_wide_int_const instead of 5294 gen_int_mode. Formatting fixes. 5295 5296 2018-08-11 Jakub Jelinek <jakub@redhat.com> 5297 5298 PR tree-optimization/86835 5299 * tree-ssa-math-opts.c (insert_reciprocals): Even when inserting 5300 new_stmt after def_gsi, make sure to insert new_square_stmt after 5301 that stmt, not 2 stmts before it. 5302 53032018-09-04 Max Filippov <jcmvbkbc@gmail.com> 5304 5305 Backport from mainline 5306 2018-09-04 Max Filippov <jcmvbkbc@gmail.com> 5307 5308 * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and 5309 XOR operations in NAND case. 5310 53112018-09-04 Jonathan Wakely <jwakely@redhat.com> 5312 5313 * doc/invoke.texi (Option Summary): Add -Waligned-new. 5314 53152018-09-03 Tom de Vries <tdevries@suse.de> 5316 5317 backport from trunk: 5318 2018-06-21 Tom de Vries <tdevries@suse.de> 5319 5320 PR tree-optimization/85859 5321 * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call 5322 test with comment from bb_no_side_effects_p. 5323 53242018-09-01 Michael Matz <matz@suse.de> 5325 5326 Backport from mainline 5327 PR tree-optimization/87074 5328 * gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit 5329 PHIs for outer-loop uses. 5330 53312018-08-31 Richard Biener <rguenther@suse.de> 5332 5333 Backport from mainline 5334 2018-08-27 Richard Biener <rguenther@suse.de> 5335 5336 PR tree-optimization/86927 5337 * tree-vect-loop.c (vect_create_epilog_for_reduction): Properly 5338 use const cond reduction code. 5339 5340 2018-08-23 Richard Biener <rguenther@suse.de> 5341 5342 PR middle-end/87024 5343 * tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len 5344 calls. 5345 5346 2018-08-22 Richard Biener <rguenther@suse.de> 5347 5348 PR tree-optimization/86945 5349 * tree-cfg.c (generate_range_test): Use unsigned arithmetic. 5350 5351 2018-08-17 Richard Biener <rguenther@suse.de> 5352 5353 PR middle-end/86505 5354 * tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len () 5355 across a va-arg-pack using call adjust its return value accordingly. 5356 5357 2018-08-02 Richard Biener <rguenther@suse.de> 5358 5359 PR tree-optimization/86816 5360 * tree-ssa-tail-merge.c (tail_merge_valueize): New function 5361 which checks for value availability before querying it. 5362 (gvn_uses_equal): Use it. 5363 (same_succ_hash): Likewise. 5364 (gimple_equal_p): Likewise. 5365 5366 2018-07-17 Richard Biener <rguenther@suse.de> 5367 5368 PR lto/86456 5369 * dwarf2out.c (init_sections_and_labels): Always generate 5370 a debug_line_str_section for early LTO debug. 5371 (dwarf2out_finish): Reset debug_line_str_hash output early. 5372 Bump counter for extra dwarf5 .debug_loc labels to not conflict 5373 with fat LTO part. 5374 (dwarf2out_early_finish): Output debug_line_str. 5375 53762018-08-29 Luis Machado <luis.machado@linaro.org> 5377 5378 * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static global. 5379 (qdf24xx_tunings): Set vector cost structure to qdf24xx_vector_cost. 5380 53812018-08-29 Luis Machado <luis.machado@linaro.org> 5382 5383 * config/aarch64/aarch64.c (qdf24xx_addrcost_table) 5384 <register_sextend>: Set to 3. 5385 53862018-08-27 Martin Sebor <msebor@redhat.com> 5387 5388 PR tree-optimization/86914 5389 * tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF. 5390 53912018-08-28 Jakub Jelinek <jakub@redhat.com> 5392 5393 PR middle-end/87099 5394 * calls.c (maybe_warn_nonstring_arg): Punt early if 5395 warn_stringop_overflow is zero. Don't call get_range_strlen 5396 on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST. 5397 Only use lenrng[1] if non-NULL and INTEGER_CST. Don't uselessly 5398 increment lenrng[0]. 5399 54002018-08-27 Jakub Jelinek <jakub@redhat.com> 5401 5402 PR rtl-optimization/87065 5403 * combine.c (simplify_if_then_else): Formatting fix. 5404 (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P 5405 check. 5406 (known_cond): Don't return const_true_rtx for vector modes. Use 5407 CONST0_RTX instead of const0_rtx. Formatting fixes. 5408 54092018-08-25 Jozef Lawrynowicz <jozef.l@mittosystems.com> 5410 5411 Backport from mainline 5412 PR target/86662 5413 * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array 5414 with all enabled __intN types. 5415 5416 * gcc/testsuite/gcc.target/msp430/pr86662.c: New test. 5417 54182018-08-21 H.J. Lu <hongjiu.lu@intel.com> 5419 5420 Backport from mainline 5421 2018-08-20 H.J. Lu <hongjiu.lu@intel.com> 5422 5423 PR target/87014 5424 * config/i386/i386.md (eh_return): Always update EH return 5425 address in word_mode. 5426 54272018-08-17 John David Anglin <danglin@gcc.gnu.org> 5428 5429 Backport from mainline 5430 2018-08-11 John David Anglin <danglin@gcc.gnu.org> 5431 5432 * config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum. 5433 Update comment for atomic instructions. 5434 (atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf, 5435 atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1): 5436 Remove. 5437 (atomic_loaddi): Revise fence expansion to only emit fence prior to 5438 load for __ATOMIC_SEQ_CST model. 5439 (atomic_loaddi_1): Remove float register target. 5440 (atomic_storedi): Handle CONST_INT values. 5441 (atomic_storedi_1): Remove float register source. Add special case 5442 for zero value. 5443 (memory_barrier): New expander and insn. 5444 54452018-08-16 Tamar Christina <tamar.christina@arm.com> 5446 5447 Backport from mainline 5448 2018-07-30 Segher Boessenkool <segher@kernel.crashing.org> 5449 5450 PR target/86640 5451 * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode 5452 instead of GEN_INT. 5453 54542018-08-16 Martin Liska <mliska@suse.cz> 5455 5456 Backport from mainline 5457 2018-08-02 Martin Liska <mliska@suse.cz> 5458 5459 PR gcov-profile/86817 5460 * gcov.c (process_all_functions): New function. 5461 (main): Call it. 5462 (process_file): Move functions processing to 5463 process_all_functions. 5464 54652018-08-14 Siddhesh Poyarekar <siddhesh@sourceware.org> 5466 5467 Backport from mainline 5468 2018-08-03 Siddhesh Poyarekar <siddhesh@sourceware.org> 5469 5470 * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move 5471 neon_dup_q to... 5472 (falkor_am_1_gtov_gtov): ... a new insn reservation. 5473 54742018-08-13 Liu Hao <lh_mouse@126.com> 5475 5476 Backport from mainline 5477 2018-08-13 Liu Hao <lh_mouse@126.com> 5478 5479 * pretty-print.c (eat_esc_sequence): Swap the foreground and 5480 background colors if the COMMON_LVB_REVERSE_VIDEO flag is set, 5481 and clear it thereafter, as it only works for DBCS. 5482 54832018-08-13 Liu Hao <lh_mouse@126.com> 5484 5485 Backport from mainline 5486 2018-08-13 Liu Hao <lh_mouse@126.com> 5487 5488 * pretty-print.c (mingw_ansi_fputs): Do not call _close() on the 5489 handle returned by _get_osf_handle(). 5490 54912018-08-14 Richard Sandiford <richard.sandiford@arm.com> 5492 5493 Backport from mainline 5494 2018-08-09 Richard Sandiford <richard.sandiford@arm.com> 5495 5496 PR tree-optimization/86871 5497 * tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs 5498 instead of gimple_assign_lhs. 5499 55002018-08-07 H.J. Lu <hongjiu.lu@intel.com> 5501 5502 Backport from mainline 5503 2018-08-05 H.J. Lu <hongjiu.lu@intel.com> 5504 5505 PR target/86386 5506 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Set 5507 cfun->machine->max_used_stack_alignment if needed. 5508 55092018-08-02 Jozef Lawrynowicz <jozef.l@mittosystems.com> 5510 5511 Backport from mainline 5512 2018-07-31 Jozef Lawrynowicz <jozef.l@mittosystems.com> 5513 5514 PR middle-end/86705 5515 * gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when 5516 MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the 5517 requested variable alignment. 5518 (expand_one_ssa_partition): Likewise. 5519 (expand_one_var): Likewise. 5520 55212018-08-02 Andreas Schwab <schwab@linux-m68k.org> 5522 5523 Backport from mainline 5524 2018-07-17 Andreas Schwab <schwab@linux-m68k.org> 5525 5526 PR target/86820 5527 * config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) 5528 (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. 5529 55302018-08-01 Richard Biener <rguenther@suse.de> 5531 5532 PR bootstrap/86724 5533 * graphite.h: Include isl/id.h and isl/space.h to allow build 5534 with ISL 0.20. 5535 55362018-08-01 Jan Willem Jagersma <jwjagersma@gmail.com> 5537 5538 PR target/86651 5539 * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO 5540 mode for COFF targets. 5541 * defaults.h (TARGET_COFF): Define. 5542 * config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END, 5543 TARGET_COFF): Define. 5544 (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare. 5545 * config/i386/djgpp.c (saved_debug_info_level): New static variable. 5546 (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions. 5547 55482018-07-29 Bernd Edlinger <bernd.edlinger@hotmail.de> 5549 5550 Backport from mainline 5551 2018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> 5552 5553 PR c/86617 5554 * genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values. 5555 55562018-07-29 John David Anglin <danglin@gcc.gnu.org> 5557 5558 * config/pa/pa.c (pa_output_addr_vec): Align address table. 5559 * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment. 5560 * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define. 5561 55622018-07-26 Uros Bizjak <ubizjak@gmail.com> 5563 5564 Backport from mainline 5565 2018-07-16 Uros Bizjak <ubizjak@gmail.com> 5566 5567 PR target/86511 5568 * expmed.c (emit_store_flag): Do not emit setcc followed by a 5569 conditional move when trapping comparison was split to a 5570 non-trapping one (and vice versa). 5571 55722018-07-26 Jakub Jelinek <jakub@redhat.com> 5573 5574 Backported from mainline 5575 2018-07-24 Jakub Jelinek <jakub@redhat.com> 5576 5577 PR middle-end/86627 5578 * expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN 5579 and size > HOST_BITS_PER_WIDE_INT. For size > HOST_BITS_PER_WIDE_INT 5580 and abs_d == d, do the power of two handling if profitable. 5581 5582 2018-07-17 Jakub Jelinek <jakub@redhat.com> 5583 5584 PR middle-end/86542 5585 * omp-low.c (create_task_copyfn): Copy over also fields corresponding 5586 to _looptemp_ clauses, other than the first two. 5587 5588 PR middle-end/86539 5589 * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init 5590 and cond temporaries don't have reference type if iterator has 5591 pointer type. For init use &for_pre_body instead of pre_p if 5592 for_pre_body is non-empty. 5593 55942018-07-26 Jakub Jelinek <jakub@redhat.com> 5595 5596 PR middle-end/86660 5597 * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for 5598 declare target to variables if they have always,{to,from,tofrom} map 5599 kinds. 5600 5601 * BASE-VER: Set to 8.2.1. 5602 56032018-07-26 Release Manager 5604 5605 * GCC 8.2.0 released. 5606 56072018-07-18 Martin Sebor <msebor@redhat.com> 5608 5609 PR middle-end/85602 5610 * calls.c (maybe_warn_nonstring_arg): Handle strncat. 5611 * tree-ssa-strlen.c (is_strlen_related_p): Make extern. 5612 Handle integer subtraction. 5613 (maybe_diag_stxncpy_trunc): Handle nonstring source arguments. 5614 * tree-ssa-strlen.h (is_strlen_related_p): Declare. 5615 * doc/invoke.texi (-Wstringop-truncation): Update. 5616 5617gcc/testsuite/ChangeLog: 5618 56192018-07-16 Claudiu Zissulescu <claziss@synopsys.com> 5620 5621 Backport from mainline 5622 2017-03-24 Claudiu Zissulescu <claziss@synopsys.com> 5623 5624 * config/arc/arc-protos.h (arc_pad_return): Remove. 5625 * config/arc/arc.c (machine_function): Remove force_short_suffix 5626 and size_reason. 5627 (arc_print_operand): Adjust printing of '&'. 5628 (arc_verify_short): Remove conditional printing of short suffix. 5629 (arc_final_prescan_insn): Remove reference to size_reason. 5630 (pad_return): New function. 5631 (arc_reorg): Call pad_return. 5632 (arc_pad_return): Remove. 5633 (arc_init_machine_status): Remove reference to force_short_suffix. 5634 * config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE. 5635 (attr length): When attribute iscompact is true force to 2 5636 regardless; in the case of maybe check if we want to force the 5637 instruction to have 4 bytes length. 5638 (nopv): Change it to generate 4 byte long nop as well. 5639 (blockage): New pattern. 5640 (simple_return): Remove call to arc_pad_return. 5641 (p_return_i): Likewise. 5642 56432018-07-19 Richard Biener <rguenther@suse.de> 5644 5645 Backport from mainline 5646 2018-07-13 Richard Biener <rguenther@suse.de> 5647 5648 PR debug/86452 5649 * dwarf2out.c (gen_type_die_with_usage): Use scope_die_for 5650 instead of get_context_die. 5651 5652 2018-07-11 Richard Biener <rguenther@suse.de> 5653 5654 PR debug/86457 5655 * dwarf2out.c (init_sections_and_labels): Use 5656 output_asm_line_debug_info consistently. 5657 (dwarf2out_early_finish): Likewise. 5658 (dwarf2out_finish): Remove DW_AT_stmt_list from early generated 5659 type units. 5660 56612018-07-16 Richard Biener <rguenther@suse.de> 5662 5663 Backport from mainline 5664 2018-07-13 Richard Biener <rguenther@suse.de> 5665 5666 PR middle-end/85974 5667 * match.pd (addr1 - addr2): Allow either of the operand to 5668 have a conversion. 5669 5670 2018-06-15 Richard Biener <rguenther@suse.de> 5671 5672 PR middle-end/86076 5673 * tree-cfg.c (move_stmt_op): unshare invariant addresses 5674 before adjusting their block. 5675 5676 2018-06-06 Richard Biener <rguenther@suse.de> 5677 5678 PR tree-optimization/85935 5679 * graphite-scop-detection.c (find_params_in_bb): Analyze 5680 condition operands with respect to the correct loop. Assert 5681 the analysis doesn't fail. 5682 56832018-07-16 Eric Botcazou <ebotcazou@adacore.com> 5684 5685 PR tree-optimization/86514 5686 * tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a 5687 conversion to a boolean type from a type with greater precision. 5688 56892018-07-15 Bill Schmidt <wschmidt@linux.ibm.com> 5690 5691 Backport from mainline 5692 2018-07-13 Bill Schmidt <wschmidt@linux.ibm.com> 5693 Steve Munroe <munroesj52@gmail.com> 5694 5695 * config/rs6000/emmintrin.h (_mm_and_si128): New function. 5696 (_mm_andnot_si128): Likewise. 5697 (_mm_or_si128): Likewise. 5698 (_mm_xor_si128): Likewise. 5699 57002018-07-14 Martin Sebor <msebor@redhat.com> 5701 5702 PR tree-optimization/86274 5703 * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify 5704 precondition. 5705 (format_floating): Correct handling of infinities and NaNs. 5706 57072018-07-13 H.J. Lu <hongjiu.lu@intel.com> 5708 5709 Backport from mainline 5710 2018-07-13 H.J. Lu <hongjiu.lu@intel.com> 5711 Sunil K Pandey <sunil.k.pandey@intel.com> 5712 5713 PR target/84413 5714 * config/i386/i386.c (m_CORE_AVX512): New. 5715 (m_CORE_AVX2): Likewise. 5716 (m_CORE_ALL): Add m_CORE_AVX2. 5717 * config/i386/x86-tune.def: Replace m_HASWELL with m_CORE_AVX2. 5718 Replace m_SKYLAKE_AVX512 with m_CORE_AVX512 on avx256_optimal 5719 and remove the rest of m_SKYLAKE_AVX512. 5720 57212018-07-13 Marek Polacek <polacek@redhat.com> 5722 5723 Backport from trunk 5724 2018-07-03 Marek Polacek <polacek@redhat.com> 5725 5726 PR middle-end/86202 5727 * gimple-fold.c (size_must_be_zero_p): Check the type of the size. 5728 57292018-07-12 Richard Biener <rguenther@suse.de> 5730 5731 PR target/84829 5732 * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC): 5733 Remove -mieee-fp handling. 5734 57352018-07-12 Jakub Jelinek <jakub@redhat.com> 5736 5737 PR tree-optimization/86492 5738 * gimple-ssa-store-merging.c 5739 (imm_store_chain_info::coalesce_immediate_stores): Call 5740 check_no_overlap even for the merge_overlapping case. 5741 57422018-07-11 Jakub Jelinek <jakub@redhat.com> 5743 5744 * config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask): 5745 Use __mmask64 type instead of __mmask8 for __M argument. 5746 * config/i386/avx512fintrin.h (_mm512_mask_xor_epi64, 5747 _mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for 5748 __U argument. 5749 (_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of 5750 __mmask16 for __M argument. 5751 (_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4, 5752 _mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument 5753 to __mmask16 instead of __mmask8. 5754 * config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps, 5755 _mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps, 5756 _mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps, 5757 _mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type 5758 instead of __mmask16 for __U argument. 5759 * config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use 5760 __mmask16 instead of __mmask8 for __U argument. 5761 (_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for 5762 __U argument. 5763 (_mm256_cmp_epi8_mask): Use __mmask32 return type instead of 5764 __mmask16. 5765 (_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U 5766 argument. 5767 (_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for 5768 __U argument. 5769 (_mm256_cmp_epu8_mask): Use __mmask32 return type instead of 5770 __mmask16. 5771 (_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead 5772 of __mmask16. 5773 (_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for 5774 __U argument. 5775 (_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for 5776 __U argument. 5777 (_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for 5778 __U argument. 5779 (_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for 5780 __U argument. 5781 (_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask, 5782 _mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change 5783 return type as well as __M argument type and all casts from __mmask8 5784 to __mmask32. 5785 (_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask, 5786 _mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change 5787 return type as well as __M argument type and all casts from __mmask8 5788 to __mmask16. 5789 (_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask, 5790 _mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change 5791 return type as well as __M argument type and all casts from __mmask8 5792 to __mmask32. 5793 (_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask, 5794 _mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change 5795 return type as well as __M argument type and all casts from __mmask8 5796 to __mmask16. 5797 * config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32, 5798 _mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of 5799 __mmask16. 5800 58012018-07-11 Grazvydas Ignotas <notasas@gmail.com> 5802 5803 * config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask, 5804 _mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32 5805 for __U argument. 5806 58072018-07-05 Martin Sebor <msebor@redhat.com> 5808 5809 PR c++/86400 5810 * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather 5811 than its domain to compute its the upper bound of a char array. 5812 58132018-07-03 Carl Love <cel@us.ibm.com> 5814 5815 Backport from trunk 5816 2018-07-03 Carl Love <cel@us.ibm.com> 5817 5818 * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for 5819 float argument to VSX_BUILTIN_DOUBLEH_V4SF. 5820 Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to 5821 VSX_BUILTIN_DOUBLEL_V4SF. 5822 58232018-07-04 Luis Machado <luis.machado@linaro.org> 5824 5825 * config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static 5826 global. 5827 (qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table. 5828 58292018-07-02 Segher Boessenkool <segher@kernel.crashing.org> 5830 5831 Backport from trunk 5832 2018-06-26 Segher Boessenkool <segher@kernel.crashing.org> 5833 5834 PR target/86285 5835 * config/rs6000/rs6000.c (rs6000_init_builtins): Do not set 5836 ieee128_float_type_node to long_double_type_node unless 5837 TARGET_LONG_DOUBLE_128 is set. 5838 58392018-07-02 Eric Botcazou <ebotcazou@adacore.com> 5840 5841 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule 5842 -fno-omit-frame-pointer when not optimizing. 5843 58442018-06-30 Alexandre Oliva <aoliva@redhat.com> 5845 5846 PR debug/86064 5847 * dwarf2out.c (loc_list_has_views): Adjust comments. 5848 (dw_loc_list): Split single cross-partition range with 5849 nonzero locview. 5850 58512018-06-29 Kelvin Nilsen <kelvin@gcc.gnu.org> 5852 5853 Backport from mainline 5854 2018-06-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 5855 5856 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change 5857 behavior of vec_pack (vector double, vector double) to match 5858 behavior of vec_float2 (vector double, vector double). 5859 58602018-06-29 Jakub Jelinek <jakub@redhat.com> 5861 5862 * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H. 5863 58642018-06-28 Kelvin Nilsen <kelvin@gcc.gnu.org> 5865 5866 Backport from mainline 5867 2017-05-23 Segher Boessenkool <segher@kernel.crashing.org> 5868 5869 * doc/sourcebuild.texi (Endianness): New subsubsection. 5870 58712018-06-27 Kelvin Nilsen <kelvin@gcc.gnu.org> 5872 5873 Backport from mainline 5874 2018-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org> 5875 5876 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change 5877 behavior of vec_packsu (vector unsigned long long, vector unsigned 5878 long long) to match behavior of vec_packs with same signature. 5879 58802018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> 5881 5882 Backport from trunk 5883 2018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> 5884 5885 * config/rs6000/rs6000-string.c (expand_block_clear): Don't use 5886 unaligned vsx for 16B memset. 5887 58882018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> 5889 5890 Backport from trunk 5891 2018-06-22 Aaron Sawdey <acsawdey@linux.ibm.com> 5892 5893 PR target/86222 5894 * config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32 5895 correctly. 5896 58972018-06-26 Segher Boessenkool <segher@kernel.crashing.org> 5898 5899 Backport from trunk 5900 2018-05-08 Segher Boessenkool <segher@kernel.crashing.org> 5901 5902 PR rtl-optimization/85645 5903 * regrename.c (build_def_use): Also kill the chains that include the 5904 destination of a REG_CFA_REGISTER note. 5905 59062018-06-26 Segher Boessenkool <segher@kernel.crashing.org> 5907 5908 Backport from trunk 5909 2018-05-08 Segher Boessenkool <segher@kernel.crashing.org> 5910 5911 PR rtl-optimization/85645 5912 * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an 5913 insn that has a REG_CFA_REGISTER note. 5914 59152018-06-26 Robin Dapp <rdapp@linux.ibm.com> 5916 5917 * config/s390/s390.h (enum processor_flags): Do not use 5918 default tune parameter when -march was specified. 5919 59202018-06-26 Jakub Jelinek <jakub@redhat.com> 5921 5922 PR target/86314 5923 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s): 5924 Check reg_overlap_mentioned_p in addition to reg_set_p with the same 5925 operands. 5926 59272018-06-25 Michael Meissner <meissner@linux.ibm.com> 5928 5929 Back port from trunk 5930 2018-06-25 Michael Meissner <meissner@linux.ibm.com> 5931 5932 * config.gcc (powerpc64le*): Revert January 16th, 2018 patch that 5933 added IEEE/IBM long double multilib support on PowerPC little 5934 endian Linux systems. 5935 * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise. 5936 (MULTILIB_DEFAULTS): Likewise. 5937 * config/rs6000/rs6000.c (rs6000_option_override_internal): 5938 Likewise. 5939 * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise. 5940 * config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used. 5941 * config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used. 5942 59432018-06-25 Segher Boessenkool <segher@kernel.crashing.org> 5944 5945 Backport from trunk 5946 2018-06-04 Segher Boessenkool <segher@kernel.crashing.org> 5947 5948 * config/rs6000/rs6000.md (abs<mode>2): Handle IFmode. 5949 59502018-05-02 Jan Hubicka <jh@suse.cz> 5951 5952 Backport from mainline 5953 2018-04-30 Jan Hubicka <jh@suse.cz> 5954 5955 * lto-wrapper.c (ltrans_priorities): New static var. 5956 (cmp_priority): New. 5957 (run_gcc): Read priorities and if doing parallel build order 5958 the Makefile by them. 5959 59602018-06-25 Segher Boessenkool <segher@kernel.crashing.org> 5961 5962 Backport from trunk 5963 2018-06-19 Segher Boessenkool <segher@kernel.crashing.org> 5964 5965 PR target/86197 5966 * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An 5967 ieee128 argument takes up only one (vector) register, not two (floating 5968 point) registers. 5969 59702018-06-23 Richard Sandiford <richard.sandiford@linaro.org> 5971 5972 PR tree-optimization/85989 5973 * gimple-ssa-backprop.c (backprop::m_visited_phis): New member 5974 variable. 5975 (backprop::intersect_uses): Check it when deciding whether this 5976 is a backedge reference. 5977 (backprop::process_block): Add each phi to m_visited_phis 5978 after visiting it, then clear it at the end. 5979 59802018-06-22 David Edelsohn <dje.gcc@gmail.com> 5981 5982 Backport from mainline 5983 5984 2018-06-19 Tony Reix <tony.reix@atos.com> 5985 Damien Bergamini <damien.bergamini@atos.com> 5986 David Edelsohn <dje.gcc@gmail.com> 5987 5988 * collect2.c (static_obj): New variable. 5989 (static_libs): New variable. 5990 (is_in_list): Uncomment declaration. 5991 (main): Track AIX libraries linked statically. 5992 (is_in_list): Uncomment definition. 5993 (scan_prog_file): Don't add AIX shared libraries initializer 5994 to constructor list if linking statically. 5995 59962018-06-22 Michael Meissner <meissner@linux.ibm.com> 5997 5998 Back port from trunk 5999 2018-06-21 Michael Meissner <meissner@linux.ibm.com> 6000 6001 * config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit 6002 conversion insn that shows up when pr85657-3.c is compiled using 6003 IEEE 128-bit long double. 6004 6005 Back port from trunk 6006 2018-06-21 Michael Meissner <meissner@linux.ibm.com> 6007 6008 * config/rs6000/rs6000.c (init_float128_ieee): Prevent complex 6009 multiply and divide external functions from being created more 6010 than once. 6011 6012 Back port from trunk 6013 2018-06-21 Michael Meissner <meissner@linux.ibm.com> 6014 6015 * config/rs6000/rs6000.md (neg<mode>2_internal): Use the correct 6016 mode to check whether the mode is IBM extended. 6017 6018 2018-06-18 Michael Meissner <meissner@linux.ibm.com> 6019 6020 PR target/85358 6021 * config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit 6022 floating point modes, so that IFmode is numerically greater than 6023 TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE 6024 to declare the ordering. This prevents IFmode from being 6025 converted to TFmode when long double is IEEE 128-bit on an ISA 3.0 6026 machine. Include rs6000-modes.h to share the fractional values 6027 between genmodes* and the rest of the compiler. 6028 (IFmode): Likewise. 6029 (KFmode): Likewise. 6030 (TFmode): Likewise. 6031 * config/rs6000/rs6000-modes.h: New file. 6032 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the 6033 meaning of rs6000_long_double_size so that 126..128 selects an 6034 appropriate 128-bit floating point type. 6035 (rs6000_option_override_internal): Likewise. 6036 * config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h. 6037 (TARGET_LONG_DOUBLE_128): Change the meaning of 6038 rs6000_long_double_size so that 126..128 selects an appropriate 6039 128-bit floating point type. 6040 (LONG_DOUBLE_TYPE_SIZE): Update comment. 6041 * config/rs6000/rs6000.md (trunciftf2): Correct the modes of the 6042 source and destination to match the standard usage. 6043 (truncifkf2): Likewise. 6044 (copysign<mode>3, IEEE iterator): Rework copysign of float128 on 6045 ISA 2.07 to use an explicit clobber, instead of passing in a 6046 temporary. 6047 (copysign<mode>3_soft): Likewise. 6048 6049 Back port from trunk 6050 2018-06-08 David Edelsohn <dje.gcc@gmail.com> 6051 6052 * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if 6053 TARGET_ELF. 6054 6055 Back port from trunk 6056 2018-06-04 Michael Meissner <meissner@linux.ibm.com> 6057 6058 * config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to 6059 track if we pass or return IEEE 128-bit floating point. 6060 (ieee128_mangling_gcc_8_1): New boolean to say whether to generate 6061 C++ mangling that is compatible with GCC 8.1. 6062 (TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook. 6063 (init_cumulative_args): Note if we pass or return IEEE 128-bit 6064 floating point types. 6065 (rs6000_function_arg_advance_1): Likewise. 6066 (rs6000_mangle_type): Optionally generate mangled names that match 6067 what GCC 8.1 generated for IEEE 128-bit floating point types. 6068 (rs6000_globalize_decl_name): If we have an external function that 6069 passes or returns IEEE 128-bit types, generate a weak reference 6070 from the mangled name used in GCC 8.1 to the current mangled 6071 name. 6072 (rs6000_init_builtins): Make __ibm128 use the long double type if 6073 long double is IBM extended double. Make __float128 use the long 6074 double type if long double is IEEE 128-bit. 6075 6076 PR target/85657 6077 * config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper 6078 macro for __ibm128 built-in functions. 6079 (PACK_IF): Add __ibm128 pack/unpack functions. 6080 (UNPACK_IF): Likewise. 6081 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not 6082 enable long double built-in functions if long double is IEEE 6083 128-bit floating point. 6084 (rs6000_invalid_builtin): Update long double built-in function 6085 error message. 6086 (rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in 6087 functions, adjust the built-in function to use the long double 6088 built-in function if __ibm128 and long double are the same type. 6089 * doc/extend.texi (PowerPC builtins): Update documention for 6090 __builtin_{,un}pack_longdouble. Add documentation for 6091 __builtin_{,un}pack_ibm128. 6092 6093 Back port from trunk 6094 2018-06-01 Segher Boessenkool <segher@kernel.crashing.org> 6095 6096 * config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of 6097 the 128-bit floating point types. Fix function comment. 6098 60992018-06-22 Michael Meissner <meissner@linux.ibm.com> 6100 6101 Back port from trunk 6102 2018-05-21 Michael Meissner <meissner@linux.ibm.com> 6103 6104 PR target/85657 6105 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not 6106 define __ibm128 as long double. 6107 * config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128 6108 as a distinct type with IEEE 128-bit floating point is supported. 6109 (init_float128_ieee): Fix up conversions between IFmode and IEEE 6110 128-bit types to use the correct functions. 6111 (rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to 6112 convert between 128-bit floating point types that have different 6113 modes but the same representation, instead of using gen_lowpart to 6114 makean alias. 6115 * config/rs6000/rs6000.md (IFKF): New iterator for IFmode and 6116 KFmode. 6117 (IFKF_reg): New attributes to give the register constraints for 6118 IFmode and KFmode. 6119 (extend<mode>tf2_internal): New insns to mark an explicit 6120 conversion between 128-bit floating point types that have a 6121 different mode but share the same representation. 6122 61232018-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6124 6125 PR target/85994 6126 * config/i386/sol2.h (CPP_SPEC): Don't pass -P for 6127 -x assembler-with-cpp. 6128 61292018-06-21 Sebastian Huber <sebastian.huber@embedded-brains.de> 6130 6131 Backported from mainline 6132 2018-06-15 Sebastian Huber <sebastian.huber@embedded-brains.de> 6133 6134 * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom 6135 multilibs for *-*-rtems*. 6136 * config/riscv/t-rtems: New file. 6137 61382018-06-20 Jakub Jelinek <jakub@redhat.com> 6139 6140 Backported from mainline 6141 2018-06-16 Jakub Jelinek <jakub@redhat.com> 6142 6143 PR rtl-optimization/86108 6144 * bb-reorder.c (create_forwarder_block): Renamed to ... 6145 (create_eh_forwarder_block): ... this. Split OLD_BB after labels and 6146 jump from new landing pad to the second part. 6147 (sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad): 6148 Adjust callers. 6149 61502018-06-20 Jakub Jelinek <jakub@redhat.com> 6151 6152 PR debug/86194 6153 * var-tracking.c (use_narrower_mode_test): Check if shift amount can 6154 be narrowed. 6155 6156 PR tree-optimization/86231 6157 * tree-vrp.c (union_ranges): For ( [ ) ] or ( )[ ] range and 6158 anti-range don't overwrite *vr0min before using it to compute *vr0max. 6159 61602018-06-19 Max Filippov <jcmvbkbc@gmail.com> 6161 6162 Backport from mainline 6163 2018-06-19 Max Filippov <jcmvbkbc@gmail.com> 6164 6165 * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec 6166 constant. 6167 (allocate_stack, frame_blockage, *frame_blockage): New patterns. 6168 61692018-06-19 Eric Botcazou <ebotcazou@adacore.com> 6170 6171 * gimplify.c (gimplify_init_constructor): Really never clear for an 6172 incomplete constructor if CONSTRUCTOR_NO_CLEARING is set. 6173 61742018-06-18 Martin Sebor <msebor@redhat.com> 6175 6176 PR c/82063 6177 * calls.c (alloc_max_size): Correct a logic error/typo. 6178 Treat excessive arguments as infinite. Warn for invalid arguments. 6179 * doc/invoke.texi (-Walloc-size-larger-than): Update. 6180 61812018-06-16 Jakub Jelinek <jakub@redhat.com> 6182 6183 PR middle-end/86095 6184 * common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var, 6185 documented as preserved for backward compatibility only. 6186 * doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation. 6187 61882018-06-15 Jakub Jelinek <jakub@redhat.com> 6189 6190 PR middle-end/85878 6191 * expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P 6192 check from first store_expr, use to_mode instead of GET_MODE (to_rtx). 6193 Only call store_expr for halves if the mode is the same. 6194 6195 PR middle-end/86123 6196 * match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions. 6197 Fix up comment formatting. 6198 61992018-06-14 Jakub Jelinek <jakub@redhat.com> 6200 6201 PR middle-end/86122 6202 * match.pd ((A +- CST1) +- CST2): Punt if last resort 6203 unsigned_type_for returns NULL. 6204 6205 PR target/85945 6206 * lower-subreg.c (find_decomposable_subregs): Don't decompose float 6207 subregs of multi-word pseudos unless the float mode has word size. 6208 62092018-06-14 Richard Biener <rguenther@suse.de> 6210 6211 PR middle-end/86139 6212 * tree-vect-generic.c (build_word_mode_vector_type): Remove 6213 duplicate and harmful type_hash_canon. 6214 * tree.c (type_hash_canon): Assert we didn't find ourselves. 6215 62162018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de> 6217 6218 Backport from mainline 6219 2018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de> 6220 6221 * config/rtems.h (STDINT_LONG32): Define. 6222 62232018-05-05 Roland McGrath <mcgrathr@google.com> 6224 6225 PR other/77609 6226 * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for 6227 any section for which we don't know a specific type it should have, 6228 regardless of name. Previously this was done only for the exact 6229 names ".init_array", ".fini_array", and ".preinit_array". 6230 (default_elf_asm_named_section): Add comment about 6231 relationship with default_section_type_flags and SECTION_NOTYPE. 6232 (get_section): Don't consider it a type conflict if one side has 6233 SECTION_NOTYPE and the other doesn't, as long as neither has the 6234 SECTION_BSS et al used in the default_section_type_flags logic. 6235 62362018-06-13 Martin Sebor <msebor@redhat.com> 6237 6238 PR tree-optimization/86114 6239 * gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS 6240 of integer types. 6241 * tree-ssa-strlen.c (maybe_set_strlen_range): Same. 6242 62432018-06-13 Eric Botcazou <ebotcazou@adacore.com> 6244 6245 PR target/86048 6246 * config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative 6247 offsets for register save directives. Emit a second batch of save 6248 directives, if need be, when the function accesses prior frames. 6249 62502018-06-11 Jason Merrill <jason@redhat.com> 6251 6252 PR c++/80485 - inline function non-zero address. 6253 * symtab.c (nonzero_address): Check DECL_COMDAT. 6254 62552018-06-11 Peter Bergner <bergner@vnet.ibm.com> 6256 6257 Backport from mainline 6258 2018-06-08 Peter Bergner <bergner@vnet.ibm.com> 6259 6260 PR target/85755 6261 * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC 6262 addresses. 6263 62642018-06-11 Segher Boessenkool <segher@kernel.crashing.org> 6265 6266 Backport from trunk 6267 2018-06-11 Segher Boessenkool <segher@kernel.crashing.org> 6268 6269 PR target/85755 6270 * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers 6271 on the correct operand. 6272 (*movdi_internal64): Ditto. 6273 62742018-06-08 Carl Love <cel@us.ibm.com> 6275 6276 Backport from mainline 6277 * gcc/config/rs6000/vsx.md (vextract_fp_from_shorth, 6278 vextract_fp_from_shortl): Add BE support. 6279 62802018-06-08 Carl Love <cel@us.ibm.com> 6281 6282 Backport from mainline 6283 * gcc/config/rs6000/vsx.md (first_match_index_<mode>): 6284 Calculate index using natureal element order. 6285 (first_match_or_eos_index_<mode>): 6286 Calculate index using natural element order. 6287 (first_match_index_<mode>): 6288 Calculate index using natural element order. 6289 (first_match_or_eos_index_<mode>): 6290 Calculate index using natural order. 6291 (define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>. 6292 for BE and LE modes. 6293 * gcc/config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB, 6294 P9V_BUILTIN_VCLZLSBB_V16QI. 6295 * gcc/config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode 6296 specific. 6297 62982018-06-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6299 6300 Backport from mainline 6301 2018-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6302 6303 PR target/81497 6304 * config/arm/arm-builtins.c (arm_type_qualifiers): Add 6305 qualifier_void_pointer and qualifier_const_void_pointer. 6306 (arm_ldc_qualifiers, arm_stc_qualifiers): Use the above. 6307 (arm_init_builtins): Handle the above. 6308 * config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc, 6309 __arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2, 6310 __arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for 6311 void intrinsics. 6312 63132018-06-07 Uros Bizjak <ubizjak@gmail.com> 6314 6315 PR target/85684 6316 * config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>: 6317 Generate SImode target register for null target. 6318 <case IX86_BUILTIN_XGETBV>: Ditto. 6319 <case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation. 6320 * config/i386/xsaveintrin.h (_xgetbv): Add missing return. 6321 63222018-06-07 Peter Bergner <bergner@vnet.ibm.com> 6323 6324 Backport from mainline 6325 2018-06-06 Peter Bergner <bergner@vnet.ibm.com> 6326 6327 PR target/63177 6328 * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9. 6329 Don't handle -mcpu=power8 if -mpower9-vector is also used. 6330 63312018-06-06 Richard Biener <rguenther@suse.de> 6332 6333 Backport from mainline 6334 2018-06-04 Richard Biener <rguenther@suse.de> 6335 6336 PR tree-optimization/86038 6337 * tracer.c (find_best_successor): Check probability for 6338 being initialized, bail out if not. 6339 6340 2018-05-30 Richard Biener <rguenther@suse.de> 6341 6342 PR tree-optimization/85964 6343 * tracer.c (better_p): Drop initialized count check, we only 6344 call the function with initialized counts now. 6345 (find_best_successor): Do find a best edge if one 6346 has uninitialized count. 6347 (find_best_predecessor): Likewise. Do BB frequency check only 6348 if count is initialized. 6349 6350 2018-05-28 Richard Biener <rguenther@suse.de> 6351 6352 PR tree-optimization/85934 6353 * tree-vect-generic.c (expand_vector_operations_1): Hoist 6354 vector boolean check before scalar optimization. 6355 6356 2018-05-22 Richard Biener <rguenther@suse.de> 6357 6358 PR tree-optimization/85863 6359 * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant 6360 comparisons when vectype is specified. 6361 (vectorizable_condition): Do not specify vectype for 6362 vect_is_simple_cond when SLP vectorizing. 6363 63642018-06-05 Andreas Krebbel <krebbel@linux.ibm.com> 6365 6366 Backport from mainline 6367 2018-06-05 Andreas Krebbel <krebbel@linux.ibm.com> 6368 6369 * config/s390/s390-builtin-types.def: Add void function type. 6370 * config/s390/s390-builtins.def: Use the function type for the 6371 tbeginc builtin. 6372 63732018-06-04 Martin Sebor <msebor@redhat.com> 6374 6375 PR c/85623 6376 * calls.c (maybe_warn_nonstring_arg): Use string length to set 6377 or ajust the presumed bound on an operation to avoid unnecessary 6378 warnings. 6379 63802018-06-04 Richard Earnshaw <rearnsha@arm.com> 6381 6382 PR target/86003 6383 * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list 6384 of bits to ignore when comparing architectures. 6385 63862018-06-04 Jakub Jelinek <jakub@redhat.com> 6387 6388 PR c++/86025 6389 * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE. 6390 63912018-06-01 Bill Schmidt <wschmidt@linux.ibm.com> 6392 6393 PR tree-optimization/85712 6394 Backport from mainline: 6395 2018-05-23 Bill Schmidt <wschmidt@linux.ibm.com> 6396 6397 PR tree-optimization/85712 6398 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add 6399 first_interp field. 6400 (alloc_cand_and_find_basis): Initialize first_interp field. 6401 (slsr_process_mul): Modify first_interp field. 6402 (slsr_process_add): Likewise. 6403 (slsr_process_cast): Modify first_interp field for each new 6404 interpretation. 6405 (slsr_process_copy): Likewise. 6406 (dump_candidate): Dump first_interp field. 6407 (replace_mult_candidate): Process all interpretations, not just 6408 subsequent ones. 6409 (replace_rhs_if_not_dup): Likewise. 6410 (replace_one_candidate): Likewise. 6411 6412 Backport from mainline: 6413 2018-05-25 Bill Schmidt <wschmidt@linux.ibm.com> 6414 6415 PR tree-optimization/85712 6416 * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if 6417 this candidate has already been replaced in-situ by a copy. 6418 64192018-05-31 Uros Bizjak <ubizjak@gmail.com> 6420 6421 PR target/85950 6422 * config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2): 6423 Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q} 6424 sequence. 6425 (sse4_1_round<mode>2): Use nonimmediate_operand 6426 for operand 1 predicate. 6427 64282018-05-31 Jakub Jelinek <jakub@redhat.com> 6429 6430 PR target/85984 6431 * bb-reorder.c (pass_partition_blocks::gate): Return false for 6432 functions with naked attribute. 6433 64342018-05-31 H.J. Lu <hongjiu.lu@intel.com> 6435 6436 PR target/85829 6437 * config/i386/x86-tune.def: Re-enable partial_reg_dependency 6438 and movx for Haswell. 6439 64402018-05-30 Jakub Jelinek <jakub@redhat.com> 6441 6442 Backported from mainline 6443 2018-05-14 Jakub Jelinek <jakub@redhat.com> 6444 6445 PR target/85756 6446 * config/i386/i386.md: Disallow non-commutative arithmetics in 6447 last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim 6448 optimization. Use COMMUTATIVE_ARITH_P test rather than != MINUS 6449 in the peephole2 before it. 6450 6451 2018-05-08 Jakub Jelinek <jakub@redhat.com> 6452 6453 PR target/85683 6454 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0 6455 after cmpelim optimization. 6456 64572018-05-28 H.J. Lu <hongjiu.lu@intel.com> 6458 6459 Backport from mainline 6460 2018-05-26 H.J. Lu <hongjiu.lu@intel.com> 6461 6462 PR target/85900 6463 PR target/85345 6464 * varasm.c (assemble_alias): Lookup ifunc attribute on error. 6465 6466 2018-05-24 H.J. Lu <hongjiu.lu@intel.com> 6467 6468 PR target/85900 6469 PR target/85345 6470 * varasm.c (assemble_alias): Check ifunc_resolver only on 6471 FUNCTION_DECL. 6472 6473 2018-05-22 H.J. Lu <hongjiu.lu@intel.com> 6474 6475 PR target/85345 6476 * cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc 6477 attribute. 6478 (cgraph_node::create_alias): Likewise. 6479 (cgraph_node::get_availability): Check ifunc_resolver instead 6480 of looking up ifunc attribute. 6481 * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. 6482 * varasm.c (do_assemble_alias): Likewise. 6483 (assemble_alias): Likewise. 6484 (default_binds_local_p_3): Likewise. 6485 * cgraph.h (cgraph_node): Add ifunc_resolver. 6486 (cgraph_node::only_called_directly_or_aliased_p): Return false 6487 for IFUNC resolver. 6488 * lto-cgraph.c (input_node): Set ifunc_resolver for ifunc 6489 attribute. 6490 * symtab.c (symtab_node::verify_base): Verify that ifunc_resolver 6491 is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)). 6492 (symtab_node::binds_to_current_def_p): Check ifunc_resolver 6493 instead of looking up ifunc attribute. 6494 64952018-05-27 John David Anglin <danglin@gcc.gnu.org> 6496 6497 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. 6498 64992018-05-25 Richard Biener <rguenther@suse.de> 6500 6501 PR c++/85912 6502 * tree-dump.c (dequeue_and_dump): Remove access to removed 6503 operand 2 of a SWITCH_EXPR. 6504 65052018-05-24 Uros Bizjak <ubizjak@gmail.com> 6506 6507 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>): 6508 Add {q} suffix to insn mnemonic. 6509 65102018-05-24 Uros Bizjak <ubizjak@gmail.com> 6511 6512 PR target/85903 6513 * config/i386/sse.md (movdi_to_sse): Do not generate pseudo 6514 when memory input operand is handled. 6515 65162018-05-23 Bin Cheng <bin.cheng@arm.com> 6517 6518 Backport from mainline 6519 2018-05-17 Bin Cheng <bin.cheng@arm.com> 6520 Richard Biener <rguenther@suse.de> 6521 6522 PR tree-optimization/85793 6523 * tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load 6524 for VMAT_ELEMENTWISE. 6525 65262018-05-23 Richard Biener <rguenther@suse.de> 6527 6528 PR middle-end/85874 6529 * tree-data-ref.c (create_runtime_alias_checks): Defer 6530 and ignore overflow warnings. 6531 65322018-05-23 Martin Liska <mliska@suse.cz> 6533 6534 Backport from mainline 6535 2018-05-23 Yury Gribov <tetra2005@gmail.com> 6536 6537 PR tree-optimization/85822 6538 * tree-vrp.c (is_masked_range_test): Fix handling of negative 6539 constants. 6540 65412018-05-23 Martin Liska <mliska@suse.cz> 6542 6543 Backport from mainline 6544 2018-05-11 Martin Liska <mliska@suse.cz> 6545 6546 PR sanitizer/85556 6547 * doc/extend.texi: Document LLVM style format for no_sanitize 6548 attribute. 6549 65502018-05-22 Martin Sebor <msebor@redhat.com> 6551 6552 PR middle-end/85643 6553 * calls.c (get_attr_nonstring_decl): Handle MEM_REF. 6554 65552018-05-22 Richard Sandiford <richard.sandiford@linaro.org> 6556 6557 PR tree-optimization/85814 6558 * tree-ssa-strlen.c (get_stridx_plus_constant): Cope with 6559 a null return from get_strinfo when unsharing the next 6560 strinfo in the chain. 6561 65622018-05-21 Pat Haugen <pthaugen@us.ibm.com> 6563 6564 Backport from mainline 6565 2018-05-17 Pat Haugen <pthaugen@us.ibm.com> 6566 Segher Boessenkool <segher@kernel.crashing.org> 6567 6568 PR target/85698 6569 * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest operand. 6570 65712018-05-18 Toon Moene <toon@moene.org> 6572 6573 * doc/invoke.texi: Move -floop-unroll-and-jam documentation 6574 directly after that of -floop-interchange. Indicate that both 6575 options are enabled by default when specifying -O3. 6576 65772018-05-11 Martin Jambor <mjambor@suse.cz> 6578 6579 PR ipa/85655 6580 * ipa-cp.c (intersect_with_plats): Check that the lattice contains 6581 single const. 6582 65832018-05-11 Richard Earnshaw <rearnsha@arm.com> 6584 6585 PR target/85733 6586 * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature. 6587 65882018-05-11 Richard Earnshaw <rearnsha@arm.com> 6589 6590 PR target/85606 6591 * config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now 6592 equivalent. 6593 (cortex-m0): Use armv6s-m isa. 6594 (cortex-m0plus): Likewise. 6595 (cortex-m1): Likewise. 6596 (cortex-m0.small-multiply): Likewise. 6597 (cortex-m0plus.small-multiply): Likewise. 6598 (cortex-m1.small-multiply): Likewise. 6599 66002018-05-09 Eric Botcazou <ebotcazou@adacore.com> 6601 6602 PR rtl-optimization/85638 6603 * bb-reorder.c: Include common/common-target.h. 6604 (create_forwarder_block): New function extracted from... 6605 (fix_up_crossing_landing_pad): ...here. Rename into... 6606 (dw2_fix_up_crossing_landing_pad): ...this. 6607 (sjlj_fix_up_crossing_landing_pad): New function. 6608 (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode, 6609 call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges 6610 from both partitions and exit the loop after one iteration. 6611 66122018-05-08 Richard Biener <rguenther@suse.de> 6613 6614 Backport from mainline 6615 2018-05-04 Richard Biener <rguenther@suse.de> 6616 6617 PR middle-end/85588 6618 * fold-const.c (negate_expr_p): Restrict negation of operand 6619 zero of a division to when we know that can happen without 6620 overflow. 6621 (fold_negate_expr_1): Likewise. 6622 6623 2018-05-03 Richard Biener <rguenther@suse.de> 6624 6625 PR tree-optimization/85615 6626 * tree-ssa-threadupdate.c (thread_block_1): Only allow exits 6627 to loops not nested in BBs loop father to avoid creating multi-entry 6628 loops. 6629 6630 2018-05-02 Richard Biener <rguenther@suse.de> 6631 6632 PR middle-end/85567 6633 * gimplify.c (gimplify_save_expr): When in SSA form allow 6634 SAVE_EXPRs to compute to SSA vars. 6635 6636 2018-05-02 Richard Biener <rguenther@suse.de> 6637 6638 PR tree-optimization/85597 6639 * tree-vect-stmts.c (vectorizable_operation): For ternary SLP 6640 do not use split vect_get_vec_defs call but call vect_get_slp_defs 6641 directly. 6642 66432018-05-08 Richard Earnshaw <rearnsha@arm.com> 6644 6645 PR target/85658 6646 * config/arm/parsecpu.awk (check_cpu): Fix operator precedence. 6647 (check_arch): Likewise. 6648 (check_fpu): Return the result rather than printing it. 6649 (end arch): Fix operator precedence. 6650 (end cpu): Likewise. 6651 (END): Print the result from check_fpu. 6652 66532018-05-08 Richard Biener <rguenther@suse.de> 6654 6655 Backport from mainline 6656 2018-05-04 Richard Biener <rguenther@suse.de> 6657 6658 * bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check. 6659 * gimple-ssa-store-merging.c 6660 (imm_store_chain_info::output_merged_store): Remove redundant create, 6661 release split_store vector contents on failure. 6662 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking 6663 scalar stmt vector on cache hit. 6664 6665 2018-05-04 Richard Biener <rguenther@suse.de> 6666 6667 PR middle-end/85627 6668 * tree-complex.c (tree_lower_complex): Handle removed blocks. 6669 66702018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 6671 6672 Backport from mainline. 6673 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 6674 6675 * config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with 6676 GET_MODE_MASK before any checking. 6677 (nds32_can_use_bset_p): Likewise. 6678 (nds32_can_use_btgl_p): Likewise. 6679 66802018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 6681 6682 Backport from mainline. 6683 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 6684 6685 * config/nds32/nds32-doubleword.md: New define_split pattern for 6686 illegal register number. 6687 66882018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 6689 6690 Backport from mainline. 6691 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 6692 6693 * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier. 6694 66952018-05-07 Chung-Ju Wu <jasonwucj@gmail.com> 6696 6697 Backport from mainline. 6698 2018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 6699 6700 * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character. 6701 67022018-05-06 Jakub Jelinek <jakub@redhat.com> 6703 6704 PR c++/85659 6705 * cfgexpand.c (expand_asm_stmt): Don't create a temporary if 6706 the type is addressable. Don't force op into register if it has 6707 BLKmode. 6708 67092018-05-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6710 6711 Backport from trunk. 6712 2018-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6713 6714 PR target/85512 6715 * config/aarch64/constraints.md (Usg): Limit to 31. 6716 (Usj): Limit to 63. 6717 67182018-05-02 Jakub Jelinek <jakub@redhat.com> 6719 6720 * BASE-VER: Set to 8.1.1. 6721 67222018-05-02 Release Manager 6723 6724 * GCC 8.1.0 released. 6725 67262018-05-02 Richard Sandiford <richard.sandiford@linaro.org> 6727 6728 PR tree-optimization/85586 6729 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only 6730 exit early for statements in the same group if the accesses are 6731 not strided. 6732 67332018-05-01 Jakub Jelinek <jakub@redhat.com> 6734 6735 PR web/85578 6736 * doc/install.texi2html: Replace _002d with - and _002a with * in 6737 generated html files using sed. 6738 67392018-04-27 Martin Jambor <mjambor@suse.cz> 6740 6741 PR ipa/85549 6742 * ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure 6743 the jump function allows for passing through aggregate values. 6744 67452018-04-27 Jeff Law <law@redhat.com> 6746 6747 * config.gcc: Mark tile* targets as deprecated/obsolete. 6748 67492018-04-27 Jakub Jelinek <jakub@redhat.com> 6750 6751 PR tree-optimization/85529 6752 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB 6753 argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE, 6754 rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious 6755 zero extension or masking of the MSB bit. 6756 (optimize_range_tests): Add FIRST_BB argument, pass it through 6757 to optimize_range_tests_var_bound. 6758 (maybe_optimize_range_tests, reassociate_bb): Adjust 6759 optimize_range_tests callers. 6760 67612018-04-26 Richard Biener <rguenther@suse.de> 6762 Jakub Jelinek <jakub@redhat.com> 6763 6764 * cgraph.h (symbol_table): Just declare debug method here. 6765 * symtab.c (symbol_table::debug): Define. 6766 67672018-04-26 Jonathan Wakely <jwakely@redhat.com> 6768 6769 * doc/invoke.texi (-Wreturn-type): Document default status for C++. 6770 67712018-04-25 H.J. Lu <hongjiu.lu@intel.com> 6772 6773 Backport from mainline 6774 2018-04-25 Sebastian Peryt <sebastian.peryt@intel.com> 6775 6776 PR target/85473 6777 * config/i386/i386.c (ix86_expand_builtin): Change memory 6778 operand to XI, extend p0 to Pmode. 6779 * config/i386/i386.md: Change unspec volatile and operand 6780 1 mode to XI, change operand 0 mode to P. 6781 67822018-04-25 Jakub Jelinek <jakub@redhat.com> 6783 6784 * DEV-PHASE: Set to prerelease. 6785 67862018-04-24 Segher Boessenkool <segher@kernel.crashing.org> 6787 6788 * config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes 6789 in __abskf2 and __powikf2. 6790 67912018-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 6792 6793 PR target/85512 6794 * config/aarch64/constraints.md (Usg, Usj): New constraints. 6795 * config/aarch64/iterators.md (cmode_simd): New mode attribute. 6796 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3): 6797 Use the above on operand 2. Reindent. 6798 (*aarch64_lshr_sisd_or_int_<mode>3): Likewise. 6799 68002018-04-24 H.J. Lu <hongjiu.lu@intel.com> 6801 6802 PR target/85485 6803 * common/config/i386/i386-common.c (ix86_handle_option): Don't 6804 handle OPT_mcet. 6805 * config/i386/i386.opt (mcet): Removed. 6806 * doc/install.texi: Remove -mcet documentation. 6807 * doc/invoke.texi: Likewise. 6808 68092018-04-24 H.J. Lu <hongjiu.lu@intel.com> 6810 6811 PR target/85485 6812 * doc/install.texi: Remove -mcet from bootstrap-cet. 6813 68142018-04-24 Jakub Jelinek <jakub@redhat.com> 6815 6816 PR target/85511 6817 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define 6818 __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 6819 if TARGET_64BIT. 6820 6821 PR target/85503 6822 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if 6823 const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool 6824 containing a CONST_VECTOR. 6825 68262018-04-24 Cesar Philippidis <cesar@codesourcery.com> 6827 6828 * doc/install.texi: Update newlib dependency for nvptx. 6829 68302018-04-24 Jakub Jelinek <jakub@redhat.com> 6831 6832 PR target/85508 6833 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL 6834 instead of INTVAL when shifting x left. 6835 68362018-04-24 Andreas Krebbel <krebbel@linux.ibm.com> 6837 6838 PR tree-optimization/85478 6839 * tree-vect-loop.c (vect_analyze_loop_2): Do not call 6840 vect_grouped_store_supported for single element vectors. 6841 68422018-04-24 Richard Biener <rguenther@suse.de> 6843 6844 PR target/85491 6845 * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided 6846 load cost increase to the case of non-constant step. 6847 68482018-04-24 Jakub Jelinek <jakub@redhat.com> 6849 6850 PR target/84828 6851 * reg-stack.c (move_for_stack_reg): Don't fail assertion about dead 6852 destination if any_malformed_asm. 6853 68542018-04-23 Eric Botcazou <ebotcazou@adacore.com> 6855 6856 PR middle-end/85496 6857 * expr.c (store_field): In the bitfield case, if the value comes from 6858 a function call and is returned in registers by means of a PARALLEL, 6859 do not change the mode of the temporary unless BLKmode and VOIDmode. 6860 68612018-04-23 Andrey Belevantsev <abel@ispras.ru> 6862 6863 PR rtl-optimization/85423 6864 * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard 6865 dependencies to debug insns when the previous insn is non-debug. 6866 68672018-04-23 Claudiu Zissulescu <claziss@synopsys.com> 6868 6869 * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec 6870 enums into a single definition. 6871 (fls): Fix predicates and printing. 6872 (seti): Likewise. 6873 68742018-04-23 Claudiu Zissulescu <claziss@synopsys.com> 6875 6876 * config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove. 6877 * config/arc/arc.c (arc_expand_builtin): Sleep accepts registers 6878 and short u6 immediate. 6879 (check_if_valid_sleep_operand): Remove. 6880 * config/arc/arc.md (Sleep): Accepts registers and u6 immediates. 6881 68822018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 6883 6884 * config/nds32/nds32.c (nds32_compute_stack_frame): Consider 6885 flag_always_save_lp condition. 6886 * config/nds32/nds32.opt (malways-save-lp): New option. 6887 68882018-04-22 Shiva Chen <shiva0217@gmail.com> 6889 6890 * config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare. 6891 * config/nds32/nds32.c (nds32_use_load_post_increment): New. 6892 * config/nds32/nds32.h 6893 (USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define. 6894 (USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define. 6895 68962018-04-22 Shiva Chen <shiva0217@gmail.com> 6897 6898 * config/nds32/nds32-protos.h (nds32_ls_333_p): Remove. 6899 * config/nds32/nds32.c (nds32_ls_333_p): Remove. 6900 69012018-04-22 Shiva Chen <shiva0217@gmail.com> 6902 Chung-Ju Wu <jasonwucj@gmail.com> 6903 6904 * config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode): 6905 Declare. 6906 * config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function. 6907 * config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify. 6908 69092018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 6910 6911 * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value. 6912 69132018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 6914 6915 * config/nds32/nds32-protos.h (nds32_data_alignment, 6916 nds32_local_alignment): Declare. 6917 * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment, 6918 nds32_local_alignment): New functions. 6919 (TARGET_CONSTANT_ALIGNMENT): Define. 6920 * config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define. 6921 69222018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 6923 6924 * config/nds32/nds32.c 6925 (TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file. 6926 (TARGET_MODES_TIEABLE_P): Likewise. 6927 69282018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 6929 6930 * config/nds32/nds32.c (nds32_asm_file_start): Display optimization 6931 level Ofast and Og. 6932 69332018-04-22 Monk Chiang <sh.chiang04@gmail.com> 6934 Chung-Ju Wu <jasonwucj@gmail.com> 6935 6936 * config/nds32/constants.md (unspec_volatile_element): Add enum values 6937 for unaligned access. 6938 * config/nds32/nds32-intrinsic.c: Implementation of expanding 6939 unaligned access. 6940 * config/nds32/nds32-intrinsic.md: Likewise. 6941 * config/nds32/nds32_intrinsic.h: Likewise. 6942 * config/nds32/nds32.h (nds32_builtins): Likewise. 6943 * config/nds32/nds32.opt (munaligned-access): New option. 6944 * config/nds32/nds32.c (nds32_asm_file_start): Display 6945 flag_unaligned_access status. 6946 69472018-04-20 Kito Cheng <kito.cheng@gmail.com> 6948 6949 * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if 6950 -mno-relax is present. 6951 * config/riscv/linux.h (LINK_SPEC): Ditto. 6952 69532018-04-20 Martin Sebor <msebor@redhat.com> 6954 6955 PR c/85365 6956 * gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict 6957 for null pointers. 6958 (gimple_fold_builtin_stxcpy_chk): Same. 6959 * gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same. 6960 69612018-04-20 Michael Meissner <meissner@linux.ibm.com> 6962 6963 PR target/85456 6964 * config/rs6000/rs6000.c (init_float128_ieee): Add support to call 6965 __powikf2 when long double is IEEE 128-bit. 6966 69672018-04-20 Kito Cheng <kito.cheng@gmail.com> 6968 6969 * config/riscv/riscv.c (riscv_first_stack_step): Round up min 6970 step to make sure stack always aligned. 6971 69722018-04-20 Carl Love <cel@us.ibm.com> 6973 6974 PR target/83402 6975 * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add 6976 size check for arg0. 6977 69782018-04-20 Nathan Sidwell <nathan@codesourcery.com> 6979 Tom de Vries <tom@codesourcery.com> 6980 6981 PR target/85445 6982 * config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining): 6983 Emit insns for calls too. 6984 (nvptx_find_par): Always look for worker-level predecessor insn. 6985 (nvptx_propagate): Add is_call parm, return bool. Copy frame for 6986 calls. 6987 (nvptx_vpropagate, nvptx_wpropagate): Adjust. 6988 (nvptx_process_pars): Propagate frames for calls. 6989 69902018-04-20 H.J. Lu <hongjiu.lu@intel.com> 6991 6992 PR target/85469 6993 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): 6994 Removed. 6995 (OPTION_MASK_ISA_IBT_UNSET): Likewise. 6996 (ix86_handle_option): Don't handle OPT_mibt. 6997 * config/i386/cet.h: Check __CET__ instead of __IBT__ and 6998 __SHSTK__. 6999 * config/i386/driver-i386.c (host_detect_local_cpu): Remove 7000 has_ibt and ibt. 7001 * config/i386/i386-c.c (ix86_target_macros_internal): Don't 7002 check OPTION_MASK_ISA_IBT nor flag_cf_protection. 7003 (ix86_target_macros): Define __CET__ with flag_cf_protection 7004 for -fcf-protection. 7005 * config/i386/i386.c (isa2_opts): Remove -mibt. 7006 * config/i386/i386.h (TARGET_IBT): Removed. 7007 (TARGET_IBT_P): Likewise. 7008 (ix86_valid_target_attribute_inner_p): Don't check OPT_mibt. 7009 * config/i386/i386.md (nop_endbr): Don't check TARGET_IBT. 7010 * config/i386/i386.opt (mcet): Update help message. 7011 (mshstk): Likewise. 7012 (mibt): Removed. 7013 * doc/invoke.texi: Remove -mibt. Document __CET__. Document 7014 -mcet as an alias for -mshstk. 7015 70162018-04-20 Richard Biener <rguenther@suse.de> 7017 7018 PR middle-end/85475 7019 * match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential 7020 complexity by forcing a single use of the multiply operand. 7021 70222018-04-20 Martin Jambor <mjambor@suse.cz> 7023 7024 ipa/85449 7025 * ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding 7026 recursion dependency to only apply to non-clones. 7027 70282018-04-20 Martin Jambor <mjambor@suse.cz> 7029 7030 ipa/85447 7031 * ipa-cp.c (create_specialized_node): Check that clones of 7032 self-recursive edges exist during IPA-CP. 7033 70342018-04-19 Toon Moene <toon@moene.org> 7035 7036 * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled 7037 by -O3. 7038 70392018-04-19 Jakub Jelinek <jakub@redhat.com> 7040 7041 PR tree-optimization/85467 7042 * fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use 7043 VECTOR_TYPE_P macro. If type is vector type, VIEW_CONVERT_EXPR the 7044 VECTOR_CST element to type. 7045 70462018-04-19 H.J. Lu <hongjiu.lu@intel.com> 7047 7048 PR target/85397 7049 * config/i386/i386.h (STACK_SAVEAREA_MODE): New. 7050 * config/i386/i386.md (builtin_setjmp_setup): Removed. 7051 (builtin_longjmp): Likewise. 7052 (save_stack_nonlocal): New pattern. 7053 (restore_stack_nonlocal): Likewise. 7054 70552018-04-19 H.J. Lu <hongjiu.lu@intel.com> 7056 7057 PR target/85404 7058 * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): 7059 Replace ASM_OUTPUT_LABEL with fprintf. 7060 70612018-04-19 H.J. Lu <hongjiu.lu@intel.com> 7062 7063 PR target/85417 7064 * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): 7065 Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK. 7066 * config/i386/i386-c.c (ix86_target_macros_internal): Also 7067 define __IBT__ and __SHSTK__ for -fcf-protection. 7068 * config/i386/i386.c (pass_insert_endbranch::gate): Don't check 7069 TARGET_IBT. 7070 (ix86_trampoline_init): Likewise. 7071 (x86_output_mi_thunk): Likewise. 7072 (ix86_notrack_prefixed_insn_p): Likewise. 7073 (ix86_option_override_internal): Don't disallow -fcf-protection. 7074 * config/i386/i386.md (rdssp<mode>): Also enable for 7075 -fcf-protection. 7076 (incssp<mode>): Likewise. 7077 (nop_endbr): Likewise. 7078 * config/i386/i386.opt (mcet): Change help message to built-in 7079 functions only. 7080 (mibt): Likewise. 7081 (mshstk): Likewise. 7082 * doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition 7083 on -fcf-protection. Change -mcet, -mibt and -mshstk to only 7084 enable CET built-in functions. 7085 70862018-04-19 Sebastian Peryt <sebastian.peryt@intel.com> 7087 7088 * common/config/i386/i386-common.c 7089 (OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET, 7090 OPTION_MASK_ISA_MOVDIRI_UNSET, 7091 OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines. 7092 (ix86_handle_option): Handle -mmovdiri and -mmovdir64b. 7093 * config.gcc (movdirintrin.h): New header. 7094 * config/i386/cpuid.h (bit_MOVDIRI, 7095 bit_MOVDIR64B): New bits. 7096 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri 7097 and -mmvodir64b. 7098 * config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED), 7099 (VOID, PVOID, PCVOID)): New function types. 7100 * config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32, 7101 __builtin_ia32_directstoreu_u64, 7102 __builtin_ia32_movdir64b): New builtins. 7103 * config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New. 7104 * config/i386/i386.c (ix86_target_string): Added -mmovdir64b 7105 and -mmovdiri. 7106 (ix86_valid_target_attribute_inner_p): Ditto. 7107 (ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED 7108 and VOID_FTYPE_PUNSIGNED_UNSIGNED. 7109 (ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B. 7110 * config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P, 7111 TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New. 7112 * config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New. 7113 (movdiri<mode>, movdir64b_<mode>): New. 7114 * config/i386/i386.opt: Add -mmovdiri and -mmovdir64b. 7115 * config/i386/immintrin.h: Include movdirintrin.h. 7116 * config/i386/movdirintrin.h: New file. 7117 * doc/invoke.texi: Added -mmovdiri and -mmovdir64b. 7118 71192018-04-19 Richard Biener <rguenther@suse.de> 7120 7121 PR middle-end/85455 7122 * cfg.c (clear_bb_flags): When loop state says we have 7123 marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP. 7124 71252018-04-19 Richard Biener <rguenther@suse.de> 7126 7127 PR tree-optimization/84737 7128 * tree-vect-data-refs.c (vect_copy_ref_info): New function 7129 copying restrict info. 7130 (vect_setup_realignment): Use it. 7131 * tree-vectorizer.h (vect_copy_ref_info): Declare. 7132 * tree-vect-stmts.c (vectorizable_store): Copy ref info from 7133 the first DR to all generated stores. 7134 (vectorizable_load): Likewise for loads. 7135 71362018-04-19 Jakub Jelinek <jakub@redhat.com> 7137 7138 PR tree-optimization/85446 7139 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require 7140 the integral and pointer types to have the same precision. 7141 7142 * doc/install.texi: Document --disable-cet being the default and 7143 --enable-cet=auto. 7144 71452018-04-18 Martin Liska <mliska@suse.cz> 7146 7147 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding 7148 style. 7149 71502018-04-18 Martin Liska <mliska@suse.cz> 7151 7152 Revert 7153 2018-03-02 Eric Botcazou <ebotcazou@adacore.com> 7154 7155 PR ipa/83983 7156 * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both 7157 arguments if they are comparable. 7158 71592018-04-18 Martin Liska <mliska@suse.cz> 7160 7161 Revert 7162 2018-03-13 Eric Botcazou <ebotcazou@adacore.com> 7163 7164 PR lto/84805 7165 * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of 7166 incomplete types. 7167 71682018-04-18 H.J. Lu <hongjiu.lu@intel.com> 7169 7170 PR target/85388 7171 * config/i386/i386.c (ix86_expand_split_stack_prologue): Insert 7172 ENDBR after calling __morestack. 7173 71742018-04-18 David Malcolm <dmalcolm@redhat.com> 7175 7176 PR jit/85384 7177 * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version 7178 by using gcc_base_ver to generate a gcc_driver_version, and use 7179 it when generating GCC_DRIVER_NAME. 7180 * configure: Regenerate. 7181 71822018-04-18 Jakub Jelinek <jakub@redhat.com> 7183 7184 PR target/81084 7185 * config.gcc: Obsolete powerpc*-*-*spe*. 7186 71872018-04-17 Jakub Jelinek <jakub@redhat.com> 7188 7189 PR debug/84637 7190 * dbxout.c (dbxout_int): Perform negation in unsigned int type. 7191 (stabstr_D): Change type of unum from unsigned int to 7192 unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT 7193 type. 7194 71952018-04-17 Jim Wilson <jimw@sifive.com> 7196 7197 PR 84856 7198 * config/riscv/riscv.c (riscv_compute_frame_info): Add calls to 7199 RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size. 7200 Set arg_pointer_offset after using pretend_args_size. 7201 72022018-04-17 Jakub Jelinek <jakub@redhat.com> 7203 7204 PR rtl-optimization/85431 7205 * dse.c (record_store): Ignore zero width stores. 7206 7207 PR sanitizer/85230 7208 * asan.c (handle_builtin_stack_restore): Adjust comment. Emit 7209 __asan_allocas_unpoison call and last_alloca_addr = new_sp before 7210 __builtin_stack_restore rather than after it. 7211 * builtins.c (expand_asan_emit_allocas_unpoison): Pass 7212 arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second 7213 argument instead of virtual_dynamic_stack_rtx. 7214 72152018-04-17 Kelvin Nilsen <kelvin@gcc.gnu.org> 7216 7217 * config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p): 7218 New prototype. 7219 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 7220 Add note to error message to explain internal mapping of overloaded 7221 built-in function name to non-overloaded built-in function name. 7222 * config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New 7223 function. 7224 72252018-04-17 Michael Meissner <meissner@linux.vnet.ibm.com> 7226 7227 PR target/85424 7228 * config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack 7229 where the inputs overlap with the output. 7230 72312018-04-17 Jakub Jelinek <jakub@redhat.com> 7232 7233 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add 7234 (=v, v) alternative and explicit "memory" attribute. 7235 (vec_extract_lo_<mode><mask_name>): Likewise. Also add 7236 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 7237 attributes. 7238 (vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use 7239 "sselog1" type instead of "sselog". 7240 (vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of 7241 "sselog". Remove explicit "memory" attribute. 7242 (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory", 7243 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 7244 attributes. 7245 (vec_extract_hi_v32hi): Merge all alternatives into one, use 7246 "sselog1" type instead of "sselog". Remove explicit "memory" 7247 attribute. 7248 (vec_extract_hi_v16hi): Merge each pair of alternatives into one, 7249 use "sselog1" type instead of "sselog". Remove explicit "memory" 7250 attribute. 7251 (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory", 7252 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 7253 attributes. 7254 (vec_extract_hi_v64qi): Merge all alternatives into one, use 7255 "sselog1" type instead of "sselog". Remove explicit "memory" 7256 attribute. 7257 (vec_extract_hi_v32qi): Merge each pair of alternatives into one, 7258 use "sselog1" type instead of "sselog". Remove explicit "memory" 7259 attribute. 7260 7261 PR target/85430 7262 * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu. 7263 7264 PR middle-end/85414 7265 * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG 7266 on a SUBREG. 7267 72682018-04-17 Martin Jambor <mjambor@suse.cz> 7269 7270 PR ipa/85421 7271 * ipa-cp.c (create_specialized_node): Call 7272 expand_all_artificial_thunks if necessary. 7273 72742018-04-17 Martin Liska <mliska@suse.cz> 7275 7276 PR lto/85405 7277 * ipa-devirt.c (odr_types_equivalent_p): Remove trailing 7278 in message, remote space in between '_G' and '('. 7279 72802018-04-17 Jakub Jelinek <jakub@redhat.com> 7281 7282 PR target/85281 7283 * config/i386/sse.md (reduces<mode><mask_scalar_name>, 7284 avx512f_vmcmp<mode>3<round_saeonly_name>, 7285 avx512f_vmcmp<mode>3_mask<round_saeonly_name>, 7286 avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>, 7287 avx512f_rndscale<mode><round_saeonly_name>, 7288 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>, 7289 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): 7290 Use %<iptr>2 instead of %2 for -masm=intel. 7291 (avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>, 7292 avx512f_vcvttss2usi<round_saeonly_name>, 7293 avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for 7294 -masm=intel. 7295 (avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>, 7296 avx512f_vcvttsd2usi<round_saeonly_name>, 7297 avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>): 7298 Use %q1 instead of %1 for -masm=intel. 7299 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, 7300 avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead 7301 of %3 for -masm=intel. 7302 (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for 7303 -masm=intel. 7304 (*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for 7305 -masm=intel. 7306 (*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for 7307 -masm=intel. 7308 (avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with 7309 %k0 and %1 for -masm=intel rather than two patterns, one with %0 and 7310 %g1. 7311 (*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for 7312 -masm=intel. 7313 (avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with 7314 %q0 and %1 for -masm=intel rather than two patterns, one with %0 and 7315 %g1 and one with %0 and %1. 7316 (avx512er_vmrcp28<mode><round_saeonly_name>, 7317 avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of 7318 %1 for -masm=intel. 7319 (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask, 7320 avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask, 7321 avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order 7322 of %0 and %{%4%} for -masm=intel. 7323 (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz, 7324 avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz, 7325 avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap 7326 order of %0 and %{%5%}%{z%} for -masm=intel. 7327 73282018-04-17 Jan Hubicka <jh@suse.cz> 7329 7330 PR lto/85405 7331 * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields. 7332 73332018-04-17 Martin Liska <mliska@suse.cz> 7334 7335 PR ipa/85329 7336 * multiple_target.c (create_dispatcher_calls): Set apostrophes 7337 for target_clone error message. Make default implementation 7338 clone to be a local declaration. 7339 (separate_attrs): Add new argument and check for an empty 7340 string. 7341 (expand_target_clones): Handle it. 7342 (ipa_target_clone): Make redirection just for target_clones 7343 functions. 7344 73452018-04-16 Cesar Philippidis <cesar@codesourcery.com> 7346 Tom de Vries <tom@codesourcery.com> 7347 7348 PR middle-end/84955 7349 * omp-expand.c (expand_oacc_for): Add dummy false branch for 7350 tiled basic blocks without omp continue statements. 7351 73522018-04-16 Aaron Sawdey <acsawdey@linux.ibm.com> 7353 7354 PR target/83660 7355 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark 7356 vec_extract expression as having side effects to make sure it gets 7357 a cleanup point. 7358 73592018-04-16 H.J. Lu <hongjiu.lu@intel.com> 7360 7361 PR target/85403 7362 * config/i386/i386.c (get_builtin_code_for_version): Check 7363 error_mark_node. 7364 73652018-04-16 Olga Makhotina <olga.makhotina@intel.com> 7366 7367 PR target/84331 7368 * gcc/config.gcc: Support "skylake". 7369 * gcc/config/i386/i386-c.c (ix86_target_macros_internal): Handle 7370 PROCESSOR_SKYLAKE. 7371 * gcc/config/i386/i386.c (m_SKYLAKE): Define. 7372 (processor_target_table): Add "skylake". 7373 (ix86_option_override_internal): Add "skylake". 7374 (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE, 7375 PROCESSOR_CANNONLAKE. 7376 (get_builtin_code_for_version): Fix priority for 7377 PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER, 7378 PROCESSOR_SKYLAKE-AVX512. 7379 * gcc/config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE. 7380 (processor_type): Add PROCESSOR_SKYLAKE. 7381 73822018-04-16 Paolo Carlini <paolo.carlini@oracle.com> 7383 Jason Merrill <jason@redhat.com> 7384 7385 PR c++/85112 7386 * convert.c (convert_to_integer_1): Use direct recursion for 7387 enumeral types and types with a precision less than the number 7388 of bits in their mode. 7389 73902018-04-16 Julia Koval <julia.koval@intel.com> 7391 7392 PR target/84413 7393 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, 7394 X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512 7395 73962018-04-14 Segher Boessenkool <segher@kernel.crashing.org> 7397 7398 PR target/85293 7399 * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. 7400 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move 7401 and -mno-direct-move. 7402 74032018-04-13 Paul A. Clarke <pc@us.ibm.com> 7404 7405 PR target/83402 7406 * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}): 7407 Ensure that vec_splat_s32 is only called with 0 <= shift < 16. 7408 Ensure negative shifts result in {0}. 7409 74102018-04-13 Vladimir Makarov <vmakarov@redhat.com> 7411 7412 PR rtl-optimization/79916 7413 * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard 7414 regs (if any) to define how to gnerate SD moves when LRA is in 7415 progress. 7416 74172018-04-13 Jakub Jelinek <jakub@redhat.com> 7418 7419 PR rtl-optimization/85393 7420 * except.h (expand_dw2_landing_pad_for_region): Remove declaration. 7421 * except.c (expand_dw2_landing_pad_for_region): Make static. 7422 * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just 7423 a label and unconditional jump to old_bb, rather than 7424 expand_dw2_landing_pad_for_region insn(s) and jump to single_succ 7425 basic block. 7426 7427 PR rtl-optimization/85376 7428 * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and 7429 zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX 7430 instead of a specific value. 7431 74322018-04-13 Jan Hubicka <hubicka@ucw.cz> 7433 Bin Cheng <bin.cheng@arm.com> 7434 7435 PR tree-optimization/82965 7436 PR tree-optimization/83991 7437 * cfgloopanal.c (expected_loop_iterations_unbounded): Add 7438 by_profile_only parameter. 7439 * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile 7440 information if the loop was predicted to iterate too many times. 7441 * cfgloop.h (expected_loop_iterations_unbounded): Update prototype 7442 74432018-04-13 Jan Hubicka <hubicka@ucw.cz> 7444 7445 PR lto/71991 7446 * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for 7447 always inline. 7448 74492018-04-13 Martin Liska <mliska@suse.cz> 7450 Jakub Jelinek <jakub@redhat.com> 7451 7452 PR middle-end/81657 7453 * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. 7454 * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. 7455 * builtins.c (expand_builtin_memory_copy_args): Use 7456 BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, 7457 handle dest_addr == pc_rtx. 7458 74592018-04-12 Segher Boessenkool <segher@kernel.crashing.org> 7460 7461 PR target/85291 7462 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if 7463 asked to not generate direct moves. 7464 (fix_trunc<mode>si2_stfiwx): Similar. 7465 (fix_trunc<mode>si2_internal): Similar. 7466 74672018-04-12 Jakub Jelinek <jakub@redhat.com> 7468 7469 PR debug/83157 7470 * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST. 7471 * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest, 7472 lookup if dest in some wider mode is known to be const0_rtx and 7473 if so, record permanent equivalence for it to be ZERO_EXTEND of 7474 the narrower mode destination. 7475 74762018-04-12 Cesar Philippidis <cesar@codesourcery.com> 7477 7478 * lto-streamer-out.c (output_function): Revert 259346. 7479 * omp-expand.c (expand_oacc_for): Likewise. 7480 74812018-04-12 Alexander Monakov <amonakov@ispras.ru> 7482 7483 PR rtl-optimization/85354 7484 * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... 7485 * sel-sched.c (sel_global_init): ... here. 7486 74872018-04-12 Eric Botcazou <ebotcazou@adacore.com> 7488 7489 PR target/85238 7490 * lto-wrapper.c (debug_objcopy): Open the files in binary mode. 7491 * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO 7492 mode for PE-COFF targets. 7493 * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare. 7494 (i386_pe_asm_lto_end): Likewise. 7495 * config/i386/cygming.h (TARGET_ASM_LTO_START): Define. 7496 (TARGET_ASM_LTO_END): Likewise. 7497 * config/i386/winnt.c (saved_debug_info_level): New static variable. 7498 (i386_pe_asm_lto_start): New function. 7499 (i386_pe_asm_lto_end): Likewise. 7500 75012018-04-12 Cesar Philippidis <cesar@codesourcery.com> 7502 Richard Biener <rguenther@suse.de> 7503 7504 PR middle-end/84955 7505 * lto-streamer-out.c (output_function): Fix CFG loop state before 7506 streaming out. 7507 * omp-expand.c (expand_oacc_for): Handle calls to internal 7508 functions like regular functions. 7509 75102018-04-12 Richard Biener <rguenther@suse.de> 7511 7512 PR lto/85371 7513 * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label] 7514 for the early LTO debug to properly generate references to it 7515 during DIE emission. Do not re-use that for the skeleton for 7516 split-dwarf. 7517 (dwarf2out_early_finish): Likewise. 7518 75192018-04-12 Jakub Jelinek <jakub@redhat.com> 7520 7521 PR target/85328 7522 * config/i386/sse.md 7523 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split, 7524 <mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split, 7525 vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi, 7526 vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg 7527 and output is a reg, avoid creating invalid lowpart subreg, but 7528 instead split into a 512-bit move. Don't split if not AVX512VL, 7529 input is xmm16+ reg and output is a mem. 7530 (vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi, 7531 vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is 7532 xmm16+ reg and output is a mem. 7533 75342018-04-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 7535 7536 * config/s390/s390.c (s390_output_indirect_thunk_function): Check 7537 also for flag_dwarf2_cfi_asm. 7538 75392018-04-12 Jakub Jelinek <jakub@redhat.com> 7540 7541 PR rtl-optimization/85342 7542 * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use 7543 a bool scalar var inside of the loop instead. Don't try to update 7544 recog_data.operand after failed apply_change_group. 7545 75462018-04-12 Tom de Vries <tom@codesourcery.com> 7547 7548 PR target/85296 7549 * config/nvptx/nvptx.c (flexible_array_member_type_p): New function. 7550 (nvptx_assemble_decl_begin): Add undefined param. Declare undefined 7551 array with flexible array member as array without given dimension. 7552 (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call 7553 argument for undefined param to true. 7554 75552018-04-11 Aaron Sawdey <acsawdey@linux.ibm.com> 7556 7557 PR target/85321 7558 * doc/invoke.texi (RS/6000 and PowerPC Options): Document options 7559 -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe 7560 from PowerPC section. 7561 * config/rs6000/sysv4.opt (mcall-): Improve help text. 7562 * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim 7563 help text that is too long. 7564 * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim 7565 help text that is too long. 7566 * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim 7567 help text that is too long. 7568 75692018-04-11 Uros Bizjak <ubizjak@gmail.com> 7570 7571 * config/alpha/alpha.md (stack_probe_internal): Rename 7572 from "probe_stack". Update all callers. 7573 75742018-04-11 Alexander Monakov <amonakov@ispras.ru> 7575 7576 PR rtl-optimization/84566 7577 * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking 7578 sched_macro_fuse_insns. 7579 75802018-04-11 Alexander Monakov <amonakov@ispras.ru> 7581 7582 PR target/84301 7583 * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here... 7584 (compute_block_dependences): ... from here. 7585 75862018-04-11 Jakub Jelinek <jakub@redhat.com> 7587 7588 PR tree-optimization/85331 7589 * vec-perm-indices.h (vec_perm_indices::clamp): Change input type 7590 from int to HOST_WIDE_INT. 7591 75922018-04-11 Martin Jambor <mjambor@suse.cz> 7593 7594 PR ipa/84149 7595 * ipa-cp.c (propagate_vals_across_pass_through): Expand comment. 7596 (cgraph_edge_brings_value_p): New parameter dest_val, check if it is 7597 not the same as the source val. 7598 (cgraph_edge_brings_value_p): New parameter. 7599 (gather_edges_for_value): Pass destination value to 7600 cgraph_edge_brings_value_p. 7601 (perhaps_add_new_callers): Likewise. 7602 (get_info_about_necessary_edges): Likewise and exclude values brought 7603 only by self-recursive edges. 7604 (create_specialized_node): Redirect only clones of self-calling edges. 7605 (+self_recursive_pass_through_p): New function. 7606 (find_more_scalar_values_for_callers_subset): Use it. 7607 (find_aggregate_values_for_callers_subset): Likewise. 7608 (known_aggs_to_agg_replacement_list): Removed. 7609 (decide_whether_version_node): Re-calculate known constants for all 7610 remaining context clones. 7611 76122018-04-11 Richard Biener <rguenther@suse.de> 7613 7614 PR lto/85339 7615 * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute 7616 from early DWARF output. 7617 (dwarf2out_early_finish): Output line info unconditionally into 7618 early DWARF and add reference to it. 7619 76202018-04-11 Jakub Jelinek <jakub@redhat.com> 7621 7622 PR target/85281 7623 * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases. 7624 (<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes 7625 other than V2DFmode using iptr mode attribute. 7626 (<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute. 7627 76282018-04-11 Alexander Monakov <amonakov@ispras.ru> 7629 7630 PR rtl-optimization/84659 7631 * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg. 7632 76332018-04-11 Jakub Jelinek <jakub@redhat.com> 7634 7635 PR debug/85302 7636 * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if 7637 SIZEP is NULL. 7638 (output_loc_list): Pass address of a dummy size variable even in the 7639 locview handling loop. 7640 (index_location_lists): Add comment on why skip_loc_list_entry can't 7641 call size_of_locs. 7642 76432018-04-11 Thomas Preud'homme <thomas.preudhomme@arm.com> 7644 7645 PR target/85261 7646 * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand 7647 into register. 7648 76492018-04-10 Aaron Sawdey <acsawdey@linux.ibm.com> 7650 7651 PR target/85321 7652 * doc/invoke.texi (RS/6000 and PowerPC Options): Document options 7653 -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit, 7654 and -mstring-compare-inline-limit. 7655 76562018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 7657 7658 PR target/85287 7659 * gcc/config/rs6000/rs6000.md (allocate_stack): Put the residual size 7660 for stack clash protection in a register whenever we need it to be in 7661 a register. 7662 76632018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 7664 7665 * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct): 7666 Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF. 7667 76682018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 7669 7670 PR target/85321 7671 * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in 7672 the help text. 7673 (mlong-double-): Ditto. 7674 * config/rs6000/sysv4.opt (msdata=): Ditto. 7675 (mtls-size=): Ditto. 7676 76772018-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 7678 7679 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove 7680 erroneous entries for 7681 "vector int vec_ldl (int, long int *)", and 7682 "vector unsigned int vec_ldl (int, unsigned long int *)". 7683 Add comments and entries for 7684 "vector bool char vec_ldl (int, bool char *)", 7685 "vector bool short vec_ldl (int, bool short *)", 7686 "vector bool int vec_ldl (int, bool int *)", 7687 "vector bool long long vec_ldl (int, bool long long *)", 7688 "vector pixel vec_ldl (int, pixel *)", 7689 "vector long long vec_ldl (int, long long *)", 7690 "vector unsigned long long vec_ldl (int, unsigned long long *)". 7691 * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new 7692 type tree bool_long_long_type_node and correct definition of 7693 bool_V2DI_type_node to make reference to this new type tree. 7694 (rs6000_mangle_type): Replace erroneous reference to 7695 bool_long_type_node with bool_long_long_type_node. 7696 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add 7697 comments to emphasize sign distinctions for char and int types and 7698 replace RS6000_BTI_bool_long constant with 7699 RS6000_BTI_bool_long_long constant. Also add comment to restrict 7700 use of RS6000_BTI_pixel. 7701 (bool_long_type_node): Remove this macro definition. 7702 (bool_long_long_type_node): New macro definition 7703 77042018-04-10 Jakub Jelinek <jakub@redhat.com> 7705 7706 PR rtl-optimization/85300 7707 * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also 7708 into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if 7709 simplify_unary_operation fails. 7710 77112018-04-10 Martin Liska <mliska@suse.cz> 7712 7713 * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node, 7714 cgraph_edge and ipa_ref. 7715 77162018-04-10 Jakub Jelinek <jakub@redhat.com> 7717 7718 PR target/85177 7719 PR target/85255 7720 * config/i386/sse.md 7721 (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix 7722 computation of the VEC_MERGE selector from mask. 7723 (<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>): 7724 Fix decoding of the VEC_MERGE selector into mask. 7725 77262018-04-10 Richard Sandiford <richard.sandiford@linaro.org> 7727 7728 PR tree-optimization/85286 7729 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): 7730 77312018-04-10 Richard Sandiford <richard.sandiford@linaro.org> 7732 7733 * final.c (final_1): Set insn_last_address as well as 7734 insn_current_address. 7735 77362018-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 7737 7738 PR target/85173 7739 * explow.c (emit_stack_probe): Call validize_mem on memory location 7740 before passing it to gen_probe_stack. Create address operand and 7741 legitimize it for the probe_stack_address case. 7742 77432018-04-09 Jan Hubicka <jh@suse.cz> 7744 7745 PR lto/85078 7746 * ipa-devirt.c (rebuild_type_inheritance-hash): New. 7747 * ipa-utils.h (rebuild_type_inheritance-hash): Declare. 7748 * tree.c (free_lang_data_in_type): Fix handling of binfos; 7749 walk basetypes. 7750 (free_lang_data): Rebuild type inheritance graph. 7751 77522018-04-09 Martin Sebor <msebor@redhat.com> 7753 7754 * invoke.texi (-finline-small-functions): Mention other optimization 7755 options. 7756 (-findirect-inlining, -fpartial-inlining): Same. 7757 (-finline-functions-called-once): Same. 7758 (-freorder-blocks-and-partition): Same. 7759 77602018-04-09 Jan Hubicka <jh@suse.cz> 7761 7762 PR rtl/84058 7763 * cfgcleanup.c (try_forward_edges): Do not give up on crossing 7764 jumps; choose last target that matches the criteria (i.e. 7765 no partition changes for non-crossing jumps). 7766 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic 7767 support for redirecting crossing jumps to non-crossing. 7768 77692018-04-09 Alexey Brodkin <abrodkin@synopsys.com> 7770 7771 * config/arc/arc.c (arc_expand_prologue): Set stack usage info 7772 also for naked functions. 7773 77742018-04-09 Claudiu Zissulescu <claziss@synopsys.com> 7775 7776 * config/arc/arc.md (add_shift): New pattern. 7777 (add_shift2): Likewise. 7778 (sub_shift): Likewise. 7779 (sub_shift_cmp0_noout): Likewise. 7780 (compare_si_ashiftsi): Likewise. 7781 (xbfu_cmp0_noout): New combine pattern. 7782 (xbfu_cmp0"): Likewise. 7783 (movsi_set_cc_insn): Place the predicable variant first. 7784 (commutative_binary_cmp0_noout): Remove clobber. 7785 (commutative_binary_cmp0): New pattern. 7786 (noncommutative_binary_cmp0): Likewise. 7787 (noncommutative_binary_cmp0_noout): Likewise. 7788 (noncommutative_binary_comparison_result_used): Removed. 7789 (rsub_cmp0): New pattern. 7790 (rsub_cmp0_noout): Likewise. 7791 (extzvsi): Changed, keep only meaningful variants. 7792 (SQH, SEZ): New iterators. 7793 (SQH_postfix): New mode attribute. 7794 (SEZ_prefix): New code attribute. 7795 (<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern. 7796 (<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise. 7797 * config/arc/predicates.md (cc_set_register): Use CC_REG instead 7798 of numerical value. 7799 (noncommutative_operator): Check the availability of barrel 7800 shifter option. 7801 78022018-04-09 Richard Biener <rguenther@suse.de> 7803 7804 PR tree-optimization/85284 7805 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): 7806 Only use the niter constraining form of simple_iv when the exit 7807 is always executed. 7808 78092018-04-09 Tom de Vries <tom@codesourcery.com> 7810 7811 PR target/84041 7812 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. 7813 (define_expand "*memory_barrier"): New define_expand. 7814 (define_insn "memory_barrier"): New insn. 7815 78162018-04-09 Andrey Belevantsev <abel@ispras.ru> 7817 7818 PR rtl-optimization/80463 7819 PR rtl-optimization/83972 7820 PR rtl-optimization/83480 7821 7822 * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the 7823 correct producer for the insn. 7824 (tidy_control_flow): Fixup seqnos in case of debug insns. 7825 78262018-04-09 Andrey Belevantsev <abel@ispras.ru> 7827 7828 PR rtl-optimization/83913 7829 7830 * sel-sched-ir.c (merge_expr_data): Choose the middle between two 7831 different sched-times when merging exprs. 7832 78332018-04-09 Andrey Belevantsev <abel@ispras.ru> 7834 7835 PR rtl-optimization/83962 7836 7837 * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call 7838 tidy_fallthru_edge and tidy_control_flow. 7839 78402018-04-09 Andrey Belevantsev <abel@ispras.ru> 7841 7842 PR rtl-optimization/83530 7843 7844 * sel-sched.c (force_next_insn): New global variable. 7845 (remove_insn_for_debug): When force_next_insn is true, also leave only 7846 next insn in the ready list. 7847 (sel_sched_region): When the region wasn't scheduled, make another pass 7848 over it with force_next_insn set to 1. 7849 78502018-04-08 Monk Chiang <sh.chiang04@gmail.com> 7851 7852 * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h 7853 into tm_file. 7854 * config/nds32/constants.md (unspec_volatile_element): Add enum values 7855 for interrupt control. 7856 * config/nds32/nds32-intrinsic.c: Implementation of intrinsic 7857 functions for interrupt control. 7858 * config/nds32/nds32-intrinsic.md: Likewise. 7859 * config/nds32/nds32_intrinsic.h: Likewise. 7860 * config/nds32/nds32.h (nds32_builtins): Likewise. 7861 78622018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> 7863 7864 * config/nds32/nds32.c (nds32_init_machine_status, 7865 nds32_legitimate_index_p, nds32_legitimate_address_p): Consider 7866 strict_aligned_p field. 7867 (nds32_expand_to_rtl_hook): New function. 7868 (TARGET_EXPAND_TO_RTL_HOOK): Define. 7869 * config/nds32/nds32.h (machine_function): Add strict_aligned_p field. 7870 78712018-04-08 Kito Cheng <kito.cheng@gmail.com> 7872 Chung-Ju Wu <jasonwucj@gmail.com> 7873 7874 * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu. 7875 * config/nds32/nds32-n7.md: New file. 7876 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7. 7877 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7 7878 pipeline. 7879 * config/nds32/nds32-protos.h: More declarations for n7 pipeline. 7880 * config/nds32/nds32.md (pipeline_model): Add n7. 7881 * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus. 7882 * config/nds32/pipelines.md: Include n7 settings. 7883 78842018-04-08 Kito Cheng <kito.cheng@gmail.com> 7885 Chung-Ju Wu <jasonwucj@gmail.com> 7886 7887 * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu. 7888 * config/nds32/nds32-e8.md: New file. 7889 * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8. 7890 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8 7891 pipeline. 7892 * config/nds32/nds32-protos.h: More declarations for e8 pipeline. 7893 * config/nds32/nds32.md (pipeline_model): Add e8. 7894 * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus. 7895 * config/nds32/pipelines.md: Include e8 settings. 7896 78972018-04-08 Kito Cheng <kito.cheng@gmail.com> 7898 Chung-Ju Wu <jasonwucj@gmail.com> 7899 7900 * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu. 7901 * config/nds32/nds32-n8.md: New file. 7902 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8. 7903 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8 7904 pipeline. 7905 * config/nds32/nds32-protos.h: More declarations for n8 pipeline. 7906 * config/nds32/nds32-utils.c: More implementations for n8 pipeline. 7907 * config/nds32/nds32.md (pipeline_model): Add n8. 7908 * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus. 7909 * config/nds32/pipelines.md: Include n8 settings. 7910 79112018-04-08 Kito Cheng <kito.cheng@gmail.com> 7912 Chung-Ju Wu <jasonwucj@gmail.com> 7913 7914 * config.gcc (nds32*): Add nds32-utils.o into extra_objs. 7915 * config/nds32/nds32-n9-2r1w.md: New file. 7916 * config/nds32/nds32-n9-3r2w.md: New file. 7917 * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type, 7918 nds32_register_ports): New or modify for cpu n9. 7919 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9 7920 pipeline. 7921 * config/nds32/nds32-protos.h: More declarations for n9 pipeline. 7922 * config/nds32/nds32-utils.c: New file. 7923 * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE, 7924 TARGET_MUL_SLOW): Define. 7925 * config/nds32/nds32.md (pipeline_model): New attribute. 7926 * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports): 7927 New options that support cpu n9. 7928 * config/nds32/pipelines.md: Include n9 settings. 7929 * config/nds32/t-nds32 (nds32-utils.o): Add dependency. 7930 79312018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> 7932 7933 * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align 7934 information if necessary. 7935 (output_cond_branch_compare_zero): Likewise. 7936 * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case. 7937 (nds32_target_alignment): Refine for alignment. 7938 * config/nds32/nds32.h (NDS32_ALIGN_P): Define. 7939 (FUNCTION_BOUNDARY): Modify. 7940 * config/nds32/nds32.md (call_internal, call_value_internal): Consider 7941 align case. 7942 * config/nds32/nds32.opt (malways-align, malign-functions): New. 7943 79442018-04-08 Monk Chiang <sh.chiang04@gmail.com> 7945 7946 * config/nds32/constants.md (unspec_volatile_element): Add values for 7947 TLB operation and data prefetch. 7948 * config/nds32/nds32-intrinsic.c: Implementation of intrinsic 7949 functions for TLB operation and data prefetch. 7950 * config/nds32/nds32-intrinsic.md: Likewise. 7951 * config/nds32/nds32_intrinsic.h: Likewise. 7952 * config/nds32/nds32.c (nds32_dpref_names): Likewise. 7953 (nds32_print_operand): Likewise. 7954 * config/nds32/nds32.h (nds32_builtins): Likewise. 7955 79562018-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> 7957 Andrew Pinski <pinsika@gcc.gnu.org> 7958 7959 PR middle-end/82976 7960 * match.pd: Use constant_boolean_node of correct type instead of 7961 boolean_true_node or boolean_false_node for simplifying 7962 pointer comparisons to zero. 7963 79642018-04-07 Jakub Jelinek <jakub@redhat.com> 7965 7966 PR tree-optimization/80021 7967 * tree.c (verify_type_variant): Make error call in verify_variant_match 7968 translatable and remove final full stop. 7969 79702018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 7971 7972 * config/nds32/constants.md (unspec_volatile_element): Add 7973 UNSPEC_VOLATILE_EH_RETURN. 7974 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push, 7975 nds32_output_stack_pop): Support dwarf exception handling process. 7976 * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare. 7977 * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf 7978 exception handling process. 7979 (nds32_compute_stack_frame): Likewise. 7980 (nds32_return_addr_rtx): Likewise. 7981 (nds32_initial_elimination_offset): Likewise. 7982 (nds32_expand_prologue): Likewise. 7983 (nds32_expand_epilogue): Likewise. 7984 (nds32_dynamic_chain_address): New function. 7985 * config/nds32/nds32.h (machine_function): Add fields for dwarf 7986 exception handling. 7987 (DYNAMIC_CHAIN_ADDRESS): Define. 7988 (EH_RETURN_DATA_REGNO): Define. 7989 (EH_RETURN_STACKADJ_RTX): Define. 7990 * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement 7991 patterns for dwarf exception handling. 7992 79932018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 7994 7995 * config/nds32/nds32.h: Clean up obsolete macros. 7996 79972018-04-07 Monk Chiang <sh.chiang04@gmail.com> 7998 7999 * config/nds32/constants.md (unspec_element, unspec_volatile_element): 8000 Add enum values for particular instructions. 8001 * config/nds32/nds32-intrinsic.c: Implementation of expanding 8002 particular intrinsic functions. 8003 * config/nds32/nds32-intrinsic.md: Likewise. 8004 * config/nds32/nds32_intrinsic.h: Likewise. 8005 * config/nds32/nds32.h (nds32_builtins): Likewise. 8006 * config/nds32/nds32.md (type): Add pbsad and pbsada. 8007 (btst, ave): New patterns for particular instructions. 8008 80092018-04-07 Monk Chiang <sh.chiang04@gmail.com> 8010 8011 * config/nds32/constants.md (unspec_element, unspec_volatile_element): 8012 Add enum values for atomic load/store and memory sync. 8013 * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store 8014 and memory sync. 8015 * config/nds32/nds32-intrinsic.md: Likewise. 8016 * config/nds32/nds32_intrinsic.h: Likewise. 8017 * config/nds32/nds32.h (nds32_builtins): Likewise. 8018 80192018-04-07 Jakub Jelinek <jakub@redhat.com> 8020 8021 PR tree-optimization/85257 8022 * fold-const.c (native_encode_vector): If not all elts could fit 8023 and off is -1, return 0 rather than offset. 8024 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass 8025 (offseti - offset2) / BITS_PER_UNIT as 4th argument to 8026 native_encode_expr. Verify len * BITS_PER_UNIT >= maxsizei. Don't 8027 adjust buffer in native_interpret_expr call. 8028 80292018-04-07 Monk Chiang <sh.chiang04@gmail.com> 8030 8031 * config/nds32/constants.md (unspec_volatile_element): Add cache 8032 control enum values. 8033 * config/nds32/nds32-intrinsic.c: Add cache control expand functions. 8034 * config/nds32/nds32-intrinsic.md: Add cache control patterns. 8035 * config/nds32/nds32.c (nds32_cctl_names): New. 8036 (nds32_print_operand): Handle cache control register names. 8037 * config/nds32/nds32.h (nds32_builtins): New enum values. 8038 * config/nds32/nds32_intrinsic.h: Add cache control enum types and 8039 macros. 8040 * config/nds32/nds32.md (type): Add mmu. 8041 * config/nds32/pipelines.md (simple_insn): Add mmu. 8042 80432018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 8044 8045 * config/nds32/nds32.md (type): Remove call. 8046 * config/nds32/pipelines.md (simple_insn): Likewise. 8047 80482018-04-07 Monk Chiang <sh.chiang04@gmail.com> 8049 8050 * config/nds32/constants.md (unspec_volatile_element): Add 8051 UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and 8052 UNSPEC_VOLATILE_FMFCFG. 8053 * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin 8054 description for fmfcfg and fmfcsr. 8055 (bdesc_1arg): Add fmtcsr. 8056 (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd. 8057 (nds32_expand_builtin_impl): Deal with FPU intrinsic functions. 8058 * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd, 8059 unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr, 8060 unspec_fmfcfg): New patterns. 8061 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG, 8062 NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS, 8063 NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD. 8064 * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss, 8065 __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr, 8066 __nds32__fmfcfg): Define. 8067 80682018-04-07 Monk Chiang <sh.chiang04@gmail.com> 8069 8070 * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more 8071 intrinsic register names. 8072 * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more 8073 intrinsic register enum values and macros. 8074 80752018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 8076 8077 * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition 8078 for load/store addressing form. 8079 (nds32_print_operand_address): Likewise. 8080 80812018-04-06 Eric Botcazou <ebotcazou@adacore.com> 8082 8083 PR target/85196 8084 * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands 8085 based on LABEL_REF. Remove useless assertion. 8086 (pic_address_needs_scratch): Fix formatting. 8087 (sparc_legitimize_pic_address): Minor tweaks. 8088 (sparc_delegitimize_address): Adjust assertion accordingly. 8089 * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand 8090 into symbolic_operand. 8091 (movsi_high_pic_label_ref): Likewise. 8092 (movsi_lo_sum_pic_label_ref): Likewise. 8093 (movdi_pic_label_ref): Likewise. 8094 (movdi_high_pic_label_ref): Likewise. 8095 (movdi_lo_sum_pic_label_ref): Likewise. 8096 80972018-04-06 Amaan Cheval <amaan.cheval@gmail.com> 8098 8099 * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for 8100 custom LIB_SPEC setup. 8101 81022018-04-06 Ruslan Bukin <br@bsdpad.com> 8103 Kito Cheng <kito.cheng@gmail.com> 8104 8105 * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support. 8106 * config/riscv/freebsd.h: New. 8107 81082018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 8109 8110 * config/nds32/nds32.c (nds32_adjust_insn_length): Refine. 8111 * config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in 8112 file. 8113 81142018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 8115 Kito Cheng <kito.cheng@gmail.com> 8116 8117 * config/nds32/nds32-md-auxiliary.c (nds32_output_return, 8118 nds32_output_call, nds32_symbol_binds_local_p): New functions. 8119 * config/nds32/nds32-protos.h (nds32_output_call, 8120 nds32_output_return): Declare. 8121 * config/nds32/nds32.md: Refine all the call and return patterns. 8122 81232018-04-06 Jakub Jelinek <jakub@redhat.com> 8124 8125 PR debug/85252 8126 * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only 8127 build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST. 8128 8129 PR rtl-optimization/84872 8130 * cfgloopmanip.c (create_preheader): Use make_forwarder_block even if 8131 nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is 8132 EDGE_CROSSING edge. 8133 81342018-04-06 Tamar Christina <tamar.christina@arm.com> 8135 8136 * expr.c (copy_blkmode_to_reg): Revert 254862. 8137 * doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise. 8138 81392018-04-06 Richard Biener <rguenther@suse.de> 8140 8141 PR middle-end/85244 8142 * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref 8143 after seeing a component reference with an adjacent field. Treat 8144 refs to arrays at struct end of external decls similar to 8145 refs to unconstrained commons. 8146 81472018-04-06 Jakub Jelinek <jakub@redhat.com> 8148 8149 PR sanitizer/85213 8150 * fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't 8151 look through SAVE_EXPRs with non-side-effects argument. Adjust 8152 recursive calls. 8153 (fold_comparison): Adjust twoval_comparison_p caller, don't handle 8154 save_p here. 8155 81562018-04-06 Richard Biener <rguenther@suse.de> 8157 8158 PR middle-end/85180 8159 * alias.c (find_base_term): New wrapper around find_base_term 8160 unwinding CSELIB_VAL_PTR changes. 8161 (find_base_term): Do not restore CSELIB_VAL_PTR during the 8162 recursion. 8163 81642018-04-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 8165 8166 * config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP 8167 instructions. 8168 * config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New 8169 constant definitions. 8170 ("nop"): lr 0,0 -> nopr r0 8171 ("nop_lr0", "nop_lr1"): New insn definitions. 8172 81732018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 8174 8175 * config/nds32/nds32.md (*stack_push, *stack_pop): Use 8176 NDS32_V3PUSH_AVAILABLE_P macro. 8177 81782018-04-06 Monk Chiang <sh.chiang04@gmail.com> 8179 Chung-Ju Wu <jasonwucj@gmail.com> 8180 8181 * config.gcc (nds32*-*-*): Add v2j v3f v3s checking. 8182 (nds32*-*-*): Add float and fpu_config into supported_defaults. 8183 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): 8184 Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA. 8185 * config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN, 8186 UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS. 8187 * config/nds32/constraints.md: New constraints and checking for hard 8188 float configuration. 8189 * config/nds32/iterators.md: New mode iterator and attribute for hard 8190 float configuration. 8191 * config/nds32/nds32-doubleword.md: Use hard float alternatives and 8192 patterns. 8193 * config/nds32/nds32-fpu.md: New file. 8194 * config/nds32/nds32-md-auxiliary.c: New functions and checkings to 8195 deal with hard float code generation. 8196 * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and 8197 ARCH_V3S. 8198 (abi_type, float_reg_number): New enum type. 8199 * config/nds32/nds32-predicates.c: New predicates for hard float. 8200 * config/nds32/nds32-protos.h: Declare functions for hard float. 8201 * config/nds32/nds32.c: Implementation for hard float configuration. 8202 * config/nds32/nds32.h: Definitions for hard float configuration. 8203 * config/nds32/nds32.md: Include hard float machine description and 8204 modify patterns for hard float configuration. 8205 * config/nds32/nds32.opt: New options for hard float configuration. 8206 * config/nds32/predicates.md: New predicates for hard float 8207 configuration. 8208 82092018-04-06 Kuan-Lin Chen <kuanlinchentw@gmail.com> 8210 8211 * common/config/nds32/nds32-common.c 8212 (nds32_option_optimization_table): Enable -mreleax-hint by default. 8213 82142018-04-05 Jakub Jelinek <jakub@redhat.com> 8215 8216 PR middle-end/85195 8217 * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around 8218 CONSTRUCTOR_ELT (ctor, ...)->value. 8219 82202018-04-05 Uros Bizjak <ubizjak@gmail.com> 8221 8222 PR target/85193 8223 * config/i386/i386.md (define_attr "memory"): Handle rotate1 type. 8224 82252018-04-05 Tom de Vries <tom@codesourcery.com> 8226 8227 PR target/85204 8228 * config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only 8229 cond jump. 8230 82312018-04-05 Shiva Chen <shiva0217@gmail.com> 8232 Kito Cheng <kito.cheng@gmail.com> 8233 8234 * config/nds32/constraints.md (U33): Fine-tune checking condition. 8235 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto. 8236 * config/nds32/nds32.h (nds32_16bit_address_type): Add 8237 ADDRESS_POST_MODIFY_LO_REG_IMM3U. 8238 82392018-04-05 Shiva Chen <shiva0217@gmail.com> 8240 Kito Cheng <kito.cheng@gmail.com> 8241 8242 * config/nds32/constraints.md (Ufe): New memory constraint. 8243 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format, 8244 nds32_output_16bit_load): Consider r8 register for lwi45.fe format. 8245 * config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe 8246 operands. 8247 * config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U. 8248 * config/nds32/nds32.md (*mov<mode>): Adjust pattern. 8249 82502018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 8251 8252 * config/nds32/nds32.md: Use optimize_size in the condition for 8253 alu-shift instructions. 8254 82552018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 8256 8257 * config/nds32/nds32.md (divsi4, udivsi4): New patterns. 8258 82592018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 8260 8261 * config/nds32/nds32.md (negsi2): Refine pattern. 8262 82632018-04-05 Kito Cheng <kito.cheng@gmail.com> 8264 Chung-Ju Wu <jasonwucj@gmail.com> 8265 8266 * config/nds32/iterators.md (shift_rotate): New code iterator. 8267 (shift): New code attribute. 8268 * config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New. 8269 * config/nds32/nds32-protos.h (nds32_expand_constant): Declare. 8270 * config/nds32/nds32.c (nds32_print_operand): Deal with more cases. 8271 * config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for 8272 bit-wise operations. 8273 (andsi3, *andsi3): Ditto. 8274 (iorsi3, *iorsi3, *or_slli, *or_srli): Ditto. 8275 (xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto. 8276 (<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto. 8277 * config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand, 8278 nds32_ior_operand, nds32_xor_operand): New predicates. 8279 82802018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 8281 8282 * config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ... 8283 (addsi3, subsi3): ... this. 8284 82852018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 8286 8287 * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator. 8288 82892018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 8290 8291 * config/nds32/nds32.md: Adjust indention. 8292 82932018-04-05 Kito Cheng <kito.cheng@gmail.com> 8294 8295 * config/nds32/nds32.md (feature): New attribute. 8296 82972018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 8298 8299 * config/nds32/nds32.md (subtype): New attribute. 8300 83012018-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com> 8302 8303 PR target/85203 8304 * config/arm/arm-builtins.c (arm_expand_builtin): Change 8305 expansion to perform a bitwise AND of the argument followed by a 8306 boolean negation of the result. 8307 83082018-04-04 Peter Bergner <bergner@vnet.ibm.com> 8309 8310 PR rtl-optimization/84878 8311 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine 8312 the basic block. Assert the use reference is not artificial and that 8313 it has an associated insn. 8314 83152018-04-04 Michael Matz <matz@suse.de> 8316 8317 * builtins.c (compute_objsize): Pass correct operand 8318 to array_at_struct_end_p. 8319 83202018-04-04 Richard Biener <rguenther@suse.de> 8321 8322 PR lto/85176 8323 * dwarf2out.c (dwarf2out_register_external_die): Peel namespaces 8324 from contexts for DINFO_LEVEL_TERSE and below. 8325 83262018-04-04 Kito Cheng <kito.cheng@gmail.com> 8327 8328 * config/nds32/nds32-doubleword.md (move_<mode>): Require 8329 resiter_operand condition. 8330 * config/nds32/nds32.md (*move<mode>): Ditto. 8331 83322018-04-04 Kito Cheng <kito.cheng@gmail.com> 8333 Monk Chiang <sh.chiang04@gmail.com> 8334 8335 * config/nds32/nds32.md (movmisalign<mode>): New pattern. 8336 83372018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 8338 8339 * config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>. 8340 83412018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 8342 Kito Cheng <kito.cheng@gmail.com> 8343 8344 * config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code, 8345 nds32_cond_code_str, output_cond_branch, 8346 output_cond_branch_compare_zero, nds32_expand_cbranch, 8347 nds32_expand_cstore, nds32_expand_movcc, 8348 nds32_output_cbranchsi4_equality_zero, 8349 nds32_output_cbranchsi4_equality_reg, 8350 nds32_output_cbranchsi4_equality_reg_or_const_int, 8351 nds32_output_cbranchsi4_greater_less_zero: New functions. 8352 * config/nds32/nds32-protos.h (nds32_expand_cbranch, 8353 nds32_expand_cstore, nds32_expand_movcc, 8354 nds32_output_cbranchsi4_equality_zero, 8355 nds32_output_cbranchsi4_equality_reg, 8356 nds32_output_cbranchsi4_equality_reg_or_const_int, 8357 nds32_output_cbranchsi4_greater_less_zero): Declare. 8358 * config/nds32/predicates.md (nds32_movecc_comparison_operator, 8359 nds32_rimm11s_operand): New predicates. 8360 * config/nds32/nds32.h (nds32_expand_result_type): New enum type. 8361 * config/nds32/nds32.md: Rewrite all the branch and conditional move 8362 patterns. 8363 83642018-04-04 Kito Cheng <kito.cheng@gmail.com> 8365 8366 * config/nds32/nds32-doubleword.md: Refine all the instruction type. 8367 * config/nds32/nds32.md: Ditto. 8368 * config/nds32/pipelines.md: Ditto. 8369 83702018-04-04 Richard Biener <rguenther@suse.de> 8371 8372 PR tree-optimization/85168 8373 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid 8374 propagating abnormals. 8375 83762018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 8377 8378 * config/nds32/nds32.md (enabled): Use yes/no for this attribute. 8379 83802018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 8381 Kito Cheng <kito.cheng@gmail.com> 8382 8383 * config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function. 8384 * config/nds32/nds32-protos.h (nds32_long_call_p): Declare. 8385 * config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function. 8386 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. 8387 * config/nds32/nds32.md (sibcall_internal): New. 8388 (sibcall_register): Remove. 8389 (sibcall_immediate): Remove. 8390 (sibcall_value_internal): New. 8391 (sibcall_value_register): Remove. 8392 (sibcall_value_immediate): Remove. 8393 * config/nds32/predicates.md (nds32_general_register_operand): New. 8394 (nds32_call_address_operand): New. 8395 83962018-04-03 Jakub Jelinek <jakub@redhat.com> 8397 8398 PR rtl-optimization/85167 8399 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and 8400 bb_defs if *split_p, instead preinitialize it to NULL. 8401 8402 PR tree-optimization/85156 8403 * builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid 8404 evaluating the argument multiple times. 8405 84062018-04-03 Bill Schmidt <wschmidt@linux.ibm.com> 8407 8408 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather 8409 than vector. 8410 (_mm_cvtpd_ps): Likewise. 8411 (_mm_cvttpd_epi32): Likewise. 8412 * config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise. 8413 * config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine 8414 vector, pixel, and bool following altivec.h include. 8415 84162018-04-03 Martin Sebor <msebor@redhat.com> 8417 8418 * doc/extend.texi (Common Function Attributes): Clarify. 8419 (const attribute): Likewise. 8420 (pure attribute): Likewise. 8421 84222018-04-03 Jakub Jelinek <jakub@redhat.com> 8423 8424 PR target/85169 8425 * config/i386/i386.c (ix86_expand_vector_set): Use 8426 HOST_WIDE_INT_1U << elt instead of 1 << elt. Formatting fix. 8427 84282018-04-03 Uros Bizjak <ubizjak@gmail.com> 8429 8430 * config/i386/i386.c (emit_i387_cw_initialization): Always use logic 8431 instructions when changing rounding bits to preserve precision bits 8432 in the x87 control word. 8433 84342018-04-03 Martin Liska <mliska@suse.cz> 8435 8436 PR tree-optimization/82491 8437 * rtl.h (strip_offset_and_add): Replace += suboffset with 8438 poly_uint64 () + suboffset. 8439 84402018-03-29 Martin Liska <mliska@suse.cz> 8441 Martin Jambor <mjambor@suse.cz> 8442 8443 PR ipa/84947 8444 * ipa-cp.c (propagate_bits_across_jump_function): Bail out if 8445 param_type is not an integral or pointer type. 8446 84472018-04-03 Richard Biener <rguenther@suse.de> 8448 8449 * sese.h (recompute_all_dominators): Remove. 8450 84512018-04-02 Martin Sebor <msebor@redhat.com> 8452 8453 * doc/invoke.texi (-Wrestrict): Fix typos. 8454 84552018-04-02 Jim Wilson <jimw@sifive.com> 8456 8457 * config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero. 8458 * config/riscv/riscv.md (<optab>si3): Use QImode shift count. 8459 (<optab>di3, <optab>si3_extend): Likewise. 8460 (<optab>si3_mask, <optab>si3_mask_1): New. 8461 (<optab>di3_mask, <optab>di3_mask_1): New. 8462 (<optab>si3_extend_mask, <optab>si3_extend_mask_1): New. 8463 (lshrsi3_zero_extend_1): Use VOIDmode shift count. 8464 * config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count. 8465 84662018-04-02 Gerald Pfeifer <gerald@pfeifer.com> 8467 8468 * doc/cpp.texi (Variadic Macros): Fix line continuation in an 8469 example. 8470 84712018-04-02 Chung-Ju Wu <jasonwucj@gmail.com> 8472 8473 * config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define. 8474 (nds32_canonicalize_comparison): New function. 8475 84762018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 8477 Kito Cheng <kito.cheng@gmail.com> 8478 Kuan-Lin Chen <kuanlinchentw@gmail.com> 8479 8480 * config.gcc (nds32): Add nds32-relax-opt.o into extra_objs. 8481 * config/nds32/constants.md (unspec_volatile_element): Add 8482 UNSPEC_VOLATILE_RELAX_GROUP. 8483 * config/nds32/nds32-relax-opt.c: New file. 8484 * config/nds32/nds32-predicates.c 8485 (nds32_symbol_load_store_p): New function. 8486 * config/nds32/nds32-protos.h 8487 (nds32_symbol_load_store_p): Declare function. 8488 (make_pass_nds32_relax_opt): Declare new rtl pass function. 8489 * config/nds32/nds32.c 8490 (nds32_register_pass): New function to register pass. 8491 (nds32_register_passes): New function to register passes. 8492 * config/nds32/nds32.md (relax_group): New pattern. 8493 * config/nds32/nds32.opt (mrelax-hint): New option. 8494 * config/nds32/t-nds32 (nds32-relax-opt.o): New dependency. 8495 84962018-04-01 Kito Cheng <kito.cheng@gmail.com> 8497 8498 * config/nds32/t-nds32: Modify files dependency. 8499 85002018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 8501 8502 * config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character. 8503 (PROFILE_HOOK): Define its implementation. 8504 85052018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 8506 8507 * config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int 8508 type and 32-bit size. 8509 85102018-04-01 Jakub Jelinek <jakub@redhat.com> 8511 8512 PR middle-end/85090 8513 * config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F. 8514 (V_128_256): New mode iterator. 8515 (*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split. 8516 (*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise. 8517 (xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead 8518 of V. 8519 * config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and 8520 V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F. 8521 85222018-03-31 Segher Boessenkool <segher@kernel.crashing.org> 8523 8524 PR target/83315 8525 * config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet) 8526 NaN inputs correctly. 8527 85282018-03-30 Peter Bergner <bergner@vnet.ibm.com> 8529 8530 PR target/80546 8531 * config/rs6000/vsx.md (??r): New mode attribute. 8532 (*vsx_mov<mode>_64bit): Use it. 8533 (*vsx_mov<mode>_32bit): Likewise. 8534 85352018-03-30 Martin Sebor <msebor@redhat.com> 8536 8537 PR tree-optimization/84818 8538 * builtins.c (check_access): Use warning_n. 8539 85402018-03-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 8541 8542 PR target/83822 8543 * config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant 8544 condition. 8545 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant 8546 condition. 8547 85482018-03-30 Julia Koval <julia.koval@intel.com> 8549 8550 PR target/84413 8551 * x86-tune.def (movx, partial_reg_dependency): Enable for 8552 m_SKYLAKE_AVX512. 8553 85542018-03-29 Vladimir Makarov <vmakarov@redhat.com> 8555 8556 PR inline-asm/84985 8557 * lra-constraints.c (process_alt_operands): Move setting 8558 this_alternative_matches below. 8559 85602018-03-29 Martin Liska <mliska@suse.cz> 8561 8562 PR lto/84995. 8563 * doc/invoke.texi: Document how LTO works with debug info. 8564 Describe auto-load support of binutils. Mention 'x86-64' 8565 as valid option value of -march option. 8566 85672018-03-29 Jakub Jelinek <jakub@redhat.com> 8568 8569 * config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>. 8570 8571 PR c/85094 8572 * fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT. 8573 For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe 8574 OEP_NO_HASH_CHECK for recursive call, to avoid exponential 8575 checking. 8576 85772018-03-28 Peter Bergner <bergner@vnet.ibm.com> 8578 8579 PR target/84912 8580 * config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define. 8581 (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64. 8582 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support 8583 for RS6000_BTM_POWERPC64. 8584 (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64 8585 (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64. 8586 * config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro 8587 definition. 8588 (DIVDE): Use it. 8589 (DIVDEU): Likewise. 8590 85912018-03-28 Carl Love <cel@us.ibm.com> 8592 8593 Revert 8594 2017-09-27 Carl Love <cel@us.ibm.com> 8595 8596 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. 8597 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. 8598 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the 8599 fctiw instruction. 8600 86012018-03-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 8602 8603 * config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool 8604 instead of __vector bool. 8605 (_mm_max_pu8): Likewise. 8606 (_mm_min_pi16): Likewise. 8607 86082018-03-28 Peter Bergner <bergner@vnet.ibm.com> 8609 8610 PR target/84912 8611 * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion. 8612 (DIVWEUO): Likewise. 8613 (DIVDEO): Likewise. 8614 (DIVDEUO): Likewise. 8615 * config/rs6000/rs6000.c (builtin_function_type): Remove support for 8616 DIVWEUO and DIVDEUO. 8617 * config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs. 8618 (UNSPEC_DIV_EXTEND): Remove deleted unspecs. 8619 (div_extend): Likewise. 8620 * doc/extend.texi (__builtin_divweo): Remove documentation for deleted 8621 builtin function. 8622 (__builtin_divweuo): Likewise. 8623 (__builtin_divdeo): Likewise. 8624 (__builtin_divdeuo): Likewise. 8625 86262018-03-28 Jakub Jelinek <jakub@redhat.com> 8627 8628 PR target/85095 8629 * config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0, 8630 *sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns. 8631 8632 PR tree-optimization/82004 8633 * gimple-match-head.c (optimize_pow_to_exp): New function. 8634 * match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE. 8635 Don't fold to exp if optimize_pow_to_exp is false. 8636 86372018-03-28 Martin Liska <mliska@suse.cz> 8638 8639 PR other/84819 8640 * calls.c (initialize_argument_information): Fix trailing space. 8641 * common.opt: Fix typo and provide better explanation for 8642 -fsanitize-coverage option. 8643 * config/i386/i386.opt: Fix typo. 8644 86452018-03-28 Jakub Jelinek <jakub@redhat.com> 8646 Martin Liska <mliska@suse.cz> 8647 8648 PR sanitizer/85081 8649 * gimplify.c (asan_poison_variable): Don't do the check for 8650 gimplify_omp_ctxp here. 8651 (gimplify_decl_expr): Do it here. 8652 (gimplify_target_expr): Likewise. 8653 86542018-03-28 Martin Liska <mliska@suse.cz> 8655 8656 PR target/84988 8657 * config/i386/i386.c (ix86_function_arg_advance): Do not call 8658 chkp_type_bounds_count if MPX is not enabled. 8659 86602018-03-27 Chung-Ju Wu <jasonwucj@gmail.com> 8661 8662 * config/nds32/nds32.h (BRANCH_COST): Adjust cost. 8663 86642018-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> 8665 8666 PR target/84914 8667 * config/rs6000/rs6000.c (create_complex_muldiv): New helper 8668 function to create the function decl for complex long double 8669 multiply and divide for -mabi=ieeelongdouble. 8670 (init_float128_ieee): Call it. 8671 86722018-03-27 H.J. Lu <hongjiu.lu@intel.com> 8673 8674 PR target/85044 8675 * config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for 8676 -fcf-protection=branch -mibt. 8677 * config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes. 8678 86792018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 8680 8681 PR target/81863 8682 * config/arm/arm.c (arm_valid_symbolic_address): Handle arm_word_relocations 8683 86842018-03-27 Cesar Philippidis <cesar@codesourcery.com> 8685 8686 PR target/85056 8687 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to 8688 extern array declarations. 8689 86902018-03-27 Richard Biener <rguenther@suse.de> 8691 8692 PR middle-end/84067 8693 * match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with 8694 explicit single_use checks. 8695 86962018-03-27 Richard Biener <rguenther@suse.de> 8697 8698 PR tree-optimization/85082 8699 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces): 8700 Valueize the VUSE. 8701 87022018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 8703 8704 * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES 8705 * common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]): 8706 Turn on fasynchronous-unwind-tables and funwind-tables. 8707 87082018-03-26 Uros Bizjak <ubizjak@gmail.com> 8709 8710 PR target/85073 8711 * config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern. 8712 (*bmi_blsr_<mode>_ccz): Ditto. 8713 87142018-03-26 Tom de Vries <tom@codesourcery.com> 8715 8716 PR tree-optimization/85063 8717 * omp-general.c (offloading_function_p): New function. Factor out 8718 of ... 8719 * omp-offload.c (pass_omp_target_link::gate): ... here. 8720 * omp-general.h (offloading_function_p): Declare. 8721 * tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable 8722 with attribute omp declare target for offloading functions. 8723 87242018-03-24 Richard Sandiford <richard.sandiford@linaro.org> 8725 8726 PR tree-optimization/84005 8727 * tree-data-ref.h (get_base_for_alignment): Declare. 8728 * tree-data-ref.c (get_base_for_alignment_1): New function. 8729 (get_base_for_alignment): Likewise. 8730 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use 8731 get_base_for_alignment to find a suitable base object, instead 8732 of always using drb->base_address. 8733 87342018-03-23 Jakub Jelinek <jakub@redhat.com> 8735 8736 PR inline-asm/85022 8737 * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have 8738 known size by default. 8739 87402018-03-23 Vladimir Makarov <vmakarov@redhat.com> 8741 8742 PR inline-asm/85030 8743 * lra-constraints.c (process_alt_operands): Don't match BLKmode 8744 and non BLKmode operands. 8745 87462018-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 8747 8748 PR target/85026 8749 * config/arm/arm.md (unaligned_loadhis): Remove first alternative. 8750 Clean up attributes. 8751 87522018-03-23 Richard Biener <rguenther@suse.de> 8753 8754 PR debug/85020 8755 * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when 8756 we are going to emit early debug for LTO. 8757 87582018-03-23 Jakub Jelinek <jakub@redhat.com> 8759 8760 PR inline-asm/85034 8761 * function.c (match_asm_constraints_1): Don't optimize if input 8762 doesn't satisfy general_operand predicate for output's mode. 8763 8764 PR inline-asm/85022 8765 * alias.c (write_dependence_p): Don't require for x_canonicalized 8766 non-VOIDmode if x has VOIDmode. 8767 8768 PR sanitizer/85029 8769 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base), 8770 just don't try to optimize it rather than assert it never happens. 8771 87722018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 8773 8774 * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X 8775 macro expansions for definition of ST_INTERNAL_<mode> and 8776 LD_INTERNAL_<mode> builtins. 8777 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): 8778 Remove prototype. 8779 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this 8780 function. 8781 (altivec_expand_st_builtin): Likewise. 8782 (altivec_expand_builtin): Remove calls to deleted functions. 8783 (rs6000_address_for_altivec): Delete this function. 8784 * config/rs6000/vector.md: Remove expands for 8785 vector_altivec_load_<mode> and vector_altivec_store_<mode>. 8786 87872018-03-22 Sudakshina Das <sudi.das@arm.com> 8788 8789 PR target/84826 8790 * config/arm/arm.h (machine_function): Add static_chain_stack_bytes. 8791 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid 8792 re-computing once computed. 8793 (arm_expand_prologue): Compute machine->static_chain_stack_bytes. 8794 (arm_init_machine_status): Initialize 8795 machine->static_chain_stack_bytes. 8796 87972018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 8798 8799 PR target/84760 8800 * doc/extend.texi: Add four new prototypes for vec_ld. 8801 * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol 8802 definitions for more logical presentation. 8803 * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add 8804 entries for V1TI variants of __builtin_altivec_ld builtin. 8805 * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and 8806 handling of V1TI variant of LVX icode pattern. 8807 (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. 8808 (rs6000_gimple_fold_builtin): Likewise. 8809 (altivec_init_builtins): Add code to define 8810 __builtin_altivec_lvx_v1ti function. 8811 88122018-03-22 Jakub Jelinek <jakub@redhat.com> 8813 8814 PR inline-asm/84941 8815 * function.c (match_asm_constraints_1): Don't do the optimization 8816 if input isn't a REG, SUBREG, MEM or constant. 8817 88182018-03-22 Tom de Vries <tom@codesourcery.com> 8819 8820 PR tree-optimization/84956 8821 * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with 8822 bb_has_abnormal_pred. 8823 88242018-03-22 Jakub Jelinek <jakub@redhat.com> 8825 8826 PR sanitizer/85018 8827 * dwarf2asm.c (dw2_output_indirect_constant_1): Set 8828 DECL_INITIAL (decl) to decl at the end. 8829 * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, 8830 adjust the comment. 8831 88322018-03-21 Joseph Myers <joseph@codesourcery.com> 8833 8834 * doc/extend.texi (__builtin_tgmath): Document when complex 8835 integer types are treated as _Complex _Float64. 8836 88372018-03-21 Tom de Vries <tom@codesourcery.com> 8838 8839 * doc/extend.texi (__builtin_extend_pointer): Remove pasto. 8840 88412018-03-21 Jakub Jelinek <jakub@redhat.com> 8842 8843 PR tree-optimization/84960 8844 * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb 8845 if it is ENTRY block, move them into single succ of ENTRY in that case. 8846 88472018-03-21 Richard Sandiford <richard.sandiford@linaro.org> 8848 8849 PR tree-optimization/84811 8850 * poly-int.h (poly_span_traits): Remove the T3 parameter and 8851 promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT. 8852 (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p): 8853 (known_subrange_p): Update accordingly. Cast each value involved 8854 in the size comparison, rather than casting the result of the 8855 subtraction. 8856 88572018-03-21 Jakub Jelinek <jakub@redhat.com> 8858 8859 PR tree-optimization/84982 8860 * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion 8861 by flipping the least significant bit rather than all bits from 8862 bitpos to bitpos + bitsize - 1. 8863 88642018-03-21 Nathan Sidwell <nathan@acm.org> 8865 8866 * doc/extend.texi (Deprecated Features): Remove mention of 8867 long-deleted deprecations. 8868 88692018-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 8870 8871 PR jit/84288 8872 * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set. 8873 * configure: Regenerate. 8874 88752018-03-21 Tom de Vries <tom@codesourcery.com> 8876 8877 PR tree-optimization/83126 8878 * tree-parloops.c (num_phis): New function. 8879 (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure. 8880 88812018-03-21 Nathan Sidwell <nathan@acm.org> 8882 8883 * doc/extend.texi (Deprecated Features): Update deprecated flags, 8884 mention anon-struct/union members and trailing attributes. 8885 88862018-03-21 Bin Cheng <bin.cheng@arm.com> 8887 8888 PR tree-optimization/84969 8889 * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder 8890 builtin memset partitions if they set different rhs values. 8891 88922018-03-21 Jakub Jelinek <jakub@redhat.com> 8893 8894 PR rtl-optimization/84989 8895 * simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify 8896 VEC_DUPLICATE with scalar result mode. 8897 88982018-03-21 Martin Liska <mliska@suse.cz> 8899 8900 PR ipa/84963 8901 * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove 8902 not intended return statement. 8903 89042018-03-21 Martin Liska <mliska@suse.cz> 8905 8906 PR target/84988 8907 * tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro. 8908 (chkp_find_bound_slots_1): Limit number of iterations. 8909 89102018-03-20 David H. Gutteridge <dhgutteridge@sympatico.ca> 8911 8912 PR target/84838 8913 * Minor grammar fixes for x86 options. 8914 89152018-03-20 Jakub Jelinek <jakub@redhat.com> 8916 8917 PR debug/84875 8918 * dce.c (delete_unmarked_insns): Don't remove frame related noop moves 8919 holding REG_CFA_RESTORE notes, instead turn them into a USE. 8920 89212018-03-20 Peter Bergner <bergner@vnet.ibm.com> 8922 8923 PR target/83789 8924 * config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn. 8925 (altivec_lvx_<mode>_1op): Likewise. 8926 (altivec_stvx_<mode>_2op): Likewise. 8927 (altivec_stvx_<mode>_1op): Likewise. 8928 (altivec_lvx_<VM2:mode>): New define_expand. 8929 (altivec_stvx_<VM2:mode>): Likewise. 8930 (altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn. 8931 (altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. 8932 (altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise. 8933 (altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. 8934 * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders. 8935 (rs6000_gen_lvx): Likewise. 8936 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise. 8937 (altivec_expand_stv_builtin): Likewise. 8938 (altivec_expand_builtin): Likewise. 8939 * config/rs6000/vector.md: Likewise. 8940 89412018-03-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 8942 8943 PR target/82518 8944 * config/arm/arm.c (arm_array_mode_supported_p): Return false for 8945 BYTES_BIG_ENDIAN. 8946 89472018-03-20 Richard Biener <rguenther@suse.de> 8948 8949 PR target/84986 8950 * config/i386/i386.c (ix86_add_stmt_cost): Only cost 8951 sign-conversions as zero, fall back to standard scalar_stmt 8952 cost for the rest. 8953 89542018-03-20 Martin Liska <mliska@suse.cz> 8955 8956 PR ipa/84825 8957 * predict.c (rebuild_frequencies): Handle case when we have 8958 PROFILE_ABSENT, but flag_guess_branch_prob is false. 8959 89602018-03-20 Jakub Jelinek <jakub@redhat.com> 8961 8962 PR target/84990 8963 * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off 8964 flag_section_anchors. 8965 * varasm.c (use_blocks_for_decl_p): Remove hack for 8966 dw2_force_const_mem. 8967 8968 PR target/84845 8969 * config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename 8970 to ... 8971 (*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this. If pseudos can't 8972 be created, use lowpart_subreg of operands[0] rather than operands[0] 8973 itself. 8974 (*aarch64_reg_<mode>3_minus_mask): Rename to ... 8975 (*aarch64_ashl_reg_<mode>3_minus_mask): ... this. 8976 (*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate 8977 and n constraint instead of aarch64_shift_imm_di and Usd. 8978 (*aarch64_reg_<optab>_minus<mode>3): Rename to ... 8979 (*aarch64_<optab>_reg_minus<mode>3): ... this. 8980 89812018-03-20 Sudakshina Das <sudi.das@arm.com> 8982 8983 PR target/82989 8984 * config/arm/neon.md (ashldi3_neon): Update ?s for constraints 8985 to favor GPR over NEON registers. 8986 (<shift>di3_neon): Likewise. 8987 89882018-03-20 Tom de Vries <tom@codesourcery.com> 8989 8990 PR target/84952 8991 * config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync. 8992 (nvptx_process_pars): Emit bar.sync asap and alap. 8993 89942018-03-20 Tom de Vries <tom@codesourcery.com> 8995 8996 PR target/84954 8997 * config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update 8998 seen_label if seen_label is already set. 8999 90002018-03-20 Jakub Jelinek <jakub@redhat.com> 9001 9002 PR target/84945 9003 * config/i386/i386.c (fold_builtin_cpu): For features above 31 9004 use __cpu_features2 variable instead of __cpu_model.__cpu_features[0]. 9005 Use 1U instead of 1. Formatting fixes. 9006 9007 PR c/84953 9008 * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type 9009 instead of TREE_TYPE (s1) for the return value. 9010 90112018-03-19 Jakub Jelinek <jakub@redhat.com> 9012 9013 PR tree-optimization/84946 9014 * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute 9015 bitsize + bitsize in poly_uint64 rather than poly_int64. 9016 9017 PR sanitizer/78651 9018 * dwarf2asm.c: Include fold-const.c. 9019 (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR 9020 of decl rather than decl itself. 9021 9022 PR rtl-optimization/84643 9023 * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator. 9024 90252018-03-19 Maxim Ostapenko <m.ostapenko@samsung.com> 9026 9027 PR sanitizer/78651 9028 * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before 9029 calling assemble_variable. 9030 90312018-03-19 Sudakshina Das <sudi.das@arm.com> 9032 9033 PR target/81647 9034 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify 9035 instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED. 9036 90372018-03-19 Jim Wilson <jimw@sifive.com> 9038 9039 PR bootstrap/84856 9040 * config/riscv/riscv.c (riscv_function_arg_boundary): Use 9041 PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY. 9042 (riscv_first_stack_step): Likewise. 9043 (riscv_option_override): Use STACK_BOUNDARY instead of 9044 MIN_STACK_BOUNDARY. 9045 * config/riscv/riscv.h (STACK_BOUNDARY): Renamed from 9046 MIN_STACK_BOUNDARY. 9047 (BIGGEST_ALIGNMENT): Set to 128. 9048 (PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY. 9049 (RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of 9050 STACK_BOUNDARY. 9051 90522018-03-19 Richard Biener <rguenther@suse.de> 9053 9054 PR tree-optimization/84933 9055 * tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound 9056 values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE. 9057 90582018-03-19 Richard Biener <rguenther@suse.de> 9059 9060 PR tree-optimization/84859 9061 * tree-ssa-phiopt.c (single_trailing_store_in_bb): New function. 9062 (cond_if_else_store_replacement): Perform sinking operation on 9063 single-store BBs regardless of MAX_STORES_TO_SINK setting. 9064 Generalize what a BB with a single eligible store is. 9065 90662018-03-19 Richard Biener <rguenther@suse.de> 9067 9068 PR tree-optimization/84929 9069 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard 9070 chrec_is_positive against non-chrec arg. 9071 90722018-03-19 Tamar Christina <tamar.christina@arm.com> 9073 9074 PR target/84711 9075 * config/arm/arm.c (arm_can_change_mode_class): revert r258554. 9076 90772018-03-18 Martin Liska <mliska@suse.cz> 9078 9079 PR rtl-optimization/84635 9080 * regrename.c (build_def_use): Use matches_mode only when 9081 matches >= 0. 9082 90832018-03-18 Richard Sandiford <richard.sandiford@linaro.org> 9084 9085 PR tree-optimization/84913 9086 * tree-vect-loop.c (vectorizable_reduction): Don't try to 9087 vectorize chains of COND_EXPRs. 9088 90892018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 9090 9091 * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value. 9092 90932018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 9094 9095 * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. 9096 90972018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 9098 9099 * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. 9100 91012018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> 9102 Kito Cheng <kito.cheng@gmail.com> 9103 9104 * config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare. 9105 * config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array. 9106 (nds32_adjust_reg_alloc_order): New function. 9107 * config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define. 9108 91092018-03-17 Kito Cheng <kito.cheng@gmail.com> 9110 9111 * config/nds32/nds32.c (nds32_asm_output_mi_thunk, 9112 nds32_print_operand, nds32_print_operand_address): Use 9113 HOST_WIDE_INT_PRINT_DEC instead. 9114 91152018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> 9116 9117 * config/nds32/nds32.c (nds32_register_priority): Modify cost. 9118 91192018-03-17 Jakub Jelinek <jakub@redhat.com> 9120 9121 PR target/84902 9122 * config/i386/i386.c (initial_ix86_tune_features, 9123 initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than 9124 unsigned long long. 9125 (set_ix86_tune_features): Change ix86_tune_mask from unsigned int 9126 to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune 9127 rather than 1u << ix86_tune. Formatting fix. 9128 (ix86_option_override_internal): Change ix86_arch_mask from 9129 unsigned int to unsigned HOST_WIDE_INT, initialize to 9130 HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch. 9131 (ix86_function_specific_restore): Likewise. 9132 91332018-03-16 Jakub Jelinek <jakub@redhat.com> 9134 9135 PR target/84899 9136 * postreload.c (reload_combine_recognize_pattern): Perform 9137 INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and 9138 truncate_int_for_mode the result for the destination's mode. 9139 9140 PR c/84909 9141 * hsa-gen.c (mem_type_for_type): Fix comment typo. 9142 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): 9143 Likewise. 9144 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): 9145 Likewise. 9146 91472018-03-16 Vladimir Makarov <vmakarov@redhat.com> 9148 9149 PR target/84876 9150 * lra-assigns.c (lra_split_hard_reg_for): Don't use 9151 regno_allocno_class_array and sorted_pseudos. 9152 * lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in 9153 insns where regno is used. 9154 91552018-03-16 Martin Liska <mliska@suse.cz> 9156 9157 PR ipa/84833 9158 * multiple_target.c (create_dispatcher_calls): Redirect 9159 reference in the symbol table. 9160 91612018-03-16 Martin Liska <mliska@suse.cz> 9162 9163 PR ipa/84722 9164 * multiple_target.c (create_dispatcher_calls): Redirect also 9165 an alias. 9166 91672018-03-16 Jakub Jelinek <jakub@redhat.com> 9168 9169 PR c++/79937 9170 PR c++/82410 9171 * tree.h (TARGET_EXPR_NO_ELIDE): Define. 9172 * gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with 9173 TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR. 9174 91752018-03-16 Julia Koval <julia.koval@intel.com> 9176 9177 * doc/invoke.texi (Skylake Server): Add CLWB. 9178 Cannonlake): Remove CLWB. 9179 91802018-03-16 Jakub Jelinek <jakub@redhat.com> 9181 9182 PR tree-optimization/84841 9183 * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from 9184 1 << 3. 9185 (FLOAT_ONE_CONST_TYPE): Define. 9186 (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0. 9187 (sort_by_operand_rank): Put entries with higher constant_type last 9188 rather than first to match comments. 9189 91902018-03-15 Sandra Loosemore <sandra@codesourcery.com> 9191 9192 * config/nios2/nios2.md (movsi_internal): Fix thinko in 9193 split predicate. 9194 91952018-03-15 Jakub Jelinek <jakub@redhat.com> 9196 9197 PR c++/79085 9198 * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment 9199 check and use address of target always. 9200 92012018-03-15 H.J. Lu <hongjiu.lu@intel.com> 9202 9203 PR target/84574 9204 * config/i386/i386.c (indirect_thunk_needed): Update comments. 9205 (indirect_thunk_bnd_needed): Likewise. 9206 (indirect_thunks_used): Likewise. 9207 (indirect_thunks_bnd_used): Likewise. 9208 (indirect_return_needed): New. 9209 (indirect_return_bnd_needed): Likewise. 9210 (output_indirect_thunk_function): Add a bool argument for 9211 function return. 9212 (output_indirect_thunk_function): Don't generate alias for 9213 function return thunk. 9214 (ix86_code_end): Call output_indirect_thunk_function to generate 9215 function return thunks. 9216 (ix86_output_function_return): Set indirect_return_bnd_needed 9217 and indirect_return_needed instead of indirect_thunk_bnd_needed 9218 and indirect_thunk_needed. 9219 92202018-03-15 Olga Makhotina <olga.makhotina@intel.com> 9221 9222 * config/i386/sgxintrin.h (_enclv_u32): New intrinsic. 9223 (__enclv_bc, __enclv_cd, __enclv_generic): New definitions. 9224 (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves. 9225 92262018-03-15 David Malcolm <dmalcolm@redhat.com> 9227 Paul Hua <paul.hua.gm@gmail.com> 9228 9229 PR c/84852 9230 * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp. 9231 92322018-03-15 Segher Boessenkool <segher@kernel.crashing.org> 9233 9234 * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the 9235 TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode 9236 resp. SFmode cases. 9237 92382018-03-15 Tamar Christina <tamar.christina@arm.com> 9239 9240 PR target/84711 9241 * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE 9242 instead of GET_MODE_SIZE when comparing Units. 9243 92442018-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> 9245 9246 PR target/68256 9247 * varasm.c (hash_section): Return an unchangeble hash value 9248 * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): 9249 Return !aarch64_can_use_per_function_literal_pools_p (). 9250 92512018-03-15 Jakub Jelinek <jakub@redhat.com> 9252 9253 PR target/84860 9254 * optabs.c (emit_conditional_move): Pass address of cmode's copy 9255 rather than address of cmode as last argument to prepare_cmp_insn. 9256 92572018-03-15 Julia Koval <julia.koval@intel.com> 9258 9259 * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, 9260 F_AVX512VNNI, F_AVX512BITALG): New. 9261 92622018-03-14 John David Anglin <danglin@gcc.gnu.org> 9263 9264 PR target/83451 9265 * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload 9266 insn for floating-point loads and stores. 9267 92682018-03-14 Carl Love <cel@us.ibm.com> 9269 9270 * config/rs6000/rs6000-c.c: Add macro definitions for 9271 ALTIVEC_BUILTIN_VEC_PERMXOR. 9272 * config/rs6000/rs6000.h: Add #define for vec_permxor builtin. 9273 * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR. 9274 * config/rs6000/altivec.md (altivec_vpermxor): New define expand. 9275 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case 9276 UNSPEC_VPERMXOR. 9277 * config/doc/extend.texi: Add prototypes for vec_permxor. 9278 92792018-03-14 David Malcolm <dmalcolm@redhat.com> 9280 9281 PR c/84852 9282 * diagnostic-show-locus.c (class layout_point): Convert m_line 9283 from int to linenum_type. 9284 (line_span::comparator): Use linenum "compare" function when 9285 comparing line numbers. 9286 (test_line_span): New function. 9287 (layout_range::contains_point): Convert param "row" from int to 9288 linenum_type. 9289 (layout_range::intersects_line_p): Likewise. 9290 (layout::will_show_line_p): Likewise. 9291 (layout::print_source_line): Likewise. 9292 (layout::should_print_annotation_line_p): Likewise. 9293 (layout::print_annotation_line): Likewise. 9294 (layout::print_leading_fixits): Likewise. 9295 (layout::annotation_line_showed_range_p): Likewise. 9296 (struct line_corrections): Likewise for field m_row. 9297 (line_corrections::line_corrections): Likewise for param "row". 9298 (layout::print_trailing_fixits): Likewise. 9299 (layout::get_state_at_point): Likewise. 9300 (layout::get_x_bound_for_row): Likewise. 9301 (layout::print_line): Likewise. 9302 (diagnostic_show_locus): Likewise for locals "last_line" and 9303 "row". 9304 (selftest::diagnostic_show_locus_c_tests): Call test_line_span. 9305 * input.c (selftest::test_linenum_comparisons): New function. 9306 (selftest::input_c_tests): Call it. 9307 * selftest.c (selftest::test_assertions): Test ASSERT_GT, 9308 ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT. 9309 * selftest.h (ASSERT_GT): New macro. 9310 (ASSERT_GT_AT): New macro. 9311 (ASSERT_LT): New macro. 9312 (ASSERT_LT_AT): New macro. 9313 93142018-03-14 Segher Boessenkool <segher@kernel.crashing.org> 9315 9316 PR rtl-optimization/84780 9317 * combine.c (distribute_links): Don't make a link based on pc_rtx. 9318 93192018-03-14 Martin Liska <mliska@suse.cz> 9320 9321 * tree.c (record_node_allocation_statistics): Use 9322 get_stats_node_kind. 9323 (get_stats_node_kind): New function extracted from 9324 record_node_allocation_statistics. 9325 (free_node): Use get_stats_node_kind. 9326 93272018-03-14 Richard Biener <rguenther@suse.de> 9328 9329 * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts 9330 that the value-set of ANTIC_IN doesn't grow. 9331 9332 Revert 9333 * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs 9334 member. 9335 (BB_VISITED_WITH_VISITED_SUCCS): New define. 9336 (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. 9337 93382018-03-14 Julia Koval <julia.koval@intel.com> 9339 9340 * config.gcc (icelake-client, icelake-server): New. 9341 (icelake): Remove. 9342 * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit. 9343 (initial_ix86_arch_features): Ditto. 9344 (PTA_SKYLAKE): Add SGX. 9345 (PTA_ICELAKE): Remove. 9346 (PTA_ICELAKE_CLIENT): New. 9347 (PTA_ICELAKE_SERVER): New. 9348 (ix86_option_override_internal): Split up icelake on icelake client and 9349 icelake server. 9350 (get_builtin_code_for_version): Ditto. 9351 (fold_builtin_cpu): Ditto. 9352 * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto. 9353 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto 9354 * config/i386/i386.h (processor_type): Ditto. 9355 * doc/invoke.texi: Ditto. 9356 93572018-03-14 Jakub Jelinek <jakub@redhat.com> 9358 9359 PR sanitizer/83392 9360 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also 9361 INTEGER_CST offset, add it together with bitpos / 8 and 9362 sign extend based on POINTER_SIZE. 9363 9364 PR target/84844 9365 Revert 9366 2017-04-20 Uros Bizjak <ubizjak@gmail.com> 9367 9368 PR target/78090 9369 * config/i386/constraints.md (Yc): New register constraint. 9370 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): 9371 Use Yc constraint for alternative 2 of operand 0. Remove 9372 preferred_for_speed attribute. 9373 93742018-03-14 Richard Biener <rguenther@suse.de> 9375 9376 PR tree-optimization/84830 9377 * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN 9378 with the old one to avoid oscillations. 9379 93802018-03-13 Vladimir Makarov <vmakarov@redhat.com> 9381 9382 PR target/83712 9383 * lra-assigns.c (find_all_spills_for): Ignore uninteresting 9384 pseudos. 9385 (assign_by_spills): Return a flag of reload assignment failure. 9386 Do not process the reload assignment failures. Do not spill other 9387 reload pseudos if they has the same reg class. Update n if 9388 necessary. 9389 (lra_assign): Add a return arg. Set up from the result of 9390 assign_by_spills call. 9391 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 9392 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 9393 usage_insns if it is not NULL. 9394 (spill_hard_reg_in_range): New function. 9395 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 9396 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 9397 function prototypes. 9398 (lra_assign): Change prototype. 9399 * lra.c (lra): Add code to deal with fails by splitting hard reg 9400 live ranges. 9401 94022018-03-01 Palmer Dabbelt <palmer@sifive.com> 9403 9404 * config/riscv/riscv.opt (mrelax): New option. 9405 * config/riscv/riscv.c (riscv_file_start): Emit ".option 9406 "norelax" when riscv_mrelax is disabled. 9407 * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". 9408 94092018-03-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 9410 9411 PR target/84743 9412 * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel 9413 reassociation for int modes. 9414 94152018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 9416 9417 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): 9418 Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR 9419 for big-endian. 9420 * config/aarch64/iterators.md (hi_lanes_optab): New int attribute. 9421 * config/aarch64/aarch64-sve.md 9422 (*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to... 9423 (aarch64_sve_<perm_insn><perm_hilo><mode>): ...this. 9424 (*extend<mode><Vwide>2): Rename to... 9425 (aarch64_sve_extend<mode><Vwide>2): ...this. 9426 (vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand, 9427 renaming the old pattern to... 9428 (aarch64_sve_punpk<perm_hilo>_<mode>): ...this. Only define 9429 unsigned packs. 9430 (vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a 9431 define_expand, renaming the old pattern to... 9432 (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this. 9433 (*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete. 9434 (vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into 9435 account when deciding which SVE instruction the optab should use. 9436 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise. 9437 94382018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 9439 9440 * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM) 9441 (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM) 9442 (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM) 9443 (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants. 9444 (tlsdesc_small_<mode>): Turn a define_expand and use 9445 tlsdesc_small_sve_<mode> for SVE. Rename original define_insn to... 9446 (tlsdesc_small_advsimd_<mode>): ...this. 9447 (tlsdesc_small_sve_<mode>): New pattern. 9448 94492018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 9450 9451 * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) 9452 (UNSPEC_UMUL_HIGHPART): New constants. 9453 (MUL_HIGHPART): New int iteraor. 9454 (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART. 9455 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New 9456 define_expand. 9457 (*<su>mul<mode>3_highpart): New define_insn. 9458 94592018-03-13 Eric Botcazou <ebotcazou@adacore.com> 9460 9461 PR lto/84805 9462 * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of 9463 incomplete types. 9464 94652018-03-13 Martin Liska <mliska@suse.cz> 9466 9467 PR ipa/84658. 9468 * (sem_item_optimizer::sem_item_optimizer): Initialize new 9469 vector. 9470 (sem_item_optimizer::~sem_item_optimizer): Release it. 9471 (sem_item_optimizer::merge_classes): Register variable aliases. 9472 (sem_item_optimizer::fixup_pt_set): New function. 9473 (sem_item_optimizer::fixup_points_to_sets): Likewise. 9474 * ipa-icf.h: Declare new variables and functions. 9475 94762018-03-13 Jakub Jelinek <jakub@redhat.com> 9477 9478 PR middle-end/84834 9479 * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of 9480 integer_pow2p@2 and test integer_pow2p in condition. 9481 (A < 0 ? C : 0): Similarly for @1. 9482 9483 PR middle-end/84831 9484 * stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p) 9485 characters starting at p contain '\0' character, don't look beyond 9486 that. 9487 9488 PR target/84827 9489 * config/i386/i386.md (round<mode>2): For 387 fancy math, disable 9490 pattern if -ftrapping-math -fno-fp-int-builtin-inexact. 9491 9492 PR target/84828 9493 * reg-stack.c (change_stack): Change update_end var from int to 9494 rtx_insn *, if non-NULL don't update just BB_END (current_block), but 9495 also call set_block_for_insn on the newly added insns and rescan. 9496 9497 PR target/84786 9498 * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v 9499 on the last operand. 9500 9501 PR c++/84704 9502 * tree.c (stabilize_reference_1): Return save_expr (e) for 9503 STATEMENT_LIST even if it doesn't have side-effects. 9504 95052018-03-12 Jonathan Wakely <jwakely@redhat.com> 9506 9507 * doc/invoke.texi (-mclflushopt): Fix spelling of option. 9508 95092018-03-12 Renlin Li <renlin.li@arm.com> 9510 9511 * config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to 9512 aarch64_output_scalar_simd_mov_immediate. 9513 95142018-03-12 Martin Sebor <msebor@redhat.com> 9515 9516 PR tree-optimization/83456 9517 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning 9518 for perfectly overlapping calls to memcpy. 9519 (gimple_fold_builtin_memory_chk): Same. 9520 (gimple_fold_builtin_strcpy): Handle no-warning. 9521 (gimple_fold_builtin_stxcpy_chk): Same. 9522 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning. 9523 95242018-03-12 Segher Boessenkool <segher@kernel.crashing.org> 9525 9526 * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named" 9527 parameter. Use it for SFmode. 9528 (rs6000_function_arg_advance_1): Adjust. 9529 (rs6000_function_arg): Adjust. 9530 (rs6000_gimplify_va_arg): Pass false for that new parameter. 9531 95322018-03-12 Segher Boessenkool <segher@kernel.crashing.org> 9533 9534 PR rtl-optimization/84169 9535 PR rtl-optimization/84780 9536 * combine.c (can_combine_p): Check for a 2-insn combination whether 9537 the destination register is used between the two insns, too. 9538 95392018-03-12 Richard Biener <rguenther@suse.de> 9540 9541 PR tree-optimization/84803 9542 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything 9543 for refs DR analysis didn't process. 9544 95452018-03-12 Richard Biener <rguenther@suse.de> 9546 9547 PR tree-optimization/84777 9548 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For 9549 force-vectorize loops ignore whether we are optimizing for size. 9550 95512018-03-12 Chung-Ju Wu <jasonwucj@gmail.com> 9552 9553 * config/nds32/nds32.c (nds32_md_asm_adjust): New function. 9554 (TARGET_MD_ASM_ADJUST): Define. 9555 95562018-03-12 Monk Chiang <sh.chiang04@gmail.com> 9557 Kito Cheng <kito.cheng@gmail.com> 9558 Chung-Ju Wu <jasonwucj@gmail.com> 9559 9560 * config/nds32/nds32.c (nds32_compute_stack_frame, 9561 nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple, 9562 nds32_emit_stack_v3push, nds32_emit_stack_v3pop, 9563 nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue, 9564 nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine. 9565 * config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM, 9566 NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New. 9567 * config/nds32/nds32.md (prologue, epilogue): Use macro 9568 NDS32_V3PUSH_AVAILABLE_P to do checking. 9569 95702018-03-11 Jakub Jelinek <jakub@redhat.com> 9571 9572 PR debug/58150 9573 * dwarf2out.c (gen_enumeration_type_die): Don't guard adding 9574 DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf, 9575 but on TYPE_SIZE. Don't do anything for ENUM_IS_OPAQUE if not creating 9576 a new die. Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE. Guard 9577 addition of most attributes on !orig_type_die or the attribute not 9578 being present already. Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE. 9579 95802018-03-11 Kito Cheng <kito.cheng@gmail.com> 9581 Chung-Ju Wu <jasonwucj@gmail.com> 9582 9583 * config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define 9584 __NDS32_VH__ macro. 9585 * config/nds32/nds32.opt (mvh): New option. 9586 95872018-03-11 Kito Cheng <kito.cheng@gmail.com> 9588 Chung-Ju Wu <jasonwucj@gmail.com> 9589 9590 * config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare 9591 function. 9592 * config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function. 9593 * config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its 9594 definition. 9595 95962018-03-11 Kito Cheng <kito.cheng@gmail.com> 9597 Chung-Ju Wu <jasonwucj@gmail.com> 9598 9599 * config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New 9600 function. 9601 * config/nds32/nds32-multiple.md (strlensi): New pattern. 9602 * config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function. 9603 96042018-03-11 Monk Chiang <sh.chiang04@gmail.com> 9605 Kito Cheng <kito.cheng@gmail.com> 9606 Chung-Ju Wu <jasonwucj@gmail.com> 9607 9608 * config/nds32/constants.md (unspec_element): Add UNSPEC_FFB, 9609 UNSPEC_FFMISM and UNSPEC_FLMISM. 9610 * config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description 9611 for ffb, ffmism and flmism. 9612 * config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern. 9613 (unspec_ffmism): Ditto. 9614 (unspec_flmism): Ditto. 9615 (nds32_expand_builtin_impl): Check if string extension is available. 9616 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB, 9617 NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM. 9618 96192018-03-10 Vladimir Makarov <vmakarov@redhat.com> 9620 9621 Reverting patch: 9622 2018-03-09 Vladimir Makarov <vmakarov@redhat.com> 9623 9624 PR target/83712 9625 * lra-assigns.c (assign_by_spills): Return a flag of reload 9626 assignment failure. Do not process the reload assignment 9627 failures. Do not spill other reload pseudos if they has the same 9628 reg class. 9629 (lra_assign): Add a return arg. Set up from the result of 9630 assign_by_spills call. 9631 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 9632 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 9633 usage_insns if it is not NULL. 9634 (spill_hard_reg_in_range): New function. 9635 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 9636 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 9637 function prototypes. 9638 (lra_assign): Change prototype. 9639 * lra.c (lra): Add code to deal with fails by splitting hard reg 9640 live ranges. 9641 96422018-03-10 H.J. Lu <hongjiu.lu@intel.com> 9643 9644 PR target/84807 9645 * config/i386/i386.opt: Replace Enforcment with Enforcement. 9646 96472018-03-10 Alexandre Oliva <aoliva@redhat.com> 9648 9649 PR debug/84620 9650 * dwarf2out.h (dw_val_class): Add dw_val_class_symview. 9651 (dw_val_node): Add val_symbolic_view. 9652 * dwarf2out.c (dw_line_info_table): Add symviews_since_reset. 9653 (symview_upper_bound): New. 9654 (new_line_info_table): Initialize symviews_since_reset. 9655 (dwarf2out_source_line): Count symviews_since_reset and set 9656 symview_upper_bound. 9657 (dw_val_equal_p): Handle symview. 9658 (add_AT_symview): New. 9659 (print_dw_val): Handle symview. 9660 (attr_checksum, attr_checksum_ordered): Likewise. 9661 (same_dw_val_p, size_of_die): Likewise. 9662 (value_format, output_die): Likewise. 9663 (add_high_low_attributes): Use add_AT_symview for entry_view. 9664 (dwarf2out_finish): Reset symview_upper_bound, clear 9665 zero_view_p. 9666 96672018-03-09 Peter Bergner <bergner@vnet.ibm.com> 9668 9669 PR target/83969 9670 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype. 9671 Add strict argument and use it. 9672 (rs6000_split_multireg_move): Update for new strict argument. 9673 (mem_operand_gpr): Disallow all non-offsettable addresses. 9674 * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint. 9675 96762018-03-09 Jakub Jelinek <jakub@redhat.com> 9677 9678 PR target/84772 9679 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp 9680 temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY. 9681 * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise. 9682 9683 PR c++/84767 9684 * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped 9685 decl, use remap_type if we want to use the type. 9686 96872018-03-09 Martin Sebor <msebor@redhat.com> 9688 9689 PR tree-optimization/84526 9690 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): 9691 Remove dead code. 9692 (builtin_access::generic_overlap): Be prepared to handle non-array 9693 base objects. 9694 96952018-03-09 Alexandre Oliva <aoliva@redhat.com> 9696 9697 PR rtl-optimization/84682 9698 * lra-constraints.c (process_address_1): Check is_address flag 9699 for address constraints. 9700 (process_alt_operands): Likewise. 9701 * lra.c (lra_set_insn_recog_data): Pass asm operand locs to 9702 preprocess_constraints. 9703 * recog.h (preprocess_constraints): Add oploc parameter. 9704 Adjust callers. 9705 * recog.c (preprocess_constraints): Test address_operand for 9706 CT_ADDRESS constraints. 9707 97082018-03-09 Vladimir Makarov <vmakarov@redhat.com> 9709 9710 PR target/83712 9711 * lra-assigns.c (assign_by_spills): Return a flag of reload 9712 assignment failure. Do not process the reload assignment 9713 failures. Do not spill other reload pseudos if they has the same 9714 reg class. 9715 (lra_assign): Add a return arg. Set up from the result of 9716 assign_by_spills call. 9717 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 9718 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 9719 usage_insns if it is not NULL. 9720 (spill_hard_reg_in_range): New function. 9721 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 9722 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 9723 function prototypes. 9724 (lra_assign): Change prototype. 9725 * lra.c (lra): Add code to deal with fails by splitting hard reg 9726 live ranges. 9727 97282018-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9729 9730 PR target/83193 9731 * common/config/arm/arm-common.c (arm_parse_arch_option_name): 9732 Accept complain bool parameter. Only emit errors if it is true. 9733 (arm_parse_cpu_option_name): Likewise. 9734 (arm_target_thumb_only): Adjust callers of the above. 9735 * config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust 9736 prototype to take a default true bool parameter. 9737 (arm_parse_arch_option_name): Likewise. 9738 97392018-03-09 David Malcolm <dmalcolm@redhat.com> 9740 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 9741 9742 PR jit/64089 9743 PR jit/84288 9744 * Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New. 9745 * configure: Regenerate. 9746 * configure.ac ("linker --version-script option"): New. 9747 ("linker soname option"): New. 9748 97492018-03-09 Richard Biener <rguenther@suse.de> 9750 9751 PR tree-optimization/84775 9752 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink 9753 immediate uses of predicate stmts and mark them modified. 9754 9755 Revert 9756 PR tree-optimization/84178 9757 * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates 9758 to caller. 9759 (version_loop_for_if_conversion): Delay update_ssa call. 9760 (tree_if_conversion): Delay update_ssa until after predicate 9761 insertion. 9762 97632018-03-09 Eric Botcazou <ebotcazou@adacore.com> 9764 9765 PR target/84763 9766 * config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation 9767 when the function accesses prior frames. 9768 97692018-03-08 Jakub Jelinek <jakub@redhat.com> 9770 9771 PR debug/84456 9772 * dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call 9773 gen_llsym, otherwise call maybe_gen_llsym. 9774 9775 PR inline-asm/84742 9776 * recog.c (asm_operand_ok): Return 0 if multi-character constraint 9777 has ',' character inside of it. 9778 97792018-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 9780 9781 PR target/84748 9782 * config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern 9783 as clobbering CC_REGNUM. 9784 97852018-03-08 Richard Biener <rguenther@suse.de> 9786 9787 PR middle-end/84552 9788 * tree-scalar-evolution.c: Include tree-into-ssa.h. 9789 (follow_copies_to_constant): Do not follow SSA names registered 9790 for update. 9791 97922018-03-08 Richard Biener <rguenther@suse.de> 9793 9794 PR tree-optimization/84178 9795 * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates 9796 to caller. 9797 (version_loop_for_if_conversion): Delay update_ssa call. 9798 (tree_if_conversion): Delay update_ssa until after predicate 9799 insertion. 9800 98012018-03-08 David Malcolm <dmalcolm@redhat.com> 9802 9803 PR tree-optimization/84178 9804 * tree-if-conv.c (release_bb_predicate): Remove the 9805 the assertion that the stmts have NULL use_ops. 9806 Discard the statements, asserting that they haven't 9807 yet been added to a BB. 9808 98092018-03-08 Richard Biener <rguenther@suse.de> 9810 9811 PR tree-optimization/84746 9812 * tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL. 9813 (phi_translate): Pass in destination ANTIC_OUT set. 9814 (phi_translate_1): Likewise. For a simplified result lookup 9815 a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets. 9816 (phi_translate_set): Adjust. 9817 (do_pre_regular_insertion): Likewise. 9818 (do_pre_partial_partial_insertion): Likewise. 9819 98202018-03-08 Martin Liska <mliska@suse.cz> 9821 9822 PR gcov-profile/84735 9823 * doc/gcov.texi: Document usage of profile files. 9824 * gcov-io.h: Document changes in the format. 9825 98262018-03-08 Alexandre Oliva <aoliva@redhat.com> 9827 9828 PR debug/84404 9829 PR debug/84408 9830 * dwarf2out.c (struct dw_line_info_table): Update comments for 9831 view == -1. 9832 (FORCE_RESET_NEXT_VIEW): New. 9833 (FORCE_RESETTING_VIEW_P): New. 9834 (RESETTING_VIEW_P): Check for -1 too. 9835 (ZERO_VIEW_P): Likewise. 9836 (new_line_info_table): Force-reset next view. 9837 (dwarf2out_begin_function): Likewise. 9838 (dwarf2out_source_line): Simplify zero_view_p initialization. 9839 Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of 9840 view directly. Omit view when omitting .loc at line 0. 9841 98422018-03-08 Jakub Jelinek <jakub@redhat.com> 9843 9844 PR tree-optimization/84740 9845 * tree-switch-conversion.c (process_switch): Call build_constructors 9846 only if info.phi_count is non-zero. 9847 9848 PR tree-optimization/84739 9849 * tree-tailcall.c (find_tail_calls): Check call arguments against 9850 DECL_ARGUMENTS (current_function_decl) rather than 9851 DECL_ARGUMENTS (func) when checking for tail recursion. 9852 98532018-03-07 Jakub Jelinek <jakub@redhat.com> 9854 9855 * doc/contrib.texi: Add entries for Martin Liska, David Malcolm, 9856 Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and 9857 Volker Reichelt's entry and add entries for people that perform 9858 GCC fuzzy testing and report numerous bugs. 9859 98602018-03-07 Segher Boessenkool <segher@kernel.crashing.org> 9861 9862 PR target/82411 9863 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put 9864 readonly data in sdata, if that is disabled. 9865 * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option. 9866 * doc/invoke.texi (RS/6000 and PowerPC Options): Document 9867 -mreadonly-in-sdata option. 9868 98692018-03-07 Martin Sebor <msebor@redhat.com> 9870 9871 PR tree-optimization/84468 9872 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor 9873 basic block when looking for nul assignment. 9874 98752018-03-07 Eric Botcazou <ebotcazou@adacore.com> 9876 9877 PR target/84277 9878 * except.h (output_function_exception_table): Adjust prototype. 9879 * except.c (output_function_exception_table): Remove FNNAME parameter 9880 and add SECTION parameter. Ouput one part of the table at a time. 9881 * final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output 9882 the first part of the exception table and emit unwind directives. 9883 * config/i386/i386-protos.h (i386_pe_end_cold_function): Declare. 9884 (i386_pe_seh_cold_init): Likewise. 9885 * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro. 9886 (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise. 9887 * config/i386/i386.c (x86_expand_epilogue): Fix wording in comment. 9888 (ix86_output_call_insn): Emit a nop in one more case for SEH. 9889 * config/i386/winnt.c: Include except.h. 9890 (struct seh_frame_state): Add reg_offset, after_prologue and 9891 in_cold_section fields. 9892 (i386_pe_seh_end_prologue): Set seh->after_prologue. 9893 (i386_pe_seh_cold_init): New function. 9894 (i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal 9895 to seh->in_cold_section. 9896 (seh_emit_push): Record the offset of the push. 9897 (seh_emit_save): Record the offet of the save. 9898 (i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS. 9899 Test seh->after_prologue to disregard the epilogue. 9900 (i386_pe_end_function): Pass FALSE to i386_pe_seh_fini. 9901 (i386_pe_end_cold_function): New function. 9902 99032018-03-07 Jakub Jelinek <jakub@redhat.com> 9904 9905 PR fortran/84565 9906 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use 9907 aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero. 9908 9909 PR c++/84704 9910 * gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag 9911 on tmp_var. 9912 * tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG, 9913 don't print names of DECL_NAMELESS DECL_IGNORED_P decls. 9914 9915 PR middle-end/84723 9916 * multiple_target.c: Include tree-inline.h and intl.h. 9917 (expand_target_clones): Diagnose and fail if node->definition and 9918 !tree_versionable_function_p (node->decl). 9919 99202018-03-06 John David Anglin <danglin@gcc.gnu.org> 9921 9922 * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use 9923 sprint_ul. 9924 (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change. 9925 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 9926 * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above. 9927 99282018-03-06 Jakub Jelinek <jakub@redhat.com> 9929 9930 PR target/84710 9931 * combine.c (try_combine): Use reg_or_subregno instead of handling 9932 just paradoxical SUBREGs and REGs. 9933 99342018-03-06 Claudiu Zissulescu <claziss@synopsys.com> 9935 9936 * config/arc/arc.c (arc_finalize_pic): Remove function. 9937 (arc_must_save_register): We use single base PIC register, remove 9938 checks to save/restore the PIC register. 9939 (arc_expand_prologue): Likewise. 9940 * config/arc/arc-protos.h (arc_set_default_type_attributes): 9941 Remove. 9942 (arc_verify_short): Likewise. 9943 (arc_attr_type): Likewise. 9944 * config/arc/arc.c (arc_set_default_type_attributes): Remove. 9945 (walk_stores): Likewise. 9946 (arc_address_cost): Make it static. 9947 (arc_verify_short): Likewise. 9948 (branch_dest): Likewise. 9949 (arc_attr_type): Likewise. 9950 * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove. 9951 (TARGET_INSN_LENGTH_PARAMETERS): Likewise. 9952 (arc_final_prescan_insn): Remove inserting the nops due to 9953 hardware hazards. It is done in reorg step. 9954 (insn_length_variant_t): Remove. 9955 (insn_length_parameters_t): Likewise. 9956 (arc_insn_length_parameters): Likewise. 9957 (arc_get_insn_variants): Likewise. 9958 * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove. 9959 99602018-03-06 Jakub Jelinek <jakub@redhat.com> 9961 9962 PR inline-asm/84683 9963 * reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid 9964 assertion failure. 9965 9966 PR tree-optimization/84687 9967 * omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS 9968 on new_node->decl. 9969 * match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization. 9970 99712018-03-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 9972 9973 * config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier): 9974 Rename to ppc_speculation_barrier. 9975 * config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to 9976 __builtin_ppc_speculation_barrier. 9977 99782018-03-05 Jakub Jelinek <jakub@redhat.com> 9979 9980 PR target/84700 9981 * combine.c (combine_simplify_rtx): Don't try to simplify if 9982 if_then_else_cond returned non-NULL, but either true_rtx or false_rtx 9983 are equal to x. 9984 99852018-03-05 Segher Boessenkool <segher@kernel.crashing.org> 9986 9987 * config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops 9988 to 32 bytes when compiling for POWER9. 9989 99902018-03-05 Jakub Jelinek <jakub@redhat.com> 9991 9992 PR target/84564 9993 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for 9994 regparm >= 3 with no arg reg available also for calls with 9995 flag_force_indirect_call. Pass decl to ix86_function_regparm. 9996 9997 PR target/84524 9998 * config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with 9999 orig,vex. 10000 (*<plusminus_insn><mode>3): Likewise. Remove <mask_operand3> uses. 10001 100022018-03-05 Peter Bergner <bergner@vnet.ibm.com> 10003 10004 PR target/84264 10005 * config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands. 10006 100072018-03-05 Richard Biener <rguenther@suse.de> 10008 10009 PR tree-optimization/84486 10010 * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code. 10011 When inserting a __builtin_assume_aligned call set the LHS 10012 SSA name alignment info accordingly. 10013 100142018-03-05 Wilco Dijkstra <wdijkstr@arm.com> 10015 10016 PR tree-optimization/84114 10017 * config/aarch64/aarch64.c (aarch64_reassociation_width) 10018 Avoid reassociation of FLOAT_MODE addition. 10019 100202018-03-05 Olga Makhotina <olga.makhotina@intel.com> 10021 10022 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET, 10023 OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET, 10024 OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions. 10025 (ix86_handle_option): Handle -mpconfig and -mwbnoinvd. 10026 * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers. 10027 * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New. 10028 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig 10029 and -mwbnoinvd. 10030 * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd, 10031 __builtin_ia32_wbinvd): New builtins. 10032 (SPECIAL_ARGS2): New. 10033 * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New. 10034 (SPECIAL_ARGS2): New. 10035 * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd. 10036 (ix86_valid_target_attribute_inner_p): Ditto. 10037 (ix86_init_mmx_sse_builtins): Add special_args2. 10038 * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD, 10039 TARGET_WBNOINVD_P): New. 10040 * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New. 10041 (define_insn "wbinvd", define_insn "wbnoinvd"): New. 10042 * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd. 10043 * config/i386/immintrin.h (_wbinvd): New intrinsic. 10044 * config/i386/pconfigintrin.h: New file. 10045 * config/i386/wbnoinvdintrin.h: Ditto. 10046 * config/i386/x86intrin.h: Add headers pconfigintrin.h and wbnoinvdintrin.h. 10047 * doc/invoke.texi (-mpconfig, -mwbnoinvd): New. 10048 100492018-03-05 Richard Biener <rguenther@suse.de> 10050 10051 PR tree-optimization/84670 10052 * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs 10053 member. 10054 (BB_VISITED_WITH_VISITED_SUCCS): New define. 10055 (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. 10056 (compute_antic_aux): Only assert the number of values in ANTIC_IN 10057 doesn't grow if all successors (recursively) were visited at least 10058 once. 10059 100602018-03-05 Richard Biener <rguenther@suse.de> 10061 10062 PR tree-optimization/84650 10063 * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache 10064 if executed in the loop pipeline. 10065 100662018-03-05 Sandra Loosemore <sandra@codesourcery.com> 10067 10068 * doc/configfiles.texi (Configuration Files): Move info about 10069 conditionalizing $target-protos.h to... 10070 * doc/sourcebuild.texi (Back End): Here. Explain how $target.h 10071 differs from $target-protos.h. 10072 100732018-03-05 Kito Cheng <kito.cheng@gmail.com> 10074 Chung-Ju Wu <jasonwucj@gmail.com> 10075 10076 * config/nds32/nds32-protos.h (nds32_expand_setmem): Declare. 10077 * config/nds32/nds32-multiple.md (setmemsi): Define. 10078 * config/nds32/nds32-memory-manipulation.c 10079 (nds32_gen_dup_4_byte_to_word_value): New. 10080 (emit_setmem_word_loop): New. 10081 (emit_setmem_byte_loop): New. 10082 (nds32_expand_setmem_loop): New. 10083 (nds32_expand_setmem_loop_v3m): New. 10084 (nds32_expand_setmem_unroll): New. 10085 (nds32_expand_setmem): New. 10086 100872018-03-04 Kito Cheng <kito.cheng@gmail.com> 10088 Chung-Ju Wu <jasonwucj@gmail.com> 10089 10090 * config/nds32/nds32-memory-manipulation.c 10091 (nds32_emit_load_store): New. 10092 (nds32_emit_post_inc_load_store): New. 10093 (nds32_emit_mem_move): New. 10094 (nds32_emit_mem_move_block): New. 10095 (nds32_expand_movmemsi_loop_unknown_size): New. 10096 (nds32_expand_movmemsi_loop_known_size): New. 10097 (nds32_expand_movmemsi_loop): New. 10098 (nds32_expand_movmemsi_unroll): New. 10099 (nds32_expand_movmemqi): Rename ... 10100 (nds32_expand_movmemsi): ... to this. 10101 * config/nds32/nds32-multiple.md (movmemqi): Rename ... 10102 (movmemsi): ... to this. 10103 * config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ... 10104 (nds32_expand_movmemsi): ... to this. 10105 101062018-03-04 Kito Cheng <kito.cheng@gmail.com> 10107 Monk Chiang <sh.chiang04@gmail.com> 10108 Chung-Ju Wu <jasonwucj@gmail.com> 10109 10110 * config/nds32/nds32-protos.h 10111 (nds32_expand_load_multiple): New arguments. 10112 (nds32_expand_store_multiple): Ditto. 10113 (nds32_valid_multiple_load_store): Rename ... 10114 (nds32_valid_multiple_load_store_p): ... to this. 10115 * config/nds32/nds32-memory-manipulation.c 10116 (nds32_expand_load_multiple): Refine implementation. 10117 (nds32_expand_store_multiple): Ditto. 10118 * config/nds32/nds32-multiple.md 10119 (load_multiple): Update nds32_expand_load_multiple interface. 10120 (store_multiple): Update nds32_expand_store_multiple interface. 10121 * config/nds32/nds32-predicates.c 10122 (nds32_valid_multiple_load_store): Rename ... 10123 (nds32_valid_multiple_load_store_p): ... to this and refine 10124 implementation. 10125 * config/nds32/predicates.md 10126 (nds32_load_multiple_and_update_address_operation): New predicate. 10127 (nds32_store_multiple_and_update_address_operation): New predicate. 10128 101292018-03-04 Kito Cheng <kito.cheng@gmail.com> 10130 Chung-Ju Wu <jasonwucj@gmail.com> 10131 10132 * config/nds32/nds32.md (type): Add load_multiple and store_multiple. 10133 (combo): New attribute. 10134 * config/nds32/nds32-multiple.md: Refine patterns with new attributes. 10135 101362018-03-03 Chung-Ju Wu <jasonwucj@gmail.com> 10137 10138 * config/nds32/nds32.opt: Change -mcmodel= default value. 10139 101402018-03-03 Kito Cheng <kito.cheng@gmail.com> 10141 Monk Chiang <sh.chiang04@gmail.com> 10142 Chung-Ju Wu <jasonwucj@gmail.com> 10143 10144 * config/nds32/constants.md (unspec_element): New enum. 10145 * config/nds32/constraints.md (Umw): New constraint. 10146 * config/nds32/nds32-intrinsic.c: Add more builtin functions. 10147 * config/nds32/nds32-intrinsic.md: Likewise. 10148 * config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New. 10149 (nds32_valid_smw_lwm_base_p): New. 10150 (nds32_output_smw_single_word): New. 10151 (nds32_output_lmw_single_word): New. 10152 (nds32_expand_unaligned_load): New. 10153 (nds32_expand_unaligned_store): New. 10154 * config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare. 10155 (nds32_output_smw_single_word): Declare. 10156 (nds32_output_lmw_single_word): Declare. 10157 (nds32_expand_unaligned_load): Declare. 10158 (nds32_expand_unaligned_store): Declare. 10159 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW, 10160 NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW, 10161 NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W, 10162 NDS32_BUILTIN_UASTORE_DW. 10163 * config/nds32/predicates.md (nds32_lmw_smw_base_operand): New 10164 predicate. 10165 101662018-03-03 Monk Chiang <sh.chiang04@gmail.com> 10167 Kito Cheng <kito.cheng@gmail.com> 10168 Chung-Ju Wu <jasonwucj@gmail.com> 10169 10170 * config/nds32/nds32-intrinsic.c 10171 (nds32_expand_builtin_null_ftype_reg): Delete. 10172 (nds32_expand_builtin_reg_ftype_imm): Ditto. 10173 (nds32_expand_builtin_null_ftype_reg_imm): Ditto. 10174 (nds32_read_argument): New. 10175 (nds32_legitimize_target): Ditto. 10176 (nds32_legitimize_argument): Ditto. 10177 (nds32_check_constant_argument): Ditto. 10178 (nds32_expand_unop_builtin): Ditto. 10179 (nds32_expand_unopimm_builtin): Ditto. 10180 (nds32_expand_binop_builtin): Ditto. 10181 (nds32_builtin_decl_impl): Ditto. 10182 (builtin_description): Ditto. 10183 (nds32_expand_builtin_impl): Rewrite with new infrastructure. 10184 (nds32_init_builtins_impl): Ditto. 10185 * config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define. 10186 (nds32_builtin_decl): New. 10187 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT. 10188 * config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare. 10189 101902018-03-02 Jeff Law <law@redhat.com> 10191 10192 * reorg.c (stop_search_p): Handle DEBUG_INSN. 10193 (redundant_insn, fill_simple_delay_slots): Likewise. 10194 (fill_slots_from_thread): Likewise. 10195 * resource.c (mark_referenced_resources): Likewise. 10196 (mark_set_resources, find_dead_or_set_registers): Likewise. 10197 101982018-03-02 Jakub Jelinek <jakub@redhat.com> 10199 10200 * substring-locations.h (format_warning_va): Formatting fix for 10201 ATTRIBUTE_GCC_DIAG. 10202 (format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second 10203 argument. 10204 (format_warning_n_va, format_warning_at_substring_n): New prototypes. 10205 * substring-locations.c: Include intl.h. 10206 (format_warning_va): Turned into small wrapper around 10207 format_warning_n_va, renamed to ... 10208 (format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments, 10209 rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID, 10210 use ngettext. 10211 (format_warning_at_substring_n): New function. 10212 * gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma. 10213 (fmtwarn): Add ATTRIBUTE_GCC_DIAG. Turn into a copy of 10214 format_warning_at_substring with just a shorter name instead of 10215 const function pointer. 10216 (fmtwarn_n): New function. 10217 (maybe_warn, format_directive, parse_directive): Use fmtwarn_n where 10218 appropriate, get rid of all the fmtstr temporaries, move conditionals 10219 with G_() wrapped string literals directly into fmtwarn arguments, 10220 cast dir.len to (int), formatting fixes. 10221 102222018-03-02 Thomas Schwinge <thomas@codesourcery.com> 10223 10224 * doc/invoke.texi: Remove "Cilk Plus" references. 10225 102262018-03-02 Jakub Jelinek <jakub@redhat.com> 10227 Richard Biener <rguenther@suse.de> 10228 10229 PR ipa/84628 10230 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics 10231 for error or warning attributes if CALL_FROM_THUNK_P is set. 10232 Formatting fixes. 10233 102342018-03-02 Jakub Jelinek <jakub@redhat.com> 10235 10236 PR target/56540 10237 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine 10238 __SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY. 10239 10240 PR target/56540 10241 * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine 10242 __SIZEOF_{FPREG,FLOAT{80,128}}__ macros. 10243 10244 * predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED 10245 instead of -1U in last predictors element's probability member. 10246 102472018-03-02 Eric Botcazou <ebotcazou@adacore.com> 10248 10249 PR ipa/83983 10250 * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both 10251 arguments if they are comparable. 10252 102532018-03-02 Richard Sandiford <richard.sandiford@linaro.org> 10254 10255 PR tree-optimization/84634 10256 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace 10257 masks and masked_loop_p with a single loop_masks, making sure it's 10258 null for bb vectorization. 10259 102602018-03-02 Richard Sandiford <richard.sandiford@linaro.org> 10261 10262 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) 10263 (vect_analyze_data_ref_access): Use loop->safe_len rather than 10264 loop->force_vectorize to check whether there is no alias. 10265 102662018-03-02 Jakub Jelinek <jakub@redhat.com> 10267 10268 PR target/84614 10269 * rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New 10270 prototypes. 10271 * emit-rtl.c (next_real_insn, prev_real_insn): Fix up function 10272 comments. 10273 (next_real_nondebug_insn, prev_real_nondebug_insn): New functions. 10274 * cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn 10275 instead of a loop around prev_real_insn. 10276 * combine.c (move_deaths): Use prev_real_nondebug_insn instead of 10277 prev_real_insn. 10278 10279 PR inline-asm/84625 10280 * config/i386/i386.c (ix86_print_operand): Use conditional 10281 output_operand_lossage instead of gcc_assert if CONST_VECTOR is not 10282 zero vector. 10283 102842018-03-02 Richard Biener <rguenther@suse.de> 10285 10286 PR tree-optimization/84427 10287 * tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove. 10288 (bitmap_set_subtract_values): Rewrite to handle multiple 10289 exprs per value. 10290 (clean): Likewise. 10291 (prune_clobbered_mems): Likewise. 10292 (phi_translate): Take edge instead of pred/phiblock. 10293 (phi_translate_1): Likewise. 10294 (phi_translate_set): Likewise. Insert all translated 10295 exprs for a value into the set, keeping possibly multiple 10296 expressions per value. 10297 (compute_antic_aux): Adjust for phi_translate changes. 10298 When intersecting union the expressions and prune those 10299 not in the final value set, keeping possibly multiple 10300 expressions per value. Do not use value-insertion 10301 for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge 10302 all expressions. Add verification that the value-sets 10303 only shrink during iteration. 10304 (compute_partial_antic_aux): Adjust for the phi_translate changes. 10305 (do_pre_regular_insertion): Likewise. 10306 (do_pre_partial_partial_insertion): Likewise. 10307 103082018-03-02 Richard Biener <rguenther@suse.de> 10309 10310 PR target/82005 10311 * config/darwin.c (saved_debug_info_level): New static global. 10312 (darwin_asm_lto_start): Disable debug info generation for LTO out. 10313 (darwin_asm_lto_end): Restore debug info generation settings. 10314 103152018-03-01 Martin Liska <mliska@suse.cz> 10316 10317 PR sanitizer/82484 10318 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle 10319 volatile arguments. 10320 103212018-03-01 Richard Biener <rguenther@suse.de> 10322 10323 PR debug/84645 10324 * dwarf2out.c (gen_variable_die): Properly handle late VLA 10325 type annotation with LTO when debug was disabled at compile-time. 10326 103272018-03-01 Matthew Fortune <mfortune@gmail.com> 10328 10329 * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect 10330 XINT with INTVAL. 10331 (mips_final_postscan_insn): Likewise. 10332 103332018-03-01 Richard Sandiford <richard.sandiford@linaro.org> 10334 10335 PR rtl-optimization/84528 10336 * alias.c (init_alias_target): Add commentary. 10337 (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM 10338 a unique base value if the frame pointer is not eliminated 10339 to the stack pointer. 10340 103412018-03-01 Tom de Vries <tom@codesourcery.com> 10342 10343 PR rtl-optimization/83327 10344 * lra-int.h (hard_regs_spilled_into): Declare. 10345 * lra.c (hard_regs_spilled_into): Define. 10346 (init_reg_info): Init hard_regs_spilled_into. 10347 * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. 10348 * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) 10349 (process_bb_lives): Handle hard_regs_spilled_into. 10350 (lra_create_live_ranges_1): Before doing liveness propagation, clear 10351 regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. 10352 103532018-02-28 David Edelsohn <dje.gcc@gmail.com> 10354 10355 * config.gcc (powerpc-ibm-aix7.1.*): New stanza. 10356 (powerpc-ibm-aix[789]*): Default to AIX 7.2. 10357 * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA. 10358 * config/rs6000/aix72.h: New file. 10359 103602018-02-28 Jakub Jelinek <jakub@redhat.com> 10361 10362 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n 10363 instead of warning_at with conditional singular and plural messages 10364 where possible. 10365 10366 PR target/52991 10367 * stor-layout.c (update_alignment_for_field): For 10368 targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield 10369 && !DECL_PACKED (field), do the alignment update, just use 10370 only desired_align instead of MAX (type_align, desired_align) 10371 as the alignment. 10372 (place_field): Don't do known_align < desired_align handling 10373 early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field 10374 is non-NULL, instead do it after rli->prev_field handling and 10375 only if not within a bitfield word. For DECL_PACKED (field) 10376 use type_align of BITS_PER_UNIT. 10377 103782018-02-28 Eric Botcazou <ebotcazou@adacore.com> 10379 10380 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove 10381 superfluous parentheses and trailing spaces. 10382 103832018-02-28 Richard Biener <rguenther@suse.de> 10384 10385 PR tree-optimization/84584 10386 * graphite-scop-detection.c (scop_detection::add_scop): Discard 10387 SCoPs with fake exit edge. 10388 103892018-02-28 Martin Liska <mliska@suse.cz> 10390 10391 PR testsuite/84597 10392 * timevar.c (timer::print): Fix format to properly print 100% 10393 values. 10394 103952018-02-28 Richard Biener <rguenther@suse.de> 10396 10397 PR middle-end/84607 10398 * genmatch.c (capture_info::walk_match): Do not mark 10399 captured expressions without operands as expr_p given 10400 they act more like predicates and should be subject to 10401 "lost tail" side-effect preserving. 10402 104032018-02-28 Alexandre Oliva <aoliva@redhat.com> 10404 10405 PR rtl-optimization/81611 10406 * auto-inc-dec.c (attempt_change): Move dead note from 10407 mem_insn if it's the next use of regno 10408 (find_address): Take address use of reg holding 10409 non-incremented value. Add parm to limit search to the named 10410 reg only. 10411 (merge_in_block): Attempt to use a mem insn that is the next 10412 use of the original regno. 10413 104142018-02-27 Martin Sebor <msebor@redhat.com> 10415 10416 PR c++/83871 10417 * gcc/doc/invoke.texi (-Wmissing-attributes): New option. 10418 * gcc/print-tree.c (print_node): Handle DECL_UNINLINABLE. 10419 104202018-02-27 Martin Sebor <msebor@redhat.com> 10421 10422 PR translation/84207 10423 * diagnostic-core.h (warning_n, error_n, inform_n): Change 10424 n argument to unsigned HOST_WIDE_INT. 10425 * diagnostic.c (warning_n, error_n, inform_n): Ditto. 10426 (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. 10427 * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. 10428 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. 10429 104302018-02-27 Richard Biener <rguenther@suse.de> 10431 10432 PR tree-optimization/84512 10433 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 10434 Do not use the estimate returned from record_stmt_cost for 10435 the scalar iteration cost but sum properly using add_stmt_cost. 10436 104372018-02-27 Richard Biener <rguenther@suse.de> 10438 10439 PR tree-optimization/84466 10440 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): 10441 Adjust last change to less strictly validate use operands. 10442 104432018-02-27 Martin Liska <mliska@suse.cz> 10444 10445 PR gcov-profile/84548 10446 * gcov.c (process_file): Allow partial overlap and consider it 10447 also as group functions. 10448 (output_lines): Properly calculate range of lines for a group. 10449 104502018-02-27 Martin Liska <mliska@suse.cz> 10451 10452 * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and 10453 'ggc' suffixes. Change first column width. 10454 (timer::print): Fix formatting of the column. 10455 104562018-02-27 Alexandre Oliva <aoliva@redhat.com> 10457 10458 * tree-ssa-live.c (remove_unused_scope_block_p): Do not 10459 preserve inline entry blocks for the sake of debug inline 10460 entry point markers alone. 10461 (remove_unused_locals): Suggest in comments a better place to 10462 force the preservation of inline entry blocks that are 10463 otherwise unused, but do not preserve them. 10464 104652018-02-26 H.J. Lu <hongjiu.lu@intel.com> 10466 10467 * config/i386/i386.c (ix86_output_indirect_jmp): Update comments. 10468 104692018-02-26 H.J. Lu <hongjiu.lu@intel.com> 10470 10471 PR target/84039 10472 * config/i386/constraints.md (Bs): Replace 10473 ix86_indirect_branch_register with 10474 TARGET_INDIRECT_BRANCH_REGISTER. 10475 (Bw): Likewise. 10476 * config/i386/i386.md (indirect_jump): Likewise. 10477 (tablejump): Likewise. 10478 (*sibcall_memory): Likewise. 10479 (*sibcall_value_memory): Likewise. 10480 Peepholes of indirect call and jump via memory: Likewise. 10481 (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER. 10482 (*sibcall_value_GOT_32): Likewise. 10483 * config/i386/predicates.md (indirect_branch_operand): Likewise. 10484 (GOT_memory_operand): Likewise. 10485 (call_insn_operand): Likewise. 10486 (sibcall_insn_operand): Likewise. 10487 (GOT32_symbol_operand): Likewise. 10488 * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New. 10489 104902018-02-26 Eric Botcazou <ebotcazou@adacore.com> 10491 10492 PR rtl-optimization/83496 10493 * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from 10494 booleans to RTXes. Call fix_reg_dead_note on every non-null element. 10495 (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a 10496 redundant insn, if any. 10497 (relax_delay_slots): Likewise. 10498 (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN. 10499 105002018-02-26 Richard Sandiford <richard.sandiford@linaro.org> 10501 10502 PR tree-optimization/83965 10503 * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume 10504 that grouped statements are part of a reduction chain. Return 10505 true if the statement is not marked as a reduction itself but 10506 is part of a group. 10507 (vect_recog_dot_prod_pattern): Don't check whether the statement 10508 is part of a group here. 10509 (vect_recog_sad_pattern): Likewise. 10510 (vect_recog_widen_sum_pattern): Likewise. 10511 105122018-02-26 Eric Botcazou <ebotcazou@adacore.com> 10513 10514 PR debug/84545 10515 * final.c (rest_of_clean_state): Also look for calls inside sequences. 10516 105172018-02-26 H.J. Lu <hongjiu.lu@intel.com> 10518 10519 PR target/84530 10520 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove 10521 the bool argument. 10522 (ix86_output_indirect_function_return): New prototype. 10523 (ix86_split_simple_return_pop_internal): Likewise. 10524 * config/i386/i386.c (indirect_return_via_cx): New. 10525 (indirect_return_via_cx_bnd): Likewise. 10526 (indirect_thunk_name): Handle return va CX_REG. 10527 (output_indirect_thunk_function): Create alias for 10528 __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd. 10529 (ix86_output_indirect_jmp): Remove the bool argument. 10530 (ix86_output_indirect_function_return): New function. 10531 (ix86_split_simple_return_pop_internal): Likewise. 10532 * config/i386/i386.md (*indirect_jump): Don't pass false 10533 to ix86_output_indirect_jmp. 10534 (*tablejump_1): Likewise. 10535 (simple_return_pop_internal): Change it to define_insn_and_split. 10536 Call ix86_split_simple_return_pop_internal to split it for 10537 -mfunction-return=. 10538 (simple_return_indirect_internal): Call 10539 ix86_output_indirect_function_return instead of 10540 ix86_output_indirect_jmp. 10541 105422018-02-26 Jakub Jelinek <jakub@redhat.com> 10543 10544 PR bootstrap/84405 10545 * vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use 10546 memset and value initialization afterwards. 10547 105482018-02-26 Christophe Lyon <christophe.lyon@linaro.org> 10549 10550 * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS. 10551 105522018-02-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 10553 10554 PR target/84521 10555 * common/config/aarch64/aarch64-common.c 10556 (aarch_option_optimization_table[]): Switch 10557 off fomit-frame-pointer 10558 105592018-02-26 Kito Cheng <kito.cheng@gmail.com> 10560 Chung-Ju Wu <jasonwucj@gmail.com> 10561 10562 * config/nds32/nds32-multiple.md (load_multiple): Disallow 10563 volatile memory. 10564 (store_multiple): Ditto. 10565 105662018-02-26 Kito Cheng <kito.cheng@gmail.com> 10567 10568 * config.gcc: Add --with-cpu support for nds32 target. 10569 * config/nds32/nds32-opts.h (nds32_cpu_type): New. 10570 * config/nds32/nds32.opt: Add -mcpu= option. 10571 105722018-02-25 Segher Boessenkool <segher@kernel.crashing.org> 10573 10574 * config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no, 10575 isel=yes): Warn for these deprecated options. 10576 105772018-02-23 David Edelsohn <dje.gcc@gmail.com> 10578 10579 * config/rs6000/aix71.h (TARGET_DEFAULT): Change to 10580 ISA_2_5_MASKS_EMBEDDED. 10581 105822018-02-23 Jakub Jelinek <jakub@redhat.com> 10583 10584 * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and 10585 p->max as pointers rather than using iterative_hash_expr. 10586 105872018-02-23 Carl Love <cel@us.ibm.com> 10588 10589 * config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 10590 macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to 10591 BU_P8V_OVERLOAD_2. 10592 * config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to 10593 P8V_BUILTIN_VEC_VSIGNED2. Change VSX_BUILTIN_VEC_VUNSIGNED2 to 10594 P8V_BUILTIN_VEC_VUNSIGNED2. 10595 105962018-02-22 Vladimir Makarov <vmakarov@redhat.com> 10597 10598 PR target/81572 10599 * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros. 10600 * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use 10601 LRA_UNKNOWN_ALT. 10602 * lra-constraints.c (curr_insn_transform): Set up 10603 LRA_NON_CLOBBERED_ALT for moves processed on the fast path. Use 10604 LRA_UNKNOWN_ALT. 10605 (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT. 10606 * lra-eliminations.c (spill_pseudos): Ditto. 10607 (process_insn_for_elimination): Ditto. 10608 * lra-lives.c (reg_early_clobber_p): Use the new macros. 10609 * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and 10610 LRA_NON_CLOBBERED_ALT. 10611 106122018-02-22 Martin Sebor <msebor@redhat.com> 10613 10614 PR tree-optimization/84480 10615 * gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings 10616 to maybe_diag_stxncpy_trunc. Call it. 10617 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings 10618 from gimple_fold_builtin_strcpy. Print inlining stack. 10619 (handle_builtin_stxncpy): Print inlining stack. 10620 * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare. 10621 106222018-02-22 H.J. Lu <hongjiu.lu@intel.com> 10623 10624 PR target/84176 10625 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an 10626 error when -mindirect-branch=thunk-extern, -fcf-protection=branch 10627 and -fcheck-pointer-bounds are used together. 10628 (indirect_thunk_prefix): New enum. 10629 (indirect_thunk_need_prefix): New function. 10630 (indirect_thunk_name): Replace need_bnd_p with need_prefix. Use 10631 "_nt" instead of "_bnd" for NOTRACK prefix. 10632 (output_indirect_thunk): Replace need_bnd_p with need_prefix. 10633 (output_indirect_thunk_function): Likewise. 10634 (): Likewise. 10635 (ix86_code_end): Update output_indirect_thunk_function calls. 10636 (ix86_output_indirect_branch_via_reg): Replace 10637 ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix. 10638 (ix86_output_indirect_branch_via_push): Likewise. 10639 (ix86_output_function_return): Likewise. 10640 * doc/invoke.texi: Document -mindirect-branch=thunk-extern is 10641 incompatible with -fcf-protection=branch and 10642 -fcheck-pointer-bounds. 10643 106442018-02-22 Steve Ellcey <sellcey@cavium.com> 10645 10646 PR target/83335 10647 * config/aarch64/aarch64.c (aarch64_print_address_internal): 10648 Change gcc_assert call to output_operand_lossage. 10649 106502018-02-22 Steve Ellcey <sellcey@cavium.com> 10651 10652 * doc/extend.texi (__builtin_extend_pointer): Document builtin. 10653 106542018-02-22 DJ Delorie <dj@redhat.com> 10655 Sebastian Perta <sebastian.perta@renesas.com> 10656 Oleg Endo <olegendo@gcc.gnu.org> 10657 10658 * config/rx/rx.c (rx_rtx_costs): New function. 10659 (TARGET_RTX_COSTS): Override to use rx_rtx_costs. 10660 106612018-02-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 10662 10663 * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs. 10664 106652018-02-22 Martin Liska <mliska@suse.cz> 10666 10667 PR driver/83193 10668 * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): 10669 Add "native" as a possible value. 10670 106712018-02-22 Martin Liska <mliska@suse.cz> 10672 10673 PR driver/83193 10674 * config/i386/i386.c (ix86_option_override_internal): 10675 Add "native" as a possible value for -march and -mtune. 10676 106772018-02-22 Jakub Jelinek <jakub@redhat.com> 10678 10679 PR target/84502 10680 * stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag 10681 to all type variants. 10682 10683 PR tree-optimization/84503 10684 * gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute 10685 width as info->bitpos + info->bitsize - start. 10686 (merged_store_group::merge_overlapping): Simplify width computation. 10687 (check_no_overlap): New function. 10688 (imm_store_chain_info::try_coalesce_bswap): Compute expected 10689 start + width and last_order of the group, fail if check_no_overlap 10690 fails. 10691 (imm_store_chain_info::coalesce_immediate_stores): Don't merge info 10692 to group if check_no_overlap fails. 10693 106942018-02-21 Segher Boessenkool <segher@kernel.crashing.org> 10695 10696 * config/rs6000/altivec.md: Delete contraint arguments to 10697 define_expand, define_split, and define_peephole2, and in 10698 define_insn_and_split if always unused. 10699 * config/rs6000/darwin.md: Ditto. 10700 * config/rs6000/dfp.md: Ditto. 10701 * config/rs6000/rs6000.md: Ditto. 10702 * config/rs6000/sync.md: Ditto. 10703 * config/rs6000/vector.md: Ditto. 10704 * config/rs6000/vsx.md: Ditto. 10705 107062018-02-21 Segher Boessenkool <segher@kernel.crashing.org> 10707 10708 * config/rs6000/altivec.md: Write output control strings as braced 10709 blocks instead of double-quoted strings. 10710 * config/rs6000/darwin.md: Ditto. 10711 * config/rs6000/rs6000.md: Ditto. 10712 * config/rs6000/vector.md: Ditto. 10713 * config/rs6000/vsx.md: Ditto. 10714 107152018-02-21 Jason Merrill <jason@redhat.com> 10716 10717 PR c++/84314 - ICE with templates and fastcall attribute. 10718 * attribs.c (build_type_attribute_qual_variant): Remove assert. 10719 107202018-02-21 Jan Hubicka <hubicka@ucw.cz> 10721 10722 * ipa-cp.c (determine_versionability): Fix comment typos. 10723 107242018-02-21 Jan Hubicka <hubicka@ucw.cz> 10725 10726 PR c/84229 10727 * ipa-cp.c (determine_versionability): Do not version functions caling 10728 va_arg_pack. 10729 107302018-02-21 Martin Liska <mliska@suse.cz> 10731 10732 PR driver/83193 10733 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): 10734 Add "native" as a possible value. 10735 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT): Define 10736 the macro when native cpu detection is available. 10737 107382018-02-21 Martin Liska <mliska@suse.cz> 10739 10740 PR driver/83193 10741 * common/config/arm/arm-common.c (arm_print_hint_for_arch_option): 10742 Add "native" as a possible value. 10743 * config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro 10744 when native cpu detection is available. 10745 107462018-02-21 Jakub Jelinek <jakub@redhat.com> 10747 Martin Sebor <msebor@redhat.com> 10748 10749 PR tree-optimization/84478 10750 * gimple-fold.h (get_range_strlen): Add a bool argument defaulted to 10751 false. 10752 * gimple-fold.c (get_range_strlen): Make minlen const and assume it 10753 can't be NULL. Change FUZZY from bool to int, for 1 add PHI/COND_EXPR 10754 support which is conservatively correct, for 2 only stay conservative 10755 for maxlen. Formatting and comment capitalization fixes. Add STRICT 10756 argument to the 2 argument get_range_strlen, adjust 6 arg 10757 get_range_strlen caller and clear minmaxlen[0] and [1] if it returned 10758 false. 10759 (get_maxval_strlen): Adjust 6 arg get_range_strlen caller. 10760 (gimple_fold_builtin_strlen): Pass true as last argument to 10761 get_range_strlen. 10762 107632018-02-20 Martin Sebor <msebor@redhat.com> 10764 10765 PR middle-end/84095 10766 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New. 10767 (builtin_memref::set_base_and_offset): Same. Handle inner references. 10768 (builtin_memref::builtin_memref): Factor out parts into 10769 set_base_and_offset and call it. 10770 107712018-02-20 Richard Sandiford <richard.sandiford@linaro.org> 10772 10773 PR middle-end/84406 10774 * optabs-query.c (find_widening_optab_handler_and_mode): If from_mode 10775 is a scalar_int_mode, assert that to_mode is a scalar_int_mode with 10776 greater precision. If to_mode is a MODE_PARTIAL_INT, stop the 10777 search at the associated MODE_INT. 10778 107792018-02-20 Jeff Law <law@redhat.com> 10780 10781 PR middle-end/82123 10782 PR tree-optimization/81592 10783 PR middle-end/79257 10784 * gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer 10785 for range data rather than using global data. 10786 * gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for 10787 range data rather than using global data. 10788 * gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter 10789 pass it to children as needed. 10790 (struct directive::fmtresult): Similarly. 10791 (struct directive::set_width): Similarly. 10792 (struct directive::set_precision): Similarly. 10793 (format_integer, format_directive, parse_directive): Similarly. 10794 (format_none): Accept unnamed vr_values parameter. 10795 (format_percent, format_floating, format_character): Similarly. 10796 (format_string, format_plain): Similarly. 10797 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query 10798 the EVRP range analyzer for range data rather than using global data. 10799 * gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and 10800 gimple-ssa-evrp-analyze.h 10801 (class sprintf_dom_walker): Add after_dom_children member function. 10802 Add evrp_range_analyzer member. 10803 (sprintf_dom_walker::before_dom_children): Call into the EVRP 10804 range analyzer as needed. 10805 (sprintf_dom_walker::after_dom_children): New member function. 10806 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing 10807 if not optimizing. 10808 (evrp_range_analyzer::record_ranges_from_stmt): Likewise. 10809 (evrp_range_analyzer::pop_to_marker): Likewise. 10810 108112018-02-20 Richard Sandiford <richard.sandiford@linaro.org> 10812 10813 PR tree-optimization/84419 10814 * internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF 10815 with the required type if its current type is compatible but 10816 different. 10817 108182018-02-20 Jakub Jelinek <jakub@redhat.com> 10819 10820 PR middle-end/82004 10821 * match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until 10822 after vectorization. 10823 108242018-02-20 Martin Liska <mliska@suse.cz> 10825 10826 PR driver/83193 10827 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print 10828 possible values if we don't have a hint. 10829 108302018-02-20 Martin Liska <mliska@suse.cz> 10831 10832 PR c/84310 10833 PR target/79747 10834 * final.c (shorten_branches): Build align_tab array with one 10835 more element. 10836 * opts.c (finish_options): Add alignment option limit check. 10837 (MAX_CODE_ALIGN): Likewise. 10838 (MAX_CODE_ALIGN_VALUE): Likewise. 10839 * doc/invoke.texi: Document maximum allowed option value for 10840 all -falign-* options. 10841 108422018-02-19 Jakub Jelinek <jakub@redhat.com> 10843 10844 PR target/84146 10845 * reg-notes.def (REG_CALL_ARG_LOCATION): New reg note. 10846 * insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove. 10847 * var-tracking.c (emit_note_insn_var_location): Remove all references 10848 to NOTE_INSN_CALL_ARG_LOCATION. 10849 (emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on 10850 the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note. 10851 Use copy_rtx_if_shared. 10852 * dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of 10853 NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note. 10854 (dwarf2out_var_location): Remove handling of 10855 NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note 10856 on call_insn. 10857 * final.c (final_scan_insn): Remove all references to 10858 NOTE_INSN_CALL_ARG_LOCATION. 10859 (rest_of_clean_state): Likewise. Remove REG_CALL_ARG_LOCATION notes 10860 before dumping final insns. 10861 * except.c (emit_note_eh_region_end): Remove all references to 10862 NOTE_INSN_CALL_ARG_LOCATION. 10863 * config/alpha/alpha.c (alpha_pad_function_end): Likewise. 10864 * config/c6x/c6x.c (c6x_gen_bundles): Likewise. 10865 * config/arc/arc.c (hwloop_optimize): Likewise. 10866 * config/arm/arm.c (create_fix_barrier): Likewise. 10867 * config/s390/s390.c (s390_chunkify_start): Likewise. 10868 * config/sh/sh.c (find_barrier): Likewise. 10869 * config/i386/i386.c (rest_of_insert_endbranch, 10870 ix86_seh_fixup_eh_fallthru): Likewise. 10871 * config/xtensa/xtensa.c (hwloop_optimize): Likewise. 10872 * config/iq2000/iq2000.c (final_prescan_insn): Likewise. 10873 * config/frv/frv.c (frv_function_prologue): Likewise. 10874 * emit-rtl.c (try_split): Likewise. Copy over REG_CALL_ARG_LOCATION 10875 reg note. 10876 (note_outside_basic_block_p): Remove all references to 10877 NOTE_INSN_CALL_ARG_LOCATION. 10878 * gengtype.c (adjust_field_rtx_def): Likewise. 10879 * print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn): 10880 Likewise. 10881 * jump.c (cleanup_barriers, delete_related_insns): Likewise. 10882 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 10883 10884 PR c++/84444 10885 * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t) 10886 is ADDR_EXPR. 10887 10888 PR tree-optimization/84452 10889 * tree-vect-patterns.c (vect_recog_pow_pattern): Don't call 10890 expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen 10891 is NULL. 10892 108932018-02-19 Martin Liska <mliska@suse.cz> 10894 10895 PR sanitizer/82183 10896 * passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0. 10897 108982018-02-19 Martin Liska <mliska@suse.cz> 10899 Richard Sandiford <richard.sandiford@linaro.org> 10900 10901 PR tree-optimization/82491 10902 * gimple-fold.c (get_base_constructor): Make earlier bail out 10903 to prevent ubsan. 10904 109052018-02-19 Carl Love <cel@us.ibm.com> 10906 10907 * config/rs6000/rs6000-builtin.def: Change NEG macro expansions from 10908 BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to 10909 BU_P8V_OVERLOAD_1. 10910 * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to 10911 P8V_BUILTIN_VEC_NEG. 10912 109132018-02-19 Sebastian Perta <sebastian.perta@renesas.com> 10914 10915 * config/rl78/rl78.md (movdf): New define expand. 10916 109172018-02-19 Martin Liska <mliska@suse.cz> 10918 10919 PR other/80589 10920 * doc/invoke.texi: Fix typo. 10921 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise. 10922 109232018-02-18 Segher Boessenkool <segher@kernel.crashing.org> 10924 10925 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't 10926 handle rs6000_single_float and rs6000_double_float specially for 10927 e500 family CPUs. 10928 109292018-02-16 Jeff Law <law@redhat.com> 10930 10931 * config/rx/rx.c (add_pop_cfi_notes): New function.; 10932 (pop_regs): Use it. 10933 109342018-02-16 Jakub Jelinek <jakub@redhat.com> 10935 10936 PR ipa/84425 10937 * ipa-inline.c (inline_small_functions): Fix a typo. 10938 109392018-02-16 Nathan Sidwell <nathan@acm.org> 10940 10941 * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'. 10942 109432018-02-16 Carl Love <cel@us.ibm.com> 10944 10945 * config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition. 10946 Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and 10947 from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2. 10948 * config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2 10949 expansion to P8V_BUILTIN_VEC_FLOAT2. 10950 109512018-02-16 Vladimir Makarov <vmakarov@redhat.com> 10952 10953 PR rtl-optimization/70023 10954 * lra-constraints.c (inherit_in_ebb): Take hard reg mode of 10955 src_regno into account. 10956 109572018-02-16 Carl Love <cel@us.ibm.com> 10958 10959 * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b. 10960 * config/rs6000/rs6000-builtin.def: Remove macro expansion for 10961 VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B. 10962 * config/rs6000/rs6000.c: Remove case statements for 10963 P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B, 10964 P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI, 10965 and P9V_BUILTIN_VEC_VINSERT4B. 10966 * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for 10967 P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B. 10968 * config/rs6000/vsx.md: 10969 * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for 10970 vec_insert4b. 10971 109722018-02-16 Carl Love <cel@us.ibm.com> 10973 10974 * config/rs6000/altivec.h: Add builtin names vec_extract4b 10975 vec_insert4b. 10976 * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B 10977 definitions. 10978 * config/rs6000/rs6000-c.c: Add the definitions for 10979 P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B. 10980 * config/rs6000/rs6000.c (altivec_expand_builtin): Add 10981 P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements. 10982 * config/rs6000/vsx.md: Add define_insn extract4b. Add define_expand 10983 definition for insert4b and define insn *insert3b_internal. 10984 * doc/extend.texi: Add documentation for vec_extract4b. 10985 109862018-02-16 Nathan Sidwell <nathan@acm.org> 10987 10988 * doc/extend.texi (Backwards Compatibility): Mention friend 10989 injection. Note for-scope is deprecated. 10990 * doc/invoke.texi (-ffriend-injection): Deprecate. 10991 109922018-02-16 Segher Boessenkool <segher@kernel.crashing.org> 10993 10994 * combine.c (try_combine): When adjusting LOG_LINKS for the destination 10995 that moved to I2, also allow destinations that are a paradoxical 10996 subreg (instead of a normal reg). 10997 109982018-02-16 Oleg Endo <olegendo@gcc.gnu.org> 10999 11000 PR target/83831 11001 * config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand 11002 to QImode. 11003 110042018-02-16 Richard Biener <rguenther@suse.de> 11005 11006 PR tree-optimization/84037 11007 PR tree-optimization/84016 11008 PR target/82862 11009 * config/i386/i386.c (ix86_builtin_vectorization_cost): 11010 Adjust vec_construct for the fact we need additional higher latency 11011 128bit inserts for AVX256 and AVX512 vector builds. 11012 (ix86_add_stmt_cost): Scale vector construction cost for 11013 elementwise loads. 11014 110152018-02-16 Richard Biener <rguenther@suse.de> 11016 11017 PR tree-optimization/84417 11018 * tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain 11019 the MEM_REF offset when conversion to BIT_FIELD_REF is desired. 11020 (non_rewritable_lvalue_p): Likewise, use poly-ints. 11021 110222018-02-16 Martin Liska <mliska@suse.cz> 11023 11024 PR sanitizer/84307 11025 * internal-fn.def (ASAN_CHECK): Set proper flags. 11026 (ASAN_MARK): Likewise. 11027 110282018-02-16 Julia Koval <julia.koval@intel.com> 11029 11030 * config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB 11031 from PTA_CANNONLAKE. 11032 110332018-02-16 Jakub Jelinek <jakub@redhat.com> 11034 11035 PR target/84272 11036 * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest): 11037 Use ++iter rather than iter++ for std::list iterators. 11038 (func_fma_steering::dfs): Likewise. Don't delete nodes right away, 11039 defer deleting them until all nodes in the forest are processed. Do 11040 free even leaf nodes. Change to_process into auto_vec. 11041 11042 PR bootstrap/84405 11043 * system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3. 11044 * vec.h (vec_default_construct): Use memset instead of placement new 11045 if BROKEN_VALUE_INITIALIZATION is defined. 11046 * hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use 11047 memset instead of value initialization if BROKEN_VALUE_INITIALIZATION 11048 is defined. 11049 11050 PR rtl-optimization/83723 11051 * lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument. 11052 * lra.c (lra_substitute_pseudo): Likewise. If true, use 11053 gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG. Pass DEBUG_P to 11054 recursive calls. 11055 (lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo 11056 callers. 11057 * lra-constraints.c (inherit_reload_reg, split_reg): Likewise. 11058 110592018-02-16 Eric Botcazou <ebotcazou@adacore.com> 11060 11061 PR rtl-optimization/81443 11062 * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results 11063 from inner REGs to paradoxical SUBREGs. 11064 110652018-02-16 Richard Biener <rguenther@suse.de> 11066 11067 PR tree-optimization/84399 11068 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): 11069 For operands we can analyze at their definition make sure we can 11070 analyze them at each use as well. 11071 110722018-02-16 Richard Biener <rguenther@suse.de> 11073 11074 PR tree-optimization/84190 11075 * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch 11076 volatile accesses if the decl isn't volatile. 11077 110782018-02-15 Jason Merrill <jason@redhat.com> 11079 11080 PR c++/84314 - ICE with templates and fastcall attribute. 11081 * attribs.c (build_type_attribute_qual_variant): Don't clobber 11082 TYPE_CANONICAL on an existing type. 11083 110842018-02-15 Jakub Jelinek <jakub@redhat.com> 11085 11086 PR tree-optimization/84383 11087 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at 11088 dstoff nor call operand_equal_p if dstbase is NULL. 11089 11090 PR tree-optimization/84334 11091 * match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is 11092 also a CONSTANT_CLASS_P, punt. 11093 110942018-02-14 Jim Wilson <jimw@sifive.com> 11095 11096 * config/riscv/riscv.c (riscv_first_stack_step): Move locals after 11097 first SMALL_OPERAND check. New local min_second_step. Move assert 11098 to where locals are set. Add TARGET_RVC support. 11099 * config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New. 11100 111012018-02-14 Indu Bhagat <indu.bhagat@oracle.com> 11102 11103 * doc/invoke.texi: Correct -Wformat-overflow code sample. 11104 111052018-02-14 Martin Sebor <msebor@redhat.com> 11106 11107 PR tree-optimization/83698 11108 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For 11109 arrays constrain the offset range to their bounds. 11110 (builtin_access::strcat_overlap): Adjust the bounds of overlap offset. 11111 (builtin_access::overlap): Avoid setting the size of overlap if it's 11112 already been set. 11113 (maybe_diag_overlap): Also consider arrays when deciding what values 11114 of offsets to include in diagnostics. 11115 111162018-02-14 Martin Sebor <msebor@redhat.com> 11117 11118 PR c/84108 11119 * attribs.c (diag_attr_exclusions): Consider the exclusion(s) 11120 that correspond to the kind of a declaration. 11121 111222018-02-14 John David Anglin <danglin@gcc.gnu.org> 11123 11124 PR target/83984 11125 * config/pa/pa.md: Load address of PIC label using the linkage table 11126 if the label is nonlocal. 11127 111282018-02-14 Kelvin Nilsen <kelvin@gcc.gnu.org> 11129 11130 * config/rs6000/rs6000.c (rs6000_option_override_internal): Issue 11131 warning message if user requests -maltivec=be. 11132 * doc/invoke.texi: Document deprecation of -maltivec=be. 11133 111342018-02-14 Will Schmidt <will_schmidt@vnet.ibm.com> 11135 11136 PR target/84220 11137 * config/rs6000/rs6000-c.c: Update definitions for 11138 ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW, 11139 VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins. 11140 111412018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 11142 11143 PR target/84239 11144 * config/i386/cetintrin.h: Remove _rdssp[d|q] and 11145 add _get_ssp intrinsics. Remove argument from 11146 __builtin_ia32_rdssp[d|q]. 11147 * config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID. 11148 * config/i386/i386-builtin.def: Remove argument from 11149 __builtin_ia32_rdssp[d|q]. 11150 * config/i386/i386.c: Use UINT_FTYPE_VOID. Use 11151 ix86_expand_special_args_builtin for _rdssp[d|q]. 11152 * config/i386/i386.md: Remove argument from rdssp[si|di] insn. 11153 Clear register before usage. 11154 * doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q]. 11155 Add documentation for new _get_ssp and _inc_ssp intrinsics. 11156 111572018-02-14 Richard Sandiford <richard.sandiford@linaro.org> 11158 11159 PR tree-optimization/84357 11160 * tree-data-ref.c (object_address_invariant_in_loop_p): Check 11161 operand 1 of an ARRAY_REF too. 11162 111632018-02-14 Oleg Endo <olegendo@gcc.gnu.org> 11164 11165 PR target/83831 11166 * config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn, 11167 rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New 11168 declarations. 11169 (set_of_reg): New struct. 11170 (rx_find_set_of_reg, rx_find_use_of_reg): New functions. 11171 * config/rx/rx.c (rx_reg_dead_or_unused_after_insn, 11172 rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New 11173 functions. 11174 * config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split. 11175 Split into bitclr, bitset, bitinvert patterns if appropriate. 11176 (*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and 11177 use rx_fuse_in_memory_bitop. 11178 (*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert 11179 to named insn, correct maximum insn length. 11180 111812018-02-14 Jozef Lawrynowicz <jozefl.gcc@gmail.com> 11182 11183 PR target/79242 11184 * machmode.def: Define a complex mode for PARTIAL_INT. 11185 * genmodes.c (complex_class): Return MODE_COMPLEX_INT for 11186 MODE_PARTIAL_INT. 11187 * doc/rtl.texi: Document CSPImode. 11188 * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode 11189 handling. 11190 (msp430_hard_regno_nregs_with_padding): Likewise. 11191 111922018-02-13 Peter Bergner <bergner@vnet.ibm.com> 11193 11194 PR target/84279 11195 * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses. 11196 111972018-02-13 Segher Boessenkool <segher@kernel.crashing.org> 11198 11199 PR rtl-optimization/84169 11200 * combine.c (try_combine): New variable split_i2i3. Set it to true if 11201 we generated a parallel as new i3 and we split that to new i2 and i3 11202 instructions. Handle split_i2i3 similar to swap_i2i3: scan the 11203 LOG_LINKs of i3 to see which of those need to link to i2 now. Link 11204 those to i2, not i1. Partially rewrite this scan code. 11205 112062018-02-13 Jakub Jelinek <jakub@redhat.com> 11207 11208 PR c/82210 11209 * stor-layout.c (place_field): For variable length fields, adjust 11210 offset_align afterwards not just based on the field's alignment, 11211 but also on the size. 11212 11213 PR middle-end/84309 11214 * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead 11215 of exps and logs in the use_exp2 case. 11216 112172018-02-13 Jeff Law <law@redhat.com> 11218 11219 * config/rl/rl78.c (rl78_attribute_table): Fix terminator and 11220 entry for "vector". 11221 11222 * config/rl78/rl78.c (rl78_handle_func_attribute): Mark 11223 ARGS as unused. 11224 112252018-02-13 Alexandre Oliva <aoliva@redhat.com> 11226 11227 PR debug/84342 11228 PR debug/84319 11229 * common.opt (gas-loc-support, gas-locview-support): New. 11230 (ginline-points, ginternal-reset-location-views): New. 11231 * doc/invoke.texi: Document them. Use @itemx where intended. 11232 (gvariable-location-views): Adjust. 11233 * target.def (reset_location_view): New. 11234 * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. 11235 (TARGET_RESET_LOCATION_VIEW): New. 11236 * doc/tm.texi: Rebuilt. 11237 * dwarf2out.c (dwarf2out_default_as_loc_support): New. 11238 (dwarf2out_default_as_locview_support): New. 11239 (output_asm_line_debug_info): Use option variables. 11240 (dwarf2out_maybe_output_loclist_view_pair): Likewise. 11241 (output_loc_list): Likewise. 11242 (add_high_low_attributes): Check option variables. 11243 Don't output entry view attribute in strict mode. 11244 (gen_inlined_subroutine_die): Check option variables. 11245 (dwarf2out_inline_entry): Likewise. 11246 (init_sections_and_labels): Likewise. 11247 (dwarf2out_early_finish): Likewise. 11248 (maybe_reset_location_view): New, from... 11249 (dwarf2out_var_location): ... here. Call it. 11250 * debug.h (dwarf2out_default_as_loc_support): Declare. 11251 (dwarf2out_default_as_locview_support): Declare. 11252 * hooks.c (hook_int_rtx_insn_0): New. 11253 * hooks.h (hook_int_rtx_insn_0): Declare. 11254 * toplev.c (process_options): Take -gas-loc-support and 11255 -gas-locview-support from dwarf2out. Enable 11256 -gvariable-location-views by default only with locview 11257 assembler support. Enable -ginternal-reset-location-views by 11258 default only if the target defines the corresponding hook. 11259 Enable -ginline-points by default if location views are 11260 enabled; force it disabled if statement frontiers are 11261 disabled. 11262 * tree-inline.c (expand_call_inline): Check option variables. 11263 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. 11264 112652018-02-13 Richard Sandiford <richard.sandiford@linaro.org> 11266 11267 PR tree-optimization/84321 11268 * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE 11269 handling. Also check whether the anti-range contains any values 11270 that satisfy the mask; switch to a VR_RANGE if not. 11271 112722018-02-13 Paolo Bonzini <bonzini@gnu.org> 11273 11274 PR sanitizer/84340 11275 * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec. 11276 112772018-02-13 Martin Jambor <mjambor@suse.cz> 11278 11279 PR c++/83990 11280 * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location 11281 of call statements, also set location of a load to a temporary. 11282 112832018-02-13 Sebastian Perta <sebastian.perta@renesas.com> 11284 11285 * config/rl78/rl78.c (add_vector_labels): New function. 11286 * config/rl78/rl78.c (rl78_handle_vector_attribute): New function. 11287 * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels. 11288 * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert 11289 which checks that no arguments are passed. 11290 * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute. 11291 * doc/extend.texi: Documentation for the new attribute. 11292 112932018-02-13 Andreas Schwab <schwab@suse.de> 11294 11295 * config/riscv/linux.h (CPP_SPEC): Define. 11296 112972018-02-13 Jakub Jelinek <jakub@redhat.com> 11298 11299 PR target/84335 11300 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass 11301 OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of 11302 OPTION_MASK_ISA_AES as first argument to def_builtin_const 11303 for AES builtins. Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2 11304 instead of OPTION_MASK_ISA_PCLMUL as first argument to 11305 def_builtin_const for __builtin_ia32_pclmulqdq128 builtin. 11306 * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it 11307 temporarily for AES and PCLMUL builtins. 11308 11309 PR tree-optimization/84339 11310 * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling 11311 ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF. 11312 Formatting fixes. 11313 11314 PR middle-end/84309 11315 * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into 11316 exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available. 11317 * generic-match-head.c (canonicalize_math_after_vectorization_p): New 11318 inline function. 11319 * gimple-match-head.c (canonicalize_math_after_vectorization_p): New 11320 inline function. 11321 * omp-simd-clone.h: New file. 11322 * omp-simd-clone.c: Include omp-simd-clone.h. 11323 (expand_simd_clones): No longer static. 11324 * tree-vect-patterns.c: Include fold-const-call.h, attribs.h, 11325 cgraph.h and omp-simd-clone.h. 11326 (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x). 11327 (vect_recog_widen_shift_pattern): Formatting fix. 11328 (vect_pattern_recog_1): Don't check optab for calls. 11329 11330 PR target/84336 11331 * config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force 11332 operands[2] into a REG before using gen_lowpart on it. 11333 113342018-02-12 Jeff Law <law@redhat.com> 11335 11336 PR target/83760 11337 * config/sh/sh.c (find_barrier): Consider a sibling call 11338 a barrier as well. 11339 11340 * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when 11341 successfully back substituting a reg. 11342 113432018-02-12 Richard Biener <rguenther@suse.de> 11344 11345 PR tree-optimization/84037 11346 * tree-vect-slp.c (vect_analyze_slp_cost): Add visited 11347 parameter, move visited init to caller. 11348 (vect_slp_analyze_operations): Separate cost from validity 11349 check, initialize visited once for all instances. 11350 (vect_schedule_slp): Analyze map to CSE vectorized nodes once 11351 for all instances. 11352 * tree-vect-stmts.c (vect_model_simple_cost): Make early 11353 out an assert. 11354 (vect_model_promotion_demotion_cost): Likewise. 11355 (vectorizable_bswap): Guard cost modeling with !slp_node 11356 instead of !PURE_SLP_STMT to avoid double-counting on hybrid 11357 SLP stmts. 11358 (vectorizable_call): Likewise. 11359 (vectorizable_conversion): Likewise. 11360 (vectorizable_assignment): Likewise. 11361 (vectorizable_shift): Likewise. 11362 (vectorizable_operation): Likewise. 11363 (vectorizable_store): Likewise. 11364 (vectorizable_load): Likewise. 11365 (vectorizable_condition): Likewise. 11366 (vectorizable_comparison): Likewise. 11367 113682018-02-12 Paolo Bonzini <bonzini@gnu.org> 11369 11370 PR sanitizer/84307 11371 * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value. 11372 (ASAN_MARK): Fix fnspec to account for return value, change pointer 11373 argument from 'R' to 'W' so that the pointed-to datum is clobbered. 11374 113752018-02-08 Jan Hubicka <hubicka@ucw.cz> 11376 11377 PR middle-end/83665 11378 * params.def (inline-min-speedup): Increase from 8 to 15. 11379 (max-inline-insns-auto): Decrease from 40 to 30. 11380 * ipa-split.c (consider_split): Add some buffer for function to 11381 be considered inlining candidate. 11382 * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate 11383 default values. 11384 113852018-02-12 Richard Biener <rguenther@suse.de> 11386 11387 PR tree-optimization/84037 11388 * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the 11389 matched stmts if we cannot swap the non-matched ones. 11390 113912018-02-12 Olga Makhotina <olga.makhotina@intel.com> 11392 11393 * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd, 11394 _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, 11395 _mm_maskz_scalef_round_ss): New intrinsics. 11396 (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix. 11397 * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round, 11398 __builtin_ia32_scalefss_round): Remove. 11399 (__builtin_ia32_scalefsd_mask_round, 11400 __builtin_ia32_scalefss_mask_round): New intrinsics. 11401 * config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ... 11402 (vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this. 11403 ((match_operand:VF_128 2 "<round_nimm_predicate>" 11404 "<round_constraint>")): Changed to ... 11405 ((match_operand:VF_128 2 "<round_scalar_nimm_predicate>" 11406 "<round_scalar_constraint>")): ... this. 11407 ("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0| 11408 %0, %1, %2<round_op3>}"): Changed to ... 11409 ("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1, 11410 %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, 11411 %2<round_scalar_mask_op3>}"): ... this. 11412 * config/i386/subst.md (round_scalar_nimm_predicate): New. 11413 114142018-02-12 Olga Makhotina <olga.makhotina@intel.com> 11415 11416 * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd) 11417 (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss) 11418 (_mm_maskz_sqrt_round_ss): New intrinsics. 11419 (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove. 11420 (__builtin_ia32_sqrtsd_mask_round) 11421 (__builtin_ia32_sqrtss_mask_round): New builtins. 11422 * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round) 11423 (__builtin_ia32_sqrtss_round): Remove. 11424 (__builtin_ia32_sqrtsd_mask_round) 11425 (__builtin_ia32_sqrtss_mask_round): New builtins. 11426 * config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ... 11427 (vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this. 11428 ((match_operand:VF_128 1 "vector_operand" 11429 "xBm,<round_constraint>")): Changed to ... 11430 ((match_operand:VF_128 1 "vector_operand" 11431 "xBm,<round_scalar_constraint>")): ... this. 11432 (vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0| 11433 %0, %2, %<iptr>1<round_op3>}): Changed to ... 11434 (vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2, 11435 %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2, 11436 %<iptr>1<round_scalar_mask_op3>}): ... this. 11437 ((set_attr "prefix" "<round_prefix>")): Changed to ... 11438 ((set_attr "prefix" "<round_scalar_prefix>")): ... this. 11439 114402018-02-11 Steven Munroe <munroesj@gcc.gnu.org> 11441 11442 PR target/84266 11443 * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]): 11444 Cast vec_cmpeq result to correct type. 11445 * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]): 11446 Cast vec_cmpgt result to correct type. 11447 114482018-02-11 Alexandre Oliva <aoliva@redhat.com> 11449 11450 * final.c (final_scan_insn_1): Renamed from... 11451 (final_scan_insn): ... this. New wrapper, to recover 11452 seen from the outermost call in recursive ones. 11453 * config/sparc/sparc.c (output_return): Drop seen from call. 11454 (output_sibcall): Likewise. 11455 * config/visium/visium.c (output_branch): Likewise. 11456 114572018-02-10 John David Anglin <danglin@gcc.gnu.org> 11458 11459 * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as 11460 function label. 11461 114622018-02-10 Alan Modra <amodra@gmail.com> 11463 11464 PR target/84300 11465 * config/rs6000/rs6000.md (split_stack_return): Remove (use ..). 11466 Specify LR as an input. 11467 114682018-02-10 Jakub Jelinek <jakub@redhat.com> 11469 11470 PR sanitizer/83987 11471 * omp-low.c (maybe_remove_omp_member_access_dummy_vars, 11472 remove_member_access_dummy_vars): New functions. 11473 (lower_omp_for, lower_omp_taskreg, lower_omp_target, 11474 lower_omp_1, execute_lower_omp): Use them. 11475 11476 PR rtl-optimization/84308 11477 * shrink-wrap.c (spread_components): Release todo vector. 11478 114792018-02-09 Vladimir Makarov <vmakarov@redhat.com> 11480 11481 PR rtl-optimization/57193 11482 * ira-color.c (struct allocno_color_data): Add member 11483 conflict_allocno_hard_prefs. 11484 (update_conflict_allocno_hard_prefs): New. 11485 (bucket_allocno_compare_func): Add a preference based on 11486 conflict_allocno_hard_prefs. 11487 (push_allocno_to_stack): Update conflict_allocno_hard_prefs. 11488 (color_allocnos): Remove a dead code. Initiate 11489 conflict_allocno_hard_prefs. Call update_costs_from_prefs. 11490 114912018-02-09 Jakub Jelinek <jakub@redhat.com> 11492 11493 PR target/84226 11494 * config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand 11495 constraint from =wa to wa. Avoid a subreg on the output operand, 11496 instead use a pseudo and subreg it in a move. 11497 (p9_xxbrd_<mode>): Changed to ... 11498 (p9_xxbrd_v2di): ... this insn, without VSX_D iterator. 11499 (p9_xxbrd_v2df): New expander. 11500 (p9_xxbrw_<mode>): Changed to ... 11501 (p9_xxbrw_v4si): ... this insn, without VSX_W iterator. 11502 (p9_xxbrw_v4sf): New expander. 11503 115042018-02-09 Sebastian Perta <sebastian.perta@renesas.com> 11505 11506 * config/rx/rx.md (movsicc): Update expander to be matched by GCC. 11507 115082018-02-09 Peter Bergner <bergner@vnet.ibm.com> 11509 11510 PR target/83926 11511 * config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit 11512 multiply in 32-bit mode. 11513 (vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode. 11514 (vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit 11515 mode. 11516 115172018-02-09 Sebastian Perta <sebastian.perta@renesas.com> 11518 11519 * config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint 11520 to allow or block "symbol_ref" depending on the value of TARGET_JSR. 11521 * config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF. 11522 * config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF. 11523 115242018-02-09 Pierre-Marie de Rodat <derodat@adacore.com> 11525 11526 PR lto/84213 11527 * dwarf2out.c (is_trivial_indirect_ref): New function. 11528 (dwarf2out_late_global_decl): Do not generate a location 11529 attribute for variables that have a non-trivial DECL_VALUE_EXPR 11530 and that are not defined in the current unit. 11531 115322018-02-09 Eric Botcazou <ebotcazou@adacore.com> 11533 11534 * optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison 11535 instead of a libcall for UNORDERED. 11536 115372018-02-09 Tamar Christina <tamar.christina@arm.com> 11538 11539 PR target/82641 11540 * config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX, 11541 __ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP. 11542 115432018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 11544 11545 PR target/PR84295 11546 * config/s390/s390.c (s390_set_current_function): Invoke 11547 s390_indirect_branch_settings also if fndecl didn't change. 11548 115492018-02-09 Alexandre Oliva <aoliva@redhat.com> 11550 11551 * config/rs6000/rs6000.md (blockage): Set length to zero. 11552 115532018-02-09 Eric Botcazou <ebotcazou@adacore.com> 11554 11555 * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion. 11556 115572018-02-09 Jakub Jelinek <jakub@redhat.com> 11558 11559 PR sanitizer/84285 11560 * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS, 11561 STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like 11562 -static-lib*san. 11563 11564 PR debug/84252 11565 * var-tracking.c (vt_add_function_parameter): Punt for non-onepart 11566 PARALLEL incoming that failed vt_get_decl_and_offset check. 11567 11568 PR middle-end/84237 11569 * output.h (bss_initializer_p): Add NAMED argument, defaulted to false. 11570 * varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore 11571 TREE_READONLY bit. 11572 (get_variable_section): For decls in named .bss* sections pass true as 11573 second argument to bss_initializer_p. 11574 115752018-02-09 Marek Polacek <polacek@redhat.com> 11576 Jakub Jelinek <jakub@redhat.com> 11577 11578 PR c++/83659 11579 * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro. 11580 Formatting fixes. Verify first that tree_fits_poly_int64_p (op01). 11581 Sync some changes from cxx_fold_indirect_ref. 11582 115832018-02-09 Alexandre Oliva <aoliva@redhat.com> 11584 11585 * cfgexpand.c (expand_gimple_basic_block): Handle inline entry 11586 markers. 11587 * dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook. 11588 (BLOCK_INLINE_ENTRY_LABEL): New. 11589 (dwarf2out_var_location): Disregard inline entry markers. 11590 (inline_entry_data): New struct. 11591 (inline_entry_data_hasher): New hashtable type. 11592 (inline_entry_data_hasher::hash): New. 11593 (inline_entry_data_hasher::equal): New. 11594 (inline_entry_data_table): New variable. 11595 (add_high_low_attributes): Add DW_AT_entry_pc and 11596 DW_AT_GNU_entry_view attributes if a pending entry is found 11597 in inline_entry_data_table. Add old entry_pc attribute only 11598 if debug nonbinding markers are disabled. 11599 (gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding 11600 markers are enabled. 11601 (block_within_block_p, dwarf2out_inline_entry): New. 11602 (dwarf2out_finish): Check that no entries remained in 11603 inline_entry_data_table. 11604 * final.c (reemit_insn_block_notes): Handle inline entry notes. 11605 (final_scan_insn, notice_source_line): Likewise. 11606 (rest_of_clean_state): Skip inline entry markers. 11607 * gimple-pretty-print.c (dump_gimple_debug): Handle inline entry 11608 markers. 11609 * gimple.c (gimple_build_debug_inline_entry): New. 11610 * gimple.h (enum gimple_debug_subcode): Add 11611 GIMPLE_DEBUG_INLINE_ENTRY. 11612 (gimple_build_debug_inline_entry): Declare. 11613 (gimple_debug_inline_entry_p): New. 11614 (gimple_debug_nonbind_marker_p): Adjust. 11615 * insn-notes.def (INLINE_ENTRY): New. 11616 * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle 11617 inline entry marker notes. 11618 (print_insn): Likewise. 11619 * rtl.h (NOTE_MARKER_P): Add INLINE_ENTRY support. 11620 (INSN_DEBUG_MARKER_KIND): Likewise. 11621 (GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New. 11622 * tree-inline.c (expand_call_inline): Build and insert 11623 debug_inline_entry stmt. 11624 * tree-ssa-live.c (remove_unused_scope_block_p): Preserve 11625 inline entry blocks early, if nonbind markers are enabled. 11626 (dump_scope_block): Dump fragment info. 11627 * var-tracking.c (reemit_marker_as_note): Handle inline entry note. 11628 * doc/gimple.texi (gimple_debug_inline_entry_p): New. 11629 (gimple_build_debug_inline_entry): New. 11630 * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): 11631 Enable/disable inline entry points too. 11632 * doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New. 11633 (DEBUG_INSN): Describe inline entry markers. 11634 11635 * common.opt (gvariable-location-views): New. 11636 (gvariable-location-views=incompat5): New. 11637 * config.in: Rebuilt. 11638 * configure: Rebuilt. 11639 * configure.ac: Test assembler for view support. 11640 * dwarf2asm.c (dw2_asm_output_symname_uleb128): New. 11641 * dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare. 11642 * dwarf2out.c (var_loc_view): New typedef. 11643 (struct dw_loc_list_struct): Add vl_symbol, vbegin, vend. 11644 (dwarf2out_locviews_in_attribute): New. 11645 (dwarf2out_locviews_in_loclist): New. 11646 (dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists. 11647 (enum dw_line_info_opcode): Add LI_adv_address. 11648 (struct dw_line_info_table): Add view. 11649 (RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros. 11650 (DWARF2_ASM_VIEW_DEBUG_INFO): Define default. 11651 (zero_view_p): New variable. 11652 (ZERO_VIEW_P): New macro. 11653 (output_asm_line_debug_info): New. 11654 (struct var_loc_node): Add view. 11655 (add_AT_view_list, AT_loc_list): New. 11656 (add_var_loc_to_decl): Add view param. Test it against last. 11657 (new_loc_list): Add view params. Record them. 11658 (AT_loc_list_ptr): Handle loc and view lists. 11659 (view_list_to_loc_list_val_node): New. 11660 (print_dw_val): Handle dw_val_class_view_list. 11661 (size_of_die): Likewise. 11662 (value_format): Likewise. 11663 (loc_list_has_views): New. 11664 (gen_llsym): Set vl_symbol too. 11665 (maybe_gen_llsym, skip_loc_list_entry): New. 11666 (dwarf2out_maybe_output_loclist_view_pair): New. 11667 (output_loc_list): Output view list or entries too. 11668 (output_view_list_offset): New. 11669 (output_die): Handle dw_val_class_view_list. 11670 (output_dwarf_version): New. 11671 (output_compilation_unit_header): Use it. 11672 (output_skeleton_debug_sections): Likewise. 11673 (output_rnglists, output_line_info): Likewise. 11674 (output_pubnames, output_aranges): Update version comments. 11675 (output_one_line_info_table): Output view numbers in asm comments. 11676 (dw_loc_list): Determine current endview, pass it to new_loc_list. 11677 Call maybe_gen_llsym. 11678 (loc_list_from_tree_1): Adjust. 11679 (add_AT_location_description): Create view list attribute if 11680 needed, check it's absent otherwise. 11681 (convert_cfa_to_fb_loc_list): Adjust. 11682 (maybe_emit_file): Call output_asm_line_debug_info for test. 11683 (dwarf2out_var_location): Reset views as needed. Precompute 11684 add_var_loc_to_decl args. Call get_attr_min_length only if we have the 11685 attribute. Set view. 11686 (new_line_info_table): Reset next view. 11687 (set_cur_line_info_table): Call output_asm_line_debug_info for test. 11688 (dwarf2out_source_line): Likewise. Output view resets and labels to 11689 the assembler, or select appropriate line info opcodes. 11690 (prune_unused_types_walk_attribs): Handle dw_val_class_view_list. 11691 (optimize_string_length): Catch it. Adjust. 11692 (resolve_addr): Copy vl_symbol along with ll_symbol. Handle 11693 dw_val_class_view_list, and remove it if no longer needed. 11694 (hash_loc_list): Hash view numbers. 11695 (loc_list_hasher::equal): Compare them. 11696 (optimize_location_lists): Check whether a view list symbol is 11697 needed, and whether the locview attribute is present, and 11698 whether they match. Remove the locview attribute if no longer 11699 needed. 11700 (index_location_lists): Call skip_loc_list_entry for test. 11701 (dwarf2out_finish): Call output_asm_line_debug_info for test. 11702 Use output_dwarf_version. 11703 * dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list. 11704 (struct dw_val_node): Add val_view_list. 11705 * final.c (SEEN_NEXT_VIEW): New. 11706 (set_next_view_needed): New. 11707 (clear_next_view_needed): New. 11708 (maybe_output_next_view): New. 11709 (final_start_function): Rename to... 11710 (final_start_function_1): ... this. Take pointer to FIRST, 11711 add SEEN parameter. Emit param bindings in the initial view. 11712 (final_start_function): Reintroduce SEEN-less interface. 11713 (final): Rename to... 11714 (final_1): ... this. Take SEEN parameter. Output final pending 11715 next view at the end. 11716 (final): Reintroduce seen-less interface. 11717 (final_scan_insn): Output pending next view before switching 11718 sections or ending a block. Mark the next view as needed when 11719 outputting variable locations. Notify debug backend of section 11720 changes, and of location view changes. 11721 (rest_of_handle_final): Adjust. 11722 * toplev.c (process_options): Autodetect value for debug variable 11723 location views option. Warn on incompat5 without -gdwarf-5. 11724 * doc/invoke.texi (gvariable-location-views): New. 11725 (gvariable-location-views=incompat5): New. 11726 (gno-variable-location-views): New. 11727 117282018-02-08 David Malcolm <dmalcolm@redhat.com> 11729 11730 PR tree-optimization/84136 11731 * tree-cfg.c (find_taken_edge_computed_goto): Remove assertion 11732 that the result of find_edge is non-NULL. 11733 117342018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> 11735 11736 PR target/83008 11737 * config/i386/x86-tune-costs.h (skylake_cost): Fix cost of 11738 storing integer register in SImode. Fix cost of 256 and 512 11739 byte aligned SSE register store. 11740 117412018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> 11742 11743 * config/i386/i386.c (ix86_multiplication_cost): Fix 11744 multiplication cost for TARGET_AVX512DQ. 11745 117462018-02-08 Marek Polacek <polacek@redhat.com> 11747 11748 PR tree-optimization/84238 11749 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of 11750 get_range_strlen. 11751 117522018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 11753 11754 PR tree-optimization/84265 11755 * tree-vect-stmts.c (vectorizable_store): Don't treat 11756 VMAT_CONTIGUOUS accesses as grouped. 11757 (vectorizable_load): Likewise. 11758 117592018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 11760 11761 PR tree-optimization/81635 11762 * wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare. 11763 * wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask) 11764 (test_round_for_mask): New functions. 11765 (wide_int_cc_tests): Call test_round_for_mask. 11766 * tree-vrp.h (intersect_range_with_nonzero_bits): Declare. 11767 * tree-vrp.c (intersect_range_with_nonzero_bits): New function. 11768 * tree-data-ref.c (split_constant_offset_1): Use it to refine the 11769 range returned by get_range_info. 11770 117712018-02-08 Jan Hubicka <hubicka@ucw.cz> 11772 11773 PR ipa/81360 11774 * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare 11775 * symtab.c: Include builtins.h 11776 (symtab_node::output_to_lto_symbol_table_p): Move here 11777 from lto-streamer-out.c:output_symbol_p. 11778 * lto-streamer-out.c (write_symbol): Turn early exit to assert. 11779 (output_symbol_p): Move all logic to symtab.c 11780 (produce_symtab): Update. 11781 117822018-02-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 11783 11784 * config/s390/s390-opts.h (enum indirect_branch): Define. 11785 * config/s390/s390-protos.h (s390_return_addr_from_memory) 11786 (s390_indirect_branch_via_thunk) 11787 (s390_indirect_branch_via_inline_thunk): Add function prototypes. 11788 (enum s390_indirect_branch_type): Define. 11789 * config/s390/s390.c (struct s390_frame_layout, struct 11790 machine_function): Remove. 11791 (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask) 11792 (indirect_branch_table_label_no, indirect_branch_table_name): 11793 Define variables. 11794 (INDIRECT_BRANCH_NUM_OPTIONS): Define macro. 11795 (enum s390_indirect_branch_option): Define. 11796 (s390_return_addr_from_memory): New function. 11797 (s390_handle_string_attribute): New function. 11798 (s390_attribute_table): Add new attribute handler. 11799 (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns. 11800 (s390_indirect_branch_via_thunk): New function. 11801 (s390_indirect_branch_via_inline_thunk): New function. 11802 (s390_function_ok_for_sibcall): When jumping via thunk disallow 11803 sibling call optimization for non z10 compiles. 11804 (s390_emit_call): Force indirect branch target to be a single 11805 register. Add r1 clobber for non-z10 compiles. 11806 (s390_emit_epilogue): Emit return jump via return_use expander. 11807 (s390_reorg): Handle JUMP_INSNs as execute targets. 11808 (s390_option_override_internal): Perform validity checks for the 11809 new command line options. 11810 (s390_indirect_branch_attrvalue): New function. 11811 (s390_indirect_branch_settings): New function. 11812 (s390_set_current_function): Invoke s390_indirect_branch_settings. 11813 (s390_output_indirect_thunk_function): New function. 11814 (s390_code_end): Implement target hook. 11815 (s390_case_values_threshold): Implement target hook. 11816 (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target 11817 macros. 11818 * config/s390/s390.h (struct s390_frame_layout) 11819 (struct machine_function): Move here from s390.c. 11820 (TARGET_INDIRECT_BRANCH_NOBP_RET) 11821 (TARGET_INDIRECT_BRANCH_NOBP_JUMP) 11822 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK) 11823 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK) 11824 (TARGET_INDIRECT_BRANCH_NOBP_CALL) 11825 (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE) 11826 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL) 11827 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX) 11828 (TARGET_INDIRECT_BRANCH_TABLE): Define macros. 11829 * config/s390/s390.md (UNSPEC_EXECUTE_JUMP) 11830 (INDIRECT_BRANCH_THUNK_REGNUM): Define constants. 11831 (mnemonic attribute): Add values which aren't recognized 11832 automatically. 11833 ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable 11834 pattern for branch conversion. Fix mnemonic attribute. 11835 ("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit 11836 indirect branch via thunk if requested. 11837 ("indirect_jump", "<code>"): Expand patterns for branch conversion. 11838 ("*indirect_jump"): Disable for branch conversion using out of 11839 line thunks. 11840 ("indirect_jump_via_thunk<mode>_z10") 11841 ("indirect_jump_via_thunk<mode>") 11842 ("indirect_jump_via_inlinethunk<mode>_z10") 11843 ("indirect_jump_via_inlinethunk<mode>", "*casesi_jump") 11844 ("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>") 11845 ("casesi_jump_via_inlinethunk<mode>_z10") 11846 ("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10") 11847 ("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10") 11848 ("*basr_r_via_thunk", "return<mode>_prez10"): New pattern. 11849 ("*indirect2_jump"): Disable for branch conversion. 11850 ("casesi_jump"): Turn into expander and expand patterns for branch 11851 conversion. 11852 ("return_use"): New expander. 11853 ("*return"): Emit return via thunk and rename it to ... 11854 ("*return<mode>"): ... this one. 11855 * config/s390/s390.opt: Add new options and and enum for the 11856 option values. 11857 118582018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 11859 11860 * lra-constraints.c (match_reload): Unconditionally use 11861 gen_lowpart_SUBREG, rather than selecting between that 11862 and equivalent gen_rtx_SUBREG code. 11863 118642018-02-08 Richard Biener <rguenther@suse.de> 11865 11866 PR tree-optimization/84233 11867 * tree-ssa-phiprop.c (propagate_with_phi): Use separate 11868 changed flag instead of boguously re-using phi_inserted. 11869 118702018-02-08 Martin Jambor <mjambor@suse.cz> 11871 11872 * hsa-gen.c (get_symbol_for_decl): Set program allocation for 11873 static local variables. 11874 118752018-02-08 Richard Biener <rguenther@suse.de> 11876 11877 PR tree-optimization/84278 11878 * tree-vect-stmts.c (vectorizable_store): When looking for 11879 smaller vector types to perform grouped strided loads/stores 11880 make sure the mode is supported by the target. 11881 (vectorizable_load): Likewise. 11882 118832018-02-08 Wilco Dijkstra <wdijkstr@arm.com> 11884 11885 * config/aarch64/aarch64.c (aarch64_components_for_bb): 11886 Increase LDP/STP opportunities by adding adjacent callee-saves. 11887 118882018-02-08 Wilco Dijkstra <wdijkstr@arm.com> 11889 11890 PR rtl-optimization/84068 11891 PR rtl-optimization/83459 11892 * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting. 11893 118942018-02-08 Aldy Hernandez <aldyh@redhat.com> 11895 11896 PR tree-optimization/84224 11897 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert. 11898 * calls.c (gimple_alloca_call_p): Only return TRUE when we have 11899 non-zero arguments. 11900 119012018-02-07 Iain Sandoe <iain@codesourcery.com> 11902 11903 PR target/84113 11904 * config/rs6000/altivec.md (*restore_world): Remove LR use. 11905 * config/rs6000/predicates.md (restore_world_operation): Adjust op 11906 count, remove one USE. 11907 119082018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> 11909 11910 * doc/install.texi (Configuration): Document the 11911 --with-long-double-format={ibm,ieee} PowerPC configuration 11912 options. 11913 11914 PR target/84154 11915 * config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2): 11916 Convert from define_expand to be define_insn_and_split. Rework 11917 float/double/_Float128 conversions to QI/HI/SImode to work with 11918 both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where 11919 conversions to QI/HImode types did a store and then a load to 11920 truncate the value. For conversions to VSX registers, don't split 11921 the insn, instead emit the code directly. Use the code iterator 11922 any_fix to combine signed and unsigned conversions. 11923 (fix<uns>_trunc<SFDF:mode>si2_p8): Likewise. 11924 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise. 11925 (fix_trunc<IEEE128:mode><QHI:mode>2): Likewise. 11926 (fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise. 11927 (fix_<mode>di2_hw): Likewise. 11928 (fixuns_<mode>di2_hw): Likewise. 11929 (fix_<mode>si2_hw): Likewise. 11930 (fixuns_<mode>si2_hw): Likewise. 11931 (fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise. 11932 (fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise. 11933 (fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to 11934 fix<uns>_trunc<SFDF:mode>si2_p8. 11935 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer 11936 used. 11937 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. 11938 (fix<uns>_<mode>_mem): Likewise. 11939 (fctiw<u>z_<mode>_mem): Likewise. 11940 (fix<uns>_<mode>_mem): Likewise. 11941 (fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent 11942 the register allocator from doing a direct move to the GPRs to do 11943 a store, and instead use the ISA 3.0 store byte/half-word from 11944 vector register instruction. For IEEE 128-bit floating point, 11945 also optimize stores of 32-bit ints. 11946 (fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise. 11947 119482018-02-07 Alan Hayward <alan.hayward@arm.com> 11949 11950 * genextract.c (push_pathstr_operand): New function to support 11951 [a-zA-Z]. 11952 (walk_rtx): Call push_pathstr_operand. 11953 (print_path): Support [a-zA-Z]. 11954 119552018-02-07 Richard Biener <rguenther@suse.de> 11956 11957 PR tree-optimization/84037 11958 * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member. 11959 (cse_and_gimplify_to_preheader): Declare. 11960 (vect_get_place_in_interleaving_chain): Likewise. 11961 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 11962 ivexpr_map. 11963 (_loop_vec_info::~_loop_vec_info): Delete it. 11964 (cse_and_gimplify_to_preheader): New function. 11965 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export. 11966 * tree-vect-stmts.c (vectorizable_store): CSE base and steps. 11967 (vectorizable_load): Likewise. For grouped stores always base 11968 the IV on the first element. 11969 * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning 11970 condition before gimplifying. 11971 119722018-02-07 Jakub Jelinek <jakub@redhat.com> 11973 11974 * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for 11975 *DIV_EXPR and *MOD_EXPR. 11976 119772018-02-07 H.J. Lu <hongjiu.lu@intel.com> 11978 11979 PR target/84248 11980 * config/i386/i386.c (ix86_option_override_internal): Mask out 11981 the CF_SET bit when checking -fcf-protection. 11982 119832018-02-07 Tom de Vries <tom@codesourcery.com> 11984 11985 PR libgomp/84217 11986 * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large 11987 enough. 11988 119892018-02-07 Richard Biener <rguenther@suse.de> 11990 11991 PR tree-optimization/84204 11992 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in 11993 this place. 11994 11995 PR tree-optimization/84205 11996 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also 11997 special-case isl_ast_op_zdiv_r. 11998 11999 PR tree-optimization/84223 12000 * graphite-scop-detection.c (gather_bbs::before_dom_children): 12001 Only add conditions from within the region. 12002 (gather_bbs::after_dom_children): Adjust. 12003 120042018-02-07 Georg-Johann Lay <avr@gjlay.de> 12005 12006 PR target/84209 12007 * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros. 12008 * config/avr/avr.md: Only post-reload split REG-REG moves if 12009 either register is GENERAL_REG_P. 12010 120112018-02-07 Jakub Jelinek <jakub@redhat.com> 12012 12013 PR tree-optimization/84235 12014 * tree-ssa-scopedtables.c 12015 (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt 12016 if the subtraction is performed in floating point type where NaNs are 12017 honored. For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't 12018 build 1. Formatting fix. 12019 120202018-02-06 Jakub Jelinek <jakub@redhat.com> 12021 12022 PR target/84146 12023 * config/i386/i386.c (rest_of_insert_endbranch): Only skip 12024 NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else, 12025 and skip it regardless of bb boundaries. Use CALL_P macro, 12026 don't test INSN_P (insn) together with CALL_P or JUMP_P check 12027 unnecessarily, formatting fix. 12028 120292018-02-06 Michael Collison <michael.collison@arm.com> 12030 12031 * config/arm/thumb2.md: 12032 (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it. 12033 (*thumb_mov_notscc): Ditto. 12034 120352018-02-06 Michael Meissner <meissner@linux.vnet.ibm.com> 12036 12037 PR target/84154 12038 * config/rs6000/rs6000.md (su code attribute): Use "u" for 12039 unsigned_fix, not "s". 12040 120412018-02-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 12042 12043 * configure.ac (gcc_fn_eh_frame_ro): New function. 12044 (gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for 12045 correct .eh_frame permissions. 12046 * configure: Regenerate. 12047 120482018-02-06 Andrew Jenner <andrew@codeourcery.com> 12049 12050 * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove 12051 irrelevant options. 12052 120532018-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 12054 12055 * config/rs6000/rs6000.c (rs6000_option_override_internal): 12056 Display warning message for -mno-speculate-indirect-jumps. 12057 120582018-02-06 Andrew Jenner <andrew@codesourcery.com> 12059 12060 * config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add 12061 Undocumented. 12062 * config/powerpcspe/sysv4.opt (mbit-align): Likewise. 12063 120642018-02-06 Aldy Hernandez <aldyh@redhat.com> 12065 12066 PR tree-optimization/84225 12067 * tree-eh.c (find_trapping_overflow): Only call 12068 operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P. 12069 120702018-02-06 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 12071 12072 PR target/84145 12073 * config/i386/i386.c: Reimplement the check of possible options 12074 -mibt/-mshstk conbination. Change error messages. 12075 * doc/invoke.texi: Fix a typo: remove extra '='. 12076 120772018-02-06 Marek Polacek <polacek@redhat.com> 12078 12079 PR tree-optimization/84228 12080 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements. 12081 120822018-02-06 Tamar Christina <tamar.christina@arm.com> 12083 12084 PR target/82641 12085 * config/arm/arm.c (arm_print_asm_arch_directives): Record already 12086 emitted arch directives. 12087 * config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and 12088 __ARM_FEATURE_COPROC before changing architectures. 12089 120902018-02-06 Richard Biener <rguenther@suse.de> 12091 12092 * config/i386/i386.c (print_reg): Fix typo. 12093 (ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll. 12094 120952018-02-06 Eric Botcazou <ebotcazou@adacore.com> 12096 12097 * configure: Regenerate. 12098 120992018-02-05 Martin Sebor <msebor@redhat.com> 12100 12101 PR tree-optimization/83369 12102 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print 12103 inlining context. 12104 121052018-02-05 Martin Liska <mliska@suse.cz> 12106 12107 * doc/invoke.texi: Cherry-pick upstream r323995. 12108 121092018-02-05 Richard Sandiford <richard.sandiford@linaro.org> 12110 12111 * ira.c (ira_init_register_move_cost): Adjust comment. 12112 121132018-02-05 Martin Liska <mliska@suse.cz> 12114 12115 PR gcov-profile/84137 12116 * doc/gcov.texi: Fix typo in documentation. 12117 121182018-02-05 Martin Liska <mliska@suse.cz> 12119 12120 PR gcov-profile/83879 12121 * doc/gcov.texi: Document necessity of --dynamic-list-data when 12122 using dlopen functionality. 12123 121242018-02-05 Olga Makhotina <olga.makhotina@intel.com> 12125 12126 * config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd, 12127 _mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss, 12128 _mm_maskz_range_ss, _mm_mask_range_round_ss, 12129 _mm_maskz_range_round_ss): New intrinsics. 12130 (__builtin_ia32_rangesd128_round) 12131 (__builtin_ia32_rangess128_round): Remove. 12132 (__builtin_ia32_rangesd128_mask_round, 12133 __builtin_ia32_rangess128_mask_round): New builtins. 12134 * config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round, 12135 __builtin_ia32_rangess128_round): Remove. 12136 (__builtin_ia32_rangesd128_mask_round, 12137 __builtin_ia32_rangess128_mask_round): New builtins. 12138 * config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ... 12139 (ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this. 12140 ((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>" 12141 "<round_saeonly_constraint>")): Changed to ... 12142 ((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>" 12143 "<round_saeonly_scalar_constraint>")): ... this. 12144 ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| 12145 %0, %1, %2<round_saeonly_op4>, %3}"): Changed to ... 12146 ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2, 12147 %1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1, 12148 %2<round_saeonly_scalar_mask_op4>, %3}"): ... this. 12149 121502018-02-02 Andrew Jenner <andrew@codesourcery.com> 12151 12152 * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant 12153 options. 12154 * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value): 12155 Remove all values except native, 8540 and 8548. 12156 121572018-02-02 H.J. Lu <hongjiu.lu@intel.com> 12158 12159 * config/i386/i386.c (ix86_output_function_return): Pass 12160 INVALID_REGNUM, instead of -1, as invalid register number to 12161 indirect_thunk_name and output_indirect_thunk. 12162 121632018-02-02 Julia Koval <julia.koval@intel.com> 12164 12165 * config.gcc: Add -march=icelake. 12166 * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake. 12167 * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake. 12168 * config/i386/i386.c (processor_costs): Add m_ICELAKE. 12169 (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2, 12170 PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New. 12171 (processor_target_table): Add icelake. 12172 (ix86_option_override_internal): Handle new PTAs. 12173 (get_builtin_code_for_version): Handle icelake. 12174 (M_INTEL_COREI7_ICELAKE): New. 12175 (fold_builtin_cpu): Handle icelake. 12176 * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New. 12177 * doc/invoke.texi: Add -march=icelake. 12178 121792018-02-02 Julia Koval <julia.koval@intel.com> 12180 12181 * config/i386/i386.c (ix86_option_override_internal): Change flags type 12182 to wide_int_bitmask. 12183 * wide-int-bitmask.h: New. 12184 121852018-02-02 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 12186 12187 PR target/84066 12188 * config/i386/i386.md: Replace Pmode with word_mode in 12189 builtin_setjmp_setup and builtin_longjmp to support x32. 12190 121912018-02-01 Peter Bergner <bergner@vnet.ibm.com> 12192 12193 PR target/56010 12194 PR target/83743 12195 * config/rs6000/driver-rs6000.c: #include "diagnostic.h". 12196 #include "opts.h". 12197 (rs6000_supported_cpu_names): New static variable. 12198 (linux_cpu_translation_table): Likewise. 12199 (elf_platform) <cpu>: Define new static variable and use it. 12200 Translate kernel AT_PLATFORM name to canonical name if needed. 12201 Error if platform name is unknown. 12202 122032018-02-01 Aldy Hernandez <aldyh@redhat.com> 12204 12205 PR target/84089 12206 * config/pa/predicates.md (base14_operand): Handle E_VOIDmode. 12207 122082018-02-01 Jeff Law <law@redhat.com> 12209 12210 PR target/84128 12211 * config/i386/i386.c (release_scratch_register_on_entry): Add new 12212 OFFSET and RELEASE_VIA_POP arguments. Use SP+OFFSET to restore 12213 the scratch if RELEASE_VIA_POP is false. 12214 (ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE. 12215 If we have to save a temporary register, decrement SIZE appropriately. 12216 Pass new arguments to release_scratch_register_on_entry. 12217 (ix86_adjust_stack_and_probe): Likewise. 12218 (ix86_emit_probe_stack_range): Pass new arguments to 12219 release_scratch_register_on_entry. 12220 122212018-02-01 Uros Bizjak <ubizjak@gmail.com> 12222 12223 PR rtl-optimization/84157 12224 * combine.c (change_zero_ext): Use REG_P predicate in 12225 front of HARD_REGISTER_P predicate. 12226 122272018-02-01 Georg-Johann Lay <avr@gjlay.de> 12228 12229 * config/avr/avr.c (avr_option_override): Move disabling of 12230 -fdelete-null-pointer-checks to... 12231 * common/config/avr/avr-common.c (avr_option_optimization_table): 12232 ...here. 12233 122342018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 12235 12236 PR tree-optimization/81635 12237 * tree-data-ref.c (split_constant_offset_1): For types that 12238 wrap on overflow, try to use range info to prove that wrapping 12239 cannot occur. 12240 122412018-02-01 Renlin Li <renlin.li@arm.com> 12242 12243 PR target/83370 12244 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle 12245 TAILCALL_ADDR_REGS. 12246 (aarch64_register_move_cost): Likewise. 12247 * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to 12248 TAILCALL_ADDR_REGS. 12249 (REG_CLASS_NAMES): Likewise. 12250 (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to 12251 TAILCALL_ADDR_REGS. Remove IP registers. 12252 * config/aarch64/aarch64.md (Ucs): Update register constraint. 12253 122542018-02-01 Richard Biener <rguenther@suse.de> 12255 12256 * domwalk.h (dom_walker::dom_walker): Add additional constructor 12257 for specifying RPO order and allow NULL for that. 12258 * domwalk.c (dom_walker::dom_walker): Likewise. 12259 (dom_walker::walk): Handle NULL RPO order. 12260 * tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children 12261 in RPO order. 12262 (rewrite_update_dom_walker): Likewise. 12263 (mark_def_dom_walker): Likewise. 12264 122652018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 12266 12267 * config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move) 12268 (aarch64_maybe_expand_sve_subreg_move): Declare. 12269 * config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec. 12270 * config/aarch64/predicates.md (aarch64_any_register_operand): New 12271 predicate. 12272 * config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves 12273 that are semantically a reverse operation. 12274 (*aarch64_sve_mov<mode>_subreg_be): New pattern. 12275 * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): 12276 (aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New 12277 functions. 12278 (aarch64_can_change_mode_class): For big-endian, forbid changes 12279 between two SVE modes if they have different element sizes. 12280 122812018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 12282 12283 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer 12284 the TImode handling for big-endian targets. 12285 122862018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 12287 12288 * config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with... 12289 (*sve_ld1rq<Vesize>): ... this new pattern. Handle all element sizes, 12290 not just bytes. 12291 * config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate): 12292 Remove BSWAP handing for big-endian targets and use the form of 12293 LD1RQ appropariate for the mode. 12294 122952018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 12296 12297 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle 12298 all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single 12299 duplicated element. 12300 123012018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 12302 12303 PR tearget/83845 12304 * config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten 12305 check for operands that need to go through aarch64_sve_reload_be. 12306 123072018-02-01 Jakub Jelinek <jakub@redhat.com> 12308 12309 PR tree-optimization/81661 12310 PR tree-optimization/84117 12311 * tree-eh.h (rewrite_to_non_trapping_overflow): Declare. 12312 * tree-eh.c: Include gimplify.h. 12313 (find_trapping_overflow, replace_trapping_overflow, 12314 rewrite_to_non_trapping_overflow): New functions. 12315 * tree-vect-loop.c: Include tree-eh.h. 12316 (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow. 12317 * tree-data-ref.c: Include tree-eh.h. 12318 (get_segment_min_max): Use rewrite_to_non_trapping_overflow. 12319 123202018-01-31 Uros Bizjak <ubizjak@gmail.com> 12321 12322 PR rtl-optimization/84123 12323 * combine.c (change_zero_ext): Check if hard register satisfies 12324 can_change_dest_mode before calling gen_lowpart_SUBREG. 12325 123262018-01-31 Vladimir Makarov <vmakarov@redhat.com> 12327 12328 PR target/82444 12329 * ira.c (ira_init_register_move_cost): Remove assert. 12330 123312018-01-31 Eric Botcazou <ebotcazou@adacore.com> 12332 12333 PR rtl-optimization/84071 12334 * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case. 12335 * doc/tm.texi: Regenerate. 12336 123372018-01-31 Richard Biener <rguenther@suse.de> 12338 12339 PR tree-optimization/84132 12340 * tree-data-ref.c (analyze_miv_subscript): Properly 12341 check whether evolution_function_is_affine_multivariate_p 12342 before calling gcd_of_steps_may_divide_p. 12343 123442018-01-31 Julia Koval <julia.koval@intel.com> 12345 12346 PR target/83618 12347 * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. 12348 * config/i386/i386.md (rdpid_rex64) New. 12349 (rdpid): Make 32bit only. 12350 123512018-01-29 Aldy Hernandez <aldyh@redhat.com> 12352 12353 PR lto/84105 12354 * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with 12355 an IDENTIFIER_NODE for FUNCTION_TYPE's. 12356 123572018-01-31 Eric Botcazou <ebotcazou@adacore.com> 12358 12359 Revert 12360 2018-01-12 Eric Botcazou <ebotcazou@adacore.com> 12361 12362 * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. 12363 123642018-01-31 Eric Botcazou <ebotcazou@adacore.com> 12365 12366 PR rtl-optimization/84071 12367 * combine.c (record_dead_and_set_regs_1): Record the source unmodified 12368 for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target. 12369 123702018-01-31 Claudiu Zissulescu <claziss@synopsys.com> 12371 12372 * config/arc/arc.c (arc_handle_aux_attribute): New function. 12373 (arc_attribute_table): Add 'aux' attribute. 12374 (arc_in_small_data_p): Consider aux like variables. 12375 (arc_is_aux_reg_p): New function. 12376 (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables. 12377 (arc_get_aux_arg): New function. 12378 (prepare_move_operands): Handle aux-register access. 12379 (arc_handle_aux_attribute): New function. 12380 * doc/extend.texi (ARC Variable attributes): Add subsection. 12381 123822018-01-31 Claudiu Zissulescu <claziss@synopsys.com> 12383 12384 * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto. 12385 * config/arc/arc.c (arc_handle_uncached_attribute): New function. 12386 (arc_attribute_table): Add 'uncached' attribute. 12387 (arc_print_operand): Print '.di' flag for uncached memory 12388 accesses. 12389 (arc_in_small_data_p): Do not consider for small data the uncached 12390 types. 12391 (arc_is_uncached_mem_p): New function. 12392 * config/arc/predicates.md (compact_store_memory_operand): Check 12393 for uncached memory accesses. 12394 (nonvol_nonimm_operand): Likewise. 12395 * gcc/doc/extend.texi (ARC Type Attribute): New subsection. 12396 123972018-01-31 Jakub Jelinek <jakub@redhat.com> 12398 12399 PR c/84100 12400 * common.opt (falign-functions=, falign-jumps=, falign-labels=, 12401 falign-loops=): Add Optimization flag. 12402 124032018-01-30 Jeff Law <law@redhat.com> 12404 12405 PR target/84064 12406 * i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument 12407 INT_REGISTERS_SAVED. Check it prior to calling 12408 get_scratch_register_on_entry. 12409 (ix86_adjust_stack_and_probe): Similarly. 12410 (ix86_emit_probe_stack_range): Similarly. 12411 (ix86_expand_prologue): Corresponding changes. 12412 124132018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 12414 12415 PR target/40411 12416 * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, 12417 -std=iso9899:199409 instead of -pedantic to select values-Xc.o. 12418 124192018-01-30 Vladimir Makarov <vmakarov@redhat.com> 12420 12421 PR target/84112 12422 * lra-constraints.c (curr_insn_transform): Process AND in the 12423 address. 12424 124252018-01-30 Jakub Jelinek <jakub@redhat.com> 12426 12427 PR rtl-optimization/83986 12428 * sched-deps.c (sched_analyze_insn): For frame related insns, add anti 12429 dependence against last_pending_memory_flush in addition to 12430 pending_jump_insns. 12431 124322018-01-30 Alexandre Oliva <aoliva@redhat.com> 12433 12434 PR tree-optimization/81611 12435 * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening 12436 copies. 12437 124382018-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 12439 12440 PR target/83758 12441 * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return 12442 a reg rtx. 12443 124442018-01-30 Richard Biener <rguenther@suse.de> 12445 Jakub Jelinek <jakub@redhat.com> 12446 12447 PR tree-optimization/84111 12448 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip 12449 inner loops added during recursion, as they don't have up-to-date 12450 SSA form. 12451 124522018-01-30 Jan Hubicka <hubicka@ucw.cz> 12453 12454 PR ipa/81360 12455 * ipa-inline.c (can_inline_edge_p): Break out late tests to... 12456 (can_inline_edge_by_limits_p): ... here. 12457 (can_early_inline_edge_p, check_callers, 12458 update_caller_keys, update_callee_keys, recursive_inlining, 12459 add_new_edges_to_heap, speculation_useful_p, 12460 inline_small_functions, 12461 inline_small_functions, flatten_function, 12462 inline_to_all_callers_1): Update. 12463 124642018-01-30 Jan Hubicka <hubicka@ucw.cz> 12465 12466 * profile-count.c (profile_count::combine_with_ipa_count): Handle 12467 zeros correctly. 12468 124692018-01-30 Richard Biener <rguenther@suse.de> 12470 12471 PR tree-optimization/83008 12472 * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost 12473 invariant and constant vector uses in stmts when they need 12474 more than one stmt. 12475 124762018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 12477 12478 PR bootstrap/84017 12479 * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86. 12480 * configure: Regenerate. 12481 124822018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 12483 12484 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New 12485 pattern. 12486 (*vec_extract<mode><Vel>_v128): Require a nonzero lane number. 12487 Use gen_rtx_REG rather than gen_lowpart. 12488 124892018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 12490 12491 * lra-constraints.c (match_reload): Use subreg_lowpart_offset 12492 rather than 0 when creating partial subregs. 12493 124942018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 12495 12496 * vec-perm-indices.c (vec_perm_indices::series_p): Give examples 12497 of usage. 12498 124992018-01-29 Michael Meissner <meissner@linux.vnet.ibm.com> 12500 12501 PR target/81550 12502 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode 12503 and SFmode can go in Altivec registers (-mcpu=power7 for DFmode, 12504 -mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY 12505 flags. This restores the settings used before the 2017-07-24. 12506 Turning off pre increment/decrement/modify allows IVOPTS to 12507 optimize DF/SF loops where the index is an int. 12508 125092018-01-29 Richard Biener <rguenther@suse.de> 12510 Kelvin Nilsen <kelvin@gcc.gnu.org> 12511 12512 PR bootstrap/80867 12513 * tree-vect-stmts.c (vectorizable_call): Don't call 12514 targetm.vectorize_builtin_md_vectorized_function if callee is 12515 NULL. 12516 125172018-01-22 Carl Love <cel@us.ibm.com> 12518 12519 * doc/extend.tex: Fix typo in second arg in 12520 __builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}. 12521 125222018-01-29 Richard Biener <rguenther@suse.de> 12523 12524 PR tree-optimization/84086 12525 * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h. 12526 (flush_ssaname_freelist): When SSA names were released reset 12527 the SCEV hash table. 12528 125292018-01-29 Richard Biener <rguenther@suse.de> 12530 12531 PR tree-optimization/84057 12532 * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already 12533 removed paths when removing edges. 12534 125352018-01-27 H.J. Lu <hongjiu.lu@intel.com> 12536 12537 * doc/invoke.texi: Replace -mfunction-return==@var{choice} with 12538 -mfunction-return=@var{choice}. 12539 125402018-01-27 Bernd Edlinger <bernd.edlinger@hotmail.de> 12541 12542 PR diagnostic/84034 12543 * diagnostic-show-locus.c (get_line_width_without_trailing_whitespace): 12544 Handle CR like TAB. 12545 (layout::print_source_line): Likewise. 12546 (test_get_line_width_without_trailing_whitespace): Add test cases. 12547 125482018-01-27 Jakub Jelinek <jakub@redhat.com> 12549 12550 PR middle-end/84040 12551 * sched-deps.c (sched_macro_fuse_insns): Return immediately for 12552 debug insns. 12553 125542018-01-26 Jim Wilson <jimw@sifive.com> 12555 12556 * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New. 12557 12558 * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs 12559 specified. 12560 125612018-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 12562 12563 * config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS 12564 and CMP + SUB-immediate -> SUBS. 12565 125662018-01-26 Martin Sebor <msebor@redhat.com> 12567 12568 PR tree-optimization/83896 12569 * tree-ssa-strlen.c (get_string_len): Rename... 12570 (get_string_cst_length): ...to this. Return HOST_WIDE_INT. 12571 Avoid assuming length is constant. 12572 (handle_char_store): Use HOST_WIDE_INT for string length. 12573 125742018-01-26 Uros Bizjak <ubizjak@gmail.com> 12575 12576 PR target/81763 12577 * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber 12578 to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives. 12579 125802018-01-26 Richard Biener <rguenther@suse.de> 12581 12582 PR rtl-optimization/84003 12583 * dse.c (record_store): Only record redundant stores when 12584 the earlier store aliases at least all accesses the later one does. 12585 125862018-01-26 Jakub Jelinek <jakub@redhat.com> 12587 12588 PR rtl-optimization/83985 12589 * dce.c (deletable_insn_p): Return false for separate shrink wrapping 12590 REG_CFA_RESTORE insns. 12591 (delete_unmarked_insns): Don't ignore separate shrink wrapping 12592 REG_CFA_RESTORE insns here. 12593 12594 PR c/83989 12595 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't 12596 use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR. 12597 125982018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 12599 12600 * config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3. 12601 * config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... . 12602 (arc_init): Likewise. 12603 (arc_override_options): Likewise. 12604 (arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune 12605 value. 12606 (hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn 12607 support. 12608 * config/arc/arc.h (TARGET_DBNZ): Define. 12609 * config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to 12610 properly set the tune attribute. 12611 (dbnz): Use TARGET_DBNZ guard. 12612 * config/arc/arc.opt (mtune): Add core3 option. 12613 126142018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 12615 12616 * config/arc/arc.c (arc_delegitimize_address_0): Refactored to 12617 recognize new pic like addresses. 12618 (arc_delegitimize_address): Clean up. 12619 126202018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 12621 12622 * config/arc/arc-arches.def: Option mrf16 valid for all 12623 architectures. 12624 * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. 12625 * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. 12626 * config/arc/arc-options.def (FL_RF16): Add mrf16 option. 12627 * config/arc/arc-tables.opt: Regenerate. 12628 * config/arc/arc.c (arc_conditional_register_usage): Handle 12629 reduced register file case. 12630 (arc_file_start): Set must have build attributes. 12631 * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using 12632 mrf16 option value. 12633 * config/arc/arc.opt (mrf16): Add new option. 12634 * config/arc/elf.h (ATTRIBUTE_PCS): Define. 12635 * config/arc/genmultilib.awk: Handle new mrf16 option. 12636 * config/arc/linux.h (ATTRIBUTE_PCS): Define. 12637 * config/arc/t-multilib: Regenerate. 12638 * doc/invoke.texi (ARC Options): Document mrf16 option. 12639 126402018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 12641 12642 * config/arc/arc-protos.h: Add arc_is_secure_call_p proto. 12643 * config/arc/arc.c (arc_handle_secure_attribute): New function. 12644 (arc_attribute_table): Add 'secure_call' attribute. 12645 (arc_print_operand): Print secure call operand. 12646 (arc_function_ok_for_sibcall): Don't optimize tail calls when 12647 secure. 12648 (arc_is_secure_call_p): New function. * config/arc/arc.md 12649 (call_i): Add support for sjli instruction. 12650 (call_value_i): Likewise. 12651 * config/arc/constraints.md (Csc): New constraint. 12652 126532018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 12654 John Eric Martin <John.Martin@emmicro-us.com> 12655 12656 * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. 12657 * config/arc/arc.c (_arc_jli_section): New struct. 12658 (arc_jli_section): New type. 12659 (rc_jli_sections): New static variable. 12660 (arc_handle_jli_attribute): New function. 12661 (arc_attribute_table): Add jli_always and jli_fixed attribute. 12662 (arc_file_end): New function. 12663 (TARGET_ASM_FILE_END): Define. 12664 (arc_print_operand): Reuse 'S' letter for JLI output instruction. 12665 (arc_add_jli_section): New function. 12666 (jli_call_scan): Likewise. 12667 (arc_reorg): Call jli_call_scan. 12668 (arc_output_addsi): Remove 'S' from printing asm operand. 12669 (arc_is_jli_call_p): New function. 12670 * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm 12671 operand. 12672 (movhi_insn): Likewise. 12673 (movsi_insn): Likewise. 12674 (movsi_set_cc_insn): Likewise. 12675 (loadqi_update): Likewise. 12676 (load_zeroextendqisi_update): Likewise. 12677 (load_signextendqisi_update): Likewise. 12678 (loadhi_update): Likewise. 12679 (load_zeroextendhisi_update): Likewise. 12680 (load_signextendhisi_update): Likewise. 12681 (loadsi_update): Likewise. 12682 (loadsf_update): Likewise. 12683 (movsicc_insn): Likewise. 12684 (bset_insn): Likewise. 12685 (bxor_insn): Likewise. 12686 (bclr_insn): Likewise. 12687 (bmsk_insn): Likewise. 12688 (bicsi3_insn): Likewise. 12689 (cmpsi_cc_c_insn): Likewise. 12690 (movsi_ne): Likewise. 12691 (movsi_cond_exec): Likewise. 12692 (clrsbsi2): Likewise. 12693 (norm_f): Likewise. 12694 (normw): Likewise. 12695 (swap): Likewise. 12696 (divaw): Likewise. 12697 (flag): Likewise. 12698 (sr): Likewise. 12699 (kflag): Likewise. 12700 (ffs): Likewise. 12701 (ffs_f): Likewise. 12702 (fls): Likewise. 12703 (call_i): Remove 'S' asm letter, add jli instruction. 12704 (call_value_i): Likewise. 12705 * config/arc/arc.op (mjli-always): New option. 12706 * config/arc/constraints.md (Cji): New constraint. 12707 * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm 12708 operand. 12709 (subsf3_fpx): Likewise. 12710 (mulsf3_fpx): Likewise. 12711 * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing 12712 asm operand. 12713 * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' 12714 function attrbutes. 12715 * doc/invoke.texi (ARC): Document mjli-always option. 12716 127172018-01-26 Sebastian Perta <sebastian.perta@renesas.com> 12718 12719 * config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const 12720 avoid addition with 0 and use incw and decw where possible. 12721 127222018-01-26 Richard Biener <rguenther@suse.de> 12723 12724 PR tree-optimization/81082 12725 * fold-const.c (fold_plusminus_mult_expr): Do not perform the 12726 association if it requires casting to unsigned. 12727 * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived 12728 from fold_plusminus_mult_expr to catch important cases late when 12729 range info is available. 12730 127312018-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 12732 12733 * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. 12734 * configure.ac (hidden_linkonce): New test. 12735 * configure: Regenerate. 12736 * config.in: Regenerate. 12737 127382018-01-26 Julia Koval <julia.koval@intel.com> 12739 12740 * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, 12741 _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, 12742 _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, 12743 _mm_mask_bitshuffle_epi64_mask): Fix type. 12744 * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, 12745 USI_FTYPE_V4DI_V4DI_USI): Remove. 12746 * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, 12747 __builtin_ia32_vpshufbitqmb256_mask, 12748 __builtin_ia32_vpshufbitqmb128_mask): Fix types. 12749 * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. 12750 * config/i386/sse.md (VI1_AVX512VLBW): Change types. 12751 127522018-01-26 Alan Modra <amodra@gmail.com> 12753 12754 PR target/84033 12755 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude 12756 UNSPEC_VBPERMQ. Sort other unspecs. 12757 127582018-01-25 David Edelsohn <dje.gcc@gmail.com> 12759 12760 * doc/invoke.texi (PowerPC Options): Document 'native' cpu type. 12761 127622018-01-25 Jan Hubicka <hubicka@ucw.cz> 12763 12764 PR middle-end/83055 12765 * predict.c (drop_profile): Do not push/pop cfun; update also 12766 node->count. 12767 (handle_missing_profiles): Fix logic looking for zero profiles. 12768 127692018-01-25 Jakub Jelinek <jakub@redhat.com> 12770 12771 PR middle-end/83977 12772 * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature 12773 on functions with #pragma omp declare simd or functions with simd 12774 attribute. 12775 * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. 12776 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 12777 Remove trailing \n from warning_at calls. 12778 127792018-01-25 Tom de Vries <tom@codesourcery.com> 12780 12781 PR target/84028 12782 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call 12783 for neutered workers. 12784 127852018-01-24 Joseph Myers <joseph@codesourcery.com> 12786 12787 PR target/68467 12788 * config/m68k/m68k.c (m68k_promote_function_mode): New function. 12789 (TARGET_PROMOTE_FUNCTION_MODE): New macro. 12790 127912018-01-24 Jeff Law <law@redhat.com> 12792 12793 PR target/83994 12794 * i386.c (get_probe_interval): Move to earlier point. 12795 (ix86_compute_frame_layout): If -fstack-clash-protection and 12796 the frame is larger than the probe interval, then use pushes 12797 to save registers rather than reg->mem moves. 12798 (ix86_expand_prologue): Remove conditional for int_registers_saved 12799 assertion. 12800 128012018-01-24 Vladimir Makarov <vmakarov@redhat.com> 12802 12803 PR target/84014 12804 * ira-build.c (setup_min_max_allocno_live_range_point): Set up 12805 min/max for never referenced object. 12806 128072018-01-24 Jakub Jelinek <jakub@redhat.com> 12808 12809 PR middle-end/83977 12810 * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN 12811 here. 12812 * omp-low.c (create_omp_child_function): Remove "omp declare simd" 12813 attributes from DECL_ATTRIBUTES (decl) without affecting 12814 DECL_ATTRIBUTES (current_function_decl). 12815 * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL 12816 functions with non-NULL DECL_ABSTRACT_ORIGIN. 12817 128182018-01-24 Richard Sandiford <richard.sandiford@linaro.org> 12819 12820 PR tree-optimization/83979 12821 * fold-const.c (fold_comparison): Use constant_boolean_node 12822 instead of boolean_{true,false}_node. 12823 128242018-01-24 Jan Hubicka <hubicka@ucw.cz> 12825 12826 * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls 12827 with zero counts. 12828 128292018-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 12830 12831 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 12832 Simplify the clause that sets the length attribute. 12833 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 12834 (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the 12835 clause that sets the length attribute. 12836 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 12837 128382018-01-24 Tom de Vries <tom@codesourcery.com> 12839 12840 PR target/83589 12841 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1. 12842 (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c. 12843 Add strict parameter. 12844 (prevent_branch_around_nothing): Insert dummy insn between branch to 12845 label and label with no ptx insn inbetween. 12846 * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn. 12847 128482018-01-24 Tom de Vries <tom@codesourcery.com> 12849 12850 PR target/81352 12851 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call 12852 for neutered threads in warp. 12853 * config/nvptx/nvptx.md (define_insn "exit"): New insn. 12854 128552018-01-24 Richard Biener <rguenther@suse.de> 12856 12857 PR tree-optimization/83176 12858 * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. } 12859 operands. 12860 128612018-01-24 Richard Biener <rguenther@suse.de> 12862 12863 PR tree-optimization/82819 12864 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid 12865 code generating pluses that are no-ops in the target precision. 12866 128672018-01-24 Richard Biener <rguenther@suse.de> 12868 12869 PR middle-end/84000 12870 * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind. 12871 128722018-01-23 Jan Hubicka <hubicka@ucw.cz> 12873 12874 * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count 12875 to merge probabilities. 12876 * predict.c (probably_never_executed): Also mark as cold functions 12877 with global 0 profile and guessed local profile. 12878 * profile-count.c (profile_probability::combine_with_count): New 12879 member function. 12880 * profile-count.h (profile_probability::operator*, 12881 profile_probability::operator*=, profile_probability::operator/, 12882 profile_probability::operator/=): Reduce precision to adjusted 12883 and set value to guessed on contradictory divisions. 12884 (profile_probability::combine_with_freq): Remove. 12885 (profile_probability::combine_wiht_count): Declare. 12886 (profile_count::force_nonzero):: Set to adjusted. 12887 (profile_count::probability_in):: Set quality to adjusted. 12888 * tree-ssa-tail-merge.c (replace_block_by): Use 12889 combine_with_count. 12890 128912018-01-23 Andrew Waterman <andrew@sifive.com> 12892 Jim Wilson <jimw@sifive.com> 12893 12894 * config/riscv/riscv.c (riscv_stack_boundary): New. 12895 (riscv_option_override): Set riscv_stack_boundary. Handle 12896 riscv_preferred_stack_boundary_arg. 12897 * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New. 12898 (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY. 12899 (STACK_BOUNDARY): Set to riscv_stack_boundary. 12900 (RISCV_STACK_ALIGN): Use STACK_BOUNDARY. 12901 * config/riscv/riscv.opt (mpreferred-stack-boundary): New. 12902 * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary. 12903 129042018-01-23 H.J. Lu <hongjiu.lu@intel.com> 12905 12906 PR target/83905 12907 * config/i386/i386.c (ix86_expand_prologue): Use cost reference 12908 of struct ix86_frame. 12909 (ix86_expand_epilogue): Likewise. Add a local variable for 12910 the reg_save_offset field in struct ix86_frame. 12911 129122018-01-23 Bin Cheng <bin.cheng@arm.com> 12913 12914 PR tree-optimization/82604 12915 * tree-loop-distribution.c (enum partition_kind): New enum item 12916 PKIND_PARTIAL_MEMSET. 12917 (partition_builtin_p): Support above new enum item. 12918 (generate_code_for_partition): Ditto. 12919 (compute_access_range): Differentiate cases that equality can be 12920 proven at all loops, the innermost loops or no loops. 12921 (classify_builtin_st, classify_builtin_ldst): Adjust call to above 12922 function. Set PKIND_PARTIAL_MEMSET for partition appropriately. 12923 (finalize_partitions, distribute_loop): Don't fuse partition of 12924 PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest. 12925 (prepare_perfect_loop_nest): Distribute 3-level loop nest only if 12926 parloop is enabled. 12927 129282018-01-23 Martin Liska <mliska@suse.cz> 12929 12930 * predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in 12931 order to ignore the predictor. 12932 (PRED_POLYMORPHIC_CALL): Likewise. 12933 (PRED_RECURSIVE_CALL): Likewise. 12934 129352018-01-23 Martin Liska <mliska@suse.cz> 12936 12937 * tree-profile.c (tree_profiling): Print function header to 12938 aware reader which function we are working on. 12939 * value-prof.c (gimple_find_values_to_profile): Do not print 12940 not interesting value histograms. 12941 129422018-01-23 Martin Liska <mliska@suse.cz> 12943 12944 * profile-count.h (enum profile_quality): Add 12945 profile_uninitialized as the first value. Do not number values 12946 as they are zero based. 12947 (profile_count::verify): Update sanity check. 12948 (profile_probability::verify): Likewise. 12949 129502018-01-23 Nathan Sidwell <nathan@acm.org> 12951 12952 * doc/invoke.texi (ffor-scope): Deprecate. 12953 129542018-01-23 David Malcolm <dmalcolm@redhat.com> 12955 12956 PR tree-optimization/83510 12957 * domwalk.c (set_all_edges_as_executable): New function. 12958 (dom_walker::dom_walker): Convert bool param 12959 "skip_unreachable_blocks" to enum reachability. Move setup of 12960 edge flags to set_all_edges_as_executable and only do it when 12961 reachability is REACHABLE_BLOCKS. 12962 * domwalk.h (enum dom_walker::reachability): New enum. 12963 (dom_walker::dom_walker): Convert bool param 12964 "skip_unreachable_blocks" to enum reachability. 12965 (set_all_edges_as_executable): New decl. 12966 * graphite-scop-detection.c (gather_bbs::gather_bbs): Convert 12967 from false for "skip_unreachable_blocks" to ALL_BLOCKS for 12968 "reachability". 12969 * tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise, 12970 but converting true to REACHABLE_BLOCKS. 12971 * tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise. 12972 * tree-vrp.c 12973 (check_array_bounds_dom_walker::check_array_bounds_dom_walker): 12974 Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS. 12975 (vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to 12976 REACHABLE_BLOCKS. 12977 (vrp_prop::vrp_finalize): Call set_all_edges_as_executable 12978 if check_all_array_refs will be called. 12979 129802018-01-23 David Malcolm <dmalcolm@redhat.com> 12981 12982 * tree.c (selftest::test_location_wrappers): Add more test 12983 coverage. 12984 129852018-01-23 David Malcolm <dmalcolm@redhat.com> 12986 12987 * sbitmap.c (selftest::test_set_range): Fix memory leaks. 12988 (selftest::test_bit_in_range): Likewise. 12989 129902018-01-23 Richard Sandiford <richard.sandiford@linaro.org> 12991 12992 PR testsuite/83888 12993 * doc/sourcebuild.texi (vect_float): Say that the selector 12994 only describes the situation when -funsafe-math-optimizations is on. 12995 (vect_float_strict): Document. 12996 129972018-01-23 Richard Sandiford <richard.sandiford@linaro.org> 12998 12999 PR tree-optimization/83965 13000 * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. 13001 (vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it 13002 instead of checking only for a reduction. 13003 (vect_recog_widen_sum_pattern): Likewise. 13004 130052018-01-23 Jan Hubicka <hubicka@ucw.cz> 13006 13007 * predict.c (probably_never_executed): Only use precise profile info. 13008 (compute_function_frequency): Skip after inlining hack since we now 13009 have quality checking. 13010 130112018-01-23 Jan Hubicka <hubicka@ucw.cz> 13012 13013 * profile-count.h (profile_probability::very_unlikely, 13014 profile_probability::unlikely, profile_probability::even): Set 13015 precision to guessed. 13016 130172018-01-23 Richard Biener <rguenther@suse.de> 13018 13019 PR tree-optimization/83963 13020 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): 13021 Properly terminate dominator walk when crossing the exit edge not 13022 when visiting its source block. 13023 130242018-01-23 Jakub Jelinek <jakub@redhat.com> 13025 13026 PR c++/83918 13027 * tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than 13028 VIEW_CONVERT_EXPR to wrap CONST_DECLs. 13029 130302018-01-22 Jakub Jelinek <jakub@redhat.com> 13031 13032 PR tree-optimization/83957 13033 * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove 13034 semicolon after for body surrounded by braces. 13035 13036 PR tree-optimization/83081 13037 * profile-count.h (profile_probability::split): New method. 13038 * dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>: 13039 Use profile_probability::split. 13040 (do_compare_rtx_and_jump): Fix adjustment of probabilities 13041 when splitting a single conditional jump into 2. 13042 130432018-01-22 David Malcolm <dmalcolm@redhat.com> 13044 13045 PR tree-optimization/69452 13046 * tree-ssa-loop-im.c (class move_computations_dom_walker): Remove 13047 decl. 13048 130492018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13050 13051 * config/rl78/rl78-expand.md (bswaphi2): New define_expand. 13052 * config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn. 13053 * config/rl78/rl78-real.md (*bswaphi2_real): New define_insn. 13054 130552018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13056 13057 * config/rl78/rl78-protos.h (rl78_split_movdi): New function declaration. 13058 * config/rl78/rl78.md (movdi): New define_expand. 13059 * config/rl78/rl78.c (rl78_split_movdi): New function. 13060 130612018-01-22 Michael Meissner <meissner@linux.vnet.ibm.com> 13062 13063 PR target/83862 13064 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete, 13065 no longer used. 13066 * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise. 13067 * config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE 13068 128-bit to produce an UNSPEC move to get the double word with the 13069 signbit and then a shift directly to do signbit. 13070 (signbit<mode>2_dm): Replace old IEEE 128-bit signbit 13071 implementation with a new version that just does either a direct 13072 move or a regular move. Move memory interface to separate insns. 13073 Move insns so they are next to the expander. 13074 (signbit<mode>2_dm_mem_be): New combiner insns to combine load 13075 with signbit move. Split big and little endian case. 13076 (signbit<mode>2_dm_mem_le): Likewise. 13077 (signbit<mode>2_dm_<su>ext): Delete, no longer used. 13078 (signbit<mode>2_dm2): Likewise. 13079 130802018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13081 13082 * config/rl78/rl78.md (anddi3): New define_expand. 13083 130842018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13085 13086 * config/rl78/rl78.md (umindi3): New define_expand. 13087 130882018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13089 13090 * config/rl78/rl78.md (smindi3): New define_expand. 13091 130922018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13093 13094 * config/rl78/rl78.md (smaxdi3): New define_expand. 13095 130962018-01-22 Carl Love <cel@us.ibm.com> 13097 13098 * config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI, 13099 LVX_V1TI): Add macro expansion. 13100 * config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument 13101 definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST, 13102 VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins. 13103 * config/rs6000/rs6000-p8swap.c (insn_is_swappable_p); 13104 Change check to determine if the instruction is a byte reversing 13105 entry. Fix typo in comment. 13106 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry 13107 for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI. 13108 Add def_builtin calls for new builtins. 13109 * config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti): 13110 Add define_insn expansion. 13111 131122018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13113 13114 * config/rl78/rl78.md (umaxdi3): New define_expand. 13115 131162018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 13117 13118 * config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check 13119 for non-QImode registers. 13120 131212018-01-22 Richard Biener <rguenther@suse.de> 13122 13123 PR tree-optimization/83963 13124 * graphite-scop-detection.c (scop_detection::get_sese): Delay 13125 including the loop exit block. 13126 (scop_detection::merge_sese): Likewise. 13127 (scop_detection::add_scop): Do it here instead. 13128 131292018-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13130 13131 * doc/sourcebuild.texi (arm_softfloat): Document. 13132 131332018-01-21 John David Anglin <danglin@gcc.gnu.org> 13134 13135 PR gcc/77734 13136 * config/pa/pa.c (pa_function_ok_for_sibcall): Use 13137 targetm.binds_local_p instead of TREE_PUBLIC to check local binding. 13138 Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check. 13139 131402018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13141 David Edelsohn <dje.gcc@gmail.com> 13142 13143 PR target/83946 13144 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 13145 Change "crset eq" to "crset 2". 13146 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 13147 (*call_indirect_aix<mode>_nospec): Likewise. 13148 (*call_value_indirect_aix<mode>_nospec): Likewise. 13149 (*call_indirect_elfv2<mode>_nospec): Likewise. 13150 (*call_value_indirect_elfv2<mode>_nospec): Likewise. 13151 (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2"; 13152 change assembly output from . to $. 13153 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 13154 (indirect_jump<mode>_nospec): Change assembly output from . to $. 13155 (*tablejump<mode>_internal1_nospec): Likewise. 13156 131572018-01-21 Oleg Endo <olegendo@gcc.gnu.org> 13158 13159 PR target/80870 13160 * config/sh/sh_optimize_sett_clrt.cc: 13161 Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes. 13162 131632018-01-20 Richard Sandiford <richard.sandiford@linaro.org> 13164 13165 PR tree-optimization/83940 13166 * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set 13167 offset_dt to vect_constant_def rather than vect_unknown_def_type. 13168 (vect_check_load_store_mask): Add a mask_dt_out parameter and 13169 use it to pass back the definition type. 13170 (vect_check_store_rhs): Likewise rhs_dt_out. 13171 (vect_build_gather_load_calls): Add a mask_dt argument and use 13172 it instead of a call to vect_is_simple_use. 13173 (vectorizable_store): Update calls to vect_check_load_store_mask 13174 and vect_check_store_rhs. Use the dt returned by the latter instead 13175 of scatter_src_dt. Use the cached mask_dt and gs_info.offset_dt 13176 instead of calls to vect_is_simple_use. Pass the scalar rather 13177 than the vector operand to vect_is_simple_use when handling 13178 second and subsequent copies of an rhs value. 13179 (vectorizable_load): Update calls to vect_check_load_store_mask 13180 and vect_build_gather_load_calls. Use the cached mask_dt and 13181 gs_info.offset_dt instead of calls to vect_is_simple_use. 13182 131832018-01-20 Jakub Jelinek <jakub@redhat.com> 13184 13185 PR middle-end/83945 13186 * tree-emutls.c: Include gimplify.h. 13187 (lower_emutls_2): New function. 13188 (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree 13189 with lower_emutls_2 callback finds some TLS decl in it, unshare_expr 13190 it before further processing. 13191 13192 PR target/83930 13193 * simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use 13194 UINTVAL (trueop1) instead of INTVAL (op1). 13195 131962018-01-19 Jakub Jelinek <jakub@redhat.com> 13197 13198 PR debug/81570 13199 PR debug/83728 13200 * dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to 13201 INCOMING_FRAME_SP_OFFSET if not defined. 13202 (scan_trace): Add ENTRY argument. If true and 13203 DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET, 13204 emit a note to adjust the CFA offset. 13205 (create_cfi_notes): Adjust scan_trace callers. 13206 (create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than 13207 INCOMING_FRAME_SP_OFFSET in the CIE. 13208 * config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define. 13209 * config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): 13210 Likewise. 13211 * doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document. 13212 * doc/tm.texi: Regenerated. 13213 132142018-01-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 13215 13216 PR rtl-optimization/83147 13217 * lra-constraints.c (remove_inheritance_pseudos): Use 13218 lra_substitute_pseudo_within_insn. 13219 132202018-01-19 Tom de Vries <tom@codesourcery.com> 13221 Cesar Philippidis <cesar@codesourcery.com> 13222 13223 PR target/83920 13224 * config/nvptx/nvptx.c (nvptx_single): Fix jit workaround. 13225 132262018-01-19 Cesar Philippidis <cesar@codesourcery.com> 13227 13228 PR target/83790 13229 * config/nvptx/nvptx.c (output_init_frag): Don't use generic address 13230 spaces for function labels. 13231 132322018-01-19 Martin Liska <mliska@suse.cz> 13233 13234 * predict.def (PRED_LOOP_EXIT): Change from 85 to 89. 13235 (PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78. 13236 (PRED_LOOP_EXTRA_EXIT): Change from 83 to 67. 13237 (PRED_OPCODE_POSITIVE): Change from 64 to 59. 13238 (PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59. 13239 (PRED_CONST_RETURN): Change from 69 to 65. 13240 (PRED_NULL_RETURN): Change from 91 to 71. 13241 (PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64. 13242 (PRED_LOOP_GUARD): Change from 66 to 73. 13243 132442018-01-19 Martin Liska <mliska@suse.cz> 13245 13246 * predict.c (predict_insn_def): Add new assert. 13247 (struct branch_predictor): Change type to signed integer. 13248 (test_prediction_value_range): Amend test to cover 13249 PROB_UNINITIALIZED. 13250 * predict.def (PRED_LOOP_ITERATIONS): Use the new constant. 13251 (PRED_LOOP_ITERATIONS_GUESSED): Likewise. 13252 (PRED_LOOP_ITERATIONS_MAX): Likewise. 13253 (PRED_LOOP_IV_COMPARE): Likewise. 13254 * predict.h (PROB_UNINITIALIZED): Define new constant. 13255 132562018-01-19 Martin Liska <mliska@suse.cz> 13257 13258 * predict.c (dump_prediction): Add new format for 13259 analyze_brprob.py script which is enabled with -details 13260 suboption. 13261 * profile-count.h (precise_p): New function. 13262 132632018-01-19 Richard Sandiford <richard.sandiford@linaro.org> 13264 13265 PR tree-optimization/83922 13266 * tree-vect-loop.c (vect_verify_full_masking): Return false if 13267 there are no statements that need masking. 13268 (vect_active_double_reduction_p): New function. 13269 (vect_analyze_loop_operations): Use it when handling phis that 13270 are not in the loop header. 13271 132722018-01-19 Richard Sandiford <richard.sandiford@linaro.org> 13273 13274 PR tree-optimization/83914 13275 * tree-vect-loop.c (vectorizable_induction): Don't convert 13276 init_expr or apply the peeling adjustment for inductions 13277 that are nested within the vectorized loop. 13278 132792018-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13280 13281 * config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic 13282 instead of NEG. 13283 132842018-01-18 Jakub Jelinek <jakub@redhat.com> 13285 13286 PR sanitizer/81715 13287 PR testsuite/83882 13288 * function.h (gimplify_parameters): Add gimple_seq * argument. 13289 * function.c: Include gimple.h and options.h. 13290 (gimplify_parameters): Add cleanup argument, add CLOBBER stmts 13291 for the added local temporaries if needed. 13292 * gimplify.c (gimplify_body): Adjust gimplify_parameters caller, 13293 if there are any parameter cleanups, wrap whole body into a 13294 try/finally with the cleanups. 13295 132962018-01-18 Wilco Dijkstra <wdijkstr@arm.com> 13297 13298 PR target/82964 13299 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): 13300 Use GET_MODE_CLASS for scalar floating point. 13301 133022018-01-18 Jan Hubicka <hubicka@ucw.cz> 13303 13304 PR ipa/82256 13305 patch by PaX Team 13306 * cgraphclones.c (cgraph_node::create_version_clone_with_body): 13307 Fix call of call_cgraph_insertion_hooks. 13308 133092018-01-18 Martin Sebor <msebor@redhat.com> 13310 13311 * doc/invoke.texi (-Wclass-memaccess): Tweak text. 13312 133132018-01-18 Jan Hubicka <hubicka@ucw.cz> 13314 13315 PR ipa/83619 13316 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge 13317 frequencies. 13318 133192018-01-18 Boris Kolpackov <boris@codesynthesis.com> 13320 13321 PR other/70268 13322 * common.opt: (-ffile-prefix-map): New option. 13323 * opts.c (common_handle_option): Defer it. 13324 * opts-global.c (handle_common_deferred_options): Handle it. 13325 * debug.h (remap_debug_filename, add_debug_prefix_map): Move to... 13326 * file-prefix-map.h: New file. 13327 (remap_debug_filename, add_debug_prefix_map): ...here. 13328 (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New. 13329 * final.c (debug_prefix_map, add_debug_prefix_map 13330 remap_debug_filename): Move to... 13331 * file-prefix-map.c: New file. 13332 (file_prefix_map, add_prefix_map, remap_filename) ...here and rename, 13333 generalize, get rid of alloca(), use strrchr() instead of strchr(). 13334 (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map): 13335 Implement in terms of add_prefix_map(). 13336 (remap_macro_filename, remap_debug_filename): Implement in term of 13337 remap_filename(). 13338 * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files. 13339 * builtins.c (fold_builtin_FILE): Call remap_macro_filename(). 13340 * dbxout.c: Include file-prefix-map.h. 13341 * varasm.c: Likewise. 13342 * vmsdbgout.c: Likewise. 13343 * xcoffout.c: Likewise. 13344 * dwarf2out.c: Likewise plus omit new options from DW_AT_producer. 13345 * doc/cppopts.texi (-fmacro-prefix-map): Document. 13346 * doc/invoke.texi (-ffile-prefix-map): Document. 13347 (-fdebug-prefix-map): Update description. 13348 133492018-01-18 Martin Liska <mliska@suse.cz> 13350 13351 * config/i386/i386.c (indirect_thunk_name): Document that also 13352 lfence is emitted. 13353 (output_indirect_thunk): Document why both instructions 13354 (pause and lfence) are generated. 13355 133562018-01-18 Richard Biener <rguenther@suse.de> 13357 13358 PR tree-optimization/83887 13359 * graphite-scop-detection.c 13360 (scop_detection::get_nearest_dom_with_single_entry): Remove. 13361 (scop_detection::get_nearest_pdom_with_single_exit): Likewise. 13362 (scop_detection::merge_sese): Re-implement with a flood-fill 13363 algorithm that properly finds a SESE region if it exists. 13364 133652018-01-18 Jakub Jelinek <jakub@redhat.com> 13366 13367 PR c/61240 13368 * match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For 13369 pointer_diff optimizations use view_convert instead of convert. 13370 133712018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13372 13373 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 13374 Generate different code for -mno-speculate-indirect-jumps. 13375 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 13376 (*call_indirect_aix<mode>): Disable for 13377 -mno-speculate-indirect-jumps. 13378 (*call_indirect_aix<mode>_nospec): New define_insn. 13379 (*call_value_indirect_aix<mode>): Disable for 13380 -mno-speculate-indirect-jumps. 13381 (*call_value_indirect_aix<mode>_nospec): New define_insn. 13382 (*sibcall_nonlocal_sysv<mode>): Generate different code for 13383 -mno-speculate-indirect-jumps. 13384 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 13385 133862018-01-17 Michael Meissner <meissner@linux.vnet.ibm.com> 13387 13388 * config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a 13389 long double type, set the flags for noting the default long double 13390 type, even if we don't pass or return a long double type. 13391 133922018-01-17 Jan Hubicka <hubicka@ucw.cz> 13393 13394 PR ipa/83051 13395 * ipa-inline.c (flatten_function): Do not overwrite final inlining 13396 failure. 13397 133982018-01-17 Will Schmidt <will_schmidt@vnet.ibm.com> 13399 13400 * config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding 13401 support for merge[hl]. 13402 (fold_mergehl_helper): New helper function. 13403 (tree-vector-builder.h): New #include for tree_vector_builder usage. 13404 * config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn. 13405 (altivec_vmrglw_direct): Add xxmrglw insn. 13406 134072018-01-17 Andrew Waterman <andrew@sifive.com> 13408 13409 * config/riscv/riscv.c (riscv_conditional_register_usage): If 13410 UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs. 13411 134122018-01-17 David Malcolm <dmalcolm@redhat.com> 13413 13414 PR lto/83121 13415 * ipa-devirt.c (add_type_duplicate): When comparing memory layout, 13416 call the lto_location_cache before reading the 13417 DECL_SOURCE_LOCATION of the types. 13418 134192018-01-17 Wilco Dijkstra <wdijkstr@arm.com> 13420 Richard Sandiford <richard.sandiford@linaro.org> 13421 13422 * config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint. 13423 * config/aarch64/aarch64.c (aarch64_mov128_immediate): New function. 13424 (aarch64_legitimate_constant_p): Just support CONST_DOUBLE 13425 SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates. 13426 * config/aarch64/aarch64-protos.h (aarch64_mov128_immediate): 13427 Add declaration. 13428 * config/aarch64/constraints.md (aarch64_movti_operand): 13429 Limit immediates. 13430 * config/aarch64/predicates.md (Uti): Add new constraint. 13431 134322018-01-17 Carl Love <cel@us.ibm.com> 13433 13434 * config/rs6000/vsx.md (define_expand xl_len_r, 13435 define_expand stxvl, define_expand *stxvl): Add match_dup argument. 13436 (define_insn): Add, match_dup 1 argument to define_insn stxvll and 13437 lxvll. 13438 (define_expand, define_insn): Move the shift left from the 13439 define_insn to the define_expand for lxvl and stxvl instructions. 13440 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL 13441 and XL_LEN_R definitions to PURE. 13442 134432018-01-17 Uros Bizjak <ubizjak@gmail.com> 13444 13445 * config/i386/i386.c (indirect_thunk_name): Declare regno 13446 as unsigned int. Compare regno with INVALID_REGNUM. 13447 (output_indirect_thunk): Ditto. 13448 (output_indirect_thunk_function): Ditto. 13449 (ix86_code_end): Declare regno as unsigned int. Use INVALID_REGNUM 13450 in the call to output_indirect_thunk_function. 13451 134522018-01-17 Richard Sandiford <richard.sandiford@linaro.org> 13453 13454 PR middle-end/83884 13455 * expr.c (expand_expr_real_1): Use the size of GET_MODE (op0) 13456 rather than the size of inner_type to determine the stack slot size 13457 when handling VIEW_CONVERT_EXPRs on strict-alignment targets. 13458 134592018-01-16 Sebastian Peryt <sebastian.peryt@intel.com> 13460 13461 PR target/83546 13462 * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND 13463 to PTA_SILVERMONT. 13464 134652018-01-16 Michael Meissner <meissner@linux.vnet.ibm.com> 13466 13467 * config.gcc (powerpc*-linux*-*): Add support for 64-bit little 13468 endian Linux systems to optionally enable multilibs for selecting 13469 the long double type if the user configured an explicit type. 13470 * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we 13471 have no long double multilibs if not defined. 13472 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not 13473 warn if the user used -mabi={ieee,ibm}longdouble and we built 13474 multilibs for long double. 13475 * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the 13476 appropriate multilib option. 13477 (MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default 13478 multilib options. 13479 * config/rs6000/t-ldouble-linux64le-ibm: New configuration files 13480 for building long double multilibs. 13481 * config/rs6000/t-ldouble-linux64le-ieee: Likewise. 13482 134832018-01-16 John David Anglin <danglin@gcc.gnu.org> 13484 13485 * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller 13486 copies. 13487 13488 * config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to 13489 64 bits. 13490 * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to 13491 128 bits. 13492 13493 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode 13494 variables. 13495 13496 * config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE 13497 return value. 13498 134992018-01-16 Eric Botcazou <ebotcazou@adacore.com> 13500 13501 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an 13502 ADDR_EXPR, do not count the offset of a COMPONENT_REF twice. 13503 135042018-01-16 Kelvin Nilsen <kelvin@gcc.gnu.org> 13505 13506 * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate 13507 different rtl trees depending on TARGET_64BIT. 13508 (rs6000_gen_lvx): Likewise. 13509 135102018-01-16 Eric Botcazou <ebotcazou@adacore.com> 13511 13512 * config/visium/visium.md (nop): Tweak comment. 13513 (hazard_nop): Likewise. 13514 135152018-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 13516 13517 * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for 13518 -mspeculate-indirect-jumps. 13519 * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable 13520 for -mno-speculate-indirect-jumps. 13521 (*call_indirect_elfv2<mode>_nospec): New define_insn. 13522 (*call_value_indirect_elfv2<mode>): Disable for 13523 -mno-speculate-indirect-jumps. 13524 (*call_value_indirect_elfv2<mode>_nospec): New define_insn. 13525 (indirect_jump): Emit different RTL for 13526 -mno-speculate-indirect-jumps. 13527 (*indirect_jump<mode>): Disable for 13528 -mno-speculate-indirect-jumps. 13529 (*indirect_jump<mode>_nospec): New define_insn. 13530 (tablejump): Emit different RTL for 13531 -mno-speculate-indirect-jumps. 13532 (tablejumpsi): Disable for -mno-speculate-indirect-jumps. 13533 (tablejumpsi_nospec): New define_expand. 13534 (tablejumpdi): Disable for -mno-speculate-indirect-jumps. 13535 (tablejumpdi_nospec): New define_expand. 13536 (*tablejump<mode>_internal1): Disable for 13537 -mno-speculate-indirect-jumps. 13538 (*tablejump<mode>_internal1_nospec): New define_insn. 13539 * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New 13540 option. 13541 135422018-01-16 Artyom Skrobov tyomitch@gmail.com 13543 13544 * caller-save.c (insert_save): Drop unnecessary parameter. All 13545 callers updated. 13546 135472018-01-16 Jakub Jelinek <jakub@redhat.com> 13548 Richard Biener <rguenth@suse.de> 13549 13550 PR libgomp/83590 13551 * gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr) 13552 return early, inline manually is_gimple_sizepos. Make sure if we 13553 call gimplify_expr we don't end up with a gimple constant. 13554 * tree.c (variably_modified_type_p): Don't return true for 13555 is_gimple_constant (_t). Inline manually is_gimple_sizepos. 13556 * gimplify.h (is_gimple_sizepos): Remove. 13557 135582018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 13559 13560 PR tree-optimization/83857 13561 * tree-vect-loop.c (vect_analyze_loop_operations): Don't call 13562 vectorizable_live_operation for pure SLP statements. 13563 (vectorizable_live_operation): Handle PHIs. 13564 135652018-01-16 Richard Biener <rguenther@suse.de> 13566 13567 PR tree-optimization/83867 13568 * tree-vect-stmts.c (vect_transform_stmt): Precompute 13569 nested_in_vect_loop_p since the scalar stmt may get invalidated. 13570 135712018-01-16 Jakub Jelinek <jakub@redhat.com> 13572 13573 PR c/83844 13574 * stor-layout.c (handle_warn_if_not_align): Use byte_position and 13575 multiple_of_p instead of unchecked tree_to_uhwi and UHWI check. 13576 If off is not INTEGER_CST, issue a may not be aligned warning 13577 rather than isn't aligned. Use isn%'t rather than isn't. 13578 * fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through 13579 into MULT_EXPR. 13580 <case MULT_EXPR>: Improve the case when bottom and one of the 13581 MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that 13582 operand, in that case check if the other operand is multiple of 13583 bottom divided by the INTEGER_CST operand. 13584 135852018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 13586 13587 PR target/83858 13588 * config/pa/pa.h (FUNCTION_ARG_SIZE): Delete. 13589 * config/pa/pa-protos.h (pa_function_arg_size): Declare. 13590 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use 13591 pa_function_arg_size instead of FUNCTION_ARG_SIZE. 13592 * config/pa/pa.c (pa_function_arg_advance): Likewise. 13593 (pa_function_arg, pa_arg_partial_bytes): Likewise. 13594 (pa_function_arg_size): New function. 13595 135962018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 13597 13598 * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices 13599 in a separate statement. 13600 136012018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 13602 13603 PR tree-optimization/83847 13604 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't 13605 group gathers and scatters. 13606 136072018-01-16 Jakub Jelinek <jakub@redhat.com> 13608 13609 PR rtl-optimization/86620 13610 * params.def (max-sched-ready-insns): Bump minimum value to 1. 13611 13612 PR rtl-optimization/83213 13613 * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn 13614 to last if both are JUMP_INSNs. 13615 13616 PR tree-optimization/83843 13617 * gimple-ssa-store-merging.c 13618 (imm_store_chain_info::output_merged_store): Handle bit_not_p on 13619 store_immediate_info for bswap/nop orig_stores. 13620 136212018-01-15 Andrew Waterman <andrew@sifive.com> 13622 13623 * config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if 13624 !TARGET_MUL. 13625 <UDIV>: Increase cost if !TARGET_DIV. 13626 136272018-01-15 Segher Boessenkool <segher@kernel.crashing.org> 13628 13629 * config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr. 13630 (define_attr "cr_logical_3op"): New. 13631 (cceq_ior_compare): Adjust. 13632 (cceq_ior_compare_complement): Adjust. 13633 (*cceq_rev_compare): Adjust. 13634 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust. 13635 (is_cracked_insn): Adjust. 13636 (insn_must_be_first_in_group): Adjust. 13637 * config/rs6000/40x.md: Adjust. 13638 * config/rs6000/440.md: Adjust. 13639 * config/rs6000/476.md: Adjust. 13640 * config/rs6000/601.md: Adjust. 13641 * config/rs6000/603.md: Adjust. 13642 * config/rs6000/6xx.md: Adjust. 13643 * config/rs6000/7450.md: Adjust. 13644 * config/rs6000/7xx.md: Adjust. 13645 * config/rs6000/8540.md: Adjust. 13646 * config/rs6000/cell.md: Adjust. 13647 * config/rs6000/e300c2c3.md: Adjust. 13648 * config/rs6000/e500mc.md: Adjust. 13649 * config/rs6000/e500mc64.md: Adjust. 13650 * config/rs6000/e5500.md: Adjust. 13651 * config/rs6000/e6500.md: Adjust. 13652 * config/rs6000/mpc.md: Adjust. 13653 * config/rs6000/power4.md: Adjust. 13654 * config/rs6000/power5.md: Adjust. 13655 * config/rs6000/power6.md: Adjust. 13656 * config/rs6000/power7.md: Adjust. 13657 * config/rs6000/power8.md: Adjust. 13658 * config/rs6000/power9.md: Adjust. 13659 * config/rs6000/rs64.md: Adjust. 13660 * config/rs6000/titan.md: Adjust. 13661 136622018-01-15 H.J. Lu <hongjiu.lu@intel.com> 13663 13664 * config/i386/predicates.md (indirect_branch_operand): Rewrite 13665 ix86_indirect_branch_register logic. 13666 136672018-01-15 H.J. Lu <hongjiu.lu@intel.com> 13668 13669 * config/i386/constraints.md (Bs): Update 13670 ix86_indirect_branch_register check. Don't check 13671 ix86_indirect_branch_register with GOT_memory_operand. 13672 (Bw): Likewise. 13673 * config/i386/predicates.md (GOT_memory_operand): Don't check 13674 ix86_indirect_branch_register here. 13675 (GOT32_symbol_operand): Likewise. 13676 136772018-01-15 H.J. Lu <hongjiu.lu@intel.com> 13678 13679 * config/i386/predicates.md (constant_call_address_operand): 13680 Rewrite ix86_indirect_branch_register logic. 13681 (sibcall_insn_operand): Likewise. 13682 136832018-01-15 H.J. Lu <hongjiu.lu@intel.com> 13684 13685 * config/i386/constraints.md (Bs): Replace 13686 ix86_indirect_branch_thunk_register with 13687 ix86_indirect_branch_register. 13688 (Bw): Likewise. 13689 * config/i386/i386.md (indirect_jump): Likewise. 13690 (tablejump): Likewise. 13691 (*sibcall_memory): Likewise. 13692 (*sibcall_value_memory): Likewise. 13693 Peepholes of indirect call and jump via memory: Likewise. 13694 * config/i386/i386.opt: Likewise. 13695 * config/i386/predicates.md (indirect_branch_operand): Likewise. 13696 (GOT_memory_operand): Likewise. 13697 (call_insn_operand): Likewise. 13698 (sibcall_insn_operand): Likewise. 13699 (GOT32_symbol_operand): Likewise. 13700 137012018-01-15 Jakub Jelinek <jakub@redhat.com> 13702 13703 PR middle-end/83837 13704 * omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val 13705 type rather than type addr's type points to. 13706 (expand_omp_atomic_mutex): Likewise. 13707 (expand_omp_atomic): Likewise. 13708 137092018-01-15 H.J. Lu <hongjiu.lu@intel.com> 13710 13711 PR target/83839 13712 * config/i386/i386.c (output_indirect_thunk_function): Use 13713 ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO 13714 for __x86_return_thunk. 13715 137162018-01-15 Richard Biener <rguenther@suse.de> 13717 13718 PR middle-end/83850 13719 * expmed.c (extract_bit_field_1): Fix typo. 13720 137212018-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 13722 13723 PR target/83687 13724 * config/arm/iterators.md (VF): New mode iterator. 13725 * config/arm/neon.md (neon_vabd<mode>_2): Use the above. 13726 Remove integer-related logic from pattern. 13727 (neon_vabd<mode>_3): Likewise. 13728 137292018-01-15 Jakub Jelinek <jakub@redhat.com> 13730 13731 PR middle-end/82694 13732 * common.opt (fstrict-overflow): No longer an alias. 13733 (fwrapv-pointer): New option. 13734 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define 13735 also for pointer types based on flag_wrapv_pointer. 13736 * opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set 13737 opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if 13738 opts->x_flag_wrapv got set. 13739 * fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01 13740 changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of 13741 POINTER_TYPE_OVERFLOW_UNDEFINED. 13742 * match.pd: Likewise in address comparison pattern. 13743 * doc/invoke.texi: Document -fwrapv and -fstrict-overflow. 13744 137452018-01-15 Richard Biener <rguenther@suse.de> 13746 13747 PR lto/83804 13748 * tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs 13749 from TYPE_FIELDS. Free TYPE_BINFO if not used by devirtualization. 13750 Reset type names to their identifier if their TYPE_DECL doesn't 13751 have linkage (and thus is used for ODR and devirt). 13752 (save_debug_info_for_decl): Remove. 13753 (save_debug_info_for_type): Likewise. 13754 (add_tree_to_fld_list): Adjust. 13755 * tree-pretty-print.c (dump_generic_node): Make dumping of 13756 type names more robust. 13757 137582018-01-15 Richard Biener <rguenther@suse.de> 13759 13760 * BASE-VER: Bump to 8.0.1. 13761 137622018-01-14 Martin Sebor <msebor@redhat.com> 13763 13764 PR other/83508 13765 * builtins.c (check_access): Avoid warning when the no-warning bit 13766 is set. 13767 137682018-01-14 Cory Fields <cory-nospam-@coryfields.com> 13769 13770 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort. 13771 * ira-color (allocno_hard_regs_compare): Likewise. 13772 137732018-01-14 Nathan Rossi <nathan@nathanrossi.com> 13774 13775 PR target/83013 13776 * config/microblaze/microblaze.c (microblaze_asm_output_ident): 13777 Use .pushsection/.popsection. 13778 137792018-01-14 Martin Sebor <msebor@redhat.com> 13780 13781 PR c++/81327 13782 * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting. 13783 137842018-01-14 Jakub Jelinek <jakub@redhat.com> 13785 13786 * config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h 13787 entry from extra_headers. 13788 (x86_64-*-*): Remove two duplicate gfniintrin.h entries from 13789 extra_headers, make the list bitwise identical to the i?86-*-* one. 13790 137912018-01-14 H.J. Lu <hongjiu.lu@intel.com> 13792 13793 * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow 13794 -mcmodel=large with -mindirect-branch=thunk, 13795 -mindirect-branch=thunk-extern, -mfunction-return=thunk and 13796 -mfunction-return=thunk-extern. 13797 * doc/invoke.texi: Document -mcmodel=large is incompatible with 13798 -mindirect-branch=thunk, -mindirect-branch=thunk-extern, 13799 -mfunction-return=thunk and -mfunction-return=thunk-extern. 13800 138012018-01-14 H.J. Lu <hongjiu.lu@intel.com> 13802 13803 * config/i386/i386.c (print_reg): Print the name of the full 13804 integer register without '%'. 13805 (ix86_print_operand): Handle 'V'. 13806 * doc/extend.texi: Document 'V' modifier. 13807 138082018-01-14 H.J. Lu <hongjiu.lu@intel.com> 13809 13810 * config/i386/constraints.md (Bs): Disallow memory operand for 13811 -mindirect-branch-register. 13812 (Bw): Likewise. 13813 * config/i386/predicates.md (indirect_branch_operand): Likewise. 13814 (GOT_memory_operand): Likewise. 13815 (call_insn_operand): Likewise. 13816 (sibcall_insn_operand): Likewise. 13817 (GOT32_symbol_operand): Likewise. 13818 * config/i386/i386.md (indirect_jump): Call convert_memory_address 13819 for -mindirect-branch-register. 13820 (tablejump): Likewise. 13821 (*sibcall_memory): Likewise. 13822 (*sibcall_value_memory): Likewise. 13823 Disallow peepholes of indirect call and jump via memory for 13824 -mindirect-branch-register. 13825 (*call_pop): Replace m with Bw. 13826 (*call_value_pop): Likewise. 13827 (*sibcall_pop_memory): Replace m with Bs. 13828 * config/i386/i386.opt (mindirect-branch-register): New option. 13829 * doc/invoke.texi: Document -mindirect-branch-register option. 13830 138312018-01-14 H.J. Lu <hongjiu.lu@intel.com> 13832 13833 * config/i386/i386-protos.h (ix86_output_function_return): New. 13834 * config/i386/i386.c (ix86_set_indirect_branch_type): Also 13835 set function_return_type. 13836 (indirect_thunk_name): Add ret_p to indicate thunk for function 13837 return. 13838 (output_indirect_thunk_function): Pass false to 13839 indirect_thunk_name. 13840 (ix86_output_indirect_branch_via_reg): Likewise. 13841 (ix86_output_indirect_branch_via_push): Likewise. 13842 (output_indirect_thunk_function): Create alias for function 13843 return thunk if regno < 0. 13844 (ix86_output_function_return): New function. 13845 (ix86_handle_fndecl_attribute): Handle function_return. 13846 (ix86_attribute_table): Add function_return. 13847 * config/i386/i386.h (machine_function): Add 13848 function_return_type. 13849 * config/i386/i386.md (simple_return_internal): Use 13850 ix86_output_function_return. 13851 (simple_return_internal_long): Likewise. 13852 * config/i386/i386.opt (mfunction-return=): New option. 13853 (indirect_branch): Mention -mfunction-return=. 13854 * doc/extend.texi: Document function_return function attribute. 13855 * doc/invoke.texi: Document -mfunction-return= option. 13856 138572018-01-14 H.J. Lu <hongjiu.lu@intel.com> 13858 13859 * config/i386/i386-opts.h (indirect_branch): New. 13860 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise. 13861 * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone 13862 with local indirect jump when converting indirect call and jump. 13863 (ix86_set_indirect_branch_type): New. 13864 (ix86_set_current_function): Call ix86_set_indirect_branch_type. 13865 (indirectlabelno): New. 13866 (indirect_thunk_needed): Likewise. 13867 (indirect_thunk_bnd_needed): Likewise. 13868 (indirect_thunks_used): Likewise. 13869 (indirect_thunks_bnd_used): Likewise. 13870 (INDIRECT_LABEL): Likewise. 13871 (indirect_thunk_name): Likewise. 13872 (output_indirect_thunk): Likewise. 13873 (output_indirect_thunk_function): Likewise. 13874 (ix86_output_indirect_branch_via_reg): Likewise. 13875 (ix86_output_indirect_branch_via_push): Likewise. 13876 (ix86_output_indirect_branch): Likewise. 13877 (ix86_output_indirect_jmp): Likewise. 13878 (ix86_code_end): Call output_indirect_thunk_function if needed. 13879 (ix86_output_call_insn): Call ix86_output_indirect_branch if 13880 needed. 13881 (ix86_handle_fndecl_attribute): Handle indirect_branch. 13882 (ix86_attribute_table): Add indirect_branch. 13883 * config/i386/i386.h (machine_function): Add indirect_branch_type 13884 and has_local_indirect_jump. 13885 * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump 13886 to true. 13887 (tablejump): Likewise. 13888 (*indirect_jump): Use ix86_output_indirect_jmp. 13889 (*tablejump_1): Likewise. 13890 (simple_return_indirect_internal): Likewise. 13891 * config/i386/i386.opt (mindirect-branch=): New option. 13892 (indirect_branch): New. 13893 (keep): Likewise. 13894 (thunk): Likewise. 13895 (thunk-inline): Likewise. 13896 (thunk-extern): Likewise. 13897 * doc/extend.texi: Document indirect_branch function attribute. 13898 * doc/invoke.texi: Document -mindirect-branch= option. 13899 139002018-01-14 Jan Hubicka <hubicka@ucw.cz> 13901 13902 PR ipa/83051 13903 * ipa-inline.c (edge_badness): Tolerate roundoff errors. 13904 139052018-01-14 Richard Sandiford <richard.sandiford@linaro.org> 13906 13907 * ipa-inline.c (want_inline_small_function_p): Return false if 13908 inlining has already failed with CIF_FINAL_ERROR. 13909 (update_caller_keys): Call want_inline_small_function_p before 13910 can_inline_edge_p. 13911 (update_callee_keys): Likewise. 13912 139132018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 13914 13915 * config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p): 13916 New function. 13917 (rs6000_quadword_masked_address_p): Likewise. 13918 (quad_aligned_load_p): Likewise. 13919 (quad_aligned_store_p): Likewise. 13920 (const_load_sequence_p): Add comment to describe the outer-most loop. 13921 (mimic_memory_attributes_and_flags): New function. 13922 (rs6000_gen_stvx): Likewise. 13923 (replace_swapped_aligned_store): Likewise. 13924 (rs6000_gen_lvx): Likewise. 13925 (replace_swapped_aligned_load): Likewise. 13926 (replace_swapped_load_constant): Capitalize argument name in 13927 comment describing this function. 13928 (rs6000_analyze_swaps): Add a third pass to search for vector loads 13929 and stores that access quad-word aligned addresses and replace 13930 with stvx or lvx instructions when appropriate. 13931 * config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p): 13932 New function prototype. 13933 (rs6000_quadword_masked_address_p): Likewise. 13934 (rs6000_gen_lvx): Likewise. 13935 (rs6000_gen_stvx): Likewise. 13936 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes 13937 VSX_D (V2DF, V2DI), modify this split to select lvx instruction 13938 when memory address is aligned. 13939 (*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify 13940 this split to select lvx instruction when memory address is aligned. 13941 (*vsx_le_perm_load_v8hi): Modify this split to select lvx 13942 instruction when memory address is aligned. 13943 (*vsx_le_perm_load_v16qi): Likewise. 13944 (four unnamed splitters): Modify to select the stvx instruction 13945 when memory is aligned. 13946 139472018-01-13 Jan Hubicka <hubicka@ucw.cz> 13948 13949 * predict.c (determine_unlikely_bbs): Handle correctly BBs 13950 which appears in the queue multiple times. 13951 139522018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 13953 Alan Hayward <alan.hayward@arm.com> 13954 David Sherwood <david.sherwood@arm.com> 13955 13956 * tree-vectorizer.h (vec_lower_bound): New structure. 13957 (_loop_vec_info): Add check_nonzero and lower_bounds. 13958 (LOOP_VINFO_CHECK_NONZERO): New macro. 13959 (LOOP_VINFO_LOWER_BOUNDS): Likewise. 13960 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too. 13961 * tree-data-ref.h (dr_with_seg_len): Add access_size and align 13962 fields. Make seg_len the distance travelled, not including the 13963 access size. 13964 (dr_direction_indicator): Declare. 13965 (dr_zero_step_indicator): Likewise. 13966 (dr_known_forward_stride_p): Likewise. 13967 * tree-data-ref.c: Include stringpool.h, tree-vrp.h and 13968 tree-ssanames.h. 13969 (runtime_alias_check_p): Allow runtime alias checks with 13970 variable strides. 13971 (operator ==): Compare access_size and align. 13972 (prune_runtime_alias_test_list): Rework for new distinction between 13973 the access_size and seg_len. 13974 (create_intersect_range_checks_index): Likewise. Cope with polynomial 13975 segment lengths. 13976 (get_segment_min_max): New function. 13977 (create_intersect_range_checks): Use it. 13978 (dr_step_indicator): New function. 13979 (dr_direction_indicator): Likewise. 13980 (dr_zero_step_indicator): Likewise. 13981 (dr_known_forward_stride_p): Likewise. 13982 * tree-loop-distribution.c (data_ref_segment_size): Return 13983 DR_STEP * (niters - 1). 13984 (compute_alias_check_pairs): Update call to the dr_with_seg_len 13985 constructor. 13986 * tree-vect-data-refs.c (vect_check_nonzero_value): New function. 13987 (vect_preserves_scalar_order_p): New function, split out from... 13988 (vect_analyze_data_ref_dependence): ...here. Check for zero steps. 13989 (vect_vfa_segment_size): Return DR_STEP * (length_factor - 1). 13990 (vect_vfa_access_size): New function. 13991 (vect_vfa_align): Likewise. 13992 (vect_compile_time_alias): Take access_size_a and access_b arguments. 13993 (dump_lower_bound): New function. 13994 (vect_check_lower_bound): Likewise. 13995 (vect_small_gap_p): Likewise. 13996 (vectorizable_with_step_bound_p): Likewise. 13997 (vect_prune_runtime_alias_test_list): Ignore cross-iteration 13998 depencies if the vectorization factor is 1. Convert the checks 13999 for nonzero steps into checks on the bounds of DR_STEP. Try using 14000 a bunds check for variable steps if the minimum required step is 14001 relatively small. Update calls to the dr_with_seg_len 14002 constructor and to vect_compile_time_alias. 14003 * tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New 14004 function. 14005 (vect_loop_versioning): Call it. 14006 * tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS 14007 when retrying. 14008 (vect_estimate_min_profitable_iters): Account for any bounds checks. 14009 140102018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14011 Alan Hayward <alan.hayward@arm.com> 14012 David Sherwood <david.sherwood@arm.com> 14013 14014 * doc/sourcebuild.texi (vect_scatter_store): Document. 14015 * optabs.def (scatter_store_optab, mask_scatter_store_optab): New 14016 optabs. 14017 * doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}): 14018 Document. 14019 * genopinit.c (main): Add supports_vec_scatter_store and 14020 supports_vec_scatter_store_cached to target_optabs. 14021 * gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and 14022 IFN_MASK_SCATTER_STORE. 14023 * internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal 14024 functions. 14025 * internal-fn.h (internal_store_fn_p): Declare. 14026 (internal_fn_stored_value_index): Likewise. 14027 * internal-fn.c (scatter_store_direct): New macro. 14028 (expand_scatter_store_optab_fn): New function. 14029 (direct_scatter_store_optab_supported_p): New macro. 14030 (internal_store_fn_p): New function. 14031 (internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and 14032 IFN_MASK_SCATTER_STORE. 14033 (internal_fn_mask_index): Likewise. 14034 (internal_fn_stored_value_index): New function. 14035 (internal_gather_scatter_fn_supported_p): Adjust operand numbers 14036 for scatter stores. 14037 * optabs-query.h (supports_vec_scatter_store_p): Declare. 14038 * optabs-query.c (supports_vec_scatter_store_p): New function. 14039 * tree-vectorizer.h (vect_get_store_rhs): Declare. 14040 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Return 14041 true for scatter stores. 14042 (vect_gather_scatter_fn_p): Handle scatter stores too. 14043 (vect_check_gather_scatter): Consider using scatter stores if 14044 supports_vec_scatter_store_p. 14045 * tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle 14046 scatter stores too. 14047 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use 14048 internal_fn_stored_value_index. 14049 (check_load_store_masking): Handle scatter stores too. 14050 (vect_get_store_rhs): Make public. 14051 (vectorizable_call): Use internal_store_fn_p. 14052 (vectorizable_store): Handle scatter store internal functions. 14053 (vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE 14054 when deciding whether the end of the group has been reached. 14055 * config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec. 14056 * config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander. 14057 (mask_scatter_store<mode>): New insns. 14058 140592018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14060 Alan Hayward <alan.hayward@arm.com> 14061 David Sherwood <david.sherwood@arm.com> 14062 14063 * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare. 14064 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public. 14065 * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New 14066 function. 14067 (vect_use_strided_gather_scatters_p): Take a masked_p argument. 14068 Use vect_truncate_gather_scatter_offset if we can't treat the 14069 operation as a normal gather load or scatter store. 14070 (get_group_load_store_type): Take the gather_scatter_info 14071 as argument. Try using a gather load or scatter store for 14072 single-element groups. 14073 (get_load_store_type): Update calls to get_group_load_store_type 14074 and vect_use_strided_gather_scatters_p. 14075 140762018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14077 Alan Hayward <alan.hayward@arm.com> 14078 David Sherwood <david.sherwood@arm.com> 14079 14080 * tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra 14081 optional tree argument. 14082 * tree-vect-data-refs.c (vect_check_gather_scatter): Check for 14083 null target hooks. 14084 (vect_create_data_ref_ptr): Take the iv_step as an optional argument, 14085 but continue to use the current value as a fallback. 14086 (bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare 14087 to compare the updates. 14088 * tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function. 14089 (get_load_store_type): Use it when handling a strided access. 14090 (vect_get_strided_load_store_ops): New function. 14091 (vect_get_data_ptr_increment): Likewise. 14092 (vectorizable_load): Handle strided gather loads. Always pass 14093 a step to vect_create_data_ref_ptr and bump_vector_ptr. 14094 140952018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14096 Alan Hayward <alan.hayward@arm.com> 14097 David Sherwood <david.sherwood@arm.com> 14098 14099 * doc/md.texi (gather_load@var{m}): Document. 14100 (mask_gather_load@var{m}): Likewise. 14101 * genopinit.c (main): Add supports_vec_gather_load and 14102 supports_vec_gather_load_cached to target_optabs. 14103 * optabs-tree.c (init_tree_optimization_optabs): Use 14104 ggc_cleared_alloc to allocate target_optabs. 14105 * optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs. 14106 * internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal 14107 functions. 14108 * internal-fn.h (internal_load_fn_p): Declare. 14109 (internal_gather_scatter_fn_p): Likewise. 14110 (internal_fn_mask_index): Likewise. 14111 (internal_gather_scatter_fn_supported_p): Likewise. 14112 * internal-fn.c (gather_load_direct): New macro. 14113 (expand_gather_load_optab_fn): New function. 14114 (direct_gather_load_optab_supported_p): New macro. 14115 (direct_internal_fn_optab): New function. 14116 (internal_load_fn_p): Likewise. 14117 (internal_gather_scatter_fn_p): Likewise. 14118 (internal_fn_mask_index): Likewise. 14119 (internal_gather_scatter_fn_supported_p): Likewise. 14120 * optabs-query.c (supports_at_least_one_mode_p): New function. 14121 (supports_vec_gather_load_p): Likewise. 14122 * optabs-query.h (supports_vec_gather_load_p): Declare. 14123 * tree-vectorizer.h (gather_scatter_info): Add ifn, element_type 14124 and memory_type field. 14125 (NUM_PATTERNS): Bump to 15. 14126 * tree-vect-data-refs.c: Include internal-fn.h. 14127 (vect_gather_scatter_fn_p): New function. 14128 (vect_describe_gather_scatter_call): Likewise. 14129 (vect_check_gather_scatter): Try using internal functions for 14130 gather loads. Recognize existing calls to a gather load function. 14131 (vect_analyze_data_refs): Consider using gather loads if 14132 supports_vec_gather_load_p. 14133 * tree-vect-patterns.c (vect_get_load_store_mask): New function. 14134 (vect_get_gather_scatter_offset_type): Likewise. 14135 (vect_convert_mask_for_vectype): Likewise. 14136 (vect_add_conversion_to_patterm): Likewise. 14137 (vect_try_gather_scatter_pattern): Likewise. 14138 (vect_recog_gather_scatter_pattern): New pattern recognizer. 14139 (vect_vect_recog_func_ptrs): Add it. 14140 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use 14141 internal_fn_mask_index and internal_gather_scatter_fn_p. 14142 (check_load_store_masking): Take the gather_scatter_info as an 14143 argument and handle gather loads. 14144 (vect_get_gather_scatter_ops): New function. 14145 (vectorizable_call): Check internal_load_fn_p. 14146 (vectorizable_load): Likewise. Handle gather load internal 14147 functions. 14148 (vectorizable_store): Update call to check_load_store_masking. 14149 * config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec. 14150 * config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators. 14151 * config/aarch64/predicates.md (aarch64_gather_scale_operand_w) 14152 (aarch64_gather_scale_operand_d): New predicates. 14153 * config/aarch64/aarch64-sve.md (gather_load<mode>): New expander. 14154 (mask_gather_load<mode>): New insns. 14155 141562018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14157 Alan Hayward <alan.hayward@arm.com> 14158 David Sherwood <david.sherwood@arm.com> 14159 14160 * optabs.def (fold_left_plus_optab): New optab. 14161 * doc/md.texi (fold_left_plus_@var{m}): Document. 14162 * internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function. 14163 * internal-fn.c (fold_left_direct): Define. 14164 (expand_fold_left_optab_fn): Likewise. 14165 (direct_fold_left_optab_supported_p): Likewise. 14166 * fold-const-call.c (fold_const_fold_left): New function. 14167 (fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS. 14168 * tree-parloops.c (valid_reduction_p): New function. 14169 (gather_scalar_reductions): Use it. 14170 * tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type. 14171 (vect_finish_replace_stmt): Declare. 14172 * tree-vect-loop.c (fold_left_reduction_fn): New function. 14173 (needs_fold_left_reduction_p): New function, split out from... 14174 (vect_is_simple_reduction): ...here. Accept reductions that 14175 forbid reassociation, but give them type FOLD_LEFT_REDUCTION. 14176 (vect_force_simple_reduction): Also store the reduction type in 14177 the assignment's STMT_VINFO_REDUC_TYPE. 14178 (vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION. 14179 (merge_with_identity): New function. 14180 (vect_expand_fold_left): Likewise. 14181 (vectorize_fold_left_reduction): Likewise. 14182 (vectorizable_reduction): Handle FOLD_LEFT_REDUCTION. Leave the 14183 scalar phi in place for it. Check for target support and reject 14184 cases that would reassociate the operation. Defer the transform 14185 phase to vectorize_fold_left_reduction. 14186 * config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec. 14187 * config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander. 14188 (*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns. 14189 141902018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14191 14192 * tree-if-conv.c (predicate_mem_writes): Remove redundant 14193 call to ifc_temp_var. 14194 141952018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14196 Alan Hayward <alan.hayward@arm.com> 14197 David Sherwood <david.sherwood@arm.com> 14198 14199 * target.def (legitimize_address_displacement): Take the original 14200 offset as a poly_int. 14201 * targhooks.h (default_legitimize_address_displacement): Update 14202 accordingly. 14203 * targhooks.c (default_legitimize_address_displacement): Likewise. 14204 * doc/tm.texi: Regenerate. 14205 * lra-constraints.c (base_plus_disp_to_reg): Take the displacement 14206 as an argument, moving assert of ad->disp == ad->disp_term to... 14207 (process_address_1): ...here. Update calls to base_plus_disp_to_reg. 14208 Try calling targetm.legitimize_address_displacement before expanding 14209 the address rather than afterwards, and adjust for the new interface. 14210 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): 14211 Match the new hook interface. Handle SVE addresses. 14212 * config/sh/sh.c (sh_legitimize_address_displacement): Make the 14213 new hook interface. 14214 142152018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14216 14217 * Makefile.in (OBJS): Add early-remat.o. 14218 * target.def (select_early_remat_modes): New hook. 14219 * doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook. 14220 * doc/tm.texi: Regenerate. 14221 * targhooks.h (default_select_early_remat_modes): Declare. 14222 * targhooks.c (default_select_early_remat_modes): New function. 14223 * timevar.def (TV_EARLY_REMAT): New timevar. 14224 * passes.def (pass_early_remat): New pass. 14225 * tree-pass.h (make_pass_early_remat): Declare. 14226 * early-remat.c: New file. 14227 * config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New 14228 function. 14229 (TARGET_SELECT_EARLY_REMAT_MODES): Define. 14230 142312018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14232 Alan Hayward <alan.hayward@arm.com> 14233 David Sherwood <david.sherwood@arm.com> 14234 14235 * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace 14236 vfm1 with a bound_epilog parameter. 14237 (vect_do_peeling): Update calls accordingly, and move the prologue 14238 call earlier in the function. Treat the base bound_epilog as 0 for 14239 fully-masked loops and retain vf - 1 for other loops. Add 1 to 14240 this base when peeling for gaps. 14241 * tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps 14242 with fully-masked loops. 14243 (vect_estimate_min_profitable_iters): Handle the single peeled 14244 iteration in that case. 14245 142462018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14247 Alan Hayward <alan.hayward@arm.com> 14248 David Sherwood <david.sherwood@arm.com> 14249 14250 * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow 14251 single-element interleaving even if the size is not a power of 2. 14252 * tree-vect-stmts.c (get_load_store_type): Disallow elementwise 14253 accesses for single-element interleaving if the group size is 14254 not a power of 2. 14255 142562018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14257 Alan Hayward <alan.hayward@arm.com> 14258 David Sherwood <david.sherwood@arm.com> 14259 14260 * doc/md.texi (fold_extract_last_@var{m}): Document. 14261 * doc/sourcebuild.texi (vect_fold_extract_last): Likewise. 14262 * optabs.def (fold_extract_last_optab): New optab. 14263 * internal-fn.def (FOLD_EXTRACT_LAST): New internal function. 14264 * internal-fn.c (fold_extract_direct): New macro. 14265 (expand_fold_extract_optab_fn): Likewise. 14266 (direct_fold_extract_optab_supported_p): Likewise. 14267 * tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type. 14268 * tree-vect-loop.c (vect_model_reduction_cost): Handle 14269 EXTRACT_LAST_REDUCTION. 14270 (get_initial_def_for_reduction): Do not create an initial vector 14271 for EXTRACT_LAST_REDUCTION reductions. 14272 (vectorizable_reduction): Leave the scalar phi in place for 14273 EXTRACT_LAST_REDUCTIONs. Try using EXTRACT_LAST_REDUCTION 14274 ahead of INTEGER_INDUC_COND_REDUCTION. Do not check for an 14275 epilogue code for EXTRACT_LAST_REDUCTION and defer the 14276 transform phase to vectorizable_condition. 14277 * tree-vect-stmts.c (vect_finish_stmt_generation_1): New function, 14278 split out from... 14279 (vect_finish_stmt_generation): ...here. 14280 (vect_finish_replace_stmt): New function. 14281 (vectorizable_condition): Handle EXTRACT_LAST_REDUCTION. 14282 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New 14283 pattern. 14284 * config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec. 14285 142862018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14287 Alan Hayward <alan.hayward@arm.com> 14288 David Sherwood <david.sherwood@arm.com> 14289 14290 * doc/md.texi (extract_last_@var{m}): Document. 14291 * optabs.def (extract_last_optab): New optab. 14292 * internal-fn.def (EXTRACT_LAST): New internal function. 14293 * internal-fn.c (cond_unary_direct): New macro. 14294 (expand_cond_unary_optab_fn): Likewise. 14295 (direct_cond_unary_optab_supported_p): Likewise. 14296 * tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked 14297 loops using EXTRACT_LAST. 14298 * config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to... 14299 (extract_last_<mode>): ...this optab. 14300 (vec_extract<mode><Vel>): Update accordingly. 14301 143022018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14303 Alan Hayward <alan.hayward@arm.com> 14304 David Sherwood <david.sherwood@arm.com> 14305 14306 * target.def (empty_mask_is_expensive): New hook. 14307 * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook. 14308 * doc/tm.texi: Regenerate. 14309 * targhooks.h (default_empty_mask_is_expensive): Declare. 14310 * targhooks.c (default_empty_mask_is_expensive): New function. 14311 * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores 14312 if the target says that empty masks are expensive. 14313 * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive): 14314 New function. 14315 (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine. 14316 143172018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14318 Alan Hayward <alan.hayward@arm.com> 14319 David Sherwood <david.sherwood@arm.com> 14320 14321 * tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field. 14322 (LOOP_VINFO_MASK_SKIP_NITERS): New macro. 14323 (vect_use_loop_mask_for_alignment_p): New function. 14324 (vect_prepare_for_masked_peels, vect_gen_while_not): Declare. 14325 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an 14326 niters_skip argument. Make sure that the first niters_skip elements 14327 of the first iteration are inactive. 14328 (vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS. 14329 Update call to vect_set_loop_masks_directly. 14330 (get_misalign_in_elems): New function, split out from... 14331 (vect_gen_prolog_loop_niters): ...here. 14332 (vect_update_init_of_dr): Take a code argument that specifies whether 14333 the adjustment should be added or subtracted. 14334 (vect_update_init_of_drs): Likewise. 14335 (vect_prepare_for_masked_peels): New function. 14336 (vect_do_peeling): Skip prologue peeling if we're using a mask 14337 instead. Update call to vect_update_inits_of_drs. 14338 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 14339 mask_skip_niters. 14340 (vect_analyze_loop_2): Allow fully-masked loops with peeling for 14341 alignment. Do not include the number of peeled iterations in 14342 the minimum threshold in that case. 14343 (vectorizable_induction): Adjust the start value down by 14344 LOOP_VINFO_MASK_SKIP_NITERS iterations. 14345 (vect_transform_loop): Call vect_prepare_for_masked_peels. 14346 Take the number of skipped iterations into account when calculating 14347 the loop bounds. 14348 * tree-vect-stmts.c (vect_gen_while_not): New function. 14349 143502018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14351 Alan Hayward <alan.hayward@arm.com> 14352 David Sherwood <david.sherwood@arm.com> 14353 14354 * doc/sourcebuild.texi (vect_fully_masked): Document. 14355 * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and 14356 default value to 0. 14357 * tree-vect-loop.c (vect_analyze_loop_costing): New function, 14358 split out from... 14359 (vect_analyze_loop_2): ...here. Don't check the vectorization 14360 factor against the number of loop iterations if the loop is 14361 fully-masked. 14362 143632018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14364 Alan Hayward <alan.hayward@arm.com> 14365 David Sherwood <david.sherwood@arm.com> 14366 14367 * tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into... 14368 (USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types. 14369 (dump_groups): Update accordingly. 14370 (iv_use::mem_type): New member variable. 14371 (address_p): New function. 14372 (record_use): Add a mem_type argument and initialize the new 14373 mem_type field. 14374 (record_group_use): Add a mem_type argument. Use address_p. 14375 Remove obsolete null checks of base_object. Update call to record_use. 14376 (find_interesting_uses_op): Update call to record_group_use. 14377 (find_interesting_uses_cond): Likewise. 14378 (find_interesting_uses_address): Likewise. 14379 (get_mem_type_for_internal_fn): New function. 14380 (find_address_like_use): Likewise. 14381 (find_interesting_uses_stmt): Try find_address_like_use before 14382 calling find_interesting_uses_op. 14383 (addr_offset_valid_p): Use the iv mem_type field as the type 14384 of the addressed memory. 14385 (add_autoinc_candidates): Likewise. 14386 (get_address_cost): Likewise. 14387 (split_small_address_groups_p): Use address_p. 14388 (split_address_groups): Likewise. 14389 (add_iv_candidate_for_use): Likewise. 14390 (autoinc_possible_for_pair): Likewise. 14391 (rewrite_groups): Likewise. 14392 (get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS. 14393 (determine_group_iv_cost): Update after split of USE_ADDRESS. 14394 (get_alias_ptr_type_for_ptr_address): New function. 14395 (rewrite_use_address): Rewrite address uses in calls that were 14396 identified by find_address_like_use. 14397 143982018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14399 Alan Hayward <alan.hayward@arm.com> 14400 David Sherwood <david.sherwood@arm.com> 14401 14402 * expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of 14403 TARGET_MEM_REFs. 14404 * gimple-expr.h (is_gimple_addressable: Likewise. 14405 * gimple-expr.c (is_gimple_address): Likewise. 14406 * internal-fn.c (expand_call_mem_ref): New function. 14407 (expand_mask_load_optab_fn): Use it. 14408 (expand_mask_store_optab_fn): Likewise. 14409 144102018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14411 Alan Hayward <alan.hayward@arm.com> 14412 David Sherwood <david.sherwood@arm.com> 14413 14414 * doc/md.texi (cond_add@var{mode}, cond_sub@var{mode}) 14415 (cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode}) 14416 (cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode}) 14417 (cond_umax@var{mode}): Document. 14418 * optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab) 14419 (cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab) 14420 (cond_umin_optab, cond_umax_optab): New optabs. 14421 * internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND) 14422 (COND_IOR, COND_XOR): New internal functions. 14423 * internal-fn.h (get_conditional_internal_fn): Declare. 14424 * internal-fn.c (cond_binary_direct): New macro. 14425 (expand_cond_binary_optab_fn): Likewise. 14426 (direct_cond_binary_optab_supported_p): Likewise. 14427 (get_conditional_internal_fn): New function. 14428 * tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops. 14429 Cope with reduction statements that are vectorized as calls rather 14430 than assignments. 14431 * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns. 14432 * config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB) 14433 (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN) 14434 (UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) 14435 (UNSPEC_COND_EOR): New unspecs. 14436 (optab): Add mappings for them. 14437 (SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators. 14438 (sve_int_op, sve_fp_op): New int attributes. 14439 144402018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14441 Alan Hayward <alan.hayward@arm.com> 14442 David Sherwood <david.sherwood@arm.com> 14443 14444 * optabs.def (while_ult_optab): New optab. 14445 * doc/md.texi (while_ult@var{m}@var{n}): Document. 14446 * internal-fn.def (WHILE_ULT): New internal function. 14447 * internal-fn.h (direct_internal_fn_supported_p): New override 14448 that takes two types as argument. 14449 * internal-fn.c (while_direct): New macro. 14450 (expand_while_optab_fn): New function. 14451 (convert_optab_supported_p): Likewise. 14452 (direct_while_optab_supported_p): New macro. 14453 * wide-int.h (wi::udiv_ceil): New function. 14454 * tree-vectorizer.h (rgroup_masks): New structure. 14455 (vec_loop_masks): New typedef. 14456 (_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p 14457 and fully_masked_p. 14458 (LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P) 14459 (LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros. 14460 (vect_max_vf): New function. 14461 (slpeel_make_loop_iterate_ntimes): Delete. 14462 (vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while) 14463 (vect_halve_mask_nunits, vect_double_mask_nunits): Declare. 14464 (vect_record_loop_mask, vect_get_loop_mask): Likewise. 14465 * tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h, 14466 internal-fn.h, stor-layout.h and optabs-query.h. 14467 (vect_set_loop_mask): New function. 14468 (add_preheader_seq): Likewise. 14469 (add_header_seq): Likewise. 14470 (interleave_supported_p): Likewise. 14471 (vect_maybe_permute_loop_masks): Likewise. 14472 (vect_set_loop_masks_directly): Likewise. 14473 (vect_set_loop_condition_masked): Likewise. 14474 (vect_set_loop_condition_unmasked): New function, split out from 14475 slpeel_make_loop_iterate_ntimes. 14476 (slpeel_make_loop_iterate_ntimes): Rename to.. 14477 (vect_set_loop_condition): ...this. Use vect_set_loop_condition_masked 14478 for fully-masked loops and vect_set_loop_condition_unmasked otherwise. 14479 (vect_do_peeling): Update call accordingly. 14480 (vect_gen_vector_loop_niters): Use VF as the step for fully-masked 14481 loops. 14482 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 14483 mask_compare_type, can_fully_mask_p and fully_masked_p. 14484 (release_vec_loop_masks): New function. 14485 (_loop_vec_info): Use it to free the loop masks. 14486 (can_produce_all_loop_masks_p): New function. 14487 (vect_get_max_nscalars_per_iter): Likewise. 14488 (vect_verify_full_masking): Likewise. 14489 (vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around 14490 retries, and free the mask rgroups before retrying. Check loop-wide 14491 reasons for disallowing fully-masked loops. Make the final decision 14492 about whether use a fully-masked loop or not. 14493 (vect_estimate_min_profitable_iters): Do not assume that peeling 14494 for the number of iterations will be needed for fully-masked loops. 14495 (vectorizable_reduction): Disable fully-masked loops. 14496 (vectorizable_live_operation): Likewise. 14497 (vect_halve_mask_nunits): New function. 14498 (vect_double_mask_nunits): Likewise. 14499 (vect_record_loop_mask): Likewise. 14500 (vect_get_loop_mask): Likewise. 14501 (vect_transform_loop): Handle the case in which the final loop 14502 iteration might handle a partial vector. Call vect_set_loop_condition 14503 instead of slpeel_make_loop_iterate_ntimes. 14504 * tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h. 14505 (check_load_store_masking): New function. 14506 (prepare_load_store_mask): Likewise. 14507 (vectorizable_store): Handle fully-masked loops. 14508 (vectorizable_load): Likewise. 14509 (supportable_widening_operation): Use vect_halve_mask_nunits for 14510 booleans. 14511 (supportable_narrowing_operation): Likewise vect_double_mask_nunits. 14512 (vect_gen_while): New function. 14513 * config/aarch64/aarch64.md (umax<mode>3): New expander. 14514 (aarch64_uqdec<mode>): New insn. 14515 145162018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14517 Alan Hayward <alan.hayward@arm.com> 14518 David Sherwood <david.sherwood@arm.com> 14519 14520 * optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab) 14521 (reduc_xor_scal_optab): New optabs. 14522 * doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m}) 14523 (reduc_xor_scal_@var{m}): Document. 14524 * doc/sourcebuild.texi (vect_logical_reduc): Likewise. 14525 * internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New 14526 internal functions. 14527 * fold-const-call.c (fold_const_call): Handle them. 14528 * tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new 14529 internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. 14530 * config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>): 14531 (*reduc_<bit_reduc>_scal_<mode>): New patterns. 14532 * config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV) 14533 (UNSPEC_XORV): New unspecs. 14534 (optab): Add entries for them. 14535 (BITWISEV): New int iterator. 14536 (bit_reduc_op): New int attributes. 14537 145382018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14539 Alan Hayward <alan.hayward@arm.com> 14540 David Sherwood <david.sherwood@arm.com> 14541 14542 * doc/md.texi (vec_shl_insert_@var{m}): New optab. 14543 * internal-fn.def (VEC_SHL_INSERT): New internal function. 14544 * optabs.def (vec_shl_insert_optab): New optab. 14545 * tree-vectorizer.h (can_duplicate_and_interleave_p): Declare. 14546 (duplicate_and_interleave): Likewise. 14547 * tree-vect-loop.c: Include internal-fn.h. 14548 (neutral_op_for_slp_reduction): New function, split out from 14549 get_initial_defs_for_reduction. 14550 (get_initial_def_for_reduction): Handle option 2 for variable-length 14551 vectors by loading the neutral value into a vector and then shifting 14552 the initial value into element 0. 14553 (get_initial_defs_for_reduction): Replace the code argument with 14554 the neutral value calculated by neutral_op_for_slp_reduction. 14555 Use gimple_build_vector for constant-length vectors. 14556 Use IFN_VEC_SHL_INSERT for variable-length vectors if all 14557 but the first group_size elements have a neutral value. 14558 Use duplicate_and_interleave otherwise. 14559 (vect_create_epilog_for_reduction): Take a neutral_op parameter. 14560 Update call to get_initial_defs_for_reduction. Handle SLP 14561 reductions for variable-length vectors by creating one vector 14562 result for each scalar result, with the elements associated 14563 with other scalar results stubbed out with the neutral value. 14564 (vectorizable_reduction): Call neutral_op_for_slp_reduction. 14565 Require IFN_VEC_SHL_INSERT for double reductions on 14566 variable-length vectors, or SLP reductions that have 14567 a neutral value. Require can_duplicate_and_interleave_p 14568 support for variable-length unchained SLP reductions if there 14569 is no neutral value, such as for MIN/MAX reductions. Also require 14570 the number of vector elements to be a multiple of the number of 14571 SLP statements when doing variable-length unchained SLP reductions. 14572 Update call to vect_create_epilog_for_reduction. 14573 * tree-vect-slp.c (can_duplicate_and_interleave_p): Make public 14574 and remove initial values. 14575 (duplicate_and_interleave): Make public. 14576 * config/aarch64/aarch64.md (UNSPEC_INSR): New unspec. 14577 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn. 14578 145792018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14580 Alan Hayward <alan.hayward@arm.com> 14581 David Sherwood <david.sherwood@arm.com> 14582 14583 * tree-vect-slp.c: Include gimple-fold.h and internal-fn.h 14584 (can_duplicate_and_interleave_p): New function. 14585 (vect_get_and_check_slp_defs): Take the vector of statements 14586 rather than just the current one. Remove excess parentheses. 14587 Restriction rejectinon of vect_constant_def and vect_external_def 14588 for variable-length vectors to boolean types, or types for which 14589 can_duplicate_and_interleave_p is false. 14590 (vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs. 14591 (duplicate_and_interleave): New function. 14592 (vect_get_constant_vectors): Use gimple_build_vector for 14593 constant-length vectors and suitable variable-length constant 14594 vectors. Use duplicate_and_interleave for other variable-length 14595 vectors. Don't defer the update when inserting new statements. 14596 145972018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14598 Alan Hayward <alan.hayward@arm.com> 14599 David Sherwood <david.sherwood@arm.com> 14600 14601 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure 14602 min_profitable_iters doesn't go negative. 14603 146042018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14605 Alan Hayward <alan.hayward@arm.com> 14606 David Sherwood <david.sherwood@arm.com> 14607 14608 * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document. 14609 (vec_mask_store_lanes@var{m}@var{n}): Likewise. 14610 * optabs.def (vec_mask_load_lanes_optab): New optab. 14611 (vec_mask_store_lanes_optab): Likewise. 14612 * internal-fn.def (MASK_LOAD_LANES): New internal function. 14613 (MASK_STORE_LANES): Likewise. 14614 * internal-fn.c (mask_load_lanes_direct): New macro. 14615 (mask_store_lanes_direct): Likewise. 14616 (expand_mask_load_optab_fn): Handle masked operations. 14617 (expand_mask_load_lanes_optab_fn): New macro. 14618 (expand_mask_store_optab_fn): Handle masked operations. 14619 (expand_mask_store_lanes_optab_fn): New macro. 14620 (direct_mask_load_lanes_optab_supported_p): Likewise. 14621 (direct_mask_store_lanes_optab_supported_p): Likewise. 14622 * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p 14623 parameter. 14624 (vect_load_lanes_supported): Likewise. 14625 * tree-vect-data-refs.c (strip_conversion): New function. 14626 (can_group_stmts_p): Likewise. 14627 (vect_analyze_data_ref_accesses): Use it instead of checking 14628 for a pair of assignments. 14629 (vect_store_lanes_supported): Take a masked_p parameter. 14630 (vect_load_lanes_supported): Likewise. 14631 * tree-vect-loop.c (vect_analyze_loop_2): Update calls to 14632 vect_store_lanes_supported and vect_load_lanes_supported. 14633 * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. 14634 * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p 14635 parameter. Don't allow gaps for masked accesses. 14636 Use vect_get_store_rhs. Update calls to vect_store_lanes_supported 14637 and vect_load_lanes_supported. 14638 (get_load_store_type): Take a masked_p parameter and update 14639 call to get_group_load_store_type. 14640 (vectorizable_store): Update call to get_load_store_type. 14641 Handle IFN_MASK_STORE_LANES. 14642 (vectorizable_load): Update call to get_load_store_type. 14643 Handle IFN_MASK_LOAD_LANES. 14644 146452018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14646 Alan Hayward <alan.hayward@arm.com> 14647 David Sherwood <david.sherwood@arm.com> 14648 14649 * config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector 14650 modes for SVE. 14651 * config/aarch64/aarch64-protos.h 14652 (aarch64_sve_struct_memory_operand_p): Declare. 14653 * config/aarch64/iterators.md (SVE_STRUCT): New mode iterator. 14654 (vector_count, insn_length, VSINGLE, vsingle): New mode attributes. 14655 (VPRED, vpred): Handle SVE structure modes. 14656 * config/aarch64/constraints.md (Utx): New constraint. 14657 * config/aarch64/predicates.md (aarch64_sve_struct_memory_operand) 14658 (aarch64_sve_struct_nonimmediate_operand): New predicates. 14659 * config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs. 14660 * config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le) 14661 (*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for 14662 structure modes. Split into pieces after RA. 14663 (vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>) 14664 (vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>): 14665 New patterns. 14666 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle 14667 SVE structure modes. 14668 (aarch64_classify_address): Likewise. 14669 (sizetochar): Move earlier in file. 14670 (aarch64_print_operand): Handle SVE register lists. 14671 (aarch64_array_mode): New function. 14672 (aarch64_sve_struct_memory_operand_p): Likewise. 14673 (TARGET_ARRAY_MODE): Redefine. 14674 146752018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14676 Alan Hayward <alan.hayward@arm.com> 14677 David Sherwood <david.sherwood@arm.com> 14678 14679 * target.def (array_mode): New target hook. 14680 * doc/tm.texi.in (TARGET_ARRAY_MODE): New hook. 14681 * doc/tm.texi: Regenerate. 14682 * hooks.h (hook_optmode_mode_uhwi_none): Declare. 14683 * hooks.c (hook_optmode_mode_uhwi_none): New function. 14684 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use 14685 targetm.array_mode. 14686 * stor-layout.c (mode_for_array): Likewise. Support polynomial 14687 type sizes. 14688 146892018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14690 Alan Hayward <alan.hayward@arm.com> 14691 David Sherwood <david.sherwood@arm.com> 14692 14693 * fold-const.c (fold_binary_loc): Check the argument types 14694 rather than the result type when testing for a vector operation. 14695 146962018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14697 14698 * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document. 14699 * doc/tm.texi: Regenerate. 14700 147012018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14702 Alan Hayward <alan.hayward@arm.com> 14703 David Sherwood <david.sherwood@arm.com> 14704 14705 * doc/invoke.texi (-msve-vector-bits=): Document new option. 14706 (sve): Document new AArch64 extension. 14707 * doc/md.texi (w): Extend the description of the AArch64 14708 constraint to include SVE vectors. 14709 (Upl, Upa): Document new AArch64 predicate constraints. 14710 * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New 14711 enum. 14712 * config/aarch64/aarch64.opt (sve_vector_bits): New enum. 14713 (msve-vector-bits=): New option. 14714 * config/aarch64/aarch64-option-extensions.def (fp, simd): Disable 14715 SVE when these are disabled. 14716 (sve): New extension. 14717 * config/aarch64/aarch64-modes.def: Define SVE vector and predicate 14718 modes. Adjust their number of units based on aarch64_sve_vg. 14719 (MAX_BITSIZE_MODE_ANY_MODE): Define. 14720 * config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New 14721 aarch64_addr_query_type. 14722 (aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode) 14723 (aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p) 14724 (aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries) 14725 (aarch64_split_add_offset, aarch64_output_sve_cnt_immediate) 14726 (aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate) 14727 (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare. 14728 (aarch64_simd_imm_zero_p): Delete. 14729 (aarch64_check_zero_based_sve_index_immediate): Declare. 14730 (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) 14731 (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) 14732 (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) 14733 (aarch64_sve_float_mul_immediate_p): Likewise. 14734 (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT 14735 rather than an rtx. 14736 (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare. 14737 (aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback. 14738 (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare. 14739 (aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float) 14740 (aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare. 14741 (aarch64_regmode_natural_size): Likewise. 14742 * config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro. 14743 (AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift 14744 left one place. 14745 (AARCH64_ISA_SVE, TARGET_SVE): New macros. 14746 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries 14747 for VG and the SVE predicate registers. 14748 (V_ALIASES): Add a "z"-prefixed alias. 14749 (FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1. 14750 (AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros. 14751 (PR_REGNUM_P, PR_LO_REGNUM_P): Likewise. 14752 (PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes. 14753 (REG_CLASS_NAMES): Add entries for them. 14754 (REG_CLASS_CONTENTS): Likewise. Update ALL_REGS to include VG 14755 and the predicate registers. 14756 (aarch64_sve_vg): Declare. 14757 (BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED) 14758 (SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros. 14759 (REGMODE_NATURAL_SIZE): Define. 14760 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle 14761 SVE macros. 14762 * config/aarch64/aarch64.c: Include cfgrtl.h. 14763 (simd_immediate_info): Add a constructor for series vectors, 14764 and an associated step field. 14765 (aarch64_sve_vg): New variable. 14766 (aarch64_dbx_register_number): Handle VG and the predicate registers. 14767 (aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete. 14768 (VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE) 14769 (VEC_ANY_DATA, VEC_STRUCT): New constants. 14770 (aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p) 14771 (aarch64_classify_vector_mode, aarch64_vector_data_mode_p) 14772 (aarch64_sve_data_mode_p, aarch64_sve_pred_mode) 14773 (aarch64_get_mask_mode): New functions. 14774 (aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS 14775 and FP_LO_REGS. Handle PR_REGS, PR_LO_REGS and PR_HI_REGS. 14776 (aarch64_hard_regno_mode_ok): Handle VG. Also handle the SVE 14777 predicate modes and predicate registers. Explicitly restrict 14778 GPRs to modes of 16 bytes or smaller. Only allow FP registers 14779 to store a vector mode if it is recognized by 14780 aarch64_classify_vector_mode. 14781 (aarch64_regmode_natural_size): New function. 14782 (aarch64_hard_regno_caller_save_mode): Return the original mode 14783 for predicates. 14784 (aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate) 14785 (aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl) 14786 (aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate) 14787 (aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New 14788 functions. 14789 (aarch64_add_offset): Add a temp2 parameter. Assert that temp1 14790 does not overlap dest if the function is frame-related. Handle 14791 SVE constants. 14792 (aarch64_split_add_offset): New function. 14793 (aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass 14794 them aarch64_add_offset. 14795 (aarch64_allocate_and_probe_stack_space): Add a temp2 parameter 14796 and update call to aarch64_sub_sp. 14797 (aarch64_add_cfa_expression): New function. 14798 (aarch64_expand_prologue): Pass extra temporary registers to the 14799 functions above. Handle the case in which we need to emit new 14800 DW_CFA_expressions for registers that were originally saved 14801 relative to the stack pointer, but now have to be expressed 14802 relative to the frame pointer. 14803 (aarch64_output_mi_thunk): Pass extra temporary registers to the 14804 functions above. 14805 (aarch64_expand_epilogue): Likewise. Prevent inheritance of 14806 IP0 and IP1 values for SVE frames. 14807 (aarch64_expand_vec_series): New function. 14808 (aarch64_expand_sve_widened_duplicate): Likewise. 14809 (aarch64_expand_sve_const_vector): Likewise. 14810 (aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter. 14811 Handle SVE constants. Use emit_move_insn to move a force_const_mem 14812 into the register, rather than emitting a SET directly. 14813 (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move) 14814 (aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p) 14815 (offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p) 14816 (offset_9bit_signed_scaled_p): New functions. 14817 (aarch64_replicate_bitmask_imm): New function. 14818 (aarch64_bitmask_imm): Use it. 14819 (aarch64_cannot_force_const_mem): Reject expressions involving 14820 a CONST_POLY_INT. Update call to aarch64_classify_symbol. 14821 (aarch64_classify_index): Handle SVE indices, by requiring 14822 a plain register index with a scale that matches the element size. 14823 (aarch64_classify_address): Handle SVE addresses. Assert that 14824 the mode of the address is VOIDmode or an integer mode. 14825 Update call to aarch64_classify_symbol. 14826 (aarch64_classify_symbolic_expression): Update call to 14827 aarch64_classify_symbol. 14828 (aarch64_const_vec_all_in_range_p): New function. 14829 (aarch64_print_vector_float_operand): Likewise. 14830 (aarch64_print_operand): Handle 'N' and 'C'. Use "zN" rather than 14831 "vN" for FP registers with SVE modes. Handle (const ...) vectors 14832 and the FP immediates 1.0 and 0.5. 14833 (aarch64_print_address_internal): Handle SVE addresses. 14834 (aarch64_print_operand_address): Use ADDR_QUERY_ANY. 14835 (aarch64_regno_regclass): Handle predicate registers. 14836 (aarch64_secondary_reload): Handle big-endian reloads of SVE 14837 data modes. 14838 (aarch64_class_max_nregs): Handle SVE modes and predicate registers. 14839 (aarch64_rtx_costs): Check for ADDVL and ADDPL instructions. 14840 (aarch64_convert_sve_vector_bits): New function. 14841 (aarch64_override_options): Use it to handle -msve-vector-bits=. 14842 (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT 14843 rather than an rtx. 14844 (aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode. 14845 Handle SVE vector and predicate modes. Accept VL-based constants 14846 that need only one temporary register, and VL offsets that require 14847 no temporary registers. 14848 (aarch64_conditional_register_usage): Mark the predicate registers 14849 as fixed if SVE isn't available. 14850 (aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode. 14851 Return true for SVE vector and predicate modes. 14852 (aarch64_simd_container_mode): Take the number of bits as a poly_int64 14853 rather than an unsigned int. Handle SVE modes. 14854 (aarch64_preferred_simd_mode): Update call accordingly. Handle 14855 SVE modes. 14856 (aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR 14857 if SVE is enabled. 14858 (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) 14859 (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) 14860 (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) 14861 (aarch64_sve_float_mul_immediate_p): New functions. 14862 (aarch64_sve_valid_immediate): New function. 14863 (aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors. 14864 Explicitly reject structure modes. Check for INDEX constants. 14865 Handle PTRUE and PFALSE constants. 14866 (aarch64_check_zero_based_sve_index_immediate): New function. 14867 (aarch64_simd_imm_zero_p): Delete. 14868 (aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for 14869 vector modes. Accept constants in the range of CNT[BHWD]. 14870 (aarch64_simd_scalar_immediate_valid_for_move): Explicitly 14871 ask for an Advanced SIMD mode. 14872 (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions. 14873 (aarch64_simd_vector_alignment): Handle SVE predicates. 14874 (aarch64_vectorize_preferred_vector_alignment): New function. 14875 (aarch64_simd_vector_alignment_reachable): Use it instead of 14876 the vector size. 14877 (aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p. 14878 (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New 14879 functions. 14880 (MAX_VECT_LEN): Delete. 14881 (expand_vec_perm_d): Add a vec_flags field. 14882 (emit_unspec2, aarch64_expand_sve_vec_perm): New functions. 14883 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) 14884 (aarch64_evpc_ext): Don't apply a big-endian lane correction 14885 for SVE modes. 14886 (aarch64_evpc_rev): Rename to... 14887 (aarch64_evpc_rev_local): ...this. Use a predicated operation for SVE. 14888 (aarch64_evpc_rev_global): New function. 14889 (aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP. 14890 (aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of 14891 MAX_VECT_LEN. 14892 (aarch64_evpc_sve_tbl): New function. 14893 (aarch64_expand_vec_perm_const_1): Update after rename of 14894 aarch64_evpc_rev. Handle SVE permutes too, trying 14895 aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather 14896 than aarch64_evpc_tbl. 14897 (aarch64_vectorize_vec_perm_const): Initialize vec_flags. 14898 (aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code) 14899 (aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int) 14900 (aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or) 14901 (aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float) 14902 (aarch64_expand_sve_vcond): New functions. 14903 (aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead 14904 of aarch64_vector_mode_p. 14905 (aarch64_dwarf_poly_indeterminate_value): New function. 14906 (aarch64_compute_pressure_classes): Likewise. 14907 (aarch64_can_change_mode_class): Likewise. 14908 (TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine. 14909 (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise. 14910 (TARGET_VECTORIZE_GET_MASK_MODE): Likewise. 14911 (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise. 14912 (TARGET_COMPUTE_PRESSURE_CLASSES): Likewise. 14913 (TARGET_CAN_CHANGE_MODE_CLASS): Likewise. 14914 * config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr) 14915 (Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New 14916 constraints. 14917 (Dn, Dl, Dr): Accept const as well as const_vector. 14918 (Dz): Likewise. Compare against CONST0_RTX. 14919 * config/aarch64/iterators.md: Refer to "Advanced SIMD" instead 14920 of "vector" where appropriate. 14921 (SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD) 14922 (SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators. 14923 (UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT) 14924 (UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE) 14925 (UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS) 14926 (UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs. 14927 (Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV) 14928 (v_int_equiv): Extend to SVE modes. 14929 (Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New 14930 mode attributes. 14931 (LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators. 14932 (optab): Handle popcount, smin, smax, umin, umax, abs and sqrt. 14933 (logical_nn, lr, sve_int_op, sve_fp_op): New code attributs. 14934 (LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP) 14935 (SVE_COND_FP_CMP): New int iterators. 14936 (perm_hilo): Handle the new unpack unspecs. 14937 (optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int 14938 attributes. 14939 * config/aarch64/predicates.md (aarch64_sve_cnt_immediate) 14940 (aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate) 14941 (aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand) 14942 (aarch64_equality_operator, aarch64_constant_vector_operand) 14943 (aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates. 14944 (aarch64_sve_nonimmediate_operand): Likewise. 14945 (aarch64_sve_general_operand): Likewise. 14946 (aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise. 14947 (aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate) 14948 (aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise. 14949 (aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise. 14950 (aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise. 14951 (aarch64_sve_float_arith_immediate): Likewise. 14952 (aarch64_sve_float_arith_with_sub_immediate): Likewise. 14953 (aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise. 14954 (aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise. 14955 (aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise. 14956 (aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise. 14957 (aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise. 14958 (aarch64_sve_float_arith_operand): Likewise. 14959 (aarch64_sve_float_arith_with_sub_operand): Likewise. 14960 (aarch64_sve_float_mul_operand): Likewise. 14961 (aarch64_sve_vec_perm_operand): Likewise. 14962 (aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate. 14963 (aarch64_mov_operand): Accept const_poly_int and const_vector. 14964 (aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const 14965 as well as const_vector. 14966 (aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier 14967 in file. Use CONST0_RTX and CONSTM1_RTX. 14968 (aarch64_simd_or_scalar_imm_zero): Likewise. Add match_codes. 14969 (aarch64_simd_reg_or_zero): Accept const as well as const_vector. 14970 Use aarch64_simd_imm_zero. 14971 * config/aarch64/aarch64-sve.md: New file. 14972 * config/aarch64/aarch64.md: Include it. 14973 (VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers. 14974 (UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE) 14975 (UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI) 14976 (UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK) 14977 (UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants. 14978 (sve): New attribute. 14979 (enabled): Disable instructions with the sve attribute unless 14980 TARGET_SVE. 14981 (movqi, movhi): Pass CONST_POLY_INT operaneds through 14982 aarch64_expand_mov_immediate. 14983 (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle 14984 CNT[BHSD] immediates. 14985 (movti): Split CONST_POLY_INT moves into two halves. 14986 (add<mode>3): Accept aarch64_pluslong_or_poly_operand. 14987 Split additions that need a temporary here if the destination 14988 is the stack pointer. 14989 (*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates. 14990 (*add<mode>3_poly_1): New instruction. 14991 (set_clobber_cc): New expander. 14992 149932018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 14994 14995 * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes 14996 parameter and use it instead of GET_MODE_SIZE (innermode). Use 14997 inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode). 14998 Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of 14999 GET_MODE_NUNITS (innermode). Also add a first_elem parameter. 15000 Change innermode from fixed_mode_size to machine_mode. 15001 (simplify_subreg): Update call accordingly. Handle a constant-sized 15002 subreg of a variable-length CONST_VECTOR. 15003 150042018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 15005 Alan Hayward <alan.hayward@arm.com> 15006 David Sherwood <david.sherwood@arm.com> 15007 15008 * tree-ssa-address.c (mem_ref_valid_without_offset_p): New function. 15009 (add_offset_to_base): New function, split out from... 15010 (create_mem_ref): ...here. When handling a scale other than 1, 15011 check first whether the address is valid without the offset. 15012 Add it into the base if so, leaving the index and scale as-is. 15013 150142018-01-12 Jakub Jelinek <jakub@redhat.com> 15015 15016 PR c++/83778 15017 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call 15018 fold_for_warn before checking if arg2 is INTEGER_CST. 15019 150202018-01-12 Segher Boessenkool <segher@kernel.crashing.org> 15021 15022 * config/rs6000/predicates.md (load_multiple_operation): Delete. 15023 (store_multiple_operation): Delete. 15024 * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING. 15025 * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete. 15026 * config/rs6000/rs6000-string.c (expand_block_move): Delete everything 15027 guarded by TARGET_STRING. 15028 (rs6000_output_load_multiple): Delete. 15029 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete 15030 OPTION_MASK_STRING / TARGET_STRING handling. 15031 (print_operand) <'N', 'O'>: Add comment that these are unused now. 15032 (const rs6000_opt_masks) <"string">: Change mask to 0. 15033 * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING. 15034 (MASK_STRING): Delete. 15035 * config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING 15036 parts. Simplify. 15037 (load_multiple): Delete. 15038 (*ldmsi8): Delete. 15039 (*ldmsi7): Delete. 15040 (*ldmsi6): Delete. 15041 (*ldmsi5): Delete. 15042 (*ldmsi4): Delete. 15043 (*ldmsi3): Delete. 15044 (store_multiple): Delete. 15045 (*stmsi8): Delete. 15046 (*stmsi7): Delete. 15047 (*stmsi6): Delete. 15048 (*stmsi5): Delete. 15049 (*stmsi4): Delete. 15050 (*stmsi3): Delete. 15051 (movmemsi_8reg): Delete. 15052 (corresponding unnamed define_insn): Delete. 15053 (movmemsi_6reg): Delete. 15054 (corresponding unnamed define_insn): Delete. 15055 (movmemsi_4reg): Delete. 15056 (corresponding unnamed define_insn): Delete. 15057 (movmemsi_2reg): Delete. 15058 (corresponding unnamed define_insn): Delete. 15059 (movmemsi_1reg): Delete. 15060 (corresponding unnamed define_insn): Delete. 15061 * config/rs6000/rs6000.opt (mno-string): New. 15062 (mstring): Replace by deprecation warning stub. 15063 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring. 15064 150652018-01-12 Jakub Jelinek <jakub@redhat.com> 15066 15067 * regrename.c (regrename_do_replace): If replacing the same 15068 reg multiple times, try to reuse last created gen_raw_REG. 15069 15070 PR debug/81155 15071 * bb-reorder.c (pass_partition_blocks::gate): In lto don't partition 15072 main to workaround a bug in GDB. 15073 150742018-01-12 Tom de Vries <tom@codesourcery.com> 15075 15076 PR target/83737 15077 * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap. 15078 150792018-01-12 Vladimir Makarov <vmakarov@redhat.com> 15080 15081 PR rtl-optimization/80481 15082 * ira-color.c (get_cap_member): New function. 15083 (allocnos_conflict_by_live_ranges_p): Use it. 15084 (slot_coalesced_allocno_live_ranges_intersect_p): Add assert. 15085 (setup_slot_coalesced_allocno_live_ranges): Ditto. 15086 150872018-01-12 Uros Bizjak <ubizjak@gmail.com> 15088 15089 PR target/83628 15090 * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern. 15091 (*saddl_se_1): Ditto. 15092 (*ssubsi_1): Ditto. 15093 (*ssubl_se_1): Ditto. 15094 150952018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 15096 15097 * tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest 15098 rather than wi::to_widest for DR_INITs. 15099 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Use 15100 wi::to_poly_offset rather than wi::to_offset for DR_INIT. 15101 (vect_analyze_data_ref_accesses): Require both DR_INITs to be 15102 INTEGER_CSTs. 15103 (vect_analyze_group_access_1): Note that here. 15104 151052018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 15106 15107 * tree-vectorizer.c (get_vec_alignment_for_array_type): Handle 15108 polynomial type sizes. 15109 151102018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 15111 15112 * gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a 15113 poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size. 15114 (gimple_add_tmp_var): Likewise. 15115 151162018-01-12 Martin Liska <mliska@suse.cz> 15117 15118 * gimple.c (gimple_alloc_counts): Use uint64_t instead of int. 15119 (gimple_alloc_sizes): Likewise. 15120 (dump_gimple_statistics): Use PRIu64 in printf format. 15121 * gimple.h: Change uint64_t to int. 15122 151232018-01-12 Martin Liska <mliska@suse.cz> 15124 15125 * tree-core.h: Use uint64_t instead of int. 15126 * tree.c (tree_node_counts): Likewise. 15127 (tree_node_sizes): Likewise. 15128 (dump_tree_statistics): Use PRIu64 in printf format. 15129 151302018-01-12 Martin Liska <mliska@suse.cz> 15131 15132 * Makefile.in: As qsort_chk is implemented in vec.c, add 15133 vec.o to linkage of gencfn-macros. 15134 * tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's 15135 passing the info to record_node_allocation_statistics. 15136 (test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration 15137 and pass the info. 15138 * ggc-common.c (struct ggc_usage): Add operator== and use 15139 it in operator< and compare function. 15140 * mem-stats.h (struct mem_usage): Likewise. 15141 * vec.c (struct vec_usage): Remove operator< and compare 15142 function. Can be simply inherited. 15143 151442018-01-12 Martin Jambor <mjambor@suse.cz> 15145 15146 PR target/81616 15147 * params.def: New parameter PARAM_AVOID_FMA_MAX_BITS. 15148 * tree-ssa-math-opts.c: Include domwalk.h. 15149 (convert_mult_to_fma_1): New function. 15150 (fma_transformation_info): New type. 15151 (fma_deferring_state): Likewise. 15152 (cancel_fma_deferring): New function. 15153 (result_of_phi): Likewise. 15154 (last_fma_candidate_feeds_initial_phi): Likewise. 15155 (convert_mult_to_fma): Added deferring logic, split actual 15156 transformation to convert_mult_to_fma_1. 15157 (math_opts_dom_walker): New type. 15158 (math_opts_dom_walker::after_dom_children): New method, body moved 15159 here from pass_optimize_widening_mul::execute, added deferring logic 15160 bits. 15161 (pass_optimize_widening_mul::execute): Moved most of code to 15162 math_opts_dom_walker::after_dom_children. 15163 * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New. 15164 * config/i386/i386.c (ix86_option_override_internal): Added 15165 maybe_setting of PARAM_AVOID_FMA_MAX_BITS. 15166 151672018-01-12 Richard Biener <rguenther@suse.de> 15168 15169 PR debug/83157 15170 * dwarf2out.c (gen_variable_die): Do not reset old_die for 15171 inline instance vars. 15172 151732018-01-12 Oleg Endo <olegendo@gcc.gnu.org> 15174 15175 PR target/81819 15176 * config/rx/rx.c (rx_is_restricted_memory_address): 15177 Handle SUBREG case. 15178 151792018-01-12 Richard Biener <rguenther@suse.de> 15180 15181 PR tree-optimization/80846 15182 * target.def (split_reduction): New target hook. 15183 * targhooks.c (default_split_reduction): New function. 15184 * targhooks.h (default_split_reduction): Declare. 15185 * tree-vect-loop.c (vect_create_epilog_for_reduction): If the 15186 target requests first reduce vectors by combining low and high 15187 parts. 15188 * tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust. 15189 (get_vectype_for_scalar_type_and_size): Export. 15190 * tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare. 15191 * doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document. 15192 * doc/tm.texi: Regenerate. 15193 * config/i386/i386.c (ix86_split_reduction): Implement 15194 TARGET_VECTORIZE_SPLIT_REDUCTION. 15195 151962018-01-12 Eric Botcazou <ebotcazou@adacore.com> 15197 15198 PR target/83368 15199 * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM 15200 in PIC mode except for TARGET_VXWORKS_RTP. 15201 * config/sparc/sparc.c: Include cfgrtl.h. 15202 (TARGET_INIT_PIC_REG): Define. 15203 (TARGET_USE_PSEUDO_PIC_REG): Likewise. 15204 (sparc_pic_register_p): New predicate. 15205 (sparc_legitimate_address_p): Use it. 15206 (sparc_legitimize_pic_address): Likewise. 15207 (sparc_delegitimize_address): Likewise. 15208 (sparc_mode_dependent_address_p): Likewise. 15209 (gen_load_pcrel_sym): Remove 4th parameter. 15210 (load_got_register): Adjust call to above. Remove obsolete stuff. 15211 (sparc_expand_prologue): Do not call load_got_register here. 15212 (sparc_flat_expand_prologue): Likewise. 15213 (sparc_output_mi_thunk): Set the pic_offset_table_rtx object. 15214 (sparc_use_pseudo_pic_reg): New function. 15215 (sparc_init_pic_reg): Likewise. 15216 * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. 15217 (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP. 15218 152192018-01-12 Christophe Lyon <christophe.lyon@linaro.org> 15220 15221 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): 15222 Add item for branch_cost. 15223 152242018-01-12 Eric Botcazou <ebotcazou@adacore.com> 15225 15226 PR rtl-optimization/83565 15227 * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do 15228 not extend the result to a larger mode for rotate operations. 15229 (num_sign_bit_copies1): Likewise. 15230 152312018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 15232 15233 PR target/40411 15234 * config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or 15235 -symbolic. 15236 Use values-Xc.o for -pedantic. 15237 Link with values-xpg4.o for C90, values-xpg6.o otherwise. 15238 152392018-01-12 Martin Liska <mliska@suse.cz> 15240 15241 PR ipa/83054 15242 * ipa-devirt.c (final_warning_record::grow_type_warnings): 15243 New function. 15244 (possible_polymorphic_call_targets): Use it. 15245 (ipa_devirt): Likewise. 15246 152472018-01-12 Martin Liska <mliska@suse.cz> 15248 15249 * profile-count.h (enum profile_quality): Use 0 as invalid 15250 enum value of profile_quality. 15251 152522018-01-12 Chung-Ju Wu <jasonwucj@gmail.com> 15253 15254 * doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and 15255 -mext-string options. 15256 152572018-01-12 Richard Biener <rguenther@suse.de> 15258 15259 * lto-streamer-out.c (DFS::DFS_write_tree_body): Process 15260 DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P. 15261 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): 15262 Likewise. 15263 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. 15264 152652018-01-11 Michael Meissner <meissner@linux.vnet.ibm.com> 15266 15267 * configure.ac (--with-long-double-format): Add support for the 15268 configuration option to change the default long double format on 15269 PowerPC systems. 15270 * config.gcc (powerpc*-linux*-*): Likewise. 15271 * configure: Regenerate. 15272 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long 15273 double is IEEE, define __KC__ and __KF__ to allow floatn.h to be 15274 used without modification. 15275 152762018-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 15277 15278 * config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define. 15279 (SPEC_BARRIER): New instantiation of BU_P7_MISC_X. 15280 * config/rs6000/rs6000.c (rs6000_expand_builtin): Handle 15281 MISC_BUILTIN_SPEC_BARRIER. 15282 (rs6000_init_builtins): Likewise. 15283 * config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV 15284 enum value. 15285 (speculation_barrier): New define_insn. 15286 * doc/extend.texi: Document __builtin_speculation_barrier. 15287 152882018-01-11 Jakub Jelinek <jakub@redhat.com> 15289 15290 PR target/83203 15291 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var 15292 is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0. 15293 * config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode 15294 iterators. 15295 (ssescalarmodesuffix): Add 512-bit vectors. Use "d" or "q" for 15296 integral modes instead of "ss" and "sd". 15297 (vec_set<mode>_0): New define_insns for 256-bit and 512-bit 15298 vectors with 32-bit and 64-bit elements. 15299 (vecdupssescalarmodesuffix): New mode attribute. 15300 (vec_dup<mode>): Use it. 15301 153022018-01-11 H.J. Lu <hongjiu.lu@intel.com> 15303 15304 PR target/83330 15305 * config/i386/i386.c (ix86_compute_frame_layout): Align stack 15306 frame if argument is passed on stack. 15307 153082018-01-11 Jakub Jelinek <jakub@redhat.com> 15309 15310 PR target/82682 15311 * ree.c (combine_reaching_defs): Optimize also 15312 reg2=exp; reg1=reg2; reg2=any_extend(reg1); into 15313 reg2=any_extend(exp); reg1=reg2;, formatting fix. 15314 153152018-01-11 Jan Hubicka <hubicka@ucw.cz> 15316 15317 PR middle-end/83189 15318 * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. 15319 153202018-01-11 Jan Hubicka <hubicka@ucw.cz> 15321 15322 PR middle-end/83718 15323 * tree-inline.c (copy_cfg_body): Adjust num&den for scaling 15324 after they are computed. 15325 153262018-01-11 Bin Cheng <bin.cheng@arm.com> 15327 15328 PR tree-optimization/83695 15329 * gimple-loop-linterchange.cc 15330 (tree_loop_interchange::interchange_loops): Call scev_reset_htab to 15331 reset cached scev information after interchange. 15332 (pass_linterchange::execute): Remove call to scev_reset_htab. 15333 153342018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15335 15336 * config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32, 15337 vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32, 15338 vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32, 15339 vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32, 15340 vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32, 15341 vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define. 15342 * config/arm/arm_neon_builtins.def (vfmal_lane_low, 15343 vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high, 15344 vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low, 15345 vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high, 15346 vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins. 15347 * config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes. 15348 (V_lane_reg): Likewise. 15349 * config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>): 15350 New define_expand. 15351 (neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise. 15352 (vfmal_lane_low<mode>_intrinsic, 15353 vfmal_lane_low<vfmlsel2><mode>_intrinsic, 15354 vfmal_lane_high<vfmlsel2><mode>_intrinsic, 15355 vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic, 15356 vfmsl_lane_low<vfmlsel2><mode>_intrinsic, 15357 vfmsl_lane_high<vfmlsel2><mode>_intrinsic, 15358 vfmsl_lane_high<mode>_intrinsic): New define_insns. 15359 153602018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15361 15362 * config/arm/arm-cpus.in (fp16fml): New feature. 15363 (ALL_SIMD): Add fp16fml. 15364 (armv8.2-a): Add fp16fml as an option. 15365 (armv8.3-a): Likewise. 15366 (armv8.4-a): Add fp16fml as part of fp16. 15367 * config/arm/arm.h (TARGET_FP16FML): Define. 15368 * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML 15369 when appropriate. 15370 * config/arm/arm-modes.def (V2HF): Define. 15371 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, 15372 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, 15373 vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define. 15374 * config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high, 15375 vfmsl_low, vfmsl_high): New set of builtins. 15376 * config/arm/iterators.md (PLUSMINUS): New code iterator. 15377 (vfml_op): New code attribute. 15378 (VFMLHALVES): New int iterator. 15379 (VFML, VFMLSEL): New mode attributes. 15380 (V_reg): Define mapping for V2HF. 15381 (V_hi, V_lo): New mode attributes. 15382 (VF_constraint): Likewise. 15383 (vfml_half, vfml_half_selector): New int attributes. 15384 * config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New 15385 define_expand. 15386 (vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic, 15387 vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic): 15388 New define_insn. 15389 * config/arm/t-arm-elf (v8_fps): Add fp16fml. 15390 * config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml. 15391 * config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs. 15392 * doc/invoke.texi (ARM Options): Document fp16fml. Update armv8.4-a 15393 documentation. 15394 * doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon): 15395 Document new effective target and option set. 15396 153972018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 15398 15399 * config/arm/arm-cpus.in (armv8_4): New feature. 15400 (ARMv8_4a): New fgroup. 15401 (armv8.4-a): New arch. 15402 * config/arm/arm-tables.opt: Regenerate. 15403 * config/arm/t-aprofile: Add matching rules for -march=armv8.4-a. 15404 * config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a. 15405 * config/arm/t-multilib (v8_4_a_simd_variants): New variable. 15406 Add matching rules for -march=armv8.4-a and extensions. 15407 * doc/invoke.texi (ARM Options): Document -march=armv8.4-a. 15408 154092018-01-11 Oleg Endo <olegendo@gcc.gnu.org> 15410 15411 PR target/81821 15412 * config/rx/rx.md (BW): New mode attribute. 15413 (sync_lock_test_and_setsi): Add mode suffix to insn output. 15414 154152018-01-11 Richard Biener <rguenther@suse.de> 15416 15417 PR tree-optimization/83435 15418 * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges. 15419 * graphite-scop-detection.c (scop_detection::get_sese): Likewise. 15420 * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear. 15421 154222018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 15423 Alan Hayward <alan.hayward@arm.com> 15424 David Sherwood <david.sherwood@arm.com> 15425 15426 * config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset 15427 field. 15428 (aarch64_classify_address): Initialize it. Track polynomial offsets. 15429 (aarch64_print_address_internal): Use it to check for a zero offset. 15430 154312018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 15432 Alan Hayward <alan.hayward@arm.com> 15433 David Sherwood <david.sherwood@arm.com> 15434 15435 * config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2. 15436 * config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset): 15437 Return a poly_int64 rather than a HOST_WIDE_INT. 15438 (aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64 15439 rather than a HOST_WIDE_INT. 15440 * config/aarch64/aarch64.h (aarch64_frame): Protect with 15441 HAVE_POLY_INT_H rather than HOST_WIDE_INT. Change locals_offset, 15442 hard_fp_offset, frame_size, initial_adjust, callee_offset and 15443 final_offset from HOST_WIDE_INT to poly_int64. 15444 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use 15445 to_constant when getting the number of units in an Advanced SIMD 15446 mode. 15447 (aarch64_builtin_vectorized_function): Check for a constant number 15448 of units. 15449 * config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial 15450 GET_MODE_SIZE. 15451 (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits 15452 attribute instead of GET_MODE_NUNITS. 15453 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) 15454 (aarch64_class_max_nregs): Use the constant_lowest_bound of the 15455 GET_MODE_SIZE for fixed-size registers. 15456 (aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p. 15457 (aarch64_hard_regno_call_part_clobbered, aarch64_classify_index) 15458 (aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address) 15459 (aarch64_legitimize_address_displacement, aarch64_secondary_reload) 15460 (aarch64_print_operand, aarch64_print_address_internal) 15461 (aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost) 15462 (aarch64_short_vector_p, aapcs_vfp_sub_candidate) 15463 (aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp): 15464 Handle polynomial GET_MODE_SIZE. 15465 (aarch64_hard_regno_caller_save_mode): Likewise. Return modes 15466 wider than SImode without modification. 15467 (tls_symbolic_operand_type): Use strip_offset instead of split_const. 15468 (aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward) 15469 (aarch64_gimplify_va_arg_expr): Assert that we don't yet handle 15470 passing and returning SVE modes. 15471 (aarch64_function_value, aarch64_layout_arg): Use gen_int_mode 15472 rather than GEN_INT. 15473 (aarch64_emit_probe_stack_range): Take the size as a poly_int64 15474 rather than a HOST_WIDE_INT, but call sorry if it isn't constant. 15475 (aarch64_allocate_and_probe_stack_space): Likewise. 15476 (aarch64_layout_frame): Cope with polynomial offsets. 15477 (aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the 15478 start_offset as a poly_int64 rather than a HOST_WIDE_INT. Track 15479 polynomial offsets. 15480 (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p) 15481 (aarch64_offset_7bit_signed_scaled_p): Take the offset as a 15482 poly_int64 rather than a HOST_WIDE_INT. 15483 (aarch64_get_separate_components, aarch64_process_components) 15484 (aarch64_expand_prologue, aarch64_expand_epilogue) 15485 (aarch64_use_return_insn_p): Handle polynomial frame offsets. 15486 (aarch64_anchor_offset): New function, split out from... 15487 (aarch64_legitimize_address): ...here. 15488 (aarch64_builtin_vectorization_cost): Handle polynomial 15489 TYPE_VECTOR_SUBPARTS. 15490 (aarch64_simd_check_vect_par_cnst_half): Handle polynomial 15491 GET_MODE_NUNITS. 15492 (aarch64_simd_make_constant, aarch64_expand_vector_init): Get the 15493 number of elements from the PARALLEL rather than the mode. 15494 (aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE 15495 rather than GET_MODE_BITSIZE. 15496 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext) 15497 (aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip) 15498 (aarch64_expand_vec_perm_const_1): Handle polynomial 15499 d->perm.length () and d->perm elements. 15500 (aarch64_evpc_tbl): Likewise. Use nelt rather than GET_MODE_NUNITS. 15501 Apply to_constant to d->perm elements. 15502 (aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle 15503 polynomial CONST_VECTOR_NUNITS. 15504 (aarch64_move_pointer): Take amount as a poly_int64 rather 15505 than an int. 15506 (aarch64_progress_pointer): Avoid temporary variable. 15507 * config/aarch64/aarch64.md (aarch64_<crc_variant>): Use 15508 the mode attribute instead of GET_MODE. 15509 155102018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 15511 Alan Hayward <alan.hayward@arm.com> 15512 David Sherwood <david.sherwood@arm.com> 15513 15514 * config/aarch64/aarch64.c (aarch64_force_temporary): Assert that 15515 x exists before using it. 15516 (aarch64_add_constant_internal): Rename to... 15517 (aarch64_add_offset_1): ...this. Replace regnum with separate 15518 src and dest rtxes. Handle the case in which they're different, 15519 including when the offset is zero. Replace scratchreg with an rtx. 15520 Use 2 additions if there is no spare register into which we can 15521 move a 16-bit constant. 15522 (aarch64_add_constant): Delete. 15523 (aarch64_add_offset): Replace reg with separate src and dest 15524 rtxes. Take a poly_int64 offset instead of a HOST_WIDE_INT. 15525 Use aarch64_add_offset_1. 15526 (aarch64_add_sp, aarch64_sub_sp): Take the scratch register as 15527 an rtx rather than an int. Take the delta as a poly_int64 15528 rather than a HOST_WIDE_INT. Use aarch64_add_offset. 15529 (aarch64_expand_mov_immediate): Update uses of aarch64_add_offset. 15530 (aarch64_expand_prologue): Update calls to aarch64_sub_sp, 15531 aarch64_allocate_and_probe_stack_space and aarch64_add_offset. 15532 (aarch64_expand_epilogue): Update calls to aarch64_add_offset 15533 and aarch64_add_sp. 15534 (aarch64_output_mi_thunk): Use aarch64_add_offset rather than 15535 aarch64_add_constant. 15536 155372018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 15538 15539 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): 15540 Use scalar_float_mode. 15541 155422018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 15543 15544 * config/aarch64/aarch64-simd.md 15545 (aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS. 15546 (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise. 15547 (aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise. 15548 (aarch64_fml<f16mac1>l_lane_highv2sf): Likewise. 15549 (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise. 15550 (aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise. 15551 (aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise. 15552 (aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise. 15553 (aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise. 15554 (aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise. 15555 155562018-01-11 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 15557 15558 PR target/83514 15559 * config/arm/arm.c (arm_declare_function_name): Set arch_to_print if 15560 targ_options->x_arm_arch_string is non NULL. 15561 155622018-01-11 Tamar Christina <tamar.christina@arm.com> 15563 15564 * config/aarch64/aarch64.h 15565 (AARCH64_FL_FOR_ARCH8_4): Add AARCH64_FL_DOTPROD. 15566 155672018-01-11 Sudakshina Das <sudi.das@arm.com> 15568 15569 PR target/82096 15570 * expmed.c (emit_store_flag_force): Swap if const op0 15571 and change VOIDmode to mode of op0. 15572 155732018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 15574 15575 PR rtl-optimization/83761 15576 * caller-save.c (replace_reg_with_saved_mem): Pass bits rather 15577 than bytes to mode_for_size. 15578 155792018-01-10 Jan Hubicka <hubicka@ucw.cz> 15580 15581 PR middle-end/83189 15582 * gfortran.fortran-torture/compile/pr83189.f90: New testcase. 15583 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero 15584 profile. 15585 155862018-01-10 Jan Hubicka <hubicka@ucw.cz> 15587 15588 PR middle-end/83575 15589 * cfgrtl.c (rtl_verify_edges): Only verify fixability of partition 15590 when in layout mode. 15591 (cfg_layout_finalize): Do not verify cfg before we are out of layout. 15592 * cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing 15593 partition fixup. 15594 155952018-01-10 Michael Collison <michael.collison@arm.com> 15596 15597 * config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE. 15598 * config/aarch64/aarch64-option-extension.def: Add 15599 AARCH64_OPT_EXTENSION of 'fp16fml'. 15600 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 15601 (__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true. 15602 * config/aarch64/predicates.md (aarch64_lane_imm3): New predicate. 15603 * config/aarch64/constraints.md (Ui7): New constraint. 15604 * config/aarch64/iterators.md (VFMLA_W): New mode iterator. 15605 (VFMLA_SEL_W): Ditto. 15606 (f16quad): Ditto. 15607 (f16mac1): Ditto. 15608 (VFMLA16_LOW): New int iterator. 15609 (VFMLA16_HIGH): Ditto. 15610 (UNSPEC_FMLAL): New unspec. 15611 (UNSPEC_FMLSL): Ditto. 15612 (UNSPEC_FMLAL2): Ditto. 15613 (UNSPEC_FMLSL2): Ditto. 15614 (f16mac): New code attribute. 15615 * config/aarch64/aarch64-simd-builtins.def 15616 (aarch64_fmlal_lowv2sf): Ditto. 15617 (aarch64_fmlsl_lowv2sf): Ditto. 15618 (aarch64_fmlalq_lowv4sf): Ditto. 15619 (aarch64_fmlslq_lowv4sf): Ditto. 15620 (aarch64_fmlal_highv2sf): Ditto. 15621 (aarch64_fmlsl_highv2sf): Ditto. 15622 (aarch64_fmlalq_highv4sf): Ditto. 15623 (aarch64_fmlslq_highv4sf): Ditto. 15624 (aarch64_fmlal_lane_lowv2sf): Ditto. 15625 (aarch64_fmlsl_lane_lowv2sf): Ditto. 15626 (aarch64_fmlal_laneq_lowv2sf): Ditto. 15627 (aarch64_fmlsl_laneq_lowv2sf): Ditto. 15628 (aarch64_fmlalq_lane_lowv4sf): Ditto. 15629 (aarch64_fmlsl_lane_lowv4sf): Ditto. 15630 (aarch64_fmlalq_laneq_lowv4sf): Ditto. 15631 (aarch64_fmlsl_laneq_lowv4sf): Ditto. 15632 (aarch64_fmlal_lane_highv2sf): Ditto. 15633 (aarch64_fmlsl_lane_highv2sf): Ditto. 15634 (aarch64_fmlal_laneq_highv2sf): Ditto. 15635 (aarch64_fmlsl_laneq_highv2sf): Ditto. 15636 (aarch64_fmlalq_lane_highv4sf): Ditto. 15637 (aarch64_fmlsl_lane_highv4sf): Ditto. 15638 (aarch64_fmlalq_laneq_highv4sf): Ditto. 15639 (aarch64_fmlsl_laneq_highv4sf): Ditto. 15640 * config/aarch64/aarch64-simd.md: 15641 (aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern. 15642 (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto. 15643 (aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto. 15644 (aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto. 15645 (aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto. 15646 (aarch64_fml<f16mac1>l_lane_highv2sf): Ditto. 15647 (aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto. 15648 (aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto. 15649 (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto. 15650 (aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto. 15651 (aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto. 15652 (aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto. 15653 (aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto. 15654 (aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto. 15655 (aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto. 15656 (aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto. 15657 (aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto. 15658 (aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto. 15659 (aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto. 15660 (aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto. 15661 * config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic. 15662 (vfmlsl_low_u32): Ditto. 15663 (vfmlalq_low_u32): Ditto. 15664 (vfmlslq_low_u32): Ditto. 15665 (vfmlal_high_u32): Ditto. 15666 (vfmlsl_high_u32): Ditto. 15667 (vfmlalq_high_u32): Ditto. 15668 (vfmlslq_high_u32): Ditto. 15669 (vfmlal_lane_low_u32): Ditto. 15670 (vfmlsl_lane_low_u32): Ditto. 15671 (vfmlal_laneq_low_u32): Ditto. 15672 (vfmlsl_laneq_low_u32): Ditto. 15673 (vfmlalq_lane_low_u32): Ditto. 15674 (vfmlslq_lane_low_u32): Ditto. 15675 (vfmlalq_laneq_low_u32): Ditto. 15676 (vfmlslq_laneq_low_u32): Ditto. 15677 (vfmlal_lane_high_u32): Ditto. 15678 (vfmlsl_lane_high_u32): Ditto. 15679 (vfmlal_laneq_high_u32): Ditto. 15680 (vfmlsl_laneq_high_u32): Ditto. 15681 (vfmlalq_lane_high_u32): Ditto. 15682 (vfmlslq_lane_high_u32): Ditto. 15683 (vfmlalq_laneq_high_u32): Ditto. 15684 (vfmlslq_laneq_high_u32): Ditto. 15685 * config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag. 15686 (AARCH64_FL_FOR_ARCH8_4): New. 15687 (AARCH64_ISA_F16FML): New ISA flag. 15688 (TARGET_F16FML): New feature flag for fp16fml. 15689 (doc/invoke.texi): Document new fp16fml option. 15690 156912018-01-10 Michael Collison <michael.collison@arm.com> 15692 15693 * config/aarch64/aarch64-builtins.c: 15694 (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New. 15695 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 15696 (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true. 15697 * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags. 15698 (AARCH64_ISA_SHA3): New ISA flag. 15699 (TARGET_SHA3): New feature flag for sha3. 15700 * config/aarch64/iterators.md (sha512_op): New int attribute. 15701 (CRYPTO_SHA512): New int iterator. 15702 (UNSPEC_SHA512H): New unspec. 15703 (UNSPEC_SHA512H2): Ditto. 15704 (UNSPEC_SHA512SU0): Ditto. 15705 (UNSPEC_SHA512SU1): Ditto. 15706 * config/aarch64/aarch64-simd-builtins.def 15707 (aarch64_crypto_sha512hqv2di): New builtin. 15708 (aarch64_crypto_sha512h2qv2di): Ditto. 15709 (aarch64_crypto_sha512su0qv2di): Ditto. 15710 (aarch64_crypto_sha512su1qv2di): Ditto. 15711 (aarch64_eor3qv8hi): Ditto. 15712 (aarch64_rax1qv2di): Ditto. 15713 (aarch64_xarqv2di): Ditto. 15714 (aarch64_bcaxqv8hi): Ditto. 15715 * config/aarch64/aarch64-simd.md: 15716 (aarch64_crypto_sha512h<sha512_op>qv2di): New pattern. 15717 (aarch64_crypto_sha512su0qv2di): Ditto. 15718 (aarch64_crypto_sha512su1qv2di): Ditto. 15719 (aarch64_eor3qv8hi): Ditto. 15720 (aarch64_rax1qv2di): Ditto. 15721 (aarch64_xarqv2di): Ditto. 15722 (aarch64_bcaxqv8hi): Ditto. 15723 * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic. 15724 (vsha512h2q_u64): Ditto. 15725 (vsha512su0q_u64): Ditto. 15726 (vsha512su1q_u64): Ditto. 15727 (veor3q_u16): Ditto. 15728 (vrax1q_u64): Ditto. 15729 (vxarq_u64): Ditto. 15730 (vbcaxq_u16): Ditto. 15731 * config/arm/types.md (crypto_sha512): New type attribute. 15732 (crypto_sha3): Ditto. 15733 (doc/invoke.texi): Document new sha3 option. 15734 157352018-01-10 Michael Collison <michael.collison@arm.com> 15736 15737 * config/aarch64/aarch64-builtins.c: 15738 (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New. 15739 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 15740 (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true. 15741 (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true. 15742 * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags. 15743 (AARCH64_ISA_SM4): New ISA flag. 15744 (TARGET_SM4): New feature flag for sm4. 15745 * config/aarch64/aarch64-simd-builtins.def 15746 (aarch64_sm3ss1qv4si): Ditto. 15747 (aarch64_sm3tt1aq4si): Ditto. 15748 (aarch64_sm3tt1bq4si): Ditto. 15749 (aarch64_sm3tt2aq4si): Ditto. 15750 (aarch64_sm3tt2bq4si): Ditto. 15751 (aarch64_sm3partw1qv4si): Ditto. 15752 (aarch64_sm3partw2qv4si): Ditto. 15753 (aarch64_sm4eqv4si): Ditto. 15754 (aarch64_sm4ekeyqv4si): Ditto. 15755 * config/aarch64/aarch64-simd.md: 15756 (aarch64_sm3ss1qv4si): Ditto. 15757 (aarch64_sm3tt<sm3tt_op>qv4si): Ditto. 15758 (aarch64_sm3partw<sm3part_op>qv4si): Ditto. 15759 (aarch64_sm4eqv4si): Ditto. 15760 (aarch64_sm4ekeyqv4si): Ditto. 15761 * config/aarch64/iterators.md (sm3tt_op): New int iterator. 15762 (sm3part_op): Ditto. 15763 (CRYPTO_SM3TT): Ditto. 15764 (CRYPTO_SM3PART): Ditto. 15765 (UNSPEC_SM3SS1): New unspec. 15766 (UNSPEC_SM3TT1A): Ditto. 15767 (UNSPEC_SM3TT1B): Ditto. 15768 (UNSPEC_SM3TT2A): Ditto. 15769 (UNSPEC_SM3TT2B): Ditto. 15770 (UNSPEC_SM3PARTW1): Ditto. 15771 (UNSPEC_SM3PARTW2): Ditto. 15772 (UNSPEC_SM4E): Ditto. 15773 (UNSPEC_SM4EKEY): Ditto. 15774 * config/aarch64/constraints.md (Ui2): New constraint. 15775 * config/aarch64/predicates.md (aarch64_imm2): New predicate. 15776 * config/arm/types.md (crypto_sm3): New type attribute. 15777 (crypto_sm4): Ditto. 15778 * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic. 15779 (vsm3tt1aq_u32): Ditto. 15780 (vsm3tt1bq_u32): Ditto. 15781 (vsm3tt2aq_u32): Ditto. 15782 (vsm3tt2bq_u32): Ditto. 15783 (vsm3partw1q_u32): Ditto. 15784 (vsm3partw2q_u32): Ditto. 15785 (vsm4eq_u32): Ditto. 15786 (vsm4ekeyq_u32): Ditto. 15787 (doc/invoke.texi): Document new sm4 option. 15788 157892018-01-10 Michael Collison <michael.collison@arm.com> 15790 15791 * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture. 15792 * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag. 15793 (AARCH64_FL_FOR_ARCH8_4): New. 15794 (AARCH64_FL_V8_4): New flag. 15795 (doc/invoke.texi): Document new armv8.4-a option. 15796 157972018-01-10 Michael Collison <michael.collison@arm.com> 15798 15799 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 15800 (__ARM_FEATURE_AES): Define if TARGET_AES is true. 15801 (__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true. 15802 * config/aarch64/aarch64-option-extension.def: Add 15803 AARCH64_OPT_EXTENSION of 'sha2'. 15804 (aes): Add AARCH64_OPT_EXTENSION of 'aes'. 15805 (crypto): Disable sha2 and aes if crypto disabled. 15806 (crypto): Enable aes and sha2 if enabled. 15807 (simd): Disable sha2 and aes if simd disabled. 15808 * config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2): 15809 New flags. 15810 (AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags. 15811 (TARGET_SHA2): New feature flag for sha2. 15812 (TARGET_AES): New feature flag for aes. 15813 * config/aarch64/aarch64-simd.md: 15814 (aarch64_crypto_aes<aes_op>v16qi): Make pattern 15815 conditional on TARGET_AES. 15816 (aarch64_crypto_aes<aesmc_op>v16qi): Ditto. 15817 (aarch64_crypto_sha1hsi): Make pattern conditional 15818 on TARGET_SHA2. 15819 (aarch64_crypto_sha1hv4si): Ditto. 15820 (aarch64_be_crypto_sha1hv4si): Ditto. 15821 (aarch64_crypto_sha1su1v4si): Ditto. 15822 (aarch64_crypto_sha1<sha1_op>v4si): Ditto. 15823 (aarch64_crypto_sha1su0v4si): Ditto. 15824 (aarch64_crypto_sha256h<sha256_op>v4si): Ditto. 15825 (aarch64_crypto_sha256su0v4si): Ditto. 15826 (aarch64_crypto_sha256su1v4si): Ditto. 15827 (doc/invoke.texi): Document new aes and sha2 options. 15828 158292018-01-10 Martin Sebor <msebor@redhat.com> 15830 15831 PR tree-optimization/83781 15832 * gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers 15833 as string arrays. 15834 158352018-01-11 Martin Sebor <msebor@gmail.com> 15836 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 15837 15838 PR tree-optimization/83501 15839 PR tree-optimization/81703 15840 15841 * tree-ssa-strlen.c (get_string_cst): Rename... 15842 (get_string_len): ...to this. Handle global constants. 15843 (handle_char_store): Adjust. 15844 158452018-01-10 Kito Cheng <kito.cheng@gmail.com> 15846 Jim Wilson <jimw@sifive.com> 15847 15848 * config/riscv/riscv-protos.h (riscv_output_return): New. 15849 * config/riscv/riscv.c (struct machine_function): New naked_p field. 15850 (riscv_attribute_table, riscv_output_return), 15851 (riscv_handle_fndecl_attribute, riscv_naked_function_p), 15852 (riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New. 15853 (riscv_compute_frame_info): Only compute frame->mask if not a naked 15854 function. 15855 (riscv_expand_prologue): Add early return for naked function. 15856 (riscv_expand_epilogue): Likewise. 15857 (riscv_function_ok_for_sibcall): Return false for naked function. 15858 (riscv_set_current_function): New. 15859 (TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS), 15860 (TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New. 15861 * config/riscv/riscv.md (simple_return): Call riscv_output_return. 15862 * doc/extend.texi (RISC-V Function Attributes): New. 15863 158642018-01-10 Michael Meissner <meissner@linux.vnet.ibm.com> 15865 15866 * config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly 15867 check for 128-bit long double before checking TCmode. 15868 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for 15869 128-bit long doubles before checking TFmode or TCmode. 15870 (FLOAT128_IBM_P): Likewise. 15871 158722018-01-10 Martin Sebor <msebor@redhat.com> 15873 15874 PR tree-optimization/83671 15875 * builtins.c (c_strlen): Unconditionally return zero for the empty 15876 string. 15877 Use -Warray-bounds for warnings. 15878 * gimple-fold.c (get_range_strlen): Handle non-constant lengths 15879 for non-constant array indices with COMPONENT_REF, arrays of 15880 arrays, and pointers to arrays. 15881 (gimple_fold_builtin_strlen): Determine and set length range for 15882 non-constant character arrays. 15883 158842018-01-10 Aldy Hernandez <aldyh@redhat.com> 15885 15886 PR middle-end/81897 15887 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip 15888 empty blocks. 15889 158902018-01-10 Eric Botcazou <ebotcazou@adacore.com> 15891 15892 * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf. 15893 158942018-01-10 Peter Bergner <bergner@vnet.ibm.com> 15895 15896 PR target/83399 15897 * config/rs6000/rs6000.c (print_operand) <'y'>: Use 15898 VECTOR_MEM_ALTIVEC_OR_VSX_P. 15899 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use 15900 indexed_or_indirect_operand predicate. 15901 (*vsx_le_perm_load_<mode> for VSX_W): Likewise. 15902 (*vsx_le_perm_load_v8hi): Likewise. 15903 (*vsx_le_perm_load_v16qi): Likewise. 15904 (*vsx_le_perm_store_<mode> for VSX_D): Likewise. 15905 (*vsx_le_perm_store_<mode> for VSX_W): Likewise. 15906 (*vsx_le_perm_store_v8hi): Likewise. 15907 (*vsx_le_perm_store_v16qi): Likewise. 15908 (eight unnamed splitters): Likewise. 15909 159102018-01-10 Peter Bergner <bergner@vnet.ibm.com> 15911 15912 * config/rs6000/x86intrin.h: Change #warning to #error. Update message. 15913 * config/rs6000/emmintrin.h: Likewise. 15914 * config/rs6000/mmintrin.h: Likewise. 15915 * config/rs6000/xmmintrin.h: Likewise. 15916 159172018-01-10 David Malcolm <dmalcolm@redhat.com> 15918 15919 PR c++/43486 15920 * tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of 15921 "public_flag". 15922 * tree.c (tree_nop_conversion): Return true for location wrapper 15923 nodes. 15924 (maybe_wrap_with_location): New function. 15925 (selftest::check_strip_nops): New function. 15926 (selftest::test_location_wrappers): New function. 15927 (selftest::tree_c_tests): Call it. 15928 * tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro. 15929 (maybe_wrap_with_location): New decl. 15930 (EXPR_LOCATION_WRAPPER_P): New macro. 15931 (location_wrapper_p): New inline function. 15932 (tree_strip_any_location_wrapper): New inline function. 15933 159342018-01-10 H.J. Lu <hongjiu.lu@intel.com> 15935 15936 PR target/83735 15937 * config/i386/i386.c (ix86_compute_frame_layout): Always adjust 15938 stack_realign_offset for the largest alignment of stack slot 15939 actually used. 15940 (ix86_find_max_used_stack_alignment): New function. 15941 (ix86_finalize_stack_frame_flags): Use it. Set 15942 max_used_stack_alignment if we don't realign stack. 15943 * config/i386/i386.h (machine_function): Add 15944 max_used_stack_alignment. 15945 159462018-01-10 Christophe Lyon <christophe.lyon@linaro.org> 15947 15948 * config/arm/arm.opt (-mbranch-cost): New option. 15949 * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into 15950 account. 15951 159522018-01-10 Segher Boessenkool <segher@kernel.crashing.org> 15953 15954 PR target/83629 15955 * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b, 15956 load_toc_v4_PIC_3c): Wrap const term in CONST RTL. 15957 159582018-01-10 Richard Biener <rguenther@suse.de> 15959 15960 PR debug/83765 15961 * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration 15962 early out so it also covers the case where we have a non-NULL 15963 origin. 15964 159652018-01-10 Richard Sandiford <richard.sandiford@linaro.org> 15966 15967 PR tree-optimization/83753 15968 * tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS 15969 for non-strided grouped accesses if the number of elements is 1. 15970 159712018-01-10 Jan Hubicka <hubicka@ucw.cz> 15972 15973 PR target/81616 15974 * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. 15975 * i386.h (TARGET_USE_GATHER): Define. 15976 * x86-tune.def (X86_TUNE_USE_GATHER): New. 15977 159782018-01-10 Martin Liska <mliska@suse.cz> 15979 15980 PR bootstrap/82831 15981 * basic-block.h (CLEANUP_NO_PARTITIONING): New define. 15982 * bb-reorder.c (pass_reorder_blocks::execute): Do not clean up 15983 partitioning. 15984 * cfgcleanup.c (try_optimize_cfg): Fix up partitioning if 15985 CLEANUP_NO_PARTITIONING is not set. 15986 159872018-01-10 Richard Sandiford <richard.sandiford@linaro.org> 15988 15989 * doc/rtl.texi: Remove documentation of (const ...) wrappers 15990 for vectors, as a partial revert of r254296. 15991 * rtl.h (const_vec_p): Delete. 15992 (const_vec_duplicate_p): Don't test for vector CONSTs. 15993 (unwrap_const_vec_duplicate, const_vec_series_p): Likewise. 15994 * expmed.c (make_tree): Likewise. 15995 15996 Revert: 15997 * common.md (E, F): Use CONSTANT_P instead of checking for 15998 CONST_VECTOR. 15999 * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of 16000 checking for CONST_VECTOR. 16001 160022018-01-09 Jan Hubicka <hubicka@ucw.cz> 16003 16004 PR middle-end/83575 16005 * predict.c (force_edge_cold): Handle in more sane way edges 16006 with no prediction. 16007 160082018-01-09 Carl Love <cel@us.ibm.com> 16009 16010 * config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF, 16011 V4SI, V4SF types. 16012 (p8_vmrgew): Add support for V2DI, V2DF, V4SF types. 16013 * config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF, 16014 VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF, 16015 VMRGOW_V2DI, VMRGOW_V2DF. Remove definition for VMRGOW. 16016 * config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2, 16017 P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW): Add definitions. 16018 * config/rs6000/rs6000-protos.h: Add extern defition for 16019 rs6000_generate_float2_double_code. 16020 * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add 16021 function. 16022 * config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn. 16023 (float2_v2df): Add define_expand. 16024 160252018-01-09 Uros Bizjak <ubizjak@gmail.com> 16026 16027 PR target/83628 16028 * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of 16029 op_mode in the force_to_mode call. 16030 160312018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 16032 16033 * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p 16034 instead of checking each element individually. 16035 (aarch64_evpc_uzp): Likewise. 16036 (aarch64_evpc_zip): Likewise. 16037 (aarch64_evpc_ext): Likewise. 16038 (aarch64_evpc_rev): Likewise. 16039 (aarch64_evpc_dup): Test the encoding for a single duplicated element, 16040 instead of checking each element individually. Return true without 16041 generating rtl if 16042 (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test 16043 whether all selected elements come from the same input, instead of 16044 checking each element individually. Remove calls to gen_rtx_REG, 16045 start_sequence and end_sequence and instead assert that no rtl is 16046 generated. 16047 160482018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 16049 16050 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix 16051 order of HIGH and CONST checks. 16052 160532018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 16054 16055 * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable 16056 if the destination isn't an SSA_NAME. 16057 160582018-01-09 Richard Biener <rguenther@suse.de> 16059 16060 PR tree-optimization/83668 16061 * graphite.c (canonicalize_loop_closed_ssa): Add edge argument, 16062 move prologue... 16063 (canonicalize_loop_form): ... here, renamed from ... 16064 (canonicalize_loop_closed_ssa_form): ... this and amended to 16065 swap successor edges for loop exit blocks to make us use 16066 the RPO order we need for initial schedule generation. 16067 160682018-01-09 Joseph Myers <joseph@codesourcery.com> 16069 16070 PR tree-optimization/64811 16071 * match.pd: When optimizing comparisons with Inf, avoid 16072 introducing or losing exceptions from comparisons with NaN. 16073 160742018-01-09 Martin Liska <mliska@suse.cz> 16075 16076 PR sanitizer/82517 16077 * asan.c (shadow_mem_size): Add gcc_assert. 16078 160792018-01-09 Georg-Johann Lay <avr@gjlay.de> 16080 16081 Don't save registers in main(). 16082 16083 PR target/83738 16084 * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it. 16085 * config/avr/avr.opt (-mmain-is-OS_task): New target option. 16086 * config/avr/avr.c (avr_set_current_function): Don't error if 16087 naked, OS_task or OS_main are specified at the same time. 16088 (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task, 16089 OS_main. 16090 (avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task 16091 attribute. 16092 * common/config/avr/avr-common.c (avr_option_optimization_table): 16093 Switch on -mmain-is-OS_task for optimizing compilations. 16094 160952018-01-09 Richard Biener <rguenther@suse.de> 16096 16097 PR tree-optimization/83572 16098 * graphite.c: Include cfganal.h. 16099 (graphite_transform_loops): Connect infinite loops to exit 16100 and remove fake edges at the end. 16101 161022018-01-09 Jan Hubicka <hubicka@ucw.cz> 16103 16104 * ipa-inline.c (edge_badness): Revert accidental checkin. 16105 161062018-01-09 Jan Hubicka <hubicka@ucw.cz> 16107 16108 PR ipa/80763 16109 * ipa-comdats.c (set_comdat_group): Only set comdat group of real 16110 symbols; not inline clones. 16111 161122018-01-09 Jakub Jelinek <jakub@redhat.com> 16113 16114 PR target/83507 16115 * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move 16116 hard registers. Formatting fixes. 16117 16118 PR preprocessor/83722 16119 * gcc.c (try_generate_repro): Pass 16120 &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than 16121 &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to 16122 do_report_bug. 16123 161242018-01-08 Monk Chiang <sh.chiang04@gmail.com> 16125 Kito Cheng <kito.cheng@gmail.com> 16126 16127 * config/riscv/riscv.c (machine_function::is_leaf): Remove field. 16128 (riscv_leaf_function_p): Delete. 16129 (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE. 16130 161312018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 16132 16133 * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New 16134 function. 16135 (do_ifelse): New function. 16136 (do_isel): New function. 16137 (do_sub3): New function. 16138 (do_add3): New function. 16139 (do_load_mask_compare): New function. 16140 (do_overlap_load_compare): New function. 16141 (expand_compare_loop): New function. 16142 (expand_block_compare): Call expand_compare_loop() when appropriate. 16143 * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change 16144 option description. 16145 (-mblock-compare-inline-loop-limit): New option. 16146 161472018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 16148 16149 PR target/83677 16150 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal): 16151 Reverse order of second and third operands in first alternative. 16152 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order 16153 of first and second elements in UNSPEC_VPERMR vector. 16154 (altivec_expand_vec_perm_le): Likewise. 16155 161562018-01-08 Jeff Law <law@redhat.com> 16157 16158 PR rtl-optimizatin/81308 16159 * tree-switch-conversion.c (cfg_altered): New file scoped static. 16160 (process_switch): If group_case_labels makes a change, then set 16161 cfg_altered. 16162 (pass_convert_switch::execute): If a switch is converted, then 16163 set cfg_altered. Return TODO_cfg_cleanup if cfg_altered is true. 16164 16165 PR rtl-optimization/81308 16166 * recog.c (split_all_insns): Conditionally cleanup the CFG after 16167 splitting insns. 16168 161692018-01-08 Vidya Praveen <vidyapraveen@arm.com> 16170 16171 PR target/83663 - Revert r255946 16172 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code 16173 generation for cases where splatting a value is not useful. 16174 * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge 16175 across a vec_duplicate and a paradoxical subreg forming a vector 16176 mode to a vec_concat. 16177 161782018-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 16179 16180 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for 16181 -march=armv8.3-a variants. 16182 * config/arm/t-multilib: Likewise. 16183 * config/arm/t-arm-elf: Likewise. Handle dotprod extension. 16184 161852018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 16186 16187 * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it 16188 to generate rtl. 16189 (cceq_ior_compare_complement): Give it a name so I can use it, and 16190 change boolean_or_operator predicate to boolean_operator so it can 16191 be used to generate a crand. 16192 (eqne): New code iterator. 16193 (bd/bd_neg): New code_attrs. 16194 (<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into 16195 a single define_insn. 16196 (<bd>tf_<mode>): A new insn pattern for the conditional form branch 16197 decrement (bdnzt/bdnzf/bdzt/bdzf). 16198 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated 16199 with the new names of the branch decrement patterns, and added the 16200 names of the branch decrement conditional patterns. 16201 162022018-01-08 Richard Biener <rguenther@suse.de> 16203 16204 PR tree-optimization/83563 16205 * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV 16206 cache. 16207 162082018-01-08 Richard Biener <rguenther@suse.de> 16209 16210 PR middle-end/83713 16211 * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. 16212 162132018-01-08 Richard Biener <rguenther@suse.de> 16214 16215 PR tree-optimization/83685 16216 * tree-ssa-pre.c (create_expression_by_pieces): Do not insert 16217 references to abnormals. 16218 162192018-01-08 Richard Biener <rguenther@suse.de> 16220 16221 PR lto/83719 16222 * dwarf2out.c (output_indirect_strings): Handle empty 16223 skeleton_debug_str_hash. 16224 (dwarf2out_early_finish): Index strings for -gsplit-dwarf. 16225 162262018-01-08 Claudiu Zissulescu <claziss@synopsys.com> 16227 16228 * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete. 16229 (emit_store_direct): Likewise. 16230 (arc_trampoline_adjust_address): Likewise. 16231 (arc_asm_trampoline_template): New function. 16232 (arc_initialize_trampoline): Use asm_trampoline_template. 16233 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define. 16234 * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16. 16235 * config/arc/arc.md (flush_icache): Delete pattern. 16236 162372018-01-08 Claudiu Zissulescu <claziss@synopsys.com> 16238 16239 * config/arc/arc-c.def (__ARC_UNALIGNED__): New define. 16240 * config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using 16241 munaligned-access. 16242 162432018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> 16244 16245 PR target/83681 16246 * config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard 16247 by not USED_FOR_TARGET. 16248 (make_pass_resolve_sw_modes): Likewise. 16249 162502018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> 16251 16252 * config/nios2/nios2.h (nios2_section_threshold): Guard by not 16253 USED_FOR_TARGET. 16254 162552018-01-08 Richard Biener <rguenther@suse.de> 16256 16257 PR middle-end/83580 16258 * tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS. 16259 162602018-01-08 Richard Biener <rguenther@suse.de> 16261 16262 PR middle-end/83517 16263 * match.pd ((t * 2) / 2) -> t): Add missing :c. 16264 162652018-01-06 Aldy Hernandez <aldyh@redhat.com> 16266 16267 PR middle-end/81897 16268 * tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on 16269 basic blocks with a small number of successors. 16270 (convert_control_dep_chain_into_preds): Improve handling of 16271 forwarder blocks. 16272 (dump_predicates): Split apart into... 16273 (dump_pred_chain): ...here... 16274 (dump_pred_info): ...and here. 16275 (can_one_predicate_be_invalidated_p): Add debugging printfs. 16276 (can_chain_union_be_invalidated_p): Improve check for invalidation 16277 of paths. 16278 (uninit_uses_cannot_happen): Avoid unnecessary if 16279 convert_control_dep_chain_into_preds yielded nothing. 16280 162812018-01-06 Martin Sebor <msebor@redhat.com> 16282 16283 PR tree-optimization/83640 16284 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid 16285 subtracting negative offset from size. 16286 (builtin_access::overlap): Adjust offset bounds of the access to fall 16287 within the size of the object if possible. 16288 162892018-01-06 Richard Sandiford <richard.sandiford@linaro.org> 16290 16291 PR rtl-optimization/83699 16292 * expmed.c (extract_bit_field_1): Restrict the vector usage of 16293 extract_bit_field_as_subreg to cases in which the extracted 16294 value is also a vector. 16295 16296 * lra-constraints.c (process_alt_operands): Test for the equivalence 16297 substitutions when detecting a possible reload cycle. 16298 162992018-01-06 Jakub Jelinek <jakub@redhat.com> 16300 16301 PR debug/83480 16302 * toplev.c (process_options): Don't enable debug_nonbind_markers_p 16303 by default if flag_selective_schedling{,2}. Formatting fixes. 16304 16305 PR rtl-optimization/83682 16306 * rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE 16307 if it has non-VECTOR_MODE element mode. 16308 (vec_duplicate_p): Likewise. 16309 16310 PR middle-end/83694 16311 * cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode 16312 and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT. 16313 163142018-01-05 Jakub Jelinek <jakub@redhat.com> 16315 16316 PR target/83604 16317 * config/i386/i386-builtin.def 16318 (__builtin_ia32_vgf2p8affineinvqb_v64qi, 16319 __builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi): 16320 Require also OPTION_MASK_ISA_AVX512F in addition to 16321 OPTION_MASK_ISA_GFNI. 16322 (__builtin_ia32_vgf2p8affineinvqb_v16qi_mask, 16323 __builtin_ia32_vgf2p8affineqb_v16qi_mask): Require 16324 OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition 16325 to OPTION_MASK_ISA_GFNI. 16326 (__builtin_ia32_vgf2p8mulb_v32qi_mask): Require 16327 OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and 16328 OPTION_MASK_ISA_AVX512BW. 16329 (__builtin_ia32_vgf2p8mulb_v16qi_mask): Require 16330 OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in 16331 addition to OPTION_MASK_ISA_GFNI. 16332 (__builtin_ia32_vgf2p8affineinvqb_v16qi, 16333 __builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi): 16334 Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition 16335 to OPTION_MASK_ISA_GFNI. 16336 * config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being 16337 a requirement for all ISAs rather than any of them with a few 16338 exceptions. 16339 (ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before 16340 processing. 16341 (ix86_expand_builtin): Require all ISAs from builtin's isa and isa2 16342 bitmasks to be enabled with 3 exceptions, instead of requiring any 16343 enabled ISA with lots of exceptions. 16344 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, 16345 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>): 16346 Change avx512bw in isa attribute to avx512f. 16347 * config/i386/sgxintrin.h: Add license boilerplate. 16348 * config/i386/vaesintrin.h: Likewise. Fix macro spelling __AVX512F 16349 to __AVX512F__ and __AVX512VL to __AVX512VL__. 16350 (_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128, 16351 _mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not 16352 defined. 16353 * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, 16354 _mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable 16355 temporarily sse2 rather than sse if not enabled already. 16356 16357 PR target/83604 16358 * config/i386/sse.md (VI248_VLBW): Rename to ... 16359 (VI248_AVX512VL): ... this. Don't guard V32HI with TARGET_AVX512BW. 16360 (vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, 16361 vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, 16362 vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, 16363 vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL 16364 mode iterator instead of VI248_VLBW. 16365 163662018-01-05 Jan Hubicka <hubicka@ucw.cz> 16367 16368 * ipa-fnsummary.c (record_modified_bb_info): Add OP. 16369 (record_modified): Skip clobbers; add debug output. 16370 (param_change_prob): Use sreal frequencies. 16371 163722018-01-05 Richard Sandiford <richard.sandiford@linaro.org> 16373 16374 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't 16375 punt for user-aligned variables. 16376 163772018-01-05 Richard Sandiford <richard.sandiford@linaro.org> 16378 16379 * tree-chrec.c (chrec_contains_symbols): Return true for 16380 POLY_INT_CST. 16381 163822018-01-05 Sudakshina Das <sudi.das@arm.com> 16383 16384 PR target/82439 16385 * simplify-rtx.c (simplify_relational_operation_1): Add simplifications 16386 of (x|y) == x for BICS pattern. 16387 163882018-01-05 Jakub Jelinek <jakub@redhat.com> 16389 16390 PR tree-optimization/83605 16391 * gimple-ssa-strength-reduction.c: Include tree-eh.h. 16392 (find_candidates_dom_walker::before_dom_children): Ignore stmts that 16393 can throw. 16394 163952018-01-05 Sebastian Huber <sebastian.huber@embedded-brains.de> 16396 16397 * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. 16398 * config/epiphany/rtems.h: New file. 16399 164002018-01-04 Jakub Jelinek <jakub@redhat.com> 16401 Uros Bizjak <ubizjak@gmail.com> 16402 16403 PR target/83554 16404 * config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use 16405 QIreg_operand instead of register_operand predicate. 16406 * config/i386/i386.c (ix86_rop_should_change_byte_p, 16407 set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in 16408 comments instead of -fmitigate[-_]rop. 16409 164102018-01-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 16411 16412 PR bootstrap/81926 16413 * cgraphunit.c (symbol_table::compile): Switch to text_section 16414 before calling assembly_start debug hook. 16415 * run-rtl-passes.c (run_rtl_passes): Likewise. 16416 Include output.h. 16417 164182018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 16419 16420 * tree-vrp.c (extract_range_from_binary_expr_1): Check 16421 range_int_cst_p rather than !symbolic_range_p before calling 16422 extract_range_from_multiplicative_op_1. 16423 164242018-01-04 Jeff Law <law@redhat.com> 16425 16426 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove 16427 redundant test in assertion. 16428 164292018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 16430 16431 * doc/rtl.texi: Document machine_mode wrapper classes. 16432 164332018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 16434 16435 * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before 16436 using tree_to_uhwi. 16437 164382018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 16439 16440 * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow 16441 the VEC_PERM_EXPR fold to fail. 16442 164432018-01-04 Jakub Jelinek <jakub@redhat.com> 16444 16445 PR debug/83585 16446 * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition 16447 to switched_sections. 16448 164492018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 16450 16451 PR target/83680 16452 * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted 16453 test for d.testing. 16454 164552018-01-04 Peter Bergner <bergner@vnet.ibm.com> 16456 16457 PR target/83387 16458 * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not 16459 allow arguments in FP registers if TARGET_HARD_FLOAT is false. 16460 164612018-01-04 Jakub Jelinek <jakub@redhat.com> 16462 16463 PR debug/83666 16464 * cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode 16465 is BLKmode and bitpos not zero or mode change is needed. 16466 164672018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 16468 16469 PR target/83675 16470 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require 16471 TARGET_VIS2. 16472 164732018-01-04 Uros Bizjak <ubizjak@gmail.com> 16474 16475 PR target/83628 16476 * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT 16477 instead of MULT rtx. Update all corresponding splitters. 16478 (*saddl_se): Ditto. 16479 (*ssub<modesuffix>): Ditto. 16480 (*ssubl_se): Ditto. 16481 (*cmp_sadd_di): Update split patterns. 16482 (*cmp_sadd_si): Ditto. 16483 (*cmp_sadd_sidi): Ditto. 16484 (*cmp_ssub_di): Ditto. 16485 (*cmp_ssub_si): Ditto. 16486 (*cmp_ssub_sidi): Ditto. 16487 * config/alpha/predicates.md (const23_operand): New predicate. 16488 * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: 16489 Look for ASHIFT, not MULT inner operand. 16490 (alpha_split_conditional_move): Update for *sadd<modesuffix> change. 16491 164922018-01-04 Martin Liska <mliska@suse.cz> 16493 16494 PR gcov-profile/83669 16495 * gcov.c (output_intermediate_file): Add version to intermediate 16496 gcov file. 16497 * doc/gcov.texi: Document new field 'version' in intermediate 16498 file format. Fix location of '-k' option of gcov command. 16499 165002018-01-04 Martin Liska <mliska@suse.cz> 16501 16502 PR ipa/82352 16503 * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. 16504 165052018-01-04 Jakub Jelinek <jakub@redhat.com> 16506 16507 * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi. 16508 165092018-01-03 Martin Sebor <msebor@redhat.com> 16510 16511 PR tree-optimization/83655 16512 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid 16513 checking calls with invalid arguments. 16514 165152018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16516 16517 * tree-vect-stmts.c (vect_get_store_rhs): New function. 16518 (vectorizable_mask_load_store): Delete. 16519 (vectorizable_call): Return false for masked loads and stores. 16520 (vectorizable_store): Handle IFN_MASK_STORE. Use vect_get_store_rhs 16521 instead of gimple_assign_rhs1. 16522 (vectorizable_load): Handle IFN_MASK_LOAD. 16523 (vect_transform_stmt): Don't set is_store for call_vec_info_type. 16524 165252018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16526 16527 * tree-vect-stmts.c (vect_build_gather_load_calls): New function, 16528 split out from.., 16529 (vectorizable_mask_load_store): ...here. 16530 (vectorizable_load): ...and here. 16531 165322018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16533 16534 * tree-vect-stmts.c (vect_build_all_ones_mask) 16535 (vect_build_zero_merge_argument): New functions, split out from... 16536 (vectorizable_load): ...here. 16537 165382018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16539 16540 * tree-vect-stmts.c (vect_check_store_rhs): New function, 16541 split out from... 16542 (vectorizable_mask_load_store): ...here. 16543 (vectorizable_store): ...and here. 16544 165452018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16546 16547 * tree-vect-stmts.c (vect_check_load_store_mask): New function, 16548 split out from... 16549 (vectorizable_mask_load_store): ...here. 16550 165512018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16552 16553 * tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c 16554 (vect_model_store_cost): Take a vec_load_store_type instead of a 16555 vect_def_type. 16556 * tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h. 16557 (vect_model_store_cost): Take a vec_load_store_type instead of a 16558 vect_def_type. 16559 (vectorizable_mask_load_store): Update accordingly. 16560 (vectorizable_store): Likewise. 16561 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly. 16562 165632018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16564 16565 * tree-vect-loop.c (vect_transform_loop): Stub out scalar 16566 IFN_MASK_LOAD calls here rather than... 16567 * tree-vect-stmts.c (vectorizable_mask_load_store): ...here. 16568 165692018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16570 Alan Hayward <alan.hayward@arm.com> 16571 David Sherwood <david.sherwood@arm.com> 16572 16573 * expmed.c (extract_bit_field_1): For vector extracts, 16574 fall back to extract_bit_field_as_subreg if vec_extract 16575 isn't available. 16576 165772018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16578 Alan Hayward <alan.hayward@arm.com> 16579 David Sherwood <david.sherwood@arm.com> 16580 16581 * lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether 16582 they are variable or constant sized. 16583 (assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized 16584 slots for constant-sized data. 16585 165862018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16587 Alan Hayward <alan.hayward@arm.com> 16588 David Sherwood <david.sherwood@arm.com> 16589 16590 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When 16591 handling COND_EXPRs with boolean comparisons, try to find a better 16592 basis for the mask type than the boolean itself. 16593 165942018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16595 16596 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default 16597 is calculated and how it can be overridden. 16598 * genmodes.c (max_bitsize_mode_any_mode): New variable. 16599 (create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE, 16600 if defined. 16601 (emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE, 16602 if nonzero. 16603 166042018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16605 Alan Hayward <alan.hayward@arm.com> 16606 David Sherwood <david.sherwood@arm.com> 16607 16608 * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate): 16609 Remove the mode argument. 16610 (aarch64_simd_valid_immediate): Remove the mode and inverse 16611 arguments. 16612 * config/aarch64/iterators.md (bitsize): New iterator. 16613 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3) 16614 (ior<mode>3): Update calls to aarch64_output_simd_mov_immediate. 16615 * config/aarch64/constraints.md (Do, Db, Dn): Update calls to 16616 aarch64_simd_valid_immediate. 16617 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise. 16618 (aarch64_reg_or_bic_imm): Likewise. 16619 * config/aarch64/aarch64.c (simd_immediate_info): Replace mvn 16620 with an insn_type enum and msl with a modifier_type enum. 16621 Replace element_width with a scalar_mode. Change the shift 16622 to unsigned int. Add constructors for scalar_float_mode and 16623 scalar_int_mode elements. 16624 (aarch64_vect_float_const_representable_p): Delete. 16625 (aarch64_can_const_movi_rtx_p) 16626 (aarch64_simd_scalar_immediate_valid_for_move) 16627 (aarch64_simd_make_constant): Update call to 16628 aarch64_simd_valid_immediate. 16629 (aarch64_advsimd_valid_immediate_hs): New function. 16630 (aarch64_advsimd_valid_immediate): Likewise. 16631 (aarch64_simd_valid_immediate): Remove mode and inverse 16632 arguments. Rewrite to use the above. Use const_vec_duplicate_p 16633 to detect duplicated constants and use aarch64_float_const_zero_rtx_p 16634 and aarch64_float_const_representable_p on the result. 16635 (aarch64_output_simd_mov_immediate): Remove mode argument. 16636 Update call to aarch64_simd_valid_immediate and use of 16637 simd_immediate_info. 16638 (aarch64_output_scalar_simd_mov_immediate): Update call 16639 accordingly. 16640 166412018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16642 Alan Hayward <alan.hayward@arm.com> 16643 David Sherwood <david.sherwood@arm.com> 16644 16645 * machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION. 16646 (mode_nunits): Likewise CONST_MODE_NUNITS. 16647 * machmode.def (ADJUST_NUNITS): Document. 16648 * genmodes.c (mode_data::need_nunits_adj): New field. 16649 (blank_mode): Update accordingly. 16650 (adj_nunits): New variable. 16651 (print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ 16652 parameter. 16653 (emit_mode_size_inline): Set need_bytesize_adj for all modes 16654 listed in adj_nunits. 16655 (emit_mode_nunits_inline): Set need_nunits_adj for all modes 16656 listed in adj_nunits. Don't emit case statements for such modes. 16657 (emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS 16658 and CONST_MODE_PRECISION. Make CONST_MODE_SIZE expand to 16659 nothing if adj_nunits is nonnull. 16660 (emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl. 16661 (emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit) 16662 (emit_mode_fbit): Update use of print_maybe_const_decl. 16663 (emit_move_size): Likewise. Treat the array as non-const 16664 if adj_nunits. 16665 (emit_mode_adjustments): Handle adj_nunits. 16666 166672018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16668 16669 * machmode.def (VECTOR_MODES_WITH_PREFIX): Document. 16670 * genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro. 16671 (VECTOR_MODES): Use it. 16672 (make_vector_modes): Take the prefix as an argument. 16673 166742018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16675 Alan Hayward <alan.hayward@arm.com> 16676 David Sherwood <david.sherwood@arm.com> 16677 16678 * mode-classes.def (MODE_VECTOR_BOOL): New mode class. 16679 * machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true 16680 for MODE_VECTOR_BOOL. 16681 * machmode.def (VECTOR_BOOL_MODE): Document. 16682 * genmodes.c (VECTOR_BOOL_MODE): New macro. 16683 (make_vector_bool_mode): New function. 16684 (complete_mode, emit_mode_wider, emit_mode_adjustments): Handle 16685 MODE_VECTOR_BOOL. 16686 * lto-streamer-in.c (lto_input_mode_table): Likewise. 16687 * rtx-vector-builder.c (rtx_vector_builder::find_cached_value): 16688 Likewise. 16689 * stor-layout.c (int_mode_for_mode): Likewise. 16690 * tree.c (build_vector_type_for_mode): Likewise. 16691 * varasm.c (output_constant_pool_2): Likewise. 16692 * emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and 16693 CONSTM1_RTX (BImode) are the same thing. Initialize const_tiny_rtx 16694 for MODE_VECTOR_BOOL. 16695 * expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list 16696 of mode class checks. 16697 * tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P 16698 instead of a list of mode class checks. 16699 (expand_vector_scalar_condition): Likewise. 16700 (type_for_widest_vector_mode): Handle BImode as an inner mode. 16701 167022018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16703 Alan Hayward <alan.hayward@arm.com> 16704 David Sherwood <david.sherwood@arm.com> 16705 16706 * machmode.h (mode_size): Change from unsigned short to 16707 poly_uint16_pod. 16708 (mode_to_bytes): Return a poly_uint16 rather than an unsigned short. 16709 (GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES, 16710 or if measurement_type is not polynomial. 16711 (fixed_size_mode::includes_p): Check for constant-sized modes. 16712 * genmodes.c (emit_mode_size_inline): Make mode_size_inline 16713 return a poly_uint16 rather than an unsigned short. 16714 (emit_mode_size): Change the type of mode_size from unsigned short 16715 to poly_uint16_pod. Use ZERO_COEFFS for the initializer. 16716 (emit_mode_adjustments): Cope with polynomial vector sizes. 16717 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 16718 for GET_MODE_SIZE. 16719 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 16720 for GET_MODE_SIZE. 16721 * auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial. 16722 * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise. 16723 * caller-save.c (setup_save_areas): Likewise. 16724 (replace_reg_with_saved_mem): Likewise. 16725 * calls.c (emit_library_call_value_1): Likewise. 16726 * combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise. 16727 * combine.c (simplify_set, make_extraction, simplify_shift_const_1) 16728 (gen_lowpart_for_combine): Likewise. 16729 * convert.c (convert_to_integer_1): Likewise. 16730 * cse.c (equiv_constant, cse_insn): Likewise. 16731 * cselib.c (autoinc_split, cselib_hash_rtx): Likewise. 16732 (cselib_subst_to_values): Likewise. 16733 * dce.c (word_dce_process_block): Likewise. 16734 * df-problems.c (df_word_lr_mark_ref): Likewise. 16735 * dwarf2cfi.c (init_one_dwarf_reg_size): Likewise. 16736 * dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor) 16737 (concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor) 16738 (rtl_for_decl_location): Likewise. 16739 * emit-rtl.c (gen_highpart, widen_memory_access): Likewise. 16740 * expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise. 16741 * expr.c (emit_group_load_1, clear_storage_hints): Likewise. 16742 (emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise. 16743 (expand_expr_real_1): Likewise. 16744 * function.c (assign_parm_setup_block_p, assign_parm_setup_block) 16745 (pad_below): Likewise. 16746 * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. 16747 * gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise. 16748 * ira.c (get_subreg_tracking_sizes): Likewise. 16749 * ira-build.c (ira_create_allocno_objects): Likewise. 16750 * ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise. 16751 (ira_sort_regnos_for_alter_reg): Likewise. 16752 * ira-costs.c (record_operand_costs): Likewise. 16753 * lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn) 16754 (resolve_simple_move): Likewise. 16755 * lra-constraints.c (get_reload_reg, operands_match_p): Likewise. 16756 (process_addr_reg, simplify_operand_subreg, curr_insn_transform) 16757 (lra_constraints): Likewise. 16758 (CONST_POOL_OK_P): Reject variable-sized modes. 16759 * lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare) 16760 (add_pseudo_to_slot, lra_spill): Likewise. 16761 * omp-low.c (omp_clause_aligned_alignment): Likewise. 16762 * optabs-query.c (get_best_extraction_insn): Likewise. 16763 * optabs-tree.c (expand_vec_cond_expr_p): Likewise. 16764 * optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise. 16765 (expand_mult_highpart, valid_multiword_target_p): Likewise. 16766 * recog.c (offsettable_address_addr_space_p): Likewise. 16767 * regcprop.c (maybe_mode_change): Likewise. 16768 * reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise. 16769 * regrename.c (build_def_use): Likewise. 16770 * regstat.c (dump_reg_info): Likewise. 16771 * reload.c (complex_word_subreg_p, push_reload, find_dummy_reload) 16772 (find_reloads, find_reloads_subreg_address): Likewise. 16773 * reload1.c (eliminate_regs_1): Likewise. 16774 * rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise. 16775 * simplify-rtx.c (avoid_constant_pool_reference): Likewise. 16776 (simplify_binary_operation_1, simplify_subreg): Likewise. 16777 * targhooks.c (default_function_arg_padding): Likewise. 16778 (default_hard_regno_nregs, default_class_max_nregs): Likewise. 16779 * tree-cfg.c (verify_gimple_assign_binary): Likewise. 16780 (verify_gimple_assign_ternary): Likewise. 16781 * tree-inline.c (estimate_move_cost): Likewise. 16782 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 16783 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise. 16784 (get_address_cost_ainc): Likewise. 16785 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. 16786 (vect_supportable_dr_alignment): Likewise. 16787 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 16788 (vectorizable_reduction): Likewise. 16789 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift) 16790 (vectorizable_operation, vectorizable_load): Likewise. 16791 * tree.c (build_same_sized_truth_vector_type): Likewise. 16792 * valtrack.c (cleanup_auto_inc_dec): Likewise. 16793 * var-tracking.c (emit_note_insn_var_location): Likewise. 16794 * config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>. 16795 (ADDR_VEC_ALIGN): Likewise. 16796 167972018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16798 Alan Hayward <alan.hayward@arm.com> 16799 David Sherwood <david.sherwood@arm.com> 16800 16801 * machmode.h (mode_to_bits): Return a poly_uint16 rather than an 16802 unsigned short. 16803 (GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES, 16804 or if measurement_type is polynomial. 16805 * calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial. 16806 * combine.c (make_extraction): Likewise. 16807 * dse.c (find_shift_sequence): Likewise. 16808 * dwarf2out.c (mem_loc_descriptor): Likewise. 16809 * expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise. 16810 (extract_bit_field, extract_low_bits): Likewise. 16811 * expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise. 16812 (optimize_bitfield_assignment_op, expand_assignment): Likewise. 16813 (store_expr_with_bounds, store_field, expand_expr_real_1): Likewise. 16814 * fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise. 16815 * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. 16816 * reload.c (find_reloads): Likewise. 16817 * reload1.c (alter_reg): Likewise. 16818 * stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise. 16819 * targhooks.c (default_secondary_memory_needed_mode): Likewise. 16820 * tree-if-conv.c (predicate_mem_writes): Likewise. 16821 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. 16822 * tree-vect-patterns.c (adjust_bool_pattern): Likewise. 16823 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. 16824 * valtrack.c (dead_debug_insert_temp): Likewise. 16825 * varasm.c (mergeable_constant_section): Likewise. 16826 * config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>. 16827 168282018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16829 Alan Hayward <alan.hayward@arm.com> 16830 David Sherwood <david.sherwood@arm.com> 16831 16832 * expr.c (expand_assignment): Cope with polynomial mode sizes 16833 when assigning to a CONCAT. 16834 168352018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16836 Alan Hayward <alan.hayward@arm.com> 16837 David Sherwood <david.sherwood@arm.com> 16838 16839 * machmode.h (mode_precision): Change from unsigned short to 16840 poly_uint16_pod. 16841 (mode_to_precision): Return a poly_uint16 rather than an unsigned 16842 short. 16843 (GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES, 16844 or if measurement_type is not polynomial. 16845 (HWI_COMPUTABLE_MODE_P): Turn into a function. Optimize the case 16846 in which the mode is already known to be a scalar_int_mode. 16847 * genmodes.c (emit_mode_precision): Change the type of mode_precision 16848 from unsigned short to poly_uint16_pod. Use ZERO_COEFFS for the 16849 initializer. 16850 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 16851 for GET_MODE_PRECISION. 16852 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 16853 for GET_MODE_PRECISION. 16854 * combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION 16855 as polynomial. 16856 (try_combine, find_split_point, combine_simplify_rtx): Likewise. 16857 (expand_field_assignment, make_extraction): Likewise. 16858 (make_compound_operation_int, record_dead_and_set_regs_1): Likewise. 16859 (get_last_value): Likewise. 16860 * convert.c (convert_to_integer_1): Likewise. 16861 * cse.c (cse_insn): Likewise. 16862 * expr.c (expand_expr_real_1): Likewise. 16863 * lra-constraints.c (simplify_operand_subreg): Likewise. 16864 * optabs-query.c (can_atomic_load_p): Likewise. 16865 * optabs.c (expand_atomic_load): Likewise. 16866 (expand_atomic_store): Likewise. 16867 * ree.c (combine_reaching_defs): Likewise. 16868 * rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise. 16869 * rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise. 16870 * tree.h (type_has_mode_precision_p): Likewise. 16871 * ubsan.c (instrument_si_overflow): Likewise. 16872 168732018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16874 Alan Hayward <alan.hayward@arm.com> 16875 David Sherwood <david.sherwood@arm.com> 16876 16877 * tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle 16878 polynomial numbers of units. 16879 (SET_TYPE_VECTOR_SUBPARTS): Likewise. 16880 (valid_vector_subparts_p): New function. 16881 (build_vector_type): Remove temporary shim and take the number 16882 of units as a poly_uint64 rather than an int. 16883 (build_opaque_vector_type): Take the number of units as a 16884 poly_uint64 rather than an int. 16885 * tree.c (build_vector_from_ctor): Handle polynomial 16886 TYPE_VECTOR_SUBPARTS. 16887 (type_hash_canon_hash, type_cache_hasher::equal): Likewise. 16888 (uniform_vector_p, vector_type_mode, build_vector): Likewise. 16889 (build_vector_from_val): If the number of units is variable, 16890 use build_vec_duplicate_cst for constant operands and 16891 VEC_DUPLICATE_EXPR otherwise. 16892 (make_vector_type): Remove temporary is_constant (). 16893 (build_vector_type, build_opaque_vector_type): Take the number of 16894 units as a poly_uint64 rather than an int. 16895 (check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and 16896 VECTOR_CST_NELTS. 16897 * cfgexpand.c (expand_debug_expr): Likewise. 16898 * expr.c (count_type_elements, categorize_ctor_elements_1): Likewise. 16899 (store_constructor, expand_expr_real_1): Likewise. 16900 (const_scalar_mask_from_tree): Likewise. 16901 * fold-const-call.c (fold_const_reduction): Likewise. 16902 * fold-const.c (const_binop, const_unop, fold_convert_const): Likewise. 16903 (operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise. 16904 (native_encode_vector, vec_cst_ctor_to_array): Likewise. 16905 (fold_relational_const): Likewise. 16906 (native_interpret_vector): Likewise. Change the size from an 16907 int to an unsigned int. 16908 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial 16909 TYPE_VECTOR_SUBPARTS. 16910 (gimple_fold_indirect_ref, gimple_build_vector): Likewise. 16911 (gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when 16912 duplicating a non-constant operand into a variable-length vector. 16913 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial 16914 TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS. 16915 * ipa-icf.c (sem_variable::equals): Likewise. 16916 * match.pd: Likewise. 16917 * omp-simd-clone.c (simd_clone_subparts): Likewise. 16918 * print-tree.c (print_node): Likewise. 16919 * stor-layout.c (layout_type): Likewise. 16920 * targhooks.c (default_builtin_vectorization_cost): Likewise. 16921 * tree-cfg.c (verify_gimple_comparison): Likewise. 16922 (verify_gimple_assign_binary): Likewise. 16923 (verify_gimple_assign_ternary): Likewise. 16924 (verify_gimple_assign_single): Likewise. 16925 * tree-pretty-print.c (dump_generic_node): Likewise. 16926 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 16927 (simplify_bitfield_ref, is_combined_permutation_identity): Likewise. 16928 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. 16929 (vect_grouped_load_supported, vect_permute_load_chain): Likewise. 16930 (vect_shift_permute_load_chain): Likewise. 16931 * tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise. 16932 (expand_vector_condition, optimize_vector_constructor): Likewise. 16933 (lower_vec_perm, get_compute_type): Likewise. 16934 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 16935 (get_initial_defs_for_reduction, vect_transform_loop): Likewise. 16936 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. 16937 (vect_recog_mask_conversion_pattern): Likewise. 16938 * tree-vect-slp.c (vect_supported_load_permutation_p): Likewise. 16939 (vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise. 16940 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 16941 (get_group_load_store_type, vectorizable_mask_load_store): Likewise. 16942 (vectorizable_bswap, simd_clone_subparts, vectorizable_assignment) 16943 (vectorizable_shift, vectorizable_operation, vectorizable_store) 16944 (vectorizable_load, vect_is_simple_cond, vectorizable_comparison) 16945 (supportable_widening_operation): Likewise. 16946 (supportable_narrowing_operation): Likewise. 16947 * tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts): 16948 Likewise. 16949 * varasm.c (output_constant): Likewise. 16950 169512018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16952 Alan Hayward <alan.hayward@arm.com> 16953 David Sherwood <david.sherwood@arm.com> 16954 16955 * tree-vect-data-refs.c (vect_permute_store_chain): Reorganize 16956 so that both the length == 3 and length != 3 cases set up their 16957 own permute vectors. Add comments explaining why we know the 16958 number of elements is constant. 16959 (vect_permute_load_chain): Likewise. 16960 169612018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 16962 Alan Hayward <alan.hayward@arm.com> 16963 David Sherwood <david.sherwood@arm.com> 16964 16965 * machmode.h (mode_nunits): Change from unsigned char to 16966 poly_uint16_pod. 16967 (ONLY_FIXED_SIZE_MODES): New macro. 16968 (pod_mode::measurement_type, scalar_int_mode::measurement_type) 16969 (scalar_float_mode::measurement_type, scalar_mode::measurement_type) 16970 (complex_mode::measurement_type, fixed_size_mode::measurement_type): 16971 New typedefs. 16972 (mode_to_nunits): Return a poly_uint16 rather than an unsigned short. 16973 (GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES, 16974 or if measurement_type is not polynomial. 16975 * genmodes.c (ZERO_COEFFS): New macro. 16976 (emit_mode_nunits_inline): Make mode_nunits_inline return a 16977 poly_uint16. 16978 (emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod. 16979 Use ZERO_COEFFS when emitting initializers. 16980 * data-streamer.h (bp_pack_poly_value): New function. 16981 (bp_unpack_poly_value): Likewise. 16982 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 16983 for GET_MODE_NUNITS. 16984 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 16985 for GET_MODE_NUNITS. 16986 * tree.c (make_vector_type): Remove temporary shim and make 16987 the real function take the number of units as a poly_uint64 16988 rather than an int. 16989 (build_vector_type_for_mode): Handle polynomial nunits. 16990 * dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise. 16991 * emit-rtl.c (const_vec_series_p_1): Likewise. 16992 (gen_rtx_CONST_VECTOR): Likewise. 16993 * fold-const.c (test_vec_duplicate_folding): Likewise. 16994 * genrecog.c (validate_pattern): Likewise. 16995 * optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise. 16996 * optabs-tree.c (expand_vec_cond_expr_p): Likewise. 16997 * optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise. 16998 (shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise. 16999 (expand_vec_cond_expr, expand_mult_highpart): Likewise. 17000 * rtlanal.c (subreg_get_info): Likewise. 17001 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 17002 (vect_grouped_load_supported): Likewise. 17003 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. 17004 * tree-vect-loop.c (have_whole_vector_shift): Likewise. 17005 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 17006 (simplify_const_unary_operation, simplify_binary_operation_1) 17007 (simplify_const_binary_operation, simplify_ternary_operation) 17008 (test_vector_ops_duplicate, test_vector_ops): Likewise. 17009 (simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode 17010 instead of CONST_VECTOR_NUNITS. 17011 * varasm.c (output_constant_pool_2): Likewise. 17012 * rtx-vector-builder.c (rtx_vector_builder::build): Only include the 17013 explicit-encoded elements in the XVEC for variable-length vectors. 17014 170152018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17016 17017 * lra-constraints.c (curr_insn_transform): Use partial_subreg_p. 17018 170192018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17020 Alan Hayward <alan.hayward@arm.com> 17021 David Sherwood <david.sherwood@arm.com> 17022 17023 * coretypes.h (fixed_size_mode): Declare. 17024 (fixed_size_mode_pod): New typedef. 17025 * builtins.h (target_builtins::x_apply_args_mode) 17026 (target_builtins::x_apply_result_mode): Change type to 17027 fixed_size_mode_pod. 17028 * builtins.c (apply_args_size, apply_result_size, result_vector) 17029 (expand_builtin_apply_args_1, expand_builtin_apply) 17030 (expand_builtin_return): Update accordingly. 17031 170322018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17033 17034 * cse.c (hash_rtx_cb): Hash only the encoded elements. 17035 * cselib.c (cselib_hash_rtx): Likewise. 17036 * expmed.c (make_tree): Build VECTOR_CSTs directly from the 17037 CONST_VECTOR encoding. 17038 170392018-01-03 Jakub Jelinek <jakub@redhat.com> 17040 Jeff Law <law@redhat.com> 17041 17042 PR target/83641 17043 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For 17044 noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop, 17045 only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp 17046 and add REG_CFA_ADJUST_CFA notes in that case to both insns. 17047 17048 PR target/83641 17049 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not 17050 explicitly probe *sp in a noreturn function if there were any callee 17051 register saves or frame pointer is needed. 17052 170532018-01-03 Jakub Jelinek <jakub@redhat.com> 17054 17055 PR debug/83621 17056 * cfgexpand.c (expand_debug_expr): Return NULL if mode is 17057 BLKmode for ternary, binary or unary expressions. 17058 17059 PR debug/83645 17060 * var-tracking.c (delete_vta_debug_insn): New inline function. 17061 (delete_vta_debug_insns): Add USE_CFG argument, if true, walk just 17062 insns from get_insns () to NULL instead of each bb separately. 17063 Use delete_vta_debug_insn. No longer static. 17064 (vt_debug_insns_local, variable_tracking_main_1): Adjust 17065 delete_vta_debug_insns callers. 17066 * rtl.h (delete_vta_debug_insns): Declare. 17067 * final.c (rest_of_handle_final): Call delete_vta_debug_insns 17068 instead of variable_tracking_main. 17069 170702018-01-03 Martin Sebor <msebor@redhat.com> 17071 17072 PR tree-optimization/83603 17073 * calls.c (maybe_warn_nonstring_arg): Avoid accessing function 17074 arguments past the endof the argument list in functions declared 17075 without a prototype. 17076 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): 17077 Avoid checking when arguments are null. 17078 170792018-01-03 Martin Sebor <msebor@redhat.com> 17080 17081 PR c/83559 17082 * doc/extend.texi (attribute const): Fix a typo. 17083 * ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid 17084 issuing -Wsuggest-attribute for void functions. 17085 170862018-01-03 Martin Sebor <msebor@redhat.com> 17087 17088 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use 17089 offset_int::from instead of wide_int::to_shwi. 17090 (maybe_diag_overlap): Remove assertion. 17091 Use HOST_WIDE_INT_PRINT_DEC instead of %lli. 17092 * gimple-ssa-sprintf.c (format_directive): Same. 17093 (parse_directive): Same. 17094 (sprintf_dom_walker::compute_format_length): Same. 17095 (try_substitute_return_value): Same. 17096 170972018-01-03 Jeff Law <law@redhat.com> 17098 17099 PR middle-end/83654 17100 * explow.c (anti_adjust_stack_and_probe_stack_clash): Test a 17101 non-constant residual for zero at runtime and avoid probing in 17102 that case. Reorganize code for trailing problem to mirror handling 17103 of the residual. 17104 171052018-01-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 17106 17107 PR tree-optimization/83501 17108 * tree-ssa-strlen.c (get_string_cst): New. 17109 (handle_char_store): Call get_string_cst. 17110 171112018-01-03 Martin Liska <mliska@suse.cz> 17112 17113 PR tree-optimization/83593 17114 * tree-ssa-strlen.c: Include tree-cfg.h. 17115 (strlen_check_and_optimize_stmt): Add new argument cleanup_eh. 17116 (strlen_dom_walker): Add new member variable m_cleanup_cfg. 17117 (strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg 17118 to false. 17119 (strlen_dom_walker::before_dom_children): Call 17120 gimple_purge_dead_eh_edges. Dump tranformation with details 17121 dump flags. 17122 (strlen_dom_walker::before_dom_children): Update call by adding 17123 new argument cleanup_eh. 17124 (pass_strlen::execute): Return TODO_cleanup_cfg if needed. 17125 171262018-01-03 Martin Liska <mliska@suse.cz> 17127 17128 PR ipa/83549 17129 * cif-code.def (VARIADIC_THUNK): New enum value. 17130 * ipa-fnsummary.c (compute_fn_summary): Do not inline variadic 17131 thunks. 17132 171332018-01-03 Jan Beulich <jbeulich@suse.com> 17134 17135 * sse.md (mov<mode>_internal): Tighten condition for when to use 17136 vmovdqu<ssescalarsize> for TI and OI modes. 17137 171382018-01-03 Jakub Jelinek <jakub@redhat.com> 17139 17140 Update copyright years. 17141 171422018-01-03 Martin Liska <mliska@suse.cz> 17143 17144 PR ipa/83594 17145 * ipa-visibility.c (function_and_variable_visibility): Skip 17146 functions with noipa attribure. 17147 171482018-01-03 Jakub Jelinek <jakub@redhat.com> 17149 17150 * gcc.c (process_command): Update copyright notice dates. 17151 * gcov-dump.c (print_version): Ditto. 17152 * gcov.c (print_version): Ditto. 17153 * gcov-tool.c (print_version): Ditto. 17154 * gengtype.c (create_file): Ditto. 17155 * doc/cpp.texi: Bump @copying's copyright year. 17156 * doc/cppinternals.texi: Ditto. 17157 * doc/gcc.texi: Ditto. 17158 * doc/gccint.texi: Ditto. 17159 * doc/gcov.texi: Ditto. 17160 * doc/install.texi: Ditto. 17161 * doc/invoke.texi: Ditto. 17162 171632018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17164 17165 * vector-builder.h (vector_builder::m_full_nelts): Change from 17166 unsigned int to poly_uint64. 17167 (vector_builder::full_nelts): Update prototype accordingly. 17168 (vector_builder::new_vector): Likewise. 17169 (vector_builder::encoded_full_vector_p): Handle polynomial full_nelts. 17170 (vector_builder::operator ==): Likewise. 17171 (vector_builder::finalize): Likewise. 17172 * int-vector-builder.h (int_vector_builder::int_vector_builder): 17173 Take the number of elements as a poly_uint64 rather than an 17174 unsigned int. 17175 * vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change 17176 from unsigned int to poly_uint64. 17177 (vec_perm_indices::vec_perm_indices): Update prototype accordingly. 17178 (vec_perm_indices::new_vector): Likewise. 17179 (vec_perm_indices::length): Likewise. 17180 (vec_perm_indices::nelts_per_input): Likewise. 17181 (vec_perm_indices::input_nelts): Likewise. 17182 * vec-perm-indices.c (vec_perm_indices::new_vector): Take the 17183 number of elements per input as a poly_uint64 rather than an 17184 unsigned int. Use the original encoding for variable-length 17185 vectors, rather than clamping each individual element. 17186 For the second and subsequent elements in each pattern, 17187 clamp the step and base before clamping their sum. 17188 (vec_perm_indices::series_p): Handle polynomial element counts. 17189 (vec_perm_indices::all_in_range_p): Likewise. 17190 (vec_perm_indices_to_tree): Likewise. 17191 (vec_perm_indices_to_rtx): Likewise. 17192 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. 17193 * tree-vector-builder.c (tree_vector_builder::new_unary_operation) 17194 (tree_vector_builder::new_binary_operation): Handle polynomial 17195 element counts. Return false if we need to know the number 17196 of elements at compile time. 17197 * fold-const.c (fold_vec_perm): Punt if the number of elements 17198 isn't known at compile time. 17199 172002018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17201 17202 * vec-perm-indices.h (vec_perm_builder): Change element type 17203 from HOST_WIDE_INT to poly_int64. 17204 (vec_perm_indices::element_type): Update accordingly. 17205 (vec_perm_indices::clamp): Handle polynomial element_types. 17206 * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. 17207 (vec_perm_indices::all_in_range_p): Likewise. 17208 (tree_to_vec_perm_builder): Check for poly_int64 trees rather 17209 than shwi trees. 17210 * vector-builder.h (vector_builder::stepped_sequence_p): Handle 17211 polynomial vec_perm_indices element types. 17212 * int-vector-builder.h (int_vector_builder::equal_p): Likewise. 17213 * fold-const.c (fold_vec_perm): Likewise. 17214 * optabs.c (shift_amt_for_vec_perm_mask): Likewise. 17215 * tree-vect-generic.c (lower_vec_perm): Likewise. 17216 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 17217 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm 17218 element type to HOST_WIDE_INT. 17219 172202018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17221 Alan Hayward <alan.hayward@arm.com> 17222 David Sherwood <david.sherwood@arm.com> 17223 17224 * alias.c (addr_side_effect_eval): Take the size as a poly_int64 17225 rather than an int. Use plus_constant. 17226 (memrefs_conflict_p): Take the sizes as poly_int64s rather than ints. 17227 Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT. 17228 172292018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17230 Alan Hayward <alan.hayward@arm.com> 17231 David Sherwood <david.sherwood@arm.com> 17232 17233 * calls.c (emit_call_1, expand_call): Change struct_value_size from 17234 a HOST_WIDE_INT to a poly_int64. 17235 172362018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17237 Alan Hayward <alan.hayward@arm.com> 17238 David Sherwood <david.sherwood@arm.com> 17239 17240 * calls.c (load_register_parameters): Cope with polynomial 17241 mode sizes. Require a constant size for BLKmode parameters 17242 that aren't described by a PARALLEL. If BLOCK_REG_PADDING 17243 forces a parameter to be padded at the lsb end in order to 17244 fill a complete number of words, require the parameter size 17245 to be ordered wrt UNITS_PER_WORD. 17246 172472018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17248 Alan Hayward <alan.hayward@arm.com> 17249 David Sherwood <david.sherwood@arm.com> 17250 17251 * reload1.c (spill_stack_slot_width): Change element type 17252 from unsigned int to poly_uint64_pod. 17253 (alter_reg): Treat mode sizes as polynomial. 17254 172552018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17256 Alan Hayward <alan.hayward@arm.com> 17257 David Sherwood <david.sherwood@arm.com> 17258 17259 * reload.c (complex_word_subreg_p): New function. 17260 (reload_inner_reg_of_subreg, push_reload): Use it. 17261 172622018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17263 Alan Hayward <alan.hayward@arm.com> 17264 David Sherwood <david.sherwood@arm.com> 17265 17266 * lra-constraints.c (process_alt_operands): Reject matched 17267 operands whose sizes aren't ordered. 17268 (match_reload): Refer to this check here. 17269 172702018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17271 Alan Hayward <alan.hayward@arm.com> 17272 David Sherwood <david.sherwood@arm.com> 17273 17274 * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert 17275 that the mode size is in the set {1, 2, 4, 8, 16}. 17276 172772018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17278 Alan Hayward <alan.hayward@arm.com> 17279 David Sherwood <david.sherwood@arm.com> 17280 17281 * var-tracking.c (adjust_mems): Treat mode sizes as polynomial. 17282 Use plus_constant instead of gen_rtx_PLUS. 17283 172842018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17285 Alan Hayward <alan.hayward@arm.com> 17286 David Sherwood <david.sherwood@arm.com> 17287 17288 * config/cr16/cr16-protos.h (cr16_push_rounding): Declare. 17289 * config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to... 17290 * config/cr16/cr16.c (cr16_push_rounding): ...this new function. 17291 * config/h8300/h8300-protos.h (h8300_push_rounding): Declare. 17292 * config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to... 17293 * config/h8300/h8300.c (h8300_push_rounding): ...this new function. 17294 * config/i386/i386-protos.h (ix86_push_rounding): Declare. 17295 * config/i386/i386.h (PUSH_ROUNDING): Move implementation to... 17296 * config/i386/i386.c (ix86_push_rounding): ...this new function. 17297 * config/m32c/m32c-protos.h (m32c_push_rounding): Take and return 17298 a poly_int64. 17299 * config/m32c/m32c.c (m32c_push_rounding): Likewise. 17300 * config/m68k/m68k-protos.h (m68k_push_rounding): Declare. 17301 * config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to... 17302 * config/m68k/m68k.c (m68k_push_rounding): ...this new function. 17303 * config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare. 17304 * config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to... 17305 * config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function. 17306 * config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare. 17307 * config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to... 17308 * config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new 17309 function. 17310 * expr.c (emit_move_resolve_push): Treat the input and result 17311 of PUSH_ROUNDING as a poly_int64. 17312 (emit_move_complex_push, emit_single_push_insn_1): Likewise. 17313 (emit_push_insn): Likewise. 17314 * lra-eliminations.c (mark_not_eliminable): Likewise. 17315 * recog.c (push_operand): Likewise. 17316 * reload1.c (elimination_effects): Likewise. 17317 * rtlanal.c (nonzero_bits1): Likewise. 17318 * calls.c (store_one_arg): Likewise. Require the padding to be 17319 known at compile time. 17320 173212018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17322 Alan Hayward <alan.hayward@arm.com> 17323 David Sherwood <david.sherwood@arm.com> 17324 17325 * expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial. 17326 Use plus_constant instead of gen_rtx_PLUS. 17327 173282018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17329 Alan Hayward <alan.hayward@arm.com> 17330 David Sherwood <david.sherwood@arm.com> 17331 17332 * auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64 17333 rather than an int. 17334 173352018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17336 Alan Hayward <alan.hayward@arm.com> 17337 David Sherwood <david.sherwood@arm.com> 17338 17339 * expr.c (expand_expr_real_1): Use tree_to_poly_uint64 17340 instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs 17341 via stack temporaries. Treat the mode size as polynomial too. 17342 173432018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17344 Alan Hayward <alan.hayward@arm.com> 17345 David Sherwood <david.sherwood@arm.com> 17346 17347 * expr.c (expand_expr_real_2): When handling conversions involving 17348 unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than 17349 multiplying int_size_in_bytes by BITS_PER_UNIT. Treat GET_MODE_BISIZE 17350 as a poly_uint64 too. 17351 173522018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17353 Alan Hayward <alan.hayward@arm.com> 17354 David Sherwood <david.sherwood@arm.com> 17355 17356 * rtlanal.c (subreg_get_info): Handle polynomial mode sizes. 17357 173582018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17359 Alan Hayward <alan.hayward@arm.com> 17360 David Sherwood <david.sherwood@arm.com> 17361 17362 * combine.c (can_change_dest_mode): Handle polynomial 17363 REGMODE_NATURAL_SIZE. 17364 * expmed.c (store_bit_field_1): Likewise. 17365 * expr.c (store_constructor): Likewise. 17366 * emit-rtl.c (validate_subreg): Operate on polynomial mode sizes 17367 and polynomial REGMODE_NATURAL_SIZE. 17368 (gen_lowpart_common): Likewise. 17369 * reginfo.c (record_subregs_of_mode): Likewise. 17370 * rtlanal.c (read_modify_subreg_p): Likewise. 17371 173722018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17373 Alan Hayward <alan.hayward@arm.com> 17374 David Sherwood <david.sherwood@arm.com> 17375 17376 * internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial 17377 numbers of elements. 17378 173792018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17380 Alan Hayward <alan.hayward@arm.com> 17381 David Sherwood <david.sherwood@arm.com> 17382 17383 * match.pd: Cope with polynomial numbers of vector elements. 17384 173852018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17386 Alan Hayward <alan.hayward@arm.com> 17387 David Sherwood <david.sherwood@arm.com> 17388 17389 * fold-const.c (fold_indirect_ref_1): Handle polynomial offsets 17390 in a POINTER_PLUS_EXPR. 17391 173922018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17393 Alan Hayward <alan.hayward@arm.com> 17394 David Sherwood <david.sherwood@arm.com> 17395 17396 * omp-simd-clone.c (simd_clone_subparts): New function. 17397 (simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS. 17398 (ipa_simd_modify_function_body): Likewise. 17399 174002018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17401 Alan Hayward <alan.hayward@arm.com> 17402 David Sherwood <david.sherwood@arm.com> 17403 17404 * tree-vect-generic.c (nunits_for_known_piecewise_op): New function. 17405 (expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS. 17406 (expand_vector_addition, add_rshift, expand_vector_divmod): Likewise. 17407 (expand_vector_condition, vector_element): Likewise. 17408 (subparts_gt): New function. 17409 (get_compute_type): Use subparts_gt. 17410 (count_type_subparts): Delete. 17411 (expand_vector_operations_1): Use subparts_gt instead of 17412 count_type_subparts. 17413 174142018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17415 Alan Hayward <alan.hayward@arm.com> 17416 David Sherwood <david.sherwood@arm.com> 17417 17418 * tree-vect-data-refs.c (vect_no_alias_p): Replace with... 17419 (vect_compile_time_alias): ...this new function. Do the calculation 17420 on poly_ints rather than trees. 17421 (vect_prune_runtime_alias_test_list): Update call accordingly. 17422 174232018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17424 Alan Hayward <alan.hayward@arm.com> 17425 David Sherwood <david.sherwood@arm.com> 17426 17427 * tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial 17428 numbers of units. 17429 (vect_schedule_slp_instance): Likewise. 17430 174312018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17432 Alan Hayward <alan.hayward@arm.com> 17433 David Sherwood <david.sherwood@arm.com> 17434 17435 * tree-vect-slp.c (vect_get_and_check_slp_defs): Reject 17436 constant and extern definitions for variable-length vectors. 17437 (vect_get_constant_vectors): Note that the number of units 17438 is known to be constant. 17439 174402018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17441 Alan Hayward <alan.hayward@arm.com> 17442 David Sherwood <david.sherwood@arm.com> 17443 17444 * tree-vect-stmts.c (vectorizable_conversion): Treat the number 17445 of units as polynomial. Choose between WIDE and NARROW based 17446 on multiple_p. 17447 174482018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17449 Alan Hayward <alan.hayward@arm.com> 17450 David Sherwood <david.sherwood@arm.com> 17451 17452 * tree-vect-stmts.c (simd_clone_subparts): New function. 17453 (vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS. 17454 174552018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17456 Alan Hayward <alan.hayward@arm.com> 17457 David Sherwood <david.sherwood@arm.com> 17458 17459 * tree-vect-stmts.c (vectorizable_call): Treat the number of 17460 vectors as polynomial. Use build_index_vector for 17461 IFN_GOMP_SIMD_LANE. 17462 174632018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17464 Alan Hayward <alan.hayward@arm.com> 17465 David Sherwood <david.sherwood@arm.com> 17466 17467 * tree-vect-stmts.c (get_load_store_type): Treat the number of 17468 units as polynomial. Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP 17469 for variable-length vectors. 17470 (vectorizable_mask_load_store): Treat the number of units as 17471 polynomial, asserting that it is constant if the condition has 17472 already been enforced. 17473 (vectorizable_store, vectorizable_load): Likewise. 17474 174752018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17476 Alan Hayward <alan.hayward@arm.com> 17477 David Sherwood <david.sherwood@arm.com> 17478 17479 * tree-vect-loop.c (vectorizable_live_operation): Treat the number 17480 of units as polynomial. Punt if we can't tell at compile time 17481 which vector contains the final result. 17482 174832018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17484 Alan Hayward <alan.hayward@arm.com> 17485 David Sherwood <david.sherwood@arm.com> 17486 17487 * tree-vect-loop.c (vectorizable_induction): Treat the number 17488 of units as polynomial. Punt on SLP inductions. Use an integer 17489 VEC_SERIES_EXPR for variable-length integer reductions. Use a 17490 cast of such a series for variable-length floating-point 17491 reductions. 17492 174932018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17494 Alan Hayward <alan.hayward@arm.com> 17495 David Sherwood <david.sherwood@arm.com> 17496 17497 * tree.h (build_index_vector): Declare. 17498 * tree.c (build_index_vector): New function. 17499 * tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number 17500 of units as polynomial, forcibly converting it to a constant if 17501 vectorizable_reduction has already enforced the condition. 17502 (vect_create_epilog_for_reduction): Likewise. Use build_index_vector 17503 to create a {1,2,3,...} vector. 17504 (vectorizable_reduction): Treat the number of units as polynomial. 17505 Choose vectype_in based on the largest scalar element size rather 17506 than the smallest number of units. Enforce the restrictions 17507 relied on above. 17508 175092018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17510 Alan Hayward <alan.hayward@arm.com> 17511 David Sherwood <david.sherwood@arm.com> 17512 17513 * tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the 17514 number of units as polynomial. 17515 175162018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17517 Alan Hayward <alan.hayward@arm.com> 17518 David Sherwood <david.sherwood@arm.com> 17519 17520 * target.h (vector_sizes, auto_vector_sizes): New typedefs. 17521 * target.def (autovectorize_vector_sizes): Return the vector sizes 17522 by pointer, using vector_sizes rather than a bitmask. 17523 * targhooks.h (default_autovectorize_vector_sizes): Update accordingly. 17524 * targhooks.c (default_autovectorize_vector_sizes): Likewise. 17525 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): 17526 Likewise. 17527 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. 17528 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. 17529 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. 17530 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. 17531 * omp-general.c (omp_max_vf): Likewise. 17532 * omp-low.c (omp_clause_aligned_alignment): Likewise. 17533 * optabs-query.c (can_vec_mask_load_store_p): Likewise. 17534 * tree-vect-loop.c (vect_analyze_loop): Likewise. 17535 * tree-vect-slp.c (vect_slp_bb): Likewise. 17536 * doc/tm.texi: Regenerate. 17537 * tree-vectorizer.h (current_vector_size): Change from an unsigned int 17538 to a poly_uint64. 17539 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take 17540 the vector size as a poly_uint64 rather than an unsigned int. 17541 (current_vector_size): Change from an unsigned int to a poly_uint64. 17542 (get_vectype_for_scalar_type): Update accordingly. 17543 * tree.h (build_truth_vector_type): Take the size and number of 17544 units as a poly_uint64 rather than an unsigned int. 17545 (build_vector_type): Add a temporary overload that takes 17546 the number of units as a poly_uint64 rather than an unsigned int. 17547 * tree.c (make_vector_type): Likewise. 17548 (build_truth_vector_type): Take the number of units as a poly_uint64 17549 rather than an unsigned int. 17550 175512018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17552 Alan Hayward <alan.hayward@arm.com> 17553 David Sherwood <david.sherwood@arm.com> 17554 17555 * target.def (get_mask_mode): Take the number of units and length 17556 as poly_uint64s rather than unsigned ints. 17557 * targhooks.h (default_get_mask_mode): Update accordingly. 17558 * targhooks.c (default_get_mask_mode): Likewise. 17559 * config/i386/i386.c (ix86_get_mask_mode): Likewise. 17560 * doc/tm.texi: Regenerate. 17561 175622018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17563 Alan Hayward <alan.hayward@arm.com> 17564 David Sherwood <david.sherwood@arm.com> 17565 17566 * omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int. 17567 * omp-general.c (omp_max_vf): Likewise. 17568 * omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf. 17569 (expand_omp_simd): Handle polynomial safelen. 17570 * omp-low.c (omplow_simd_context): Add a default constructor. 17571 (omplow_simd_context::max_vf): Change from int to poly_uint64. 17572 (lower_rec_simd_input_clauses): Update accordingly. 17573 (lower_rec_input_clauses): Likewise. 17574 175752018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17576 Alan Hayward <alan.hayward@arm.com> 17577 David Sherwood <david.sherwood@arm.com> 17578 17579 * tree-vectorizer.h (vect_nunits_for_cost): New function. 17580 * tree-vect-loop.c (vect_model_reduction_cost): Use it. 17581 * tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise. 17582 (vect_analyze_slp_cost): Likewise. 17583 * tree-vect-stmts.c (vect_model_store_cost): Likewise. 17584 (vect_model_load_cost): Likewise. 17585 175862018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17587 Alan Hayward <alan.hayward@arm.com> 17588 David Sherwood <david.sherwood@arm.com> 17589 17590 * tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1) 17591 (vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits 17592 from an unsigned int * to a poly_uint64_pod *. 17593 (calculate_unrolling_factor): New function. 17594 (vect_analyze_slp_instance): Use it. Track polynomial max_nunits. 17595 175962018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17597 Alan Hayward <alan.hayward@arm.com> 17598 David Sherwood <david.sherwood@arm.com> 17599 17600 * tree-vectorizer.h (_slp_instance::unrolling_factor): Change 17601 from an unsigned int to a poly_uint64. 17602 (_loop_vec_info::slp_unrolling_factor): Likewise. 17603 (_loop_vec_info::vectorization_factor): Change from an int 17604 to a poly_uint64. 17605 (MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX. 17606 (vect_get_num_vectors): New function. 17607 (vect_update_max_nunits, vect_vf_for_cost): Likewise. 17608 (vect_get_num_copies): Use vect_get_num_vectors. 17609 (vect_analyze_data_ref_dependences): Change max_vf from an int * 17610 to an unsigned int *. 17611 (vect_analyze_data_refs): Change min_vf from an int * to a 17612 poly_uint64 *. 17613 (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather 17614 than an unsigned HOST_WIDE_INT. 17615 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) 17616 (vect_analyze_data_ref_dependence): Change max_vf from an int * 17617 to an unsigned int *. 17618 (vect_analyze_data_ref_dependences): Likewise. 17619 (vect_compute_data_ref_alignment): Handle polynomial vf. 17620 (vect_enhance_data_refs_alignment): Likewise. 17621 (vect_prune_runtime_alias_test_list): Likewise. 17622 (vect_shift_permute_load_chain): Likewise. 17623 (vect_supportable_dr_alignment): Likewise. 17624 (dependence_distance_ge_vf): Take the vectorization factor as a 17625 poly_uint64 rather than an unsigned HOST_WIDE_INT. 17626 (vect_analyze_data_refs): Change min_vf from an int * to a 17627 poly_uint64 *. 17628 * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take 17629 vfm1 as a poly_uint64 rather than an int. Make the same change 17630 for the returned bound_scalar. 17631 (vect_gen_vector_loop_niters): Handle polynomial vf. 17632 (vect_do_peeling): Likewise. Update call to 17633 vect_gen_scalar_loop_niters and handle polynomial bound_scalars. 17634 (vect_gen_vector_loop_niters_mult_vf): Assert that the vf must 17635 be constant. 17636 * tree-vect-loop.c (vect_determine_vectorization_factor) 17637 (vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf. 17638 (vect_get_known_peeling_cost): Likewise. 17639 (vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise. 17640 (vect_worthwhile_without_simd_p, vectorizable_induction): Likewise. 17641 (vect_transform_loop): Likewise. Use the lowest possible VF when 17642 updating the upper bounds of the loop. 17643 (vect_min_worthwhile_factor): Make static. Return an unsigned int 17644 rather than an int. 17645 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with 17646 polynomial unroll factors. 17647 (vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise. 17648 (vect_make_slp_decision): Likewise. 17649 (vect_supported_load_permutation_p): Likewise, and polynomial 17650 vf too. 17651 (vect_analyze_slp_cost): Handle polynomial vf. 17652 (vect_slp_analyze_node_operations): Likewise. 17653 (vect_slp_analyze_bb_1): Likewise. 17654 (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather 17655 than an unsigned HOST_WIDE_INT. 17656 * tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store) 17657 (vectorizable_load): Handle polynomial vf. 17658 * tree-vectorizer.c (simduid_to_vf::vf): Change from an int to 17659 a poly_uint64. 17660 (adjust_simduid_builtins, shrink_simd_arrays): Update accordingly. 17661 176622018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17663 Alan Hayward <alan.hayward@arm.com> 17664 David Sherwood <david.sherwood@arm.com> 17665 17666 * match.pd: Handle bit operations involving three constants 17667 and try to fold one pair. 17668 176692018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 17670 17671 * tree-vect-loop-manip.c: Include gimple-fold.h. 17672 (slpeel_make_loop_iterate_ntimes): Add step, final_iv and 17673 niters_maybe_zero parameters. Handle other cases besides a step of 1. 17674 (vect_gen_vector_loop_niters): Add a step_vector_ptr parameter. 17675 Add a path that uses a step of VF instead of 1, but disable it 17676 for now. 17677 (vect_do_peeling): Add step_vector, niters_vector_mult_vf_var 17678 and niters_no_overflow parameters. Update calls to 17679 slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters. 17680 Create a new SSA name if the latter choses to use a ste other 17681 than zero, and return it via niters_vector_mult_vf_var. 17682 * tree-vect-loop.c (vect_transform_loop): Update calls to 17683 vect_do_peeling, vect_gen_vector_loop_niters and 17684 slpeel_make_loop_iterate_ntimes. 17685 * tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling) 17686 (vect_gen_vector_loop_niters): Update declarations after above changes. 17687 176882018-01-02 Michael Meissner <meissner@linux.vnet.ibm.com> 17689 17690 * config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE 17691 128-bit round to integer instructions. 17692 (ceil<mode>2): Likewise. 17693 (btrunc<mode>2): Likewise. 17694 (round<mode>2): Likewise. 17695 176962018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 17697 17698 * config/rs6000/rs6000-string.c (expand_block_move): Allow the use of 17699 unaligned VSX load/store on P8/P9. 17700 (expand_block_clear): Allow the use of unaligned VSX 17701 load/store on P8/P9. 17702 177032018-01-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 17704 17705 * config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store): 17706 New function. 17707 (rs6000_analyze_swaps): Mark a web unoptimizable if it contains a 17708 swap associated with both a load and a store. 17709 177102018-01-02 Andrew Waterman <andrew@sifive.com> 17711 17712 * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New. 17713 * config/riscv/riscv.md (clear_cache): Use it. 17714 177152018-01-02 Artyom Skrobov <tyomitch@gmail.com> 17716 17717 * web.c: Remove out-of-date comment. 17718 177192018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17720 17721 * expr.c (fixup_args_size_notes): Check that any existing 17722 REG_ARGS_SIZE notes are correct, and don't try to re-add them. 17723 (emit_single_push_insn_1): Move stack_pointer_delta adjustment to... 17724 (emit_single_push_insn): ...here. 17725 177262018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17727 17728 * rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt. 17729 (const_vector_encoded_nelts): New function. 17730 (CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS. 17731 (const_vector_int_elt, const_vector_elt): Declare. 17732 * emit-rtl.c (const_vector_int_elt_1): New function. 17733 (const_vector_elt): Likewise. 17734 * simplify-rtx.c (simplify_immed_subreg): Avoid taking the address 17735 of CONST_VECTOR_ELT. 17736 177372018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17738 17739 * expr.c: Include rtx-vector-builder.h. 17740 (const_vector_mask_from_tree): Use rtx_vector_builder and operate 17741 directly on the tree encoding. 17742 (const_vector_from_tree): Likewise. 17743 * optabs.c: Include rtx-vector-builder.h. 17744 (expand_vec_perm_var): Use rtx_vector_builder and create a repeating 17745 sequence of "u" values. 17746 * vec-perm-indices.c: Include rtx-vector-builder.h. 17747 (vec_perm_indices_to_rtx): Use rtx_vector_builder and operate 17748 directly on the vec_perm_indices encoding. 17749 177502018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17751 17752 * doc/rtl.texi (const_vector): Describe new encoding scheme. 17753 * Makefile.in (OBJS): Add rtx-vector-builder.o. 17754 * rtx-vector-builder.h: New file. 17755 * rtx-vector-builder.c: Likewise. 17756 * rtl.h (rtx_def::u2): Add a const_vector field. 17757 (CONST_VECTOR_NPATTERNS): New macro. 17758 (CONST_VECTOR_NELTS_PER_PATTERN): Likewise. 17759 (CONST_VECTOR_DUPLICATE_P): Likewise. 17760 (CONST_VECTOR_STEPPED_P): Likewise. 17761 (CONST_VECTOR_ENCODED_ELT): Likewise. 17762 (const_vec_duplicate_p): Check for a duplicated vector encoding. 17763 (unwrap_const_vec_duplicate): Likewise. 17764 (const_vec_series_p): Check for a non-duplicated vector encoding. 17765 Say that the function only returns true for integer vectors. 17766 * emit-rtl.c: Include rtx-vector-builder.h. 17767 (gen_const_vec_duplicate_1): Delete. 17768 (gen_const_vector): Call gen_const_vec_duplicate instead of 17769 gen_const_vec_duplicate_1. 17770 (const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding. 17771 (gen_const_vec_duplicate): Use rtx_vector_builder. 17772 (gen_const_vec_series): Likewise. 17773 (gen_rtx_CONST_VECTOR): Likewise. 17774 * config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h. 17775 (swap_const_vector_halves): Take an rtx pointer rather than rtx. 17776 Build a new vector rather than modifying a CONST_VECTOR in-place. 17777 (handle_special_swappables): Update call accordingly. 17778 * config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h. 17779 (swap_const_vector_halves): Take an rtx pointer rather than rtx. 17780 Build a new vector rather than modifying a CONST_VECTOR in-place. 17781 (handle_special_swappables): Update call accordingly. 17782 177832018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17784 17785 * simplify-rtx.c (simplify_const_binary_operation): Use 17786 CONST_VECTOR_ELT instead of XVECEXP. 17787 177882018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17789 17790 * tree-cfg.c (verify_gimple_assign_ternary): Allow the size of 17791 the selector elements to be different from the data elements 17792 if the selector is a VECTOR_CST. 17793 * tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of 17794 ssizetype for the selector. 17795 177962018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17797 17798 * optabs.c (shift_amt_for_vec_perm_mask): Try using series_p 17799 before testing each element individually. 17800 * tree-vect-generic.c (lower_vec_perm): Likewise. 17801 178022018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17803 17804 * selftest.h (selftest::vec_perm_indices_c_tests): Declare. 17805 * selftest-run-tests.c (selftest::run_tests): Call it. 17806 * vector-builder.h (vector_builder::operator ==): New function. 17807 (vector_builder::operator !=): Likewise. 17808 * vec-perm-indices.h (vec_perm_indices::series_p): Declare. 17809 (vec_perm_indices::all_from_input_p): New function. 17810 * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. 17811 (test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise. 17812 * fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder 17813 instead of reading the VECTOR_CST directly. Detect whether both 17814 vector inputs are the same before constructing the vec_perm_indices, 17815 and update the number of inputs argument accordingly. Use the 17816 utility functions added above. Only construct sel2 if we need to. 17817 178182018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17819 17820 * optabs.c (expand_vec_perm_var): Use an explicit encoding for 17821 the broadcast of the low byte. 17822 (expand_mult_highpart): Use an explicit encoding for the permutes. 17823 * optabs-query.c (can_mult_highpart_p): Likewise. 17824 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. 17825 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 17826 (vectorizable_bswap): Likewise. 17827 * tree-vect-data-refs.c (vect_grouped_store_supported): Use an 17828 explicit encoding for the power-of-2 permutes. 17829 (vect_permute_store_chain): Likewise. 17830 (vect_grouped_load_supported): Likewise. 17831 (vect_permute_load_chain): Likewise. 17832 178332018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17834 17835 * vec-perm-indices.h (vec_perm_indices_to_tree): Declare. 17836 * vec-perm-indices.c (vec_perm_indices_to_tree): New function. 17837 * tree-ssa-forwprop.c (simplify_vector_constructor): Use it. 17838 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 17839 * tree-vect-stmts.c (vectorizable_bswap): Likewise. 17840 (vect_gen_perm_mask_any): Likewise. 17841 178422018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17843 17844 * int-vector-builder.h: New file. 17845 * vec-perm-indices.h: Include int-vector-builder.h. 17846 (vec_perm_indices): Redefine as an int_vector_builder. 17847 (auto_vec_perm_indices): Delete. 17848 (vec_perm_builder): Redefine as a stand-alone class. 17849 (vec_perm_indices::vec_perm_indices): New function. 17850 (vec_perm_indices::clamp): Likewise. 17851 * vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h. 17852 (vec_perm_indices::new_vector): New function. 17853 (vec_perm_indices::new_expanded_vector): Update for new 17854 vec_perm_indices class. 17855 (vec_perm_indices::rotate_inputs): New function. 17856 (vec_perm_indices::all_in_range_p): Operate directly on the 17857 encoded form, without computing elided elements. 17858 (tree_to_vec_perm_builder): Operate directly on the VECTOR_CST 17859 encoding. Update for new vec_perm_indices class. 17860 * optabs.c (expand_vec_perm_const): Create a vec_perm_indices for 17861 the given vec_perm_builder. 17862 (expand_vec_perm_var): Update vec_perm_builder constructor. 17863 (expand_mult_highpart): Use vec_perm_builder instead of 17864 auto_vec_perm_indices. 17865 * optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and 17866 vec_perm_indices instead of auto_vec_perm_indices. Use a single 17867 or double series encoding as appropriate. 17868 * fold-const.c (fold_ternary_loc): Use vec_perm_builder and 17869 vec_perm_indices instead of auto_vec_perm_indices. 17870 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 17871 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 17872 (vect_permute_store_chain): Likewise. 17873 (vect_grouped_load_supported): Likewise. 17874 (vect_permute_load_chain): Likewise. 17875 (vect_shift_permute_load_chain): Likewise. 17876 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. 17877 (vect_transform_slp_perm_load): Likewise. 17878 (vect_schedule_slp_instance): Likewise. 17879 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 17880 (vectorizable_mask_load_store): Likewise. 17881 (vectorizable_bswap): Likewise. 17882 (vectorizable_store): Likewise. 17883 (vectorizable_load): Likewise. 17884 * tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and 17885 vec_perm_indices instead of auto_vec_perm_indices. Use 17886 tree_to_vec_perm_builder to read the vector from a tree. 17887 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a 17888 vec_perm_builder instead of a vec_perm_indices. 17889 (have_whole_vector_shift): Use vec_perm_builder and 17890 vec_perm_indices instead of auto_vec_perm_indices. Leave the 17891 truncation to calc_vec_perm_mask_for_shift. 17892 (vect_create_epilog_for_reduction): Likewise. 17893 * config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change 17894 from auto_vec_perm_indices to vec_perm_indices. 17895 (aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm 17896 instead of changing individual elements. 17897 (aarch64_vectorize_vec_perm_const): Use new_vector to install 17898 the vector in d.perm. 17899 * config/arm/arm.c (expand_vec_perm_d::perm): Change 17900 from auto_vec_perm_indices to vec_perm_indices. 17901 (arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm 17902 instead of changing individual elements. 17903 (arm_vectorize_vec_perm_const): Use new_vector to install 17904 the vector in d.perm. 17905 * config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even): 17906 Update vec_perm_builder constructor. 17907 (rs6000_expand_interleave): Likewise. 17908 * config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise. 17909 (rs6000_expand_interleave): Likewise. 17910 179112018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17912 17913 * optabs-query.c (can_vec_perm_var_p): Check whether lowering 17914 to qimode could truncate the indices. 17915 * optabs.c (expand_vec_perm_var): Likewise. 17916 179172018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 17918 17919 * Makefile.in (OBJS): Add vec-perm-indices.o. 17920 * vec-perm-indices.h: New file. 17921 * vec-perm-indices.c: Likewise. 17922 * target.h (vec_perm_indices): Replace with a forward class 17923 declaration. 17924 (auto_vec_perm_indices): Move to vec-perm-indices.h. 17925 * optabs.h: Include vec-perm-indices.h. 17926 (expand_vec_perm): Delete. 17927 (selector_fits_mode_p, expand_vec_perm_var): Declare. 17928 (expand_vec_perm_const): Declare. 17929 * target.def (vec_perm_const_ok): Replace with... 17930 (vec_perm_const): ...this new hook. 17931 * doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with... 17932 (TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook. 17933 * doc/tm.texi: Regenerate. 17934 * optabs.def (vec_perm_const): Delete. 17935 * doc/md.texi (vec_perm_const): Likewise. 17936 (vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST. 17937 * expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than 17938 expand_vec_perm for constant permutation vectors. Assert that 17939 the mode of variable permutation vectors is the integer equivalent 17940 of the mode that is being permuted. 17941 * optabs-query.h (selector_fits_mode_p): Declare. 17942 * optabs-query.c: Include vec-perm-indices.h. 17943 (selector_fits_mode_p): New function. 17944 (can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const 17945 is defined, instead of checking whether the vec_perm_const_optab 17946 exists. Use targetm.vectorize.vec_perm_const instead of 17947 targetm.vectorize.vec_perm_const_ok. Check whether the indices 17948 fit in the vector mode before using a variable permute. 17949 * optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a 17950 vec_perm_indices instead of an rtx. 17951 (expand_vec_perm): Replace with... 17952 (expand_vec_perm_const): ...this new function. Take the selector 17953 as a vec_perm_indices rather than an rtx. Also take the mode of 17954 the selector. Update call to shift_amt_for_vec_perm_mask. 17955 Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab. 17956 Use vec_perm_indices::new_expanded_vector to expand the original 17957 selector into bytes. Check whether the indices fit in the vector 17958 mode before using a variable permute. 17959 (expand_vec_perm_var): Make global. 17960 (expand_mult_highpart): Use expand_vec_perm_const. 17961 * fold-const.c: Includes vec-perm-indices.h. 17962 * tree-ssa-forwprop.c: Likewise. 17963 * tree-vect-data-refs.c: Likewise. 17964 * tree-vect-generic.c: Likewise. 17965 * tree-vect-loop.c: Likewise. 17966 * tree-vect-slp.c: Likewise. 17967 * tree-vect-stmts.c: Likewise. 17968 * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const): 17969 Delete. 17970 * config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete. 17971 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const) 17972 (aarch64_vectorize_vec_perm_const_ok): Fuse into... 17973 (aarch64_vectorize_vec_perm_const): ...this new function. 17974 (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 17975 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 17976 * config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete. 17977 * config/arm/vec-common.md (vec_perm_const<mode>): Delete. 17978 * config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 17979 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 17980 (arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge 17981 into... 17982 (arm_vectorize_vec_perm_const): ...this new function. Explicitly 17983 check for NEON modes. 17984 * config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete. 17985 * config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete. 17986 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment. 17987 (ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge 17988 into... 17989 (ix86_vectorize_vec_perm_const): ...this new function. Incorporate 17990 the old VEC_PERM_CONST conditions. 17991 * config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete. 17992 * config/ia64/vect.md (vec_perm_const<mode>): Delete. 17993 * config/ia64/ia64.c (ia64_expand_vec_perm_const) 17994 (ia64_vectorize_vec_perm_const_ok): Merge into... 17995 (ia64_vectorize_vec_perm_const): ...this new function. 17996 * config/mips/loongson.md (vec_perm_const<mode>): Delete. 17997 * config/mips/mips-msa.md (vec_perm_const<mode>): Delete. 17998 * config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete. 17999 * config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete. 18000 * config/mips/mips.c (mips_expand_vec_perm_const) 18001 (mips_vectorize_vec_perm_const_ok): Merge into... 18002 (mips_vectorize_vec_perm_const): ...this new function. 18003 * config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete. 18004 * config/powerpcspe/paired.md (vec_perm_constv2sf): Delete. 18005 * config/powerpcspe/spe.md (vec_perm_constv2si): Delete. 18006 * config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete. 18007 * config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const) 18008 (rs6000_expand_vec_perm_const): Delete. 18009 * config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): 18010 Delete. 18011 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 18012 (altivec_expand_vec_perm_const_le): Take each operand individually. 18013 Operate on constant selectors rather than rtxes. 18014 (altivec_expand_vec_perm_const): Likewise. Update call to 18015 altivec_expand_vec_perm_const_le. 18016 (rs6000_expand_vec_perm_const): Delete. 18017 (rs6000_vectorize_vec_perm_const_ok): Delete. 18018 (rs6000_vectorize_vec_perm_const): New function. 18019 (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of 18020 an element count and rtx array. 18021 (rs6000_expand_extract_even): Update call accordingly. 18022 (rs6000_expand_interleave): Likewise. 18023 * config/rs6000/altivec.md (vec_perm_constv16qi): Delete. 18024 * config/rs6000/paired.md (vec_perm_constv2sf): Delete. 18025 * config/rs6000/vsx.md (vec_perm_const<mode>): Delete. 18026 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const) 18027 (rs6000_expand_vec_perm_const): Delete. 18028 * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 18029 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 18030 (altivec_expand_vec_perm_const_le): Take each operand individually. 18031 Operate on constant selectors rather than rtxes. 18032 (altivec_expand_vec_perm_const): Likewise. Update call to 18033 altivec_expand_vec_perm_const_le. 18034 (rs6000_expand_vec_perm_const): Delete. 18035 (rs6000_vectorize_vec_perm_const_ok): Delete. 18036 (rs6000_vectorize_vec_perm_const): New function. Remove stray 18037 reference to the SPE evmerge intructions. 18038 (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of 18039 an element count and rtx array. 18040 (rs6000_expand_extract_even): Update call accordingly. 18041 (rs6000_expand_interleave): Likewise. 18042 * config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of... 18043 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this 18044 new function. 18045 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 18046 180472018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 18048 18049 * optabs.c (expand_vec_perm_1): Assert that SEL has an integer 18050 vector mode and that that mode matches the mode of the data 18051 being permuted. 18052 (expand_vec_perm): Split handling of non-CONST_VECTOR selectors 18053 out into expand_vec_perm_var. Do all CONST_VECTOR handling here, 18054 directly using expand_vec_perm_1 when forcing selectors into 18055 registers. 18056 (expand_vec_perm_var): New function, split out from expand_vec_perm. 18057 180582018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 18059 18060 * optabs-query.h (can_vec_perm_p): Delete. 18061 (can_vec_perm_var_p, can_vec_perm_const_p): Declare. 18062 * optabs-query.c (can_vec_perm_p): Split into... 18063 (can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions. 18064 (can_mult_highpart_p): Use can_vec_perm_const_p to test whether a 18065 particular selector is valid. 18066 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 18067 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 18068 (vect_grouped_load_supported): Likewise. 18069 (vect_shift_permute_load_chain): Likewise. 18070 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. 18071 (vect_transform_slp_perm_load): Likewise. 18072 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 18073 (vectorizable_bswap): Likewise. 18074 (vect_gen_perm_mask_checked): Likewise. 18075 * fold-const.c (fold_ternary_loc): Likewise. Don't take 18076 implementations of variable permutation vectors into account 18077 when deciding which selector to use. 18078 * tree-vect-loop.c (have_whole_vector_shift): Don't check whether 18079 vec_perm_const_optab is supported; instead use can_vec_perm_const_p 18080 with a false third argument. 18081 * tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p 18082 to test whether the constant selector is valid and can_vec_perm_var_p 18083 to test whether a variable selector is valid. 18084 180852018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 18086 18087 * optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *. 18088 * optabs-query.c (can_vec_perm_p): Likewise. 18089 * fold-const.c (fold_vec_perm): Take a const vec_perm_indices & 18090 instead of vec_perm_indices. 18091 * tree-vectorizer.h (vect_gen_perm_mask_any): Likewise, 18092 (vect_gen_perm_mask_checked): Likewise, 18093 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise, 18094 (vect_gen_perm_mask_checked): Likewise, 18095 180962018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 18097 18098 * optabs-query.h (qimode_for_vec_perm): Declare. 18099 * optabs-query.c (can_vec_perm_p): Split out qimode search to... 18100 (qimode_for_vec_perm): ...this new function. 18101 * optabs.c (expand_vec_perm): Use qimode_for_vec_perm. 18102 181032018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 18104 18105 * rtlanal.c (canonicalize_condition): Return 0 if final rtx 18106 does not have a conditional at the top. 18107 181082018-01-02 Richard Biener <rguenther@suse.de> 18109 18110 * ipa-inline.c (big_speedup_p): Fix expression. 18111 181122018-01-02 Jan Hubicka <hubicka@ucw.cz> 18113 18114 PR target/81616 18115 * config/i386/x86-tune-costs.h: Increase cost of integer load costs 18116 for generic 4->6. 18117 181182018-01-02 Jan Hubicka <hubicka@ucw.cz> 18119 18120 PR target/81616 18121 Generic tuning. 18122 * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17, 18123 cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14 18124 and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase 18125 cond_taken_branch_cost 3->4. 18126 181272018-01-01 Jakub Jelinek <jakub@redhat.com> 18128 18129 PR tree-optimization/83581 18130 * tree-loop-distribution.c (pass_loop_distribution::execute): Return 18131 TODO_cleanup_cfg if any changes have been made. 18132 18133 PR middle-end/83608 18134 * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of 18135 convert_modes if target mode has the right side, but different mode 18136 class. 18137 18138 PR middle-end/83609 18139 * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg 18140 last argument when extracting from CONCAT. If either from_real or 18141 from_imag is NULL, use expansion through memory. If result is not 18142 a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg 18143 the parts directly to inner mode, if even that fails, use expansion 18144 through memory. 18145 18146 PR middle-end/83623 18147 * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT, 18148 check for bswap in mode rather than HImode and use that in expand_unop 18149 too. 18150 18151Copyright (C) 2018 Free Software Foundation, Inc. 18152 18153Copying and distribution of this file, with or without modification, 18154are permitted in any medium without royalty provided the copyright 18155notice and this notice are preserved. 18156