12018-12-31 Max Filippov <jcmvbkbc@gmail.com> 2 3 PR target/86814 4 * config/xtensa/xtensa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 5 Define to speculation_safe_value_not_needed. 6 72018-12-31 Martin Liska <mliska@suse.cz> 8 9 * predict.c (set_even_probabilities): Include also 10 unlikely_count in calculation. 11 (combine_predictions_for_bb): Consider also HOT and 12 COLD labels predictions. 13 * predict.def (PRED_HOT_LABEL): Move it just after 14 __builtin_expect_with_probability predictor. 15 (PRED_COLD_LABEL): Likewise. 16 172018-12-30 Jan Hubicka <hubicka@ucw.cz> 18 19 * x86-tune.def: Enable inter_unit_moves_to_vec for generic. 20 212018-12-30 Martin Sebor <msebor@redhat.com> 22 Jeff Law <law@redhat.com> 23 24 * gimple-fold.c (get_range_strlen): Minor logic cleanup. Add comments 25 on code's intent. 26 27 * gimple-fold.c (strlen_range_kind): New enum. 28 (get_range_strlen): Update signature to use strlen_range_kind 29 instead of type+fuzzy. 30 (get_range_strlen_tree): Update signature to use 31 strlen_range_kind instead of type+fuzzy. Pass rkind down to 32 get_range_strlen. Check the rkind enum value instead of 33 type+fuzzy. 34 (get_range_strlen): Similarly. 35 (get_maxval_strlen): Update signature to make NONSTR argument have 36 a default value and make static. Add asserts to ensure sanity of 37 arguments. Update calls to get_range_strlen. 38 (gimple_fold_builtin_strcpy): Update calls to get_maxval_strlen. 39 (gimple_fold_builtin_strcat, gimple_fold_builtin_fputs): Similarly. 40 (gimple_fold_builtin_memory_chk): Similarly. 41 (gimple_fold_builtin_stxcpy_chk): Similarly. 42 (gimple_fold_builtin_snprintf_chk): Similarly. 43 (gimple_fold_builtin_sprintf, gimple_fold_builtin_snprintf): Similarly. 44 * gimple-fold.h (get_maxval_strlen): Delete prototype. 45 462018-12-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> 47 48 * config/msp430/msp430.c (msp430_attr): Warn when the critical and 49 interrupt function attributes are used together. 50 * gcc/doc/extend.texi: Update documentation on the critical attribute. 51 522018-12-29 John David Anglin <danglin@gcc.gnu.org> 53 54 * config.gcc (hppa*64*-*-linux*): Add pa/t-pa to tmake_file. Define 55 d_target_objs. 56 (hppa*-*-openbsd*): Likewise. 57 (hppa[12]*-*-hpux10*): Likewise. 58 (hppa*64*-*-hpux11*): Likewise. 59 (hppa[12]*-*-hpux11*): Likewise. 60 612018-12-29 Jakub Jelinek <jakub@redhat.com> 62 63 PR ipa/88586 64 * omp-low.c (lower_omp_task_reductions): Set DECL_CONTEXT on field 65 and ifield. Update TYPE_ALIGN from alignment of field, ifield or 66 bfield. 67 682018-12-28 Uros Bizjak <ubizjak@gmail.com> 69 70 * config/i386/i386.h (ADDITIONAL_REGISTER_NAMES): Add 71 sil, dil, bpl and spl aliases. 72 732018-12-28 Martin Sebor <msebor@redhat.com> 74 75 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Avoid 76 undesirable warning. 77 782018-12-28 Thomas Schwinge <thomas@codesourcery.com> 79 80 * omp-expand.c (expand_omp_target): Restructure OpenACC vs. OpenMP 81 code paths. Update for libgomp OpenACC entry points change. 82 832018-12-28 Thomas Schwinge <thomas@codesourcery.com> 84 Julian Brown <julian@codesourcery.com> 85 86 * gimplify.c (gimplify_scan_omp_clauses): Fix known_eq typo/bug. 87 882018-12-27 Jan Hubicka <hubicka@ucw.cz> 89 90 * ipa-devirt.c (polymorphic_call_target_d): Add n_odr_types. 91 (polymorphic_call_target_hasher::hash): Hash it. 92 (polymorphic_call_target_hasher::equal): Compare it. 93 (possible_polymorphic_call_targets): Set it. 94 * tree.c (free_lang_data): Rebuild type inheritance graph even on 95 non-LTO path. 96 972018-12-27 Martin Liska <mliska@suse.cz> 98 99 PR gcov-profile/88225 100 * gcov.c(source_info::get_functions_at_location): 101 Use newly added line_to_function_map. 102 (source_info::add_function): New. 103 (output_json_intermediate_file): Use a pointer return 104 type for get_functions_at_location. 105 (process_all_functions): Use add_function instead 106 of direct push to a s->functions container. 107 (release_structures): Release ident_to_fn. 108 (read_graph_file): Register function into ident_to_fn. 109 (read_count_file): Use the map. 110 (output_lines): Handle pointer return type of 111 get_functions_at_location. 112 1132018-12-27 Martin Liska <mliska@suse.cz> 114 115 * builtins.c (expand_movstr): Compare with RETURN_BEGIN. 116 * expr.c (move_by_pieces): Likewise. 117 (store_by_pieces): Likewise. 118 (store_expr): Fix GNU coding style. 119 1202018-12-26 Andrew Pinski <apinski@marvell.com> 121 122 * config/aarch64/aarch64-cores.def (octeontx): New. 123 (octeontx81): Likewise. 124 (octeontx83): Likewise. 125 * config/aarch64/aarch64-tune.md: Regenerate. 126 * doc/invoke.texi (AArch64 Options) [mtune]: Add octeontx, octeontx81 127 and octeontx83. 128 1292018-12-24 Martin Sebor <msebor@redhat.com> 130 131 * gimple-fold.c (get_range_strlen_tree): Factored out of 132 get_range_strlen. Minor comment updates/additions. Assert 133 argument is not a simple SSA_NAME. 134 (get_range_strlen): Call get_range_strlen_tree as appropriate. 135 Minor comment updates/additions. 136 1372018-12-24 Jan Hubicka <hubicka@ucw.cz> 138 139 * ipa-devirt.c (dump_targets): Cap number of targets printed. 140 (dump_possible_polymorphic_call_targets): Add verbose parameter. 141 (ipa_devirt): Use it. 142 * ipa-utils.h (dump_possible_polymorphic_call_targets): Add verbose 143 parametrs. 144 1452018-12-24 Jan Hubicka <hubicka@ucw.cz> 146 147 PR lto/88140 148 * tree.c (fld_simplified_type): Temporarily disable array 149 simplification. 150 1512018-12-24 Jan Hubicka <hubicka@ucw.cz> 152 153 * lto-symtab.c (lto_symtab_merge_decls_2): Do not report ODR violations 154 for method whose basetype was already reported. 155 * ipa-devirt.c (odr_type_violation_reported_p): New. 156 * ipa-utils.h (odr_type_violation_reported_p): Declare. 157 1582018-12-24 Iain Sandoe <iain@sandoe.co.uk> 159 160 * configure.ac (dwarf2_debug_line): Check for the debug_line 161 section using otool when there’s no objdump available. 162 * configure: Regenerate. 163 1642018-12-24 Jan Hubicka <hubicka@ucw.cz> 165 166 * ipa-utils.c (ipa_merge_profiles): Fix updating of fnsummary; 167 also handle rescaling of mismatched profiles. 168 * ipa-fnsummary.c (analyze_function): Handle speculative edges. 169 1702018-12-23 Martin Sebor <msebor@redhat.com> 171 Jeff Law <law@redhat.com> 172 173 * builtins.h (c_strlen_data): Add new fields and comments. 174 * builtins.c (unterminated_array): Change field reference from 175 "len" to "minlen" in c_strlen_data instance. 176 * gimple-fold.c (get_range_strlen): Likewise. 177 * gimple-ssa-sprintf.c (get_string_length): Likewise. 178 179 * builtins.c (unterminated_array): Rename "data" to "lendata". Fix 180 a few comments. 181 (expand_builtin_strnlen, expand_builtin_stpcpy_1): Likewise. 182 (fold_builtin_strlen): Likewise. 183 * gimple-fold.c (get_range_strlen): Likewise. Also rename a couple 184 instances of "type" to "optype" and "arg" to "fld". 185 186 * builtins.c (unterminated_array): Use empty brace initialization 187 for c_strlen_data. 188 (c_strlen, expand_builtin_strnlen): Likewise. 189 (expand_builtin_stpcpy_1, fold_builtin_strlen): Likewise. 190 * gimple-fold.c (get_range_strlen): Likewise. 191 (gimple_fold_builtin_stpcpy): Likewise. 192 * gimple-ssa-sprintf.c (get_string_length): Likewise. 193 1942018-12-23 Alan Modra <amodra@gmail.com> 195 196 PR 88346 197 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Correct %e message. Handle 198 -mcpu=rs64, not -mcpu=rs64a. Handle -mcpu=powerpc64 and -mcpu=titan. 199 * config/rs6000/driver-rs6000.c (asm_names): Similarly. 200 * config/rs6000/aix71.h (ASM_CPU_SPEC): Delete %e message. Handle 201 -mcpu=rs64, not -mcpu=rs64a. 202 * config/rs6000/aix72.h (ASM_CPU_SPEC): Likewise. 203 2042018-12-23 Iain Sandoe <iain@sandoe.co.uk> 205 206 * lto-wrapper.c (tool_cleanup): Don’t report ficticious temp files. 207 (debug_objcopy): Improve temp filenames. Append the early 208 debug objects to the outfiles. Remove the phase prelinking the 209 early debug. Emit the early debug filenames for ld. 210 2112018-12-23 Iain Sandoe <iain@sandoe.co.uk> 212 213 * config/i386/darwin.h (TARGET_ASM_OUTPUT_IDENT): New. 214 2152018-12-23 Iain Sandoe <iain@sandoe.co.uk> 216 217 * collect2.c (maybe_run_lto_and_relink): Don’t say we have a temp file 218 unless we actually did some LTO. 219 (has_lto_section, is_lto_object_file): New. 220 (maybe_lto_object_file): Remove. 221 (scan_prog_file): Use is_lto_object_file() instead of scanning the 222 output of nm. 223 2242018-12-23 Iain Sandoe <iain@sandoe.co.uk> 225 226 * collect2.c (main): Parse the output file early so we can make nicer 227 temp names. Respond to “-save-temps” in the GCC OPTIONS. 228 (maybe_unlink): Don’t print “[Leaving…”] for files we never created 229 and don’t exist. 230 2312018-12-23 Iain Sandoe <iain@sandoe.co.uk> 232 233 * collect2.c (main): Combine flags from both the command line and 234 COLLECT_GCC_OPTIONS to determine the set in force 235 2362018-12-21 Jan Hubicka <hubicka@ucw.cz> 237 238 * ipa-utils.c (ipa_merge_profiles): Recompute summaries. 239 2402018-12-21 Jakub Jelinek <jakub@redhat.com> 241 242 PR middle-end/85594 243 PR middle-end/88553 244 * omp-expand.c (extract_omp_for_update_vars): Regimplify the condition 245 if needed. 246 (expand_omp_for_generic): Don't clobber t temporary for ordered loops. 247 2482018-12-15 Jan Hubicka <hubicka@ucw.cz> 249 250 PR ipa/88561 251 * ipa-polymorphic-call.c 252 (ipa_polymorphic_call_context::ipa_polymorphic_call_context): Handle 253 arguments of thunks correctly. 254 (ipa_polymorphic_call_context::get_dynamic_context): Be ready for 255 NULL instance pinter. 256 * lto-cgraph.c (lto_output_node): Always stream thunk info. 257 2582018-12-21 Andreas Krebbel <krebbel@linux.ibm.com> 259 260 * config/s390/vector.md ("floatv2div2df2", "floatunsv2div2df2") 261 ("fix_truncv2dfv2di2", "fixuns_truncv2dfv2di2"): New pattern 262 definitions. 263 2642018-12-21 Eric Botcazou <ebotcazou@adacore.com> 265 266 PR rtl-optimization/87727 267 * combine.c (cant_combine_insn_p): On a LEAF_REGISTERS target, combine 268 again moves from leaf hard registers. 269 270 * final.c (final_scan_insn_1) <NOTE_INSN_INLINE_ENTRY>: Minor tweak. 271 2722018-12-21 Jakub Jelinek <jakub@redhat.com> 273 274 PR target/88522 275 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask, 276 *avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask, 277 *avx512pf_scatterpf<mode>df_mask): Use %X5 instead of %5 for 278 -masm=intel. 279 (gatherq_mode): Remove mode iterator. 280 (*avx512f_gathersi<mode>, *avx512f_gathersi<mode>_2): Use X instead 281 of <xtg_mode>. 282 (*avx512f_gatherdi<mode>): Use X instead of <gatherq_mode>. 283 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>, 284 *avx512f_scatterdi<mode>): Use %X5 for -masm=intel. 285 286 PR rtl-optimization/88563 287 * expr.c (expand_expr_real_2) <case WIDEN_MULT_EXPR>: Swap innermode 288 and mode arguments to convert_modes. Likewise swap mode and word_mode 289 arguments. Handle both arguments with VOIDmode before convert_modes 290 of one of them. Formatting fixes. 291 2922018-12-21 Uros Bizjak <ubizjak@gmail.com> 293 294 PR target/88556 295 * internal-fn.def (COSH): New. 296 (SINH): Ditto. 297 (TANH): Ditto. 298 * optabs.def (cosh_optab): New. 299 (sinh_optab): Ditto. 300 (tanh_optab): Ditto. 301 * config/i386/i386-protos.h (ix86_emit_i387_sinh): New prototype. 302 (ix86_emit_i387_cosh): Ditto. 303 (ix86_emit_i387_tanh): Ditto. 304 * config/i386/i386.c (ix86_emit_i387_sinh): New function. 305 (ix86_emit_i387_cosh): Ditto. 306 (ix86_emit_i387_tanh): Ditto. 307 * config/i386/i386.md (sinhxf2): New expander. 308 (sinh<mode>2): Ditto. 309 (coshxf2): Ditto. 310 (cosh<mode>2): Ditto. 311 (tanhxf2): Ditto. 312 (tanh<mode>2): Ditto. 313 3142018-12-21 Jakub Jelinek <jakub@redhat.com> 315 316 PR target/88547 317 * config/i386/i386.c (ix86_expand_int_sse_cmp): Optimize 318 x > y ? 0 : -1 into min (x, y) == x ? -1 : 0. 319 3202018-12-21 Jan Beulich <jbeulich@suse.com> 321 322 * config/i386/sse.md (vaesdec_<mode>, vaesdeclast_<mode>): Allow 323 memory input. 324 3252018-12-21 Alexandre Oliva <oliva@adacore.com> 326 327 * config.gcc (tmake_file): Add name to tmake_file for 328 each @name in --with-multilib-list on arm-*-* targets. 329 * doc/install.texi (with-multilib-list): Document it. 330 3312018-12-21 Jakub Jelinek <jakub@redhat.com> 332 333 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Use 334 DR_TARGET_ALIGNMENT on dr_info rather than dr. Spelling fixes. 335 3362018-12-20 Joern Rennecke <joern.rennecke@riscy-ip.com> 337 338 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Don't do 339 versioning for data accesses with misaligned step. 340 3412018-12-20 H.J. Lu <hongjiu.lu@intel.com> 342 343 PR c/51628 344 * doc/invoke.texi: Document -Wno-address-of-packed-member. 345 3462018-12-20 Vladimir Makarov <vmakarov@redhat.com> 347 348 PR target/88457 349 * ira-color.c (fast_allocation): Choose the best cost hard reg. 350 3512018-12-20 Richard Sandiford <richard.sandiford@arm.com> 352 353 * config/aarch64/iterators.md (SVE_INT_UNARY, fp_int_op): Add abs. 354 (SVE_FP_UNARY): Sort. 355 3562018-12-20 Richard Sandiford <richard.sandiford@arm.com> 357 358 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_4): Use 359 sve_fmla_op rather than sve_fmad_op for the movprfx alternative. 360 3612018-12-20 Martin Jambor <mjambor@suse.cz> 362 363 PR ipa/88214 364 * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Assert that 365 ptr is a pointer. 366 3672018-12-20 Richard Biener <rguenther@suse.de> 368 369 PR tree-optimization/84362 370 * tree-ssa-loop-im.c: Include alias.h, builtins.h and tree-dfa.h. 371 (struct im_mem_ref): add ref_canonical flag. 372 (struct mem_ref_hasher): Use ao_ref as compare_type. 373 (mem_ref_hasher::equal): Adjust and add variant comparing ao_ref 374 parts. 375 (mem_ref_alloc): Take ao_ref parameter, initialize ref_canonical 376 member. 377 (gather_mem_refs_stmt): Set up ao_ref early and do the lookup 378 using it. If we have non-equal refs canonicalize the one 379 in the hashtable used for insertion. 380 (tree_ssa_lim_initialize): Adjust. 381 3822018-12-20 Jakub Jelinek <jakub@redhat.com> 383 384 PR target/88547 385 * config/i386/i386.c (ix86_expand_sse_movcc): For maskcmp, try to 386 emit vpmovm2? instruction perhaps after knot?. Reorganize code 387 so that it doesn't have to test !maskcmp in almost every conditional. 388 3892018-12-20 Alan Modra <amodra@gmail.com> 390 391 * config/rs6000/sysv4.h (GNU_USER_DYNAMIC_LINKER): Define. 392 3932018-12-19 Andreas Tobler <andreast@gcc.gnu.org> 394 395 * config.gcc: Enable TARGET_DEFAULT_ASYNC_UNWIND_TABLES on 396 aarch64*-*-freebsd* 397 3982018-12-19 Uros Bizjak <ubizjak@gmail.com> 399 400 * config/i386/i386.md (SWI1248_AVX512BWDQ_64): Rename from 401 SWI1248_AVX512BWDQ2_64. Unconditionally enable HImode. 402 (*cmp<mode>_ccz_1): Emit kortest instead of ktest insn. 403 Use SWI1248_AVX512BWDQ_64 mode iterator and enable only for 404 TARGET_AVX512F. 405 4062018-12-19 Thomas Preud'homme <thomas.preudhomme@linaro.org> 407 408 * config/arm/elf.h: Update comment about condition that need to 409 match with libgcc/config/arm/lib1funcs.S to also include 410 libgcc/config/arm/t-arm. 411 * doc/sourcebuild.texi (output-exists, output-exists-not): Rename 412 subsubsection these directives are in to "Check for output files". 413 Move scan-symbol to that section and add to it new scan-symbol-not 414 directive. 415 4162018-12-19 Tom de Vries <tdevries@suse.de> 417 418 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Define. 419 4202018-12-19 Tom de Vries <tdevries@suse.de> 421 422 * omp-offload.c (oacc_fn_attrib_level): Remove static. 423 * omp-offload.h (oacc_fn_attrib_level): Declare. 424 4252018-12-19 Tom de Vries <tdevries@suse.de> 426 427 * omp-offload.c (oacc_get_default_dim): New function. 428 * omp-offload.h (oacc_get_default_dim): Declare. 429 4302018-12-19 David Malcolm <dmalcolm@redhat.com> 431 432 PR c++/87504 433 * gcc-rich-location.c 434 (maybe_range_label_for_tree_type_mismatch::get_text): Move here from 435 c/c-typeck.c. 436 (binary_op_rich_location::binary_op_rich_location): New ctor. 437 (binary_op_rich_location::use_operator_loc_p): New function. 438 * gcc-rich-location.h 439 (class maybe_range_label_for_tree_type_mismatch)): Move here from 440 c/c-typeck.c. 441 (struct op_location_t): New forward decl. 442 (class binary_op_rich_location): New class. 443 * tree.h (struct op_location_t): New struct. 444 4452018-12-19 David Malcolm <dmalcolm@redhat.com> 446 447 PR c++/43064 448 PR c++/43486 449 * convert.c: Include "selftest.h". 450 (preserve_any_location_wrapper): New function. 451 (convert_to_pointer_maybe_fold): Update to handle location 452 wrappers. 453 (convert_to_real_maybe_fold): Likewise. 454 (convert_to_integer_1): Strip expr when using TREE_OVERFLOW. 455 Handle location wrappers when checking for INTEGER_CST. 456 (convert_to_integer_maybe_fold): Update to handle location 457 wrappers. 458 (convert_to_complex_maybe_fold): Likewise. 459 (selftest::test_convert_to_integer_maybe_fold): New functions. 460 (selftest::convert_c_tests): New function. 461 * convert.h (preserve_any_location_wrapper): New decl. 462 * fold-const.c (size_binop_loc): Strip location wrappers when 463 using TREE_OVERFLOW. 464 (operand_equal_p): Strip any location wrappers. 465 (integer_valued_real_p): Strip any location wrapper. 466 * selftest-run-tests.c (selftest::run_tests): Call 467 selftest::convert_c_tests. 468 * selftest.h (selftest::convert_c_tests): New decl. 469 * tree.c (build_complex): Assert that REAL and IMAG are constants. 470 (integer_zerop): Look through location wrappers. 471 (integer_onep): Likewise. 472 (integer_each_onep): Likewise. 473 (integer_all_onesp): Likewise. 474 (integer_minus_onep): Likewise. 475 (integer_pow2p): Likewise. 476 (integer_nonzerop): Likewise. 477 (integer_truep): Likewise. 478 (fixed_zerop): Likewise. 479 (real_zerop): Likewise. 480 (real_onep): Likewise. 481 (real_minus_onep): Likewise. 482 (tree_int_cst_equal): Likewise. 483 (simple_cst_equal): Treat location wrappers with non-equal source 484 locations as being unequal. 485 (uniform_integer_cst_p): Look through location wrappers. 486 (maybe_wrap_with_location): Don't create wrappers if any 487 auto_suppress_location_wrappers are active. 488 (suppress_location_wrappers): New variable. 489 (selftest::test_predicates): New test. 490 (selftest::tree_c_tests): Call it. 491 * tree.h (CONSTANT_CLASS_OR_WRAPPER_P): New macro. 492 (suppress_location_wrappers): New decl. 493 (class auto_suppress_location_wrappers): New class. 494 4952018-12-19 Paul A. Clarke <pc@us.ibm.com> 496 497 * config/rs6000/tmmintrin.h (_mm_hadds_epi16): Vector lanes swapped. 498 (_mm_hsub_epi32): Likewise. 499 (_mm_shuffle_epi8): Fix reversed interpretation of parameters. 500 (_mm_shuffle_pi8): Likewise. 501 (_mm_addubs_pi16): Likewise. 502 5032018-12-19 Thomas Preud'homme <thomas.preudhomme@linaro.org> 504 505 * config/arm/arm.h (TARGET_HARD_FLOAT): Restrict to TARGET_32BIT 506 targets. 507 * config/arm/arm.c (output_return_instruction): Only check 508 TARGET_HARD_FLOAT to decide whether FP instructions are available. 509 5102018-12-19 Tom de Vries <tom@codesourcery.com> 511 512 * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization 513 dump files): Add offload-rtl. 514 5152018-12-19 Segher Boessenkool <segher@kernel.crashing.org> 516 517 PR target/88213 518 * config/rs6000/vsx.md (*vsx_extract_<P:mode>_<VSX_D:mode>_load): 519 Require TARGET_POWERPC64. 520 5212018-12-19 Richard Biener <rguenther@suse.de> 522 523 PR tree-optimization/88533 524 Revert 525 2018-04-30 Richard Biener <rguenther@suse.de> 526 527 PR tree-optimization/28364 528 PR tree-optimization/85275 529 * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after 530 copying first exit test. 531 532 * tree-ssa-loop-ch.c: Include tree-phinodes.h and 533 ssa-iterators.h. 534 (should_duplicate_loop_header_p): Track whether stmt compute 535 loop invariants or values based on IVs. Apart from the 536 original loop header only duplicate blocks with exit tests 537 that are based on IVs or invariants. 538 5392018-12-19 Tom de Vries <tdevries@suse.de> 540 541 * config/nvptx/nvptx.c (nvptx_gen_shared_bcast, shared_prop_gen) 542 (nvptx_goacc_expand_accel_var): Use MAX and ROUND_UP. 543 (nvptx_assemble_value, nvptx_output_skip): Use MIN. 544 (nvptx_shared_propagate, nvptx_single, nvptx_expand_shared_addr): Use 545 MAX. 546 5472018-12-19 Tom de Vries <tdevries@suse.de> 548 549 * config/nvptx/nvptx.c (nvptx_gen_wcast): Rename as 550 nvptx_gen_warp_bcast. 551 (nvptx_gen_wcast): Rename to nvptx_gen_shared_bcast, add bool 552 vector argument, and update call to nvptx_gen_shared_bcast. 553 (propagator_fn): Add bool argument. 554 (nvptx_propagate): New bool argument, pass bool argument to fn. 555 (vprop_gen): Rename to warp_prop_gen, update call to 556 nvptx_gen_warp_bcast. 557 (nvptx_vpropagate): Rename to nvptx_warp_propagate, update call to 558 nvptx_propagate. 559 (wprop_gen): Rename to shared_prop_gen, update call to 560 nvptx_gen_shared_bcast. 561 (nvptx_wpropagate): Rename to nvptx_shared_propagate, update call 562 to nvptx_propagate. 563 (nvptx_wsync): Rename to nvptx_cta_sync. 564 (nvptx_single): Update calls to nvptx_gen_warp_bcast, 565 nvptx_gen_shared_bcast and nvptx_cta_sync. 566 (nvptx_process_pars): Likewise. 567 (write_worker_buffer): Rename as write_shared_buffer. 568 (nvptx_file_end): Update calls to write_shared_buffer. 569 (nvptx_expand_worker_addr): Rename as nvptx_expand_shared_addr. 570 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. 571 (nvptx_get_worker_red_addr): Rename as nvptx_get_shared_red_addr. 572 (nvptx_goacc_reduction_setup): Update call to 573 nvptx_get_shared_red_addr. 574 (nvptx_goacc_reduction_fini): Likewise. 575 (nvptx_goacc_reduction_teardown): Likewise. 576 5772018-12-19 Tom de Vries <tdevries@suse.de> 578 579 * config/nvptx/nvptx.c (worker_bcast_size): Rename as 580 oacc_bcast_size. 581 (worker_bcast_align): Rename as oacc_bcast_align. 582 (worker_bcast_sym): Rename as oacc_bcast_sym. 583 (nvptx_option_override): Update usage of oacc_bcast_*. 584 (struct wcast_data_t): Rename as broadcast_data_t. 585 (nvptx_gen_wcast): Update type of data argument and usage of 586 oacc_bcast_align. 587 (wprop_gen): Update type of data_ and usage of oacc_bcast_align. 588 (nvptx_wpropagate): Update type of data and usage of 589 oacc_bcast_{sym,size}. 590 (nvptx_single): Update type of data and usage of oacc_bcast_size. 591 (nvptx_file_end): Update usage of oacc_bcast_{sym,align,size}. 592 5932018-12-19 Tom de Vries <tdevries@suse.de> 594 595 * config/nvptx/nvptx.md (nvptx_barsync): Add and handle operand. 596 * config/nvptx/nvptx.c (nvptx_wsync): Update call to gen_nvptx_barsync. 597 5982018-12-19 Tom de Vries <tdevries@suse.de> 599 600 * config/nvptx/nvptx.c (nvptx_single): Always pass false to 601 nvptx_wsync. 602 (nvptx_process_pars): Likewise. 603 6042018-12-19 Tom de Vries <tdevries@suse.de> 605 606 * config/nvptx/nvptx.c (nvptx_previous_fndecl): Declare. 607 (nvptx_set_current_function): New function. 608 (TARGET_SET_CURRENT_FUNCTION): Define. 609 6102018-12-19 Shaokun Zhang <zhangshaokun@hisilicon.com> 611 612 * config/aarch64/aarch64-cores.def (tsv110): Fix architecture. This 613 part is really Armv8.2 with some permitted Armv8.4 extensions. 614 6152018-12-19 Jakub Jelinek <jakub@redhat.com> 616 617 PR target/88541 618 * config/i386/vpclmulqdqintrin.h (_mm256_clmulepi64_epi128): Enable 619 for -mavx -mvpclmulqdq rather than just for -mavx512vl -mvpclmulqdq. 620 6212018-12-19 Alexandre Oliva <aoliva@redhat.com> 622 623 PR testsuite/86153 624 PR middle-end/83239 625 * vr-values.c 626 (vr_values::vrp_evaluate_conditional_warnv_with_ops): Extend 627 simplification of overflow tests to cover cases in which we 628 can determine the result of the comparison. 629 6302018-12-19 Bin Cheng <bin.cheng@linux.alibaba.com> 631 632 * auto-profile.c (afdo_indirect_call): Skip generating histogram 633 value if we can't find cgraph_node for then indirected callee. Save 634 profile_id of the cgraph_node in histogram value's first counter. 635 * value-prof.c (gimple_value_profile_transformations): Don't skip 636 for flag_auto_profile. 637 6382018-12-18 Vladimir Makarov <vmakarov@redhat.com> 639 640 PR rtl-optimization/87759 641 * lra-assigns.c (lra_split_hard_reg_for): Recalculate 642 non_reload_pseudos. 643 6442018-12-18 Jakub Jelinek <jakub@redhat.com> 645 646 PR target/88464 647 * config/i386/i386-builtin-types.def 648 (VOID_FTYPE_PDOUBLE_QI_V8SI_V4DF_INT, 649 VOID_FTYPE_PFLOAT_QI_V4DI_V8SF_INT, 650 VOID_FTYPE_PLONGLONG_QI_V8SI_V4DI_INT, 651 VOID_FTYPE_PINT_QI_V4DI_V8SI_INT, 652 VOID_FTYPE_PDOUBLE_QI_V4SI_V2DF_INT, 653 VOID_FTYPE_PFLOAT_QI_V2DI_V4SF_INT, 654 VOID_FTYPE_PLONGLONG_QI_V4SI_V2DI_INT, 655 VOID_FTYPE_PINT_QI_V2DI_V4SI_INT): New builtin types. 656 * config/i386/i386.c (enum ix86_builtins): Add 657 IX86_BUILTIN_SCATTERALTSIV4DF, IX86_BUILTIN_SCATTERALTDIV8SF, 658 IX86_BUILTIN_SCATTERALTSIV4DI, IX86_BUILTIN_SCATTERALTDIV8SI, 659 IX86_BUILTIN_SCATTERALTSIV2DF, IX86_BUILTIN_SCATTERALTDIV4SF, 660 IX86_BUILTIN_SCATTERALTSIV2DI and IX86_BUILTIN_SCATTERALTDIV4SI. 661 (ix86_init_mmx_sse_builtins): Fix up names of IX86_BUILTIN_GATHERALT*, 662 IX86_BUILTIN_GATHER3ALT* and IX86_BUILTIN_SCATTERALT* builtins to 663 match the IX86_BUILTIN codes. Build IX86_BUILTIN_SCATTERALTSIV4DF, 664 IX86_BUILTIN_SCATTERALTDIV8SF, IX86_BUILTIN_SCATTERALTSIV4DI, 665 IX86_BUILTIN_SCATTERALTDIV8SI, IX86_BUILTIN_SCATTERALTSIV2DF, 666 IX86_BUILTIN_SCATTERALTDIV4SF, IX86_BUILTIN_SCATTERALTSIV2DI and 667 IX86_BUILTIN_SCATTERALTDIV4SI decls. 668 (ix86_vectorize_builtin_scatter): Expand those new builtins. 669 6702018-12-18 Bill Schmidt <wschmidt@linux.ibm.com> 671 672 * doc/extend.texi (PowerPC Altivec/VSX Built-in Functions): 673 Describe when a typedef name can be used as the type specifier for 674 a vector type, and when it cannot. 675 6762018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> 677 678 * config/msp430/msp430.h: Define TARGET_VTABLE_ENTRY_ALIGN. 679 6802018-12-18 Jakub Jelinek <jakub@redhat.com> 681 682 PR target/88513 683 PR target/88514 684 * optabs.def (vec_pack_sbool_trunc_optab, vec_unpacks_sbool_hi_optab, 685 vec_unpacks_sbool_lo_optab): New optabs. 686 * optabs.c (expand_widen_pattern_expr): Use vec_unpacks_sbool_*_optab 687 and pass additional argument if both input and target have the same 688 scalar mode of VECTOR_BOOLEAN_TYPE_P vectors. 689 * expr.c (expand_expr_real_2) <case VEC_PACK_TRUNC_EXPR>: Handle 690 VECTOR_BOOLEAN_TYPE_P pack where result has the same scalar mode 691 as the operands using vec_pack_sbool_trunc_optab. 692 * tree-vect-stmts.c (supportable_widening_operation): Use 693 vec_unpacks_sbool_{lo,hi}_optab for VECTOR_BOOLEAN_TYPE_P conversions 694 where both wider_vectype and vectype have the same scalar mode. 695 (supportable_narrowing_operation): Similarly use 696 vec_pack_sbool_trunc_optab if narrow_vectype and vectype have the same 697 scalar mode. 698 * config/i386/i386.c (ix86_get_builtin) 699 <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Check for VECTOR_MODE_P 700 rather than non-VOIDmode. 701 * config/i386/sse.md (vec_pack_trunc_qi, vec_pack_trunc_<mode>): 702 Remove useless ()s around "register_operand", formatting fixes. 703 (vec_pack_sbool_trunc_qi, vec_unpacks_sbool_lo_qi, 704 vec_unpacks_sbool_hi_qi): New expanders. 705 * doc/md.texi (vec_pack_sbool_trunc_M, vec_unpacks_sbool_hi_M, 706 vec_unpacks_sbool_lo_M): Document. 707 7082018-12-18 Jozef Lawrynowicz <jozef.l@mittosystems.com> 709 710 * combine.c (update_rsp_from_reg_equal): Only look for the nonzero bits 711 of src in nonzero_bits_mode if the mode of src is MODE_INT and 712 HWI_COMPUTABLE. 713 (reg_nonzero_bits_for_combine): Add clarification to comment. 714 7152018-12-18 Wei Xiao <wei3.xiao@intel.com> 716 717 * config/i386/driver-i386.c (host_detect_local_cpu): Detect cascadelake. 718 * config/i386/i386.c (fold_builtin_cpu): Handle cascadelake. 719 * doc/extend.texi: Add cascadelake. 7202018-12-17 Peter Bergner <bergner@linux.ibm.com> 721 722 PR target/87870 723 * config/rs6000/vsx.md (nW): New mode iterator. 724 (vsx_mov<mode>_64bit): Use it. Remove redundant GPR 0/-1 alternative. 725 Update length attribute for (<??r>, <nW>) alternative. 726 (vsx_mov<mode>_32bit): Likewise. 727 7282018-12-17 Tom de Vries <tdevries@suse.de> 729 730 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH, PTX_WORKER_LENGTH, 731 PTX_DEFAULT_RUNTIME_DIM): Move to the top of the file. 732 7332018-12-17 Tom de Vries <tdevries@suse.de> 734 735 * config/nvptx/nvptx.c (PTX_WARP_SIZE): Define. 736 (nvptx_simt_vf): Return PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. 737 7382018-12-17 Tom de Vries <tdevries@suse.de> 739 740 * config/nvptx/nvptx.c (nvptx_single): Fix whitespace. 741 (nvptx_neuter_pars): Likewise. 742 7432018-12-17 Tom de Vries <tdevries@suse.de> 744 745 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Work around Fortran 746 bug PR72741 by overriding dims parameter for routines. 747 7482018-12-17 Tom de Vries <tdevries@suse.de> 749 750 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Rewrite using 751 predicate vars. 752 7532018-12-17 Steve Ellcey <sellcey@cavium.com> 754 755 * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): 756 New prototype. 757 (aarch64_epilogue_uses): Ditto. 758 * config/aarch64/aarch64.c (aarch64_attribute_table): New array. 759 (aarch64_simd_decl_p): New function. 760 (aarch64_reg_save_mode): New function. 761 (aarch64_function_ok_for_sibcall): Check for simd calls. 762 (aarch64_layout_frame): Check for simd function. 763 (aarch64_gen_storewb_pair): Handle E_TFmode. 764 (aarch64_push_regs): Use aarch64_reg_save_mode to get mode. 765 (aarch64_gen_loadwb_pair): Handle E_TFmode. 766 (aarch64_pop_regs): Use aarch64_reg_save_mode to get mode. 767 (aarch64_gen_store_pair): Handle E_TFmode. 768 (aarch64_gen_load_pair): Ditto. 769 (aarch64_save_callee_saves): Handle different mode sizes. 770 (aarch64_restore_callee_saves): Ditto. 771 (aarch64_components_for_bb): Check for simd function. 772 (aarch64_epilogue_uses): New function. 773 (aarch64_process_components): Check for simd function. 774 (aarch64_expand_prologue): Ditto. 775 (aarch64_expand_epilogue): Ditto. 776 (aarch64_expand_call): Ditto. 777 (aarch64_use_simple_return_insn_p): New function. 778 (TARGET_ATTRIBUTE_TABLE): New define. 779 * config/aarch64/aarch64.h (EPILOGUE_USES): Redefine. 780 (FP_SIMD_SAVED_REGNUM_P): New macro. 781 * config/aarch64/aarch64.md (simple_return): New define_expand. 782 (load_pair_dw_tftf): New instruction. 783 (store_pair_dw_tftf): Ditto. 784 (loadwb_pair<TX:mode>_<P:mode>): Ditto. 785 (storewb_pair<TX:mode>_<P:mode>): Ditto. 786 7872018-12-17 Uros Bizjak <ubizjak@gmail.com> 788 789 PR target/88502 790 * internal-fn.def (ACOSH): New. 791 (ASINH): Ditto. 792 (ATANH): Ditto. 793 * optabs.def (acosh_optab): New. 794 (asinh_optab): Ditto. 795 (atanh_optab): Ditto. 796 * config/i386/i386-protos.h (ix86_emit_i387_asinh): New prototype. 797 (ix86_emit_i387_acosh): Ditto. 798 (ix86_emit_i387_atanh): Ditto. 799 * config/i386/i386.c (ix86_emit_i387_asinh): New function. 800 (ix86_emit_i387_acosh): Ditto. 801 (ix86_emit_i387_atanh): Ditto. 802 * config/i386/i386.md (asinhxf2): New expander. 803 (asinh<mode>2): Ditto. 804 (acoshxf2): Ditto. 805 (acosh<mode>2): Ditto. 806 (atanhxf2): Ditto. 807 (atanh<mode>2): Ditto. 808 8092018-12-17 David Edelsohn <dje.gcc@gmail.com> 810 811 * config.gcc (powerpc-ibm-aix6.*): Delete extra_headers. 812 (powerpc-ibm-aix7.1.*): Same. 813 (powerpc-ibm-aix[789].*): Same. 814 8152018-12-17 H.J. Lu <hongjiu.lu@intel.com> 816 817 PR debug/79342 818 * dwarf2out.c (find_AT_string_in_table): Add insert argument 819 defaulting to INSERT and replace INSERT. 820 (find_AT_string): Likewise. 821 (output_macinfo_op): Pass NO_INSERT to find_AT_string. 822 8232018-12-15 Jan Hubicka <hubicka@ucw.cz> 824 825 * coverage.c (struct conts_entry): Add n_counts. 826 (remap_counts_file): Record number of ocunts. 827 (get_coverage_counts): Verify that counts match. 828 * coverage.h (get_coverage_counts): Update prototype. 829 * profile.c (get_exec_counts. compute_value_histograms): Add 830 n_counts parametrs. 831 8322018-12-17 Senthil Kumar Selvaraj <senthilkumar.selvaraj@microchip.com> 833 834 PR rtl-optimization/88253 835 * combine.c (combine_simplify_rtx): Test for side-effects before 836 substituting by zero. 837 8382018-12-17 Richard Sandiford <richard.sandiford@arm.com> 839 840 * doc/invoke.texi (-fversion-loops-for-strides): Document 841 (loop-versioning-group-size, loop-versioning-max-inner-insns) 842 (loop-versioning-max-outer-insns): Document new --params. 843 * Makefile.in (OBJS): Add gimple-loop-versioning.o. 844 * common.opt (fversion-loops-for-strides): New option. 845 * opts.c (default_options_table): Enable fversion-loops-for-strides 846 at -O3. 847 * params.def (PARAM_LOOP_VERSIONING_GROUP_SIZE) 848 (PARAM_LOOP_VERSIONING_MAX_INNER_INSNS) 849 (PARAM_LOOP_VERSIONING_MAX_OUTER_INSNS): New parameters. 850 * passes.def: Add pass_loop_versioning. 851 * timevar.def (TV_LOOP_VERSIONING): New time variable. 852 * tree-ssa-propagate.h 853 (substitute_and_fold_engine::substitute_and_fold): Add an optional 854 block parameter. 855 * tree-ssa-propagate.c 856 (substitute_and_fold_engine::substitute_and_fold): Likewise. 857 When passed, only walk blocks dominated by that block. 858 * tree-vrp.h (range_includes_p): Declare. 859 (range_includes_zero_p): Turn into an inline wrapper around 860 range_includes_p. 861 * tree-vrp.c (range_includes_p): New function, generalizing... 862 (range_includes_zero_p): ...this. 863 * tree-pass.h (make_pass_loop_versioning): Declare. 864 * gimple-loop-versioning.cc: New file. 865 8662018-12-15 Jan Hubicka <hubicka@ucw.cz> 867 868 * ipa-fnsummary.c (remap_edge_change_prob): Do not ICE when changes 869 are not streamed in. 870 8712018-12-15 H.J. Lu <hongjiu.lu@intel.com> 872 873 PR target/88483 874 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Revert 875 reversion 267133. 876 8772018-12-15 Jan Hubicka <hubicka@ucw.cz> 878 879 * ipa-fnsummary.c (analyze_function_body): Do not loeak conds and 880 size_time_table. 881 (ipa_fn_summary_generate): Add prevails parameter; do not allocate 882 data when symbol is not prevailing. 883 (inline_read_section): Likewise. 884 8852018-12-15 Jan Hubicka <hubicka@ucw.cz> 886 887 * cgraph.h (cgraph_node): Add predicate prevailing_p. 888 (cgraph_edge): Add predicate possible_call_in_translation_unit_p. 889 * ipa-prop.c (ipa_write_jump_function): Optimize streaming of ADDR_EXPR. 890 (ipa_read_jump_function): Add prevails parameter; optimize streaming. 891 (ipa_read_edge_info): Break out from ... 892 (ipa_read_node_info): ... here; optimize streaming. 893 * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): New 894 predicate. 895 8962018-12-15 Jan Hubicka <hubicka@ucw.cz> 897 898 * ipa-utils.c (ipa_merge_profiles): Do no merging when source function 899 has zero count. 900 9012018-12-15 Jakub Jelinek <jakub@redhat.com> 902 903 PR tree-optimization/88464 904 PR target/88498 905 * tree-vect-stmts.c (vect_build_gather_load_calls): For NARROWING 906 and mask with integral masktype, don't try to permute mask vectors, 907 instead emit VEC_UNPACK_{LO,HI}_EXPR. Fix up NOP_EXPR operand. 908 (vectorizable_store): Handle masked scatters with decl and integral 909 mask type. 910 (permute_vec_elements): Allow scalar_dest to be NULL. 911 * config/i386/i386.c (ix86_get_builtin) 912 <case IX86_BUILTIN_GATHER3ALTDIV16SF>: Use lowpart_subreg for masks. 913 <case IX86_BUILTIN_GATHER3ALTDIV8SF>: Don't assume mask and src have 914 to be the same. 915 9162018-12-15 Jan Hubicka <hubicka@ucw.cz> 917 918 * ipa.c (cgraph_build_static_cdtor_1): Add OPTIMIZATION and TARGET 919 parameters. 920 (cgraph_build_static_cdtor): Update. 921 (build_cdtor): Use OPTIMIZATION and TARGET of the first real cdtor 922 callsed. 923 9242018-12-15 Alan Modra <amodra@gmail.com> 925 926 * config/rs6000/rs6000.c (generate_set_vrsave, rs6000_emit_savres_rtx), 927 (rs6000_emit_prologue, rs6000_call_aix, rs6000_call_sysv), 928 (rs6000_call_darwin_1): Use gen_hard_reg_clobber. 929 9302018-12-15 Jakub Jelinek <jakub@redhat.com> 931 932 PR target/88489 933 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. 934 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it 935 instead of UNSPEC_FIXUPIMM. 936 937 PR rtl-optimization/88478 938 * cselib.c (cselib_record_sets): Move sets[i].src_elt tests 939 after REG_P (dest) test. 940 9412018-12-14 Martin Sebor <msebor@redhat.com> 942 943 PR tree-optimization/88372 944 * calls.c (maybe_warn_alloc_args_overflow): Handle function pointers. 945 * tree-object-size.c (alloc_object_size): Same. Simplify. 946 * doc/extend.texi (Object Size Checking): Update. 947 (Other Builtins): Add __builtin_object_size. 948 (Common Type Attributes): Add alloc_size. 949 (Common Variable Attributes): Ditto. 950 9512018-12-14 Martin Sebor <msebor@redhat.com> 952 953 PR rtl-optimization/87096 954 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Avoid 955 folding calls whose bound may exceed INT_MAX. Diagnose bound ranges 956 that exceed the limit. 957 9582018-12-14 Martin Sebor <msebor@redhat.com> 959 960 PR web/79738 961 * doc/extend.texi (attribute const, pure): Clarify. 962 9632018-12-14 H.J. Lu <hongjiu.lu@intel.com> 964 965 * config/i386/i386.c (rest_of_insert_endbranch): Insert ENDBR 966 at the function entry only when -mmanual-endbr isn't used or 967 there is cf_check function attribute. 968 (ix86_attribute_table): Add cf_check. 969 * config/i386/i386.opt: Add -mmanual-endbr. 970 * doc/extend.texi: Document cf_check attribute. 971 * doc/invoke.texi: Document -mmanual-endbr. 972 9732018-12-14 Thomas Schwinge <thomas@codesourcery.com> 974 Cesar Philippidis <cesar@codesourcery.com> 975 976 * omp-offload.c (inform_oacc_loop): New function. 977 (execute_oacc_device_lower): Use it to display loop parallelism. 978 9792018-12-14 Jakub Jelinek <jakub@redhat.com> 980 981 PR c++/82294 982 PR c++/87436 983 * expr.h (categorize_ctor_elements): Add p_unique_nz_elts argument. 984 * expr.c (categorize_ctor_elements_1): Likewise. Compute it like 985 p_nz_elts, except don't multiply it by mult. Adjust recursive call. 986 Fix up COMPLEX_CST handling. 987 (categorize_ctor_elements): Add p_unique_nz_elts argument, initialize 988 it and pass it through to categorize_ctor_elements_1. 989 (mostly_zeros_p, all_zeros_p): Adjust categorize_ctor_elements callers. 990 * gimplify.c (gimplify_init_constructor): Likewise. Don't force 991 ctor into readonly data section if num_unique_nonzero_elements is 992 smaller or equal to 1/8 of num_nonzero_elements and size is >= 64 993 bytes. 994 9952018-12-14 Thomas Preud'homme <thomas.preudhomme@arm.com> 996 997 * config/arm/arm.md (arm_movdi): Split if -mslow-flash-data and 998 source is a constant that would be loaded by literal pool. 999 (movsf expander): Generate a no_literal_pool_sf_immediate insn if 1000 -mslow-flash-data is present, targeting hardfloat ABI and source is a 1001 float constant that cannot be loaded via vmov. 1002 (movdf expander): Likewise but generate a no_literal_pool_df_immediate 1003 insn. 1004 (arm_movsf_soft_insn): Split if -mslow-flash-data and source is a 1005 float constant that would be loaded by literal pool. 1006 (softfloat constant movsf splitter): Splitter for the above case. 1007 (movdf_soft_insn): Split if -mslow-flash-data and source is a float 1008 constant that would be loaded by literal pool. 1009 (softfloat constant movdf splitter): Splitter for the above case. 1010 * config/arm/constraints.md (Pz): Document existing constraint. 1011 (Ha): Define constraint. 1012 (Tu): Likewise. 1013 * config/arm/predicates.md (hard_sf_operand): New predicate. 1014 (hard_df_operand): Likewise. 1015 * config/arm/thumb2.md (thumb2_movsi_insn): Split if 1016 -mslow-flash-data and constant would be loaded by literal pool. 1017 * constant/arm/vfp.md (thumb2_movsi_vfp): Likewise and disable constant 1018 load in VFP register. 1019 (movdi_vfp): Likewise. 1020 (thumb2_movsf_vfp): Use hard_sf_operand as predicate for source to 1021 prevent match for a constant load if -mslow-flash-data and constant 1022 cannot be loaded via vmov. Adapt constraint accordingly by 1023 using Ha instead of E for generic floating-point constant load. 1024 (thumb2_movdf_vfp): Likewise using hard_df_operand predicate instead. 1025 (no_literal_pool_df_immediate): Add a clobber to use as the 1026 intermediate general purpose register and also enable it after reload 1027 but disable it constant is a valid FP constant. Add constraints and 1028 generate a DI intermediate load rather than 2 SI loads. 1029 (no_literal_pool_sf_immediate): Add a clobber to use as the 1030 intermediate general purpose register and also enable it after 1031 reload. 1032 10332018-12-14 Uros Bizjak <ubizjak@gmail.com> 1034 1035 PR target/88474 1036 * internal-fn.def (HYPOT): New. 1037 * optabs.def (hypot_optab): New. 1038 * config/i386/i386.md (hypot<mode>3): New expander. 1039 10402018-12-14 Jeff Law <law@redhat.com> 1041 1042 * target.def (post_cfi_startproc): Fix text. 1043 10442018-12-14 Sam Tebbs <sam.tebbs@arm.com> 1045 1046 * doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define. 1047 * doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define. 1048 * dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook. 1049 * hooks.c (hook_void_FILEptr_tree): Define. 1050 * hooks.h (hook_void_FILEptr_tree): Define. 1051 * target.def (post_cfi_startproc): Define. 1052 10532018-12-14 Tom de Vries <tdevries@suse.de> 1054 1055 * lto-cgraph.c (verify_node_partition): New function. 1056 (input_overwrite_node, input_varpool_node): Use verify_node_partition. 1057 10582018-12-14 H.J. Lu <hongjiu.lu@intel.com> 1059 1060 PR target/88483 1061 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Don't 1062 use get_frame_size (). 1063 10642018-12-14 Andrew Stubbs <ams@codesourcery.com> 1065 1066 * gcc/lra-int.h (lra_register_new_scratch_op): Add third parameter. 1067 * gcc/lra-remat.c (update_scratch_ops): Pass icode to 1068 lra_register_new_scratch_op. 1069 * gcc/lra.c (struct sloc): Add icode field. 1070 (lra_register_new_scratch_op): Add icode parameter. 1071 Use icode to skip insns that have changed beyond recognition. 1072 10732018-12-14 Eric Botcazou <ebotcazou@adacore.com> 1074 1075 * dwarf2out.c (analyze_discr_in_predicate): Simplify. 1076 (analyze_variants_discr): Deal with naked boolean discriminants. 1077 10782018-12-14 Claudiu Zissulescu <claziss@synopsys.com> 1079 1080 * config/arc/arc.c (arc_restore_callee_milli) Don't clobber off 1081 variable. 1082 10832018-12-14 Claudiu Zissulescu <claziss@synopsys.com> 1084 1085 * config/arc/arc.h (reg_class): Add SIBCALL_REGS. 1086 10872018-12-14 Richard Biener <rguenther@suse.de> 1088 1089 * gimple-ssa-split-paths.c (is_feasible_trace): Remove 1090 duplicated code block. 1091 10922018-12-14 Alan Modra <amodra@gmail.com> 1093 1094 PR rtl-optimization/88311 1095 * config/rs6000/rs6000.c (rs6000_call_sysv): Do not mask cookie. 1096 (rs6000_sibcall_sysv): Likewise. 1097 10982018-12-14 Segher Boessenkool <segher@kernel.crashing.org> 1099 1100 PR rtl-optimization/88001 1101 * function.c (match_asm_constraints_1): Don't invalidly share RTL. 1102 11032018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> 1104 1105 * auto-profile.c (afdo_annotate_cfg): Call update_max_bb_count even 1106 if autofdo counts are all zeros. 1107 11082018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> 1109 1110 * auto-profile.c (afdo_indirect_call): Skip generating histogram 1111 value for internal call. 1112 11132018-12-14 Bin Cheng <bin.cheng@linux.alibaba.com> 1114 1115 * auto-profile.c (AFDO_EINFO): New macro. 1116 (class edge_info): New class. 1117 (is_edge_annotated, set_edge_annotated): Delete. 1118 (afdo_propagate_edge, afdo_propagate_circuit, afdo_propagate): Remove 1119 parameter. Adjust edge count computation and annotation using class 1120 edge_info. 1121 (afdo_calculate_branch_prob, afdo_annotate_cfg): Likewise. 1122 11232018-12-13 Michael Ploujnikov <michael.ploujnikov@oracle.com> 1124 1125 * ipa-cp.c (print_all_lattices): Skip cp clones. 1126 1127 * ipa-cp.c: Fix various comment typos. 1128 11292018-12-13 Jakub Jelinek <jakub@redhat.com> 1130 1131 PR tree-optimization/88444 1132 * tree-inline.c (fold_marked_statements): Iterate up to 1133 last_basic_block_for_fn rather than n_basic_blocks_for_fn. 1134 1135 PR rtl-optimization/88470 1136 * cfgcleanup.c (outgoing_edges_match): If the function is 1137 shrink-wrapped and bb1 ends with a JUMP_INSN with a single fake 1138 edge to EXIT, return false. 1139 11402018-12-13 Martin Sebor <msebor@redhat.com> 1141 1142 * doc/extend.texi: Consistently use @code for const and volatile 1143 qualifiers, the true and false constants, and asm statements. 1144 11452018-12-13 Vladimir Makarov <vmakarov@redhat.com> 1146 1147 PR rtl-optimization/88414 1148 * lra-int.h (lra_asm_error_p): New. 1149 * lra-assigns.c (lra_assign): Check lra_asm_error_p for checking 1150 call crossed pseudo assignment correctness. 1151 (lra_split_hard_reg_for): Set up lra_asm_error_p. 1152 * lra-constraints.c (curr_insn_transform): Ditto. 1153 * lra.c (lra_asm_error_p): New. 1154 (lra): Reset lra_asm_error_p. 1155 11562018-12-13 Jakub Jelinek <jakub@redhat.com> 1157 1158 PR rtl-optimization/88416 1159 * valtrack.c (cleanup_auto_inc_dec): Handle pre/post-inc/dec/modify 1160 even if !AUTO_INC_DEC. 1161 11622018-12-13 David Edelsohn <dje.gcc@gmail.com> 1163 1164 * config/rs6000/rs6000.c (rs6000_function_arg): Ensure type is 1165 non-NULL. 1166 (rs6000_arg_partial_bytes): Same. 1167 11682018-12-13 Jason Merrill <jason@redhat.com> 1169 1170 * gdbinit.in (pp): New macro. 1171 (pbb): Remove. 1172 11732018-12-13 Jakub Jelinek <jakub@redhat.com> 1174 1175 PR tree-optimization/88464 1176 * tree-vect-stmts.c (vect_build_gather_load_calls): Handle INTEGER_TYPE 1177 masktype if mask is non-NULL. 1178 (vectorizable_load): Don't reject masked gather loads if masktype 1179 in the decl is INTEGER_TYPE. 1180 11812018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 1182 1183 * config/s390/s390-builtins.def (s390_vec_double_s64): Map to 1184 s390_vec_double_s64 instead of s390_vcdgb. 1185 (s390_vec_double_u64): Map to s390_vec_double_u64 instead of 1186 s390_vcdlgb. 1187 11882018-12-13 Andreas Krebbel <krebbel@linux.ibm.com> 1189 1190 * config/s390/vx-builtins.md ("vec_ctd_s64", "vec_ctd_u64") 1191 ("vec_ctsl", "vec_ctul"): Replace 0 with VEC_NOINEXACT. 1192 ("vec_double_s64", "vec_double_u64"): Replace 4 with VEC_INEXACT. 1193 11942018-12-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1195 1196 * doc/invoke.texi (-msve-vector-bits): Clarify -msve-vector-bits=128 1197 behavior. 1198 11992018-12-13 Wei Xiao <wei3.xiao@intel.com> 1200 1201 * common/config/i386/i386-common.c (processor_names): Add cascadelake. 1202 (processor_alias_table): Add cascadelake. 1203 * config.gcc: Add -march=cascadelake. 1204 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 1205 cascadelake. 1206 * config/i386/i386.c (Add m_CASCADELAKE): New. 1207 (processor_cost_table): Add cascadelake. 1208 (get_builtin_code_for_version): Handle cascadelake. 1209 * config/i386/i386.h (TARGET_CASCADELAKE, PROCESSOR_CASCADELAKE): New. 1210 (PTA_CASCADELAKE): Ditto. 1211 * doc/invoke.texi: Add -march=cascadelake. 1212 12132018-12-13 Jakub Jelinek <jakub@redhat.com> 1214 1215 PR target/88465 1216 * config/i386/i386.md (*movdi_internal, *movsi_internal, 1217 *movhi_internal, *movqi_internal): Add alternative(s) to load 1218 0 or -1 into k registers using kxor or kxnoq instructions. 1219 1220 PR target/88461 1221 * config/i386/sse.md (VI1248_AVX512VLBW, AVX512ZEXTMASK): New 1222 mode iterators. 1223 (<avx512>_testm<mode>3<mask_scalar_merge_name>, 1224 <avx512>_testnm<mode>3<mask_scalar_merge_name>): Merge patterns 1225 with VI12_AVX512VL and VI48_AVX512VL iterators into ones with 1226 VI1248_AVX512VLBW iterator. 1227 (*<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, 1228 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, 1229 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, 1230 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask): New 1231 define_insns. 1232 1233 PR target/88461 1234 * config/i386/i386.md (*zero_extendsidi2, zero_extend<mode>di2, 1235 *zero_extend<mode>si2, *zero_extendqihi2): Add =*k, *km alternatives. 1236 12372018-12-12 Tom de Vries <tdevries@suse.de> 1238 Jakub Jelinek <jakub@redhat.com> 1239 1240 * omp-builtins.def (BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, 1241 BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, 1242 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, 1243 BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, 1244 BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, 1245 BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME): Fix up 1246 function types - remove one argument. 1247 12482018-12-12 Martin Sebor <msebor@redhat.com> 1249 1250 * doc/extend.texi (attribute copy): Fix typos. 1251 12522018-12-12 Martin Sebor <msebor@redhat.com> 1253 1254 * doc/extend.texi (Function Attributes): Clarify C++ aspects. 1255 (Variable Attributes): Same. 1256 (Type Attributes): Same. 1257 12582018-12-12 Olivier Hainque <hainque@adacore.com> 1259 1260 * config/aarch64/aarch64.c (aarch64_override_options): Once arch, 1261 cpu and tune were validated, insert SUBTARGET_OVERRIDE_OPTIONS if 1262 defined. 1263 12642018-12-12 Olivier Hainque <hainque@adacore.com> 1265 1266 * config/aarch64/aarch64.c (PROBE_STACK_FIRST_REG) : Redefine as 1267 R9_REGNUM instead of 9. 1268 (PROBE_STACK_SECOND_REG): Redefine as R10_REGNUM instead of 10. 1269 12702018-12-12 Eric Botcazou <ebotcazou@adacore.com> 1271 1272 PR target/86806 1273 * config/sparc/sparc.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. 1274 (speculation_barrier): New instruction for V9. 1275 12762018-12-12 Segher Boessenkool <segher@kernel.crashing.org> 1277 Iain Sandoe <iain@sandoe.co.uk> 1278 1279 PR target/88343 1280 * config/rs6000/rs6000.c (save_reg_p): Do not save the picbase reg 1281 unless it has been used. 1282 (first_reg_to_save): Remove dead code. 1283 12842018-12-12 Iain Sandoe <iain@sandoe.co.uk> 1285 1286 * config/rs6000/rs6000-protos.h (rs6000_call_darwin): New. 1287 (rs6000_sibcall_darwin): New. (macho_call_template): Remove. 1288 * config/rs6000/rs6000.c (get_prev_label): Forward declaration. 1289 (rs6000_call_template_1): Handle Darwin. 1290 (macho_call_template): Remove. 1291 (rs6000_call_sysv): Remove handling for Darwin. 1292 (rs6000_call_darwin_1, rs6000_call_darwin): New 1293 (rs6000_sibcall_darwin): New. 1294 * config/rs6000/rs6000.md (define_expand “call”): Handle Darwin 1295 with its own expander. (define_expand “call_value”): Likewise. 1296 (define_expand “sibcall”): Likewise. 1297 (define_expand “sibcall_value”): Likewise. 1298 (call_nonlocal_sysv): Remove Darwin special-casing. 1299 (call_value_nonlocal_sysv): Likewise. 1300 13012018-12-12 Iain Sandoe <iain@sandoe.co.uk> 1302 1303 * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64): Remove. 1304 (call_nonlocal_darwin64): Remove. 1305 (call_value_indirect_nonlocal_darwin64): Remove. 1306 (call_value_nonlocal_darwin64): Remove. 1307 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle Darwin with 1308 the same asm output as AIX/ELFv2. (rs6000_call_sysv): Preserve the 1309 CALL_LONG flag when needed for Darwin. 1310 * config/rs6000/rs6000.md (define expand “call”): Expand Darwin as 1311 per sysv. 1312 (define_expand “call_value”): Likewise. 1313 (define_expand “sibcall”): Likewise. 1314 (define_expand “sibcall_value”): Likewise. 1315 (call_indirect_nonlocal_sysv): Mark the clobber mode P. 1316 (call_nonlocal_sysv): Likewise. 1317 (call_nonlocal_sysv_secure): Likewise. 1318 (call_value_indirect_nonlocal_sysv): Likewise. 1319 (call_value_nonlocal_sysv): Likewise. 1320 (call_value_nonlocal_sysv_secure): Likewise. 1321 (call_local64): Mark the clobber DI. 1322 (call_value_local64): Likewise. 1323 13242018-12-11 Jakub Jelinek <jakub@redhat.com> 1325 1326 PR tree-optimization/88444 1327 * tree-vrp.c (register_edge_assert_for_2): Only register assertions 1328 for conversions if rhs1 is a SSA_NAME. 1329 13302018-12-11 Dimitar Dimitrov <dimitar@dinux.eu> 1331 1332 * cfgexpand.c (asm_clobber_reg_is_valid): Also produce 1333 error when stack pointer is clobbered. 1334 (expand_asm_stmt): Refactor clobber check in separate function. 1335 13362018-12-11 Eric Botcazou <ebotcazou@adacore.com> 1337 1338 * config/rs6000/vxworks.h (RS6000_STARTING_FRAME_OFFSET): Define, 1339 accounting for STACK_BOUNDARY 128. 1340 (STACK_DYNAMIC_OFFSET): Likewise. 1341 13422018-12-11 Jakub Jelinek <jakub@redhat.com> 1343 1344 PR target/88425 1345 * config/i386/i386.md (*x86_mov<SWI48:mode>cc_0_m1_neg_leu<SWI:mode>): 1346 New define_insn_and_split. 1347 13482018-12-11 Richard Biener <rguenther@suse.de> 1349 1350 PR middle-end/88448 1351 PR middle-end/88415 1352 * gimple.c (gimple_assign_set_rhs_with_ops): Revert previous 1353 change. 1354 * tree-complex.c (update_complex_assignment): Properly transfer 1355 or clean EH info around gimple_assign_set_rhs_with_ops. 1356 13572018-12-11 Richard Earnshaw <rearnsha@arm.com> 1358 1359 PR target/87369 1360 * config/aarch64/iterators.md (sizem1): Add sizes for SFmode and DFmode. 1361 (Vbtype): Add SFmode mapping. 1362 * config/aarch64/aarch64.md (copysigndf3, copysignsf3): Delete. 1363 (copysign<GPF:mode>3): New expand pattern. 1364 (copysign<GPF:mode>3_insn): New insn pattern. 1365 13662018-12-11 Richard Biener <rguenther@suse.de> 1367 1368 * ccmp.c (ccmp_candidate_p): Use GIMPLE API properly. 1369 13702018-12-11 Jakub Jelinek <jakub@redhat.com> 1371 1372 PR lto/86004 1373 * doc/sourcebuild.texi (lto_incremental): Document new effective 1374 target. 1375 13762018-12-11 Segher Boessenkool <segher@kernel.crashing.org> 1377 1378 PR target/88145 1379 * config/rs6000/rs6000.c (rs6000_expand_zeroop_builtin): Use 1380 rs6000_isa_flags instead of rs6000_isa_flags_explicit to decide 1381 whether soft float is enabled. 1382 (rs6000_expand_mtfsb_builtin): Ditto. 1383 (rs6000_expand_set_fpscr_rn_builtin): Ditto. 1384 (rs6000_expand_set_fpscr_drn_builtin): Ditto. 1385 13862018-12-10 Jeff Law <law@redhat.com> 1387 1388 PR tree-optimization/80520 1389 * gimple-ssa-split-paths.c (is_feasible_trace): Recognize half 1390 diamonds that are likely if convertable. 1391 13922018-12-10 Martin Sebor <msebor@redhat.com> 1393 1394 PR tree-optimization/86196 1395 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use 1396 base size only of arrays. 1397 13982018-12-10 Segher Boessenkool <segher@kernel.crashing.org> 1399 1400 * config.gcc (Obsolete configurations): Delete powerpc*-*-*spe*. 1401 (Unsupported targets): Add powerpc*-*-*spe*. 1402 (powerpc*-*-*spe*): Delete. 1403 (powerpc-*-eabispe*): Delete. 1404 (powerpc-*-rtems*spe*): Delete. 1405 (powerpc*-*-linux*spe*): Delete. 1406 (powerpc*-*-linux*): Do not handle the linux*spe* targets. 1407 (powerpc-wrs-vxworks*spe): Delete. 1408 (with_cpu setting code): Delete powerpc*-*-*spe* handling. 1409 * config.host (target powerpc*-*-*spe*): Delete. 1410 * doc/invoke.texi (PowerPC SPE Options): Delete. 1411 (PowerPC SPE Options): Delete. 1412 * config/powerpcspe: Delete. 1413 14142018-12-10 Uros Bizjak <ubizjak@gmail.com> 1415 1416 PR target/88418 1417 * config/i386/i386.c (ix86_expand_sse_cmp): For vector modes, 1418 check operand 1 with vector_operand predicate. 1419 (ix86_expand_sse_movcc): For vector modes, check op_true with 1420 vector_operand, not nonimmediate_operand. 1421 14222018-12-10 Richard Biener <rguenther@suse.de> 1423 1424 * tree-affine.c (tree_to_aff_combination): Remove unreachable 1425 MEM_REF case. 1426 (aff_combination_expand): Cache on SSA names, not possibly 1427 on conversion trees. Avoid expanding cases we do not handle. 1428 14292018-12-10 Richard Biener <rguenther@suse.de> 1430 1431 PR tree-optimization/88427 1432 * vr-values.c (vr_values::extract_range_from_phi_node): 1433 Handle symbolic ranges conservatively when trying to drop 1434 to Inf +- 1. 1435 14362018-12-10 Martin Jambor <mjambor@suse.cz> 1437 1438 PR ipa/88214 1439 * ipa-prop.c (determine_locally_known_aggregate_parts): Make sure 1440 we check pointers against pointers. 1441 14422018-12-10 Richard Biener <rguenther@suse.de> 1443 1444 PR middle-end/88415 1445 * gimple.c (gimple_assign_set_rhs_with_ops): Transfer EH 1446 info to a newly allocated stmt. 1447 14482018-12-10 Jerome Lambourg <lambourg@adacore.com> 1449 1450 * config/vxworksae.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): Define. 1451 14522018-12-10 Fredrik Nyström <fredrik@lysator.liu.se> 1453 1454 PR bootstrap/65725 1455 * config/sol2.h: Only use libgcc-unwind.map if 1456 ENABLE_SHARED_LIBGCC. 1457 14582018-12-10 Bin Cheng <bin.cheng@linux.alibaba.com> 1459 1460 * auto-profile.c (afdo_calculate_branch_prob): Convert profile_count 1461 to afdo precision quality. 1462 (afdo_callsite_hot_enough_for_early_inline): Likewise. 1463 (afdo_annotate_cfg): Set profile_count for exit basic block. 1464 14652018-12-10 Bin Cheng <bin.cheng@linux.alibaba.com> 1466 1467 * auto-profile.c (string_table::get_index_by_decl) 1468 (function_instance::get_function_instance_by_decl): Avoid infinite 1469 recursion by using DECL_FROM_INLINE. 1470 14712018-12-09 John David Anglin <danglin@gcc.gnu.org> 1472 1473 * config.gcc (hppa*-*-linux*): Add pa/t-pa to tmake_file. Define 1474 d_target_objs. 1475 * config/pa/pa-protos.h (pa_d_target_versions): New prototype. 1476 * config/pa/pa.h (TARGET_D_CPU_VERSIONS): Define. 1477 * config/pa/pa-d.c: New file. 1478 * config/pa/t-pa: New file. 1479 14802018-12-08 Bin Cheng <bin.cheng@linux.alibaba.com> 1481 1482 * ipa-cp.c (update_profiling_info): Call adjust_for_ipa_scaling for 1483 zero profile count. 1484 14852018-12-08 Jakub Jelinek <jakub@redhat.com> 1486 1487 PR fortran/88304 1488 * tree-nested.c (convert_local_reference_stmt): Handle clobbers where 1489 lhs is not a decl normally, don't call use_pointer_in_frame on that 1490 lhs. 1491 14922018-12-08 Eric Botcazou <ebotcazou@adacore.com> 1493 1494 PR rtl-optimization/88390 1495 * dwarf2cfi.c (struct dw_cfi_row): Add window_save field. 1496 (cfi_row_equal_p): Compare it. 1497 (dwarf2out_frame_debug_cfa_window_save): Add FAKE parameter. 1498 If FAKE is false, set window_save of the current row. 1499 (dwarf2out_frame_debug) <REG_CFA_TOGGLE_RA_MANGLE>: Call above 1500 function with FAKE parameter set to true. 1501 <REG_CFA_WINDOW_SAVE>: Likewise but with FAKE parameter set to false. 1502 (change_cfi_row): Emit a DW_CFA_GNU_window_save if necessary. 1503 15042018-12-07 Peter Bergner <bergner@linux.ibm.com> 1505 1506 PR target/87496 1507 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow 1508 -mabi=ieeelongdouble and -mabi=ibmlongdouble without -mlong-double-128. 1509 Do not error for -mabi=ibmlongdouble and no ISA 2.06 support. 1510 * doc/invoke.texi: Document -mabi=ibmlongdouble and -mabi=ieeelongdouble 1511 require -mlong-double-128. 1512 15132018-12-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1514 1515 * config/aarch64/aarch64.c (aarch64_tuning_override_functions): Add 1516 sve_width entry. 1517 (aarch64_parse_sve_width_string): Define. 1518 15192018-12-07 Jeff Law <law@redhat.com> 1520 1521 PR middle-end/87813 1522 * gimple-ssa-evrp-analyze.h (class evrp_range_analyzer): Add 1523 m_update_global_ranges member. Add corresponding argument to ctor. 1524 * gimple-ssa-evrp-analyze.c 1525 (evrp_range_analyzer::evrp_range_analyzer): Add new argument and 1526 initialize m_update_global_ranges. 1527 (evrp_range_analyzer::set_ssa_range_info): Assert that we are 1528 updating global ranges. 1529 (evrp_range_analyzer::record_ranges_from_incoming_edge): Only 1530 update global ranges if explicitly requested. 1531 (evrp_range_analyzer::record_ranges_from_phis): Similarly. 1532 (evrp_range_analyzer::record_ranges_from_stmt): Similarly. 1533 * gimple-ssa-evrp.c (evrp_dom_walker): Pass new argument to 1534 evrp_range_analyzer ctor. 1535 * gimple-ssa-sprintf.c (sprintf_dom_walker): Similarly. 1536 * tree-ssa-dom.c (dom_opt_dom_walker): Similarly. 1537 15382018-12-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 1539 1540 * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): 1541 Add SVE_NOT_IMPLEMENTED value. 1542 * config/aarch64/aarch64-protos.h (struct tune_params): Add sve_width 1543 field. 1544 * config/aarch64/aarch64.c (generic_tunings,cortexa35_tunings, 1545 cortexa53_tunings, cortexa57_tunings, cortexa72_tunings, 1546 cortexa73_tunings, exynosm1_tunings, thunderx_tunings, 1547 thunderx_tunings, tsv110_tunings, xgene1_tunings, qdf24xx_tunings, 1548 saphira_tunings, thunderx2t99_tunings, emag_tunings): 1549 Specify sve_width. 1550 (aarch64_estimated_poly_value): Define. 1551 (TARGET_ESTIMATED_POLY_VALUE): Define. 1552 15532018-12-07 Paul A. Clarke <pc@us.ibm.com> 1554 1555 PR target/88408 1556 * config/rs6000/mmintrin.h (_mm_packs_pu16): Correctly use "__vector". 1557 15582018-12-07 Vladimir Makarov <vmakarov@redhat.com> 1559 1560 PR rtl-optimization/88349 1561 * ira-costs.c (record_operand_costs): Check bigger reg class on 1562 NO_REGS. 1563 15642018-12-07 Richard Sandiford <richard.sandiford@arm.com> 1565 1566 * config/aarch64/aarch64-sve.md (*mul<mode>3, *v<optab><mode>3): 1567 Split the patterns after reload if we don't need the predicate 1568 operand. 1569 (*post_ra_mul<mode>3, *post_ra_v<optab><mode>3): New patterns. 1570 15712018-12-07 Richard Sandiford <richard.sandiford@arm.com> 1572 1573 * config/aarch64/iterators.md (SVE_UNPRED_FP_BINARY): New code 1574 iterator. 1575 (sve_fp_op): Handle minus and mult. 1576 * config/aarch64/aarch64-sve.md (*add<mode>3, *sub<mode>3) 1577 (*mul<mode>3): Split the patterns after reload if we don't 1578 need the predicate operand. 1579 (*post_ra_<sve_fp_op><mode>3): New pattern. 1580 15812018-12-07 Bin Cheng <bin.cheng@linux.alibaba.com> 1582 1583 * profile-count.h (profile_count::oeprator>=): Fix typo by inverting 1584 return condition when *this is precise zero. 1585 15862018-12-07 Jakub Jelinek <jakub@redhat.com> 1587 1588 PR target/85593 1589 * final.c (rest_of_handle_final): Don't call collect_fn_hard_reg_usage 1590 for functions with naked attribute. 1591 1592 PR c/88367 1593 * tree-vrp.c (extract_range_from_binary_expr): For POINTER_PLUS_EXPR 1594 with -fno-delete-null-pointer-checks, set_nonnull only if the pointer 1595 is non-NULL and offset is known to have most significant bit clear. 1596 * vr-values.c (vr_values::vrp_stmt_computes_nonzero): For ADDR_EXPR 1597 of MEM_EXPR, return true if the MEM_EXPR has non-zero offset with 1598 most significant bit clear. If offset does have most significant bit 1599 set and -fno-delete-null-pointer-checks, don't return true even if 1600 the base pointer is non-NULL. 1601 16022018-12-06 Alexandre Oliva <aoliva@redhat.com> 1603 1604 * cselib.c (cselib_record_sets): Skip strict low part sets 1605 with NULL src_elt. 1606 16072018-12-06 Paul A. Clarke <pc@us.ibm.com> 1608 1609 PR target/88316 1610 * config/rs6000/smmintrin.h: New file. 1611 * config.gcc: Add smmintrin.h to extra_headers for powerpc*-*-*. 1612 16132018-12-06 Paul A. Clarke <pc@us.ibm.com> 1614 1615 PR target/88316 1616 * config/rs6000/mmintrin.h (_mm_unpackhi_pi8): Fix for big-endian. 1617 (_mm_unpacklo_pi8): Likewise. 1618 (_mm_mulhi_pi16): Likewise. 1619 (_mm_packs_pi16): Fix for big-endian. Use preferred API. 1620 (_mm_packs_pi32): Likewise. 1621 (_mm_packs_pu16): Likewise. 1622 * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix for big-endian. 1623 (_mm_cvtss_si64): Likewise. 1624 (_mm_cvtpi32x2_ps): Likewise. 1625 (_mm_shuffle_ps): Likewise. 1626 (_mm_movemask_pi8): Likewise. 1627 (_mm_mulhi_pu16): Likewise. 1628 (_mm_sad_pu8): Likewise. 1629 (_mm_sad_pu8): Likewise. 1630 (_mm_cvtpu16_ps): Fix for big-endian. Use preferred API. 1631 (_mm_cvtpu8_ps): Likewise. 1632 (_mm_movemask_ps): Better #else case for big-endian (no functional 1633 change). 1634 (_mm_shuffle_pi16): Likewise. 1635 * config/rs6000/emmintrin.h (_mm_movemask_pd): Fix for big-endian. 1636 Better #else case for big-endian (no functional change). 1637 (_mm_movemask_epi8): Likewise. 1638 (_mm_shufflehi_epi16): Likewise. 1639 (_mm_shufflelo_epi16): Likewise. 1640 (_mm_shuffle_epi32): Likewise. 1641 (_mm_mul_epu32): Fix for big-endian. 1642 (_mm_bsrli_si128): Likewise. 1643 (_mm_cvtps_pd): Better #else case for big endian. 1644 (_mm_mulhi_epi16): Likewise. 1645 (_mm_mul_epu32): Likewise. 1646 (_mm_slli_si128): Likewise. 1647 (_mm_sll_epi16): Likewise. 1648 (_mm_sll_epi32): Likewise. 1649 (_mm_sra_epi16): Likewise. 1650 (_mm_sra_epi32): Likewise. 1651 (_mm_srl_epi16): Likewise. 1652 (_mm_srl_epi32): Likewise. 1653 (_mm_mulhi_epu16): Likewise. 1654 (_mm_sad_epu8): Likewise. 1655 * config/rs6000/pmmintrin.h (_mm_hadd_ps): Fix for big-endian. 1656 (_mm_sub_ps): Likewise. 1657 * config/rs6000/mmintrin.h (_mm_cmpeq_pi8): Fix for 32-bit mode. 1658 * gcc/config/rs6000/tmmintrin.h (_mm_alignr_epi8): Use ENDIAN 1659 macros consistently (no functional changes). 1660 (_mm_alignr_pi8): Likewise. 1661 16622018-12-06 Iain Sandoe <iain@sandoe.co.uk> 1663 1664 PR c++/87380 1665 * config/darwin.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC) Remove, use the 1666 default. 1667 * config/rs6000/darwin7.h (TARGET_WEAK_NOT_IN_ARCHIVE_TOC): New. 1668 16692018-12-06 Vladimir Makarov <vmakarov@redhat.com> 1670 1671 PR target/88282 1672 * ira.c (ira_init_register_move_cost): Use info from 1673 hard_regno_mode_ok instead of contains_reg_of_mode. 1674 * ira-costs.c (contains_reg_of_mode): Don't use cost from bigger 1675 hard register class for some fixed hard registers. 1676 16772018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 1678 1679 * doc/extend.texi (Using Assembly Language with C): Document asm inline. 1680 (Size of an asm): Fix typo. Document asm inline. 1681 * gimple-pretty-print.c (dump_gimple_asm): Handle asm inline. 1682 * gimple.h (enum gf_mask): Add GF_ASM_INLINE. 1683 (gimple_asm_set_volatile): Fix typo. 1684 (gimple_asm_inline_p): New. 1685 (gimple_asm_set_inline): New. 1686 * gimplify.c (gimplify_asm_expr): Propagate the asm inline flag from 1687 tree to gimple. 1688 * ipa-icf-gimple.c (func_checker::compare_gimple_asm): Compare the 1689 gimple_asm_inline_p flag, too. 1690 * tree-core.h (tree_base): Document that protected_flag is ASM_INLINE_P 1691 in an ASM_EXPR. 1692 * tree-inline.c (estimate_num_insns): If gimple_asm_inline_p return 1693 a minimum size for an asm. 1694 * tree.h (ASM_INLINE_P): New. 1695 16962018-12-06 Segher Boessenkool <segher@kernel.crashing.org> 1697 1698 PR inline-asm/55681 1699 * doc/extend.texi (Basic Asm): Update grammar. 1700 (Extended Asm): Update grammar. 1701 17022018-12-06 Iain Sandoe <iain@sandoe.co.uk> 1703 1704 PR target/78444 1705 * config/i386/darwin.h (STACK_BOUNDARY): Remove macro. 1706 * config/i386/i386.c (ix86_compute_frame_layout): Ensure at least 128b 1707 stack alignment in non-leaf functions. 1708 17092018-12-06 Jakub Jelinek <jakub@redhat.com> 1710 1711 PR target/87598 1712 * config/aarch64/aarch64.c (aarch64_print_address_internal): Don't 1713 call output_operand_lossage on VOIDmode CONST_INTs. After 1714 output_operand_lossage do return false. 1715 17162018-12-06 Richard Biener <rguenther@suse.de> 1717 1718 * df-problems.c (df_rd_local_compute): Use bitmap_release. 1719 (df_live_free): Likewise. 1720 (df_md_local_compute): Likewise. 1721 (df_md_free): Release df_md_scratch bitmap. 1722 * loop-invariant.c (calculate_loop_reg_pressure): Use 1723 bitmap_release. 1724 * sched-deps.c (true_dependency_cache, output_dependency_cache, 1725 anti_dependency_cache, control_dependency_cache, 1726 spec_dependency_cache): Use bitmap instead of bitmap_head *. 1727 * sched-ebb.c (schedule_ebbs_init): Initialize non-GTY 1728 dont_calc_deps as bitmap allocated from obstack not GC. 1729 (schedule_ebbs_finish): Use bitmap_release. 1730 * sched-rgn.c (schedule_insns): Initialize non-GTY 1731 not_in_df as bitmap allocated from obstack not GC. 1732 Use bitmap_release. 1733 * sel-sched.c (_forced_ebb_heads): Remove premature optimization. 1734 (sel_region_init): Allocate forced_ebb_heads. 1735 (sel_region_finish): Free forced_ebb_heads. 1736 17372018-12-06 Richard Biener <rguenther@suse.de> 1738 1739 * bitmap.c (bitmap_head::crashme): Define. 1740 * bitmap.h (bitmap_head): Add constexpr default constructor 1741 poisoning the obstack member. 1742 (bitmap_head::crashme): Declare. 1743 (bitmap_release): New function clearing a bitmap and poisoning 1744 the obstack member. 1745 * gengtype.c (main): Make it recognize CONSTEXPR. 1746 * lra-constraints.c (lra_inheritance): Use bitmap_release 1747 instead of bitmap_clear. 1748 * ira.c (ira): Work around class-memaccess warning. 1749 * regrename.c (create_new_chain): Likewise. 1750 17512018-12-06 Jakub Jelinek <jakub@redhat.com> 1752 1753 PR tree-optimization/85726 1754 * generic-match-head.c (optimize_successive_divisions_p): New function. 1755 * gimple-match-head.c (optimize_successive_divisions_p): Likewise. 1756 * match.pd: Don't combine successive divisions if they aren't exact 1757 and optimize_successive_divisions_p is false. 1758 1759 PR fortran/88304 1760 * tree-nested.c (convert_nonlocal_reference_stmt): Remove clobbers 1761 for non-local automatic decls. 1762 17632018-12-05 David Edelsohn <dje.gcc@gmail.com> 1764 1765 * config/rs6000/aix72.h (ASM_DEFAULT_SPEC): Match Power7 processor 1766 default. 1767 17682018-12-05 Uros Bizjak <ubizjak@gmail.com> 1769 1770 * dwarf2out.c (field_byte_offset): Remove 1771 #ifdef PCC_BITFIELD_TYPE_MATTERS check. 1772 17732018-12-05 Richard Biener <rguenther@suse.de> 1774 Martin Sebor <msebor@redhat.com> 1775 1776 PR c/87028 1777 * calls.c (get_attr_nonstring_decl): Avoid setting *REF to 1778 SSA_NAME_VAR. 1779 * gcc/gimple-low.c (lower_stmt): Fold builtin calls here. 1780 * gimplify (maybe_fold_stmt): Avoid folding builtin calls. 1781 17822018-12-05 Iain Sandoe <iain@sandoe.co.uk> 1783 1784 * configure.ac (gcc_cv_otool): Set. 1785 * configure: Regenerate. 1786 17872018-12-05 Uros Bizjak <ubizjak@gmail.com> 1788 1789 * config/i386/cygming.h (PCC_BITFIELD_TYPE_MATTERS): Remove. 1790 (GROUP_BITFIELDS_BY_ALIGN): Ditto. 1791 17922018-12-05 Richard Sandiford <richard.sandiford@arm.com> 1793 1794 PR tree-optimization/88064 1795 * tree-vect-patterns.c (vect_convert_input): Convert the result of 1796 an existing cast if it has the right width but the wrong sign. 1797 Do not test the signedness of the required result when 1798 considering whether to split an existing cast; instead split to 1799 a type with the same signedness as the source of the cast, then 1800 convert it to the opposite signedness where necessary. 1801 (vect_recog_over_widening_pattern): Handle sign changes between 1802 the final PLUS_EXPR and the RSHIFT_EXPR. 1803 (vect_recog_average_pattern): Use an unsigned operation when 1804 truncating an addition, subtraction or multiplication. Cast the 1805 result back to the "real" signedness before promoting. 1806 18072018-12-05 Richard Biener <rguenther@suse.de> 1808 1809 PR tree-optimization/86637 1810 * tree-vectorizer.c (pass_slp_vectorize::execute): Reset 1811 vect_location at the end. 1812 18132018-12-05 Jakub Jelinek <jakub@redhat.com> 1814 1815 PR tree-optimization/87360 1816 * gimple-loop-jam.c (tree_loop_unroll_and_jam): On failure to analyze 1817 data dependencies, don't return false, just continue. Formatting 1818 fixes. 1819 (merge_loop_tree, bb_prevents_fusion_p, unroll_jam_possible_p, 1820 fuse_loops): Formatting fixes. 1821 1822 PR sanitizer/88333 1823 * cfgexpand.c (expand_stack_vars): If asan_vec is empty, start with 1824 aligning frame offset to ASAN_RED_ZONE_SIZE bytes. 1825 18262018-12-05 Xianmiao Qu <xianmiao_qu@c-sky.com> 1827 1828 * config.gcc (csky-*-linux-gnu*): Force .init_array support. 1829 18302018-12-05 Segher Boessenkool <segher@kernel.crashing.org> 1831 1832 * config/rs6000/rs6000.c (rs6000_function_arg): Only do the special 1833 aggregate handling on actual AIX, not on somewhat similar systems. 1834 (rs6000_arg_partial_bytes): Ditto. 1835 18362018-12-04 Vladimir Makarov <vmakarov@redhat.com> 1837 1838 PR rtl-optimization/88317 1839 * lra-constraints.c (split_reg): Don't set up check_only_regs if 1840 we are outside the inheritance pass. 1841 18422018-12-04 Jan Hubicka <hubicka@ucw.cz> 1843 1844 * ipa-prop.c (jump_function_useful_p): New. 1845 (ipa_read_node_info): Do not allocated useless jump functions. 1846 18472018-12-04 David Malcolm <dmalcolm@redhat.com> 1848 1849 PR c/82967 1850 * spellcheck.c (selftest::test_suggestions): Add another assertion. 1851 18522018-12-04 Martin Sebor <msebor@redhat.com> 1853 1854 * doc/extend.texi (__builtin_has_attribute): Fix typo. 1855 18562018-12-04 Jakub Jelinek <jakub@redhat.com> 1857 1858 PR target/88188 1859 * config/rs6000/rs6000.c (ccr_bit): Return -1 instead of assertion 1860 failures. 1861 (print_operand): Use REG_P instead of GET_CODE == REG. 1862 <case 'D'>: Also check CR_REGNO_P (REGNO (x)). 1863 <case 't'>: Likewise. Remove GET_MODE check. 1864 * config/rs6000/rs6000.md (scc patterns): Assert ccr_bit didn't 1865 return -1. 1866 18672018-12-04 Martin Sebor <msebor@redhat.com> 1868 1869 * doc/extend.texi (attribute aligned): Expand. 1870 18712018-12-04 David Edelsohn <dje.gcc@gmail.com> 1872 1873 PR target/61976 1874 * config/rs6000/rs6000.c (rs6000_function_arg): Don't pass aggregates 1875 in FPRs on AIX. 1876 (rs6000_arg_partial_bytes): Same. 1877 18782018-12-04 Vladimir Makarov <vmakarov@redhat.com> 1879 1880 PR target/88282 1881 * ira-costs.c (exec): Try bigger class to use smaller register 1882 move cost. 1883 18842018-12-04 Michael Ploujnikov <michael.ploujnikov@oracle.com> 1885 1886 PR ipa/88297 1887 * ipa-cp.c (create_specialized_node): Track clone counters by 1888 node assembler names. 1889 (ipcp_driver): Change type of clone_num_suffixes key to const char*. 1890 18912018-12-04 Richard Biener <rguenther@suse.de> 1892 1893 * tree-vect-loop.c (vect_transform_loop): Fix epilogue iterations 1894 for epilogue vectorization. 1895 18962018-12-04 Richard Biener <rguenther@suse.de> 1897 1898 PR tree-optimization/88301 1899 * tree-vrp.c (register_edge_assert_for_2): Fix sign-conversion 1900 issues in last commit. 1901 19022018-12-04 Richard Biener <rguenther@suse.de> 1903 1904 PR tree-optimization/88315 1905 * tree-vect-loop.c (get_initial_defs_for_reduction): Simplify 1906 and fix initialization vector for SAD and DOT_PROD SLP reductions. 1907 19082018-12-03 Sandra Loosemore <sandra@codesourcery.com> 1909 1910 PR c/59039 1911 * doc/extend.texi (Nonlocal gotos): New section. 1912 19132018-12-03 Uros Bizjak <ubizjak@gmail.com> 1914 1915 * config/i386/sse.md (vec_concatv2df): Change (v,xm,C) 1916 alternative to (v,vm,c). 1917 19182018-12-03 Segher Boessenkool <segher@kernel.crashing.org> 1919 1920 * gcc/config.gcc (Unsupported targets): Add powerpc*-*-linux*paired*. 1921 (powerpc*-*-linux*): Don't handle it here. 1922 19232018-12-03 Jeff Law <law@redhat.com> 1924 1925 * config/h8300/h8300.md (<code>qi3_1): Add gcc_unreachable to keep 1926 warnings quiet. 1927 1928 * config/h8300/h8300.md (low byte masking peepholes): Only accept 1929 nonimmediate_operand for the to-be-masked operand. 1930 19312018-12-03 Richard Biener <rguenther@suse.de> 1932 1933 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only 1934 allow expected function-pointer cast re-instantiation. 1935 19362018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> 1937 1938 * common/config/s390/s390-common.c (s390_option_init_struct): 1939 Use section anchors by default. 1940 * config/s390/s390.c (s390_check_symref_alignment): Handle 1941 anchors. 1942 (TARGET_MAX_ANCHOR_OFFSET): Use short displacement. 1943 * output.h (assemble_align): Pass `align' as unsigned int, so 1944 that the value 0x80000000, which corresponds to `aligned(1 << 1945 28)', would pass the `align > BITS_PER_UNIT' check. 1946 * varasm.c (assemble_align): Likewise. 1947 19482018-12-03 Julian Brown <julian@codesourcery.com> 1949 1950 * tree-pretty-print.c (dump_omp_clause): Make default case 1951 gcc_unreachable. 1952 19532018-12-03 Richard Biener <rguenther@suse.de> 1954 1955 PR tree-optimization/88301 1956 * tree-vrp.c (register_edge_assert_for_2): Handle conversions 1957 that do not change the value by registering the same assert 1958 for the operand. 1959 19602018-12-03 Richard Biener <rguenther@suse.de> 1961 1962 * tree-vect-loop.c (vect_transform_loop): Properly compute 1963 upper bound for the epilogue when doing epilogue vectorization. 1964 19652018-12-03 Ilya Leoshkevich <iii@linux.ibm.com> 1966 1967 PR target/80080 1968 * cfgcleanup.c (class pass_postreload_jump): New pass. 1969 (pass_postreload_jump::execute): Likewise. 1970 (make_pass_postreload_jump): Likewise. 1971 * passes.def: Add pass_postreload_jump before 1972 pass_postreload_cse. 1973 * tree-pass.h (make_pass_postreload_jump): New pass. 1974 19752018-12-02 Uros Bizjak <ubizjak@gmail.com> 1976 1977 * config/i386/i386.c (inline_memory_move_cost): Correctly 1978 compute number of TFmode GPR moves. 1979 19802018-12-02 Jakub Jelinek <jakub@redhat.com> 1981 1982 PR target/88278 1983 * config/i386/sse.md (*vec_concatv4sf_0, *vec_concatv4si_0): New insns. 1984 19852018-12-02 Jeff Law <law@redhat.com> 1986 1987 * config/h8300/h8300.md (call, call_value): Drop mode from 1988 operand containing number of bytes pushed. 1989 (call_insn, call_value_insn): Use mode iterator for number 1990 of bytes pushed operand. Make pattern name vary appropriately. 1991 19922018-12-02 Jan Hubicka <jh@suse.cz> 1993 1994 * bb-reorer.c (find_rarely_executed_basic_blocks_and_crossin_edges): 1995 trust precise profiles. 1996 19972018-12-02 Jakub Jelinek <jakub@redhat.com> 1998 1999 * tree-nested.c (convert_nonlocal_omp_clauses, 2000 convert_local_omp_clauses): Handle OMP_CLAUSE_IN_REDUCTION, 2001 OMP_CLAUSE_TASK_REDUCTION and OMP_CLAUSE__SIMT_ clauses. 2002 (convert_nonlocal_reference_stmt, convert_local_reference_stmt): 2003 Convert clauses for GIMPLE_OMP_TASKGROUP. 2004 2005 * omp-low.c (check_omp_nesting_restrictions): Allow cancel or 2006 cancellation point with taskgroup clause inside of taskloop. Consider 2007 a taskloop construct without nogroup clause as implicit taskgroup for 2008 diagnostics if cancel/cancellation point with taskgroup clause is 2009 closely nested inside of taskgroup region. 2010 2011 PR sanitizer/88291 2012 * asan.c (asan_clear_shadow): Move assert that len is multiple of 4 2013 to the start of the function. 2014 (asan_emit_stack_protection): When emitting clearing sequence for 2015 epilogue, align offset down to ASAN_RED_ZONE_SIZE granularity, 2016 add last_size_aligned which is last_size padded to multiples of 2017 ASAN_RED_ZONE_SIZE and emit asan_clear_shadow always on 4 byte 2018 boundaries. 2019 20202018-12-01 Jakub Jelinek <jakub@redhat.com> 2021 2022 PR sanitizer/88289 2023 * asan.c (asan_redzone_buffer::flush_redzone_payload): Fix up 2024 an off-by-one for BYTES_BIG_ENDIAN. 2025 2026 PR target/54589 2027 * combine.c (find_split_point): For invalid memory address 2028 nonobj + obj + const, if reg + obj + const is valid addressing 2029 mode, split at nonobj. Use if rather than else if for the 2030 fallback. Comment fixes. 2031 20322018-11-30 Indu Bhagat <indu.bhagat@oracle.com> 2033 2034 * coverage.c (get_coverage_counts): Use from_function_decl for precise 2035 function location. 2036 * profile-count.c (profile_count::dump): Add handling for precise 2037 profile quality. 2038 * profile.c (compute_branch_probabilities): Rely on exec_counts instead 2039 of profile_info to set profile_status of function. 2040 (branch_prob): Do not set profile_status of function based on 2041 profile_info. Done above based on exec_counts. 2042 20432018-11-30 Jakub Jelinek <jakub@redhat.com> 2044 2045 PR tree-optimization/88274 2046 * tree-ssa-reassoc.c (optimize_range_tests_xor, 2047 optimize_range_tests_diff): If type has smaller precision than 2048 corresponding mode or if it has non-standard min/max, compute 2049 everything in a standard type for the precision. 2050 2051 PR testsuite/85368 2052 * params.def (PARAM_LOGICAL_OP_NON_SHORT_CIRCUIT): New param. 2053 * tree-ssa-ifcombine.c (ifcombine_ifandif): If 2054 --param logical-op-non-short-circuit is present, override 2055 LOGICAL_OP_NON_SHORT_CIRCUIT value from the param. 2056 * fold-const.c (fold_range_test, fold_truth_andor): Likewise. 2057 20582018-11-30 Jeff Law <law@redhat.com> 2059 2060 * optabs.c (expand_binop): Use "machine_mode" rather than 2061 "enum machine mode" in most recent change. 2062 20632018-11-30 Wilco Dijkstra <wdijkstr@arm.com> 2064 2065 PR middle-end/64242 2066 * builtins.c (expand_builtin_longjmp): Use a temporary when restoring 2067 the frame pointer. 2068 (expand_builtin_nonlocal_goto): Likewise. 2069 20702018-11-30 David Malcolm <dmalcolm@redhat.com> 2071 2072 * diagnostic-core.h (emit_diagnostic): New decl. 2073 * diagnostic.c (emit_diagnostic): New overload, taking a 2074 rich_location *. 2075 20762018-11-30 David Malcolm <dmalcolm@redhat.com> 2077 2078 * pretty-print.c (class selftest::test_pretty_printer): New 2079 subclass of pretty_printer. 2080 (selftest::test_prefixes_and_wrapping): New test. 2081 (selftest::pretty_print_c_tests): Call it. 2082 20832018-11-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> 2084 2085 Minimize clone counter memory usage in create_virtual_clone. 2086 * cgraph.h (clone_function_name): Add a variant that takes a 2087 tree decl. 2088 * cgraph.h (cgraph_node::create_virtual_clone): Add a new 2089 argument: num_suffix. 2090 * cgraphclones.c (cgraph_node::create_virtual_clone): Pass 2091 num_suffix to clone_function_name. 2092 (clone_function_name): Add a variant that takes a tree decl. 2093 * ipa-cp.c (create_specialized_node): Keep track of clone 2094 counters in clone_num_suffixes hash map. 2095 (ipcp_driver): Free the counter hash map. 2096 * ipa-hsa.c (process_hsa_functions): Creates at most one hsa 2097 clone per function. 2098 20992018-11-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> 2100 Make function assembly more independent. 2101 2102 This is achieved by having clone_function_name assign unique clone 2103 numbers for each function independently. 2104 2105 * cgraphclones.c: Replaced clone_fn_id_num with clone_fn_ids; 2106 hash map. 2107 (clone_function_name_numbered): Use clone_fn_ids. 2108 21092018-11-30 Vladimir Makarov <vmakarov@redhat.com> 2110 2111 PR rtl-optimization/88179 2112 * lra-constraints.c (address_eliminator::address_eliminator): 2113 Don't eleminate regs in illegitimate address. 2114 21152018-11-30 David Malcolm <dmalcolm@redhat.com> 2116 2117 PR preprocessor/88257 2118 * input.c (get_substring_ranges_for_loc): Fix indentation. 2119 Bulletproof against getting a different files back from 2120 linemap_resolve_location and expand_location_to_spelling_point. 2121 21222018-11-30 Alexander Monakov <amonakov@ispras.ru> 2123 2124 PR gcov-profile/88279 2125 * tree-profile.c (init_ic_make_global_vars): Call 2126 decl_default_tls_model for variable and not it's type. 2127 21282018-11-30 Sam Tebbs <sam.tebbs@arm.com> 2129 2130 * config/arm/arm.h (TARGET_DOTPROD): Add TARGET_VFP5 constraint. 2131 21322018-11-30 Martin Liska <mliska@suse.cz> 2133 2134 PR sanitizer/81715 2135 * asan.c (asan_shadow_cst): Remove, partially transform 2136 into flush_redzone_payload. 2137 (RZ_BUFFER_SIZE): New. 2138 (struct asan_redzone_buffer): New. 2139 (asan_redzone_buffer::emit_redzone_byte): Likewise. 2140 (asan_redzone_buffer::flush_redzone_payload): Likewise. 2141 (asan_redzone_buffer::flush_if_full): Likewise. 2142 (asan_emit_stack_protection): Use asan_redzone_buffer class 2143 that is responsible for proper aligned stores and flushing 2144 of shadow memory payload. 2145 * asan.h (ASAN_MIN_RED_ZONE_SIZE): New. 2146 (asan_var_and_redzone_size): Likewise. 2147 * cfgexpand.c (expand_stack_vars): Use smaller alignment 2148 (ASAN_MIN_RED_ZONE_SIZE) in order to make shadow memory 2149 for automatic variables more compact. 2150 21512018-11-30 Alan Modra <amodra@gmail.com> 2152 2153 * config/rs6000/predicates.md (easy_fp_constant): Avoid long 2154 dependent insn sequences. 2155 * config/rs6000/rs6000.c (num_insns_constant): Support long 2156 double constants. 2157 * config/rs6000/rs6000.md (mov<mode>_softfloat <FMOVE128>): Adjust 2158 length attribute. 2159 21602018-11-30 Alan Modra <amodra@gmail.com> 2161 2162 * config/rs6000/rs6000.c (num_insns_constant_gpr): Renamed from 2163 num_insns_constant_wide. Make static. Revise comment. 2164 (num_insns_constant_multi): New function. 2165 (num_insns_constant): Formatting. Correct CONST_WIDE_INT 2166 calculation. Simplify and extract code common to both 2167 CONST_INT and CONST_DOUBLE. Add gcc_unreachable for unhandled 2168 const_double modes. 2169 * config/rs6000/rs6000-protos.h (num_insns_const_wide): Delete. 2170 21712018-11-30 Richard Biener <rguenther@suse.de> 2172 2173 PR tree-optimization/88274 2174 * tree-vrp.c (ranges_from_anti_range): Fix handling of 2175 TYPE_MIN/MAX_VALUE. 2176 21772018-11-29 Andi Kleen <ak@linux.intel.com> 2178 2179 * config/i386/i386.c (current_fentry_section): Add. 2180 (x86_function_profiler): Handle fentry section. 2181 (ix86_attribute_table): Add fentry section. 2182 * config/i386/i386.opt: Add -mfentry-section. 2183 * doc/extend.texi: Document fentry_section attribute. 2184 * doc/invoke.texi: Document -mfentry-section. 2185 21862018-11-29 Andi Kleen <ak@linux.intel.com> 2187 2188 * config/i386/i386.c (x86_print_call_or_nop): Handle nop name. 2189 (current_fentry_name): Add. 2190 (x86_function_profiler): Handle fentry_name attribute. 2191 (ix86_handle_fentry_name): Add. 2192 (ix86_attribute_table): Add fentry_name. 2193 * config/i386/i386.opt: Add -mfentry-name 2194 * doc/extend.texi: Document fentry_name. 2195 * doc/invoke.texi: Document minstrument-return. 2196 21972018-11-29 Andi Kleen <ak@linux.intel.com> 2198 2199 * config/i386/i386-opts.h (enum instrument_return): Add. 2200 * config/i386/i386.c (output_return_instrumentation): Add. 2201 (ix86_output_function_return): Call output_return_instrumentation. 2202 (ix86_output_call_insn): Call output_return_instrumentation. 2203 * config/i386/i386.opt: Add -minstrument-return=. 2204 * doc/invoke.texi (-minstrument-return): Document. 2205 22062018-11-29 Eric Botcazou <ebotcazou@adacore.com> 2207 2208 PR target/87807 2209 * config/sparc/sparc-modes.def: Minor tweak. 2210 * config/sparc/sparc.c: Minor reordering. 2211 (sparc_pass_by_reference): Move around. 2212 (traverse_record_type): Change offset from HOST_WIDE_INT to int. 2213 (classify_registers): Likewise for bitpos. 2214 (function_arg_slotno): Remove dead test and tweak comments. 2215 <MODE_RANDOM>: Remove useless assertion and test whether the 2216 parameter is named in order to pass it in FP registers. Return 2217 the regno for floating-point vector types. 2218 (compute_int_layout): Change bitpos from HOST_WIDE_INT to int. 2219 (compute_fp_layout): Likewise. 2220 (count_registers): Likewise. 2221 (assign_int_registers): Likewise. 2222 (assign_fp_registers): Likewise. 2223 (assign_registers): Likewise. 2224 (function_arg_record_value): Change size from HOST_WIDE_INT to int 2225 and use CEIL_NWORDS to compute the number of registers. 2226 (function_arg_union_value): Minor tweaks. 2227 (function_arg_vector_value): Add slotno and named parameters, use 2228 CEIL_NWORDS to compute the number of registers. 2229 (sparc_function_arg_1): Rework handling of vector types. Change 2230 size from HOST_WIDE_INT to int. 2231 (sparc_arg_partial_bytes): Rework handling of 32-bit ABI and deal 2232 with vector types for the 64-bt ABI. 2233 (sparc_function_arg_advance): Likewise. 2234 (sparc_return_in_memory): Add reference to -fpcc-struct-return. 2235 (sparc_struct_value_rtx): Return NULL_RTX instead of 0. 2236 (sparc_function_value_1): Rework handling of vector types. Change 2237 size from HOST_WIDE_INT to int. 2238 22392018-11-29 Jakub Jelinek <jakub@redhat.com> 2240 2241 PR target/88152 2242 * config/i386/sse.md (*<sse>_movmsk<ssemodesuffix><avxsizesuffix>_lt, 2243 *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_lt, 2244 *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_shift, 2245 *<sse>_movmsk<ssemodesuffix><avxsizesuffix>_zext_shift, 2246 *<sse2_avx2>_pmovmskb_lt, *<sse2_avx2>_pmovmskb_zext_lt): New 2247 define_insn_and_split patterns. 2248 2249 PR target/54700 2250 * config/i386/sse.md 2251 (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt, 2252 *<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint, 2253 *<sse4_1_avx2>_pblendvb_lt): Change define_insn into 2254 define_insn_and_split. 2255 22562018-11-29 Peter Bergner <bergner@linux.ibm.com> 2257 2258 PR target/87496 2259 * config/rs6000/rs6000.c (rs6000_option_override_internal): Disallow 2260 -mabi=ieeelongdouble without both -mpopcntd and -mvsx. 2261 22622018-11-29 Uros Bizjak <ubizjak@gmail.com> 2263 2264 * config/i386/i386.c (inline_memory_move_cost): 2265 Check "in" for 2 in MMX_CLASS_P case. 2266 * config/i386/mmx.md (*mov<mode>_internal): Correct 2267 TARGET_INTER_UNIT_MOVES_FROM_VEC and TARGET_INTER_UNIT_MOVES_TO_VEC 2268 alternatives in preferred_for_speed attribute calculation. 2269 22702018-11-29 Martin Sebor <msebor@redhat.com> 2271 2272 PR c/88172 2273 PR testsuite/88208 2274 * doc/extend.texi (attribute constructor): Clarify. 2275 22762018-11-29 Martin Liska <mliska@suse.cz> 2277 2278 PR middle-end/88246 2279 * builtins.c (expand_movstr): Fix thinko introduced 2280 when switching to the new enum. 2281 22822018-11-29 qing zhao <qing.zhao@oracle.com> 2283 2284 * cif-code.def (EXTERN_LIVE_ONLY_STATIC): New CIF code. 2285 * common.opt: Add -flive-patching flag. 2286 * doc/invoke.texi: Document -flive-patching. 2287 * flag-types.h (enum live_patching_level): New enum. 2288 * ipa-inline.c (can_inline_edge_p): Disable external functions from 2289 inlining when flag_live_patching is LIVE_PATCHING_INLINE_ONLY_STATIC. 2290 * opts.c (control_options_for_live_patching): New function. 2291 (finish_options): Make flag_live_patching incompatible with flag_lto. 2292 Control IPA optimizations based on different levels of 2293 flag_live_patching. 2294 22952018-11-29 Giuliano Belinassi <giuliano.belinassi@usp.br> 2296 2297 * match.pd (sinh (atanh (x))): New simplification rules. 2298 (cosh (atanh (x))): Likewise. 2299 23002018-11-29 Jakub Jelinek <jakub@redhat.com> 2301 2302 PR target/54700 2303 * config/i386/sse.md (ssebytemode): Add V16SI, V8SI and V4SI entries. 2304 (ssefltmodesuffix, ssefltvecmode): New define_mode_attrs. 2305 (*<sse4_1>_blendv<ssemodesuffix><avxsizesuffix>_lt, 2306 *<sse4_1>_blendv<ssefltmodesuffix><avxsizesuffix>_ltint, 2307 *<sse4_1_avx2>_pblendvb_lt): New define_insns. 2308 2309 PR target/88152 2310 * tree.h (build_uniform_cst, uniform_integer_cst_p): Declare. 2311 * tree.c (build_uniform_cst, uniform_integer_cst_p): New functions. 2312 * match.pd (define_predicates): Add uniform_integer_cst_p. 2313 (cmp @0 INTEGER_CST@1, cmp (convert?@2 @0) INTEGER_CST@1): Adjust 2314 so that it works also for vector comparisons with uniform constants 2315 with INTEGER_CST element. 2316 2317 PR target/88234 2318 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): For 2319 vec_add and vec_sub builtins, perform PLUS_EXPR or MINUS_EXPR 2320 in unsigned_type_for instead of vector integral type where overflow 2321 doesn't wrap. 2322 23232018-11-29 Michael Ploujnikov <michael.ploujnikov@oracle.com> 2324 2325 There can be at most one .resolver clone per function 2326 * config/rs6000/rs6000.c (make_resolver_func): Generate 2327 resolver symbol with clone_function_name instead of 2328 clone_function_name_numbered. 2329 23302018-11-29 Richard Biener <rguenther@suse.de> 2331 2332 PR tree-optimization/88243 2333 * tree-vect-patterns.c (vect_mark_pattern_stmts): Set the def 2334 type of all pattern-sequence stmts to vect_internal_def. 2335 23362018-11-29 Andre Vieira <andre.simoesdiasvieira@arm.com> 2337 2338 PR target/88224 2339 * config/arm/arm-cpus.in (armv7-r): Add FP16conv configurations. 2340 (cortex-r7, cortex-r8): Update default and add new configuration. 2341 * doc/invoke.texi (armv7-r): Add two new vfp options. 2342 (nofp.dp): Add cortex-r7 and cortex-r8 to the list of targets that 2343 support this option. 2344 23452018-11-29 Alan Modra <amodra@gmail.com> 2346 2347 * config/rs6000/rs6000.c (rs6000_emit_move): Disable long 2348 double split for targets other than Darwin. 2349 23502018-11-29 Alan Modra <amodra@gmail.com> 2351 2352 * config/rs6000/rs6000.md (movdi_internal64): Correct lengths. 2353 23542018-11-29 Alan Modra <amodra@gmail.com> 2355 2356 * config/rs6000/predicates.md (easy_fp_constant): Remove code 2357 dealing with integers in const_double. Assert on unexpected 2358 modes. Delete superfluous ABI_V4 test. 2359 * config/rs6000/rs6000.c (rs6000_emit_move): Comment fixes. 2360 Don't call easy_fp_constant for Pmode. 2361 (rs6000_hash_constant): Remove code dealing with integers in 2362 const_double. 2363 (rs6000_legitimate_constant_p): Likewise. 2364 (output_toc): Formatting, use CONST_DOUBLE_P. 2365 23662018-11-29 Alan Modra <amodra@gmail.com> 2367 2368 * config/rs6000/constraints.md (G, H): Comment on purpose of 2369 constraint. Correct mode comments and "G" mode test. 2370 * config/rs6000/rs6000.md (movdi_internal32): Remove "GH" from 2371 alternative handling "F". Add length attr. Formatting. 2372 (mov<mode>_softfloat <FMOVE128>): Delete "GH" from 2373 alternative, and move "F" to separate alternative. Correct 2374 insn lengths. 2375 23762018-11-29 Alan Modra <amodra@gmail.com> 2377 2378 * config/rs6000/predicates.md (easy_vector_constant): Don't call 2379 easy_fp_constant. 2380 23812018-11-29 Alan Modra <amodra@gmail.com> 2382 2383 * config.in (HAVE_AS_PLTSEQ): Add. 2384 * config/rs6000/predicates.md (indirect_call_operand): New. 2385 * config/rs6000/rs6000-protos.h (rs6000_pltseq_template), 2386 (rs6000_sibcall_sysv): Declare. 2387 * config/rs6000/rs6000.c (init_cumulative_args): Set cookie 2388 CALL_LONG for -fno-plt. 2389 (print_operand <T, z, 0>): Handle UNSPEC_PLTSEQ. 2390 (rs6000_indirect_call_template_1): Emit .reloc directives for 2391 UNSPEC_PLTSEQ calls. 2392 (rs6000_pltseq_template): New function. 2393 (rs6000_longcall_ref): Add arg parameter. Use PLT16 insns if 2394 relocs supported by assembler. Move SYMBOL_REF test to callers. 2395 (rs6000_call_aix): Adjust rs6000_longcall_ref call. Package 2396 insns in UNSPEC_PLTSEQ, preserving original func_desc. 2397 (rs6000_call_sysv): Likewise. 2398 (rs6000_sibcall_sysv): New function. 2399 * config/rs6000/rs6000.h (HAVE_AS_PLTSEQ): Provide default. 2400 * config/rs6000/rs6000.md (UNSPEC_PLTSEQ, UNSPEC_PLT16_HA, 2401 UNSPEC_PLT16_LO): New. 2402 (pltseq_tocsave, pltseq_plt16_ha, pltseq_plt16_lo, pltseq_mtctr): New. 2403 (call_indirect_nonlocal_sysv): Don't differentiate zero from non-zero 2404 cookie in constraints. Test explicitly for flags in length attr. 2405 Handle unspec operand 1. 2406 (call_value_indirect_nonlocal_sysv): Likewise. 2407 (call_indirect_aix, call_value_indirect_aix): Handle unspec operand 1. 2408 (call_indirect_elfv2, call_value_indirect_elfv2): Likewise. 2409 (sibcall, sibcall_value): Use rs6000_sibcall_sysv. 2410 (sibcall_indirect_nonlocal_sysv): New pattern. 2411 (sibcall_value_indirect_nonlocal_sysv): Likewise. 2412 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv): Remove indirect 2413 call alternatives. 2414 * configure.ac: Check for gas plt sequence marker support. 2415 * configure: Regenerate. 2416 24172018-11-29 Alan Modra <amodra@gmail.com> 2418 2419 * config/rs6000/predicates.md (unspec_tls): New. 2420 * config/rs6000/rs6000-protos.h (rs6000_call_template), 2421 (rs6000_sibcall_template): Update prototype. 2422 (rs6000_longcall_ref): Delete. 2423 (rs6000_call_sysv): Declare. 2424 * config/rs6000/rs6000.c (edit_tls_call_insn): New function. 2425 (global_tlsarg): New variable. 2426 (rs6000_legitimize_tls_address): Rewrite __tls_get_addr call 2427 handling. 2428 (print_operand): Extract UNSPEC_TLSGD address operand. 2429 (rs6000_call_template, rs6000_sibcall_template): Remove arg 2430 parameter, extract from second call operand instead. 2431 (rs6000_longcall_ref): Make static, localize vars. 2432 (rs6000_call_aix): Rename parameter to reflect new usage. Take 2433 tlsarg from global_tlsarg. Don't create unused rtl or nop insns. 2434 (rs6000_sibcall_aix): Rename parameter to reflect new usage. Take 2435 tlsarg from global_tlsarg. 2436 (rs6000_call_sysv): New function. 2437 * config/rs6000/rs6000.md: Adjust rs6000_call_template and 2438 rs6000_sibcall_template throughout. 2439 (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix, tls_gd_call_sysv): Delete. 2440 (tls_ld_aix, tls_ld_sysv, tls_ld_call_aix, tls_ld_call_sysv): Delete. 2441 (tls_gdld_nomark): New insn. 2442 (tls_gd): Swap operand order. Simplify mode selection. 2443 (tls_gd_high, tls_gd_low): Swap operand order. 2444 (tls_ld): Remove const_int 0 vector element from UNSPEC_TLSLD. 2445 Simplify mode selection. 2446 (tls_ld_high, tls_ld_low): Similarly adjust UNSPEC_TLSLD. 2447 (call, call_value): Don't assert for second call operand. 2448 Use rs6000_call_sysv. 2449 24502018-11-29 Alan Modra <amodra@gmail.com> 2451 2452 * config/rs6000/darwin.md (call_indirect_nonlocal_darwin64), 2453 (call_nonlocal_darwin64, call_value_indirect_nonlocal_darwin64), 2454 (call_value_nonlocal_darwin64): Remove constraints from second call 2455 arg, the rounded_stack_size_rtx arg. 2456 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv, tls_gd_call_aix), 2457 (tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv, tls_ld_call_aix), 2458 (tls_ld_call_sysv, call_local32, call_local64, call_value_local32), 2459 (call_value_local64, call_indirect_nonlocal_sysv), 2460 (call_nonlocal_sysv, call_nonlocal_sysv_secure), 2461 (call_value_indirect_nonlocal_sysv, call_value_nonlocal_sysv), 2462 (call_value_nonlocal_sysv_secure, call_local_aix), 2463 (call_value_local_aix, call_nonlocal_aix, call_value_nonlocal_aix), 2464 (call_indirect_aix, call_value_indirect_aix, call_indirect_elfv2), 2465 (call_value_indirect_elfv2, sibcall_local32, sibcall_local64), 2466 (sibcall_value_local32, sibcall_value_local64, sibcall_aix), 2467 (sibcall_value_aix): Likewise. 2468 24692018-11-29 Alan Modra <amodra@gmail.com> 2470 2471 * config/rs6000/rs6000.md (TLSmode): Delete mode iterator. Replace 2472 with P throughout except for call mems which should use SI. 2473 (tls_abi_suffix, tls_sysv_suffix, tls_insn_suffix): Delete mode 2474 attributes. Replace with bits, mode and ptrload respectively. 2475 24762018-11-29 Alan Modra <amodra@gmail.com> 2477 2478 * config/rs6000/rs6000-protos.h (rs6000_indirect_call_template), 2479 (rs6000_indirect_sibcall_template): Declare. 2480 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), 2481 (rs6000_indirect_call_template, rs6000_indirect_sibcall_template): 2482 New functions. 2483 * config/rs6000/rs6000.md (call_indirect_nonlocal_sysv), 2484 (call_value_indirect_nonlocal_sysv, sibcall_nonlocal_sysv), 2485 (call_indirect_aix, call_value_indirect_aix): Use 2486 rs6000_indirect_call_template and rs6000_indirect_sibcall_template. 2487 call_indirect_elfv2, call_value_indirect_elfv2): Likewise, and 2488 handle both speculation and non-speculation cases. 2489 (call_indirect_aix_nospec, call_value_indirect_aix_nospec): Delete. 2490 (call_indirect_elfv2_nospec, call_value_indirect_elfv2_nospec): Delete. 2491 24922018-11-29 Alan Modra <amodra@gmail.com> 2493 2494 * config/rs6000/rs6000-protos.h (rs6000_call_template): Declare. 2495 (rs6000_sibcall_template): Declare. 2496 (macho_call_template): Rename from output_call. 2497 * config/rs6000/rs6000.c (rs6000_call_template_1): New function. 2498 (rs6000_call_template, rs6000_sibcall_template): Likewise. 2499 (macho_call_template): Rename from output_call. 2500 * config/rs6000/rs6000.md (tls_gd_aix, tls_gd_sysv), 2501 (tls_gd_call_aix, tls_gd_call_sysv, tls_ld_aix, tls_ld_sysv), 2502 (tls_ld_call_aix, tls_ld_call_sysv, call_nonlocal_sysv), 2503 (call_nonlocal_sysv_secure, call_value_nonlocal_sysv), 2504 (call_value_nonlocal_sysv_secure, call_nonlocal_aix), 2505 (call_value_nonlocal_aix): Use rs6000_call_template and update 2506 occurrences of output_call to macho_call_template. 2507 (sibcall_nonlocal_sysv, sibcall_value_nonlocal_sysv, sibcall_aix), 2508 (sibcall_value_aix): Use rs6000_sibcall_template. 2509 25102018-11-28 Aaron Sawdey <acsawdey@linux.ibm.com> 2511 2512 * config/rs6000/rs6000-string.c (expand_block_clear): Change how 2513 we determine if unaligned vsx is ok. 2514 25152018-11-28 Jan Hubicka <jh@suse.cz> 2516 2517 * predict.c (determine_unlikely_bbs): Forward declare; also determine 2518 edges that are always known to be taken because it is only likely 2519 edge out of given BB. 2520 (tree_estimate_probability): Call before profile guessing to get bit 2521 of extra precision. 2522 25232018-11-28 Jan Hubicka <jh@suse.cz> 2524 2525 * tree-ssa-ifcombine.c (update_profile_after_ifcombine): Handle 2526 profile_probability::always better. 2527 25282018-11-28 Jan Hubicka <jh@suse.cz> 2529 2530 * profile-count.h (profile_count::split): Give better result when 2531 splitting profile_probability::always. 2532 25332018-11-28 Vladimir Makarov <vmakarov@redhat.com> 2534 2535 PR target/88207 2536 * ira-costs.c (scan_one_insn): Process subregs when updating costs 2537 for pseudos and allocnos from insn. 2538 25392018-11-28 David Edelsohn <dje.gcc@gmail.com> 2540 2541 * config/rs6000/aix72.h: Update to match aix71.h changes. 2542 25432018-11-28 Jeff Law <law@redhat.com> 2544 2545 * config/h8300/constraints.md: Add "C" constraint for call insns. 2546 * config/h8300/h8300.md (call, call_value): Turn into a define_expand 2547 and define_insn pair. Move invalid call targets into a register in 2548 the expander and fix constraints in the matching pattern. 2549 * config/h8300/predicates.md (call_expander_operand): Renamed from 2550 call_insn_operand. Reject things we shouldn't be trying to handle. 2551 (call_insn_operand): New predicate for use by the call/call_value 2552 insns. 2553 (small_call_insn_operand): Update appropriately. 2554 25552018-11-28 Sam Tebbs <sam.tebbs@arm.com> 2556 2557 * config/aarch64/aarch64.c (aarch64_process_target_attr): Replace 2558 calls to strtok with strtok_r. 2559 25602018-11-28 Richard Biener <rguenther@suse.de> 2561 2562 PR tree-optimization/88223 2563 * tree-ssa-sccvn.c (vn_reference_lookup_3): When skipping 2564 over a stored-same value may-alias store make sure to consider 2565 partial overlaps which are valid when TBAA reasonings do not 2566 apply and byte-granular overlaps are possible at all. 2567 25682018-11-28 Richard Biener <rguenther@suse.de> 2569 2570 PR tree-optimization/88217 2571 * vr-values.c (vr_values::extract_range_from_phi_node): Make 2572 sure to handle results > +INF and < -INF correctly when 2573 trying to drop down to +INF - 1 or -INF + 1. 2574 25752018-11-28 Alan Modra <amodra@gmail.com> 2576 2577 * xcoffout.c (do_block): Signed/unsigned warning fix. 2578 25792018-11-28 Richard Biener <rguenther@suse.de> 2580 2581 PR tree-optimization/79351 2582 * tree-ssa-sccvn.c (vn_reference_lookup_3): For assignments from 2583 empty CONSTRUCTORs ensure the store is at a constant position. 2584 25852018-11-28 Richard Biener <rguenther@suse.de> 2586 2587 PR tree-optimization/88229 2588 * tree-ssa.c (non_rewritable_mem_ref_base): Check DECL_SIZE_UNIT 2589 is an INTEGER_CST before accessing it so. 2590 25912018-11-28 Sam Tebbs <sam.tebbs@arm.com> 2592 2593 * doc/invoke.texi (-mtune=): Remove obsolete CPU names. 2594 25952018-11-28 Jakub Jelinek <jakub@redhat.com> 2596 2597 PR target/88189 2598 * config/i386/i386.c (ix86_expand_sse_movcc): Handle DFmode and 2599 SFmode using sse4_1_blendvs[sd] with TARGET_SSE4_1. Formatting fixes. 2600 * config/i386/sse.md (sse4_1_blendv<ssemodesuffix>): New pattern. 2601 26022018-11-27 Martin Liska <mliska@suse.cz> 2603 2604 * gcov.c (generate_results): Append current_working_directory 2605 only when exists. 2606 26072018-11-27 Mike Gulick <mgulick@mathworks.com> 2608 2609 PR preprocessor/83173 2610 * input.c (dump_location_info): Dump reason and included_from 2611 fields from line_map_ordinary struct. Fix indentation when 2612 location > 5 digits. 2613 * diagnostic-show-locus.c (num_digits, num_digits): Move to 2614 diagnostic.c to allow it to be utilized by input.c. 2615 * diagnostic.c (num_digits, selftest::test_num_digits): Moved 2616 here. 2617 (selftest::diagnostic_c_tests): Run selftest::test_num_digits. 2618 * diagnostic.h (num_digits): Add extern definition. 2619 26202018-11-27 Fredrik Noring <noring@nocrew.org> 2621 2622 * config/mips/mips.c (mips_reorg_process_insns) 2623 (mips_option_override): Handle `-mfix-r5900'. 2624 * config/mips/mips.h (ASM_SPEC): Add `mfix-r5900' and 2625 `mno-fix-r5900'. 2626 * config/mips/mips.opt (mfix-r5900): New option. 2627 * doc/invoke.texi: Document the `r5900' processor name, and 2628 `-mfix-r5900' and `-mno-fix-r5900' options. 2629 26302018-11-27 Jakub Jelinek <jakub@redhat.com> 2631 2632 PR target/88188 2633 * config/rs6000/rs6000.c (print_operand) <case 'D'>: Use 2634 output_operand_lossage instead of gcc_assert. 2635 <case 't'>: Likewise. 2636 <case 'z'>: Likewise. 2637 <case 'V'>: Use output_operand_lossage instead of gcc_unreachable. 2638 26392018-11-27 Jeff Law <law@redhat.com> 2640 2641 * config/riscv/riscv (riscv_block_mvoe_straight): Use RETURN_BEGIN 2642 in call to move_by_pieces. 2643 2644 * config/sh/sh-mem.c (expand_block_move): Use RETURN_BEGIN in call 2645 to move_by_pieces. 2646 2647 * config/lm32/lm32.c (lm32_block_move_inline): Use RETURN_BEGIN in 2648 call to move_by_pieces. 2649 2650 * config/mips/mips.c (mips_block_move_straight): Use RETURN_BEGIN 2651 in call to move_by_pieces. 2652 2653 * config/microblaze/microblaze.c (microblaze_block_move_straight): Use 2654 RETURN_BEGIN in call to move_by_pieces. 2655 (microblaze_expand_block_move): Likewise. 2656 26572018-11-27 Tamar Christina <tamar.christina@arm.com> 2658 2659 * doc/md.texi (xorsign): Document it. 2660 26612018-11-27 Martin Liska <mliska@suse.cz> 2662 2663 * config/gnu-user.h (TARGET_F951_OPTIONS): New. 2664 * gcc.c (find_fortran_preinclude_file): New function 2665 to handle Fortran pre-include. 2666 26672018-11-27 Martin Liska <mliska@suse.cz> 2668 2669 * asan.c (asan_emit_stack_protection): Use new enum values 2670 instead of int constants. 2671 * builtins.c (expand_builtin_memory_copy_args): Replace int 2672 type with memop_ret enum type. 2673 (expand_builtin_mempcpy_args): Likewise. 2674 (expand_builtin_memcpy): Use new enum values 2675 instead of int constants. Likewise. 2676 (expand_builtin_mempcpy): Likewise. 2677 (expand_movstr): Likewise. 2678 (expand_builtin_strcpy_args): Likewise. 2679 (expand_builtin_stpcpy_1): Likewise. 2680 (expand_builtin_strncpy): Likewise. 2681 (expand_builtin_memset_args): Likewise. 2682 * expr.c (move_by_pieces_d::finish_endp): Rename to ... 2683 (move_by_pieces_d::finish_retmode): ... this. 2684 (move_by_pieces): Change last argument type to memop_ret. 2685 (store_by_pieces): Use new enum values 2686 instead of int constants. 2687 (emit_block_move_hints): Likewise. 2688 (emit_push_insn): Likewise. 2689 (store_expr): Likewise. 2690 * expr.h (store_by_pieces): Change int to newly added enum 2691 type. 2692 * rtl.h (enum memop_ret): Define. 2693 (move_by_pieces): Use the enum type. 2694 26952018-11-27 Alan Modra <amodra@gmail.com> 2696 2697 * config/rs6000/aix71.h (ASM_SPEC): Don't select default -maix64 2698 cpu here. 2699 (ASM_CPU_SPEC): Do so here. Rewrite using if .. else if .. specs 2700 form. Error on missing -mcpu case. 2701 * config/rs6000/driver-rs6000.c (asm_names <_AIX>): Update NULL case. 2702 (asm_names <!_AIX>): Add missing cpus. Update NULL case. Apply 2703 PR63177 fix for -mcpu=power8 and -mcpu=powerpc64le. 2704 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Rewrite using if .. 2705 else if .. specs form. Error on missing -mcpu case. Don't output 2706 duplicate -maltivec. Apply PR63177 fix for -mcpu=powerpc64le. 2707 27082018-11-26 David Malcolm <dmalcolm@redhat.com> 2709 2710 * dump-context.h (dump_context::dump_loc): Convert 1st param from 2711 dump_flags_t to const dump_metadata_t &. Convert 2nd param from 2712 const dump_location_t & to const dump_user_location_t &. 2713 (dump_context::dump_loc_immediate): Convert 2nd param from 2714 const dump_location_t & to const dump_user_location_t &. 2715 (dump_context::dump_gimple_stmt): Convert 1st param from 2716 dump_flags_t to const dump_metadata_t &. 2717 (dump_context::void dump_gimple_stmt_loc): Likewise; convert 2718 2nd param from const dump_location_t & to 2719 const dump_user_location_t &. 2720 (dump_context::dump_gimple_expr): Convert 1st param from 2721 dump_flags_t to const dump_metadata_t &. 2722 (dump_context::dump_gimple_expr_loc): Likewise; convert 2723 2nd param from const dump_location_t & to 2724 const dump_user_location_t &. 2725 (dump_context::dump_generic_expr): Convert 1st param from 2726 dump_flags_t to const dump_metadata_t &. 2727 (dump_context::dump_generic_expr_loc): Likewise; convert 2728 2nd param from const dump_location_t & to 2729 const dump_user_location_t &. 2730 (dump_context::dump_printf_va): Convert 1st param from 2731 dump_flags_t to const dump_metadata_t &. 2732 (dump_context::dump_printf_loc_va): Likewise; convert 2733 2nd param from const dump_location_t & to 2734 const dump_user_location_t &. 2735 (dump_context::dump_dec): Convert 1st param from 2736 dump_flags_t to const dump_metadata_t &. 2737 (dump_context::dump_symtab_node): Likewise. 2738 (dump_context::begin_scope): Split out 2nd param into 2739 user and impl locations. 2740 (dump_context::ensure_pending_optinfo): Add metadata param. 2741 (dump_context::begin_next_optinfo): Replace dump_location_t param 2742 with metadata and user location. 2743 * dumpfile.c (dump_context::dump_loc): Convert 1st param from 2744 dump_flags_t to const dump_metadata_t &. Convert 2nd param from 2745 const dump_location_t & to const dump_user_location_t &. 2746 (dump_context::dump_loc_immediate): Convert 2nd param from 2747 const dump_location_t & to const dump_user_location_t &. 2748 (dump_context::dump_gimple_stmt): Convert 1st param from 2749 dump_flags_t to const dump_metadata_t &. 2750 (dump_context::void dump_gimple_stmt_loc): Likewise; convert 2751 2nd param from const dump_location_t & to 2752 const dump_user_location_t &. 2753 (dump_context::dump_gimple_expr): Convert 1st param from 2754 dump_flags_t to const dump_metadata_t &. 2755 (dump_context::dump_gimple_expr_loc): Likewise; convert 2756 2nd param from const dump_location_t & to 2757 const dump_user_location_t &. 2758 (dump_context::dump_generic_expr): Convert 1st param from 2759 dump_flags_t to const dump_metadata_t &. 2760 (dump_context::dump_generic_expr_loc): Likewise; convert 2761 2nd param from const dump_location_t & to 2762 const dump_user_location_t &. 2763 (dump_context::dump_printf_va): Convert 1st param from 2764 dump_flags_t to const dump_metadata_t &. 2765 (dump_context::dump_printf_loc_va): Likewise; convert 2766 2nd param from const dump_location_t & to 2767 const dump_user_location_t &. 2768 (dump_context::dump_dec): Convert 1st param from 2769 dump_flags_t to const dump_metadata_t &. 2770 (dump_context::dump_symtab_node): Likewise. 2771 (dump_context::begin_scope): Split out 2nd param into 2772 user and impl locations. 2773 (dump_context::ensure_pending_optinfo): Add metadata param. 2774 (dump_context::begin_next_optinfo): Replace dump_location_t param 2775 with metadata and user location. 2776 (dump_gimple_stmt): Convert 1st param from dump_flags_t to 2777 const dump_metadata_t &. 2778 (dump_gimple_stmt_loc): Likewise; convert 2nd param from 2779 const dump_location_t & to const dump_user_location_t &. 2780 (dump_gimple_expr): Convert 1st param from dump_flags_t to 2781 const dump_metadata_t &. 2782 (dump_gimple_expr_loc): Likewise; convert 2nd param from 2783 const dump_location_t & to const dump_user_location_t &. 2784 (dump_generic_expr): Convert 1st param from dump_flags_t to 2785 const dump_metadata_t &. 2786 (dump_generic_expr_loc): Likewise; convert 2nd param from 2787 const dump_location_t & to const dump_user_location_t &. 2788 (dump_printf): Convert 1st param from dump_flags_t to 2789 const dump_metadata_t &. 2790 (dump_printf_loc): Likewise; convert 2nd param from 2791 const dump_location_t & to const dump_user_location_t &. 2792 (dump_dec): Convert 1st param from dump_flags_t to 2793 const dump_metadata_t &. 2794 (dump_symtab_node): Likewise. 2795 (dump_begin_scope): Split out 2nd param into user and impl 2796 locations. 2797 (selftest::assert_impl_location_eq): New function. 2798 (ASSERT_IMPL_LOCATION_EQ): New macro. 2799 (selftest::test_impl_location): Update to use 2800 ASSERT_IMPL_LOCATION_EQ. 2801 (selftest::test_capture_of_dump_calls): Convert "loc" to 2802 dump_user_location_t. Add ASSERT_IMPL_LOCATION_EQ throughout, 2803 verifying line numbers of dump emissions. 2804 * dumpfile.h (class dump_metadata_t): New class. 2805 (dump_printf): Convert 1st param from dump_flags_t to 2806 const dump_metadata_t &. 2807 (dump_printf_loc): Likewise; convert 2nd param from 2808 const dump_location_t & to const dump_user_location_t &. 2809 (dump_generic_expr_loc): Likewise. 2810 (dump_generic_expr): Convert 1st param from dump_flags_t to 2811 const dump_metadata_t &. 2812 (dump_gimple_stmt_loc): Likewise; convert 2nd param from 2813 const dump_location_t & to const dump_user_location_t &. 2814 (dump_gimple_stmt): Convert 1st param from dump_flags_t to 2815 const dump_metadata_t &. 2816 (dump_gimple_expr_loc): Likewise; convert 2nd param from 2817 const dump_location_t & to const dump_user_location_t &. 2818 (dump_gimple_expr): Convert 1st param from dump_flags_t to 2819 const dump_metadata_t &. 2820 (dump_symtab_node): Likewise. 2821 (dump_dec): Likewise. 2822 (dump_begin_scope): Split out 2nd param into user and impl 2823 locations. 2824 (auto_dump_scope::auto_dump_scope): Split "loc" param into a user 2825 location and impl_location, and capture the impl_location. 2826 (AUTO_DUMP_SCOPE): Rename param from LOC to USER_LOC. 2827 * loop-unroll.c (report_unroll): Update for changes to 2828 dump_printf_loc and dump_printf. 2829 * opt-problem.cc (opt_problem::opt_problem): Update for change to 2830 dump_loc. 2831 * optinfo-emit-json.cc 2832 (selftest::test_building_json_from_dump_calls): Convert "loc" from 2833 dump_location_t to dump_user_location_t. 2834 * optinfo.cc (optinfo::emit_for_opt_problem): Update for change in 2835 dump_loc_immediate. 2836 * profile.c (compute_branch_probabilities): Update for change to 2837 dump_printf_loc. 2838 * selftest.h (ASSERT_STR_CONTAINS_AT): New macro. 2839 * tree-vect-slp.c (vect_print_slp_tree): Update for change to 2840 dump_printf_loc. 2841 28422018-11-27 Jozef Lawrynowicz <jozef.l@mittosystems.com> 2843 2844 * doc/sourcebuild.texi: Document check_effective_target_int_eq_float 2845 and check_effective_target_ptr_eq_long. 2846 28472018-11-27 Alan Modra <amodra@gmail.com> 2848 2849 * config.gcc (powerpc*-*-freebsd*, powerpc-*-netbsd*), 2850 (powerpc-*-eabisimaltivec*, powerpc-*-eabisim*, powerpc-*-elf*), 2851 (powerpc-*-eabialtivec*, powerpc-*-eabi*, powerpc-*-rtems*), 2852 (powerpc-wrs-vxworks*, powerpc-*-lynxos*, powerpcle-*-elf*), 2853 (powerpcle-*-eabisim*, powerpcle-*-eabi*): Add gnu-user.h to tm_file. 2854 * config/rs6000/freebsd.h (CPLUSPLUS_CPP_SPEC), 2855 (LINK_GCC_C_SEQUENCE_SPEC): Undef. 2856 (ASM_APP_ON, ASM_APP_OFF): Don't define. 2857 * config/rs6000/freebsd64.h (ASM_APP_ON, ASM_APP_OFF): Don't define. 2858 * config/rs6000/lynx.h (ASM_APP_ON, ASM_APP_OFF): Don't define. 2859 * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define. 2860 * config/rs6000/netbsd.h (CPLUSPLUS_CPP_SPEC), 2861 (LINK_GCC_C_SEQUENCE_SPEC): Undef. 2862 * config/rs6000/rtems.h (LINK_GCC_C_SEQUENCE_SPEC): Define. 2863 * config/rs6000/sysv4.h (GNU_USER_TARGET_CRTI): Redefine. 2864 (GNU_USER_TARGET_CRTN): Redefine. 2865 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC. 2866 (LIB_LINUX_SPEC): Use GNU_USER_TARGET_LIB_SPEC. 2867 (CRTOFFLOADBEGIN, CRTOFFLOADEND): Don't define. 2868 (STARTFILE_LINUX_SPEC): Define as GNU_USER_TARGET_STARTFILE_SPEC. 2869 (ENDFILE_LINUX_SPEC): Define as GNU_USER_TARGET_ENDFILE_SPEC. 2870 (UCLIBC_DYNAMIC_LINKER, CHOOSE_DYNAMIC_LINKER): Don't define. 2871 (LINK_EH_SPEC): Don't define. 2872 28732018-11-26 Martin Sebor <msebor@redhat.com> 2874 2875 PR 87756 2876 * expr.c (string_constant): Handle top-level decls of all character 2877 types and subobjects of narrow character type. 2878 28792018-11-27 Alan Modra <amodra@gmail.com> 2880 2881 * config.gcc (powerpc*-*-linux*): Add linux.h to tm_file. 2882 * config/rs6000/linux.h (TARGET_OS_CPP_BUILTINS): Use 2883 GNU_USER_TARGET_OS_CPP_BUILTINS. 2884 (RS6000_ABI_NAME): Define. 2885 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Use 2886 GNU_USER_TARGET_OS_CPP_BUILTINS. 2887 (MUSL_DYNAMIC_LINKER32): Undef before defining. 2888 (UCLIBC_DYNAMIC_LINKER32, UCLIBC_DYNAMIC_LINKER64): Don't define. 2889 (CHOOSE_DYNAMIC_LINKER): Don't define. 2890 (GNU_USER_DYNAMIC_LINKER32, GNU_USER_DYNAMIC_LINKER64): Don't define. 2891 * config/rs6000/sysv4.h (MUSL_DYNAMIC_LINKER): Undef before defining. 2892 (CHOOSE_DYNAMIC_LINKER, GNU_USER_DYNAMIC_LINKER): Only define when 2893 not already defined. 2894 (CPP_OS_LINUX_SPEC): Remove defines and asserts handled by 2895 TARGET_OS_CPP_BUILTINS. 2896 28972018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> 2898 2899 * doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io. 2900 29012018-11-26 Jakub Jelinek <jakub@redhat.com> 2902 2903 PR target/88195 2904 * config/i386/i386.c (def_builtin2): If tcode == VOID_FTYPE_UINT64 2905 and !TARGET_64BIT, return NULL_TREE. 2906 2907 PR c++/86900 2908 * dwarf2out.c (secname_for_decl): For functions with 2909 DECL_SECTION_NAME if in_cold_section_p, try to return 2910 current_function_section's name if it is a named section. 2911 29122018-11-26 Maya Rashish <coypu@sdf.org> 2913 2914 PR target/58397 2915 * config.host (*-*-netbsd*): Use x-netbsd and host-netbsd.o. 2916 * config/x-netbsd: New file. 2917 * config/host-netbsd: New file. 2918 29192018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com> 2920 2921 * doc/sourcebuild.texi: Document check_effective_target_size20plus. 2922 Clarify documentation for check_effective_target_size32plus. 2923 29242018-11-26 Aaron Sawdey <acsawdey@linux.ibm.com> 2925 2926 * config/rs6000/rs6000-string.c (expand_cmp_vec_sequence): Rename 2927 and modify expand_strncmp_vec_sequence. 2928 (emit_final_compare_vec): Rename and modify emit_final_str_compare_vec. 2929 (generate_6432_conversion): New function. 2930 (expand_block_compare): Add support for vsx. 2931 (expand_block_compare_gpr): New function. 2932 * config/rs6000/rs6000.opt (rs6000_block_compare_inline_limit): Increase 2933 default limit to 63 because of more compact vsx code. 2934 29352018-11-26 Uros Bizjak <ubizjak@gmail.com> 2936 2937 PR target/88178 2938 * config/i386/i386.c (dbx_register_map): Use IGNORED_DWARF_REGNUM 2939 for registers for which no debug information can be generated. 2940 Use INVALID_REGNUM for non-existent registers. 2941 (dbx64_register_map): Ditto. 2942 (svr4_dbx_register_map): Ditto. 2943 29442018-11-26 Sandra Loosemore <sandra@codesourcery.com> 2945 2946 PR c/57182 2947 * doc/invoke.texi (Optimize Options): Document that 2948 -freorder-functions also uses "hot" and "cold" attributes. 2949 29502018-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2951 2952 * config/aarch64/aarch64.c (aarch64_mangle_type): Fix typo in comment. 2953 29542018-11-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 2955 2956 * config/arm/types.md (mul64): Rename to... 2957 (widen_mul64): ... This. 2958 * config/arm/arm-generic.md: Rename mul64 to widen_mul64. 2959 * config/arm/cortex-a15.md: Likewise. 2960 * config/arm/cortex-a5.md: Likewise. 2961 * config/arm/cortex-a53.md: Likewise. 2962 * config/arm/cortex-a57.md: Likewise. 2963 * config/arm/cortex-a7.md: Likewise. 2964 * config/arm/cortex-m4.md: Likewise. 2965 * config/arm/exynos-m1.md: Likewise. 2966 * config/arm/marvell-pj4.md: Likewise. 2967 * config/arm/xgene1.md: Likewise. 2968 29692018-11-26 Richard Biener <rguenther@suse.de> 2970 2971 PR tree-optimization/88182 2972 * tree-vect-loop.c (vectorizable_reduction): Pick up single 2973 correct reduc_def_info. 2974 * tree-vect-slp.c (vect_analyze_slp_instance): Set 2975 STMT_VINFO_REDUC_DEF of the first stmt. 2976 29772018-11-26 Andreas Krebbel <krebbel@linux.ibm.com> 2978 2979 * doc/invoke.texi: Document z14/arch12 -march option. 2980 29812018-11-25 Sandra Loosemore <sandra@codesourcery.com> 2982 2983 PR c/57166 2984 * doc/invoke.texi (Option Summary): Add -Wmissing-noreturn. 2985 (Warning Options): Likewise. 2986 29872018-11-25 Sandra Loosemore <sandra@codesourcery.com> 2988 2989 PR web/79738 2990 * doc/extend.texi (Common Function Attributes): Clarify that 2991 functions with "const" attribute can read const global variables. 2992 29932018-11-26 Alan Modra <amodra@gmail.com> 2994 2995 * config/rs6000/rs6000.h (OBJECT_PEF, TARGET_MACOS): Delete. 2996 29972018-11-25 Sandra Loosemore <sandra@codesourcery.com> 2998 2999 PR other/54265 3000 * doc/extend.texi (Common Variable Attributes): Use preferred 3001 placement of type attributes in examples, plus whitespace fixes. 3002 (Type Attributes): Clarify why placement of attributes 3003 immediately after struct/union/enum keyword is preferred. 3004 (Common Type Attributes): Use preferred placement of type 3005 attributes in examples, plus more whitespace fixes. 3006 30072018-11-25 Paul Koning <ni1d@arrl.net> 3008 3009 * config/pdp11/pdp11.h (TARGET_HAS_NO_HW_DIVIDE): Define. 3010 30112018-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3012 3013 * doc/sourcebuild.texi (Effective-Target Keywords, Environment 3014 attributes): Document d_runtime. 3015 30162018-11-25 Vladimir Makarov <vmakarov@redhat.com> 3017 3018 PR bootstrap/88157 3019 * ira-costs.c (record_operand_costs): Initiate register move cost 3020 for mode. 3021 30222018-11-23 Jeff Law <law@redhat.com> 3023 3024 PR rtl-optimization/87468 3025 * tree-ssa-threadupdate.c (create_block_for_threading): Clear 3026 EDGE_IGNORE on all outgoing edges of the duplicate block. 3027 30282018-11-23 Vladimir Makarov <vmakarov@redhat.com> 3029 3030 PR bootstrap/88157 3031 * ira-costs.c (record_operand_costs): Use bigger hard reg class if 3032 its mode does not fit to the original class. 3033 30342018-11-23 Martin Sebor <msebor@redhat.com> 3035 3036 PR tree-optimization/87756 3037 * expr.c (string_constant): Synthesize a string literal from 3038 the address of a constant character. 3039 * tree.c (build_string_literal): Add an argument. 3040 * tree.h (build_string_literal): Same. 3041 30422018-11-23 Christoph Muellner <christoph.muellner@theobroma-systems.com> 3043 3044 * config/aarch64/aarch64-cores.def: Define emag. 3045 * config/aarch64/aarch64-tune.md: Regenerated with emag. 3046 * config/aarch64/aarch64.c (emag_tunings): New struct. 3047 * doc/invoke.texi: Document mtune value. 3048 30492018-11-23 Christoph Muellner <christoph.muellner@theobroma-systems.com> 3050 Philipp Tomsich <philipp.tomsich@theobroma-systems.com> 3051 3052 * config/aarch64/aarch64.c (xgene1_tunings): Optimize Xgene1 tunings 3053 for GCC 9. 3054 * config/aarch64/aarch64.c (xgene1_tunings): Add Xgene1 specific 3055 prefetch tunings. 3056 * config/aarch64/aarch64.c (xgene1_addrcost_table): Correct the post-modify 3057 costs. 3058 * config/arm/aarch-cost-tables.h (xgene1_extra_costs): Update the cost table 3059 for XGene1. 3060 30612018-11-23 Richard Biener <rguenther@suse.de> 3062 3063 PR tree-optimization/88149 3064 * tree-vect-slp.c (vect_slp_analyze_node_operations): Detect 3065 the case where there are two different def types for the 3066 same operand at different operand position in the same stmt. 3067 30682018-23-11 Mihail Ionescu <mihail.ionescu@arm.com> 3069 3070 * config/arm/arm.c (arm_expand_compare_and_swap): Simplify and call 3071 gen_atomic_compare_swap_1. 3072 (arm_evpc_neon_vuzp): Likewise gen_neon_vuzp_internal. 3073 (arm_evpc_neon_vtrn): Likewise gen_neon_vtrn_internal. 3074 (arm_evpc_neon_vext): Likewise gen_neon_vext_internal. 3075 (arm_evpc_neon_vzip): Likewise gen_neon_vzip_internal. 3076 (arm_evpc_neon_vrev): Replace the function pointer and simplify the mode 3077 checks. 3078 * config/arm/arm.md (neon_vext<mode>), 3079 (neon_vrev64<mode>, neon_vrev32<mode>), 3080 (neon_vrev16<mode>, neon_vtrn<mode>_internal), 3081 (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Add an '@'character 3082 before the pattern name. 3083 * config/arm/sync.md: 3084 (atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1), 3085 (atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise. 3086 30872018-11-23 Jakub Jelinek <jakub@redhat.com> 3088 3089 PR tree-optimization/86614 3090 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return early 3091 if TREE_NO_WARNING is set on ref.ref. 3092 30932018-11-22 Sandra Loosemore <sandra@codesourcery.com> 3094 Alan Coopersmith <alan.coopersmith@oracle.com> 3095 3096 PR c/53608 3097 * doc/extend.texi (Designated Inits): Clarify handling of multiple 3098 initializers for unions. 3099 31002018-11-22 Jan Hubicka <jh@suse.cz> 3101 3102 PR lto/88142 3103 * ipa-devirt.c (type_variants_equivalent_p): Drop warn and warned 3104 parameters; do not warn here. 3105 (odr_subtypes_equivalent_p): Likewise. 3106 (warn_odr): Fix typo. 3107 (warn_types_mismatch): Do not output confused warnings on integer types. 3108 (odr_types_equivalent_p): Update. 3109 31102018-11-22 Jakub Jelinek <jakub@redhat.com> 3111 3112 * config/i386/i386.c (ix86_option_override_internal, 3113 ix86_can_inline_p, classify_argument, construct_container, 3114 ix86_expand_prologue, ix86_expand_split_stack_prologue, 3115 ix86_expand_carry_flag_compare, expand_set_or_movmem_via_loop, 3116 expand_setmem_epilogue_via_loop, promote_duplicated_reg, 3117 ix86_expand_set_or_movmem, ix86_init_builtins_va_builtins_abi): 3118 Formatting fixes. 3119 3120 * config/i386/i386.c (ix86_option_override_internal): For 3121 stack_protector_guard related options, use opts_set->x_ instead 3122 of global_options_set. and prefix options with opts->x_ . Move 3123 defaults for offset and reg into else block. 3124 31252018-11-22 Uros Bizjak <ubizjak@gmail.com> 3126 3127 * config/i386/i386.c (ix86_check_avx_upper_register): 3128 Return true for all SSE registers with mode bitsize > 128. 3129 31302018-11-22 Vladimir Makarov <vmakarov@redhat.com> 3131 3132 PR rtl-optimization/87718 3133 * ira-costs.c: Remove trailing white-spaces. 3134 (record_operand_costs): Add a special treatment for moves 3135 involving a hard register. 3136 31372018-11-22 Uros Bizjak <ubizjak@gmail.com> 3138 3139 * config/i386/i386.c (ix86_avx_emit_vzeroupper): Remove. 3140 (ix86_emit_mode_set) <case AVX_U128>: Emit vzeroupper here. 3141 31422018-11-22 Martin Liska <mliska@suse.cz> 3143 3144 * common/config/i386/i386-common.c (processor_names): Add 3145 static assert and add missing "znver2". 3146 (ix86_get_valid_option_values): Add checking assert for null 3147 values and add "native" value if feasible. 3148 * config/i386/i386.h: Do not declare size of processor_names. 3149 * common/config/i386/i386-common.c: 3150 * config/i386/i386.c: Add static assert for size 3151 of processor_cost_table. 3152 31532018-11-22 Thomas Preud'homme <thomas.preudhomme@linaro.org> 3154 3155 * target-insns.def (stack_protect_combined_set): Define new standard 3156 pattern name. 3157 (stack_protect_combined_test): Likewise. 3158 * cfgexpand.c (stack_protect_prologue): Try new 3159 stack_protect_combined_set pattern first. 3160 * function.c (stack_protect_epilogue): Try new 3161 stack_protect_combined_test pattern first. 3162 * config/arm/arm.c (require_pic_register): Add pic_reg and compute_now 3163 parameters to control which register to use as PIC register and force 3164 reloading PIC register respectively. Insert in the stream of insns if 3165 possible. 3166 (legitimize_pic_address): Expose above new parameters in prototype and 3167 adapt recursive calls accordingly. Use pic_reg if non null instead of 3168 cached one. 3169 (arm_load_pic_register): Add pic_reg parameter and use it if non null. 3170 (arm_legitimize_address): Adapt to new legitimize_pic_address 3171 prototype. 3172 (thumb_legitimize_address): Likewise. 3173 (arm_emit_call_insn): Adapt to require_pic_register prototype change. 3174 (arm_expand_prologue): Adapt to arm_load_pic_register prototype change. 3175 (thumb1_expand_prologue): Likewise. 3176 * config/arm/arm-protos.h (legitimize_pic_address): Adapt to prototype 3177 change. 3178 (arm_load_pic_register): Likewise. 3179 * config/arm/predicated.md (guard_addr_operand): New predicate. 3180 (guard_operand): New predicate. 3181 * config/arm/arm.md (movsi expander): Adapt to legitimize_pic_address 3182 prototype change. 3183 (builtin_setjmp_receiver expander): Adapt to thumb1_expand_prologue 3184 prototype change. 3185 (stack_protect_combined_set): New expander.. 3186 (stack_protect_combined_set_insn): New insn_and_split pattern. 3187 (stack_protect_set_insn): New insn pattern. 3188 (stack_protect_combined_test): New expander. 3189 (stack_protect_combined_test_insn): New insn_and_split pattern. 3190 (arm_stack_protect_test_insn): New insn pattern. 3191 * config/arm/thumb1.md (thumb1_stack_protect_test_insn): New insn pattern. 3192 * config/arm/unspecs.md (UNSPEC_SP_SET): New unspec. 3193 (UNSPEC_SP_TEST): Likewise. 3194 * doc/md.texi (stack_protect_combined_set): Document new standard 3195 pattern name. 3196 (stack_protect_set): Clarify that the operand for guard's address is 3197 legal. 3198 (stack_protect_combined_test): Document new standard pattern name. 3199 (stack_protect_test): Clarify that the operand for guard's address is 3200 legal. 3201 32022018-11-22 Richard Biener <rguenther@suse.de> 3203 3204 PR tree-optimization/88148 3205 * tree-ssa-loop-niter.c (simplify_replace_tree): Get optional 3206 valueization callback parameter and handle it. 3207 * tree-ssa-loop-niter.h (simplify_replace_tree): Export. 3208 * tree-ssa-sccvn.c (process_bb): Eliminate in loop niter trees. 3209 32102018-11-22 Richard Biener <rguenther@suse.de> 3211 3212 PR lto/87229 3213 PR lto/88112 3214 * lto-streamer-out.c (lto_is_streamable): Allow CALL_EXPRs 3215 which can appear in size expressions. 3216 * tree-streamer-in.c (unpack_ts_base_value_fields): Stream 3217 CALL_EXPR_BY_DESCRIPTOR. 3218 (streamer_read_tree_bitfields): Stream CALL_EXPR_IFN. 3219 * tree-streamer-out.c (pack_ts_base_value_fields): Stream 3220 CALL_EXPR_BY_DESCRIPTOR. 3221 (streamer_write_tree_bitfields): Stream CALL_EXPR_IFN. 3222 3223 Revert 3224 PR lto/87229 3225 * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val 3226 sizepos values. 3227 32282018-11-22 Richard Biener <rguenther@suse.de> 3229 3230 PR tree-optimization/88069 3231 * tree-ssa-sccvn.c (visit_phi): Tweak previous fix to not 3232 apply to default defs. 3233 32342018-11-22 Jakub Jelinek <jakub@redhat.com> 3235 3236 PR target/85644 3237 PR target/86832 3238 * config/i386/i386.c (ix86_option_override_internal): Default 3239 ix86_stack_protector_guard to SSP_TLS only if TARGET_THREAD_SSP_OFFSET 3240 is defined. 3241 * config/i386/i386.md (stack_protect_set, stack_protect_set_<mode>, 3242 stack_protect_test, stack_protect_test_<mode>): Use empty condition 3243 instead of TARGET_SSP_TLS_GUARD. 3244 32452018-11-22 Martin Liska <mliska@suse.cz> 3246 3247 PR sanitizer/88017 3248 * config/i386/i386.c (ix86_option_override_internal): Error 3249 about usage -mabi=ms and -fsanitize=thread. 3250 32512018-11-21 Uros Bizjak <ubizjak@gmail.com> 3252 3253 Revert the revert: 3254 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> 3255 3256 Revert: 3257 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> 3258 3259 * lra-spills.c (lra_final_code_change): Remove useless move insns. 3260 32612018-11-21 Uros Bizjak <ubizjak@gmail.com> 3262 3263 PR middle-end/88129 3264 * function.c (expand_function_end): Do not emit extra blockage insn. 3265 32662018-11-21 Lokesh Janghel <lokeshjanghel91@gmail.com> 3267 3268 PR target/85667 3269 * config/i386/i386.c (function_value_ms_64): Return AX_REG instead 3270 of FIRST_SSE_REG for 4 or 8 byte modes. 3271 32722018-11-21 Jan Hubicka <jh@suse.cz> 3273 3274 PR lto/87957 3275 * tree.c (fld_decl_context): Break out from ... 3276 (free_lang_data_in_decl): ... here; free TREE_PUBLIC, TREE_PRIVATE 3277 DECL_ARTIFICIAL of TYPE_DECL; do not free TREE_TYPE of TYPE_DECL. 3278 (fld_incomplete_type_of): Build copy of TYP_DECL. 3279 * ipa-devirt.c (free_enum_values): Rename to ... 3280 (free_odr_warning_data): ... this one; free also duplicated TYPE_DECLs 3281 and TREE_TYPEs of TYPE_DECLs. 3282 (get_odr_type): Initialize odr_vtable_hash if needed. 3283 32842018-11-21 Alexandre Oliva <oliva@adacore.com> 3285 3286 * final.c (compute_discriminator): Declare. Renamed from... 3287 (maybe_set_discriminator): ... this. Set and return a local. 3288 (override_discriminator): New. 3289 (final_scan_insn_1): Set it. 3290 (notice_source_line): Adjust. Always set discriminator. 3291 32922018-11-21 Jakub Jelinek <jakub@redhat.com> 3293 3294 PR target/87839 3295 * config/aarch64/atomics.md (@aarch64_compare_and_swap<mode>): Use 3296 rIJ constraint for aarch64_plus_operand rather than rn. 3297 32982018-11-21 Renlin Li <renlin.li@arm.com> 3299 3300 PR middle-end/84877 3301 * explow.h (get_dynamic_stack_size): Declare it as external. 3302 * explow.c (record_new_stack_level): Remove function static attribute. 3303 * function.c (assign_stack_local_1): Dynamically align the stack slot 3304 addr for parameter copy on the stack. 3305 33062018-11-21 Richard Biener <rguenther@suse.de> 3307 3308 PR bootstrap/88133 3309 * bitmap.c (bitmap_last_set_bit): Refactor to avoid warning. 3310 * Makefile.in (bitmap.o-warn): Remove again. 3311 33122018-11-20 Jeff Law <law@redhat.com> 3313 3314 PR tree-optimization/88069 3315 * tree-ssa-dom.c (record_equivalences_from_phis): Propagate away 3316 degenerate virtual PHIs. 3317 33182018-11-21 H.J. Lu <hongjiu.lu@intel.com> 3319 3320 PR target/87317 3321 * config/i386/sse.md (sse4_1_<code>v8qiv8hi2<mask_name>): Replace 3322 nonimmediate_operand with register_operand. 3323 (avx2_<code>v8qiv8si2<mask_name>): Likewise. 3324 (sse4_1_<code>v4qiv4si2<mask_name>): Likewise. 3325 (sse4_1_<code>v4hiv4si2<mask_name>): Likewise. 3326 (sse4_1_<code>v2qiv2di2<mask_name>): Likewise. 3327 (avx512f_<code>v8qiv8di2<mask_name>): Likewise. 3328 (avx2_<code>v4qiv4di2<mask_name>): Likewise. 3329 (avx2_<code>v4hiv4di2<mask_name>): Likewise. 3330 (sse4_1_<code>v2hiv2di2<mask_name>): Likewise. 3331 (sse4_1_<code>v2siv2di2<mask_name>): Likewise. 3332 (*sse4_1_<code>v8qiv8hi2<mask_name>_1): New pattern. 3333 (*sse4_1_<code>v8qiv8hi2<mask_name>_2): Likewise. 3334 (*avx2_<code>v8qiv8si2<mask_name>_1): Likewise. 3335 (*avx2_<code>v8qiv8si2<mask_name>_2): Likewise. 3336 (*sse4_1_<code>v4qiv4si2<mask_name>_1): Likewise. 3337 (*sse4_1_<code>v4qiv4si2<mask_name>_2): Likewise. 3338 (*sse4_1_<code>v4hiv4si2<mask_name>_1): Likewise. 3339 (*sse4_1_<code>v4hiv4si2<mask_name>_2): Likewise. 3340 (*avx512f_<code>v8qiv8di2<mask_name>_1): Likewise. 3341 (*avx512f_<code>v8qiv8di2<mask_name>_2): Likewise. 3342 (*avx2_<code>v4qiv4di2<mask_name>_1): Likewise. 3343 (*avx2_<code>v4qiv4di2<mask_name>_2): Likewise. 3344 (*avx2_<code>v4hiv4di2<mask_name>_1): Likewise. 3345 (*avx2_<code>v4hiv4di2<mask_name>_2): Likewise. 3346 (*sse4_1_<code>v2hiv2di2<mask_name>_1): Likewise. 3347 (*sse4_1_<code>v2hiv2di2<mask_name>_2): Likewise. 3348 (*sse4_1_<code>v2siv2di2<mask_name>_1): Likewise. 3349 (*sse4_1_<code>v2siv2di2<mask_name>_2): Likewise. 3350 33512018-11-21 H.J. Lu <hongjiu.lu@intel.com> 3352 3353 * read-rtl.c (apply_subst_iterator): Handle define_split and 3354 define_insn_and_split. 3355 33562018-11-21 Jakub Jelinek <jakub@redhat.com> 3357 3358 PR rtl-optimization/87817 3359 * config/i386/i386.md (bmi2_bzhi_<mode>3, *bmi2_bzhi_<mode>3, 3360 *bmi2_bzhi_<mode>3_1, *bmi2_bzhi_<mode>3_1_ccz): Use IF_THEN_ELSE 3361 in the pattern to avoid triggering UB when operands[2] is zero. 3362 (tbm_bextri_<mode>): New expander. Renamed the old define_insn to ... 3363 (*tbm_bextri_<mode>): ... this. 3364 33652018-11-21 Tom de Vries <tdevries@suse.de> 3366 3367 PR driver/79855 3368 * params.def (HOT_BB_COUNT_FRACTION): Terminate help message with 3369 period. 3370 33712018-11-21 Andreas Krebbel <krebbel@linux.ibm.com> 3372 3373 * configure.ac: Add check for Binutils to determine whether vector 3374 load/store alignments hints are being supported. 3375 * config.in: Regenerate. 3376 * configure: Regenerate. 3377 * config/s390/s390.c (print_operand): Support new output 3378 modifier A. 3379 * config/s390/s390.md ("movti"): Append alignment hint output 3380 using the new output modifier 'A'. 3381 * config/s390/vector.md ("mov<mode>", "*vec_tf_to_v1tf") 3382 ("*vec_ti_to_v1ti"): Likewise. 3383 33842018-11-20 Martin Sebor <msebor@redhat.com> 3385 3386 * doc/extend.texi (Other Builtins): Add __builtin_has_attribute. 3387 33882018-11-20 Jan Hubicka <hubicka@ucw.cz> 3389 3390 PR lto/84044 3391 * ipa-devirt.c (odr_types_equivalent_p): Use operand_equal_p to 3392 compare ENUM values. 3393 33942018-11-20 Jakub Jelinek <jakub@redhat.com> 3395 3396 PR tree-optimization/87895 3397 * omp-simd-clone.c (ipa_simd_modify_function_body): When removing 3398 or replacing GIMPLE_RETURN, set EDGE_FALLTHRU on the edge to EXIT. 3399 (simd_clone_adjust): Don't set EDGE_FALLTHRU here. In a loop that 3400 redirects edges to EXIT to edges to incr_bb, iterate while EXIT 3401 has any preds and always use EDGE_PRED (, 0). 3402 34032018-11-20 Uros Bizjak <ubizjak@gmail.com> 3404 3405 PR target/88070 3406 * mode-switching.c (create_pre_exit): After reload, always split the 3407 fallthrough edge to the exit block. 3408 34092018-11-20 Jan Hubicka <hubicka@ucw.cz> 3410 3411 * ipa-devirt.c (add_type_duplicate): Do not ICE on incomplete enums. 3412 * tree.c (build_array_type_1): Forward declare. 3413 (fld_type_variant_equal_p): Add INNER_TYPE parameter. 3414 (fld_type_variant): Likewise. 3415 (fld_simplified_types): New hash. 3416 (fld_process_array_type): New function. 3417 (fld_incomplete_type_of): Handle array and enumeration types. 3418 (fld_simplified_type): Handle simplification of arrays. 3419 (free_lang_data): Allocate and free simplified types hash. 3420 34212018-11-20 Jan Hubicka <hubicka@ucw.cz> 3422 3423 PR lto/87957 3424 * ipa-devirt.c (odr_subtypes_equivalent_p): Report ODR violation 3425 when sybtype already violates ODR. 3426 (get_odr_type): Do not ICE when insert is false and type duplicate 3427 is not registered yet. 3428 (register_odr_type): Be sure to register subtypes first. 3429 34302018-11-20 Andreas Krebbel <krebbel@linux.ibm.com> 3431 3432 * config/s390/s390.md ("clztidi2"): Swap the RTX's written to the 3433 DImode parts of the target operand. 3434 34352018-11-20 Nathan Sidwell <nathan@acm.org> 3436 3437 PR 87926 3438 * Makefile.in (bitmap.o-warn): Use -Wno-error=array-bounds. 3439 34402018-11-20 Jan Hubicka <hubicka@ucw.cz> 3441 3442 PR lto/87997 3443 * tree.c (free_lang_data_in_cgraph): Add argument fld; break out 3444 type checking to... 3445 (free_lang_data) ... here; update call of free_lang_data_in_cgraph. 3446 34472018-11-20 Jan Hubicka <hubicka@ucw.cz> 3448 3449 PR ipa/87706 3450 * ipa-fnsummary.c (pass_ipa_fnsummary): Do not remove functions 3451 * ipa.c (possible_inline_candidate_p): Break out from .. 3452 (process_references): ... here ; drop before_inlining_p; 3453 cleanup handling of alises. 3454 (walk_polymorphic_call_targets): Likewise. 3455 (symbol_table::remove_unreachable_nodes): Likewise. 3456 * passes.c (pass_data_ipa_remove_symbols): New structure. 3457 (pass_ipa_remove_symbols): New pass. 3458 (make_pass_ipa_remove_symbols): New function. 3459 * tree-pass.h (make_pass_ipa_remove_symbols): Declare. 3460 * passes.def (pass_ipa_remove_symbols): Schedule after early passes. 3461 34622018-11-20 Richard Biener <rguenther@suse.de> 3463 3464 * tree-vect-stmts.c (vectorizable_condition): Do not get 3465 at else_clause vect def for EXTRACT_LAST_REDUCTION. Remove 3466 pointless vect_is_simple_use calls. 3467 34682018-11-20 Richard Biener <rguenther@suse.de> 3469 3470 PR tree-optimization/88074 3471 * tree-ssa-dom.c (pass_dominator::execute): Do not walk 3472 backedges. 3473 34742018-11-20 Richard Biener <rguenther@suse.de> 3475 3476 PR tree-optimization/88069 3477 * tree-ssa-sccvn.c (visit_phi): Do not value-number to unvisited 3478 virtual PHI arguments. 3479 34802018-11-20 Ilya Leoshkevich <iii@linux.ibm.com> 3481 3482 PR target/88083 3483 * config/s390/s390.md: Skip LT(G) peephole when literal pool is 3484 involved. 3485 * rtl.h (contains_constant_pool_address_p): New function. 3486 * rtlanal.c (contains_constant_pool_address_p): Likewise. 3487 34882018-11-20 Richard Biener <rguenther@suse.de> 3489 3490 PR middle-end/83215 3491 * alias.c (component_uses_parent_alias_set_from): Remove 3492 alias-set zero and TYPE_TYPELESS_STORAGE case both already 3493 handled in other ways. 3494 34952018-11-20 Richard Biener <rguenther@suse.de> 3496 3497 PR tree-optimization/88087 3498 * tree-ssa-pre.c (create_expression_by_pieces): Re-materialize 3499 call fntype. 3500 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Remember 3501 call fntype. 3502 35032018-11-20 Richard Biener <rguenther@suse.de> 3504 3505 PR middle-end/88089 3506 * tree-data-ref.c (lambda_matrix_right_hermite): Use abs_hwi. 3507 35082018-11-19 Jan Hubicka <hubicka@ucw.cz> 3509 3510 PR lto/87957 3511 * ipa-devirt.c (free_enum_values): Do not ICE on ODR vilations. 3512 35132018-11-19 Sandra Loosemore <sandra@codesourcery.com> 3514 3515 PR driver/50250 3516 * doc/invoke.texi (Link Options): Mention shared libraries 3517 in documentation for the -l option. Simplify discussion and 3518 point to the system linker documentation for details. 3519 35202018-11-19 Peter Bergner <bergner@linux.ibm.com> 3521 3522 PR rtl-optimization/88033 3523 * ira-lives.c (non_conflicting_reg_copy_p): Skip copies from a register 3524 to itself. Use HARD_REGISTER_NUM_P. 3525 35262018-11-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 3527 3528 * tree-vect-loop.c (vect_transform_loop): Disable further unrolling 3529 of the loop if vf is non-constant. 3530 35312018-11-19 David Malcolm <dmalcolm@redhat.com> 3532 3533 PR tree-optimization/87025 3534 * dumpfile.c (dump_context::begin_scope): Call end_any_optinfo 3535 immediately after creating the scope optinfo. 3536 (selftest::test_pr87025): New function. 3537 (selftest::dumpfile_c_tests): Call it. 3538 * optinfo-emit-json.cc (optrecord_json_writer::pop_scope): Assert 3539 that we're not popping the top-level records array. 3540 * optinfo.cc (optinfo::handle_dump_file_kind): Assert that we're 3541 not changing the kind of a "scope" optinfo. 3542 35432018-11-19 David Malcolm <dmalcolm@redhat.com> 3544 3545 PR tree-optimization/87025 3546 * dump-context.h: Include "optinfo.h". 3547 (class optrecord_json_writer): New forward decl. 3548 (dump_context::forcibly_enable_optinfo_p): Delete. 3549 (dump_context::optinfo_enabled_p): New member function. 3550 (dump_context::optimization_records_enabled_p): New member 3551 function. 3552 (dump_context::set_json_writer): New member function. 3553 (dump_context::emit_optinfo): New member function. 3554 (dump_context::m_forcibly_enable_optinfo): Delete. 3555 (dump_context::m_json_writer): New member data. 3556 * dumpfile.c (dump_context::set_json_writer): New member function. 3557 (dump_context::finish_any_json_writer): New member function. 3558 (dump_context::end_scope): Replace call to 3559 optimization_records_maybe_pop_dump_scope with call to 3560 m_json_writer->pop_scope. 3561 (dump_context::optinfo_enabled_p): New member function. 3562 (dump_context::end_any_optinfo): Replace call to optinfo::emit with call 3563 to dump_context::emit_optinfo. 3564 (dump_context::emit_optinfo): New member function. 3565 (temp_dump_context::temp_dump_context): Replace 3566 m_forcibly_enable_optinfo with call to set_json_writer. 3567 (temp_dump_context::~temp_dump_context): Clean up any json writer. 3568 * optinfo-emit-json.cc (class optrecord_json_writer): Move to 3569 optinfo-emit-json.h 3570 (the_json_writer): Delete. 3571 (optimization_records_start): Delete. 3572 (optimization_records_finish): Delete. 3573 (optimization_records_enabled_p): Delete, in favor of 3574 dump_context::optimization_records_enabled_p. 3575 (optimization_records_maybe_record_optinfo): Delete. 3576 (optimization_records_maybe_pop_dump_scope): Delete. 3577 * optinfo-emit-json.h: Include "json.h". Delete forward 3578 decl of opt_pass. 3579 (optimization_records_start): Delete. 3580 (optimization_records_finish): Delete. 3581 (optimization_records_enabled_p): Delete. 3582 (optimization_records_maybe_record_optinfo): Delete. 3583 (optimization_records_maybe_pop_dump_scope): Delete. 3584 (class optrecord_json_writer): Move here from 3585 optinfo-emit-json.cc. 3586 * optinfo.cc (optinfo::emit_for_opt_problem): Replace call 3587 to optinfo::emit with call to dump_context::emit_optinfo. 3588 (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. 3589 (optinfo_enabled_p): Delete, in favor of 3590 dump_context::optinfo_enabled_p. 3591 (optinfo_wants_inlining_info_p): Update for conversion o 3592 optimization_records_enabled_p to a member function of 3593 dump_context. 3594 * optinfo.h (optinfo_enabled_p): Delete, in favor of 3595 dump_context::optinfo_enabled_p. 3596 (optinfo::emit): Delete, in favor of dump_context::emit_optinfo. 3597 * toplev.c: Include "dump-context.h". 3598 (compile_file): Replace call to optimization_records_finish with 3599 dump_context::finish_any_json_writer. 3600 (do_compile): Replace call to optimization_records_start with 3601 conditionally creating a optrecord_json_writer for the 3602 dump_context. 3603 36042018-11-19 Jakub Jelinek <jakub@redhat.com> 3605 3606 PR tree-optimization/88071 3607 * tree-vect-loop.c (vectorize_fold_left_reduction): Pass true instead 3608 of false as last argument to gsi_remove. 3609 * tree-vect-stmts.c (vect_finish_replace_stmt): Pass true instead of 3610 false as last argument to gsi_replace. 3611 3612 PR debug/87039 3613 * omp-expand.c: Don't include debug.h. 3614 (adjust_context_and_scope): Add REGION argument. Find DECL_CONTEXT 3615 from innermost outer parallel, task, teams or target that has a 3616 child_fn set, or, if there is no such outer region, use 3617 current_function_decl. Do the DECL_CONTEXT adjustment regardless of 3618 whether a suitable BLOCK is found or not. 3619 (expand_parallel_call, expand_teams_call): Don't call 3620 adjust_context_and_scope here. 3621 (grid_expand_target_grid_body): Revert 2017-01-25 changes. 3622 (expand_omp_taskreg, expand_omp_target): Likewise. Call 3623 adjust_context_and_scope. 3624 * dwarf2out.c (dwarf2out_early_global_decl): For 3625 decl_function_context recurse instead of calling dwarf2out_decl. 3626 36272018-11-20 Eric Botcazou <ebotcazou@adacore.com> 3628 3629 PR rtl-optimization/85925 3630 * rtl.h (word_register_operation_p): New predicate. 3631 * combine.c (record_dead_and_set_regs_1): Only apply specific handling 3632 for WORD_REGISTER_OPERATIONS targets to word_register_operation_p RTX. 3633 * rtlanal.c (nonzero_bits1): Likewise. Adjust couple of comments. 3634 (num_sign_bit_copies1): Likewise. 3635 36362018-11-19 Richard Biener <rguenther@suse.de> 3637 3638 PR lto/87229 3639 * tree.c (free_lang_data_in_one_sizepos): Free non-gimple-val 3640 sizepos values. 3641 36422018-11-19 Eric Botcazou <ebotcazou@adacore.com> 3643 3644 * compare-elim.c (struct comparison): Add not_in_a field. 3645 (is_not): New static function. 3646 (strip_not): Likewise. 3647 (conforming_compare): Handle a NOT in the first operand. 3648 (can_eliminate_compare): Likewise. 3649 (find_comparison_dom_walker::before_dom_children): Likewise. 3650 (try_eliminate_compare): Likewise. 3651 * config/visium/visium.md (negsi2_insn_set_carry): Turn into... 3652 (neg<mode>2_insn_set_carry): ...this and add missing NEG operation. 3653 36542018-11-19 Jonathan Wakely <jwakely@redhat.com> 3655 3656 * doc/extend.texi (Common Type Attributes): Fix typos. 3657 36582018-11-19 Martin Liska <mliska@suse.cz> 3659 3660 PR gcov-profile/88045 3661 * coverage.c (coverage_begin_function): Add assert. 3662 36632018-11-18 Sandra Loosemore <sandra@codesourcery.com> 3664 3665 PR other/40498 3666 * doc/extend.texi (Common Function Attributes): Document that 3667 no_instrument_function applies to -p and -pg, too. 3668 * doc/invoke.texi (Instrumentation Options): Add cross-references 3669 to docs for -p, -pg, and -finstrument-functions. 3670 36712018-11-18 Alan Modra <amodra@gmail.com> 3672 3673 * config/gnu-user.h (GNU_USER_TARGET_CRTI): Define. 3674 (GNU_USER_TARGET_STARTFILE_SPEC): Use it here. 3675 (GNU_USER_TARGET_CRTN): Define. 3676 (GNU_USER_TARGET_ENDFILE_SPEC): Use it here. 3677 (GNU_USER_TARGET_LINK_GCC_C_SEQUENCE_SPEC): Define. 3678 36792018-11-18 Alan Modra <amodra@gmail.com> 3680 3681 * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Delete 3682 !HAVE_LD_PIE variant. 3683 (GNU_USER_TARGET_ENDFILE_SPEC): Likewise. 3684 36852018-11-17 Nick Clifton <nickc@redhat.com> 3686 Sandra Loosemore <sandra@codesourcery.com> 3687 3688 PR driver/31357 3689 * doc/invoke.texi (Overall Options): Document that --help and 3690 --help=<value> options cannot be combined. 3691 36922018-11-17 Jim Wilson <jimw@sifive.com> 3693 3694 * config/riscv/riscv.c (epilogue_cfa_sp_offset): New. 3695 (riscv_restore_reg): If restoring HARD_FRAME_POINTER_REGNUM, and 3696 epilogue_cfa_sp_offset set, then add REG_CFA_DEF_CFA regnote. 3697 (riscv_expand_epilogue): Initialize epilogue_cfa_sp_offset. Set it 3698 to step2 if frame_pointer_needed and step1 is 0. 3699 37002018-11-17 Sandra Loosemore <sandra@codesourcery.com> 3701 3702 PR c++/4225 3703 * doc/cpp.texi (System Headers): Add note about implicit 3704 extern "C" block on targets that define SYSTEM_IMPLICIT_EXTERN_C. 3705 37062018-11-17 Sandra Loosemore <sandra@codesourcery.com> 3707 3708 PR c++/4025 3709 * doc/invoke.texi (C++ Dialect Options): Clarify usage of 3710 -fno-implicit-templates. 3711 37122018-11-17 Jakub Jelinek <jakub@redhat.com> 3713 3714 PR tree-optimization/87546 3715 * tree-vect-patterns.c (vect_look_through_possible_promotion): Add 3716 min_precision variable, initially set it to orig_precision, only does 3717 something if op_type's precision is <= min_precision and update 3718 min_precision whenever calling set_op. 3719 37202018-11-16 Jan Hubicka <hubicka@ucw.cz> 3721 3722 PR ipa/87957 3723 * ipa-devirt.c (warn_odr): Look for main variant to get TYPE_DECL. 3724 37252018-11-16 Sandra Loosemore <sandra@codesourcery.com> 3726 3727 * doc/invoke.texi (Option Summary): Fix whitespace and line 3728 breaks in @gccoptlist environments. 3729 (Warning Options): Likewise. 3730 (Optimize Options): Likewise. 3731 (PowerPC SPE Options): Likewise. 3732 (RS/6000 and PowerPC Options): Likewise. 3733 37342018-11-16 Jeff Law <law@redhat.com> 3735 3736 * config/mn10300/mn10300.md (adddi3_degenerate): Remove bogus 3737 gcc_assert. 3738 37392018-11-16 Sandra Loosemore <sandra@codesourcery.com> 3740 3741 PR middle-end/23197 3742 * doc/invoke.texi (Optimize Options): Update options enabled by 3743 fprofile-generate, -fprofile-use, and -fauto-profile. 3744 37452018-11-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> 3746 3747 PR target/87927 3748 * target-def.h: Initialize TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP. 3749 Add them to the TARGET_ASM_{,UN}ALIGNED_INT_OP structs. 3750 * target.def: Enumerate TARGET_ASM_{,UN}ALIGNED_P{S,D,T}I_OP in 3751 the byte_op hook. 3752 * target.h: Add psi, pdi, pti to struct asm_int_op definition. 3753 * targhooks.c (default_print_patchable_function_entry): Assert 3754 asm_int_op does not return a NULL string. 3755 * varasm.c (integer_asm_op): Return the op for a partial int type 3756 when the requested size does not correspond to an integer type. 3757 * config/msp430/msp430.c: Initialize TARGET_ASM_{,UN}ALIGNED_PSI_OP. 3758 * doc/tm.texi: Regenerate. 3759 37602018-11-12 Jason Merrill <jason@redhat.com> 3761 3762 * gimplify.c (gimplify_case_label_expr): Handle hot/cold attributes. 3763 37642018-11-16 Michael Meissner <meissner@linux.ibm.com> 3765 3766 * config/rs6000/constraints.md (wF constraint): Remove power9 3767 fusion documentation. Just document wF's use for power8 fusion. 3768 * config/rs6000/predicates.md (p9_fusion_reg_operand): Delete. 3769 (fusion_gpr_addis): Delete power9 fusion support. Change power8 3770 fusion support to require the upper 12 bits to be all 0's or all 3771 1's. 3772 (fusion_gpr_mem_load): Add comment. 3773 (fusion_addis_mem_combo_load): Remove power9 fusion support. 3774 (fusion_addis_mem_combo_store): Delete. 3775 (fusion_offsettable_mem_operand): Delete. 3776 * config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Do not set 3777 power8 fusion here. 3778 (ISA_3_0_MASKS_SERVER): Delete power9 fusion. 3779 (POWERPC_MASKS): Delete power9 fusion. 3780 * config/rs6000/rs6000-protos.h (emit_fusion_load_store): Delete. 3781 (fusion_p9_p): Delete. 3782 (expand_fusion_p9_load): Delete. 3783 (expand_fusion_p9_store): Delete. 3784 (emit_fusion_p9_load): Delete. 3785 (emit_fusion_p9_store): Delete. 3786 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Delete power9 3787 fusion support. 3788 (rs6000_option_override_internal): Set power8 fusion based on 3789 whether we are tuning for power8. Delete power9 fusion support. 3790 (rs6000_opt_masks): Delete -mpower9-fusion switch. 3791 (emit_fusion_load): Rename emit_fusion_load_store to 3792 emit_fusion_load, and drop fusion store support. Update callers. 3793 (emit_fusion_load_store): Likewise. 3794 (emit_fusion_gpr_load): Likewise. 3795 (fusion_p9_p): Delete. 3796 (expand_fusion_p9_load): Delete. 3797 (expand_fusion_p9_store): Delete. 3798 (emit_fusion_p9_load): Delete. 3799 (emit_fusion_p9_store): Delete. 3800 * config/rs6000/rs6000.md (UNSPEC_FUSION_P9): Delete. 3801 (GPR_FUSION): Delete. 3802 (FPR_FUSION): Delete. 3803 (power9 fusion peephole2s): Delete. 3804 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Delete. 3805 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Delete. 3806 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_load): Delete. 3807 (fusion_vsx_<P:mode>_<FPR_FUSION:mode>_store): Delete. 3808 (fusion_p9_<mode>_constant): Delete. 3809 * config/rs6000/rs6000.opt (-mpower9-fusion): Delete undocumented 3810 power9 fusion switch. 3811 * doc/md.texi (PowerPC constraints): Update wF constraint 3812 documentation for power8 fusion only. 3813 38142018-11-16 Jakub Jelinek <jakub@redhat.com> 3815 3816 PR rtl-optimization/87475 3817 * cfgrtl.c (patch_jump_insn): Allow redirection failure for 3818 CROSSING_JUMP_P insns. 3819 (cfg_layout_redirect_edge_and_branch): Don't ICE if ret is NULL. 3820 38212018-11-16 Uros Bizjak <ubizjak@gmail.com> 3822 3823 PR target/88051 3824 * config/i386/i386.md (floatunsdidf2): Allow only 64bit AVX512F targets. 3825 * config/i386/sse.md (UNSPEC_MOVDI_TO_SSE): New UNSPEC. 3826 (movdi_to_sse): Rewrite using UNSPEC_MOVDI_TO_SSE unspec. 3827 38282018-11-16 Jakub Jelinek <jakub@redhat.com> 3829 3830 PR middle-end/88032 3831 * optabs.c (expand_binop): For op0_mode use GET_MODE (op0), unless it 3832 is VOIDmode, in which case use int_mode. Similarly for op1_mode. 3833 38342018-11-16 Eric Botcazou <ebotcazou@adacore.com> 3835 3836 * tree-switch-conversion.h (switch_decision_tree::emit_case_nodes): Add 3837 location_t parameter. 3838 (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. 3839 (switch_decision_tree::do_jump_if_equal): Likewise. 3840 * tree-switch-conversion.c (switch_decision_tree::emit): Pass location 3841 of switch statement to emit_case_nodes. 3842 (switch_decision_tree::emit_cmp_and_jump_insns): Add LOC parameter and 3843 set it on the newly built GIMPLE comparison statement. 3844 (switch_decision_tree::do_jump_if_equal): Likewise. 3845 (switch_decision_tree::emit_case_nodes): Add LOC parameter and pass it 3846 in calls to do_jump_if_equal as well as recursive calls. 3847 38482018-11-16 Andi Kleen <ak@linux.intel.com> 3849 3850 * config/i386/i386.md: Allow memory operands to ptwrite. 3851 38522018-11-16 Michael Matz <matz@suse.de> 3853 3854 * system.h (PRsa): New macro. 3855 (SIZE_AMOUNT): Cast number to uint64_t. 3856 * alloc-pool.h (pool_usage::dump): Don't use %zu but PRsa. 3857 (pool_usage::dump_footer): Likewise and also use PRIu64. 3858 * bitmap.h (bitmap_usage::dump): Likewise. 3859 * ggc-common.c (ggc_usage::dump): Likewise. 3860 * ggc-page.c (ggc_print_statistics): Likewise. 3861 * input.c (dump_line_table_statistics): Likewise. 3862 * mem-stats.h (mem_usage::dump): Likewise. 3863 (mem_usage::dump_footer): Likewise. 3864 * rtl.c (dump_rtx_statistics): Likewise. 3865 * tree-cfg.c (dump_cfg_stats): Likewise. 3866 * tree-dfa.c (dump_dfa_stats): Likewise. 3867 * tree-phinodes.c (phinodes_print_statistics): Likewise. 3868 * tree-ssanames (ssanames_print_statistics): Likewise. 3869 * vec.c (vec_usage::dump): Likewise. 3870 (vec_usage::dump_footer): Likewise. 3871 38722018-11-16 Richard Biener <rguenther@suse.de> 3873 3874 PR tree-optimization/88011 3875 * tree-vrp.c (extract_range_from_binary_expr): Fix error in 3876 replacing set_value_range_to_undefined and 3877 set_value_range_to_varying with method calls. 3878 38792018-11-16 Ilya Leoshkevich <iii@linux.ibm.com> 3880 3881 * config/s390/s390.md 3882 (*r<noxa>sbg_<mode>_srl_bitmask): Do not delegate arithmetic to 3883 assembler. 3884 (*r<noxa>sbg_<mode>_sll): Likewise. 3885 (*r<noxa>sbg_<mode>_srl): Likewise. 3886 (*r<noxa>sbg_sidi_srl): New pattern. 3887 38882018-11-16 Jerome Lambourg <lambourg@adacore.com> 3889 3890 * config/vxworks.h (TARGET_VXWORKS_HAVE_CTORS_DTORS): New macro. 3891 Default to TARGET_VXWORKS_RTP. 3892 (SUPPORTS_INIT_PRIORITY): Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead 3893 of TARGET_VXWORKS_RTP. 3894 * config/vxworks.c: Use TARGET_VXWORKS_HAVE_CTORS_DTORS instead 3895 of TARGET_VXWORKS_RTP to set targetm.have_ctors_dtors. 3896 38972018-11-15 Sandra Loosemore <sandra@codesourcery.com> 3898 3899 PR c++/25759 3900 * doc/extend.texi (Common Type Attributes): Make it explicit 3901 that attribute "packed" can apply to C++ classes. 3902 39032018-11-15 Martin Sebor <msebor@redhat.com> 3904 3905 PR c++/87541 3906 PR c++/87542 3907 * tree.c (type_argument_type): New function. 3908 * tree.h (type_argument_type): Declare it. 3909 * gcc/doc/extend.texi (alloc_align): Update and clarify. 3910 (alloc_size, nonnull, sentinel): Same. 3911 39122018-11-15 Andrew Stubbs <ams@codesourcery.com> 3913 Kwok Cheung Yeung <kcy@codesourcery.com> 3914 3915 * tree-vect-stmts.c (vectorizable_store): Don't ICE when 3916 int_mode_for_size fails. 3917 (vectorizable_load): Likewise. 3918 39192018-11-15 David Malcolm <dmalcolm@redhat.com> 3920 3921 * doc/ux.texi (Group logically-related diagnostics): Move 3922 discussion of auto_diagnostic_group into this new subsection. 3923 Give an example of where this grouping is used. 3924 39252018-11-15 David Malcolm <dmalcolm@redhat.com> 3926 3927 PR other/19165 3928 * Makefile.in (OBJS): Move json.o to... 3929 (OBJS-libcommon): ...here and add diagnostic-format-json.o. 3930 * common.opt (fdiagnostics-format=): New option. 3931 (diagnostics_output_format): New enum. 3932 * diagnostic-format-json.cc: New file. 3933 * diagnostic.c (default_diagnostic_final_cb): New function, taken 3934 from start of diagnostic_finish. 3935 (diagnostic_initialize): Initialize final_cb to 3936 default_diagnostic_final_cb. 3937 (diagnostic_finish): Move "being treated as errors" messages to 3938 default_diagnostic_final_cb. Call any final_cb. 3939 (default_diagnostic_finalizer): Add diagnostic_t param. 3940 (diagnostic_report_diagnostic): Pass "orig_diag_kind" to 3941 diagnostic_finalizer callback. 3942 * diagnostic.h (enum diagnostics_output_format): New enum. 3943 (diagnostic_finalizer_fn): Reimplement, adding diagnostic_t param. 3944 (struct diagnostic_context): Add "final_cb". 3945 (default_diagnostic_finalizer): Add diagnostic_t param. 3946 (diagnostic_output_format_init): New decl. 3947 * doc/invoke.texi (-fdiagnostics-format): New option. 3948 * dwarf2out.c (gen_producer_string): Ignore 3949 OPT_fdiagnostics_format_. 3950 * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_format_. 3951 * lto-wrapper.c (append_diag_options): Ignore it. 3952 * opts.c (common_handle_option): Handle it. 3953 39542018-11-15 David Malcolm <dmalcolm@redhat.com> 3955 3956 PR tree-optimization/88015 3957 * graphite-isl-ast-to-gimple.c 3958 (translate_isl_ast_to_gimple::scop_to_isl_ast): Add missing check 3959 for dump_enabled_p. 3960 * graphite-sese-to-poly.c (build_poly_scop): Likewise. 3961 39622018-11-15 Richard Biener <rguenther@suse.de> 3963 3964 PR middle-end/88029 3965 * gimple.c (gimple_call_flags): Union flags from decl, type 3966 and call fntype. 3967 * trans-mem.c (is_tm_pure_call): Simplify. 3968 39692018-11-15 Richard Biener <rguenther@suse.de> 3970 3971 PR tree-optimization/88031 3972 * tree-vect-loop.c (vectorizable_reduction): Move check 3973 for multiple types earlier so we get the expected dump. 3974 Simplify calls to vectorizable_condition. 3975 * tree-vect-stmts.h (vectorizable_condition): Update prototype. 3976 * tree-vect-stmts.c (vectorizable_condition): Instead of 3977 reduc_def and reduc_index take just a flag. Simplify 3978 code-generation now that we can rely on the defs being set up. 3979 (vectorizable_comparison): Remove unused argument. 3980 39812018-11-15 Richard Biener <rguenther@suse.de> 3982 3983 PR tree-optimization/88030 3984 * tree-complex.c (need_eh_cleanup): New global. 3985 (update_complex_assignment): Mark blocks that need EH update. 3986 (expand_complex_comparison): Likewise. 3987 (tree_lower_complex): Allocate and deallocate need_eh_cleanup, 3988 perform EH cleanup and schedule CFG cleanup if that did anything. 3989 39902018-11-15 Jakub Jelinek <jakub@redhat.com> 3991 3992 PR rtl-optimization/88018 3993 * cfgrtl.c (fixup_abnormal_edges): Guard moving insns to fallthru edge 3994 on the presence of fallthru edge, rather than if it is a USE or not. 3995 39962018-11-15 Richard Biener <rguenther@suse.de> 3997 3998 PR middle-end/87917 3999 * tree-data-ref.c (analyze_miv_subscript): Guard calls to 4000 analyze_subscript_affine_affine properly. 4001 40022018-11-15 Xianmiao Qu <xianmiao_qu@c-sky.com> 4003 4004 * config/csky/csky-linux-elf.h (LINUX_DYNAMIC_LINKER): Remove. 4005 (GLIBC_DYNAMIC_LINKER): Define. 4006 (LINUX_TARGET_LINK_SPEC): Update the dynamic linker's name. 4007 40082018-11-15 Bin Cheng <bin.cheng@linux.alibaba.com> 4009 4010 PR tree-optimization/84648 4011 * tree-ssa-loop-niter.c (adjust_cond_for_loop_until_wrap): New. 4012 (number_of_iterations_cond): Adjust exit cond for loop-until-wrap case 4013 by calling adjust_cond_for_loop_until_wrap. 4014 40152018-11-15 Sandra Loosemore <sandra@codesourcery.com> 4016 4017 PR other/56334 4018 * doc/extend.texi (Common Function Attributes): Clarify linker 4019 restrictions on "aligned" attribute. 4020 (Common Variable Attributes): Likewise. Mention that linker 4021 restrictions don't apply to stack-allocated variables. 4022 40232018-11-15 Joern Rennecke <joern.rennecke@riscy-ip.com> 4024 4025 * gensupport.c (add_predicate_code): Properly handle ZERO_EXTRACT 4026 as an lvalue. 4027 40282018-11-14 Sandra Loosemore <sandra@codesourcery.com> 4029 4030 PR lto/55102 4031 PR lto/56700 4032 * doc/invoke.texi (Optimize Options): Remove bad example about 4033 interaction between -flto and -O. Replace it with a note that 4034 you need to compile with -O and not just link. Copy-edit -flto 4035 discussion to reduce verbiage and improve flow. 4036 40372018-11-14 Sandra Loosemore <sandra@codesourcery.com> 4038 4039 PR middle-end/59658 4040 * doc/invoke.texi (Optimize Options): Clarify that -O0 and -Og 4041 also suppress many optimizations. Alphabetize option lists for 4042 -O1, -O2, and -Os. Add list of options disabled with -Og, and 4043 correct documentation for those options to say that. 4044 * opts.c (default_options_table): Sort table by level and option 4045 name, to make it easier to correlate to the manual. 4046 40472018-11-14 Uros Bizjak <ubizjak@gmail.com> 4048 4049 * config/i386/i386.c (ix86_print_operand_address_as): Simplify 4050 printing of the names of segment registers. 4051 40522018-11-14 Nathan Sidwell <nathan@acm.org> 4053 4054 PR debug/88006 4055 PR debug/87462 4056 * dwarf2out.c (dwarf2out_finish): Apply resolve_addr to comdat 4057 type list. 4058 40592018-11-14 David Malcolm <dmalcolm@redhat.com> 4060 4061 * Makefile.in (CFLAGS-optinfo-emit-json.o): Add $(ZLIBINC). 4062 40632018-11-14 Jakub Jelinek <jakub@redhat.com> 4064 4065 P1236R1 - Signed integers are two's complement 4066 * doc/invoke.texi (Wshift-overflow): Adjust documentation for c++2a. 4067 4068 PR bootstrap/86739 4069 * hash-map.h (hash_map::iterator::reference_pair): New class. 4070 (hash_map::iterator::operator*): Return it rather than std::pair. 4071 40722018-11-14 Jeff Law <law@redhat.com> 4073 4074 * optabs.c (expand_binop): Pass INT_MODE to operand_subword_force 4075 iff the operand is a constant. 4076 40772018-11-14 Aldy Hernandez <aldyh@redhat.com> 4078 4079 * gimple-ssa-evrp-analyze.c 4080 (evrp_range_analyzer::record_ranges_from_incoming_edge): Rename 4081 ignore_equivs_equal_p to equal_p. 4082 * ipa-cp.c (meet_with_1): Use equal_p instead of 4083 ignore_equivs_equal_p. 4084 * ipa-prop.c (ipa_vr_ggc_hash_traits::equal): Same. 4085 * tree-vrp.c (value_range::ignore_equivs_equal_p): Remove. 4086 (value_range::operator==): Remove. 4087 (value_range::operator!=): Remove. 4088 (vrp_prop::visit_stmt): Use equal_p. 4089 * tree-vrp.h (value_range): Remove operator==, operator!=, 4090 ignore_equivs_equal_p. 4091 * vr-values.c (update_value_range): Use equal_p. 4092 40932018-11-14 Michael Matz <matz@suse.de> 4094 4095 PR middle-end/86575 4096 * gimplify.c (collect_fallthrough_labels): Add new argument, 4097 return location via that, don't modify statements. 4098 (warn_implicit_fallthrough_r): Adjust call, don't use 4099 statement location directly. 4100 41012018-11-14 Richard Biener <rguenther@suse.de> 4102 4103 PR middle-end/87985 4104 * tree-data-ref.c (split_constant_offset): Add wrapper 4105 allocating a cache hash-map. 4106 (split_constant_offset_1): Cache results of expanding 4107 expressions from SSA def stmts. 4108 41092018-11-14 Richard Biener <rguenther@suse.de> 4110 4111 PR middle-end/88021 4112 * tree-data-ref.c (lambda_matrix_row_add): Change const1 argument 4113 to lambda_int. 4114 (lambda_vector_mult_const): Likewise. 4115 (lambda_matrix_right_hermite): Use lambda_int temporaries. 4116 41172018-11-14 Wilco Dijkstra <wdijkstr@arm.com> 4118 Jackson Woodruff <jackson.woodruff@arm.com> 4119 4120 PR 71026/tree-optimization 4121 * match.pd: Simplify floating point comparisons. 4122 41232018-11-14 Jakub Jelinek <jakub@redhat.com> 4124 4125 PR rtl-optimization/87817 4126 * config/i386/i386.c (ix86_fold_builtin): For _bzhi_u{32,64} if 4127 last argument has low 8 bits clear, fold to 0. 4128 41292018-11-14 Iain Sandoe <iain@sandoe.co.uk> 4130 4131 * tree-vect-data-refs.c (vect_can_force_dr_alignment_p): Cast 4132 MAX_OFILE_ALIGNMENT as needed. 4133 41342018-11-14 Richard Biener <rguenther@suse.de> 4135 4136 PR tree-optimization/88019 4137 * graphite-isl-ast-to-gimple.c (ternary_op_to_tree): Rewrite 4138 COND_EXPR arguments to non-trapping overflow. 4139 41402018-11-14 Claudiu Zissulescu <claziss@synopsys.com> 4141 4142 * config/arc/arc.h (reg_class): Reorder registers classes, remove 4143 unused register classes. 4144 (REG_CLASS_NAMES): Likewise. 4145 (REG_CLASS_CONTENTS): Likewise. 4146 (FIXED_REGISTERS): Make lp_count fixed. 4147 (BASE_REG_CLASS): Remove ACC16_BASE_REGS reference. 4148 (PROGRAM_COUNTER_REGNO): Remove. 4149 * config/arc/arc.c (arc_conditional_register_usage): Remove unused 4150 register classes, use constants for register numbers, remove 4151 reg_class_contents references. 4152 (arc_process_double_reg_moves): Add asserts. 4153 (arc_secondary_reload): Remove LPCOUNT_REG reference, use 4154 lra_in_progress predicate. 4155 (arc_init_reg_tables): Remove unused register classes. 4156 (arc_register_move_cost): Likewise. 4157 (arc_preferred_reload_class): Likewise. 4158 (hwloop_optimize): Update rtx patterns involving lp_count register. 4159 (arc_return_address_register): Rename ILINK1, INLINK2 regnums macros. 4160 * config/arc/constraints.md ("c"): Choose between GENERAL_REGS and 4161 CHEAP_CORE_REGS. Former one will be used for LRA. 4162 ("Rac"): Choose between GENERAL_REGS and ALL_CORE_REGS. Former 4163 one will be used for LRA. 4164 ("w"): Choose between GENERAL_REGS and WRITABLE_CORE_REGS. Former 4165 one will be used for LRA. 4166 ("W"): Choose between GENERAL_REGS and MPY_WRITABLE_CORE_REGS. 4167 Former one will be used for LRA. 4168 ("f"): Delete constraint. 4169 ("k"): Likewise. 4170 ("e"): Likewise. 4171 ("l"): Change it from register constraint to constraint. 4172 * config/arc/arc.md (movqi_insn): Remove unsed lp_count constraints. 4173 (movhi_insn): Likewise. 4174 (movsi_insn): Update pattern. 4175 (arc_lp): Likewise. 4176 (dbnz): Likewise. 4177 (stack_tie): Remove 'b' constraint letter. 4178 (R4_REG): Define. 4179 (R9_REG, R15_REG, R16_REG, R25_REG): Likewise. 4180 (R32_REG, R40_REG, R41_REG, R42_REG, R43_REG, R44_REG): Likewise. 4181 (R57_REG, R59_REG, PCL_REG): Likewise. 4182 (ILINK1_REGNUM): Renamed to ILINK1_REG. 4183 (ILINK2_REGNUM): Renamed to ILINK2_REG. 4184 (Rgp): Remove. 4185 (SP_REGS): Likewise. 4186 (Rcw): Remove unused reg classes. 4187 * config/arc/predicates.md (dest_reg_operand): Just default on 4188 register_operand predicate. 4189 (mpy_dest_reg_operand): Likewise. 4190 (move_dest_operand): Use macros instead of constants. 4191 * config/arc/arc.opt (mlra): Switch to lra as default. 4192 41932018-11-14 Richard Biener <rguenther@suse.de> 4194 4195 PR tree-optimization/87974 4196 * tree-vect-loop.c (vectorizable_reduction): When computing 4197 the vectorized reduction PHI vector type ignore constant 4198 and external defs. 4199 42002018-11-14 Jakub Jelinek <jakub@redhat.com> 4201 4202 PR tree-optimization/87977 4203 * tree-ssa-math-opts.c (optimize_recip_sqrt): Don't reuse division 4204 stmt, build a new one and replace the old one with it. Formatting fix. 4205 Call release_ssa_name (x) if !has_other_use and !delete_div. 4206 (pass_cse_reciprocals::execute): Before calling optimize_recip_sqrt 4207 verify lhs of stmt is still def. 4208 42092018-11-13 Peter Bergner <bergner@linux.ibm.com> 4210 4211 PR rtl-optimization/87507 4212 * lower-subreg.c (operand_for_swap_move_operator): New function. 4213 (simple_move): Strip simple operators. 4214 (find_pseudo_copy): Likewise. 4215 (resolve_operand_for_swap_move_operator): New function. 4216 (resolve_simple_move): Strip simple operators and swap operands. 4217 42182018-11-13 Jakub Jelinek <jakub@redhat.com> 4219 4220 PR tree-optimization/87898 4221 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Formatting fix. 4222 (ipa_simd_modify_function_body): Remove debug stmts where the first 4223 argument was changed into a non-decl. 4224 42252018-11-13 Peter Bergner <bergner@linux.ibm.com> 4226 4227 PR rtl-optimization/87899 4228 * lra-lives.c (start_living): Update white space in comment. 4229 (enum point_type): New. 4230 (sparseset_contains_pseudos_p): New function. 4231 (update_pseudo_point): Likewise. 4232 (make_hard_regno_live): Use HARD_REGISTER_NUM_P macro. 4233 (make_hard_regno_dead): Likewise. Remove ignore_reg_for_conflicts 4234 handling. Move early exit after adding conflicts. 4235 (mark_pseudo_live): Use HARD_REGISTER_NUM_P macro. Add early exit 4236 if regno is already live. Remove all handling of program points. 4237 (mark_pseudo_dead): Use HARD_REGISTER_NUM_P macro. Add early exit 4238 after adding conflicts. Remove all handling of program points and 4239 ignore_reg_for_conflicts. 4240 (mark_regno_live): Use HARD_REGISTER_NUM_P macro. Remove return value 4241 and do not guard call to mark_pseudo_live. 4242 (mark_regno_dead): Use HARD_REGISTER_NUM_P macro. Remove return value 4243 and do not guard call to mark_pseudo_dead. 4244 (check_pseudos_live_through_calls): Use HARD_REGISTER_NUM_P macro. 4245 (process_bb_lives): Use HARD_REGISTER_NUM_P and HARD_REGISTER_P macros. 4246 Use new function update_pseudo_point. Handle register copies by 4247 removing the source register from the live set. Handle INOUT operands. 4248 Update to the next program point using the unused_set, dead_set and 4249 start_dying sets. 4250 (lra_create_live_ranges_1): Use HARD_REGISTER_NUM_P macro. 4251 42522018-11-13 David Malcolm <dmalcolm@redhat.com> 4253 4254 * builtins.c: Replace "source_location" with "location_t". 4255 * diagnostic-show-locus.c: Likewise. 4256 * diagnostic.c: Likewise. 4257 * dumpfile.c: Likewise. 4258 * gcc-rich-location.h: Likewise. 4259 * genmatch.c: Likewise. 4260 * gimple.h: Likewise. 4261 * gimplify.c: Likewise. 4262 * input.c: Likewise. 4263 * input.h: Likewise. Eliminate the typedef. 4264 * omp-expand.c: Likewise. 4265 * selftest.h: Likewise. 4266 * substring-locations.h (get_source_location_for_substring): 4267 Rename to... 4268 (get_location_within_string): ...this. 4269 * tree-cfg.c: Replace "source_location" with "location_t". 4270 * tree-cfgcleanup.c: Likewise. 4271 * tree-diagnostic.c: Likewise. 4272 * tree-into-ssa.c: Likewise. 4273 * tree-outof-ssa.c: Likewise. 4274 * tree-parloops.c: Likewise. 4275 * tree-phinodes.c: Likewise. 4276 * tree-phinodes.h: Likewise. 4277 * tree-ssa-loop-ivopts.c: Likewise. 4278 * tree-ssa-loop-manip.c: Likewise. 4279 * tree-ssa-phiopt.c: Likewise. 4280 * tree-ssa-phiprop.c: Likewise. 4281 * tree-ssa-threadupdate.c: Likewise. 4282 * tree-ssa.c: Likewise. 4283 * tree-ssa.h: Likewise. 4284 * tree-vect-loop-manip.c: Likewise. 4285 42862018-11-13 Michael Ploujnikov <michael.ploujnikov@oracle.com> 4287 4288 * doc/extend.texi: Fix typo in the weakref description. 4289 42902018-11-13 Richard Biener <rguenther@suse.de> 4291 4292 PR tree-optimization/86991 4293 * tree-vect-loop.c (vect_is_slp_reduction): Delay reduction 4294 group building until we have successfully detected the SLP 4295 reduction. 4296 (vect_is_simple_reduction): Remove fixup code here. 4297 42982018-11-13 David Malcolm <dmalcolm@redhat.com> 4299 4300 * dumpfile.c (VERIFY_DUMP_ENABLED_P): New macro. 4301 (dump_gimple_stmt): Use it. 4302 (dump_gimple_stmt_loc): Likewise. 4303 (dump_gimple_expr): Likewise. 4304 (dump_gimple_expr_loc): Likewise. 4305 (dump_generic_expr): Likewise. 4306 (dump_generic_expr_loc): Likewise. 4307 (dump_printf): Likewise. 4308 (dump_printf_loc): Likewise. 4309 (dump_dec): Likewise. 4310 (dump_dec): Likewise. 4311 (dump_hex): Likewise. 4312 (dump_symtab_node): Likewise. 4313 * gimple-loop-interchange.cc (tree_loop_interchange::interchange): 4314 Guard dump call with dump_enabled_p. 4315 * graphite-isl-ast-to-gimple.c (graphite_regenerate_ast_isl): Likewise. 4316 * graphite-optimize-isl.c (optimize_isl): Likewise. 4317 * graphite.c (graphite_transform_loops): Likewise. 4318 * tree-loop-distribution.c (pass_loop_distribution::execute): Likewise. 4319 * tree-parloops.c (parallelize_loops): Likewise. 4320 * tree-ssa-loop-niter.c (number_of_iterations_exit): Likewise. 4321 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise. 4322 (vect_prune_runtime_alias_test_list): Likewise. 4323 * tree-vect-loop.c (vect_update_vf_for_slp): Likewise. 4324 (vect_estimate_min_profitable_iters): Likewise. 4325 * tree-vect-slp.c (vect_record_max_nunits): Likewise. 4326 (vect_build_slp_tree_2): Likewise. 4327 (vect_supported_load_permutation_p): Likewise. 4328 (vect_slp_analyze_operations): Likewise. 4329 (vect_slp_analyze_bb_1): Likewise. 4330 (vect_slp_bb): Likewise. 4331 * tree-vect-stmts.c (vect_analyze_stmt): Likewise. 4332 * tree-vectorizer.c (try_vectorize_loop_1): Likewise. 4333 (pass_slp_vectorize::execute): Likewise. 4334 (increase_alignment): Likewise. 4335 43362018-11-13 David Malcolm <dmalcolm@redhat.com> 4337 4338 PR ipa/87955 4339 * ipa-inline.c (report_inline_failed_reason): Guard calls to 4340 cl_target_option_print_diff and cl_optimization_print_diff with 4341 if (dump_file). 4342 43432018-11-13 David Malcolm <dmalcolm@redhat.com> 4344 4345 * doc/invoke.texi (-fsave-optimization-record): Note that the 4346 output is compressed. 4347 * optinfo-emit-json.cc: Include <zlib.h>. 4348 (optrecord_json_writer::write): Compress the output. 4349 43502018-11-13 Aldy Hernandez <aldyh@redhat.com> 4351 4352 * tree-vrp.c (value_range_base::dump): Dump type. 4353 Do not use INF nomenclature for 1-bit types. 4354 (dump_value_range): Group all variants to common dumping code. 4355 (debug): New overloaded functions for value_ranges. 4356 (value_range_base::dump): Remove no argument version. 4357 (value_range::dump): Same. 4358 43592018-11-13 Richard Biener <rguenther@suse.de> 4360 4361 PR tree-optimization/87931 4362 * tree-vect-loop.c (vect_is_simple_reduction): Restrict 4363 nested cycles we support to latch computations vectorizable_reduction 4364 handles. 4365 43662018-11-13 Martin Liska <mliska@suse.cz> 4367 4368 PR tree-optimization/87885 4369 * cfghooks.c (account_profile_record): Rename 4370 to ... 4371 (profile_record_check_consistency): ... this. 4372 Calculate missing num_mismatched_freq_in. 4373 (profile_record_account_profile): New function 4374 that calculates time and size of a function. 4375 * cfghooks.h (struct profile_record): Remove 4376 all tuples. 4377 (struct cfg_hooks): Remove after_pass flag. 4378 (account_profile_record): Rename to ... 4379 (profile_record_check_consistency): ... this. 4380 (profile_record_account_profile): New. 4381 * cfgrtl.c (rtl_account_profile_record): Remove 4382 after_pass flag. 4383 * passes.c (check_profile_consistency): Do only 4384 checking. 4385 (account_profile): Calculate size and time of 4386 function only. 4387 (pass_manager::dump_profile_report): Reformat 4388 output. 4389 (execute_one_ipa_transform_pass): Call 4390 consistency check before clean upand call account_profile 4391 after a clean up is done. 4392 (execute_one_pass): Call check_profile_consistency and 4393 account_profile instead of using after_pass flag.. 4394 * tree-cfg.c (gimple_account_profile_record): Likewise. 4395 43962018-11-13 Martin Liska <mliska@suse.cz> 4397 4398 PR sanitizer/87930 4399 * config/i386/i386.c (ix86_option_override_internal): Error 4400 about usage -mabi=ms and -fsanitize={,kernel-}address. 4401 44022018-11-13 Andre Vieira <andre.simoesdiasvieira@arm.com> 4403 4404 * config/aarch64/aarch64.c 4405 (aarch64_vectorize_preferred_vector_alignment): Change return type to 4406 poly_uint64. 4407 (aarch64_simd_vector_alignment_reachable): Adapt to preferred vector 4408 alignment being a poly int. 4409 * doc/tm.texi (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Change 4410 return type to poly_uint64. 4411 * target.def (default_preferred_vector_alignment): Likewise. 4412 * targhooks.c (default_preferred_vector_alignment): Likewise. 4413 * targhooks.h (default_preferred_vector_alignment): Likewise. 4414 * tree-vect-data-refs.c (vect_calculate_target_alignment): Likewise. 4415 (vect_compute_data_ref_alignment): Adapt to vector alignment being a 4416 poly int. 4417 (vect_update_misalignment_for_peel): Likewise. 4418 (vect_enhance_data_refs_alignment): Likewise. 4419 (vect_find_same_alignment_drs): Likewise. 4420 (vect_duplicate_ssa_name_ptr_info): Likewise. 4421 (vect_setup_realignment): Likewise. 4422 (vect_can_force_dr_alignment_p): Change alignment parameter type to 4423 poly_uint64. 4424 * tree-vect-loop-manip.c (get_misalign_in_elems): Learn to construct a 4425 mask with a compile time variable vector alignment. 4426 (vect_gen_prolog_loop_niters): Adapt to vector alignment being a poly 4427 int. 4428 (vect_do_peeling): Exit early if vector alignment is not constant. 4429 * tree-vect-stmts.c (ensure_base_align): Adapt to vector alignment being 4430 a poly int. 4431 (vectorizable_store): Likewise. 4432 (vectorizable_load): Likweise. 4433 * tree-vectorizer.h (struct dr_vec_info): Make target_alignment field a 4434 poly_uint64. 4435 (vect_known_alignment_in_bytes): Adapt to vector alignment being a 4436 poly int. 4437 (vect_can_force_dr_alignment_p): Change alignment parameter type to 4438 poly_uint64. 4439 44402018-11-13 Richard Biener <rguenther@suse.de> 4441 4442 PR tree-optimization/87962 4443 * tree-vect-loop.c (vect_is_simple_reduction): More reliably 4444 detect outer reduction for disqualifying in-loop uses. 4445 44462018-11-13 Richard Biener <rguenther@suse.de> 4447 4448 PR tree-optimization/87967 4449 * tree-vect-loop.c (vect_transform_loop): Also copy PHIs 4450 for constants for the scalar loop. 4451 44522018-11-13 Alan Modra <amodra@gmail.com> 4453 4454 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Exclude 4455 integer constants when -mcmodel=medium. 4456 44572018-11-13 Claudiu Zissulescu <claziss@synopsys.com> 4458 4459 * config/arc/arc.h (FUNCTION_PROFILER): Redefine to empty. 4460 * config/arc/elf.h (PROFILE_HOOK): Define. 4461 * config/arc/linux.h (PROFILE_HOOK): Likewise. 4462 44632018-11-13 Claudiu Zissulescu <claziss@synopsys.com> 4464 4465 * config/arc/arc.c (hwloop_optimize): Bailout when detecting a 4466 jump table data in the text section. 4467 44682018-11-13 Claudiu Zissulescu <claziss@synopsys.com> 4469 4470 * config/arc/arc.c (arc_eh_return_address_location): Repurpose it 4471 to fit the eh_return pattern. 4472 * config/arc/arc.md (eh_return): Define. 4473 (VUNSPEC_ARC_EH_RETURN): Likewise. 4474 * config/arc/arc-protos.h (arc_eh_return_address_location): Match 4475 new implementation. 4476 * config/arc/arc.h (EH_RETURN_HANDLER_RTX): Remove it. 4477 4478 44792018-11-13 Claudiu Zissulescu <claziss@synopsys.com> 4480 4481 * common/config/arc/arc-common.c (arc_option_optimization_table): 4482 Millicode optimization is default on for size optimizations. 4483 * config/arc/arc-protos.h (arc_check_multi): New function. 4484 * config/arc/arc.c (RTX_OK_FOR_OFFSET_P): Rearange. 4485 (ENTER_LEAVE_START_REG): Define. 4486 (ENTER_LEAVE_END_REG): Likewise. 4487 (arc_override_options): Disable millicode when long calls option 4488 is on. 4489 (arc_frame_info): Change it from int to bool. 4490 (arc_compute_frame_size): Clean up. 4491 (arc_save_restore): Remove. 4492 (frame_save_reg): New function. 4493 (frame_restore_reg): Likewise. 4494 (arc_enter_leave_p): Likewise. 4495 (arc_save_callee_saves): Likewise. 4496 (arc_restore_callee_saves): Likewise. 4497 (arc_save_callee_enter): Likewise. 4498 (arc_restore_callee_leave): Likewise. 4499 (arc_save_callee_milli): Likewise. 4500 (arc_restore_callee_milli): Likewise. 4501 (arc_expand_prologue): Reimplement to emit enter/leave 4502 instructions. 4503 (arc_expand_epilogue): Likewise. 4504 (arc_check_multi): New function. 4505 * config/arc/arc.md (push_multi_fp): New pattern. 4506 (push_multi_fp_blink): Likewise. 4507 (pop_multi_fp): Likewise. 4508 (pop_multi_fp_blink): Likewise. 4509 (pop_multi_fp_ret): Likewise. 4510 (pop_multi_fp_blink_ret): Likewise. 4511 * config/arc/arc.opt (mmillicode): Update option. 4512 (mcode-density-frame): New option. 4513 * config/arc/predicates.md (push_multi_operand): New predicate. 4514 (pop_multi_operand): Likewise. 4515 * doc/invoke.texi (ARC): Update ARC options information. 4516 4517 45182018-11-13 Claudiu Zissulescu <claziss@synopsys.com> 4519 4520 * config/arc/arc-protos.h (gen_operands_ldd_std): Add. 4521 * config/arc/arc.c (operands_ok_ldd_std): New function. 4522 (mem_ok_for_ldd_std): Likewise. 4523 (gen_operands_ldd_std): Likewise. 4524 * config/arc/arc.md: Add peephole2 rules for std/ldd. 4525 45262018-11-13 Eric Botcazou <ebotcazou@adacore.com> 4527 4528 * toplev.c (output_stack_usage): Turn test on flag_stack_usage into 4529 test on stack_usage_file. 4530 (lang_dependent_init): Do not open the .su file if generating LTO. 4531 45322018-11-13 Jakub Jelinek <jakub@redhat.com> 4533 4534 PR rtl-optimization/87918 4535 * simplify-rtx.c (simplify_merge_mask): For COMPARISON_P, use 4536 simplify_gen_relational rather than simplify_gen_binary. 4537 45382018-11-13 Richard Biener <rguenther@suse.de> 4539 4540 * tree-ssanames.h (set_range_info): Use value_range_base. 4541 (get_range_info): Likewise. 4542 * tree-ssanames.c (set_range_info): Likewise. 4543 (get_range_info): Likewise. 4544 * tree-vrp.c (value_range_base::union_helper): Split 4545 out common parts of value_range[_base]::union_. 4546 (value_range_base::union_): Update. 4547 (value_range::union_): Likewise. 4548 (determine_value_range_1): Use value_range_base. 4549 (determine_value_range): Likewise. 4550 * tree-vrp.h (value_range_base::union_helper): Move ... 4551 (value_range::union_helper): ... from here. 4552 45532018-11-13 Alan Modra <amodra@gmail.com> 4554 4555 * config/rs6000/rs6000.c (rs6000_secondary_reload_inner): Negate 4556 offset for PRE_DEC. 4557 (rs6000_secondary_reload_gpr): Don't call find_replacement. 4558 45592018-11-13 Sandra Loosemore <sandra@codesourcery.com> 4560 4561 PR middle-end/59634 4562 * doc/invoke.texi (Optimize Options): Clarify that the 4563 l1-cache-line-size, l1-cache-size, and l2-cache-size parameters 4564 apply to data cache size. 4565 45662018-11-13 Alan Modra <amodra@gmail.com> 4567 4568 * config/rs6000/predicates.md (logical_const_operand), 4569 (logical_operand): Correct comment. 4570 * config/rs6000/rs6000.c (rs6000_emit_prologue): Comment fix. 4571 45722018-11-13 Alan Modra <amodra@gmail.com> 4573 4574 * config/rs6000/rs6000.md (addsi3_high): Prefix with '*'. 4575 45762018-11-13 Alan Modra <amodra@gmail.com> 4577 4578 * gcc/doc/md.texi (Machine Constraints): Correct rs6000 h constraint 4579 description. 4580 * config/rs6000/rs6000.md (movsi_internal1): Delete MT%0 case 4581 covered by alternative. 4582 (movcc_internal1): Ignore h for register preference. 4583 (mov<mode>_hardfloat64): Likewise. 4584 (mov<mode>_softfloat): Ignore c, l, h for register preference. 4585 45862018-11-12 Sandra Loosemore <sandra@codesourcery.com> 4587 4588 PR preprocessor/47823 4589 * doc/cpp.texi (Alternatives to Wrapper #ifndef): Move #pragma once 4590 documentation to... 4591 (Pragmas): ...here. 4592 * doc/extend.texi (Pragmas): Note additional pragmas documented 4593 in the CPP manual. 4594 45952018-11-13 Kugan Vivekanandarajah <kuganv@linaro.org> 4596 4597 PR middle-end/86677 4598 PR middle-end/87528 4599 * tree-scalar-evolution.c (expression_expensive_p): Make 4600 BUILTIN POPCOUNT as expensive when backend does not define it. 4601 46022018-11-12 Fredrik Noring <noring@nocrew.org> 4603 4604 * config.gcc: Update with-llsc defaults for MIPS r5900. 4605 46062018-11-12 Martin Liska <mliska@suse.cz> 4607 4608 PR gcov-profile/87442 4609 * common.opt: Add -fprofile-filter-files and -fprofile-exclude-files 4610 options. 4611 * doc/invoke.texi: Document them. 4612 * tree-profile.c (parse_profile_filter): New. 4613 (parse_profile_file_filtering): Likewise. 4614 (release_profile_file_filtering): Likewise. 4615 (include_source_file_for_profile): Likewise. 4616 (tree_profiling): Filter source files based on the 4617 newly added options. 4618 46192018-11-12 Martin Liska <mliska@suse.cz> 4620 4621 PR target/87903 4622 * doc/extend.texi: Add missing values for __builtin_cpu_is and 4623 __builtin_cpu_supports for x86 target. 4624 46252018-11-12 Sandra Loosemore <sandra@codesourcery.com> 4626 4627 PR middle-end/21110 4628 * doc/rtl.texi (Constants): Clarify that mode of "high" doesn't 4629 have to be Pmode. 4630 (Arithmetic): Likewise for "lo_sum". 4631 46322018-11-12 Renlin Li <renlin.li@arm.com> 4633 4634 PR target/87815 4635 * dse.c (get_stored_val): Add check for compile-time constantness 4636 of gap. 4637 46382018-11-12 Sudakshina Das <sudi.das@arm.com> 4639 4640 * config/arm/arm-cpus.in (armv8_5, sb, predres): New features. 4641 (ARMv8_5a): New fgroup. 4642 (armv8.5-a): New arch. 4643 (armv8-a, armv8.1-a, armv8.2-a, armv8.3-a, armv8.4-a): New options 4644 sb and predres. 4645 * config/arm/arm-tables.opt: Regenerate. 4646 * config/arm/t-aprofile: Add matching rules for -march=armv8.5-a 4647 * config/arm/t-arm-elf (all_v8_archs): Add armv8.5-a. 4648 * config/arm/t-multilib (v8_5_a_simd_variants): New variable. 4649 Add matching rules for -march=armv8.5-a and extensions. 4650 * doc/invoke.texi (ARM options): Document -march=armv8.5-a. 4651 Add sb and predres to all armv8-a except armv8.5-a. 4652 46532018-11-12 Richard Biener <rguenther@suse.de> 4654 4655 * tree-vrp.h (value_range[_base]::set): Make public. Provide 4656 overload for single value. 4657 (value_range[_base]::set_nonnull): New. 4658 (value_range[_base]::set_null): Likewise. 4659 (value_range): Document bitmap copying behavior, mark 4660 copy constructor and assignment operator deleted. 4661 (value_range::move): New. 4662 (value_range::set_and_canonicalize): Default bitmap to zero. 4663 (set_value_range_to_nonnull): Remove. 4664 (set_value_range_to_null): Likewise. 4665 (set_value_range): Likewise. 4666 (set_value_range_to_value): Likewise. 4667 (extract_range_from_unary_expr): Work on value_range_base. 4668 (extract_range_from_binary_expr_1): Likewise. Rename to... 4669 (extract_range_from_binary_expr): ... this. 4670 * tree-vrp.c (value_range::update): Clear equiv bitmap 4671 if required. 4672 (value_range::move): New, move equiv bitmap. 4673 (value_range_base::set_undefined): Avoid assignment. 4674 (value_range::set_undefined): Likewise. 4675 (value_range_base::set_varying): Likewise. 4676 (value_range::set_varying): Likewise. 4677 (set_value_range): Remove. 4678 (value_range_base::set): New overload for value. 4679 (value_range::set): Likewise. 4680 (set_value_range_to_nonnull): Remove. 4681 (value_range_base::set_nonnull): New. 4682 (value_range::set_nonnull): Likewise. 4683 (set_value_range_to_null): Remove. 4684 (value_range_base::set_null): New. 4685 (value_range::set_null): Likewise. 4686 (range_is_null): Work on value_range_base. 4687 (range_is_nonnull): Likewise. 4688 (ranges_from_anti_range): Likewise. 4689 (extract_range_into_wide_ints): Likewise. 4690 (extract_range_from_multiplicative_op): Likewise. 4691 (extract_range_from_binary_expr): Likewise. Update for API changes. 4692 (extract_range_from_unary_expr): Likewise. Remove OBJ_TYPE_REF 4693 handling. 4694 (value_range::intersect_helper): Avoid copy and assignment. 4695 (value_range::union_helper): Likewise. 4696 (determine_value_range_1): Adjust. 4697 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): 4698 Avoid assignment by using move. 4699 (evrp_range_analyzer::record_ranges_from_stmt): Avoid assignment. 4700 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): 4701 Likewise. 4702 * tree-ssanames.c (get_range_info): Likewise. 4703 * vr-values.h (vr_values::get_vr_for_comparison): Adjust API. 4704 * vr-values.c (vr_values::get_value_range): Adjust. 4705 (vr_values::update_value_range): Likewise. 4706 (symbolic_range_based_on_p): Work on value_range_base. 4707 (vr_values::extract_range_from_binary_expr): Use value_range_base. 4708 (vr_values::extract_range_from_unary_expr): Likewise. 4709 (vr_values::extract_range_from_cond_expr): Avoid assignment. 4710 (vr_values::extract_range_from_comparison): Adjust. 4711 (vr_values::check_for_binary_op_overflow): Use value_range_base. 4712 (vr_values::extract_range_basic): Adjust. 4713 (vr_values::adjust_range_with_scev): Likewise. 4714 (vr_values::vrp_visit_assignment_or_call): Likewise. 4715 (vr_values::get_vr_for_comparison): Change API to avoid 4716 assignment and copy construction. 4717 (vr_values::compare_name_with_value): Adjust accordingly. 4718 (vr_values::compare_names): Likewise. 4719 (vr_values::extract_range_from_phi_node): Avoid assignment and 4720 bogus in-place modify of equiv bitmap. 4721 (vr_values::simplify_bit_ops_using_ranges): Use value_range_base. 4722 * ipa-prop.c (ipa_compute_jump_functions_for_edge): Adjust 4723 for extract_range_from_unary_expr API change. 4724 * ipa-cp.c (ipa_vr_operation_and_type_effects): Likewise. 4725 47262018-11-12 Eric Botcazou <ebotcazou@adacore.com> 4727 4728 * config/mcore/mcore.h (WORD_REGISTER_OPERATIONS): Remove duplicate. 4729 47302018-11-12 Richard Biener <rguenther@suse.de> 4731 4732 * tree-vrp.h (value_range_base::symbolic_p, 4733 value_range_base::constant_p, value_range_base::zero_p, 4734 value_range_base::singleton_p): Move from value_range. 4735 (value_range::dump): Add. 4736 * gimple-ssa-evrp-analyze.c 4737 (evrp_range_analyzer::record_ranges_from_phis): Use set_varying. 4738 * ipa-cp.c (ipcp_vr_lattice::print): Use dump_value_range. 4739 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): 4740 Use set_varying. 4741 * tree-vrp.c (value_range::symbolic_p): Move to value_range_base. 4742 (value_range::constant_p): Likewise. 4743 (value_range::singleton_p): Likewise. 4744 (value_range_base::dump): Add. 4745 (set_value_range_to_undefined): Remove. 4746 (set_value_range_to_varying): Likewise. 4747 (range_int_cst_p): Take value_range_base argument. 4748 (range_int_cst_singleton_p): Likewise. 4749 (value_range_constant_singleton): Likewise. 4750 (vrp_set_zero_nonzero_bits): Likewise. 4751 (extract_range_from_multiplicative_op): Use set_varying. 4752 (extract_range_from_binary_expr_1): Likewise. Use set_undefined. 4753 (extract_range_from_unary_expr): Likewise. 4754 (dump_value_range_base): Change to overload of dump_value_range. 4755 (vrp_prop::vrp_initialize): Use set_varying and set_undefined. 4756 (vrp_prop::visit_stmt): Likewise. 4757 (value_range::intersect_helper): Likewise. 4758 (value_range::union_helper): Likewise. 4759 (determine_value_range_1): Likewise. 4760 47612018-11-12 Richard Biener <rguenther@suse.de> 4762 4763 * tree-vrp.c (set_value_range_to_nonnull): Clear equiv. 4764 (set_value_range_to_null): Likewise. 4765 * vr-values.c (vr_values::extract_range_from_comparison): 4766 Clear equiv for constant singleton ranges. 4767 47682018-11-12 Wei Xiao <wei3.xiao@intel.com> 4769 4770 * config/i386/sse.md: Combine VFIXUPIMM* patterns 4771 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 4772 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 4773 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. 4774 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 4775 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 4776 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. 4777 47782018-11-11 Sandra Loosemore <sandra@codesourcery.com> 4779 4780 PR c/69502 4781 * doc/extend.texi (Common Type Attributes): For the align type 4782 attribute, copy language about decreasing alignment from the 4783 corresponding variable attribute. 4784 47852018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> 4786 4787 * config/csky/csky.md (*fpuv2_nmulsf3_1, *fpuv2_nmuldf3_1): Handle 4788 -frounding-math. 4789 47902018-11-11 Sandra Loosemore <sandra@codesourcery.com> 4791 4792 PR c++/43105 4793 * doc/invoke.texi (C++ Dialect Options): Add warning about mixing 4794 -frtti and -fno-rtti code. 4795 47962018-11-11 Sandra Loosemore <sandra@codesourcery.com> 4797 4798 PR c/26366 4799 * doc/extend.texi (Other Builtins): Document probability associated 4800 with __builtin_expect. 4801 48022018-11-11 Uros Bizjak <ubizjak@gmail.com> 4803 4804 PR target/87928 4805 * config/i386/i386.h (STACK_BOUNDARY): Use TARGET_64BIT_MS_ABI 4806 instead of (TARGET_64BIT && ix86_abi == MS_ABI). 4807 * config/i386/darwin.h (STACK_BOUNDARY): Ditto. 4808 * config/i386/cygming.h (STACK_BOUNDARY): Remove. 4809 48102018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> 4811 4812 * config/csky/csky-linux-elf.h (CC1_SPEC): Support -profile. 4813 48142018-11-11 Xianmiao Qu <xianmiao_qu@c-sky.com> 4815 4816 * config/csky/csky.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. 4817 48182018-11-11 Richard Biener <rguenther@suse.de> 4819 4820 * tree-vrp.h (class value_range_base): New base class for 4821 value_range containing all but the m_equiv member. 4822 (dump_value_range_base): Add. 4823 (range_includes_zero_p): Work on value_range_base. 4824 * tree-vrp.c (value_range_base::set): Split out base handling 4825 from... 4826 (value_range::set): this. 4827 (value_range::set_equiv): New. 4828 (value_range_base::value_range_base): New constructors. 4829 (value_range_base::check): Split out base handling from... 4830 (value_range::check): this. 4831 (value_range::equal_p): Refactor in terms of 4832 ignore_equivs_equal_p which is now member of the base. 4833 (value_range_base::set_undefined): New. 4834 (value_range_base::set_varying): Likewise. 4835 (value_range_base::dump):Split out base handling from... 4836 (value_range::dump): this. 4837 (value_range_base::set_and_canonicalize): Split out base handling 4838 from... 4839 (value_range::set_and_canonicalize): this. 4840 (value_range_base::union_): New. 4841 * ipa-prop.h (struct ipa_jump_func): Use value_range_base * 4842 for m_vr. 4843 * ipa-cp.c (class ipcp_vr_lattice): Use value_range_base 4844 instead of value_range everywhere. 4845 (ipcp_vr_lattice::print): Use dump_value_range_base. 4846 (ipcp_vr_lattice::meet_with): Adjust. 4847 (ipcp_vr_lattice::meet_with_1): Likewise. 4848 (ipa_vr_operation_and_type_effects): Likewise. 4849 (propagate_vr_across_jump_function): Likewise. 4850 * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Likewise. 4851 (ipa_get_value_range): Likewise. 4852 (ipa_set_jfunc_vr): Likewise. 4853 (ipa_compute_jump_functions_for_edge): Likewise. 4854 48552018-11-10 Sandra Loosemore <sandra@codesourcery.com> 4856 4857 PR middle-end/65703 4858 * doc/invoke.texi (Optimize Options): Add @opindex entries 4859 for the positive forms of -fno-xxx and -mno-xxx options 4860 that were lacking them. 4861 48622018-11-10 Segher Boessenkool <segher@kernel.crashing.org> 4863 4864 * combine.c (make_more_copies): Only make an intermediate copy if the 4865 dest of a move is a pseudo. 4866 48672018-11-09 Maya Rashish <coypu@sdf.org> 4868 4869 PR target/87221 4870 * config/netbsd-elf.h (NETBSD_STARTFILE_SPEC): Use crtbeginS.o for PIE. 4871 (NETBSD_ENDFILE_SPEC): Use crtendS.o for PIE. 4872 48732018-11-09 Sandra Loosemore <sandra@codesourcery.com> 4874 4875 PR driver/41179 4876 PR middle-end/65703 4877 * doc/invoke.texi (Optimize Options): Clarify default behavior 4878 for -fno-toplevel-reorder, -fno-defer-pop, and -fno-branch-count-reg. 4879 48802018-11-09 Bernd Edlinger <bernd.edlinger@hotmail.de> 4881 4882 PR tree-optimization/87940 4883 * expr.c (string_constant): Don't strip NOPS in subexpressions. 4884 Fold PLUS_EXPR correctly. 4885 48862018-11-09 Ilya Leoshkevich <iii@linux.ibm.com> 4887 4888 PR target/87762 4889 * config/s390/s390.c (s390_safe_relative_long_p): New function. 4890 (annotate_constant_pool_refs): Skip insns which support 4891 relative addressing. 4892 (annotate_constant_pool_refs_1): New helper function. 4893 (find_constant_pool_ref): Skip insns which support relative 4894 addression. 4895 (find_constant_pool_ref_1): New helper function. 4896 (replace_constant_pool_ref): Skip insns which support 4897 relative addressing. 4898 (replace_constant_pool_ref_1): New helper function. 4899 (s390_mainpool_start): Adapt to the new signature. 4900 (s390_mainpool_finish): Likewise. 4901 (s390_chunkify_start): Likewise. 4902 (s390_chunkify_finish): Likewise. 4903 (pass_s390_early_mach::execute): Likewise. 4904 (s390_prologue_plus_offset): Likewise. 4905 (s390_emit_prologue): Likewise. 4906 (s390_emit_epilogue): Likewise. 4907 49082018-11-09 Jakub Jelinek <jakub@redhat.com> 4909 4910 * gimplify.c (gimplify_scan_omp_clauses): Call sorry_at for valid 4911 but unsupported lastprivate with conditional modifier. 4912 49132018-11-09 Jeff Law <law@redhat.com> 4914 4915 * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): Handle 4916 unused argument better. Add gcc_unreachable to silence warning. 4917 49182018-11-09 Martin Sebor <msebor@redhat.com> 4919 4920 PR middle-end/81824 4921 * attribs.c (has_attribute): New helper function. 4922 (decls_mismatched_attributes, maybe_diag_alias_attributes): Same. 4923 * attribs.h (decls_mismatched_attributes): Declare. 4924 * cgraphunit.c (handle_alias_pairs): Call maybe_diag_alias_attributes. 4925 (maybe_diag_incompatible_alias): Use OPT_Wattribute_alias_. 4926 * common.opt (-Wattribute-alias): Take an argument. 4927 (-Wno-attribute-alias): New option. 4928 * doc/extend.texi (Common Function Attributes): Document copy. 4929 (Common Variable Attributes): Same. 4930 * doc/invoke.texi (-Wmissing-attributes): Document enhancement. 4931 (-Wattribute-alias): Document new option argument. 4932 49332018-11-09 Richard Earnshaw <rearnsha@arm.com> 4934 4935 * config/arm/parsecpu.awk (/alias/): Tighten invisible alias 4936 matching criteria. Remove unused array initializer. 4937 49382018-11-09 Bill Schmidt <wschmidt@linux.ibm.com> 4939 Jinsong Ji <jji@us.ibm.com> 4940 4941 * config/rs6000/xmmintrin.h (_mm_cvtss_si32): Fix incorrect 4942 constraints by introducing a new temporary. 4943 (_mm_cvtss_si64): Likewise. 4944 49452018-11-09 Martin Liska <mliska@suse.cz> 4946 4947 * common.opt: Add -fipa-stack-alignment flag. 4948 * doc/invoke.texi: Document it. 4949 * final.c (rest_of_clean_state): Guard stack 4950 shrinking with flag. 4951 49522018-11-09 Martin Liska <mliska@suse.cz> 4953 4954 * cgraph.h (ipa_discover_readonly_nonaddressable_vars): Rename 4955 to ... 4956 (ipa_discover_variable_flags): ... this. 4957 * common.opt: Come up with new flag -fipa-reference-addressable. 4958 * doc/invoke.texi: Document it. 4959 * ipa-reference.c (propagate): Call the renamed fn. 4960 * ipa-visibility.c (whole_program_function_and_variable_visibility): 4961 Likewise. 4962 * ipa.c (ipa_discover_readonly_nonaddressable_vars): Renamed to 4963 ... 4964 (ipa_discover_variable_flags): ... this. Discover 4965 non-addressable variables only with the newly added flag. 4966 * opts.c: Enable the newly added flag with -O1 and higher 4967 optimization level. 4968 49692018-11-09 David Malcolm <dmalcolm@redhat.com> 4970 4971 * json.cc (selftest::test_writing_literals): Fix comment. 4972 49732018-11-09 Martin Liska <mliska@suse.cz> 4974 4975 * config/aarch64/aarch64.c (aarch64_parse_arch): Do not copy 4976 string to a stack buffer. 4977 (aarch64_parse_cpu): Likewise. 4978 (aarch64_parse_tune): Likewise. 4979 49802018-11-09 Richard Biener <rguenther@suse.de> 4981 4982 PR tree-optimization/87953 4983 * tree-vect-loop.c (vectorizable_reduction): For analysis 4984 always pass ops[0] to vectorizable_condition. 4985 49862018-11-09 Stafford Horne <shorne@gmail.com> 4987 Richard Henderson <rth@twiddle.net> 4988 Joel Sherrill <joel@rtems.org> 4989 4990 * common/config/or1k/or1k-common.c: New file. 4991 * config/or1k/*: New. 4992 * config.gcc (or1k*-*-*): New. 4993 * configure.ac (or1k*-*-*): New test for openrisc tls. 4994 * configure: Regenerated. 4995 * doc/install.texi: Document OpenRISC triplets. 4996 * doc/invoke.texi: Document OpenRISC arguments. 4997 * doc/md.texi: Document OpenRISC. 4998 49992018-11-09 Richard Earnshaw <rearnsha@arm.com> 5000 5001 * config/arm/arm-cpus.in (arm7tdmi): Add an alias for arm7tdmi-s. 5002 (arm7tdmi-s): Delete CPU. 5003 (arm710t): Add aliases for arm720t and arm740t. 5004 (arm720t, arm740t): Delete CPUs. 5005 (arm920t): Add aliases for arm920, arm922t and arm940t. 5006 (arm920, arm922t, arm940t): Delete CPUs. 5007 (arm10tdmi): Add alias for arm1020t. 5008 (arm1020t): Delete CPU. 5009 (arm9e): Add aliases for arm946e-s, arm966e-s and arm968e-s. 5010 (arm946e-s, arm966e-s, arm968e-s): Delete CPUs. 5011 (arm10e): Add aliases for arm1020e and arm1022e. 5012 (arm1020e, arm1022e): Delete CPU. 5013 * config/arm/arm.md (generic_sched): Remove entries that are now 5014 handled by aliases. 5015 (generic_vfp): Likewise. 5016 * config/arm/arm1020e.md: Simplify tuning selection based on alias 5017 changes. 5018 * config/arm/arm-tune.md: Regenerated. 5019 * config/arm/arm-tables.opt: Regenerated. 5020 50212018-11-09 Richard Biener <rguenther@suse.de> 5022 5023 PR tree-optimization/87621 5024 * tree-vect-loop.c (vectorizable_reduction): Handle reduction 5025 op with only phi inputs. 5026 * tree-ssa-loop-ch.c: Include tree-ssa-sccvn.h. 5027 (ch_base::copy_headers): Run CSE on copied loop headers. 5028 (pass_ch_vect::process_loop_p): Simplify. 5029 50302018-11-09 Alexandre Oliva <oliva@adacore.com> 5031 5032 * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Adjust 5033 for non-w64 x86_64 biarch. 5034 50352018-11-09 Alexandre Oliva <aoliva@redhat.com> 5036 5037 PR rtl-optimization/86438 5038 * compare-elim.c (try_eliminate_compare): Use SET_SRC instead 5039 of in_b for the compare if in_b is SET_DEST. 5040 5041 PR target/87793 5042 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Reject 5043 non-toplevel UNSPEC. 5044 50452018-11-08 Aldy Hernandez <aldyh@redhat.com> 5046 5047 * tree-vrp.c (value_range::check): Do not access internals 5048 directly. 5049 (value_range::singleton_p): Same. 5050 (value_range::type): Same. 5051 (vrp_finalize): Use value_range API. 5052 50532018-11-08 Aldy Hernandez <aldyh@redhat.com> 5054 5055 * tree-vrp.c (may_contain_p): Do not access m_min/m_max directly. 5056 50572018-11-08 Aldy Hernandez <aldyh@redhat.com> 5058 5059 * vr-values.c (vr_values::get_value_range): Use value_range API 5060 instead of piecing together ranges. 5061 (vr_values::update_value_range): Same. 5062 50632018-11-08 Aldy Hernandez <aldyh@redhat.com> 5064 5065 * gimple-fold.c (size_must_be_zero_p): Use value_range API instead 5066 of performing ad-hoc calculations. 5067 * tree-ssanames.c (set_range_info): New overloaded function 5068 accepting value_range &. 5069 (get_range_info): Same. 5070 * tree-ssanames.h (set_range_info_raw): Remove. 5071 (set_range_info): New prototype. 5072 (get_range_info): Same. 5073 * tree-vrp.h (value_range::null_p): Rename to zero_p. 5074 * tree-vrp.c (value_range::null_p): Same. 5075 50762018-11-09 Jan Hubicka <jh@suse.cz> 5077 5078 * tree.c (fld_type_variant_equal_p): Test user align flag. 5079 (flt_type_variant): Copy user align flag. 5080 (fld_incomplete_type_of): Clear it. 5081 50822018-11-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 5083 5084 * config/arm/neon.md (div<mode>3): New pattern. 5085 50862018-11-08 Andi Kleen <ak@linux.intel.com> 5087 5088 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PTWRITE_SET): New. 5089 (OPTION_MASK_ISA_PTWRITE_UNSET): New. 5090 (ix86_handle_option): Handle OPT_mptwrite. 5091 * config/i386/cpuid.h (bit_PTWRITE): Add. 5092 * config/i386/driver-i386.c (host_detect_local_cpu): Detect ptwrite. 5093 * config/i386/i386-builtin.def (BDESC): Add ptwrite32/64. 5094 * config/i386/i386-c.c (ix86_target_macros_internal): Define __PTWRITE__. 5095 * config/i386/i386.c (ix86_target_string): Handle ptwrite. 5096 (ix86_option_override_internal): Handle PTA_PTWRITE. 5097 (ix86_valid_target_attribute_inner_p): Define ptwrite. 5098 (def_builtin2): Force UINT64 to be 64bit only. 5099 * config/i386/i386.h (TARGET_PTWRITE): Add. 5100 (TARGET_PTWRITE_P): Add. 5101 (PTA_PTWRITE): Add. 5102 * config/i386/i386.md: Define ptwrite. 5103 * config/i386/i386.opt: Add -mptwrite. 5104 * config/i386/immintrin.h (_ptwrite64): Add. 5105 (_ptwrite32): Add 5106 * doc/extend.texi: Document __builtin_ia32_ptwrite*. 5107 * doc/invoke.texi: Document -mptwrite. 5108 51092018-11-08 Peter Bergner <bergner@linux.ibm.com> 5110 5111 PR rtl-optimization/87600 5112 * cfgexpand.c (expand_asm_stmt): Catch illegal asm constraint usage. 5113 * lra-constraints.c (process_alt_operands): Skip illegal hard 5114 register usage. Prefer reloading non hard register operands. 5115 51162018-11-08 Sandra Loosemore <sandra@codesourcery.com> 5117 5118 PR other/36572 5119 * doc/invoke.texi (Optimize Options): Clarify default behavior 5120 for -fno-sched-interblock and -fno-sched-spec. 5121 51222018-11-08 Roman Geissler <roman.geissler@amadeus.com> 5123 5124 * collect2.c (linker_select): Add USE_LLD_LD. 5125 (ld_suffixes): Add ld.lld. 5126 (main): Handle -fuse-ld=lld. 5127 * common.opt (-fuse-ld=lld): New option. 5128 * doc/invoke.texi (-fuse-ld=lld): Document. 5129 * opts.c (common_handle_option): Handle OPT_fuse_ld_lld. 5130 51312018-11-08 Paul Koning <ni1d@arrl.net> 5132 5133 * config/pdp11/constraints.md: Add "Z" series constraints for use 5134 with pre-dec and post-inc addressing. 5135 * config/pdp11/pdp11-protos.m (expand_block_move): Delete. 5136 (pdp11_expand_operands): Add int argument (word count). 5137 (pdp11_sp_frame_offset): Delete. 5138 (pdp11_cmp_length): New function. 5139 (pushpop_regeq): New function. 5140 * config/pdp11/pdp11.c (TARGET_STACK_PROTECT_RUNTIME_ENABLED_P): 5141 Add hook. 5142 (pdp11_expand_prologue, pdp11_expand_epilogue): Rewrite for new 5143 frame layout. 5144 (pdp11_initial_elimination_offset): Ditto. 5145 (pdp11_expand_operands): Add word count argument. Bugfixes. 5146 (output_move_multiple): Change how pointer adjustment is done. 5147 (pdp11_gen_int_label): Correct format. 5148 (output_ascii): Ditto. 5149 (pdp11_asm_output_var): Add code for DEC assembler case. 5150 (pdp11_asm_print_operand): Bugfix for CONST_DOUBLE holding integer 5151 value. 5152 (legitimate_const_double_p): Ditto. 5153 (pdp11_register_move_cost): Adjust for new register classes. 5154 (pdp11_regno_reg_class): Ditto. 5155 (expand_block_move): Delete. 5156 (pushpop_regeq): New function. 5157 (pdp11_legitimate_address_p): Bugfix in check for constant 5158 offset. 5159 (pdp11_sp_frame_offset): Delete. 5160 (pdp11_reg_save_size): New helper function for new frame layout. 5161 (output_addr_const_pdp11): Remove CONST_DOUBLE case. 5162 (pdp11_expand_shift): Bugfix in check for constant shift count. 5163 (pdp11_shift_length): Ditto. 5164 (pdp11_assemble_shift): Copy input to pdp11_expand_operands. 5165 (pdp11_cmp_length): New function. 5166 * config/pdp11/pdp11.h (TARGET_CPU_CPP_BUILTINS): Add macros for 5167 some compile options. 5168 (FIXED_REGISTERS): Remove HARD_FRAME_POINTER_REGNUM. 5169 (CALL_USED_REGISTERS): Ditto. 5170 (ELIMINABLE_REGS): Ditto. 5171 (REGISTER_NAMES): Ditto. 5172 (reg_class): Add classes NOTR0_REG through NOTSP_REG for use by Z 5173 constraints. 5174 (REG_CLASS_NAMES): Ditto. 5175 (REG_CLASS_CONTENTS): Ditto. Also remove 5176 HARD_FRAME_POINTER_REGNUM. 5177 (CPU_REG_CLASS): New macro. 5178 (CLASS_MAX_NREGS): Adjust for new register classes. 5179 (FUNCTION_PROFILER): Make no-op. 5180 (may_call_alloca): Remove unused declaration. 5181 (ASM_OUTPUT_ALIGN): Add workaround for PR87795. 5182 (ASM_OUTPUT_SKIP): Fix format. 5183 * config/pdp11/pdp11.md (unspecv): Add UNSPECV_MOVMEM. 5184 (HARD_FRAME_POINTER_REGNUM): Remove. 5185 (return): Delete. 5186 (*rts): Rename. Remove epilogue related checks. 5187 (cmpsi, cmpdi): New insn. 5188 (cbranch<mode>4): Change to apply to SI and DI modes as well. 5189 (mov<mode>): Change constraints to enforce that push/pop 5190 destination cannot use the same register as source. 5191 (*mov<mode><cc_cc>): Ditto. 5192 (movmemhi, movmemhi1, movmemhi_nocc): Change to expand block move 5193 at assembly output rather than as RTL expander. 5194 (zero_extendqihi2): Bugfix in check for same registers. 5195 (adddi3_nocc): Bugfix in check for constant operand. 5196 (addsi3_nocc): Ditto. 5197 (subdi3_nocc): Ditto. 5198 (subsi3_nocc): Ditto. 5199 (negdi2_nocc): Copy input to pdp11_expand_operands. 5200 (negsi2_nocc): Ditto. 5201 (bswap2_nocc): Ditto. 5202 * config/pdp11/pdp11.opt (mlra): Fix documentation. 5203 * config/pdp11/t-pdp11: Use -Os. 5204 52052018-11-08 Richard Earnshaw <rearnsha@arm.com> 5206 5207 * config/arm/parsecpu.awk (/alias/): New parsing rule. 5208 (/begin cpu/): Check that the cpu name hasn't been previously defined. 5209 (gen_comm_data): Print out CPU alias tables. 5210 (check_cpu): Match aliases when checking the CPU name. 5211 * config/arm/arm-protos.h (cpu_alias): New structure. 5212 (cpu_option): Add entry for aliases. 5213 * config/arm/arm-cpus.in (strongarm): Add aliases for strongarm110 5214 strongarm1100 and strongarm1110. 5215 (strongarm110, strongarm1100, strongarm1110): Delete CPU entries. 5216 (config/arm/arm-generic.md): Remove redundant references to 5217 strongarm110, strongarm1100 and strongarm1110. 5218 * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): 5219 Scan aliases for additional hints. 5220 (arm_parse_cpu_option_name): Also match a cpu name against the list 5221 of aliases. 5222 * config/arm/arm-tables.opt: Regenerated. 5223 * config/arm/arm-tune.md: Regenerated. 5224 52252018-11-08 Jakub Jelinek <jakub@redhat.com> 5226 5227 * builtin-types.def (BT_FN_VOID_BOOL, BT_FN_VOID_SIZE_SIZE_PTR, 5228 BT_FN_UINT_UINT_PTR_PTR, BT_FN_UINT_OMPFN_PTR_UINT_UINT, 5229 BT_FN_BOOL_UINT_LONGPTR_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, 5230 BT_FN_BOOL_UINT_ULLPTR_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR, 5231 BT_FN_BOOL_LONG_LONG_LONG_LONG_LONG_LONGPTR_LONGPTR_PTR_PTR, 5232 BT_FN_BOOL_BOOL_ULL_ULL_ULL_LONG_ULL_ULLPTR_ULLPTR_PTR_PTR): New. 5233 * gengtype.c (open_base_files): Add omp-general.h. 5234 * gimple.c (gimple_build_omp_critical): 5235 (gimple_build_omp_taskgroup): Add CLAUSES argument. Call 5236 gimple_omp_taskgroup_set_clauses. 5237 (gimple_build_omp_atomic_load): Add mo argument, call 5238 gimple_omp_atomic_set_memory_order. 5239 (gimple_build_omp_atomic_store): Likewise. 5240 (gimple_copy): Adjust handling of GIMPLE_OMP_TASKGROUP. 5241 * gimple.def (GIMPLE_OMP_TASKGROUP): Use GSS_OMP_SINGLE_LAYOUT 5242 instead of GSS_OMP. 5243 (GIMPLE_OMP_TEAMS): Use GSS_OMP_PARALLEL_LAYOUT instead 5244 of GSS_OMP_SINGLE_LAYOUT, adjust comments. 5245 * gimple.h (enum gf_mask): Add GF_OMP_TEAMS_HOST, GF_OMP_TASK_TASKWAIT 5246 and GF_OMP_ATOMIC_MEMORY_ORDER. Remove GF_OMP_ATOMIC_SEQ_CST, use 5247 different value for GF_OMP_ATOMIC_NEED_VALUE. 5248 (struct gimple_statement_omp_taskreg): Add GIMPLE_OMP_TEAMS to 5249 comments. 5250 (struct gimple_statement_omp_single_layout): And remove here. 5251 (struct gomp_teams): Inherit from gimple_statement_omp_taskreg rather 5252 than gimple_statement_omp_single_layout. 5253 (is_a_helper <gimple_statement_omp_taskreg *>::test): Allow 5254 GIMPLE_OMP_TEAMS. 5255 (is_a_helper <const gimple_statement_omp_taskreg *>::test): Likewise. 5256 (gimple_omp_subcode): Formatting fix. 5257 (gimple_omp_teams_child_fn, gimple_omp_teams_child_fn_ptr, 5258 gimple_omp_teams_set_child_fn, gimple_omp_teams_data_arg, 5259 gimple_omp_teams_data_arg_ptr, gimple_omp_teams_set_data_arg, 5260 gimple_omp_teams_host, gimple_omp_teams_set_host, 5261 gimple_omp_task_taskwait_p, gimple_omp_task_set_taskwait_p, 5262 gimple_omp_taskgroup_clauses, gimple_omp_taskgroup_clauses_ptr, 5263 gimple_omp_taskgroup_set_clauses): New inline functions. 5264 (gimple_build_omp_atomic_load): Add enum omp_memory_order argument. 5265 (gimple_build_omp_atomic_store): Likewise. 5266 (gimple_omp_atomic_seq_cst_p): Remove. 5267 (gimple_omp_atomic_memory_order): New function. 5268 (gimple_omp_atomic_set_seq_cst): Remove. 5269 (gimple_omp_atomic_set_memory_order): New function. 5270 (gimple_build_omp_taskgroup): Add clauses argument. 5271 * gimple-pretty-print.c (dump_gimple_omp_taskgroup): New function. 5272 (dump_gimple_omp_task): Print taskwait with depend clauses. 5273 (dump_gimple_omp_atomic_load, dump_gimple_omp_atomic_store): Use 5274 dump_omp_atomic_memory_order. 5275 (pp_gimple_stmt_1): Handle GIMPLE_OMP_TASKGROUP. 5276 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_MAP_ALLOC_ONLY, 5277 GOVD_MAP_FROM_ONLY and GOVD_NONTEMPORAL. 5278 (enum omp_region_type): Reserve bits 1 and 2 for auxiliary flags, 5279 renumber values of most of ORT_* enumerators, add ORT_HOST_TEAMS, 5280 ORT_COMBINED_HOST_TEAMS, ORT_TASKGROUP, ORT_TASKLOOP and 5281 ORT_UNTIED_TASKLOOP enumerators. 5282 (enum gimplify_defaultmap_kind): New. 5283 (struct gimplify_omp_ctx): Remove target_map_scalars_firstprivate and 5284 target_map_pointers_as_0len_arrays members, add defaultmap. 5285 (new_omp_context): Initialize defaultmap member. 5286 (gimple_add_tmp_var): Handle ORT_TASKGROUP like ORT_WORKSHARE. 5287 (maybe_fold_stmt): Don't fold even in host teams regions. 5288 (omp_firstprivatize_variable): Handle ORT_TASKGROUP like 5289 ORT_WORKSHARE. Test ctx->defaultmap[GDMK_SCALAR] instead of 5290 ctx->omp_firstprivatize_variable. 5291 (omp_add_variable): Don't add private/firstprivate for VLAs in 5292 ORT_TASKGROUP. 5293 (omp_default_clause): Print "taskloop" rather than "task" if 5294 ORT_*TASKLOOP. 5295 (omp_notice_variable): Handle ORT_TASKGROUP like ORT_WORKSHARE. 5296 Handle new defaultmap clause kinds. 5297 (omp_is_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. Allow simd 5298 iterator to be lastprivate or private. Fix up diagnostics if linear 5299 is used on collapse>1 simd iterator. 5300 (omp_check_private): Handle ORT_TASKGROUP like ORT_WORKSHARE. 5301 (gimplify_omp_depend): New function. 5302 (gimplify_scan_omp_clauses): Add shared clause on parallel for 5303 combined parallel master taskloop{, simd} if taskloop has 5304 firstprivate, lastprivate or reduction clause. Handle 5305 OMP_CLAUSE_REDUCTION_TASK diagnostics. Adjust tests for 5306 ORT_COMBINED_TEAMS. Gimplify depend clauses with iterators. Handle 5307 cancel and simd OMP_CLAUSE_IF_MODIFIERs. Handle 5308 OMP_CLAUSE_NONTEMPORAL. Handle new defaultmap clause kinds. Handle 5309 OMP_CLAUSE_{TASK,IN}_REDUCTION. Diagnose invalid conditional 5310 lastprivate. 5311 (gimplify_adjust_omp_clauses_1): Ignore GOVD_NONTEMPORAL. Handle 5312 GOVD_MAP_ALLOC_ONLY and GOVD_MAP_FROM_ONLY. 5313 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_NONTEMPORAL. Handle 5314 OMP_CLAUSE_{TASK,IN}_REDUCTION. 5315 (gimplify_omp_task): Handle taskwait with depend clauses. 5316 (gimplify_omp_for): Add shared clause on parallel for combined 5317 parallel master taskloop{, simd} if taskloop has firstprivate, 5318 lastprivate or reduction clause. Use ORT_TASKLOOP or 5319 ORT_UNTIED_TASKLOOP instead of ORT_TASK or ORT_UNTIED_TASK. Adjust 5320 tests for ORT_COMBINED_TEAMS. Handle C++ range for loops with 5321 NULL TREE_PURPOSE in OMP_FOR_ORIG_DECLS. Firstprivatize 5322 __for_end and __for_range temporaries on OMP_PARALLEL for 5323 distribute parallel for{, simd}. Move OMP_CLAUSE_REDUCTION 5324 and OMP_CLAUSE_IN_REDUCTION from taskloop to the task construct 5325 sandwiched in between two taskloops. 5326 (computable_teams_clause): Test ctx->defaultmap[GDMK_SCALAR] 5327 instead of ctx->omp_firstprivatize_variable. 5328 (gimplify_omp_workshare): Set ort to ORT_HOST_TEAMS or 5329 ORT_COMBINED_HOST_TEAMS if not inside of target construct. If 5330 host teams, use gimplify_and_return_first etc. for body like 5331 for target or target data constructs, and at the end call 5332 gimple_omp_teams_set_host on the GIMPLE_OMP_TEAMS object. 5333 (gimplify_omp_atomic): Use OMP_ATOMIC_MEMORY_ORDER instead 5334 of OMP_ATOMIC_SEQ_CST, pass it as new argument to 5335 gimple_build_omp_atomic_load and gimple_build_omp_atomic_store, remove 5336 gimple_omp_atomic_set_seq_cst calls. 5337 (gimplify_expr) <case OMP_TASKGROUP>: Move handling into a separate 5338 case, handle taskgroup clauses. 5339 * lto-streamer-out.c (hash_tree): Handle 5340 OMP_CLAUSE_{TASK,IN}_REDUCTION. 5341 * Makefile.in (GTFILES): Add omp-general.h. 5342 * omp-builtins.def (BUILT_IN_GOMP_TASKWAIT_DEPEND, 5343 BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_START, 5344 BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_START, 5345 BUILT_IN_GOMP_LOOP_START, BUILT_IN_GOMP_LOOP_ORDERED_START, 5346 BUILT_IN_GOMP_LOOP_DOACROSS_START, 5347 BUILT_IN_GOMP_LOOP_NONMONOTONIC_RUNTIME_NEXT, 5348 BUILT_IN_GOMP_LOOP_MAYBE_NONMONOTONIC_RUNTIME_NEXT, 5349 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_START, 5350 BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_START, 5351 BUILT_IN_GOMP_LOOP_ULL_START, BUILT_IN_GOMP_LOOP_ULL_ORDERED_START, 5352 BUILT_IN_GOMP_LOOP_ULL_DOACROSS_START, 5353 BUILT_IN_GOMP_LOOP_ULL_NONMONOTONIC_RUNTIME_NEXT, 5354 BUILT_IN_GOMP_LOOP_ULL_MAYBE_NONMONOTONIC_RUNTIME_NEXT, 5355 BUILT_IN_GOMP_PARALLEL_LOOP_NONMONOTONIC_RUNTIME, 5356 BUILT_IN_GOMP_PARALLEL_LOOP_MAYBE_NONMONOTONIC_RUNTIME, 5357 BUILT_IN_GOMP_PARALLEL_REDUCTIONS, BUILT_IN_GOMP_SECTIONS2_START, 5358 BUILT_IN_GOMP_TEAMS_REG, BUILT_IN_GOMP_TASKGROUP_REDUCTION_REGISTER, 5359 BUILT_IN_GOMP_TASKGROUP_REDUCTION_UNREGISTER, 5360 BUILT_IN_GOMP_TASK_REDUCTION_REMAP, 5361 BUILT_IN_GOMP_WORKSHARE_TASK_REDUCTION_UNREGISTER): New builtins. 5362 * omp-expand.c (workshare_safe_to_combine_p): Return false for 5363 non-worksharing loops. 5364 (omp_adjust_chunk_size): Don't adjust anything if chunk_size is zero. 5365 (determine_parallel_type): Don't combine parallel with worksharing 5366 which has _reductemp_ clause. 5367 (expand_parallel_call): Emit the GOMP_*nonmonotonic_runtime* or 5368 GOMP_*maybe_nonmonotonic_runtime* builtins instead of GOMP_*runtime* 5369 if there is nonmonotonic modifier or if there is no modifier and no 5370 ordered clause. For dynamic and guided schedule without monotonic 5371 and nonmonotonic modifier, default to nonmonotonic. 5372 (expand_omp_for): Likewise. Adjust expand_omp_for_generic caller, use 5373 GOMP_loop{,_ull}{,_ordered,_doacross}_start builtins if there are 5374 task reductions. 5375 (expand_task_call): Add GOMP_TASK_FLAG_REDUCTION flag to flags if 5376 there are any reduction clauses. 5377 (expand_taskwait_call): New function. 5378 (expand_teams_call): New function. 5379 (expand_omp_taskreg): Allow GIMPLE_OMP_TEAMS and call 5380 expand_teams_call for it. Formatting fix. Handle taskwait with 5381 depend clauses. 5382 (expand_omp_for_generic): Add SCHED_ARG argument. Handle expansion 5383 of worksharing loops with task reductions. 5384 (expand_omp_for_static_nochunk, expand_omp_for_static_chunk): Handle 5385 expansion of worksharing loops with task reductions. 5386 (expand_omp_sections): Handle expansion of sections with task 5387 reductions. 5388 (expand_omp_synch): For host teams call expand_omp_taskreg. 5389 (omp_memory_order_to_memmodel): New function. 5390 (expand_omp_atomic_load, expand_omp_atomic_store, 5391 expand_omp_atomic_fetch_op): Use it and gimple_omp_atomic_memory_order 5392 instead of gimple_omp_atomic_seq_cst_p. 5393 (build_omp_regions_1, omp_make_gimple_edges): Treat taskwait with 5394 depend clauses as a standalone directive. 5395 * omp-general.c (enum omp_requires): New variable. 5396 (omp_extract_for_data): Initialize have_reductemp member. Allow 5397 NE_EXPR even in OpenMP loops, transform them into LT_EXPR or 5398 GT_EXPR loops depending on incr sign. Formatting fixes. 5399 * omp-general.h (struct omp_for_data): Add have_reductemp member. 5400 (enum omp_requires): New enum. 5401 (omp_requires_mask): Declare. 5402 * omp-grid.c (grid_eliminate_combined_simd_part): Formatting fix. 5403 Fix comment typos. 5404 * omp-low.c (struct omp_context): Add task_reductions and 5405 task_reduction_map fields. 5406 (is_host_teams_ctx): New function. 5407 (is_taskreg_ctx): Return true also if is_host_teams_ctx. 5408 (use_pointer_for_field): Use is_global_var instead of 5409 TREE_STATIC || DECL_EXTERNAL, and apply only if not privatized 5410 in outer contexts. 5411 (build_outer_var_ref): Ignore taskgroup outer contexts. 5412 (delete_omp_context): Release task_reductions and task_reduction_map. 5413 (scan_sharing_clauses): Don't add any fields for reduction clause on 5414 taskloop. Handle OMP_CLAUSE__REDUCTEMP_. Handle 5415 OMP_CLAUSE_{IN,TASK}_REDUCTION and OMP_CLAUSE_REDUCTION with task 5416 modifier. Don't ignore shared clauses in is_host_teams_ctx contexts. 5417 Handle OMP_CLAUSE_NONTEMPORAL. 5418 (add_taskreg_looptemp_clauses): Add OMP_CLAUSE__REDUCTEMP_ clause if 5419 needed. 5420 (scan_omp_parallel): Add _reductemp_ clause if there are any reduction 5421 clauses with task modifier. 5422 (scan_omp_task): Handle taskwait with depend clauses. 5423 (finish_taskreg_scan): Move field corresponding to _reductemp_ clause 5424 first. Move also OMP_CLAUSE__REDUCTEMP_ clause in front if present. 5425 Handle GIMPLE_OMP_TEAMS like GIMPLE_OMP_PARALLEL. 5426 (scan_omp_for): Fix comment formatting. 5427 (scan_omp_teams): Handle host teams constructs. 5428 (check_omp_nesting_restrictions): Allow teams with no outer 5429 OpenMP context. Adjust diagnostics for teams strictly nested into 5430 some explicit OpenMP construct other than target. Allow OpenMP atomics 5431 inside of simd regions. 5432 (scan_omp_1_stmt): Call scan_sharing_clauses for taskgroups. 5433 (scan_omp_1_stmt) <case GIMPLE_OMP_TEAMS>: Temporarily bump 5434 taskreg_nesting_level while scanning host teams construct. 5435 (task_reduction_read): New function. 5436 (lower_rec_input_clauses): Handle OMP_CLAUSE_REDUCTION on taskloop 5437 construct. Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE__REDUCTEMP_ 5438 clauses. Handle OMP_CLAUSE_REDUCTION with task modifier. Remove 5439 second argument create_tmp_var if it is NULL. Don't ignore shared 5440 clauses in is_host_teams_ctx contexts. Handle 5441 OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE on OMP_CLAUSE_FIRSTPRIVATE 5442 clauses. 5443 (lower_reduction_clauses): Ignore reduction clauses with task 5444 modifier. Remove second argument create_tmp_var if it is NULL. 5445 Initialize OMP_ATOMIC_MEMORY_ORDER to relaxed. 5446 (lower_send_clauses): Ignore reduction clauses with task modifier. 5447 Handle OMP_CLAUSE__REDUCTEMP_. Don't send anything for 5448 OMP_CLAUSE_REDUCTION on taskloop. Handle OMP_CLAUSE_IN_REDUCTION. 5449 (maybe_add_implicit_barrier_cancel): Add OMP_RETURN argument, don't 5450 rely that it is the last stmt in body so far. Ignore outer taskgroup 5451 contexts. 5452 (omp_task_reductions_find_first, omp_task_reduction_iterate, 5453 lower_omp_task_reductions): New functions. 5454 (lower_omp_sections): Handle reduction clauses with taskgroup 5455 modifiers. Adjust maybe_add_implicit_barrier_cancel caller. 5456 (lower_omp_single): Adjust maybe_add_implicit_barrier_cancel caller. 5457 (lower_omp_for): Likewise. Handle reduction clauses with taskgroup 5458 modifiers. 5459 (lower_omp_taskgroup): Handle taskgroup reductions. 5460 (create_task_copyfn): Copy over OMP_CLAUSE__REDUCTEMP_ pointer. 5461 Handle OMP_CLAUSE_IN_REDUCTION and OMP_CLAUSE_REDUCTION clauses. 5462 (lower_depend_clauses): If there are any 5463 OMP_CLAUSE_DEPEND_DEPOBJ or OMP_CLAUSE_DEPEND_MUTEXINOUTSET 5464 depend clauses, use a new array format. If OMP_CLAUSE_DEPEND_LAST is 5465 seen, assume lowering is done already and return early. Set kind 5466 on artificial depend clause to OMP_CLAUSE_DEPEND_LAST. 5467 (lower_omp_taskreg): Handle reduction clauses with task modifier on 5468 parallel construct. Handle reduction clause on taskloop construct. 5469 Handle taskwait with depend clauses. 5470 (lower_omp_1): Use lower_omp_taskreg instead of lower_omp_teams 5471 for host teams constructs. 5472 * tree.c (omp_clause_num_ops): Add in_reduction, task_reduction, 5473 nontemporal and _reductemp_ clause entries. 5474 (omp_clause_code_name): Likewise. 5475 (walk_tree_1): Handle OMP_CLAUSE_{IN,TASK}_REDUCTION, 5476 OMP_CLAUSE_NONTEMPORAL and OMP_CLAUSE__REDUCTEMP_. 5477 * tree-core.h (enum omp_clause_code): Add 5478 OMP_CLAUSE_{{IN,TASK}_REDUCTION,NONTEMPORAL,_REDUCTEMP_}. 5479 (enum omp_clause_defaultmap_kind, enum omp_memory_order): New. 5480 (struct tree_base): Add omp_atomic_memory_order field into union. 5481 Remove OMP_ATOMIC_SEQ_CST comment. 5482 (enum omp_clause_depend_kind): Add OMP_CLAUSE_DEPEND_MUTEXINOUTSET 5483 and OMP_CLAUSE_DEPEND_DEPOBJ. 5484 (struct tree_omp_clause): Add subcode.defaultmap_kind. 5485 * tree.def (OMP_TASKGROUP): Add another operand, move next to other 5486 OpenMP constructs with body and clauses operands. 5487 * tree.h (OMP_BODY): Use OMP_MASTER instead of OMP_TASKGROUP. 5488 (OMP_CLAUSES): Use OMP_TASKGROUP instead of OMP_SINGLE. 5489 (OMP_TASKGROUP_CLAUSES): Define. 5490 (OMP_CLAUSE_DECL): Use OMP_CLAUSE__REDUCTEMP_ instead of 5491 OMP_CLAUSE__LOOPTEMP_. 5492 (OMP_ATOMIC_SEQ_CST): Remove. 5493 (OMP_ATOMIC_MEMORY_ORDER, OMP_CLAUSE_FIRSTPRIVATE_NO_REFERENCE, 5494 OMP_CLAUSE_LASTPRIVATE_CONDITIONAL): Define. 5495 (OMP_CLAUSE_REDUCTION_CODE, OMP_CLAUSE_REDUCTION_INIT, 5496 OMP_CLAUSE_REDUCTION_MERGE, OMP_CLAUSE_REDUCTION_PLACEHOLDER, 5497 OMP_CLAUSE_REDUCTION_DECL_PLACEHOLDER, 5498 OMP_CLAUSE_REDUCTION_OMP_ORIG_REF): Handle 5499 OMP_CLAUSE_{,IN_,TASK_}REDUCTION. 5500 (OMP_CLAUSE_REDUCTION_TASK, OMP_CLAUSE_REDUCTION_INSCAN, 5501 OMP_CLAUSE_DEFAULTMAP_KIND, OMP_CLAUSE_DEFAULTMAP_CATEGORY, 5502 OMP_CLAUSE_DEFAULTMAP_BEHAVIOR, OMP_CLAUSE_DEFAULTMAP_SET_KIND): 5503 Define. 5504 * tree-inline.c (remap_gimple_stmt): Remap taskgroup clauses. 5505 * tree-nested.c (convert_nonlocal_omp_clauses): Handle 5506 OMP_CLAUSE__REDUCTEMP_, OMP_CLAUSE_NONTEMPORAL. 5507 (convert_local_omp_clauses): Likewise. Remove useless test. 5508 * tree-parloops.c (create_call_for_reduction_1): Pass 5509 OMP_MEMORY_ORDER_RELAXED as new argument to 5510 dump_gimple_omp_atomic_load and dump_gimple_omp_atomic_store. 5511 * tree-pretty-print.c (dump_omp_iterators): New function. 5512 (dump_omp_clause): Handle OMP_CLAUSE__REDUCTEMP_, 5513 OMP_CLAUSE_NONTEMPORAL, OMP_CLAUSE_{TASK,IN}_REDUCTION. Print 5514 reduction modifiers. Handle OMP_CLAUSE_DEPEND_DEPOBJ and 5515 OMP_CLAUSE_DEPEND_MUTEXINOUTSET. Print iterators in depend clauses. 5516 Print __internal__ for OMP_CLAUSE_DEPEND_LAST. Handle cancel and 5517 simd OMP_CLAUSE_IF_MODIFIERs. Handle new kinds of 5518 OMP_CLAUSE_DEFAULTMAP. Print conditional: for 5519 OMP_CLAUSE_LASTPRIVATE_CONDITIONAL. 5520 (dump_omp_atomic_memory_order): New function. 5521 (dump_generic_node): Use it. Print taskgroup clauses. Print 5522 taskwait with depend clauses. 5523 * tree-pretty-print.h (dump_omp_atomic_memory_order): Declare. 5524 * tree-streamer-in.c (unpack_ts_omp_clause_value_fields): 5525 Handle OMP_CLAUSE_{TASK,IN}_REDUCTION. 5526 * tree-streamer-out.c (pack_ts_omp_clause_value_fields, 5527 write_ts_omp_clause_tree_pointers): Likewise. 5528 55292018-11-08 David Malcolm <dmalcolm@redhat.com> 5530 5531 PR ipa/86395 5532 * doc/invoke.texi (-fdump-ipa-): Document the "-optimized", 5533 "-missed", "-note", and "-all" sub-options. 5534 * ipa-inline.c (caller_growth_limits): Port from fprintf to dump 5535 API. 5536 (can_early_inline_edge_p): Likewise. 5537 (want_early_inline_function_p): Likewise. 5538 (want_inline_self_recursive_call_p): Likewise. 5539 (recursive_inlining): Likewise. 5540 (inline_small_functions): Likewise. 5541 (flatten_function): Likewise. 5542 (ipa_inline): Likewise. 5543 (inline_always_inline_functions): Likewise. 5544 (early_inline_small_functions): Likewise. 5545 (early_inliner): Likewise. 5546 * tree-inline.c (expand_call_inline): Likewise. 5547 55482018-11-08 David Malcolm <dmalcolm@redhat.com> 5549 5550 * pretty-print.c (pp_format): Handle %f. 5551 (selftest::test_pp_format): Add test of %f. 5552 * pretty-print.h (pp_double): New macro. 5553 55542018-11-08 David Malcolm <dmalcolm@redhat.com> 5555 5556 * dump-context.h (ASSERT_IS_CGRAPH_NODE): New macro. 5557 * dumpfile.c (make_item_for_dump_cgraph_node): Move to before... 5558 (dump_pretty_printer::decode_format): Implement "%C" for 5559 cgraph_node *. 5560 (selftest::test_capture_of_dump_calls): Rename "where" to 5561 "stmt_loc". Convert test_decl to a function decl and set its 5562 location. Add a symbol_table_test RAII instance and a 5563 cgraph_node, using it to test "%C" and dump_symtab_node. 5564 55652018-11-08 Eric Botcazou <ebotcazou@adacore.com> 5566 5567 PR middle-end/87916 5568 * cgraphclones.c (duplicate_thunk_for_node): Also set DECL_IGNORED_P. 5569 55702018-11-08 David Malcolm <dmalcolm@redhat.com> 5571 5572 * cgraph.c: Include "selftest.h". 5573 (saved_symtab): New variable. 5574 (selftest::symbol_table_test::symbol_table_test): New ctor. 5575 (selftest::symbol_table_test::~symbol_table_test): New dtor. 5576 (selftest::test_symbol_table_test): New test. 5577 (selftest::cgraph_c_tests): New. 5578 * cgraph.h (saved_symtab): New decl. 5579 (selftest::symbol_table_test): New class. 5580 * selftest-run-tests.c (selftest::run_tests): Call 5581 selftest::cgraph_c_tests. 5582 * selftest.h (selftest::cgraph_c_tests): New decl. 5583 55842018-11-08 Richard Biener <rguenther@suse.de> 5585 5586 * tree-data-ref.h (lambda_int): New typedef. 5587 (lambda_vector_gcd): Adjust. 5588 (lambda_vector_new): Likewise. 5589 (lambda_matrix_new): Likewise. 5590 * tree-data-ref.c (print_lambda_vector): Adjust. 5591 55922018-11-08 Richard Biener <rguenther@suse.de> 5593 5594 PR tree-optimization/87929 5595 * tree-complex.c (expand_complex_comparison): Clean EH. 5596 55972018-11-08 Martin Liska <mliska@suse.cz> 5598 5599 * doc/extend.texi: Reword. 5600 * predict.c (expr_expected_value_1): Likewise. 5601 56022018-11-08 Richard Biener <rguenther@suse.de> 5603 5604 PR tree-optimization/87913 5605 * tree-ssa-phiopt.c (minmax_replacement): Turn EQ/NE compares 5606 of extreme values to ordered comparisons. 5607 56082018-11-07 Sandra Loosemore <sandra@codesourcery.com> 5609 5610 PR middle-end/42726 5611 * doc/invoke.texi (Code Gen Options): Clarify -fno-common behavior. 5612 56132018-11-07 Sandra Loosemore <sandra@codesourcery.com> 5614 5615 * doc/invoke.texi: Remove leading dash from @opindex entries 5616 throughout the file. 5617 56182018-11-07 Sandra Loosemore <sandra@codesourcery.com> 5619 5620 PR driver/80828 5621 * doc/invoke.texi (Option Summary): Add -e and --entry. 5622 (Link Options): Likewise. 5623 56242018-11-07 Nathan Sidwell <nathan@acm.org> 5625 5626 PR 87926 5627 * Makefile.in (bitmap.o-warn): Add -Wno-error to unbreak 5628 --disable-checking bootstrap. 5629 56302018-11-07 Hafiz Abid Qadeer <abidh@codesourcery.com> 5631 5632 * configure: Regenerated. 5633 56342018-11-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 5635 5636 PR c/87691 5637 * stor-layout.c (compute_record_mode): Set TYPE_MODE of UNION_TYPE 5638 to the mode of the widest field iff the widest field has mode class 5639 MODE_INT, or MODE_PARTIAL_INT and the union would be passed by 5640 reference. 5641 56422018-11-07 Nikolai Merinov <n.merinov@inango-systems.com> 5643 5644 * common.opt: Add -Wattribute-warning. 5645 * doc/invoke.texi: Add documentation for -Wno-attribute-warning. 5646 * expr.c (expand_expr_real_1): Add new attribute to warning_at 5647 call to allow user configure behavior of "warning" attribute. 5648 56492018-11-07 Segher Boessenkool <segher@kernel.crashing.org> 5650 5651 * target.def: Put @: after every vs., e.g., and i.e. where it is 5652 followed by whitespace. 5653 * doc/extend.texi: Ditto. 5654 * doc/fragments.texi: Ditto. 5655 * doc/gimple.texi: Ditto. 5656 * doc/implement-c.texi: Ditto. 5657 * doc/install.texi: Ditto. 5658 * doc/invoke.texi: Ditto. 5659 * doc/md.texi: Ditto. 5660 * doc/plugins.texi: Ditto. 5661 * doc/rtl.texi: Ditto. 5662 * doc/sourcebuild.texi: Ditto. 5663 * doc/tm.texi.in: Ditto. 5664 * doc/ux.texi: Ditto. 5665 * doc/tm.texi: Regenerate. 5666 56672018-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 5668 5669 * config/arm/arm-cpus.in (ares): New entry. 5670 * config/arm/arm-tables.opt: Regenerate. 5671 * config/arm/arm-tune.md: Likewise. 5672 * doc/invoke.texi (ARM Options): Document ares. 5673 56742018-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 5675 5676 * config/aarch64/aarch64-cores.def (ares): Define. 5677 * config/aarch64/aarch64-tune.md: Regenerate. 5678 * doc/invoke.texi (AArch64 Options): Document ares value for mtune. 5679 56802018-11-07 Jan Hubicka <jh@suse.cz> 5681 5682 * tree.c (fld_incomplete_type_of): Clear TREE_ADDRESSABLE. 5683 (free_lang_data_in_decl): Set TREE_ADDRESSABLE for public vars and 5684 functions; clear TYPE_DECL_SUPPRESS_DEBUG and DECL_MODE for 5685 TYPE_DECL. 5686 56872018-11-07 Richard Biener <rguenther@suse.de> 5688 5689 PR tree-optimization/87914 5690 * tree-vect-loop.c (vect_is_simple_reduction): Improve detection 5691 of nested cycles. 5692 (vectorizable_reduction): Handle shifts and rotates by dispatching 5693 to vectorizable_shift. 5694 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Handle 5695 in-loop uses of vect_nested_cycle defs. Merge cycle and internal 5696 def cases. 5697 (vectorizable_shift): Export and handle being called as 5698 vect_nested_cycle. 5699 (vect_analyze_stmt): Call vectorizable_shift after 5700 vectorizable_reduction. 5701 * tree-vectorizer.h (vectorizable_shift): Declare. 5702 57032018-11-07 Jan Hubicka <jh@suse.cz> 5704 5705 * ipa-devirt.c (odr_types_equivalent_p): Expect constants 5706 than const decls in TREE_VALUE of enum. 5707 (dump_type_inheritance_graph): Improve duplicate dumping. 5708 (free_enum_values): New. 5709 (build_type_inheritance_graph): Use it. 5710 * tree.c (free_lang_data_in_type): Free TYPE_VALUES of enums 5711 which are not main variants or not ODR types. 5712 (verify_type_variant): Expect variants to have no TYPE_VALUES. 5713 57142018-11-07 Richard Biener <rguenther@suse.de> 5715 5716 * ipa-inline.c (want_inline_small_function_p): Compute 5717 big_speedup_p lazily and last. 5718 57192018-11-07 Jan Hubicka <jh@suse.cz> 5720 5721 * tree.c (fld_type_variant_equal_p): Skip TYPE_ALIGN check when 5722 building incomplete variant of complete type. 5723 (fld_type_variant): Do not copy TYPE_ALIGN when building incomplete 5724 variant of complete type. 5725 57262018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> 5727 5728 * config/mips/mips.c: Fix typo in documentation of 5729 mips_loongson_ext2_prefetch_cookie. 5730 (mips_option_override): fix brain twister logical. 5731 * config/mips/mips.h: Fix typo in documentation of 5732 ISA_HAS_CTZ_CTO and define pattern. 5733 * config/mips/mips.md (prefetch): Hoist EXT2 above 5734 the 2EF/EXT block. 5735 (prefetch_indexed): Hoist EXT2 above the EXT block. 5736 57372018-11-07 Jan Hubicka <jh@suse.cz> 5738 5739 * tree.c (free_lang_data_in_type): Add fld parameter; simplify 5740 return and parameter types of function and method types. 5741 (free_lang_data_in_cgraph): Update. 5742 57432018-11-07 Martin Liska <mliska@suse.cz> 5744 5745 PR rtl-optimization/87868 5746 * postreload-gcse.c (eliminate_partially_redundant_load): Set 5747 threshold to max_count if we would overflow. 5748 * profile-count.h: Make max_count a public constant. 5749 57502018-11-07 Martin Liska <mliska@suse.cz> 5751 5752 * mem-stats.h: Fix GNU coding style. 5753 57542018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> 5755 5756 * config/mips/gs264e.md: New. 5757 * config/mips/mips-cpus.def: Define gs264e. 5758 * config/mips/mips-tables.opt: Regenerate. 5759 * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for 5760 gs264e. 5761 (mips_issue_rate): Add support for gs264e. 5762 (mips_multipass_dfa_lookahead): Likewise. 5763 * config/mips/mips.h: Define TARGET_GS264E and TUNE_GS264E. 5764 (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs264e. 5765 (MIPS_ASE_MSA_SPEC): New. 5766 (BASE_DRIVER_SELF_SPECS): march=gs264e implies -mmsa. 5767 (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS264E. 5768 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS264E. 5769 * config/mips/mips.md: Include gs264e.md. 5770 (processor): Add gs264e. 5771 * config/mips/mips.opt (MSA): Use Mask instead of Var. 5772 * doc/invoke.texi: Add gs264e to supported architectures. 5773 57742018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> 5775 5776 * config/mips/gs464e.md: New. 5777 * config/mips/mips-cpus.def: Define gs464e. 5778 * config/mips/mips-tables.opt: Regenerate. 5779 * config/mips/mips.c (mips_rtx_cost_data): Add DEFAULT_COSTS for 5780 gs464e. 5781 (mips_issue_rate): Add support for gs464e. 5782 (mips_multipass_dfa_lookahead): Likewise. 5783 (mips_option_override): Enable MMI, EXT and EXT2 for gs464e. 5784 * config/mips/mips.h: Define TARGET_GS464E and TUNE_GS464E. 5785 (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464e. 5786 (ISA_HAS_FUSED_MADD4): Enable for TARGET_GS464E. 5787 (ISA_HAS_UNFUSED_MADD4): Exclude TARGET_GS464E. 5788 * config/mips/mips.md: Include gs464e.md. 5789 (processor): Add gs464e. 5790 * doc/invoke.texi: Add gs464e to supported architectures. 5791 57922018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> 5793 5794 * config/mips/loongson3a.md: Rename to ... 5795 * config/mips/gs464.md: ... here. 5796 * config/mips/mips-cpus.def: Define gs464; Add loongson3a 5797 as an alias of gs464 processor. 5798 * config/mips/mips-tables.opt: Regenerate. 5799 * config/mips/mips.c (mips_issue_rate): Use PROCESSOR_GS464 5800 instead of PROCESSOR_LOONGSON_3A. 5801 (mips_multipass_dfa_lookahead): Use TUNE_GS464 instead of 5802 TUNE_LOONGSON_3A. 5803 (mips_option_override): Enable MMI and EXT for gs464. 5804 * config/mips/mips.h: Rename TARGET_LOONGSON_3A to TARGET_GS464; 5805 Rename TUNE_LOONGSON_3A to TUNE_GS464. 5806 (MIPS_ISA_LEVEL_SPEC): Infer mips64r2 from gs464. 5807 (ISA_HAS_ODD_SPREG, ISA_AVOID_DIV_HILO, ISA_HAS_FUSED_MADD4, 5808 ISA_HAS_UNFUSED_MADD4): Use TARGET_GS464 instead of 5809 TARGET_LOONGSON_3A. 5810 * config/mips/mips.md: Include gs464.md instead of loongson3a.md. 5811 (processor): Add gs464; 5812 * doc/invoke.texi: Add gs464 to supported architectures. 5813 58142018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> 5815 5816 * config/mips/mips-protos.h 5817 (mips_loongson_ext2_prefetch_cookie): New prototype. 5818 * config/mips/mips.c (mips_loongson_ext2_prefetch_cookie): New. 5819 (mips_option_override): Enable TARGET_LOONGSON_EXT when 5820 TARGET_LOONGSON_EXT2 is true. 5821 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Define 5822 __mips_loongson_ext2, __mips_loongson_ext_rev=2. 5823 (ISA_HAS_CTZ_CTO): New, true if TARGET_LOONGSON_EXT2. 5824 (ISA_HAS_PREFETCH): Include TARGET_LOONGSON_EXT and 5825 TARGET_LOONGSON_EXT2. 5826 (ASM_SPEC): Add mloongson-ext2 and mno-loongson-ext2. 5827 (define_insn "ctz<mode>2"): New insn pattern. 5828 (define_insn "prefetch"): Include TARGET_LOONGSON_EXT2. 5829 (define_insn "prefetch_indexed_<mode>"): Include 5830 TARGET_LOONGSON_EXT and TARGET_LOONGSON_EXT2. 5831 * config/mips/mips.opt (-mloongson-ext2): Add option. 5832 * gcc/doc/invoke.texi (-mloongson-ext2): Document. 5833 58342018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> 5835 5836 * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add 5837 __mips_loongson_ext. 5838 (MIPS_ASE_LOONGSON_EXT_SPEC): New. 5839 (BASE_DRIVER_SELF_SPECS): march=loongson3a implies 5840 -mloongson-ext. 5841 (ASM_SPEC): Add mloongson-ext and mno-loongson-ext. 5842 * config/mips/mips.md (mul<mode>3, mul<mode>3_mul3_nohilo, 5843 <u>div<mode>3, <u>mod<mode>3, prefetch): Use TARGET_LOONGSON_EXT 5844 instead of TARGET_LOONGSON_3A. 5845 * config/mips/mips.opt (-mloongson-ext): Add option. 5846 * gcc/doc/invoke.texi (-mloongson-ext): Document. 5847 58482018-11-07 Chenghua Xu <paul.hua.gm@gmail.com> 5849 5850 * config.gcc (extra_headers): Add loongson-mmiintrin.h. 5851 * config/mips/loongson.md: Move to ... 5852 * config/mips/loongson-mmi.md: here; Adjustment. 5853 * config/mips/loongson.h: Move to ... 5854 State as deprecated. Include loongson-mmiintrin.h for back 5855 compatibility and warning. 5856 * config/mips/loongson-mmiintrin.h: ... here. 5857 * config/mips/mips.c (mips_hard_regno_mode_ok_uncached, 5858 mips_vector_mode_supported_p, AVAIL_NON_MIPS16): Use 5859 TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. 5860 (mips_option_override): Make sure MMI use hard float; 5861 (mips_shift_truncation_mask, mips_expand_vpc_loongson_even_odd, 5862 mips_expand_vpc_loongson_pshufh, mips_expand_vpc_loongson_bcast, 5863 mips_expand_vector_init): Use TARGET_LOONGSON_MMI instead of 5864 TARGET_LOONGSON_VECTORS. 5865 * gcc/config/mips/mips.h (TARGET_LOONGSON_VECTORS): Delete. 5866 (TARGET_CPU_CPP_BUILTINS): Add __mips_loongson_mmi. 5867 (MIPS_ASE_DSP_SPEC, MIPS_ASE_LOONGSON_MMI_SPEC): New. 5868 (BASE_DRIVER_SELF_SPECS): march=loongson2e/2f/3a implies 5869 -mloongson-mmi. 5870 (SHIFT_COUNT_TRUNCATED): Use TARGET_LOONGSON_MMI instead of 5871 TARGET_LOONGSON_VECTORS. 5872 * gcc/config/mips/mips.md (MOVE64, MOVE128): Use 5873 TARGET_LOONGSON_MMI instead of TARGET_LOONGSON_VECTORS. 5874 (Loongson MMI patterns): Include loongson-mmi.md instead of 5875 loongson.md. 5876 * gcc/config/mips/mips.opt (-mloongson-mmi): New option. 5877 * gcc/doc/invoke.texi (-mloongson-mmi): Document. 5878 58792018-11-07 Richard Biener <rguenther@suse.de> 5880 5881 PR lto/87906 5882 * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Fixup 5883 BLOCK_ABSTRACT_ORIGIN to be the ultimate origin. 5884 58852018-11-07 Alexandre Oliva <aoliva@redhat.com> 5886 5887 PR rtl-optimization/87874 5888 * lra.c (lra_substitute_pseudo): Do not create a subreg for 5889 const wide ints. 5890 58912018-11-06 Aaron Sawdey <acsawdey@linux.ibm.com> 5892 5893 * config/rs6000/rs6000.md (bswap<mode>2): Force address into register 5894 if not in indexed or indirect form. 5895 (bswap<mode>2_load): Change predicate to indexed_or_indirect_operand. 5896 (bswap<mode>2_store): Ditto. 5897 58982018-11-06 Richard Earnshaw <rearnsha@arm.com> 5899 5900 * config/aarch64/aarch64.md (speculation_tracker): Set the mode for 5901 the UNSPEC. 5902 59032018-11-06 Richard Biener <rguenther@suse.de> 5904 5905 PR tree-optimization/86850 5906 * vec.h (vec<T, va_heap, vl_ptr>::splice): Check src.length () 5907 instead of src.m_vec. 5908 59092018-11-06 Jan Hubicka <jh@suse.cz> 5910 5911 * tree.c (fld_simplified_type_name): Break out form ... 5912 (free_lang_data_in_type): ... here. 5913 (fld_type_variant_equal_p): Use it. 5914 59152018-11-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 5916 5917 * config/default-d.c: Include memmodel.h. 5918 5919 * config/sol2-d.c: New file. 5920 * config/t-sol2 (sol2-d.o): New rule. 5921 * config.gcc <*-*-solaris2*>: Set d_target_objs, 5922 target_has_targetdm. 5923 59242018-11-06 Jan Hubicka <jh@suse.cz> 5925 5926 * tree.c (fld_type_variant): Also copy alignment; be sure that 5927 new variant is equal. 5928 59292018-11-06 Ilya Leoshkevich <iii@linux.ibm.com> 5930 5931 PR target/87762 5932 * config/s390/s390.md: Add relative_long attribute. 5933 59342018-11-06 Jan Hubicka <jh@suse.cz> 5935 5936 * ipa-pure-const.c (check_decl): Do not test TYPE_NEEDS_CONSTRUCTING. 5937 * lto-streamer-out.c (hash_tree): Do not hash TYPE_NEEDS_CONSTRUCTING. 5938 * tree-streamer-in.c (unpack_ts_type_common_value_fields): Do not 5939 stream TYPE_NEEDS_CONSTRUCTING. 5940 * tree-streamer-out.c (pack_ts_type_common_value_fields): Likewise. 5941 * tree.c (free_lang_data_in_type): Clear TYPE_NEEDS_CONSTRUCTING. 5942 59432018-11-06 Richard Biener <rguenther@suse.de> 5944 5945 * tree-vect-slp.c (vect_slp_bb): Move opening of vect_slp_analyze_bb 5946 dump-scope ... 5947 (vect_slp_analyze_bb_1): ... here to avoid hiding optimized locations. 5948 59492018-11-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> 5950 5951 * gcc/config/msp430/msp430.h (REG_CLASS_CONTENTS): Add R0 to 5952 REG_CLASS_CONTENTS[GEN_REGS]. 5953 (REGNO_REG_CLASS): Return NO_REGS for R2 and R3. 5954 59552018-11-06 Jan Hubicka <jh@suse.cz> 5956 5957 * tree.c (fld_simplified_type_of): Clear TYPELESS_STORAGE flag. 5958 59592018-11-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 5960 5961 PR sanitizer/80953 5962 * config/sol2.h (ASAN_CC1_SPEC): Define. 5963 (LD_WHOLE_ARCHIVE_OPTION): Define. 5964 (LD_NO_WHOLE_ARCHIVE_OPTION): Define. 5965 (ASAN_REJECT_SPEC): Provide default. 5966 (LIBASAN_EARLY_SPEC): Define. 5967 (LIBTSAN_EARLY_SPEC): Define. 5968 (LIBLSAN_EARLY_SPEC): Define. 5969 * config/i386/sol2.h (CC1_SPEC): Redefine. 5970 (ASAN_REJECT_SPEC): Define. 5971 5972 * config/sparc/sparc.c (sparc_asan_shadow_offset): Declare. 5973 (TARGET_ASAN_SHADOW_OFFSET): Define. 5974 (sparc_asan_shadow_offset): New function. 5975 * config/sparc/sol2.h (CC1_SPEC): Append ASAN_CC1_SPEC. 5976 (ASAN_REJECT_SPEC): Define. 5977 59782018-11-06 Jan Hubicka <jh@suse.cz> 5979 5980 * tree.c (fld_type_variant): Copy canonical type. 5981 (fld_incomplete_type_of): Check that canonical types looks sane; 5982 copy canonical type. 5983 (verify_type): Accept when incomplete type has complete canonical type. 5984 59852018-11-06 Jan Hubicka <jh@suse.cz> 5986 5987 * tree.c (free_lang_data): Reset overwite_assembler_name, 5988 print_xnode, print_decl, print_type and print_identifier of 5989 langhooks. 5990 59912018-11-06 Richard Biener <rguenther@suse.de> 5992 5993 PR tree-optimization/87889 5994 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): 5995 Do nothing if old and new arg are the same 5996 59972018-11-06 Andreas Krebbel <krebbel@linux.ibm.com> 5998 5999 PR target/87723 6000 * config/s390/s390.md ("*r<noxa>sbg_di_rotl"): Remove mode 6001 attributes for operands 3 and 4. 6002 60032018-11-06 Richard Biener <rguenther@suse.de> 6004 6005 PR middle-end/18041 6006 * simplify-rtx.c (simplify_binary_operation_1): Add pattern 6007 matching bitfield insertion. 6008 60092018-11-06 Alexandre Oliva <aoliva@redhat.com> 6010 6011 * auto-inc-dec.c: Include valtrack.h. Improve comments. 6012 (reg_next_debug_use): New. 6013 (attempt_change): Propagate adjusted expression into affected 6014 debug insns. 6015 (merge_in_block): Track uses in debug insns. 6016 (pass_inc_dec::execute): Allocate and release 6017 reg_next_debug_use. 6018 60192018-11-06 Wei Xiao <wei3.xiao@intel.com> 6020 6021 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. 6022 (_mm512_fixupimm_round_pd): Update parameters and builtin. 6023 (_mm512_maskz_fixupimm_round_pd): Ditto. 6024 (_mm512_fixupimm_round_ps): Ditto. 6025 (_mm512_maskz_fixupimm_round_ps): Ditto. 6026 (_mm_fixupimm_round_sd): Ditto. 6027 (_mm_maskz_fixupimm_round_sd): Ditto. 6028 (_mm_fixupimm_round_ss): Ditto. 6029 (_mm_maskz_fixupimm_round_ss): Ditto. 6030 (_mm512_fixupimm_pd): Ditto. 6031 (_mm512_maskz_fixupimm_pd): Ditto. 6032 (_mm512_fixupimm_ps): Ditto. 6033 (_mm512_maskz_fixupimm_ps): Ditto. 6034 (_mm_fixupimm_sd): Ditto. 6035 (_mm_maskz_fixupimm_sd): Ditto. 6036 (_mm_fixupimm_ss): Ditto. 6037 (_mm_maskz_fixupimm_ss): Ditto. 6038 (_mm512_mask_fixupimm_round_pd): Update builtin. 6039 (_mm512_mask_fixupimm_round_ps): Ditto. 6040 (_mm_mask_fixupimm_round_sd): Ditto. 6041 (_mm_mask_fixupimm_round_ss): Ditto. 6042 (_mm512_mask_fixupimm_pd): Ditto. 6043 (_mm512_mask_fixupimm_ps): Ditto. 6044 (_mm_mask_fixupimm_sd): Ditto. 6045 (_mm_mask_fixupimm_ss): Ditto. 6046 * config/i386/avx512vlintrin.h: 6047 (_mm256_fixupimm_pd): Update parameters and builtin. 6048 (_mm256_maskz_fixupimm_pd): Ditto. 6049 (_mm256_fixupimm_ps): Ditto. 6050 (_mm256_maskz_fixupimm_ps): Ditto. 6051 (_mm_fixupimm_pd): Ditto. 6052 (_mm_maskz_fixupimm_pd): Ditto. 6053 (_mm_fixupimm_ps): Ditto. 6054 (_mm_maskz_fixupimm_ps): Ditto. 6055 (_mm256_mask_fixupimm_pd): Update builtin. 6056 (_mm256_mask_fixupimm_ps): Ditto. 6057 (_mm_mask_fixupimm_pd): Ditto. 6058 (_mm_mask_fixupimm_ps): Ditto. 6059 * config/i386/i386-builtin-types.def: Add new types and remove useless ones. 6060 * config/i386/i386-builtin.def: Update builtin definitions. 6061 * config/i386/i386.c: Handle new builtin types and remove useless ones. 6062 * config/i386/sse.md: Update VFIXUPIMM* patterns. 6063 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 6064 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 6065 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. 6066 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. 6067 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. 6068 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update. 6069 * config/i386/subst.md: 6070 (round_saeonly_sd_mask_operand4): Add new subst_attr. 6071 (round_saeonly_sd_mask_op4): Ditto. 6072 (round_saeonly_expand_operand5): Ditto. 6073 (round_saeonly_expand): Update. 6074 60752018-11-05 Max Filippov <jcmvbkbc@gmail.com> 6076 6077 * config/xtensa/uclinux.h (XTENSA_ALWAYS_PIC): Change to 0. 6078 60792018-11-05 Segher Boessenkool <segher@kernel.crashing.org> 6080 6081 PR rtl-optimization/87871 6082 * combine.c (make_more_copies): Skip if dest is frame_pointer_rtx. 6083 60842018-11-05 Paul Koning <ni1d@arrl.net> 6085 6086 * doc/sourcebuild.texi (target attributes): Document new "inf" 6087 effective target keyword. 6088 60892018-11-05 Robin Dapp <rdapp@linux.ibm.com> 6090 6091 * config/s390/s390.c (s390_register_move_cost): Increase costs for 6092 moves involving the CC reg. 6093 60942018-11-05 Richard Biener <rguenther@suse.de> 6095 6096 PR tree-optimization/87873 6097 * tree-ssa-loop-manip.h (split_loop_exit_edge): Add copy_constants_p 6098 argument. 6099 * tree-ssa-loop-manip.c (split_loop_exit_edge): Likewise. 6100 * tree-vect-loop.c (vect_transform_loop): When splitting the 6101 loop exit also create forwarder PHIs for constants. 6102 * tree-vect-loop-manip.c (slpeel_duplicate_current_defs_from_edges): 6103 Handle constant to_arg, add extra checking we match up the correct 6104 PHIs. 6105 61062018-11-05 Robin Dapp <rdapp@linux.ibm.com> 6107 6108 * config/s390/s390.md: QImode and HImode for load on condition. 6109 61102018-11-05 Robin Dapp <rdapp@linux.ibm.com> 6111 6112 * config/s390/predicates.md: Fix typo. 6113 * config/s390/s390.md: Allow immediates for load on condition. 6114 61152018-11-05 Martin Liska <mliska@suse.cz> 6116 6117 * alloc-pool.h (struct pool_usage): Use SIZE_AMOUNT. 6118 * bitmap.h (struct bitmap_usage): Likewise. 6119 * ggc-common.c (SCALE): Remove. 6120 (LABEL): Likewise. 6121 (struct ggc_usage): Use SIZE_AMOUNT. And update 6122 compare method. 6123 * ggc-page.c (SCALE): Remove. 6124 (STAT_LABEL): Remove. 6125 (ggc_print_statistics): Use SIZE_AMOUNT. 6126 * gimple.h (SCALE): Remove. 6127 (LABEL): Likewise. 6128 * input.c (ONE_K): Remove. 6129 (ONE_M): Likewise. 6130 (SCALE): Likewise. 6131 (STAT_LABEL): Likewise. 6132 (FORMAT_AMOUNT): Likewise. 6133 (dump_line_table_statistics): Use SIZE_AMOUNT. 6134 * mem-stats.h (struct mem_usage): Likewise. 6135 * rtl.c (dump_rtx_statistics): Likewise. 6136 (rtx_alloc_counts): Change type to size_t. 6137 (rtx_alloc_sizes): Likewise. 6138 (rtx_count_cmp): New. 6139 (dump_rtx_statistics): Sort first based on counts. 6140 * tree.c (tree_nodes_cmp): New. 6141 (tree_codes_cmp): New. 6142 (dump_tree_statistics): Sort first based on counts. 6143 * system.h (ONE_K): New. 6144 (ONE_M): Likewise. 6145 (SIZE_SCALE): Likewise. 6146 (SIZE_LABEL): Likewise. 6147 (SIZE_AMOUNT): Likewise. 6148 * tree-cfg.c (dump_cfg_stats): Use SIZE_AMOUNT. 6149 * tree-dfa.c (dump_dfa_stats): Likewise. 6150 * tree-phinodes.c (phinodes_print_statistics): Likewise. 6151 * tree-ssanames.c (ssanames_print_statistics): Likewise. 6152 * tree.c (dump_tree_statistics): Likewise. 6153 * vec.c (struct vec_usage): Likewise. 6154 * trans-mem.c (tm_mangle): Enlarge buffer in order to not 6155 trigger a -Werror=format-overflow with 6156 --enable-gather-detailed-stats. 6157 61582018-11-05 Martin Liska <mliska@suse.cz> 6159 6160 * mem-stats.h (mem_alloc_description::release_instance_overhead): 6161 Return T *. 6162 * vec.c (struct vec_usage): Register m_element_size. 6163 (vec_prefix::register_overhead): New arguments: elements and 6164 element_size. 6165 (vec_prefix::release_overhead): Subtract elements. 6166 * vec.h (struct vec_prefix): Change signature. 6167 (va_heap::reserve): Pass proper arguments. 6168 (va_heap::release): Likewise. 6169 61702018-11-05 Martin Liska <mliska@suse.cz> 6171 6172 * mem-stats.h (mem_alloc_description::get_list): Fix GNU coding 6173 style. 6174 * vec.c: Likewise. 6175 61762018-11-05 Richard Biener <rguenther@suse.de> 6177 6178 * tree-scalar-evolution.h (final_value_replacement_loop): Update 6179 prototype. 6180 * tree-scalar-evolution.c (final_value_replacement_loop): Return 6181 whether anything was done. 6182 (scev_const_prop): Remove constant propagation part, fold 6183 remains into ... 6184 * tree-ssa-loop.c (pass_scev_cprop::execute): ... here. 6185 (pass_data_scev_cprop): TODO_cleanup_cfg is now done 6186 conditionally. 6187 61882018-11-05 Jakub Jelinek <jakub@redhat.com> 6189 6190 PR tree-optimization/87859 6191 * gimple-ssa-store-merging.c (struct merged_store_group): Add 6192 only_constants and first_nonmergeable_order members. 6193 (merged_store_group::merged_store_group): Initialize them. 6194 (merged_store_group::do_merge): Clear only_constants member if 6195 adding something other than INTEGER_CST store. 6196 (imm_store_chain_info::coalesce_immediate_stores): Don't merge 6197 stores with order >= first_nonmergeable_order. Use 6198 merged_store->only_constants instead of always recomputing it. 6199 Set merged_store->first_nonmergeable_order if we've skipped any 6200 stores. Attempt to merge overlapping INTEGER_CST stores that 6201 we would otherwise skip. 6202 6203 PR sanitizer/87837 6204 * match.pd (X + Y < X): Don't optimize if TYPE_OVERFLOW_SANITIZED. 6205 62062018-11-05 Xuepeng Guo <xuepeng.guo@intel.com> 6207 6208 PR target/87853 6209 * config/i386/emmintrin.h (__v16qs): New to cope with option 6210 -funsigned-char. 6211 (_mm_cmpeq_epi8): Replace __v16qi with __v16qs. 6212 (_mm_cmplt_epi8): Likewise. 6213 (_mm_cmpgt_epi8): Likewise. 6214 62152018-11-05 Richard Biener <rguenther@suse.de> 6216 6217 PR rtl-optimization/87852 6218 * fwprop.c (use_killed_between): Only consider single-defs of the 6219 use whose definition statement dominates the use. 6220 62212018-11-05 Martin Liska <mliska@suse.cz> 6222 6223 PR web/87829 6224 * doc/invoke.texi: Remove options that are 6225 not disabled with -Os. 6226 62272018-11-05 Martin Liska <mliska@suse.cz> 6228 6229 PR c/87811 6230 * doc/extend.texi: Update constrain about the last argument 6231 of __builtin_expect_with_probability. 6232 62332018-11-05 Martin Liska <mliska@suse.cz> 6234 6235 PR c/87811 6236 * predict.c (expr_expected_value_1): Verify 6237 that last argument is a real constants and emit 6238 error. 6239 62402018-11-05 Martin Liska <mliska@suse.cz> 6241 6242 PR gcov-profile/77698 6243 * ipa-profile.c (ipa_profile): Adjust hotness threshold 6244 only in LTO mode. 6245 62462018-11-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 6247 6248 PR tree-optimization/86572 6249 * builtins.c (c_strlen): Handle negative offsets in a safe way. 6250 62512018-11-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 6252 6253 PR tree-optimization/87672 6254 * gimple-fold.c (gimple_fold_builtin_stxcpy_chk): Gimplify. 6255 * tree-ssa-strlen.c (handle_builtin_strcat): Adjust object size. 6256 62572018-11-04 Uros Bizjak <ubizjak@gmail.com> 6258 6259 PR middle-end/58372 6260 * cfgexpand.c (pass_expand::execute): Move the call to 6261 finish_eh_generation in front of the call to expand_stack_alignment. 6262 62632018-11-04 Venkataramanan Kumar <venkataramanan.kumar@amd.com> 6264 6265 * common/config/i386/i386-common.c (processor_alias_table): Add 6266 znver2 entry. 6267 * config.gcc (i[34567]86-*-linux* | ...): Add znver2. 6268 (case ${target}): Add znver2. 6269 * config/i386/driver-i386.c: (host_detect_local_cpu): Let 6270 -march=native recognize znver2 processors. 6271 * config/i386/i386-c.c (ix86_target_macros_internal): Add znver2. 6272 * config/i386/i386.c (m_znver2): New definition. 6273 (m_ZNVER): New definition. 6274 (m_AMD_MULTIPLE): Includes m_znver2. 6275 (processor_cost_table): Add znver2 entry. 6276 (processor_target_table): Add znver2 entry. 6277 (get_builtin_code_for_version): Set priority for 6278 PROCESSOR_ZNVER2. 6279 (processor_model): Add M_AMDFAM17H_ZNVER2. 6280 (arch_names_table): Ditto. 6281 (ix86_reassociation_width): Include znver2. 6282 * config/i386/i386.h (TARGET_znver2): New definition. 6283 (struct ix86_size_cost): Add TARGET_ZNVER2. 6284 (enum processor_type): Add PROCESSOR_ZNVER2. 6285 * config/i386/i386.md (define_attr "cpu"): Add znver2. 6286 * config/i386/x86-tune-costs.h: (processor_costs) Add znver2 costs. 6287 * config/i386/x86-tune-sched.c: (ix86_issue_rate): Add znver2. 6288 (ix86_adjust_cost): Add znver2. 6289 * config/i386/x86-tune.def: Replace m_ZNVER1 by m_ZNVER. 6290 * gcc/doc/extend.texi: Add details about znver2. 6291 * gcc/doc/invoke.texi: Add details about znver2. 6292 62932018-11-03 Sandra Loosemore <sandra@codesourcery.com> 6294 6295 PR target/87079 6296 6297 * config/nios2/nios2.c (nios2_rtx_costs): Recognize <mul>sidi3 6298 pattern. 6299 63002018-11-02 Aaron Sawdey <acsawdey@linux.ibm.com> 6301 6302 * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Pay 6303 attention to TARGET_AVOID_XFORM and BYTES_BIG_ENDIAN. 6304 63052018-11-02 Richard Earnshaw <rearnsha@arm.com> 6306 6307 * config/aarch64/aarch64.c ((aarch64_override_options): Disable 6308 shrink-wrapping when -mtrack-speculation. 6309 63102018-11-02 Richard Biener <rguenther@suse.de> 6311 6312 * tree-ssa-coalesce.c (struct coalesce_list): Add obstack member. 6313 (pop_cost_one_pair): Do not free pair. 6314 (pop_best_coalesce): Likewise. 6315 (create_coalesce_list): Initialize obstack. 6316 (delete_coalesce_list): Free obstack. 6317 (find_coalesce_pair): Obstack-allocate coalesce pairs. 6318 (add_cost_one_coalesce): Likewise. 6319 (struct live_track): Remove bitmap pointer indirections. 6320 (new_live_track): Adjust. 6321 (delete_live_track): Likewise. 6322 (live_track_remove_partition): Likewise. 6323 (live_track_add_partition): Likewise. 6324 (live_track_live_p): Likewise. 6325 (live_track_process_def): Likewise. 6326 (live_track_clear_base_vars): Likewise. 6327 63282018-11-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6329 6330 * configure.ac (gcc_cv_as_sparc_register_op): Remove. 6331 * configure: Regenerate. 6332 * config.in: Regenerate. 6333 * config/sparc/sparc.c (sparc_output_scratch_registers): Remove 6334 HAVE_AS_REGISTER_PSEUDO_OP guard. 6335 * config/sparc/sparc.h (ASM_ARCH64_SPEC): Remove 6336 !HAVE_AS_REGISTER_PSEUDO_OP support. 6337 (ASM_DECLARE_REGISTER_GLOBAL): Remove HAVE_AS_REGISTER_PSEUDO_OP 6338 guard. 6339 63402018-11-02 Richard Biener <rguenther@suse.de> 6341 6342 * dwarf2out.c (build_abbrev_table): Guard lookup_external_ref call 6343 with is_type_die. 6344 63452018-11-02 Richard Biener <rguenther@suse.de> 6346 6347 PR tree-optimization/87776 6348 * tree-ssa-sccvn.c (do_rpo_vn): Do not mark backedges 6349 executable when iterating but running into rpo-vn-max-loop-depth 6350 and not eliding the iteration. 6351 63522018-11-30 Jan Hubicka <jh@suse.cz> 6353 6354 * tree.c (free_lang_data_in_decl): Free TREE_TYPE and alignment of 6355 TYPE_DECL. 6356 63572018-11-01 Aaron Sawdey <acsawdey@linux.ibm.com> 6358 6359 * config/rs6000/rs6000-protos.h (rs6000_address_for_fpconvert): Remove 6360 prototype. 6361 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): 6362 Combine with rs6000_address_for_fpconvert. 6363 (rs6000_address_for_fpconvert): Combine with 6364 rs6000_force_indexed_or_indirect_mem. 6365 (rs6000_expand_vector_init): Change function call from 6366 rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. 6367 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Change call from 6368 rs6000_address_for_fpconvert to rs6000_force_indexed_or_indirect_mem. 6369 (floatsi<mode>2_lfiwax_mem): Ditto. 6370 (floatunssi<mode>2_lfiwzx): Ditto. 6371 (floatunssi<mode>2_lfiwzx_mem): Ditto. 6372 (float<QHI:mode><FP_ISA3:mode>2): Ditto. 6373 (floatuns<QHI:mode><FP_ISA3:mode>2): Ditto. 6374 (fix_trunc<mode>si2_stfiwx): Ditto. 6375 (fixuns_trunc<mode>si2_stfiwx): Ditto. 6376 (float_<mode>si2_hw): Ditto. 6377 (floatuns_<mode>si2_hw): Ditto. 6378 * config/rs6000/vsx.md (*vsx_extract_si): Ditto. 6379 (vsx_splat_<mode>): Ditto. 6380 63812018-11-01 Joseph Myers <joseph@codesourcery.com> 6382 6383 * configure.ac (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Add newline 6384 at end of assembler input text. 6385 * configure: Regenerate. 6386 63872018-11-01 Jakub Jelinek <jakub@redhat.com> 6388 6389 PR tree-optimization/87826 6390 * gimple-ssa-store-merging.c (do_shift_rotate): Punt if count is 6391 negative or larger or equal to type's precision. 6392 63932018-10-31 Alexandre Oliva <aoliva@redhat.com> 6394 6395 * opts.c (default_options_table): Do not enable 6396 OPT_fdelayed_branch at -Og. 6397 * doc/invoke.texi (-fdelayed-branch): Document it. 6398 63992018-10-31 Richard Henderson <richard.henderson@linaro.org> 6400 6401 * optabs-libfuncs.c (build_libfunc_function_visibility): 6402 New, split out from... 6403 (build_libfunc_function): ... here. 6404 (init_one_libfunc_visibility): New, split out from ... 6405 (init_one_libfunc): ... here. 6406 6407 * config/aarch64/atomics.md (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): 6408 scratch register need not be early-clobber. Document the reason 6409 why we cannot use ST<OP>. 6410 64112018-10-31 Joseph Myers <joseph@codesourcery.com> 6412 6413 PR bootstrap/82856 6414 * configure.ac: Remove AC_PREREQ. Use AC_LANG_SOURCE. Use single 6415 line for second argument of AC_DEFINE_UNQUOTED. 6416 * doc/install.texi (Tools/packages necessary for modifying GCC): 6417 Update to autoconf 2.69 and automake 1.15.1. 6418 * aclocal.m4, config.in, configure: Regenerate. 6419 64202018-10-31 Pat Haugen <pthaugen@us.ibm.com> 6421 6422 * tree-ssa-loop-ivcanon.c (try_peel_loop): Fix typo and remove dead 6423 initialization. 6424 64252018-10-31 Martin Liska <mliska@suse.cz> 6426 6427 PR driver/83193 6428 * common/config/aarch64/aarch64-common.c (aarch64_parse_extension): 6429 Add new argument invalid_extension. 6430 (aarch64_get_all_extension_candidates): New function. 6431 (aarch64_rewrite_selected_cpu): Add NULL to function call. 6432 * config/aarch64/aarch64-protos.h (aarch64_parse_extension): Add 6433 new argument. 6434 (aarch64_get_all_extension_candidates): New function. 6435 * config/aarch64/aarch64.c (aarch64_parse_arch): Add new 6436 argument invalid_extension. 6437 (aarch64_parse_cpu): Likewise. 6438 (aarch64_print_hint_for_extensions): New function. 6439 (aarch64_validate_mcpu): Provide hint about invalid extension. 6440 (aarch64_validate_march): Likewise. 6441 (aarch64_handle_attr_arch): Pass new argument. 6442 (aarch64_handle_attr_cpu): Provide hint about invalid extension. 6443 (aarch64_handle_attr_isa_flags): Likewise. 6444 64452018-10-31 Richard Biener <rguenther@suse.de> 6446 6447 PR middle-end/70359 6448 PR middle-end/86270 6449 * tree-outof-ssa.c (insert_backedge_copies): Restrict 6450 copy generation to useful cases. Place the copy before 6451 the definition of the backedge value when possible. 6452 64532018-10-31 Claudiu Zissulescu <claziss@synopsys.com> 6454 6455 * config/arc/arc-arch.h (ARC_TUNE_ARC7XX): New tune value. 6456 * config/arc/arc.c (arc_active_insn): New function. 6457 (check_store_cacheline_hazard): Likewise. 6458 (workaround_arc_anomaly): Use check_store_cacheline_hazard. 6459 (arc_override_options): Disable delay slot scheduler for older 6460 A7. 6461 (arc_store_addr_hazard_p): New implementation, old one renamed to 6462 ... 6463 (arc_store_addr_hazard_internal_p): Renamed. 6464 (arc_reorg): Don't combine into brcc instructions which are part 6465 of hardware hazard solution. 6466 * config/arc/arc.md (attr tune): Consider new arc7xx tune value. 6467 (tune_arc700): Likewise. 6468 * config/arc/arc.opt (arc7xx): New tune value. 6469 * config/arc/arc700.md: Improve A7 scheduler. 6470 64712018-10-31 Claudiu Zissulescu <claziss@synopsys.com> 6472 6473 * config/arc/arc.c (arc_override_options): Remove 6474 TARGET_COMPACT_CASESI. 6475 * config/arc/arc.h (ASM_OUTPUT_ADDR_DIFF_ELT): Update. 6476 (CASE_VECTOR_MODE): Likewise. 6477 (CASE_VECTOR_PC_RELATIVE): Likewise. 6478 (CASE_VECTOR_SHORTEN_MODE): Likewise. 6479 (CASE_VECTOR_SHORTEN_MODE1): Delete. 6480 (ADDR_VEC_ALIGN): Update. 6481 (ASM_OUTPUT_CASE_LABEL): Undefine. 6482 (ASM_OUTPUT_BEFORE_CASE_LABEL): Undefine. 6483 (TARGET_BI_BIH): Define. 6484 (DEFAULT_BRANCH_INDEX): Likewise. 6485 * config/arc/arc.md (casesi): Rework to accept BI/BIH 6486 instructions, remove compact_casesi use case. 6487 (casesi_compact_jump): Remove. 6488 (casesi_dispatch): New pattern. 6489 * config/arc/arc.opt: Add mbranch-index option. Deprecate 6490 compact_casesi option. 6491 * doc/invoke.texi: Document mbranch-index option. 6492 64932018-10-31 Claudiu Zissulescu <claziss@synopsys.com> 6494 6495 * config/arc/arc.c (arc_get_tp): Remove function. 6496 (arc_emit_call_tls_get_addr): Likewise. 6497 (arc_call_tls_get_addr): New function. 6498 (arc_legitimize_tls_address): Make use of arc_call_tls_get_addr. 6499 * config/arc/arc.md (tls_load_tp_soft): Remove. 6500 (tls_gd_get_addr): Likewise. 6501 65022018-10-31 Claudiu Zissulescu <claziss@synopsys.com> 6503 6504 * config/arc/arc.md (mulsi3): Remove call to mulsi_600_lib. 6505 (mulsi3_600_lib): Remove pattern. 6506 (umulsi3_highpart_600_lib_le): Likewise. 6507 (umulsi3_highpart): Remove call to umulsi3_highpart_600_lib_le. 6508 (umulsidi3): Remove call to umulsidi3_600_lib. 6509 (umulsidi3_600_lib): Remove pattern. 6510 (peephole2): Remove peephole using the above deprecated patterns. 6511 65122018-10-31 Thomas Preud'homme <thomas.preudhomme@linaro.org> 6513 6514 PR target/87374 6515 * config/arm/arm.c (arm_option_check_internal): Disable the combined 6516 use of -mslow-flash-data and -mword-relocations. 6517 (arm_option_override): Enable -mword-relocations if -fpic or -fPIC. 6518 * config/arm/arm.md (SYMBOL_REF MOVT splitter): Stop checking for 6519 flag_pic. 6520 * doc/invoke.texi (-mword-relocations): Mention conflict with 6521 -mslow-flash-data. 6522 (-mslow-flash-data): Reciprocally. 6523 65242018-10-31 Richard Henderson <richard.henderson@linaro.org> 6525 6526 * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Force 6527 16-byte modes held in GP registers to use an even regno. 6528 6529 * config/aarch64/aarch64.c (aarch64_emit_bic): Remove. 6530 (aarch64_atomic_ldop_supported_p): Remove. 6531 (aarch64_gen_atomic_ldop): Remove. 6532 * config/aarch64/atomic.md (atomic_<atomic_optab><ALLI>): 6533 Fully expand LSE operations here. 6534 (atomic_fetch_<atomic_optab><ALLI>): Likewise. 6535 (atomic_<atomic_optab>_fetch<ALLI>): Likewise. 6536 (aarch64_atomic_<ATOMIC_LDOP><ALLI>_lse): Drop atomic_op iterator 6537 and use ATOMIC_LDOP instead; use register_operand for the input; 6538 drop the split and emit insns directly. 6539 (aarch64_atomic_fetch_<ATOMIC_LDOP><ALLI>_lse): Likewise. 6540 (aarch64_atomic_<atomic_op>_fetch<ALLI>_lse): Remove. 6541 (@aarch64_atomic_load<ATOMIC_LDOP><ALLI>): Remove. 6542 6543 * config/aarch64/aarch64.c (aarch64_emit_atomic_swap): Remove. 6544 (aarch64_gen_atomic_ldop): Don't call it. 6545 * config/aarch64/atomics.md (atomic_exchange<ALLI>): 6546 Use aarch64_reg_or_zero. 6547 (aarch64_atomic_exchange<ALLI>): Likewise. 6548 (aarch64_atomic_exchange<ALLI>_lse): Remove split; remove & from 6549 operand 0; use aarch64_reg_or_zero for input; merge ... 6550 (@aarch64_atomic_swp<ALLI>): ... this and remove. 6551 6552 * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): New. 6553 (aarch64_split_compare_and_swap): Use it. 6554 (aarch64_expand_compare_and_swap): Likewise. Remove convert_modes; 6555 test oldval against the proper predicate. 6556 * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI>): 6557 Use nonmemory_operand for expected. 6558 (cas_short_expected_pred): New. 6559 (@aarch64_compare_and_swap<SHORT>): Use it; use "rn" not "rI" to match. 6560 (@aarch64_compare_and_swap<GPI>): Use "rn" not "rI" for expected. 6561 * config/aarch64/predicates.md (aarch64_plushi_immediate): New. 6562 (aarch64_plushi_operand): New. 6563 6564 * config/aarch64/aarch64.c (aarch64_expand_compare_and_swap): 6565 Force oldval into the rval register for TARGET_LSE; emit the compare 6566 during initial expansion so that it may be deleted if unused. 6567 (aarch64_gen_atomic_cas): Remove. 6568 * config/aarch64/atomics.md (@aarch64_compare_and_swap<SHORT>_lse): 6569 Change =&r to +r for operand 0; use match_dup for operand 2; 6570 remove is_weak and mod_f operands as unused. Drop the split 6571 and merge with... 6572 (@aarch64_atomic_cas<SHORT>): ... this pattern's output; remove. 6573 (@aarch64_compare_and_swap<GPI>_lse): Similarly. 6574 (@aarch64_atomic_cas<GPI>): Similarly. 6575 65762018-10-31 Richard Biener <rguenther@suse.de> 6577 6578 * tree-eh.c (replace_trapping_overflow): Simplify ABS_EXPR case 6579 using ABSU_EXPR. 6580 65812018-10-31 Sameera Deshpande <sameera.deshpande@linaro.org> 6582 6583 * config/aarch64/aarch64-cores.def (saphira): Use saphira pipeline. 6584 * config/aarch64/aarch64.md: Include saphira.md 6585 * config/aarch64/saphira.md: New file for pipeline description. 6586 65872018-10-30 Martin Sebor <msebor@redhat.com> 6588 6589 PR middle-end/87041 6590 * gimple-ssa-sprintf.c (format_directive): Use %G to include 6591 inlining context. 6592 (sprintf_dom_walker::compute_format_length): 6593 Avoid setting POSUNDER4K here. 6594 (get_destination_size): Handle null argument values. 6595 (get_user_idx_format): New function. 6596 (sprintf_dom_walker::handle_gimple_call): Handle all printf-like 6597 functions, including user-defined with attribute format printf. 6598 Use %G to include inlining context. 6599 Set POSUNDER4K here. 6600 66012018-10-30 Jan Hubicka <jh@suse.cz> 6602 6603 * params.def (lto-partitions): Bump from 32 to 128. 6604 66052018-10-30 Jan Hubicka <jh@suse.cz> 6606 6607 * tree.c 6608 (free_lang_data_d, add_tree_to_fld_list, fld_worklist_push): Move 6609 head in file. 6610 (free_lang_data_in_type): Forward declare. 6611 (fld_type_variant_equal_p): New function. 6612 (fld_type_variant): New function 6613 (fld_incomplete_types): New hash. 6614 (fld_incomplete_type_of): New function 6615 (fld_simplfied-type): New function. 6616 (free_lang_data_in_decl): Add fld parameter; simplify type of FIELD_DECL 6617 (free_lang_data): Allocate and free fld_incomplete_type; update call 6618 of free_lang_data_in_decl. 6619 66202018-10-30 Eric Botcazou <ebotcazou@adacore.com> 6621 6622 * gcov.c (output_lines): Remove duplicate line. 6623 66242018-10-30 Aaron Sawdey <acsawdey@linux.ibm.com> 6625 6626 * config/rs6000/rs6000.md (bswapdi2): Force address into register 6627 if not in indexed or indirect form. 6628 (bswapdi2_load): Change predicate to indexed_or_indirect_operand. 6629 (bswapdi2_store): Ditto. 6630 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): New 6631 helper function. 6632 * config/rs6000/rs6000-protos.h (rs6000_force_indexed_or_indirect_mem): 6633 Prototype for helper function. 6634 66352018-10-30 Martin Sebor <msebor@redhat.com> 6636 6637 * doc/extend.texi (optimize): Clarify/expand attribute documentation. 6638 (target, pragma GCC optimize, pragma GCC target): Ditto. 6639 66402018-10-30 Jonathan Wakely <jwakely@redhat.com> 6641 6642 * doc/extend.texi: Fix prototype and description of 6643 __builtin_expect_with_probability. 6644 66452018-10-30 Michael Ploujnikov <michael.ploujnikov@oracle.com> 6646 6647 * cgraph.h (clone_function_name_1): Replaced by new 6648 clone_function_name_numbered that takes name as string; for 6649 privatize_symbol_name_1 use only. 6650 (clone_function_name): Renamed to 6651 clone_function_name_numbered to be explicit about numbering. 6652 (clone_function_name): New two-argument function that does 6653 not number its output. 6654 (clone_function_name): New three-argument function that 6655 takes a number to append to its output. 6656 * cgraphclones.c (duplicate_thunk_for_node): 6657 (clone_function_name_1): Renamed. 6658 (clone_function_name_numbered): Two new functions. 6659 (clone_function_name): Improved documentation. 6660 (cgraph_node::create_virtual_clone): Use clone_function_name_numbered. 6661 * config/rs6000/rs6000.c (make_resolver_func): Ditto. 6662 * final.c (final_scan_insn_1): Use the new clone_function_name 6663 without numbering. 6664 * multiple_target.c (create_dispatcher_calls): Ditto. 6665 (create_target_clone): Ditto. 6666 * omp-expand.c (grid_expand_target_grid_body): Ditto. 6667 * omp-low.c (create_omp_child_function_name): Ditto. 6668 * omp-simd-clone.c (simd_clone_create): Ditto. 6669 * symtab.c (simd_symtab_node::noninterposable_alias): Use the 6670 new clone_function_name without numbering. 6671 66722018-10-30 Richard Earnshaw <rearnsha@arm.com> 6673 6674 * alloc-pool.h (base_pool_allocator <TBlockAllocator>::initialize): 6675 Assert that the allocation size is not zero. 6676 66772018-10-30 Richard Biener <rguenther@suse.de> 6678 6679 PR tree-optimization/87800 6680 * tree-vect-slp.c (vect_build_slp_tree_2): Reject any 6681 non-induction or reduction PHIs. 6682 66832018-10-30 Sameera Deshpande <sameera.deshpande@linaro.org> 6684 6685 * config/aarch64/falkor-tag-collision-avoidance.c 6686 (execute_tag_collision_avoidance): Call df_note_add_problem. 6687 66882018-10-30 Martin Liska <mliska@suse.cz> 6689 6690 * doc/extend.texi: Fix typo in documentation 6691 of __builtin_expect_with_probability. 6692 66932018-10-29 David Malcolm <dmalcolm@redhat.com> 6694 6695 PR c++/87721 6696 * input.c (get_substring_ranges_for_loc): Detect if 6697 linemap_resolve_location gives us a NULL map, and reject 6698 this case. 6699 67002018-10-29 Iain Buclaw <ibuclaw@gdcproject.org> 6701 6702 * config.gcc (xstormy16-*-elf): Set tm_d_file. 6703 67042018-10-29 David Malcolm <dmalcolm@redhat.com> 6705 Martin Sebor <msebor@redhat.com> 6706 Manuel Lopez-Ibanez <manu@gcc.gnu.org> 6707 6708 * doc/ux.texi (Quoting): New subsection, adapted from material at 6709 https://gcc.gnu.org/wiki/DiagnosticsGuidelines written by 6710 MartinSebor and ManuelLopezIbanez. 6711 (Fix-it hints): Note that fix-it hints shouldn't be marked for 6712 translation. 6713 67142018-10-29 Kugan Vivekanandarajah <kuganv@linaro.org> 6715 6716 PR middle-end/87469 6717 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Fix niter 6718 max value. 6719 67202018-10-29 Paul A. Clarke <pc@us.ibm.com> 6721 6722 * gcc.target/powerpc/ssse3-check.h: Remove inaccurate comment. 6723 67242018-10-29 Paul Koning <ni1d@arrl.net> 6725 6726 * doc/rtl.texi (CONST_WIDE_INT_ELT): Give correct macro name. 6727 67282018-10-29 Paul A. Clarke <pc@us.ibm.com> 6729 6730 * gcc/config/rs6000/mmintrin.h (_mm_packs_pi16, _mm_packs_pi32, 6731 _mm_packs_pu16, _mm_unpackhi_pi8, _mm_unpacklo_pi8, _mm_add_pi8, 6732 _mm_add_pi16, _mm_add_pi32, _mm_sub_pi8, _mm_sub_pi16, _mm_sub_pi32, 6733 _mm_cmpgt_pi8, _mm_cmpeq_pi16, _mm_cmpgt_pi16, _mm_cmpeq_pi32, 6734 _mm_cmpgt_pi32, _mm_adds_pi8, _mm_adds_pi16, _mm_adds_pu8, 6735 _mm_adds_pu16, _mm_subs_pi8, _mm_subs_pi16, _mm_subs_pu8, 6736 _mm_subs_pu16, _mm_madd_pi16, _mm_mulhi_pi16, _mm_mullo_pi16, 6737 _mm_sll_pi16, _mm_sra_pi16, _mm_srl_pi16, _mm_set1_pi16, _mm_set1_pi8): 6738 Change 'vector' to '__vector'. 6739 * gcc/config/rs6000/xmmintrin.h (_mm_cvtps_pi32, _mm_cvttps_pi32, 6740 _mm_cvtps_pi16, _mm_cvtps_pi8, _mm_max_pi16, _mm_max_pu8, _mm_min_pi16, 6741 _mm_min_pu8, _mm_mulhi_pu16, _mm_shuffle_pi16, _mm_avg_pu8, 6742 _mm_avg_pu16): Likewise. And, whitespace corrections. 6743 67442018-10-29 Richard Biener <rguenther@suse.de> 6745 6746 PR tree-optimization/87785 6747 * tree-vect-slp.c (vect_gather_slp_loads): Only gather 6748 internal defs. 6749 67502018-10-29 Olivier Hainque <hainque@adacore.com> 6751 6752 * VXWORKS_NET_LIBS_RTP: New macro, network part of VXWORKS_LIBS_RTP. 6753 67542018-10-29 Olivier Hainque <hainque@adacore.com> 6755 6756 * config/vxworks.h (VXWORKS_PERSONALITY): New VxWorks 6757 ports configuration macro, defaults to "gnu". 6758 (VXWORKS_OS_CPP_BUILTINS): Use it. Feed TOOL and 6759 TOOL_FAMILY instead of _VX_TOOL/_VXTOOL_FAMILY. 6760 67612018-10-29 Olivier Hainque <hainque@adacore.com> 6762 6763 * config/vxworks.h (CLEAR_INSN_CACHE): #undef before #define. 6764 67652018-10-29 Richard Biener <rguenther@suse.de> 6766 6767 PR tree-optimization/87790 6768 * tree-vect-slp.c (vect_mark_slp_stmts): Simplify. 6769 (vect_make_slp_decision): Adjust. 6770 (vect_slp_analyze_bb_1): Likewise. 6771 (vect_detect_hybrid_slp_stmts): Properly union SLP type over 6772 edges. 6773 67742018-10-29 Richard Biener <rguenther@suse.de> 6775 6776 PR tree-optimization/87785 6777 * tree-vect-slp.c (vect_build_slp_tree_2): Remove loads argument 6778 and processing. 6779 (vect_build_slp_tree): Likewise. 6780 (vect_gather_slp_loads): New function. 6781 (vect_analyze_slp_instance): Gather loads separately from the 6782 SLP tree build. 6783 67842018-10-29 Martin Liska <mliska@suse.cz> 6785 6786 * Makefile.in: Make dependency to json.o. 6787 * doc/gcov.texi: Document new JSON format, remove 6788 old intermediate format documentation. 6789 * gcov.c (struct function_info): Come up with m_name and 6790 m_demangled_name. 6791 (function_info::function_info): Initialize it. 6792 (function_info::~function_info): Release it. 6793 (main): Rename flag_intermediate_format to flag_json_format. 6794 (print_usage): Describe --json-format. 6795 (process_args): Set flag_json_format. 6796 (output_intermediate_line): Remove. 6797 (output_intermediate_json_line): Likewise. 6798 (get_gcov_intermediate_filename): Return new extension 6799 ".gcov.json.gz". 6800 (output_intermediate_file): Implement JSON emission. 6801 (output_json_intermediate_file): Implement JSON emission. 6802 (generate_results): Use ::get_name for function name. 6803 Handle JSON output file. 6804 (read_graph_file): Use ::get_name instead of cplus_demangle. 6805 (read_count_file): Likewise. 6806 (solve_flow_graph): Likewise. 6807 (add_line_counts): Likewise. 6808 (accumulate_line_counts): Use new flag_json_format. 6809 (output_function_details): Use ::get_name instead of cplus_demangle. 6810 (output_lines): Likewise. 6811 * json.cc (test_writing_literals): Add new tests. 6812 * json.h (class literal): Add new boolean constructor. 6813 68142018-10-29 Segher Boessenkool <segher@kernel.crashing.org> 6815 6816 PR rtl-optimization/87701 6817 PR rtl-optimization/87780 6818 * combine.c (make_more_copies): Rewrite. 6819 68202018-10-28 Kugan Vivekanandarajah <kuganv@linaro.org> 6821 6822 * doc/generic.texi (ABSU_EXPR): Document. 6823 * match.pd (absu(x)*absu(x) -> x*x): Handle. 6824 (absu(absu(X)) -> absu(X)): Likewise. 6825 (absu(-X) -> absu(X)): Likewise. 6826 (absu(X) where X is nonnegative -> X): Likewise. 6827 68282018-10-28 Iain Buclaw <ibuclaw@gdcproject.org> 6829 6830 * Makefile.in (tm_d_file_list, tm_d_include_list): New variables. 6831 (TM_D_H, D_TARGET_DEF, D_TARGET_H, D_TARGET_OBJS): New variables. 6832 (tm_d.h, cs-tm_d.h, default-d.o): New rules. 6833 (d/d-target-hooks-def.h, s-d-target-hooks-def-h): New rules. 6834 (s-tm-texi): Also check timestamp on d-target.def. 6835 (generated_files): Add TM_D_H and d-target-hooks-def.h. 6836 (build/genhooks.o): Also depend on D_TARGET_DEF. 6837 * config.gcc (tm_d_file, d_target_objs, target_has_targetdm): New 6838 variables. 6839 * config/aarch64/aarch64-d.c: New file. 6840 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_D_CRITSEC_SIZE): 6841 Define. 6842 * config/aarch64/aarch64-protos.h (aarch64_d_target_versions): New 6843 prototype. 6844 * config/aarch64/aarch64.h (TARGET_D_CPU_VERSIONS): Define. 6845 * config/aarch64/t-aarch64 (aarch64-d.o): New rule. 6846 * config/arm/arm-d.c: New file. 6847 * config/arm/arm-protos.h (arm_d_target_versions): New prototype. 6848 * config/arm/arm.h (TARGET_D_CPU_VERSIONS): Define. 6849 * config/arm/linux-eabi.h (EXTRA_TARGET_D_OS_VERSIONS): Define. 6850 * config/arm/t-arm (arm-d.o): New rule. 6851 * config/default-d.c: New file. 6852 * config/glibc-d.c: New file. 6853 * config/gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6854 * config/i386/i386-d.c: New file. 6855 * config/i386/i386-protos.h (ix86_d_target_versions): New prototype. 6856 * config/i386/i386.h (TARGET_D_CPU_VERSIONS): Define. 6857 * config/i386/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. 6858 (GNU_USER_TARGET_D_CRITSEC_SIZE): Define. 6859 * config/i386/t-i386 (i386-d.o): New rule. 6860 * config/kfreebsd-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6861 * config/kopensolaris-gnu.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6862 * config/linux-android.h (ANDROID_TARGET_D_OS_VERSIONS): Define. 6863 * config/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6864 * config/mips/linux-common.h (EXTRA_TARGET_D_OS_VERSIONS): Define. 6865 * config/mips/mips-d.c: New file. 6866 * config/mips/mips-protos.h (mips_d_target_versions): New prototype. 6867 * config/mips/mips.h (TARGET_D_CPU_VERSIONS): Define. 6868 * config/mips/t-mips (mips-d.o): New rule. 6869 * config/powerpcspe/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6870 * config/powerpcspe/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6871 * config/powerpcspe/powerpcspe-d.c: New file. 6872 * config/powerpcspe/powerpcspe-protos.h (rs6000_d_target_versions): 6873 New prototype. 6874 * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): 6875 Support GNU D by using 0 as the language type. 6876 * config/powerpcspe/powerpcspe.h (TARGET_D_CPU_VERSIONS): Define. 6877 * config/powerpcspe/t-powerpcspe (powerpcspe-d.o): New rule. 6878 * config/riscv/riscv-d.c: New file. 6879 * config/riscv/riscv-protos.h (riscv_d_target_versions): New 6880 prototype. 6881 * config/riscv/riscv.h (TARGET_D_CPU_VERSIONS): Define. 6882 * config/riscv/t-riscv (riscv-d.o): New rule. 6883 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6884 * config/rs6000/linux64.h (GNU_USER_TARGET_D_OS_VERSIONS): Define. 6885 * config/rs6000/rs6000-d.c: New file. 6886 * config/rs6000/rs6000-protos.h (rs6000_d_target_versions): New 6887 prototype. 6888 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): 6889 Support GNU D by using 0 as the language type. 6890 * config/rs6000/rs6000.h (TARGET_D_CPU_VERSIONS): Define. 6891 * config/rs6000/t-rs6000 (rs6000-d.o): New rule. 6892 * config/s390/s390-d.c: New file. 6893 * config/s390/s390-protos.h (s390_d_target_versions): New prototype. 6894 * config/s390/s390.h (TARGET_D_CPU_VERSIONS): Define. 6895 * config/s390/t-s390 (s390-d.o): New rule. 6896 * config/sparc/sparc-d.c: New file. 6897 * config/sparc/sparc-protos.h (sparc_d_target_versions): New 6898 prototype. 6899 * config/sparc/sparc.h (TARGET_D_CPU_VERSIONS): Define. 6900 * config/sparc/t-sparc (sparc-d.o): New rule. 6901 * config/t-glibc (glibc-d.o): New rule. 6902 * configure: Regenerated. 6903 * configure.ac (tm_d_file): New variable. 6904 (tm_d_file_list, tm_d_include_list, d_target_objs): Add substitutes. 6905 * doc/contrib.texi (Contributors): Add self for the D frontend. 6906 * doc/frontends.texi (G++ and GCC): Mention D as a supported language. 6907 * doc/install.texi (Configuration): Mention libphobos as an option for 6908 --enable-shared. Mention d as an option for --enable-languages. 6909 (Testing): Mention check-d as a target. 6910 * doc/invoke.texi (Overall Options): Mention .d, .dd, and .di as file 6911 name suffixes. Mention d as a -x option. 6912 * doc/sourcebuild.texi (Top Level): Mention libphobos. 6913 * doc/standards.texi (Standards): Add section on D language. 6914 * doc/tm.texi: Regenerated. 6915 * doc/tm.texi.in: Add @node for D language and ABI, and @hook for 6916 TARGET_CPU_VERSIONS, TARGET_D_OS_VERSIONS, and TARGET_D_CRITSEC_SIZE. 6917 * dwarf2out.c (is_dlang): New function. 6918 (gen_compile_unit_die): Use DW_LANG_D for D. 6919 (declare_in_namespace): Return module die for D, instead of adding 6920 extra declarations into the namespace. 6921 (gen_namespace_die): Generate DW_TAG_module for D. 6922 (gen_decl_die): Handle CONST_DECLSs for D. 6923 (dwarf2out_decl): Likewise. 6924 (prune_unused_types_walk_local_classes): Handle DW_tag_interface_type. 6925 (prune_unused_types_walk): Handle DW_tag_interface_type same as other 6926 kinds of aggregates. 6927 * gcc.c (default_compilers): Add entries for .d, .dd and .di. 6928 * genhooks.c: Include d/d-target.def. 6929 69302018-10-28 Iain Sandoe <iain@sandoe.co.uk> 6931 6932 PR target/85669 6933 * config/rs6000/darwin.h (STACK_BOUNDARY): New. 6934 (RS6000_STARTING_FRAME_OFFSET): Adjust to preserve 16byte alignment. 6935 (STACK_DYNAMIC_OFFSET): Likewise. 6936 69372018-10-27 Sandra Loosemore <sandra@codesourcery.com> 6938 6939 PR target/80024 6940 * config/nios2/nios2.c (nios2_valid_target_attribute_rec): Fix 6941 error message. 6942 69432018-10-26 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> 6944 6945 * doc/extend.texi (PowerPC builtins): Fix __builtin_unpack_ibm128 6946 return type and other typos. 6947 69482018-10-26 Aaron Sawdey <acsawdey@linux.ibm.com> 6949 6950 * config/rs6000/rs6000-string.c (expand_strncmp_gpr_sequence): Change to 6951 a shorter sequence with fewer branches. 6952 (emit_final_str_compare_gpr): Ditto. 6953 69542018-10-26 Paul A. Clarke <pc@us.ibm.com> 6955 6956 * config/rs6000/tmmintrin.h: New file. 6957 * config.gcc (powerpc*-*-*): Add tmmintrin.h to extra_headers. 6958 69592018-10-26 Paul A. Clarke <pc@us.ibm.com> 6960 6961 * config/rs6000/mmintrin.h: Enable 32bit compilation. 6962 * config/rs6000/xmmintrin.h: Likewise. 6963 69642018-10-26 Paul A. Clarke <pc@us.ibm.com> 6965 6966 * config/rs6000/xmmintrin.h (_mm_extract_pi16): Fix for big-endian. 6967 69682018-10-26 Richard Biener <rguenther@suse.de> 6969 6970 * tree-vect-slp.c (vect_mark_slp_stmts): Add visited hash_set 6971 and wrapper. 6972 (vect_mark_slp_stmts_relevant): Likewise. 6973 (vect_detect_hybrid_slp_stmts): Likewise. 6974 (vect_bb_slp_scalar_cost): Likewise. 6975 (vect_remove_slp_scalar_calls): Likewise. 6976 69772018-10-26 Jan Hubicka <jh@suse.cz> 6978 6979 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix recursion. 6980 (warn_types_mismatch): Fix walk of DECL_NAME. 6981 (odr_types_equivalent_p): Fix overactive assert. 6982 69832018-10-26 Richard Biener <rguenther@suse.de> 6984 6985 PR tree-optimization/87105 6986 * tree-vectorizer.h (_slp_tree::refcnt): New member. 6987 * tree-vect-slp.c (vect_free_slp_tree): Decrement and honor 6988 refcnt. 6989 (vect_create_new_slp_node): Initialize refcnt to one. 6990 (bst_traits): Move. 6991 (scalar_stmts_set_t, bst_fail): Remove. 6992 (vect_build_slp_tree_2): Add bst_map argument and adjust calls. 6993 (vect_build_slp_tree): Add bst_map argument and lookup 6994 already created SLP nodes. 6995 (vect_print_slp_tree): Handle a SLP graph, print SLP node 6996 addresses. 6997 (vect_slp_rearrange_stmts): Handle a SLP graph. 6998 (vect_analyze_slp_instance): Adjust and free SLP nodes from 6999 the CSE map. Fix indenting. 7000 (vect_schedule_slp_instance): Add short-cut. 7001 70022018-10-26 Martin Liska <mliska@suse.cz> 7003 7004 PR testsuite/86158 7005 * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Hash with 7006 addr_expr and not with pointers. 7007 70082018-10-26 Jan Hubicka <jh@suse.cz> 7009 7010 * tree.c (free_lang_data_in_type): Only check main variants. 7011 * ipa-devirt.c (warn_odr): Make static. 7012 (types_same_for_odr): Drop strict variant. 7013 (types_odr_comparable): Likewise. 7014 (odr_or_derived_type_p): Look for main variants. 7015 (odr_name_hasher::equal): Cleanup comment. 7016 (odr_subtypes_equivalent): Add warn and warned arguments; check main 7017 variants. 7018 (type_variants_equivalent_p): break out from ... 7019 (odr_types_equivalent): ... here; go for main variants where needed. 7020 (warn_odr): ... here; turn static. 7021 (warn_types_mismatch): Compare mangled names of main variants. 7022 * ipa-utils.h (types_odr_comparable): Drop strict parameter. 7023 (type_with_linkage_p): Sanity check that we look at main variant. 7024 * lto.c (lto_read_decls): Only consider main variant to be ODR type. 7025 * tree.h (types_same_for_odr): Drop strict argument. 7026 70272018-10-26 Richard Biener <rguenther@suse.de> 7028 7029 PR tree-optimization/87746 7030 * tree-vect-data-refs.c (vect_update_misalignment_for_peel): 7031 Simplify and fix WRT strided store groups with size not 7032 equal to step in element count. 7033 (vect_analyze_group_access_1): Dump the whole group. 7034 70352018-10-25 Carl Love <cel@us.ibm.com> 7036 7037 * config/rs6000/rs6000-c.c (P9V_BUILTIN_VEC_VSCEDPGT, 7038 P9V_BUILTIN_VEC_VSCEDPLT, P9V_BUILTIN_VEC_VSCEDPEQ, 7039 P9V_BUILTIN_VEC_VSCEDPUO): Rename base overloaded name. Add quad 7040 precicion entry for each overloaded builtin. 7041 * config/rs6000/rs6000-builtin.def (VSCEDPGT, VSCEDPLT, VSCEDPEQ, 7042 VSCEDPUO): Rename overloaded name. 7043 (VSCEDPGT, VSCEQPGT, VSCEDPLT, VSCEQPLT, VSCEDPEQ, VSCEQPEQ, 7044 VSCEDPUO, VSCEQPUO): Add defitions for overloaded builtins. 7045 * config/rs6000/vsx.md (xscmpexpqp_<code>_<mode>): Add 7046 define_expand for xscmpexqp instruction. 7047 (*xscmpexpqp): Add define_insn for the xscmpexqp instruction. 7048 70492018-10-25 Bill Schmidt <wschmidt@linux.ibm.com> 7050 Jinsong Ji <jji@us.ibm.com> 7051 7052 * config/rs6000/emmintrin.h (_mm_slli_epi16): Replace deprecated 7053 function with vec_sl. 7054 (_mm_slli_epi32): Likewise. 7055 (_mm_slli_epi64): Likewise. 7056 (_mm_srai_epi16): Replace deprecated function with vec_sra. 7057 (_mm_srai_epi32): Likewise. 7058 (_mm_srli_epi16): Replace deprecated function with vec_sr. 7059 (_mm_srli_epi32): Likewise. 7060 (_mm_srli_epi64): Likewise. 7061 (_mm_sll_epi16): Replace deprecated function with vec_sl. 7062 (_mm_sll_epi32): Likewise. 7063 (_mm_sll_epi64): Likewise. 7064 (_mm_sra_epi16): Replace deprecated function with vec_sra. 7065 (_mm_sra_epi32): Likewise. 7066 (_mm_srl_epi16): Replace deprecated function with vec_sr. 7067 (_mm_srl_epi32): Likewise. 7068 (_mm_srl_epi64): Likewise. 7069 70702018-10-25 Bill Schmidt <wschmidt@linux.ibm.com> 7071 Jinsong Ji <jji@us.ibm.com> 7072 7073 * gcc/config/rs6000/emmintrin.h (_mm_sll_epi16): Replace 7074 comparison operators with vec_cmp* for compatibility due to 7075 unfortunate history; clean up formatting and use types more 7076 appropriately. 7077 (_mm_sll_epi32): Likewise. 7078 (_mm_sll_epi64): Likewise. 7079 (_mm_srl_epi16): Likewise. 7080 (_mm_srl_epi32): Likewise. 7081 (_mm_srl_epi64): Likewise. 7082 70832018-10-25 Bill Schmidt <wschmidt@linux.ibm.com> 7084 Jinsong Ji <jji@us.ibm.com> 7085 7086 * config/rs6000/emmintrin.h (_mm_sll_epi64): Remove wrong cast. 7087 * config/rs6000/xmmintrin.h (_mm_min_ps): Change m's type to 7088 __vector __bool int. Use vec_cmpgt in preference to deprecated 7089 function vec_vcmpgtfp. 7090 (_mm_max_ps): Likewise. 7091 70922018-10-25 Jeff Law <law@redhat.com> 7093 7094 * config/rl78/rl78.c (insn_ok_now): Always re-recognize the insn 7095 if returning false. 7096 70972018-10-25 Martin Sebor <msebor@redhat.com> 7098 7099 * doc/extend.texi (aligned): Expand attribute description. 7100 (Alignment): Rename section. Discuss function arguments. 7101 71022018-10-25 Jan Hubicka <jh@suse.cz> 7103 7104 * ipa-devirt.c (main_odr_variant): Remove. 7105 (hash_odr_name, types_same_for_odr, types_odr_comparable, 7106 odr_name_hasher::equal, odr_subtypes_equivalent_p): 7107 Drop use of main_odr_variant. 7108 (add_type_duplicate): Silence confused warnings on integer types. 7109 (get_odr_type): Always look for main variant. 7110 (register_odr_type): Simplify. 7111 71122018-10-25 Richard Biener <rguenther@suse.de> 7113 7114 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): 7115 Initialize ng to silence error with release checking bootstrap. 7116 71172018-10-25 Richard Biener <rguenther@suse.de> 7118 7119 * tree-if-conv.c: Include tree-ssa-sccvn.h. 7120 (tree_if_conversion): Run CSE on the if-converted loop body. 7121 71222018-10-25 Ilya Leoshkevich <iii@linux.ibm.com> 7123 7124 * config/s390/constraints.md (ZL): New constraint. 7125 * config/s390/s390.c (legitimate_pic_operand_p): Accept LARL 7126 operands. 7127 * config/s390/s390.md (movdi_larl): Remove. 7128 (movdi_64): Add the LARL alternative. 7129 71302018-10-25 Ilya Leoshkevich <iii@linux.ibm.com> 7131 7132 PR bootstrap/87747 7133 * rtl.c (RTX_CODE_HWINT_P_1): New helper macro. 7134 (RTX_CODE_HWINT_P): New macro. 7135 (rtx_code_size): Use RTX_CODE_HWINT_P (). 7136 71372018-10-25 Jan Hubicka <jh@suse.cz> 7138 7139 * ipa-devirt.c (odr_types_equivalent_p): Do not ICE if one of types 7140 is anonymous. 7141 71422018-10-25 Richard Biener <rguenther@suse.de> 7143 7144 PR tree-optimization/87665 7145 PR tree-optimization/87745 7146 * tree-vectorizer.h (get_earlier_stmt): Remove. 7147 (get_later_stmt): Pick up UID from the original non-pattern stmt. 7148 71492018-10-25 Sam Tebbs <sam.tebbs@arm.com> 7150 7151 * options.texi (Deprecated): Move list to Var section. 7152 71532018-10-24 Bill Schmidt <wschmidt@linux.ibm.com> 7154 Jinsong Ji <jji@us.ibm.com> 7155 7156 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Change deprecated 7157 __vector long to __vector long long. 7158 (_mm_cvtpd_ps): Likewise. 7159 (_mm_cvttpd_epi32): Likewise. 7160 (_mm_cvtpi32_pd): Likewise. 7161 (_mm_unpackhi_epi64): Likewise. 7162 (_mm_unpacklo_epi64): Likewise. 7163 71642018-10-24 Segher Boessenkool <segher@kernel.crashing.org> 7165 7166 PR rtl-optimization/87720 7167 * combine.c (make_more_copies): Skip if the dest is pc_rtx. 7168 71692018-10-24 Alexandre Oliva <aoliva@redhat.com> 7170 7171 * gimple-ssa-isolate-paths.c 7172 (find_implicit_erroneous_behavior): Do not change code if the 7173 pass is running for warnings only. 7174 (find_explicit_erroneous_behavior): Likewise. 7175 71762018-10-24 Michael Meissner <meissner@linux.ibm.com> 7177 7178 * config/rs6000/rs6000.c (TARGET_MANGLE_DECL_ASSEMBLER_NAME): 7179 Define as rs6000_mangle_decl_assembler_name. 7180 (rs6000_mangle_decl_assembler_name): If the user switched from IBM 7181 long double to IEEE long double, switch the names of the long 7182 double built-in functions to be <func>f128 instead of <func>l. 7183 71842018-10-24 Martin Sebor <msebor@redhat.com> 7185 7186 * doc/extend.texi (nonnull): List no-argument form. Reference 7187 -fno-delete-null-pointer-checks and -fisolate-erroneous-paths-attribute. 7188 71892018-10-24 Richard Biener <rguenther@suse.de> 7190 7191 * tree-ssa-sccvn.c (do_rpo_vn): Free rpo_state. 7192 71932018-10-24 Martin Liska <mliska@suse.cz> 7194 7195 PR tree-optimization/84436 7196 * tree-switch-conversion.c (switch_conversion::contains_same_values_p): 7197 Remove. 7198 (switch_conversion::contains_linear_function_p): New. 7199 (switch_conversion::build_one_array): Support linear 7200 transformation on input. 7201 * tree-switch-conversion.h (struct switch_conversion): Add 7202 contains_linear_function_p declaration. 7203 72042018-10-24 Richard Biener <rguenther@suse.de> 7205 7206 * varasm.c (const_hash_1): Return hash of ADDR_EXPR 7207 if its argument is CONSTANT_CLASS_P. 7208 72092018-10-11 Jan Hubicka <hubicka@ucw.cz> 7210 7211 * ipa-utils.h (type_with_linkage_p): No longer check for TYPE_STUB_DECL; 7212 it is wrong for forward declarations. 7213 72142018-10-24 Ilya Leoshkevich <iii@linux.ibm.com> 7215 7216 * config/s390/s390.c (s390_check_qrst_address): Add the missing 7217 SYMBOL_REF_P () check. 7218 72192018-10-24 Richard Biener <rguenther@suse.de> 7220 7221 PR tree-optimization/87105 7222 * tree-vect-data-refs.c (vect_analyze_group_access_1): Adjust 7223 dump classification. 7224 (vect_analyze_data_ref_accesses): Handle duplicate loads and 7225 stores by splitting the affected group after the fact. 7226 * tree-vect-slp.c (vect_build_slp_tree_2): Dump when we 7227 fail the SLP build because of size constraints. 7228 72292018-10-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 7230 7231 * configure.ac (gcc_cv_ld_aligned_shf_merge): New test. 7232 * configure: Regenerate. 7233 * config.in: Regenerate. 7234 * varasm.c (mergeable_string_section): Use readonly_data_section 7235 if linker doesn't support SHF_MERGE with alignment > 8. 7236 (mergeable_constant_section): Likewise. 7237 72382018-10-24 Richard Biener <rguenther@suse.de> 7239 7240 PR tree-optimization/84013 7241 * tree-ssa-structalias.c (struct msdi_data): New struct for 7242 marshalling data to walk_stmt_load_store_ops. 7243 (maybe_set_dependence_info): Refactor as callback for 7244 walk_stmt_load_store_ops. 7245 (compute_dependence_clique): Set restrict info on all stmt kinds. 7246 72472018-10-24 Martin Liska <mliska@suse.cz> 7248 7249 * cgraph.c (cgraph_node::dump): 7250 Remove reduntant dumps and make tp_first_run dump more compact. 7251 72522018-10-24 Richard Biener <rguenther@suse.de> 7253 7254 PR tree-optimization/87665 7255 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Adjust 7256 to reflect reality. 7257 72582018-10-12 Jeff Law <law@redhat.com> 7259 7260 * config/h8300/h8300.c (h8300_expand_prologue): Fix stm generation 7261 for H8/S. 7262 72632018-10-23 Richard Biener <rguenther@suse.de> 7264 7265 * tree-vrp.c (add_assert_info): Guard dump_printf with 7266 dump_enabled_p. 7267 * gimple-ssa-evrp-analyze.c 7268 (evrp_range_analyzer::record_ranges_from_incoming_edge): 7269 Use value_range::ignore_equivs_equal_p. 7270 72712018-10-23 Richard Biener <rguenther@suse.de> 7272 7273 PR tree-optimization/87105 7274 PR tree-optimization/87608 7275 * passes.def (pass_all_early_optimizations): Add early phi-opt 7276 after dce. 7277 * tree-ssa-phiopt.c (value_replacement): Ignore NOPs and predicts in 7278 addition to debug stmts. 7279 (tree_ssa_phiopt_worker): Add early_p argument, do only min/max 7280 and abs replacement early. 7281 * tree-cfg.c (gimple_empty_block_p): Likewise. 7282 72832018-10-23 Richard Earnshaw <rearnsha@arm.com> 7284 7285 PR target/86383 7286 * config.gcc (arm*-*-netbsdelf*): Default to StrongARM if no CPU 7287 specified to configure. 7288 (arm*-*-*): Use ARM7TDMI as the target CPU if no default provided. 7289 72902018-10-23 Richard Biener <rguenther@suse.de> 7291 7292 PR tree-optimization/87700 7293 * tree-ssa-copy.c (set_copy_of_val): Fix change detection logic. 7294 72952018-10-23 Jakub Jelinek <jakub@redhat.com> 7296 7297 PR target/87674 7298 * config/i386/avx512vlintrin.h (_mm_mask_mullo_epi32): Change type of 7299 second argument from __mmask16 to __mmask8. 7300 * config/i386/avx512vlbwintrin.h (_mm_mask_packus_epi32, 7301 _mm_mask_packs_epi32): Likewise. 7302 * config/i386/avx512pfintrin.h (_mm512_mask_prefetch_i64scatter_ps): 7303 Likewise. 7304 (_mm512_mask_prefetch_i64scatter_pd): Likewise. Formatting fix. 7305 73062018-10-23 Richard Biener <rguenther@suse.de> 7307 7308 * tree-vect-stmts.c (vect_analyze_stmt): Fix typo in comment. 7309 73102018-10-23 Richard Biener <rguenther@suse.de> 7311 7312 PR tree-optimization/86144 7313 * tree-vect-stmts.c (vect_analyze_stmt): Prefer -mveclibabi 7314 over simd attribute. 7315 73162018-10-23 Richard Biener <rguenther@suse.de> 7317 7318 PR tree-optimization/87693 7319 * tree-ssa-threadedge.c (thread_around_empty_blocks): Handle 7320 the case we do not find the taken edge. 7321 73222018-10-22 Bill Schmidt <wschmidt@linux.ibm.com> 7323 Jinsong Ji <jji@us.ibm.com> 7324 7325 * config/rs6000/emmintrin.h (_MM_SHUFFLE2): Comment cleanup. 7326 (_mm_store_pd): Use unaligned vector type for pointer cast. 7327 (_mm_maskmoveu_si128): Likewise. 7328 * config/rs6000/xmmintrin.h (__m128_u): New typedef. 7329 (_mm_store_ps): Use unaligned vector type for pointer cast. 7330 73312018-10-22 Paul Koning <ni1d@arrl.net> 7332 7333 * symtab.c (symtab_node::increase_alignment): Correct max 7334 alignment check. 7335 73362018-10-22 Yury Gribov <tetra2005@gmail.com> 7337 7338 PR tree-optimization/87633 7339 * match.pd: Do not generate unordered integer comparisons. 7340 73412018-10-22 Segher Boessenkool <segher@kernel.crashing.org> 7342 7343 PR rtl-optimization/87600 7344 * combine.c: Add include of expr.h. 7345 (cant_combine_insn_p): Do not combine moves from any hard non-fixed 7346 register to a pseudo. 7347 (make_more_copies): New function, add a copy to a new pseudo after 7348 the moves from hard registers into pseudos. 7349 (rest_of_handle_combine): Declare rebuild_jump_labels_after_combine 7350 later. Call make_more_copies. 7351 73522018-10-22 Andrew Stubbs <ams@codesourcery.com> 7353 7354 * lra-constraints.c (process_alt_operands): New local array, 7355 matching_early_clobber. Check matching_early_clobber before 7356 decrementing reject, and set matching_early_clobber after. 7357 73582018-10-22 Segher Boessenkool <segher@kernel.crashing.org> 7359 7360 PR target/87598 7361 * config/rs6000/rs6000.c (print_operand_address): For unexpected RTL 7362 call output_addr_const and hope for the best. 7363 73642018-10-22 Richard Biener <rguenther@suse.de> 7365 7366 * gimple-ssa-evrp-analyze.c 7367 (evrp_range_analyzer::record_ranges_from_incoming_edge): Be 7368 smarter about what ranges to use. 7369 * tree-vrp.c (add_assert_info): Dump here. 7370 (register_edge_assert_for_2): Instead of here at multiple but 7371 not all places. 7372 7373 * gcc.dg/tree-ssa/evrp12.c: New testcase. 7374 * gcc.dg/predict-6.c: Adjust. 7375 * gcc.dg/tree-ssa/vrp33.c: Disable EVRP. 7376 * gcc.dg/tree-ssa/vrp02.c: Likewise. 7377 * gcc.dg/tree-ssa/cunroll-9.c: Likewise. 7378 73792018-10-22 Steven Bosscher <steven@gcc.gnu.org> 7380 Richard Biener <rguenther@suse.de> 7381 7382 * bitmap.h: Update data structure documentation, including a 7383 description of bitmap views as either linked-lists or splay trees. 7384 (struct bitmap_element_def): Update comments for splay tree bitmaps. 7385 (struct bitmap_head_def): Likewise. 7386 (bitmap_list_view, bitmap_tree_view): New prototypes. 7387 (bitmap_initialize_stat): Initialize a bitmap_head's indx and 7388 tree_form fields. 7389 (bmp_iter_set_init): Assert the iterated bitmaps are in list form. 7390 (bmp_iter_and_init, bmp_iter_and_compl_init): Likewise. 7391 * bitmap.c (bitmap_elem_to_freelist): Unregister overhead of a 7392 released bitmap element here. 7393 (bitmap_element_free): Remove. 7394 (bitmap_elt_clear_from): Work on splay tree bitmaps. 7395 (bitmap_list_link_element): Renamed from bitmap_element_link. Move 7396 this function similar ones such that linked-list bitmap implementation 7397 functions are grouped. 7398 (bitmap_list_unlink_element): Renamed from bitmap_element_unlink, 7399 and moved for grouping. 7400 (bitmap_list_insert_element_after): Renamed from 7401 bitmap_elt_insert_after, and moved for grouping. 7402 (bitmap_list_find_element): New function spliced from bitmap_find_bit. 7403 (bitmap_tree_link_left, bitmap_tree_link_right, 7404 bitmap_tree_rotate_left, bitmap_tree_rotate_right, bitmap_tree_splay, 7405 bitmap_tree_link_element, bitmap_tree_unlink_element, 7406 bitmap_tree_find_element): New functions for splay-tree bitmap 7407 implementation. 7408 (bitmap_element_link, bitmap_element_unlink, bitmap_elt_insert_after): 7409 Renamed and moved, see above entries. 7410 (bitmap_tree_listify_from): New function to convert part of a splay 7411 tree bitmap to a linked-list bitmap. 7412 (bitmap_list_view): Convert a splay tree bitmap to linked-list form. 7413 (bitmap_tree_view): Convert a linked-list bitmap to splay tree form. 7414 (bitmap_find_bit): Remove. 7415 (bitmap_clear, bitmap_clear_bit, bitmap_set_bit, 7416 bitmap_single_bit_set_p, bitmap_first_set_bit, bitmap_last_set_bit): 7417 Handle splay tree bitmaps. 7418 (bitmap_copy, bitmap_count_bits, bitmap_and, bitmap_and_into, 7419 bitmap_elt_copy, bitmap_and_compl, bitmap_and_compl_into, 7420 bitmap_compl_and_into, bitmap_elt_ior, bitmap_ior, bitmap_ior_into, 7421 bitmap_xor, bitmap_xor_into, bitmap_equal_p, bitmap_intersect_p, 7422 bitmap_intersect_compl_p, bitmap_ior_and_compl, 7423 bitmap_ior_and_compl_into, bitmap_set_range, bitmap_clear_range, 7424 bitmap_hash): Reject trying to act on splay tree bitmaps. Make 7425 corresponding changes to use linked-list specific bitmap_element 7426 manipulation functions as applicable for efficiency. 7427 (bitmap_tree_to_vec): New function. 7428 (debug_bitmap_elt_file): New function split out from ... 7429 (debug_bitmap_file): ... here. Handle splay tree bitmaps. 7430 (bitmap_print): Likewise. 7431 7432 PR tree-optimization/63155 7433 * tree-ssa-propagate.c (ssa_prop_init): Use tree-view for the 7434 SSA edge worklists. 7435 * tree-ssa-coalesce.c (coalesce_ssa_name): Populate used_in_copies 7436 in tree-view. 7437 74382018-10-22 Martin Liska <mliska@suse.cz> 7439 7440 PR tree-optimization/87686 7441 Revert 7442 2018-08-29 Martin Liska <mliska@suse.cz> 7443 7444 * tree-switch-conversion.c (switch_conversion::expand): 7445 Strenghten assumption about gswitch statements. 7446 74472018-10-22 Martin Liska <mliska@suse.cz> 7448 7449 * ipa-icf.c (sem_item::compare_attributes): Remove. 7450 (sem_item::compare_referenced_symbol_properties): Use 7451 attribute_list_equal instead. 7452 (sem_function::equals_wpa): Likewise. 7453 * ipa-icf.h: Remove compare_attributes. 7454 74552018-10-22 Richard Biener <rguenther@suse.de> 7456 7457 PR middle-end/87682 7458 * mem-stats.h (mem_usage::operator==): Fix pasto. 7459 74602018-10-22 Richard Biener <rguenther@suse.de> 7461 7462 PR tree-optimization/87640 7463 * tree-vrp.c (set_value_range_with_overflow): Decompose 7464 incomplete result. 7465 (extract_range_from_binary_expr_1): Adjust. 7466 74672018-10-22 Martin Jambor <mjambor@suse.cz> 7468 7469 * tree-eh.h (stmt_could_throw_p): Add function parameter. 7470 (stmt_can_throw_external): Likewise. 7471 (stmt_can_throw_internal): Likewise. 7472 * tree-eh.c (lower_eh_constructs_2): Pass cfun to stmt_could_throw_p. 7473 (lower_eh_constructs_2): Likewise. 7474 (stmt_could_throw_p): Add fun parameter, use it instead of cfun. 7475 (stmt_can_throw_external): Likewise. 7476 (stmt_can_throw_internal): Likewise. 7477 (maybe_clean_eh_stmt_fn): Pass cfun to stmt_could_throw_p. 7478 (maybe_clean_or_replace_eh_stmt): Pass cfun to stmt_could_throw_p. 7479 (maybe_duplicate_eh_stmt_fn): Pass new_fun to stmt_could_throw_p. 7480 (maybe_duplicate_eh_stmt): Pass cfun to stmt_could_throw_p. 7481 (pass_lower_eh_dispatch::execute): Pass cfun to 7482 stmt_can_throw_external. 7483 (cleanup_empty_eh): Likewise. 7484 (verify_eh_edges): Pass cfun to stmt_could_throw_p. 7485 * cgraph.c (cgraph_edge::set_call_stmt): Pass a function to 7486 stmt_can_throw_external instead of pushing it to cfun. 7487 (symbol_table::create_edge): Likewise. 7488 * gimple-fold.c (fold_builtin_atomic_compare_exchange): Pass cfun to 7489 stmt_can_throw_internal. 7490 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Pass cfun 7491 to stmt_could_throw_p. 7492 * gimple-ssa-store-merging.c (handled_load): Pass cfun to 7493 stmt_can_throw_internal. 7494 (pass_store_merging::execute): Likewise. 7495 * gimple-ssa-strength-reduction.c 7496 (find_candidates_dom_walker::before_dom_children): Pass cfun to 7497 stmt_could_throw_p. 7498 * gimplify-me.c (gimple_regimplify_operands): Pass cfun to 7499 stmt_can_throw_internal. 7500 * ipa-pure-const.c (check_call): Pass cfun to stmt_could_throw_p and 7501 to stmt_can_throw_external. 7502 (check_stmt): Pass cfun to stmt_could_throw_p. 7503 (check_stmt): Pass cfun to stmt_can_throw_external. 7504 (pass_nothrow::execute): Likewise. 7505 * trans-mem.c (expand_call_tm): Pass cfun to stmt_can_throw_internal. 7506 * tree-cfg.c (is_ctrl_altering_stmt): Pass cfun to 7507 stmt_can_throw_internal. 7508 (verify_gimple_in_cfg): Pass cfun to stmt_could_throw_p. 7509 (stmt_can_terminate_bb_p): Pass cfun to stmt_can_throw_external. 7510 (gimple_purge_dead_eh_edges): Pass cfun to stmt_can_throw_internal. 7511 * tree-complex.c (expand_complex_libcall): Pass cfun to 7512 stmt_could_throw_p and to stmt_can_throw_internal. 7513 (expand_complex_multiplication): Pass cfun to stmt_can_throw_internal. 7514 * tree-inline.c (copy_edges_for_bb): Likewise. 7515 (maybe_move_debug_stmts_to_successors): Likewise. 7516 * tree-outof-ssa.c (ssa_is_replaceable_p): Pass cfun to 7517 stmt_could_throw_p. 7518 * tree-parloops.c (oacc_entry_exit_ok_1): Likewise. 7519 * tree-sra.c (scan_function): Pass cfun to stmt_can_throw_external. 7520 * tree-ssa-alias.c (stmt_kills_ref_p): Pass cfun to 7521 stmt_can_throw_internal. 7522 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. 7523 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Pass cfun to 7524 stmt_could_throw_p. 7525 (mark_aliased_reaching_defs_necessary_1): Pass cfun to 7526 stmt_can_throw_internal. 7527 * tree-ssa-forwprop.c (pass_forwprop::execute): Likewise. 7528 * tree-ssa-loop-im.c (movement_possibility): Pass cfun to 7529 stmt_could_throw_p. 7530 * tree-ssa-loop-ivopts.c (find_givs_in_stmt_scev): Likewise. 7531 (add_autoinc_candidates): Pass cfun to stmt_can_throw_internal. 7532 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. 7533 (convert_mult_to_fma_1): Likewise. 7534 (convert_to_divmod): Likewise. 7535 * tree-ssa-phiprop.c (propagate_with_phi): Likewise. 7536 * tree-ssa-pre.c (compute_avail): Pass cfun to stmt_could_throw_p. 7537 * tree-ssa-propagate.c 7538 (substitute_and_fold_dom_walker::before_dom_children): Likewise. 7539 * tree-ssa-reassoc.c (suitable_cond_bb): Likewise. 7540 (maybe_optimize_range_tests): Likewise. 7541 (linearize_expr_tree): Likewise. 7542 (reassociate_bb): Likewise. 7543 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. 7544 * tree-ssa-scopedtables.c (hashable_expr_equal_p): Likewise. 7545 * tree-ssa-strlen.c (adjust_last_stmt): Likewise. 7546 (handle_char_store): Likewise. 7547 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Pass cfun to 7548 stmt_can_throw_internal. 7549 * tree-vect-patterns.c (check_bool_pattern): Pass cfun to 7550 stmt_could_throw_p. 7551 * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. 7552 (vectorizable_call): Pass cfun to stmt_can_throw_internal. 7553 (vectorizable_simd_clone_call): Likewise. 7554 * value-prof.c (gimple_ic): Pass cfun to stmt_could_throw_p. 7555 (gimple_stringop_fixed_value): Likewise. 7556 75572018-10-22 Ilya Leoshkevich <iii@linux.ibm.com> 7558 7559 * config/s390/s390.c (s390_loadrelative_operand_p): Accept 7560 literal pool references. 7561 (s390_check_qrst_address): Adapt to the new behavior of 7562 s390_loadrelative_operand_p (). 7563 75642018-10-22 H.J. Lu <hongjiu.lu@intel.com> 7565 7566 PR target/72782 7567 * config/i386/sse.md (*andnot<mode>3_bcst): New. 7568 75692018-10-22 H.J. Lu <hongjiu.lu@intel.com> 7570 7571 PR target/72782 7572 * config/i386/sse.md (*<code><mode>3_bcst): New. 7573 75742018-10-22 H.J. Lu <hongjiu.lu@intel.com> 7575 7576 PR target/72782 7577 * config/i386/sse.md (avx512bcst): Updated for V4SI, V2DI, V8SI, 7578 V4DI, V16SI and V8DI. 7579 (*sub<mode>3<mask_name>_bcst): New. 7580 (*add<mode>3<mask_name>_bcst): Likewise. 7581 75822018-10-21 Bill Schmidt <wschmidt@linux.ibm.com> 7583 Jinsong Ji <jji@us.ibm.com> 7584 7585 * config/rs6000/emmintrin.h (_mm_movemask_pd): Replace __vector 7586 __m64 with __vector unsigned long long for compatibility. 7587 (_mm_movemask_epi8): Likewise. 7588 * config/rs6000/xmmintrin.h (_mm_cvtps_pi32): Likewise. 7589 (_mm_cvttps_pi32): Likewise. 7590 (_mm_cvtpi32_ps): Likewise. 7591 (_mm_cvtps_pi16): Likewise. 7592 (_mm_loadh_pi): Likewise. 7593 (_mm_storeh_pi): Likewise. 7594 (_mm_movehl_ps): Likewise. 7595 (_mm_movelh_ps): Likewise. 7596 (_mm_loadl_pi): Likewise. 7597 (_mm_storel_pi): Likewise. 7598 (_mm_movemask_ps): Likewise. 7599 (_mm_shuffle_pi16): Likewise. 7600 76012018-10-21 H.J. Lu <hongjiu.lu@intel.com> 7602 7603 PR target/72782 7604 * config/i386/avx512fintrin.h (_mm512_fnmsub_round_pd): Use 7605 __builtin_ia32_vfnmsubpd512_mask. 7606 (_mm512_mask_fnmsub_round_pd): Likewise. 7607 (_mm512_fnmsub_pd): Likewise. 7608 (_mm512_mask_fnmsub_pd): Likewise. 7609 (_mm512_maskz_fnmsub_round_pd): Use 7610 __builtin_ia32_vfnmsubpd512_maskz. 7611 (_mm512_maskz_fnmsub_pd): Likewise. 7612 (_mm512_fnmsub_round_ps): Use __builtin_ia32_vfnmsubps512_mask. 7613 (_mm512_mask_fnmsub_round_ps): Likewise. 7614 (_mm512_fnmsub_ps): Likewise. 7615 (_mm512_mask_fnmsub_ps): Likewise. 7616 (_mm512_maskz_fnmsub_round_ps): Use 7617 __builtin_ia32_vfnmsubps512_maskz. 7618 (_mm512_maskz_fnmsub_ps): Likewise. 7619 * config/i386/avx512vlintrin.h (_mm256_mask_fnmsub_pd): Use 7620 __builtin_ia32_vfnmsubpd256_mask. 7621 (_mm256_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256_maskz. 7622 (_mm_mask_fnmsub_pd): Use __builtin_ia32_vfmaddpd128_mask 7623 (_mm_maskz_fnmsub_pd): Use __builtin_ia32_vfnmsubpd128_maskz. 7624 (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. 7625 (_mm256_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_mask. 7626 (_mm256_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps256_maskz. 7627 (_mm_mask_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_mask. 7628 (_mm_maskz_fnmsub_ps): Use __builtin_ia32_vfnmsubps128_maskz. 7629 * config/i386/fmaintrin.h (_mm_fnmsub_pd): Use 7630 __builtin_ia32_vfnmsubpd. 7631 (_mm256_fnmsub_pd): Use __builtin_ia32_vfnmsubpd256. 7632 (_mm_fnmsub_ps): Use __builtin_ia32_vfnmsubps. 7633 (_mm256_fnmsub_ps): Use __builtin_ia32_vfnmsubps256. 7634 (_mm_fnmsub_sd): Use __builtin_ia32_vfnmsubsd3. 7635 (_mm_fnmsub_ss): Use __builtin_ia32_vfnmsubss3. 7636 * config/i386/i386-builtin.def: Add 7637 __builtin_ia32_vfnmsubpd256_mask, 7638 __builtin_ia32_vfnmsubpd256_maskz, 7639 __builtin_ia32_vfnmsubpd128_mask, 7640 __builtin_ia32_vfnmsubpd128_maskz, 7641 __builtin_ia32_vfnmsubps256_mask, 7642 __builtin_ia32_vfnmsubps256_maskz, 7643 __builtin_ia32_vfnmsubps128_mask, 7644 __builtin_ia32_vfnmsubps128_maskz, 7645 __builtin_ia32_vfnmsubpd512_mask, 7646 __builtin_ia32_vfnmsubpd512_maskz, 7647 __builtin_ia32_vfnmsubps512_mask, 7648 __builtin_ia32_vfnmsubps512_maskz, __builtin_ia32_vfnmsubss3, 7649 __builtin_ia32_vfnmsubsd3, __builtin_ia32_vfnmsubps, 7650 __builtin_ia32_vfnmsubpd, __builtin_ia32_vfnmsubps256 and. 7651 __builtin_ia32_vfnmsubpd256. 7652 * config/i386/sse.md (fma4i_fnmsub_<mode>): New. 7653 (<avx512>_fnmsub_<mode>_maskz<round_expand_name>): Likewise. 7654 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_1): 7655 Likewise. 7656 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_2): 7657 Likewise. 7658 (*<sd_mask_codefor>fma_fnmsub_<mode><sd_maskz_name>_bcst_3): 7659 Likewise. 7660 (fmai_vmfnmsub_<mode><round_name>): Likewise. 7661 76622018-10-21 H.J. Lu <hongjiu.lu@intel.com> 7663 7664 PR target/72782 7665 * config/i386/avx512fintrin.h (_mm512_fnmadd_round_pd): Use 7666 __builtin_ia32_vfnmaddpd512_mask. 7667 (_mm512_mask_fnmadd_round_pd): Likewise. 7668 (_mm512_fnmadd_pd): Likewise. 7669 (_mm512_mask_fnmadd_pd): Likewise. 7670 (_mm512_maskz_fnmadd_round_pd): Use 7671 __builtin_ia32_vfnmaddpd512_maskz. 7672 (_mm512_maskz_fnmadd_pd): Likewise. 7673 (_mm512_fnmadd_round_ps): Use __builtin_ia32_vfnmaddps512_mask. 7674 (_mm512_mask_fnmadd_round_ps): Likewise. 7675 (_mm512_fnmadd_ps): Likewise. 7676 (_mm512_mask_fnmadd_ps): Likewise. 7677 (_mm512_maskz_fnmadd_round_ps): Use 7678 __builtin_ia32_vfnmaddps512_maskz. 7679 (_mm512_maskz_fnmadd_ps): Likewise. 7680 * config/i386/avx512vlintrin.h (_mm256_mask_fnmadd_pd): Use 7681 __builtin_ia32_vfnmaddpd256_mask. 7682 (_mm256_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256_maskz. 7683 (_mm_mask_fnmadd_pd): Use __builtin_ia32_vfmaddpd128_mask 7684 (_mm_maskz_fnmadd_pd): Use __builtin_ia32_vfnmaddpd128_maskz. 7685 (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. 7686 (_mm256_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_mask. 7687 (_mm256_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps256_maskz. 7688 (_mm_mask_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_mask. 7689 (_mm_maskz_fnmadd_ps): Use __builtin_ia32_vfnmaddps128_maskz. 7690 * config/i386/fmaintrin.h (_mm_fnmadd_pd): Use 7691 __builtin_ia32_vfnmaddpd. 7692 (_mm256_fnmadd_pd): Use __builtin_ia32_vfnmaddpd256. 7693 (_mm_fnmadd_ps): Use __builtin_ia32_vfnmaddps. 7694 (_mm256_fnmadd_ps): Use __builtin_ia32_vfnmaddps256. 7695 (_mm_fnmadd_sd): Use __builtin_ia32_vfnmaddsd3. 7696 (_mm_fnmadd_ss): Use __builtin_ia32_vfnmaddss3. 7697 * config/i386/i386-builtin.def: Add 7698 __builtin_ia32_vfnmaddpd256_mask, 7699 __builtin_ia32_vfnmaddpd256_maskz, 7700 __builtin_ia32_vfnmaddpd128_mask, 7701 __builtin_ia32_vfnmaddpd128_maskz, 7702 __builtin_ia32_vfnmaddps256_mask, 7703 __builtin_ia32_vfnmaddps256_maskz, 7704 __builtin_ia32_vfnmaddps128_mask, 7705 __builtin_ia32_vfnmaddps128_maskz, 7706 __builtin_ia32_vfnmaddpd512_mask, 7707 __builtin_ia32_vfnmaddpd512_maskz, 7708 __builtin_ia32_vfnmaddps512_mask, 7709 __builtin_ia32_vfnmaddps512_maskz, __builtin_ia32_vfnmaddss3, 7710 __builtin_ia32_vfnmaddsd3, __builtin_ia32_vfnmaddps, 7711 __builtin_ia32_vfnmaddpd, __builtin_ia32_vfnmaddps256 and. 7712 __builtin_ia32_vfnmaddpd256. 7713 * config/i386/sse.md (fma4i_fnmadd_<mode>): New. 7714 (<avx512>_fnmadd_<mode>_maskz<round_expand_name>): Likewise. 7715 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_1): 7716 Likewise. 7717 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_2): 7718 Likewise. 7719 (*<sd_mask_codefor>fma_fnmadd_<mode><sd_maskz_name>_bcst_3): 7720 Likewise. 7721 (fmai_vmfnmadd_<mode><round_name>): Likewise. 7722 77232018-10-21 H.J. Lu <hongjiu.lu@intel.com> 7724 7725 PR target/72782 7726 * config/i386/avx512fintrin.h (_mm512_fmsub_round_pd): Use 7727 __builtin_ia32_vfmsubpd512_mask. 7728 (_mm512_mask_fmsub_round_pd): Likewise. 7729 (_mm512_fmsub_pd): Likewise. 7730 (_mm512_mask_fmsub_pd): Likewise. 7731 (_mm512_maskz_fmsub_round_pd): Use 7732 __builtin_ia32_vfmsubpd512_maskz. 7733 (_mm512_maskz_fmsub_pd): Likewise. 7734 (_mm512_fmsub_round_ps): Use __builtin_ia32_vfmsubps512_mask. 7735 (_mm512_mask_fmsub_round_ps): Likewise. 7736 (_mm512_fmsub_ps): Likewise. 7737 (_mm512_mask_fmsub_ps): Likewise. 7738 (_mm512_maskz_fmsub_round_ps): Use 7739 __builtin_ia32_vfmsubps512_maskz. 7740 (_mm512_maskz_fmsub_ps): Likewise. 7741 * config/i386/avx512vlintrin.h (_mm256_mask_fmsub_pd): Use 7742 __builtin_ia32_vfmsubpd256_mask. 7743 (_mm256_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd256_maskz. 7744 (_mm_mask_fmsub_pd): Use __builtin_ia32_vfmaddpd128_mask 7745 (_mm_maskz_fmsub_pd): Use __builtin_ia32_vfmsubpd128_maskz. 7746 (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. 7747 (_mm256_mask_fmsub_ps): Use __builtin_ia32_vfmsubps256_mask. 7748 (_mm256_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps256_maskz. 7749 (_mm_mask_fmsub_ps): Use __builtin_ia32_vfmsubps128_mask. 7750 (_mm_maskz_fmsub_ps): Use __builtin_ia32_vfmsubps128_maskz. 7751 * config/i386/fmaintrin.h (_mm_fmsub_pd): Use 7752 __builtin_ia32_vfmsubpd. 7753 (_mm256_fmsub_pd): Use __builtin_ia32_vfmsubpd256. 7754 (_mm_fmsub_ps): Use __builtin_ia32_vfmsubps. 7755 (_mm256_fmsub_ps): Use __builtin_ia32_vfmsubps256. 7756 (_mm_fmsub_sd): Use __builtin_ia32_vfmsubsd3. 7757 (_mm_fmsub_ss): Use __builtin_ia32_vfmsubss3. 7758 * config/i386/i386-builtin.def: Add 7759 __builtin_ia32_vfmsubpd256_mask, 7760 __builtin_ia32_vfmsubpd256_maskz, 7761 __builtin_ia32_vfmsubpd128_mask, 7762 __builtin_ia32_vfmsubpd128_maskz, 7763 __builtin_ia32_vfmsubps256_mask, 7764 __builtin_ia32_vfmsubps256_maskz, 7765 __builtin_ia32_vfmsubps128_mask, 7766 __builtin_ia32_vfmsubps128_maskz, 7767 __builtin_ia32_vfmsubpd512_mask, 7768 __builtin_ia32_vfmsubpd512_maskz, 7769 __builtin_ia32_vfmsubps512_mask, 7770 __builtin_ia32_vfmsubps512_maskz, __builtin_ia32_vfmsubss3, 7771 __builtin_ia32_vfmsubsd3, __builtin_ia32_vfmsubps, 7772 __builtin_ia32_vfmsubpd, __builtin_ia32_vfmsubps256 and. 7773 __builtin_ia32_vfmsubpd256. 7774 * config/i386/sse.md (fma4i_fmsub_<mode>): New. 7775 (<avx512>_fmsub_<mode>_maskz<round_expand_name>): Likewise. 7776 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_1): 7777 Likewise. 7778 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_2): 7779 Likewise. 7780 (*<sd_mask_codefor>fma_fmsub_<mode><sd_maskz_name>_bcst_3): 7781 Likewise. 7782 (fmai_vmfmsub_<mode><round_name>): Likewise. 7783 77842018-10-21 H.J. Lu <hongjiu.lu@intel.com> 7785 7786 * config/i386/sse.md (*<plusminus_insn><mode>3<mask_name>_bcst_1): 7787 Remove plus. Renamed to ... 7788 (*sub<mode>3<mask_name>_bcst): This. 7789 (*add<mode>3<mask_name>_bcst_2): Renamede to ... 7790 (*add<mode>3<mask_name>_bcst): This. 7791 77922018-10-21 H.J. Lu <hongjiu.lu@intel.com> 7793 7794 PR target/72782 7795 * config/i386/sse.md (*mul<mode>3<mask_name>_bcst): New. 7796 77972018-10-21 H.J. Lu <hongjiu.lu@intel.com> 7798 7799 PR target/87662 7800 * i386/avx512vlintrin.h (_mm256_or_epi32): New. 7801 (_mm_or_epi32): Likewise. 7802 (_mm256_xor_epi32): Likewise. 7803 (_mm_xor_epi32): Likewise. 7804 (_mm256_or_epi64): Likewise. 7805 (_mm_or_epi64): Likewise. 7806 (_mm256_xor_epi64): Likewise. 7807 (_mm_xor_epi64): Likewise. 7808 78092018-10-20 H.J. Lu <hongjiu.lu@intel.com> 7810 7811 PR target/72782 7812 * config/i386/sse.md (*<avx512>_div<mode>3<mask_name>_bcst): New. 7813 78142018-10-20 Jakub Jelinek <jakub@redhat.com> 7815 7816 PR middle-end/87647 7817 * varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR. 7818 78192018-10-20 Andreas Schwab <schwab@linux-m68k.org> 7820 7821 * doc/ux.texi: Move @section directly after @node. 7822 78232018-10-19 Jakub Jelinek <jakub@redhat.com> 7824 7825 PR middle-end/85488 7826 PR middle-end/87649 7827 * omp-low.c (check_omp_nesting_restrictions): Diagnose ordered without 7828 depend closely nested inside of loop with ordered clause with 7829 a parameter. 7830 78312018-10-19 David Malcolm <dmalcolm@redhat.com> 7832 7833 * Makefile.in (TEXI_GCCINT_FILES): Add ux.texi. 7834 * doc/gccint.texi: Include ux.texi and use it in top-level menu. 7835 * doc/ux.texi: New file. 7836 78372018-10-19 Segher Boessenkool <segher@kernel.crashing.org> 7838 7839 * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Move 68 (that is, CR0) to 7840 be the first CR field allocated. 7841 78422018-10-19 Richard Biener <rguenther@suse.de> 7843 7844 PR target/87657 7845 * config/i386/i386.c (ix86_builtin_vectorization_cost): Use 7846 TYPE_VECTOR_SUBPARTS and avoid relying on vector mode. 7847 78482018-10-19 H.J. Lu <hongjiu.lu@intel.com> 7849 7850 PR target/72782 7851 * config/i386/sse.md 7852 (*<plusminus_insn><mode>3<mask_name>_bcst_1): New. 7853 (*add<mode>3<mask_name>_bcst_2): Likewise. 7854 78552018-10-19 H.J. Lu <hongjiu.lu@intel.com> 7856 7857 * config/i386/sse.md 7858 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): 7859 Replace nonimmediate_operand with register_operand. 7860 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): 7861 Likewise. 7862 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): 7863 Likewise. 7864 78652018-10-19 Ilya Leoshkevich <iii@linux.ibm.com> 7866 7867 PR rtl-optimization/87596 7868 * lra-constraints.c (spill_hard_reg_in_range): Use INSN_P () + 7869 lra_get_insn_recog_data () instead of lra_insn_recog_data[] 7870 for instructions in FROM..TO range. 7871 78722018-10-19 Eric Botcazou <ebotcazou@adacore.com> 7873 7874 * cfgexpand.c (expand_one_var): Use specific wording in error message 7875 for non-local frame variables. 7876 * stor-layout.c (layout_decl): Do not issue a warning for them. 7877 78782018-10-19 Robin Dapp <rdapp@linux.ibm.com> 7879 7880 * haifa-sched.c (priority): Add force_recompute parameter. 7881 (apply_replacement): Call priority () with force_recompute = true. 7882 (restore_pattern): Likewise. 7883 78842018-10-18 H.J. Lu <hongjiu.lu@intel.com> 7885 7886 * simplify-rtx.c (simplify_subreg): Limit mask of vec_merge to 7887 HOST_BITS_PER_WIDE_INT. 7888 (test_vector_ops_duplicate): Likewise. 7889 78902018-10-18 H.J. Lu <hongjiu.lu@intel.com> 7891 7892 PR target/72782 7893 * config/i386/sse.md (VF_AVX512): New. 7894 (avx512bcst): Likewise. 7895 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_1): 7896 Likewise. 7897 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_2): 7898 Likewise. 7899 (*<sd_mask_codefor>fma_fmadd_<mode><sd_maskz_name>_bcst_3): 7900 Likewise. 7901 79022018-10-18 Jonathan Wakely <jwakely@redhat.com> 7903 7904 * doc/invoke.texi (-dumpversion): Improve grammar. 7905 (-dumpfullversion): Make more consistent with -dumpversion. 7906 79072018-10-18 Uros Bizjak <ubizjak@gmail.com> 7908 7909 * config/i386/i386.c (ix86_emit_fp_unordered_jump): 7910 Set JUMP_LABEL to the jump insn. 7911 (ix86_emit_i387_log1p): Use ix86_expand_branch to expand branch. 7912 Predict emitted jump and add label to jump insn. 7913 79142018-10-18 David Malcolm <dmalcolm@redhat.com> 7915 7916 PR tree-optimization/87562 7917 * input.c (get_substring_ranges_for_loc): Use 7918 LRK_SPELLING_LOCATION rather than LRK_MACRO_EXPANSION_POINT when 7919 getting the linemap for the endpoint. Verify that it's either 7920 in the same linemap as the start point's spelling location, or 7921 at least in the same file. 7922 79232018-10-18 Richard Biener <rguenther@suse.de> 7924 7925 * config/i386/i386.c (ix86_builtin_vectorization_cost): Do not 7926 feed width-specific load/store costs through ix86_vec_cost. 7927 * config/i386/x86-tune-costs.h (athlon_cost): Adjust. 7928 (k8_cost): Likewise. 7929 (bdver_cost): Likewise. 7930 (znver1_cost): Likewise. 7931 (btver1_cost): Likewise. 7932 (btver2_cost): Likewise. 7933 79342018-10-18 H.J. Lu <hongjiu.lu@intel.com> 7935 7936 * simplify-rtx.c (simplify_subreg): Call simplify_gen_subreg 7937 to simplify subreg of vec_merge. 7938 79392018-10-18 Richard Biener <rguenther@suse.de> 7940 7941 * config/i386/i386.c: Fix costing of vector FMA. 7942 79432018-10-18 Richard Biener <rguenther@suse.de> 7944 7945 * config/i386/i386.c (ix86_vec_cost): Remove !parallel path 7946 and argument. 7947 (ix86_builtin_vectorization_cost): For vec_construct properly 7948 cost insertion into SSE regs. 7949 (...): Adjust calls to ix86_vec_cost. 7950 79512018-10-18 Richard Biener <rguenther@suse.de> 7952 7953 PR middle-end/87087 7954 Revert 7955 2018-02-07 Richard Biener <rguenther@suse.de> 7956 7957 PR tree-optimization/84204 7958 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in 7959 this place. 7960 79612018-10-18 H.J. Lu <hongjiu.lu@intel.com> 7962 7963 PR target/87537 7964 * simplify-rtx.c (simplify_subreg): Simplify subreg of vec_merge 7965 of vec_duplicate. 7966 (test_vector_ops_duplicate): Add test for a scalar subreg of a 7967 VEC_MERGE of a VEC_DUPLICATE. 7968 79692018-10-17 Joseph Myers <joseph@codesourcery.com> 7970 7971 * doc/cpp.texi (__STDC_VERSION__): Document C2X handling. 7972 * doc/invoke.texi (-std=c2x, -std=gnu2x): Document new options. 7973 * doc/standards.texi (C Language): Document C2X. 7974 * dwarf2out.c (highest_c_language), config/rl78/rl78.c 7975 (rl78_option_override): Handle "GNU C2X" language name. 7976 79772018-10-17 Joseph Myers <joseph@codesourcery.com> 7978 7979 * doc/invoke.texi (-std=c17), doc/standards.texi (C Language): 7980 Document C17 as published in 2018. 7981 79822018-10-17 Eric Botcazou <ebotcazou@adacore.com> 7983 7984 PR middle-end/87623 7985 * fold-const.c (fold_truth_andor_1): If the right side is not constant, 7986 bail out if both sides do not have the same storage order. 7987 79882018-10-17 Aldy Hernandez <aldyh@redhat.com> 7989 7990 * bitmap.c (bitmap_head::dump): New. 7991 * bitmap.h (bitmap_head): Add dump(). 7992 * gimple-ssa-evrp-analyze.c 7993 (evrp_range_analyzer::try_find_new_range): Adjust for value_range API. 7994 (evrp_range_analyzer::set_ssa_range_info): Same. 7995 (evrp_range_analyzer::record_ranges_from_phis): Same. 7996 (evrp_range_analyzer::record_ranges_from_stmt): Same. 7997 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Same. 7998 * gimple-ssa-sprintf.c (get_int_range): Same. 7999 (format_integer): Same. 8000 (sprintf_dom_walker::handle_gimple_call): Same. 8001 * ipa-cp.c (ipcp_vr_lattice::meet_with_1): Same. 8002 (ipcp_vr_lattice::top_p): Same. 8003 (ipcp_vr_lattice::bottom_p): Same. 8004 (ipcp_vr_lattice::set_to_bottom): Same. 8005 (ipa_vr_operation_and_type_effects): Same. 8006 (propagate_vr_across_jump_function): Same. 8007 (ipcp_store_vr_results): Same. 8008 * ipa-prop.c (struct ipa_vr_ggc_hash_traits): Same. 8009 (ipa_print_node_jump_functions_for_edge): Same. 8010 (ipa_get_value_range): Same. 8011 (ipa_compute_jump_functions_for_edge): Same. 8012 (ipa_write_jump_function): Same. 8013 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Same. 8014 * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): 8015 Same. 8016 * vr-values.c (set_value_range_to_nonnegative): Same. 8017 (set_value_range_to_truthvalue): Same. 8018 (vr_values::get_value_range): Same. 8019 (vr_values::set_defs_to_varying): Same. 8020 (vr_values::update_value_range): Same. 8021 (symbolic_range_based_on_p): Same. 8022 (vr_values::op_with_boolean_value_range_p): Same. 8023 (vr_values::extract_range_for_var_from_comparison_expr): Same. 8024 (vr_values::extract_range_from_ssa_name): Same. 8025 (vr_values::extract_range_from_binary_expr): Same. 8026 (vr_values::extract_range_from_unary_expr): Same. 8027 (vr_values::extract_range_from_cond_expr): Same. 8028 (vr_values::extract_range_from_comparison): Same. 8029 (vr_values::check_for_binary_op_overflow): Same. 8030 (vr_values::extract_range_basic): Same. 8031 (vr_values::extract_range_from_assignment): Same. 8032 (compare_ranges): Same. 8033 (compare_range_with_value): Same. 8034 (vr_values::adjust_range_with_scev): Same. 8035 (vrp_valueize): Same. 8036 (vrp_valueize_1): Same. 8037 (vr_values::get_vr_for_comparison): Same. 8038 (vr_values::compare_name_with_value): Same. 8039 (vr_values::compare_names): Same. 8040 (vr_values::vrp_evaluate_conditional): Same. 8041 (find_case_label_ranges): Same. 8042 (vr_values::vrp_visit_switch_stmt): Same. 8043 (vr_values::extract_range_from_phi_node): Same. 8044 (vr_values::simplify_div_or_mod_using_ranges): Same. 8045 (vr_values::simplify_bit_ops_using_ranges): Same. 8046 (test_for_singularity): Same. 8047 (range_fits_type_p): Same. 8048 (vr_values::simplify_cond_using_ranges_1): Same. 8049 (vr_values::simplify_switch_using_ranges): Same. 8050 (vr_values::simplify_float_conversion_using_ranges): Same. 8051 (vr_values::two_valued_val_range_p): Same. 8052 (vr_values::add_equivalence): Move to value_range::equiv_add. 8053 * vr-values.h (vr_values::add_equivalence): Remove. 8054 (VR_INITIALIZER): Remove. 8055 * tree-vrp.c (value_range::set): New. 8056 (value_range::equiv_add): New. 8057 (value_range::value_range): New. 8058 (value_range::deep_copy): New. 8059 (value_range::check): New. 8060 (value_range::equal_p): New. 8061 (value_range::ignore_equivs_equal_p): New. 8062 (value_range::operator==): New. 8063 (value_range::operator!=): New. 8064 (value_range::symbolic_p): New. 8065 (value_range::numeric_p): New. 8066 (value_range::set_undefined): New. 8067 (value_range::set_varying): New. 8068 (value_range::may_contain_p): New. 8069 (value_range::equiv_clear): New. 8070 (value_range::singleton_p): New. 8071 (value_range::intersect): New. 8072 (value_range::dump): New. 8073 (value_range::set_and_canonicalize): New. 8074 (set_value_range): Adjust for value_range API. 8075 (set_value_range_to_undefined): Same. 8076 (set_value_range_to_varying): Same. 8077 (set_and_canonicalize_value_range): Same. 8078 (set_value_range_to_nonnull): Same. 8079 (set_value_range_to_null): Same. 8080 (range_is_null): Same. 8081 (range_is_nonnull): Same. 8082 (range_int_cst_p): Same. 8083 (range_int_cst_singleton_p): Same. 8084 (symbolic_range_p): Same. 8085 (range_includes_zero_p): Same. 8086 (value_range_constant_singleton): Same. 8087 (vrp_set_zero_nonzero_bits): Same. 8088 (ranges_from_anti_range): Same. 8089 (extract_range_into_wide_ints): Same. 8090 (extract_range_from_multiplicative_op): Same. 8091 (set_value_range_with_overflow): Same. 8092 (extract_range_from_binary_expr_1): Same. 8093 (extract_range_from_unary_expr): Same. 8094 (dump_value_range): Same. 8095 (debug_value_range): Same. 8096 (vrp_prop::check_array_ref): Same. 8097 (vrp_prop::check_mem_ref): Same. 8098 (vrp_prop::vrp_initialize): Same. 8099 (vrp_prop::visit_stmt): Same. 8100 (intersect_ranges): Same. 8101 (vrp_prop::visit_phi): Same. 8102 (vrp_prop::vrp_finalize): Same. 8103 (determine_value_range_1): Same. 8104 (determine_value_range): Same. 8105 (vrp_intersect_ranges_1): Rename to... 8106 (vrp_intersect_1): this. 8107 (vrp_intersect_ranges): Rename to... 8108 (value_range::intersect_helper): ...this. 8109 (vrp_meet_1): Rename to... 8110 (value_range::union_helper): ...this. 8111 (vrp_meet): Rename to... 8112 (value_range::union_): ...this. 8113 (copy_value_range): Remove. 8114 * tree-vrp.h (struct value_range): Rewrite into a proper class. 8115 (value_range::vrtype): New. 8116 (value_range::type): New. 8117 (value_range::equiv): New. 8118 (value_range::min): New. 8119 (value_range::max): New. 8120 (value_range::varying_p): New. 8121 (value_range::undefined_p): New. 8122 (value_range::null_p): New. 8123 (value_range::equiv_add): New. 8124 (copy_value_range): Remove. 8125 81262018-10-17 David Malcolm <dmalcolm@redhat.com> 8127 8128 * Makefile.in (SELFTEST_TARGETS): New. 8129 (selftest) Change from s-selftest-c to $(SELFTEST_TARGETS). 8130 (C_SELFTEST_FLAGS, C_SELFTEST_DEPS, s-selftest-c, selftest-c-gdb) 8131 (selftest-gdb, selftest-c-valgrind, selftest-valgrind): Move to 8132 c/Make-lang.in. 8133 (CPP_SELFTEST_FLAGS, CPP_SELFTEST_DEPS, s-selftest-c++) 8134 (selftest-c++-gdb, selftest-c++-valgrind): Move to 8135 cp/Make-lang.in. 8136 * configure: Regenerate. 8137 * configure.ac (selftest_languages): New. 8138 81392018-10-17 Aldy Hernandez <aldyh@redhat.com> 8140 8141 * tree-vrp.c (extract_range_from_multiplicative_op): Remove 8142 overflow wraps argument. 8143 (extract_range_from_binary_expr_1): Do not pass overflow wraps to 8144 wide_int_range_multiplicative_op. 8145 * wide-int-range.cc (wide_int_range_mult_wrapping): Remove 8146 overflow wraps argument. 8147 (wide_int_range_multiplicative_op): Same. 8148 (wide_int_range_lshift): Same. 8149 (wide_int_range_div): Same. 8150 * wide-int-range.h (wide_int_range_multiplicative_op): Same. 8151 (wide_int_range_lshift): Same. 8152 (wide_int_range_div): Same. 8153 81542018-10-17 Aldy Hernandez <aldyh@redhat.com> 8155 8156 * wide-int-range.h (wide_int_range_shift_undefined_p): Adjust to 8157 use sign as argument. 8158 * tree-vrp.c (extract_range_from_binary_expr_1): Pass sign to 8159 wide_int_range_shift_undefined_p. 8160 81612018-10-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 8162 8163 * config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>): 8164 Rename to... 8165 (@despeculate_copy<ALLI_TI:mode>): ... This. 8166 * config/aarch64/aarch64.c (aarch64_speculation_safe_value): Remove 8167 switch statement. 8168 81692018-10-16 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 8170 8171 * config.gcc: Obsolete *-*-solaris2.10*. 8172 * doc/install.texi (Specific, *-*-solaris2*): Document it. 8173 81742018-10-12 Jeff Law <law@redhat.com> 8175 8176 * config/ft32/ft32.md (ft32_general_movsrc_operand): Disable 8177 reg + sym +- const_int addressing modes. 8178 81792018-10-15 David Malcolm <dmalcolm@redhat.com> 8180 8181 * common.opt (fdiagnostics-minimum-margin-width=): New option. 8182 * diagnostic-show-locus.c (layout::layout): Apply the minimum 8183 margin width. 8184 (layout::start_annotation_line): Only print up to 3 of the 8185 margin character, to avoid touching the left-hand side. 8186 (selftest::test_diagnostic_show_locus_fixit_lines): Update for 8187 minimum margin width, as set by test_diagnostic_context's ctor. 8188 (selftest::test_fixit_insert_containing_newline): Likewise. 8189 (selftest::test_fixit_insert_containing_newline_2): Likewise. 8190 (selftest::test_line_numbers_multiline_range): Clear 8191 dc.min_margin_width. 8192 * diagnostic.c (diagnostic_initialize): Initialize 8193 min_margin_width. 8194 * diagnostic.h (struct diagnostic_context): Add field 8195 "min_margin_width". 8196 * doc/invoke.texi: Add -fdiagnostics-minimum-margin-width=. 8197 * opts.c (common_handle_option): Handle 8198 OPT_fdiagnostics_minimum_margin_width_. 8199 * selftest-diagnostic.c 8200 (selftest::test_diagnostic_context::test_diagnostic_context): 8201 Initialize min_margin_width to 6. 8202 * toplev.c (general_init): Initialize global_dc->min_margin_width. 8203 82042018-10-15 David Malcolm <dmalcolm@redhat.com> 8205 8206 * gcc-rich-location.h (gcc_rich_location::add_location_if_nearby): 8207 Fix usage of "error_at_rich_loc" in the comment. 8208 82092018-10-15 Renlin Li <renlin.li@arm.com> 8210 8211 PR target/87563 8212 * tree-vectorizer.c (try_vectorize_loop_1): Don't use 8213 if-conversioned loop when it contains ifn with types not 8214 supported by backend. 8215 * internal-fn.c (expand_direct_optab_fn): Add an assert. 8216 (direct_internal_fn_supported_p): New helper function. 8217 * internal-fn.h (direct_internal_fn_supported_p): Declare. 8218 82192018-10-15 Jakub Jelinek <jakub@redhat.com> 8220 8221 PR target/87572 8222 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): 8223 Remove OPTION_MASK_ISA_AVX5124FMAPS_UNSET and 8224 OPTION_MASK_ISA_AVX5124VNNIW_UNSET. 8225 82262018-10-15 Bin Cheng <bin.cheng@linux.alibaba.com> 8227 8228 PR tree-optimization/87022 8229 * tree-loop-distribution.c (pg_add_dependence_edges): Check all 8230 bits in dist vector rather than the first one. 8231 82322018-10-15 Richard Biener <rguenther@suse.de> 8233 8234 PR middle-end/87610 8235 * tree-ssa-structalias.c (struct vls_data): Add escaped_p member. 8236 (visit_loadstore): When a used restrict tag escaped verify that 8237 the points-to solution of "other" pointers do not include 8238 escaped. 8239 (compute_dependence_clique): If a used restrict tag escaped 8240 communicated that down to visit_loadstore. 8241 82422018-10-15 Andreas Krebbel <krebbel@linux.ibm.com> 8243 8244 * config/s390/s390.c (s390_expand_vec_init): Force vector element 8245 into reg if it isn't a general operand. 8246 82472018-10-14 H.J. Lu <hongjiu.lu@intel.com> 8248 8249 PR target/87599 8250 * config/i386/sse.md (*vec_dupv2di): Add register source to 8251 movddup. 8252 82532018-10-14 H.J. Lu <hongjiu.lu@intel.com> 8254 8255 PR target/87572 8256 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512F_UNSET): 8257 Add OPTION_MASK_ISA_AVX512IFMA_UNSET, 8258 OPTION_MASK_ISA_AVX5124FMAPS_UNSET and 8259 OPTION_MASK_ISA_AVX5124VNNIW_UNSET. 8260 82612018-10-13 Eric Botcazou <ebotcazou@adacore.com> 8262 8263 * dwarf2cfi.c (struct dw_trace_info): Add args_size_defined_for_eh. 8264 (notice_args_size): Set it in the current trace if no insn that can 8265 throw internally has been seen yet. 8266 (connect_traces): When connecting args_size between traces, allow the 8267 incoming values not to match if there is an insn setting it before the 8268 first insn that can throw internally; in that case, force the creation 8269 of a CFI note on this latter insn. 8270 82712018-10-13 Jonathan Wakely <jwakely@redhat.com> 8272 8273 * opt-problem.h (opt_wrapper): Use template-argument-list when naming 8274 the base class, because using the injected-class-name was not clearly 8275 specified until DR 176. 8276 82772018-10-12 Paul Koning <ni1d@arrl.net> 8278 8279 * config/pdp11/pdp11.md (doloop_end): New expander. 8280 (doloop_end_insn): renamed from "doloop_end". 8281 (addqi3): New pattern. 8282 (subqi3): New pattern. 8283 * config/pdp11/predicates.md (incdec_operand): New predicate. 8284 82852018-10-12 Yury Gribov <tetra2005@gmail.com> 8286 8287 PR middle-end/81376 8288 * real.c (format_helper::can_represent_integral_type_p): New function 8289 * real.h (format_helper::can_represent_integral_type_p): Ditto. 8290 * match.pd: New pattern. 8291 82922018-10-12 Alexandre Oliva <oliva@adacore.com> 8293 8294 * configure.ac: Introduce --enable-large-address-aware 8295 to define MINGW_DEFAULT_LARGE_ADDR_AWARE. 8296 * doc/install.texi: Document it. 8297 * configure, config.in: Rebuilt. 8298 * config/i386/mingw32.h (LINK_SPEC_LARGE_ADDR_AWARE): Define, 8299 based on MINGW_DEFAULT_LARGE_ADDR_AWARE. 8300 (LINK_SPEC): Insert it. 8301 * config/i386/mingw-w64.h: Likewise. 8302 8303 * cygming.h (HAVE_GAS_ALIGNED_COMM): Fallback-define. 8304 83052018-10-12 Peter Bergner <bergner@linux.ibm.com> 8306 8307 PR rtl-optimization/87600 8308 * ira-lives (non_conflicting_reg_copy_p): Disable for non LRA targets. 8309 83102018-10-12 Paul Koning <ni1d@arrl.net> 8311 8312 * doc/md.texi (doloop_end): Document that the pattern code may 8313 need to check operand mode. 8314 83152018-10-12 Wilco Dijkstra <wdijkstr@arm.com> 8316 8317 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Add alternatives 8318 to zero-extend between int and floating-point registers. 8319 (load_pair_zero_extendsidi2_aarch64): Add alternative for zero-extended 8320 ldp into floating-point registers. Add type and arch attributes. 8321 (zero_extend<SHORT:mode><GPI:mode>2_aarch64): Add arch attribute. 8322 Use f_loads for type attribute. 8323 83242018-10-11 Martin Sebor <msebor@redhat.com> 8325 8326 * doc/extend.texi (attribute packed): Correct typos. 8327 83282018-10-11 Martin Sebor <msebor@redhat.com> 8329 8330 * doc/extend.texi (attribute flatten): Mention interaction with 8331 noinline. 8332 83332018-10-11 Jan Hubicka <hubicka@ucw.cz> 8334 8335 PR target/87156 8336 * cgraphclones.c (cgraph_node::create_version_clone_with_body): 8337 Set new_decl virtual flag to zero. 8338 83392018-10-11 Martin Sebor <msebor@redhat.com> 8340 8341 PR middle-end/87593 8342 * doc/extend.texi (attribute format_arg): Discuss using multiple 8343 attributes on a single function. 8344 83452018-10-11 Giuliano Belinassi <giuliano.belinassi@usp.br> 8346 8347 PR tree-optimization/86829 8348 * match.pd (sin (atan (x))): New simplification rules. 8349 (cos (atan (x))): Likewise. 8350 * real.c (build_sinatan_real): New function. 8351 * real.h (build_sinatan_real): Prototype. 8352 83532018-10-11 Will Schmidt <will_schmidt@vnet.ibm.com> 8354 8355 * config/rs6000/rs6000.c (map_to_integral_tree_type): New helper 8356 function. 8357 (fold_mergeeo_helper): New helper function. 8358 (rs6000_gimple_fold_builtin): Add hooks for vec_mergee and vec_mergeo 8359 intrinsics. Correct some whitespace indentation issues. 8360 83612018-10-11 Wilco Dijkstra <wdijkstr@arm.com> 8362 8363 PR target/87511 8364 * config/aarch64/aarch64.c (aarch64_mask_and_shift_for_ubfiz_p): 8365 Use HOST_WIDE_INT_1U for shift. 8366 83672018-10-11 Doug Rupp <rupp@adacore.com> 8368 Olivier Hainque <hainque@adacore.com> 8369 8370 * config/rs6000/vxworks.h (VXWORKS_RELAX_LINK_SPEC): New macro. 8371 Pass --relax to the linker for RTPs. 8372 (LINK_SPEC): Append VXWORKS_RELAX_LINK_SPEC. 8373 83742018-10-11 Andrew Stubbs <ams@codesourcery.com> 8375 Jan Hubicka <jh@suse.cz> 8376 Martin Jambor <mjambor@suse.cz> 8377 8378 * print-rtl.c (print_rtx_operand_codes_E_and_V): Print how many times 8379 the same elements are repeated rather than printing all of them. 8380 * read-rtl.c (rtx_reader::read_rtx_operand): Recognize and expand 8381 "repeated" elements. 8382 * read-rtl-function.c (test_loading_repeat): New function. 8383 (read_rtl_function_c_tests): Call test_loading_repeat. 8384 * rtl-tests.c (test_dumping_repeat): New function. 8385 (rtl_tests_c_tests): Call test_dumping_repeat. 8386 83872018-10-11 Richard Biener <rguenther@suse.de> 8388 8389 * config/i386/x86-tune-costs.h (bdver?_memcpy, bdver?_memset, 8390 bdver?_cost): Unify to ... 8391 (bdver_memcpy, bdver_memset, bdver_cost): ... this. 8392 * config/i386/i386.c (processor_cost_table): Adjust. 8393 83942018-10-10 Eric Botcazou <ebotcazou@adacore.com> 8395 8396 PR middle-end/87574 8397 * cgraphunit.c (cgraph_node::expand_thunk): Force DECL_IGNORED_P on 8398 the thunk when expanding to GIMPLE. 8399 84002018-10-10 Bernd Edlinger <bernd.edlinger@hotmail.de> 8401 8402 PR bootstrap/87551 8403 * varasm.c (mergeable_string_section): Don't try to move zero-length 8404 strings to the merge section. 8405 84062018-10-10 Uros Bizjak <ubizjak@gmail.com> 8407 8408 PR target/87573 8409 * config/i386/mmx.md (const_vector 0 -> mem splitter): New splitter. 8410 84112018-10-10 Jakub Jelinek <jakub@redhat.com> 8412 8413 PR target/87550 8414 * config/i386/i386-builtin.def (IX86_BUILTIN_RDPMC): Move from args set 8415 to special_args set. 8416 84172018-10-10 Richard Biener <rguenther@suse.de> 8418 8419 * config/i386/sse.md (reduc_plus_scal_v8df, reduc_plus_scal_v4df, 8420 reduc_plus_scal_v2df, reduc_plus_scal_v16sf, reduc_plus_scal_v8sf, 8421 reduc_plus_scal_v4sf): Merge into pattern reducing to half width 8422 and recursing and pattern terminating the recursion on SSE 8423 vector width using ix86_expand_reduc. 8424 (reduc_sminmax_scal_<mode>): Split into part reducing to half 8425 width and recursing and SSE2 vector variant doing the final 8426 reduction with ix86_expand_reduc. 8427 (reduc_uminmax_scal_<mode>): Likewise for the AVX512 variants 8428 with terminating the recursion at AVX level, splitting that 8429 to SSE there. 8430 84312018-10-09 David Malcolm <dmalcolm@redhat.com> 8432 8433 * genmatch.c (error_cb): Rename to... 8434 (diagnostic_cb): ...this, converting int params to enums. 8435 (fatal_at): Update for renaming. 8436 (warning_at): Likewise. 8437 (main): Likewise. 8438 * input.c (selftest::ebcdic_execution_charset::apply): 8439 Update for renaming of... 8440 (selftest::ebcdic_execution_charset::on_error): ...this, renaming 8441 to... 8442 (selftest::ebcdic_execution_charset::on_diagnostic): ...this, 8443 converting level and reason to enums. 8444 (class selftest::lexer_error_sink): Rename to... 8445 (class selftest::lexer_test_options): ...this, renaming field 8446 "m_errors" to "m_diagnostics". 8447 (selftest::lexer_test_options::apply): Update for renaming of... 8448 (selftest::lexer_test_options::on_error): ...this, renaming to... 8449 (selftest::lexer_test_options::on_diagnostic): ...this 8450 converting level and reason to enums. 8451 (selftest::test_lexer_string_locations_raw_string_unterminated): 8452 Update for renamings. 8453 * opth-gen.awk (struct cpp_reason_option_codes_t): Use enum for 8454 "reason". 8455 84562018-10-09 Paul A. Clarke <pc@us.ibm.com> 8457 8458 * config.gcc (powerpc*-*-*): Add pmmintrin.h to extra_headers. 8459 * config/rs6000/pmmintrin.h: New file. 8460 84612018-10-09 Eric Botcazou <ebotcazou@adacore.com> 8462 8463 PR tree-optimization/86659 8464 * gimple-match.h (gimple_match_op constructors): Initialize reverse. 8465 84662018-10-09 Richard Biener <rguenther@suse.de> 8467 8468 PR tree-optimization/63155 8469 * tree-ssa-structalias.c: Include tree-ssa.h. 8470 (get_constraint_for_ssa_var): For undefs return nothing_id. 8471 (find_func_aliases): Cleanup PHI handling. 8472 84732018-10-09 Richard Biener <rguenther@suse.de> 8474 8475 * tree-vectorizer.c (dump_stmt_cost): Fix cut&paste missing 8476 replacements. 8477 84782018-10-09 Martin Liska <mliska@suse.cz> 8479 8480 * asan.c (asan_emit_stack_protection): If a stack variable 8481 is located in a same file as current function, then emit 8482 line info into variable definition string. 8483 84842018-10-08 Eric Botcazou <ebotcazou@adacore.com> 8485 8486 * print-rtl.c (rtx_writer::print_rtx_operand_code_i): Print column 8487 information. 8488 84892018-10-08 Eric Botcazou <ebotcazou@adacore.com> 8490 8491 * cgraphunit.c (cgraph_node::expand_thunk): Do not force DECL_IGNORED_P 8492 on the thunk. 8493 84942018-10-08 Eric Botcazou <ebotcazou@adacore.com> 8495 8496 PR tree-optimization/86659 8497 * gimple-match.h (struct gimple_match_op): Add reverse field. 8498 (gimple_match_op::set_op): New overloaded method. 8499 * gimple-match-head.c (maybe_build_generic_op) <BIT_FIELD_REF>: Set 8500 the REF_REVERSE_STORAGE_ORDER flag on the value. 8501 (gimple_simplify) <GIMPLE_ASSIGN>: For BIT_FIELD_REF, propagate the 8502 REF_REVERSE_STORAGE_ORDER flag and avoid simplifying if it is set. 8503 85042018-10-08 Richard Sandiford <richard.sandiford@arm.com> 8505 8506 PR middle-end/63155 8507 * gimple-ssa-backprop.c (backprop::intersect_uses): Use 8508 FOR_EACH_IMM_USE_FAST instead of FOR_EACH_IMM_USE_STMT. 8509 85102018-10-08 H.J. Lu <hongjiu.lu@intel.com> 8511 8512 PR target/87517 8513 * config/i386/avx512fintrin.h (_mm512_mask_fmaddsub_round_pd): 8514 Defined with __builtin_ia32_vfmaddsubpd512_mask. 8515 85162018-10-08 Richard Biener <rguenther@suse.de> 8517 8518 * config/i386/x86-tune-costs.h (znver1_cost): Make AVX256 vector loads 8519 cost the same as AVX128 ones. 8520 85212018-10-08 Paul Koning <ni1d@arrl.net> 8522 8523 * config/pdp11/pdp11-protos.h (output_block_move): Remove. 8524 (expand_block_move): New function. 8525 * config/pdp11/pdp11.c (output_block_move): Remove. 8526 (expand_block_move): New function. 8527 * config/pdp11/pdp11.h (MOVE_RATIO): New definition. 8528 * config/pdp11/pdp11.md (movmemhi): Use expand_block_move. 8529 (*movmemhi1): Remove. 8530 85312018-10-08 Robin Dapp <rdapp@linux.ibm.com> 8532 8533 * config/s390/2827.md: Increase latencies for some FP instructions. 8534 85352018-10-08 Richard Biener <rguenther@suse.de> 8536 8537 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 8538 Open a dump scope. 8539 * tree-vectorizer.c (dump_stmt_cost): Add cost param and dump it. 8540 * tree-vectorizer.h (dump_stmt_cost): Adjust. 8541 (add_stmt_cost): Dump return value of the hook. 8542 85432018-10-08 Richard Biener <rguenther@suse.de> 8544 8545 PR tree-optimization/63155 8546 * tree-ssa-propagate.c (add_ssa_edge): Do cheap check first. 8547 (ssa_propagation_engine::ssa_propagate): Remove redundant 8548 bitmap bit clearing. 8549 85502018-10-05 Peter Bergner <bergner@linux.ibm.com> 8551 8552 PR rtl-optimization/86939 8553 PR rtl-optimization/87479 8554 * ira.h (non_conflicting_reg_copy_p): New prototype. 8555 * ira-lives.c (ignore_reg_for_conflicts): New static variable. 8556 (make_hard_regno_dead): Don't add conflicts for register 8557 ignore_reg_for_conflicts. 8558 (make_object_dead): Likewise. 8559 (non_conflicting_reg_copy_p): New function. 8560 (process_bb_node_lives): Set ignore_reg_for_conflicts for copies. 8561 Remove special conflict handling of REAL_PIC_OFFSET_TABLE_REGNUM. 8562 * lra-lives.c (ignore_reg_for_conflicts): New static variable. 8563 (make_hard_regno_dead): Don't add conflicts for register 8564 ignore_reg_for_conflicts. Remove special conflict handling of 8565 REAL_PIC_OFFSET_TABLE_REGNUM. Remove now unused argument 8566 check_pic_pseudo_p and update callers. 8567 (mark_pseudo_dead): Don't add conflicts for register 8568 ignore_reg_for_conflicts. 8569 (process_bb_lives): Set ignore_reg_for_conflicts for copies. 8570 85712018-10-05 Andrew Waterman <andrew@sifive.com> 8572 Jim Wilson <jimw@sifive.com> 8573 8574 * config/riscv/riscv.md (f<quiet_pattern>_quiet<ANYF:mode><X:mode>4): 8575 Add define_expand. Add ! HONOR_SNANS check to current pattern. Add 8576 new pattern using HONOR_SNANS that emits one extra instruction. 8577 85782018-10-05 Segher Boessenkool <segher@kernel.crashing.org> 8579 8580 * config/rs6000/rs6000.md (unnamed mfcr scc_comparison_operator 8581 patterns): Merge SI and DI patterns to a GPR pattern. 8582 (unnamed define_insn and define_split for record form of that): Merge 8583 to a single define_insn_and_split pattern. 8584 85852018-10-05 David Malcolm <dmalcolm@redhat.com> 8586 8587 PR c++/56856 8588 * input.c (expand_location_to_spelling_point): Add param "aspect" 8589 and use rather than hardcoding LOCATION_ASPECT_CARET. 8590 (get_substring_ranges_for_loc): Handle the case of a single token 8591 within a macro expansion. 8592 * input.h (expand_location_to_spelling_point): Add "aspect" param, 8593 defaulting to LOCATION_ASPECT_CARET. 8594 85952018-10-05 Paul Koning <ni1d@arrl.net> 8596 8597 * config/pdp11/pdp11.c (TARGET_CXX_GUARD_TYPE): Define. 8598 (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Define. 8599 (TARGET_CXX_LIBRARY_RTTI_COMDAT): Define. 8600 (pdp11_guard_type): New function. 8601 86022018-10-05 Paul Koning <ni1d@arrl.net> 8603 8604 * config/pdp11/pdp11.h (FLOAT_TYPE_SIZE): Always 32. 8605 * config/pdp11/pdp11.opt (mfloat32): Remove. 8606 (mfloat64): Remove. 8607 * doc/invoke.texi (pdp11 -mfloat32): Remove: 8608 (pdp11 -mfloat64): Remove. 8609 86102018-10-05 Uros Bizjak <ubizjak@gmail.com> 8611 8612 * config/i386/i386.md (*cmpxf_cc_i387): Remove pattern. 8613 (*cmp<mode>_cc_i387): Ditto. 8614 (*cmpu<mode>_cc_i387): Ditto. 8615 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto. 8616 * config/i386/i386.c (ix86_expand_fp_compare): Remove 8617 "scratch" argument. 8618 <case IX86_FPCMP_SAHF>: Do not generate pattern with HImode clobber. 8619 Emit x86_sahf_1 pattern. 8620 (ix86_expand_compare): Update call to ix86_expand_fp_compare. 8621 (ix86_expand_carry_flag_compare): Ditto. 8622 86232018-10-05 Uros Bizjak <ubizjak@gmail.com> 8624 8625 * config/i386/i386.md (*cmpxf_i387): Change operand 2 predicate 8626 to reg_or_0_operand. Add "C" constraint. 8627 (*cmpxf_cc_i387): Ditto. 8628 (*cmp<mode>_i387): Change operand 2 predicate 8629 to nonimm_or_0_operand. Add "C" constraint. 8630 (*cmp<mode>_cc_i387): Ditto. 8631 (*cmp<mode>_0_i387): Remove insn pattern. 8632 (*cmp<mode>_0_cc_i387): Ditto. 8633 86342018-10-05 Uros Bizjak <ubizjak@gmail.com> 8635 8636 * config/i386/constraints.md ("C"): Do not depend on TARGET_SSE. 8637 * config/i386/predicates.md (nonimm_or_0_operand): Rename 8638 from vector_move_operand. Update all uses. 8639 86402018-10-05 Martin Sebor <msebor@redhat.com> 8641 8642 PR tree-optimization/87490 8643 * builtins.c (expand_builtin_strnlen): Handle a null data.decl 8644 consistently. 8645 86462018-10-05 Richard Biener <rguenther@suse.de> 8647 8648 PR tree-optimization/63155 8649 * tree-ssa-ccp.c (ccp_propagate::visit_phi): Avoid excess 8650 vertical space in dumpfiles. 8651 * tree-ssa-propagate.h 8652 (ssa_propagation_engine::process_ssa_edge_worklist): Remove. 8653 * tree-ssa-propagate.c (cfg_blocks_back): New global. 8654 (ssa_edge_worklist_back): Likewise. 8655 (curr_order): Likewise. 8656 (cfg_blocks_get): Remove abstraction. 8657 (cfg_blocks_add): Likewise. 8658 (cfg_blocks_empty_p): Likewise. 8659 (add_ssa_edge): Add to current or next worklist based on 8660 RPO index. 8661 (add_control_edge): Likewise. 8662 (ssa_propagation_engine::process_ssa_edge_worklist): Fold 8663 into ... 8664 (ssa_propagation_engine::ssa_propagate): ... here. Unify 8665 iteration from CFG and SSA edge worklist so we process 8666 everything in RPO order, prioritizing forward progress 8667 over iteration. 8668 (ssa_prop_init): Allocate new worklists, do not dump 8669 immediate uses. 8670 (ssa_prop_fini): Free new worklists. 8671 86722018-10-05 Richard Biener <rguenther@suse.de> 8673 8674 * tree-core.h (tree_block::abstract_flag): Remove. 8675 (tree_block::block_num): Make full 32bits. 8676 * tree.def (BLOCK): Remove docs about BLOCK_ABSTRACT. 8677 * tree.h (BLOCK_ABSTRACT): Remove. 8678 * dwarf2out.c (gen_lexical_block_die): Remove dead code 8679 resulting from BLOCK_ABSTRACT being always false. 8680 (gen_inlined_subroutine_die): Likewise. 8681 (gen_block_die): Likewise. 8682 * tree.c (block_ultimate_origin): Likewise. 8683 * tree-pretty-print.c (dump_block_node): Remove code dealing 8684 with BLOCK_ABSTRACT. 8685 * tree-ssa-live.c (dump_scope_block): Likewise. 8686 * tree-streamer-in.c (unpack_ts_block_value_fields): Likewise. 8687 * tree-streamer-out.c (pack_ts_block_value_fields): Likewise. 8688 86892018-10-05 Richard Biener <rguenther@suse.de> 8690 8691 * config/i386/i386.c (ix86_add_stmt_cost): When scalar cost 8692 is asked for initialize mode to the component mode of the 8693 vector type. 8694 86952018-10-05 H.J. Lu <hongjiu.lu@intel.com> 8696 8697 PR target/87522 8698 * config/i386/gnu-user.h (ASM_SPEC): Don't pass -msse2avx to 8699 assembler for -mavx. 8700 * config/i386/gnu-user64.h (ASM_SPEC): Likewise. 8701 87022018-10-05 Segher Boessenkool <segher@kernel.crashing.org> 8703 8704 PR target/87509 8705 * config/rs6000/rs6000-builtin.def (RS6000_BUILTIN_SET_FPSCR_DRN): Use 8706 RS6000_BTM_DFP. 8707 * config/rs6000/rs6000.md (rs6000_set_fpscr_rn): Require the operand 8708 to be DImode. When using mffscrn, force the operand to a register. 8709 87102018-10-04 Uros Bizjak <ubizjak@gmail.com> 8711 8712 * config/i386/i386.md (*fop_<X87MODEF:mode>_2_i387): Macroize insn 8713 from *fop_<MODEF:mode>_2_i387 and *fop_xf_2_i387 using 8714 X87MODEF mode iterator. 8715 (*fop_<X87MODEF:mode>_3_i387): Macroize insn from 8716 *fop_<MODEF:mode>_3_i387 and *fop_xf_3_i387 using 8717 X87MODEF mode iterator. 8718 87192018-10-04 Vinay Kumar <vinay.kumar@blackfigtech.com> 8720 8721 * doc/invoke.texi (-Wno-prio-ctor-dtor): Document new warning 8722 -Wno-prio-ctor-dtor. 8723 87242018-10-04 David Malcolm <dmalcolm@redhat.com> 8725 8726 * Makefile.in (OBJS): Add opt-problem.o. 8727 * dump-context.h: Include "selftest.h. 8728 (selftest::temp_dump_context): New forward decl. 8729 (class dump_context): Make friend of class 8730 selftest::temp_dump_context. 8731 (dump_context::dump_loc_immediate): New decl. 8732 (class dump_pretty_printer): Move here from dumpfile.c. 8733 (class temp_dump_context): Move to namespace selftest. 8734 (temp_dump_context::temp_dump_context): Add param 8735 "forcibly_enable_dumping". 8736 (selftest::verify_dumped_text): 8737 (ASSERT_DUMPED_TEXT_EQ): Move here from dumpfile.c. 8738 (selftest::verify_item): 8739 (ASSERT_IS_TEXT): Move here from dumpfile.c. 8740 (ASSERT_IS_TREE): Likewise. 8741 (ASSERT_IS_GIMPLE): Likewise. 8742 * dumpfile.c (dump_context::dump_loc): Move immediate dumping 8743 to... 8744 (dump_context::dump_loc_immediate): ...this new function. 8745 (class dump_pretty_printer): Move to dump-context.h. 8746 (dump_switch_p_1): Don't enable MSG_PRIORITY_REEMITTED. 8747 (opt_info_switch_p_1): Enable MSG_PRIORITY_REEMITTED. 8748 (temp_dump_context::temp_dump_context): Move to "selftest" 8749 namespace. Add param "forcibly_enable_dumping", and use it to 8750 conditionalize the use of m_pp; 8751 (selftest::verify_dumped_text): Make non-static. 8752 (ASSERT_DUMPED_TEXT_EQ): Move to dump-context.h. 8753 (selftest::verify_item): Make non-static. 8754 (ASSERT_IS_TEXT): Move to dump-context.h. 8755 (ASSERT_IS_TREE): Likewise. 8756 (ASSERT_IS_GIMPLE): Likewise. 8757 (selftest::test_capture_of_dump_calls): Pass "true" for new 8758 param of temp_dump_context. 8759 * dumpfile.h (enum dump_flag): Add MSG_PRIORITY_REEMITTED, adding 8760 it to MSG_ALL_PRIORITIES. Update values of TDF_COMPARE_DEBUG and 8761 TDF_COMPARE_DEBUG. 8762 * opt-problem.cc: New file. 8763 * opt-problem.h: New file. 8764 * optinfo-emit-json.cc 8765 (selftest::test_building_json_from_dump_calls): Pass "true" for 8766 new param of temp_dump_context. 8767 * optinfo.cc (optinfo_kind_to_dump_flag): New function. 8768 (optinfo::emit_for_opt_problem): New function. 8769 (optinfo::emit): Clarity which emit_item is used. 8770 * optinfo.h (optinfo::get_dump_location): New accessor. 8771 (optinfo::emit_for_opt_problem): New decl. 8772 (optinfo::emit): Make const. 8773 * selftest-run-tests.c (selftest::run_tests): Call 8774 selftest::opt_problem_cc_tests. 8775 * selftest.h (selftest::opt_problem_cc_tests): New decl. 8776 * tree-data-ref.c (dr_analyze_innermost): Convert return type from 8777 bool to opt_result, converting fprintf messages to 8778 opt_result::failure_at calls. Add "stmt" param for use by the 8779 failure_at calls. 8780 (create_data_ref): Pass "stmt" to the dr_analyze_innermost call. 8781 (runtime_alias_check_p): Convert return type from bool to 8782 opt_result, converting dump_printf calls to 8783 opt_result::failure_at, using the statement DDR_A for their 8784 location. 8785 (find_data_references_in_stmt): Convert return type from bool to 8786 opt_result, converting "return false" to opt_result::failure_at 8787 with a new message. 8788 * tree-data-ref.h: Include "opt-problem.h". 8789 (dr_analyze_innermost): Convert return type from bool to opt_result, 8790 and add a const gimple * param. 8791 (find_data_references_in_stmt): Convert return type from bool to 8792 opt_result. 8793 (runtime_alias_check_p): Likewise. 8794 * tree-predcom.c (find_looparound_phi): Pass "init_stmt" to 8795 dr_analyze_innermost. 8796 * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): 8797 Convert return type from bool to opt_result, adding a message for 8798 the PARAM_VECT_MAX_VERSION_FOR_ALIAS_CHECKS zero case. 8799 (vect_analyze_data_ref_dependence): Convert return type from bool 8800 to opt_result. Change sense of return type from "false" 8801 effectively meaning "no problems" to "false" meaning a problem, 8802 so that "return false" becomes "return opt_result::success". 8803 Convert "return true" calls to opt_result::failure_at, using 8804 the location of statement A rather than vect_location. 8805 (vect_analyze_data_ref_dependences): Convert return type from bool 8806 to opt_result. 8807 (verify_data_ref_alignment): Likewise, converting dump_printf_loc 8808 calls to opt_result::failure_at, using the stmt location rather 8809 than vect_location. 8810 (vect_verify_datarefs_alignment): Convert return type from bool 8811 to opt_result. 8812 (vect_enhance_data_refs_alignment): Likewise. Split local "stat" 8813 into multiple more-tightly-scoped copies. 8814 (vect_analyze_data_refs_alignment): Convert return type from bool 8815 to opt_result. 8816 (vect_analyze_data_ref_accesses): Likewise, converting a 8817 "return false" to a "return opt_result::failure_at", adding a 8818 new message. 8819 (vect_prune_runtime_alias_test_list): Convert return type from 8820 bool to opt_result, converting dump_printf_loc to 8821 opt_result::failure_at. Add a %G to show the pertinent statement, 8822 and use the stmt's location rather than vect_location. 8823 (vect_find_stmt_data_reference): Convert return type from 8824 bool to opt_result, converting dump_printf_loc to 8825 opt_result::failure_at, using stmt's location. 8826 (vect_analyze_data_refs): Convert return type from bool to 8827 opt_result. Convert "return false" to "return 8828 opt_result::failure_at", adding messages as needed. 8829 * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Convert return 8830 type from bool to opt_result. 8831 (vect_determine_vf_for_stmt): Likewise. 8832 (vect_determine_vectorization_factor): Likewise, converting 8833 dump_printf_loc to opt_result::failure_at, using location of phi 8834 rather than vect_location. 8835 (vect_analyze_loop_form_1): Convert return type from bool to 8836 opt_result, converting dump_printf_loc calls, retaining the use of 8837 vect_location. 8838 (vect_analyze_loop_form): Convert return type from loop_vec_info 8839 to opt_loop_vec_info. 8840 (vect_analyze_loop_operations): Convert return type from bool to 8841 opt_result, converting dump_printf_loc calls, using the location 8842 of phi/stmt rather than vect_location where available. Convert 8843 various "return false" to "return opt_result::failure_at" with 8844 "unsupported phi" messages. 8845 (vect_get_datarefs_in_loop): Convert return type from bool to 8846 opt_result. Add a message for the 8847 PARAM_LOOP_MAX_DATAREFS_FOR_DATADEPS failure. 8848 (vect_analyze_loop_2): Convert return type from bool to 8849 opt_result. Ensure "ok" is set to a opt_result::failure_at before 8850 each "goto again;", adding new messages where needed. 8851 Add "unsupported grouped {store|load}" messages. 8852 (vect_analyze_loop): Convert return type from loop_vec_info to 8853 opt_loop_vec_info. 8854 * tree-vect-slp.c (vect_analyze_slp): Convert return type from 8855 bool to opt_result. 8856 * tree-vect-stmts.c (process_use): Likewise, converting 8857 dump_printf_loc call and using stmt location, rather than 8858 vect_location. 8859 (vect_mark_stmts_to_be_vectorized): Likeise. 8860 (vect_analyze_stmt): Likewise, adding a %G. 8861 (vect_get_vector_types_for_stmt): Convert return type from bool to 8862 opt_result, converting dump_printf_loc calls and using stmt 8863 location, rather than vect_location. 8864 (vect_get_mask_type_for_stmt): Convert return type from tree to 8865 opt_tree, converting dump_printf_loc calls and using stmt location. 8866 * tree-vectorizer.c: Include "opt-problem.h. 8867 (try_vectorize_loop_1): Flag "Analyzing loop at" dump message as 8868 MSG_PRIORITY_INTERNALS. Convert local "loop_vinfo" from 8869 loop_vec_info to opt_loop_vec_info. If if fails, and dumping is 8870 enabled, use it to report at the top level "couldn't vectorize 8871 loop" followed by the problem. 8872 * tree-vectorizer.h (opt_loop_vec_info): New typedef. 8873 (vect_mark_stmts_to_be_vectorized): Convert return type from bool 8874 to opt_result. 8875 (vect_analyze_stmt): Likewise. 8876 (vect_get_vector_types_for_stmt): Likewise. 8877 (tree vect_get_mask_type_for_stmt): Likewise. 8878 (vect_analyze_data_ref_dependences): Likewise. 8879 (vect_enhance_data_refs_alignment): Likewise. 8880 (vect_analyze_data_refs_alignment): Likewise. 8881 (vect_verify_datarefs_alignment): Likewise. 8882 (vect_analyze_data_ref_accesses): Likewise. 8883 (vect_prune_runtime_alias_test_list): Likewise. 8884 (vect_find_stmt_data_reference): Likewise. 8885 (vect_analyze_data_refs): Likewise. 8886 (vect_analyze_loop): Convert return type from loop_vec_info to 8887 opt_loop_vec_info. 8888 (vect_analyze_loop_form): Likewise. 8889 (vect_analyze_slp): Convert return type from bool to opt_result. 8890 88912018-10-04 David Malcolm <dmalcolm@redhat.com> 8892 8893 * doc/invoke.texi (-fopt-info): Document new "internals" 8894 sub-option. 8895 * dump-context.h (dump_context::apply_dump_filter_p): New decl. 8896 * dumpfile.c (dump_options): Update for renaming of MSG_ALL to 8897 MSG_ALL_KINDS. 8898 (optinfo_verbosity_options): Add "internals". 8899 (kind_as_string): Update for renaming of MSG_ALL to MSG_ALL_KINDS. 8900 (dump_context::apply_dump_filter_p): New member function. 8901 (dump_context::dump_loc): Use apply_dump_filter_p rather than 8902 explicitly masking the dump_kind. 8903 (dump_context::begin_scope): Increment the scope depth first. Use 8904 apply_dump_filter_p rather than explicitly masking the dump_kind. 8905 (dump_context::emit_item): Use apply_dump_filter_p rather than 8906 explicitly masking the dump_kind. 8907 (dump_dec): Likewise. 8908 (dump_hex): Likewise. 8909 (dump_switch_p_1): Default to MSG_ALL_PRIORITIES. 8910 (opt_info_switch_p_1): Default to MSG_PRIORITY_USER_FACING. 8911 (opt_info_switch_p): Update handling of default 8912 MSG_OPTIMIZED_LOCATIONS to cope with default of 8913 MSG_PRIORITY_USER_FACING. 8914 (dump_basic_block): Use apply_dump_filter_p rather than explicitly 8915 masking the dump_kind. 8916 (selftest::test_capture_of_dump_calls): Update test_dump_context 8917 instances to use MSG_ALL_KINDS | MSG_PRIORITY_USER_FACING rather 8918 than MSG_ALL. Generalize scope test to be run at all four 8919 combinations of with/without MSG_PRIORITY_USER_FACING and 8920 MSG_PRIORITY_INTERNALS, adding examples of explicit priority 8921 for each of the two values. 8922 * dumpfile.h (enum dump_flag): Add comment about the MSG_* flags. 8923 Rename MSG_ALL to MSG_ALL_KINDS. Add MSG_PRIORITY_USER_FACING, 8924 MSG_PRIORITY_INTERNALS, and MSG_ALL_PRIORITIES, updating the 8925 values for TDF_COMPARE_DEBUG and TDF_ALL_VALUES. 8926 (AUTO_DUMP_SCOPE): Add a note to the comment about the interaction 8927 with MSG_PRIORITY_*. 8928 * tree-vect-loop-manip.c (vect_loop_versioning): Mark versioning 8929 dump messages as MSG_PRIORITY_USER_FACING. 8930 * tree-vectorizer.h (DUMP_VECT_SCOPE): Add a note to the comment 8931 about the interaction with MSG_PRIORITY_*. 8932 89332018-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> 8934 8935 * varasm.c (output_constant): Add new parameter merge_strings. 8936 Make strings properly zero terminated in merge string sections. 8937 (mergeable_string_section): Don't fail if the last char is non-zero. 8938 (assemble_variable_contents): Handle merge string sections. 8939 (assemble_variable): Likewise. 8940 (assemble_constant_contents): Likewise. 8941 (output_constant_def_contents): Likewise. 8942 (output_constructor_array_range, 8943 output_constructor_regular_field): Adjust call to output_constant. 8944 (output_object_block): Adjust call to assemble_constant_contents 8945 and assemble_variable_contents. 8946 89472018-10-04 Martin Liska <mliska@suse.cz> 8948 8949 PR c/87483 8950 * cgraphunit.c (process_function_and_variable_attributes): 8951 Warn about a function with alias attribute and a body. 8952 89532018-10-04 Martin Liska <mliska@suse.cz> 8954 8955 PR ipa/82625 8956 * multiple_target.c (redirect_to_specific_clone): New function. 8957 (ipa_target_clone): Use it. 8958 * tree-inline.c: Fix comment. 8959 89602018-10-04 David Malcolm <dmalcolm@redhat.com> 8961 8962 * dumpfile.c (gcc::dump_manager::dump_manager): Initialize new 8963 fields. 8964 (gcc::dump_manager::~dump_manager): Free m_optinfo_filename. 8965 (gcc::dump_manager::register_pass): New member function, adapted 8966 from loop body in gcc::pass_manager::register_pass, adding a 8967 call to update_dfi_for_opt_info. 8968 (gcc::dump_manager::opt_info_enable_passes): Store the 8969 -fopt-info options into the new fields. Move the loop 8970 bodies into... 8971 (gcc::dump_manager::update_dfi_for_opt_info): ...this new member 8972 function. 8973 * dumpfile.h (struct opt_pass): New forward decl. 8974 (gcc::dump_manager::register_pass): New decl. 8975 (gcc::dump_manager::update_dfi_for_opt_info): New decl. 8976 (class gcc::dump_manager): Add fields "m_optgroup_flags", 8977 "m_optinfo_flags", and "m_optinfo_filename". 8978 * passes.c (gcc::pass_manager::register_pass): Move all of the 8979 dump-handling code to gcc::dump_manager::register_pass. 8980 89812018-10-04 Peter Bergner <bergner@linux.ibm.com> 8982 8983 PR rtl-optimization/87466 8984 * target.def (setjmp_preserves_nonvolatile_regs_p): New target hook. 8985 * doc/tm.texi.in (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): New hook. 8986 * doc/tm.texi: Regenerate. 8987 * ira-lives.c (process_bb_node_lives): Use the new target hook. 8988 * lra-lives.c (process_bb_lives): Likewise. 8989 * config/rs6000/rs6000.c (TARGET_SETJMP_PRESERVES_NONVOLATILE_REGS_P): 8990 Define. 8991 89922018-10-04 Tamar Christina <tamar.christina@arm.com> 8993 8994 * params.c (add_params): Fix initialization. 8995 89962018-10-04 Martin Liska <mliska@suse.cz> 8997 8998 PR gcov-profile/84107 8999 * tree-profile.c (init_ic_make_global_vars): 9000 Remove ic_void_ptr_var and ic_gcov_type_ptr_var. 9001 Come up with new ic_tuple* variables. Emit 9002 __gcov_indirect_call{,_topn} variables. 9003 (gimple_gen_ic_profiler): Access the variable 9004 and emit gimple. 9005 (gimple_gen_ic_func_profiler): Access 9006 __gcov_indirect_call.callee field. 9007 (gimple_init_gcov_profiler): Use ptr_type_node. 9008 * value-prof.c (gimple_ic): Use ptr_type_node. 9009 90102018-10-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 9011 9012 PR tree-optimization/85787 9013 * ipa-pure-const.c (malloc_candidate_p_1): Move most of 9014 malloc_candidate_p into this function and add support for 9015 detecting multiple phis. 9016 (DUMP_AND_RETURN): Move from malloc_candidate_p into top-level macro. 9017 90182018-10-04 Martin Liska <mliska@suse.cz> 9019 9020 PR ipa/87491 9021 * ipa-inline.c (inline_to_all_callers_1): 9022 Call ultimate_alias_target for node being inlined. 9023 90242018-10-03 Jeff Law <law@redhat.com> 9025 9026 * gimple-ssa-sprintf.c (format_string): Do not hardcode size of 9027 target's wchar_t. 9028 * tree.c (get_typenode_from_name): Moved from fortran/trans-types.c. 9029 * tree.h (get_typenode_from_name): Prototype. 9030 90312018-10-03 Uros Bizjak <ubizjak@gmail.com> 9032 9033 * config/i386/i386.md (*cmp<X87MODEF:mode>_<SWI24:mode>_i387): 9034 Change operand 2 predicate to nonimmediate_operand. 9035 (*cmp<X87MODEF:mode>_<SWI24:mode>_cc_i387): Ditto. 9036 90372018-10-03 Martin Sebor <msebor@redhat.com> 9038 Jeff Law <law@redhat.com> 9039 9040 * gimple-ssa-sprintf.c (struct fmtresult): Add new member and 9041 initialize it. 9042 (get_string_length): Detect unterminated arrays. 9043 (format_string): Same. 9044 (format_directive): Warn about unterminated arrays. 9045 (handle_gimple_call): Mark statements with no_warning as needed. 9046 90472018-10-03 Jim Wilson <jimw@sifive.com> 9048 9049 * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): For ABI_ILP32E, 9050 also define __riscv_abi_rve. Delete trailing white space. 9051 90522018-10-03 Paul Koning <ni1d@arrl.net> 9053 9054 Enable LRA register allocator for PDP11. 9055 * config/pdp11/constraints.md (Q): Use define_memory_constraint. 9056 (R): Likewise. 9057 (D): Likewise. 9058 * config/pdp11/pdp11.c (pdp11_lra_p): New function. 9059 * config/pdp11/pdp11.opt (-mlra): New option. 9060 * doc/invoke.texi (PDP-11 Options): Document -mlra. 9061 90622018-10-03 Uros Bizjak <ubizjak@gmail.com> 9063 9064 * config/i386/i386.md (*<absneg:code>extendsfdf2): Remove. 9065 (*<absneg:code>extend<mode>xf2): Ditto. 9066 90672018-10-03 Aldy Hernandez <aldyh@redhat.com> 9068 9069 PR tree-optimization/87415 9070 * tree-vrp.c (set_value_range_with_overflow): Special case one bit 9071 precision fields. 9072 90732018-10-02 Jeff Law <law@redhat.com> 9074 9075 * gimple-fold.c (get_range_strlen): Only set *nonstr when 9076 an unterminated string is discovered. Bubble up range 9077 even for unterminated strings. 9078 (gimple_fold_builtin_strlen): Do not fold if get_range_strlen 9079 indicates the string was not terminated via NONSTR. 9080 90812018-10-03 Aldy Hernandez <aldyh@redhat.com> 9082 9083 * tree-vrp.c (extract_range_from_unary_expr): Special case all 9084 pointer conversions. 9085 Do not do anything special for anti-ranges. 9086 90872018-10-03 Jérôme Lambourg <lambourg@adacore.com> 9088 9089 * config/arm/vxworks.h (ARM_TARGET2_DWARF_FORMAT): Adjust to 9090 DW_EH_PE_pcrel | DW_EH_PE_indirect for RTPs. 9091 90922018-10-03 Martin Liska <mliska@suse.cz> 9093 9094 PR gcov-profile/86109 9095 * coverage.c (coverage_begin_function): Do not 9096 mark lambdas as artificial. 9097 * tree-core.h (struct GTY): Remove tm_clone_flag 9098 and introduce new lambda_function. 9099 * tree.h (DECL_LAMBDA_FUNCTION): New macro. 9100 91012018-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> 9102 9103 PR target/87474 9104 * config/rs6000/rs6000-string.c (expand_strn_compare): Check that both 9105 P8_VECTOR and VSX are enabled. 9106 91072018-10-02 Andreas Krebbel <krebbel@linux.ibm.com> 9108 9109 * config/s390/driver-native.c (s390_host_detect_local_cpu): Add 9110 0x3907 as CPU model number. 9111 91122018-10-02 Andreas Krebbel <krebbel@linux.ibm.com> 9113 9114 * common/config/s390/s390-common.c: Rename PF_ARCH12 to PF_Z14. 9115 * config/s390/s390.h (enum processor_flags): Rename PF_ARCH12 to 9116 PF_Z14. Rename TARGET_CPU_ARCH12 to TARGET_CPU_Z14, 9117 TARGET_CPU_ARCH12_P to TARGET_CPU_Z14_P, TARGET_ARCH12 to 9118 TARGET_Z14, and TARGET_ARCH12_P to TARGET_Z14_P. 9119 * config/s390/s390.md: Likewise. Rename also the cpu attribute 9120 value from arch12 to z14. 9121 91222018-10-02 Uros Bizjak <ubizjak@gmail.com> 9123 9124 * config/i386/i386.md (fxam<mode>2_i387_with_temp): Remove. 9125 (isinfxf2): Ditto. 9126 (isinf<mode>2): Ditto. 9127 91282018-10-02 Uros Bizjak <ubizjak@gmail.com> 9129 9130 * config/i386/i386.c (ix86_emit_i387_round): Extend op1 to XFmode 9131 before emitting fxam. Perform calculations in XFmode. 9132 91332018-10-02 Marc Glisse <marc.glisse@inria.fr> 9134 9135 * match.pd (((X /[ex] A) +- B) * A): New transformation. 9136 91372018-10-02 Marc Glisse <marc.glisse@inria.fr> 9138 9139 PR middle-end/87319 9140 * fold-const.c (fold_plusminus_mult_expr): Handle complex and vectors. 9141 * tree.c (signed_or_unsigned_type_for): Handle complex. 9142 91432018-10-02 Jeff Law <law@redhat.com> 9144 9145 * gimple-fold.c (get_range_strlen): Remove dead code. 9146 91472018-10-02 Martin Sebor <msebor@redhat.com> 9148 Jeff Law <law@redhat.com> 9149 9150 * builtins.c (unterminated_array): Add new arguments. 9151 If argument is not terminated, bubble up size and exact 9152 state to callers. 9153 (expand_builtin_strnlen): Detect, avoid expanding 9154 and diagnose unterminated arrays. 9155 (c_strlen): Fill in offset of start of unterminated strings. 9156 * builtins.h (unterminated_array): Update prototype. 9157 91582018-10-02 Richard Biener <rguenther@suse.de> 9159 9160 * config/i386/sse.md (reduc_plus_scal_v4df): Avoid the use 9161 of haddv4df, first reduce to SSE width and exploit the fact 9162 that we only need element zero with the reduction result. 9163 (reduc_plus_scal_v2df): Likewise. 9164 91652018-10-02 Eric Botcazou <ebotcazou@adacore.com> 9166 9167 * dojump.h (do_jump): Delete. 9168 (do_jump_1): Likewise. 9169 (split_comparison): Move around. 9170 * dojump.c (do_jump): Make static. 9171 (do_jump_1): Likewise. 9172 (jumpifnot): Move around. 9173 (jumpifnot_1): Likewise. 9174 (jumpif): Likewise. 9175 (jumpif_1): Likewise. 9176 * expr.c (expand_expr_real_1): Call jumpif[not] instead of do_jump. 9177 91782018-10-02 Eric Botcazou <ebotcazou@adacore.com> 9179 9180 * reorg.c (make_return_insns): Use emit_copy_of_insn_after for the 9181 insns in the delay slot and add_insn_after for the jump insn. 9182 91832018-10-02 Richard Biener <rguenther@suse.de> 9184 9185 * tree-inline.c (expand_call_inline): Use the location of 9186 the callee declaration for the inline-entry marker. 9187 * final.c (notice_source_line): Remove special-casing of 9188 NOTE_INSN_INLINE_ENTRY. 9189 91902018-10-01 Carl Love <cel@us.ibm.com> 9191 9192 PR 69431 9193 * config/rs6000/rs6000-builtin.def (__builtin_mffsl): New. 9194 (__builtin_mtfsb0): New. 9195 (__builtin_mtfsb1): New. 9196 ( __builtin_set_fpscr_rn): New. 9197 (__builtin_set_fpscr_drn): New. 9198 * config/rs6000/rs6000.c (rs6000_expand_mtfsb_builtin): Add. 9199 (rs6000_expand_set_fpscr_rn_builtin): Add. 9200 (rs6000_expand_set_fpscr_drn_builtin): Add. 9201 (rs6000_expand_builtin): Add case statement entries for 9202 RS6000_BUILTIN_MTFSB0, RS6000_BUILTIN_MTFSB1, 9203 RS6000_BUILTIN_SET_FPSCR_RN, RS6000_BUILTIN_SET_FPSCR_DRN, 9204 RS6000_BUILTIN_MFFSL. 9205 (rs6000_init_builtins): Add ftype initialization and def_builtin 9206 calls for __builtin_mffsl, __builtin_mtfsb0, __builtin_mtfsb1, 9207 __builtin_set_fpscr_rn, __builtin_set_fpscr_drn. 9208 * config/rs6000.md (rs6000_mtfsb0, rs6000_mtfsb1, rs6000_mffscrn, 9209 rs6000_mffscdrn): Add define_insn. 9210 (rs6000_set_fpscr_rn, rs6000_set_fpscr_drn): Add define_expand. 9211 * doc/extend.texi: Add documentation for the builtins. 9212 92132018-10-01 Richard Biener <rguenther@suse.de> 9214 9215 PR tree-optimization/87465 9216 * tree-ssa-loop-ivcanon.c (tree_estimate_loop_size): Fix typo 9217 causing branch miscounts. 9218 92192018-10-01 Tamar Christina <tamar.christina@arm.com> 9220 9221 * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAM, 9222 aarch64_option_default_param): New. 9223 (params.h): Include. 9224 (TARGET_OPTION_VALIDATE_PARAM, aarch64_option_validate_param): New. 9225 * config/aarch64/aarch64.c (aarch64_override_options_internal): Simplify 9226 stack-clash protection validation code. 9227 92282018-10-01 Tamar Christina <tamar.christina@arm.com> 9229 9230 * params.c (validate_param): New. 9231 (add_params): Use it. 9232 (set_param_value): Refactor param validation into validate_param. 9233 (diagnostic.h): Include. 9234 * diagnostic.h (diagnostic_ready_p): New. 9235 92362018-10-01 Tamar Christina <tamar.christina@arm.com> 9237 9238 * params.c (set_param_value): 9239 Add index of parameter being validated. 9240 * common/common-target.def (option_validate_param): New. 9241 * common/common-targhooks.h (default_option_validate_param): New. 9242 * common/common-targhooks.c (default_option_validate_param): New. 9243 * doc/tm.texi.in (TARGET_OPTION_VALIDATE_PARAM): New. 9244 * doc/tm.texi: Regenerate. 9245 92462018-10-01 Tamar Christina <tamar.christina@arm.com> 9247 9248 PR target/86486 9249 * config/aarch64/aarch64.c (aarch64_override_options_internal): 9250 Add validation for stack-clash parameters and set defaults. 9251 92522018-10-01 Tamar Christina <tamar.christina@arm.com> 9253 9254 PR target/86486 9255 * configure.ac: Add stack-clash-protection-guard-size. 9256 * doc/install.texi: Document it. 9257 * config.in (DEFAULT_STK_CLASH_GUARD_SIZE): New. 9258 * params.def: Update comment for guard-size. 9259 (PARAM_STACK_CLASH_PROTECTION_GUARD_SIZE, 9260 PARAM_STACK_CLASH_PROTECTION_PROBE_INTERVAL): Update description. 9261 * configure: Regenerate. 9262 92632018-10-01 Tamar Christina <tamar.christina@arm.com> 9264 9265 PR target/86486 9266 * config/aarch64/aarch64.h (STACK_CLASH_MIN_BYTES_OUTGOING_ARGS, 9267 STACK_DYNAMIC_OFFSET): New. 9268 * config/aarch64/aarch64.c (aarch64_layout_frame): 9269 Update outgoing args size. 9270 (aarch64_stack_clash_protection_alloca_probe_range, 9271 TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. 9272 92732018-10-01 Tamar Christina <tamar.christina@arm.com> 9274 9275 PR target/86486 9276 * explow.c (anti_adjust_stack_and_probe_stack_clash): Support custom 9277 probe ranges. 9278 * target.def (stack_clash_protection_alloca_probe_range): New. 9279 (stack_clash_protection_final_dynamic_probe): Remove. 9280 * targhooks.h (default_stack_clash_protection_alloca_probe_range) New. 9281 (default_stack_clash_protection_final_dynamic_probe): Remove. 9282 * targhooks.c: Likewise. 9283 * doc/tm.texi.in (TARGET_STACK_CLASH_PROTECTION_ALLOCA_PROBE_RANGE): New. 9284 (TARGET_STACK_CLASH_PROTECTION_FINAL_DYNAMIC_PROBE): Remove. 9285 * doc/tm.texi: Regenerate. 9286 92872018-10-01 Tamar Christina <tamar.christina@arm.com> 9288 9289 PR target/86486 9290 * config/aarch64/aarch64-protos.h (aarch64_output_probe_sve_stack_clash): New. 9291 * config/aarch64/aarch64.c (aarch64_output_probe_sve_stack_clash, 9292 aarch64_clamp_to_uimm12_shift): New. 9293 (aarch64_allocate_and_probe_stack_space): Add SVE specific section. 9294 * config/aarch64/aarch64.md (probe_sve_stack_clash): New. 9295 92962018-10-01 Tamar Christina <tamar.christina@arm.com> 9297 9298 PR target/86486 9299 * config/aarch64/aarch64.c (aarch64_layout_frame): Add assert. 9300 93012018-10-01 Jeff Law <law@redhat.com> 9302 Richard Sandiford <richard.sandiford@linaro.org> 9303 Tamar Christina <tamar.christina@arm.com> 9304 9305 PR target/86486 9306 * config/aarch64/aarch64.md 9307 (probe_stack_range): Add k (SP) constraint. 9308 * config/aarch64/aarch64.h (STACK_CLASH_CALLER_GUARD, 9309 STACK_CLASH_MAX_UNROLL_PAGES): New. 9310 * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Emit 9311 stack probes for stack clash. 9312 (aarch64_allocate_and_probe_stack_space): New. 9313 (aarch64_expand_prologue): Use it. 9314 (aarch64_expand_epilogue): Likewise and update IP regs re-use criteria. 9315 (aarch64_sub_sp): Add emit_move_imm optional param. 9316 93172018-10-01 MCC CS <deswurstes@users.noreply.github.com> 9318 9319 PR tree-optimization/87261 9320 * match.pd: Remove trailing whitespace. 9321 Add (x & y) | ~(x | y) -> ~(x ^ y), 9322 (~x | y) ^ (x ^ y) -> x | ~y and (x ^ y) | ~(x | y) -> ~(x & y) 9323 93242018-10-01 Claudiu Zissulescu <claziss@synopsys.com> 9325 9326 * config/arc/arc.md (*add_n): Clean up pattern, update instruction 9327 constraints. 9328 (ashlsi3_insn): Update instruction constraints. 9329 (ashrsi3_insn): Likewise. 9330 (rotrsi3): Likewise. 9331 (add_shift): Likewise. 9332 * config/arc/constraints.md (Csz): New 32 bit constraint. It 9333 avoids placing in the limm field small constants which, otherwise, 9334 could end into a small instruction. 9335 93362018-10-01 Claudiu Zissulescu <claziss@synopsys.com> 9337 9338 * config/arc/arc.md (maddsidi4_split): Don't use dmac if the 9339 destination register is not odd-even. 9340 (umaddsidi4_split): Likewise. 9341 93422018-10-01 Richard Biener <rguenther@suse.de> 9343 9344 * tree-inline.c (expand_call_inline): Store origin of fn 9345 in BLOCK_ABSTRACT_ORIGIN for the inline BLOCK. 9346 * tree.c (block_ultimate_origin): Simplify and do some 9347 checking. 9348 93492018-09-30 Uros Bizjak <ubizjak@gmail.com> 9350 9351 * config/i386/mmx.md (EMMS): New int iterator. 9352 (emms): New int attribute. 9353 (mmx_<emms>): Macroize insn from *mmx_emms and *mmx_femms using 9354 EMMS int iterator. Explicitly declare clobbers. 9355 (mmx_emms): Remove expander. 9356 (mmx_femms): Ditto. 9357 * config/i386/predicates.md (emms_operation): Remove predicate. 9358 (vzeroall_pattern): New predicate. 9359 (vzeroupper_pattern): Rename from vzeroupper_operation. 9360 * config/i386/i386.c (ix86_avx_u128_mode_after): Use 9361 vzeroupper_pattern and vzeroall_pattern predicates. 9362 93632018-09-30 Peter Bergner <bergner@linux.ibm.com> 9364 9365 PR rtl-optimization/86939 9366 * ira-lives.c (make_hard_regno_born): Rename from this... 9367 (make_hard_regno_live): ... to this. Remove update to conflict 9368 information. Update function comment. 9369 (make_hard_regno_dead): Add conflict information update. Update 9370 function comment. 9371 (make_object_born): Rename from this... 9372 (make_object_live): ... to this. Remove update to conflict information. 9373 Update function comment. 9374 (make_object_dead): Add conflict information update. Update function 9375 comment. 9376 (mark_pseudo_regno_live): Call make_object_live. 9377 (mark_pseudo_regno_subword_live): Likewise. 9378 (mark_hard_reg_dead): Update function comment. 9379 (mark_hard_reg_live): Call make_hard_regno_live. 9380 (process_bb_node_lives): Likewise. 9381 * lra-lives.c (make_hard_regno_born): Rename from this... 9382 (make_hard_regno_live): ... to this. Remove update to conflict 9383 information. Remove now uneeded check_pic_pseudo_p argument. 9384 Update function comment. 9385 (make_hard_regno_dead): Add check_pic_pseudo_p argument and add update 9386 to conflict information. Update function comment. 9387 (mark_pseudo_live): Remove update to conflict information. Update 9388 function comment. 9389 (mark_pseudo_dead): Add conflict information update. 9390 (mark_regno_live): Call make_hard_regno_live. 9391 (mark_regno_dead): Call make_hard_regno_dead with new arguement. 9392 (process_bb_lives): Call make_hard_regno_live and make_hard_regno_dead. 9393 93942018-09-29 H.J. Lu <hongjiu.lu@intel.com> 9395 9396 PR target/87370 9397 * config/i386/i386.c (construct_container): Use TImode for 9398 BLKmode values in 2 integer registers. 9399 94002018-09-29 Jeff Law <law@redhat.com> 9401 9402 * builtins.c (unterminated_array): Pass in c_strlen_data * to 9403 c_strlen rather than just a tree *. 9404 (c_strlen): Change NONSTR argument to a c_strlen_data pointer. 9405 Update recursive calls appropriately. If caller did not provide a 9406 suitable data pointer, create a local one. When a non-terminated 9407 string is discovered, bubble up information about the string via the 9408 c_strlen_data object. 9409 * builtins.h (c_strlen): Update prototype. 9410 (c_strlen_data): New structure. 9411 * gimple-fold.c (get_range_strlen): Update calls to c_strlen. 9412 For a type 2 call, if c_strlen indicates a non-terminated string 9413 use the length of the non-terminated string. 9414 (gimple_fold_builtin_stpcpy): Update calls to c_strlen. 9415 94162018-09-29 Jakub Jelinek <jakub@redhat.com> 9417 9418 PR target/87467 9419 * config/i386/avx512fintrin.h (_mm512_abs_pd, _mm512_mask_abs_pd): Use 9420 __m512d type for __A argument rather than __m512. 9421 94222018-09-28 John David Anglin <danglin@gcc.gnu.org> 9423 9424 * match.pd (simple_comparison): Don't optimize if either operand is 9425 a function pointer when target needs function pointer canonicalization. 9426 94272018-09-28 Segher Boessenkool <segher@kernel.crashing.org> 9428 9429 * config/rs6000/driver-rs6000.c (asm_names): Adjust the entries for 9430 power5 .. power9 to remove indirection. 9431 * config/rs6000/rs6000.h (ASM_CPU_POWER5_SPEC, ASM_CPU_POWER6_SPEC, 9432 ASM_CPU_POWER7_SPEC, ASM_CPU_POWER8_SPEC, ASM_CPU_POWER9_SPEC, 9433 ASM_CPU_476_SPEC): Delete. 9434 (ASM_CPU_SPEC): Adjust. 9435 (EXTRA_SPECS): Delete asm_cpu_power5, asm_cpu_power6, asm_cpu_power7, 9436 asm_cpu_power8, asm_cpu_power9, asm_cpu_476. 9437 94382018-09-28 Segher Boessenkool <segher@kernel.crashing.org> 9439 9440 * config.in: Delete HAVE_AS_DCI. 9441 * config/powerpcspe/powerpcspe.h: Treat HAVE_AS_DCI as always true. 9442 * config/rs6000/rs6000.h: Ditto. 9443 * configure.ac: Delete HAVE_AS_DCI. 9444 * configure: Regenerate. 9445 94462018-09-28 Segher Boessenkool <segher@kernel.crashing.org> 9447 9448 * config.in (HAVE_AS_LWSYNC): Delete. 9449 * config/powerpcspe/powerpcspe.h (TARGET_LWSYNC_INSTRUCTION): Delete. 9450 * config/powerpcspe/sync.md (*lwsync): Always generate lwsync, never 9451 do it as a .long . 9452 * config/rs6000/rs6000.h (TARGET_LWSYNC_INSTRUCTION): Delete. 9453 * config/rs6000/sync.md (*lwsync): Always generate lwsync, never do it 9454 as a .long . 9455 * configure.ac: Delete HAVE_AS_LWSYNC. 9456 * configure: Regenerate. 9457 94582018-09-28 Eric Botcazou <ebotcazou@adacore.com> 9459 Pierre-Marie de Rodat <derodat@adacore.com> 9460 9461 * calls.c (expand_call): Try to do a tail call for thunks at -O0 too. 9462 * cgraph.h (struct cgraph_thunk_info): Add indirect_offset. 9463 (cgraph_node::create_thunk): Add indirect_offset parameter. 9464 (thunk_adjust): Likewise. 9465 * cgraph.c (cgraph_node::create_thunk): Add indirect_offset parameter 9466 and initialize the corresponding field with it. 9467 (cgraph_node::dump): Dump indirect_offset field. 9468 * cgraphclones.c (duplicate_thunk_for_node): Deal with indirect_offset. 9469 * cgraphunit.c (cgraph_node::analyze): Be prepared for external thunks. 9470 (thunk_adjust): Add indirect_offset parameter and deal with it. 9471 (cgraph_node::expand_thunk): Deal with the indirect_offset field and 9472 pass it to thunk_adjust. Do not call the target hook if it's non-zero 9473 or if the thunk is external or local. Fix formatting. Do not chain 9474 the RESULT_DECL to BLOCK_VARS. Pass the static chain to the target, 9475 if any, in the GIMPLE representation. 9476 * ipa-icf.c (sem_function::equals_wpa): Deal with indirect_offset. 9477 * lto-cgraph.c (lto_output_node): Write indirect_offset field. 9478 (input_node): Read indirect_offset field. 9479 * tree-inline.c (expand_call_inline): Pass indirect_offset field in the 9480 call to thunk_adjust. 9481 * tree-nested.c (struct nesting_info): Add thunk_p field. 9482 (create_nesting_tree): Set it. 9483 (convert_all_function_calls): Copy static chain from targets to thunks. 9484 (finalize_nesting_tree_1): Return early for thunks. 9485 (unnest_nesting_tree_1): Do not finalize thunks. 9486 (gimplify_all_functions): Do not gimplify thunks. 9487 94882018-09-28 David Malcolm <dmalcolm@redhat.com> 9489 9490 * opt-suggestions.c (option_proposer::build_option_suggestions): 9491 Release "option_values". 9492 94932018-09-28 David Malcolm <dmalcolm@redhat.com> 9494 9495 * coverage.c (get_coverage_counts): Convert problem-reporting dump 9496 messages from MSG_OPTIMIZED_LOCATIONS to MSG_MISSED_OPTIMIZATION. 9497 * dumpfile.c (kind_as_string): New function. 9498 (dump_loc): Rather than a hardcoded prefix of "note: ", use 9499 kind_as_string to vary the prefix based on dump_kind. 9500 (selftest::test_capture_of_dump_calls): Update for above. 9501 95022018-09-28 Uros Bizjak <ubizjak@gmail.com> 9503 9504 * config/i386/i386.h (SSE_REGNO): Fix check for FIRST_REX_SSE_REG. 9505 (GET_SSE_REGNO): Rename from SSE_REGNO. Update all uses for rename. 9506 95072018-09-28 Uros Bizjak <ubizjak@gmail.com> 9508 9509 * config/i386/i386.h (CC_REGNO): Remove FPSR_REG. 9510 * config/i386/i386.c (ix86_fixed_condition_code_regs): Use 9511 INVALID_REGNUM instead of FPSR_REG. 9512 (ix86_md_asm_adjust): Do not clobber FPSR_REG. 9513 * config/i386/i386.md: Update comment of FP compares. 9514 (fldenv): Do not clobber FPSR_REG. 9515 95162018-09-28 Richard Biener <rguenther@suse.de> 9517 9518 * tree.h (BLOCK_ORIGIN): New. 9519 * omp-expand.c (grid_expand_target_grid_body): Assign 9520 BLOCK_ORIGIN to BLOCK_ABSTRACT_ORIGIN. 9521 * tree-inline.c (remap_block): Likewise. 9522 * auto-profile.c (get_function_decl_from_block): Simplify 9523 by eliding the BLOCK_ABSTRACT_ORIGIN chasing. 9524 * langhooks.c (lhd_print_error_function): Likewise. 9525 * optinfo-emit-json.cc (optrecord_json_writer::inlining_chain_to): 9526 Likewise. 9527 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. 9528 * tree.c (block_nonartificial_location): Likewise. 9529 (block_ultimate_origin): Likewise. 9530 * tree-pretty-print.c (percent_K_format): Likewise. Remove 9531 no longer needed LTO case. 9532 95332018-09-28 Andrew Stubbs <ams@codesourcery.com> 9534 Jan Hubicka <jh@suse.cz> 9535 Martin Jambor <mjambor@suse.cz> 9536 9537 * simplify-rtx.c (simplify_merge_mask): New function. 9538 (simplify_ternary_operation): Use it, also see if VEC_MERGEs with the 9539 same masks are used in op1 or op2. 9540 (test_vec_merge): New function. 9541 (test_vector_ops): Call test_vec_merge. 9542 95432018-09-28 Eric Botcazou <ebotcazou@adacore.com> 9544 9545 * config/sparc/sparc-protos.h (sparc_branch_cost): Declare. 9546 * config/sparc/sparc.h (BRANCH_COST): Call sparc_branch_cost. 9547 * config/sparc/sparc.c (struct processor_costs): Add branch_cost field. 9548 (cypress_costs): Set it. 9549 (supersparc_costs): Likewise. 9550 (hypersparc_costs): Likewise. 9551 (leon_cost): Likewise. 9552 (leon3_costs): Likewise. 9553 (sparclet_costs): Likewise. 9554 (ultrasparc_costs): Likewise. 9555 (ultrasparc_costs): Likewise. 9556 (niagara_costs): Likewise. 9557 (niagara2_costs): Likewise. 9558 (niagara3_costs): Likewise. 9559 (niagara4_costs): Likewise. 9560 (niagara7_costs): Likewise. 9561 (m8_costs): Likewise. 9562 (TARGET_CAN_FOLLOW_JUMP): Define. 9563 (pass_work_around_errata::gate): Minor tweak. 9564 (sparc_option_override): Remove MASK_FSMULD mask for V7 processors. 9565 Do not set both MASK_VIS4 and MASK_VIS4B for M8 processor. 9566 Automaitcally clear MASK_FSMULD mask for V7 processors. 9567 (sparc_can_follow_jump): New static function. 9568 (output_ubranch): Deal with CROSSING_JUMP_P. 9569 (sparc_use_sched_lookahead): Rewrite using switch statement. 9570 (sparc_issue_rate): Reorder. 9571 (sparc_branch_cost): New function. 9572 95732018-09-27 Martin Sebor <msebor@redhat.com> 9574 9575 * tree.h (tree_to_shwi): Add attribute nonnull and pure. 9576 (tree_to_poly_int64, tree_to_uhwi, tree_to_poly_uint64): Same. 9577 (int_fits_type_p): Same. 9578 95792018-09-27 Uros Bizjak <ubizjak@gmail.com> 9580 9581 * config/i386/i386.md (FPCR_REG): Remove. 9582 (UNSPEC_FLDCW): Remove. 9583 (x86_fnstcw_1): Use (const_int 0) instead of FPCR_REG. 9584 (x86_fldcw_1): Remove insn pattern. 9585 (fnstenv): Do not clobber FPCR_REG. 9586 (fldenv): Ditto. 9587 * config/i386/i386.h (FIXED_REGISTERS) Remove fpsr register. 9588 (CALL_USED_REGISTERS): Ditto. 9589 (REG_ALLOC_ORDER): Ditto. 9590 (REG_CLASS_CONTENTS): Ditto. 9591 (HI_REGISTER_NAMES): Ditto. 9592 (ADDITIONAL_REGISTER_NAMES): Use defines instead 9593 of numerical constants. 9594 * config/i386/i386.c (regclass_map): Remove fpsr register. 9595 (dbx_register_map): Ditto. 9596 (dbx64_register_map): Ditto. 9597 (svr4_dbx_register_map): Ditto. 9598 (print_reg): Do not handle FPCR_REG. 9599 96002018-09-27 Segher Boessenkool <segher@kernel.crashing.org> 9601 9602 PR target/87149 9603 * config.in (HAVE_AS_CMPB, HAVE_AS_DFP, HAVE_AS_FPRND, HAVE_AS_MFPGPR, 9604 HAVE_AS_POPCNTB, HAVE_AS_POPCNTD, HAVE_AS_POWER8, HAVE_AS_POWER9): 9605 Delete, always treat as true. 9606 * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): 9607 Ditto. Simplify remaining code. 9608 * config/powerpcspe/powerpcspe.h: Ditto. 9609 * config/rs6000/rs6000.c (rs6000_option_override_internal): Ditto. 9610 Simplify remaining code. 9611 (rs6000_expand_builtin): Ditto. 9612 * config/rs6000/rs6000.h: Ditto. 9613 * configure.ac: Ditto. 9614 * configure: Regenerate. 9615 96162018-09-27 Martin Liska <mliska@suse.cz> 9617 9618 * coverage.c (get_coverage_counts): Revert the formatting 9619 of missing profile opt info. 9620 96212018-09-27 Richard Biener <rguenther@suse.de> 9622 9623 PR debug/37801 9624 PR debug/87440 9625 * dwarf2out.c (set_block_origin_self): Do not mark outermost 9626 block as we do not output that. 9627 (gen_inlined_subroutine_die): Elide the originally outermost 9628 block, matching what we do for concrete instances. 9629 (decls_for_scope): Add parameter specifying whether to recurse 9630 to subblocks. 9631 96322018-09-27 Andrew Stubbs <ams@codesourcery.com> 9633 Tom de Vries <tom@codesourcery.com> 9634 9635 PR 82089 9636 9637 * expmed.c (emit_cstore): Fix handling of result_mode == BImode and 9638 STORE_FLAG_VALUE == 1. 9639 96402018-09-27 Andreas Krebbel <krebbel@linux.ibm.com> 9641 9642 * config/s390/s390.md (PPA_TX_ABORT, PPA_OOO_BARRIER): New 9643 constant definitions. 9644 ("tx_assist"): Replace magic number with PPA_TX_ABORT. 9645 ("*ppa"): Enable pattern also for -march=zEC12 -mno-htm. 9646 ("speculation_barrier"): New expander definition. 9647 96482018-09-26 Indu Bhagat <indu.bhagat@oracle.com> 9649 9650 PR gcov-profile/86957 9651 * common.opt: New warning option -Wmissing-profile. 9652 * coverage.c (get_coverage_counts): Add warning for missing .gcda file. 9653 * doc/invoke.texi: Document -Wmissing-profile. 9654 96552018-09-26 Jim Wilson <jimw@sifive.com> 9656 9657 * config/riscv/riscv.md (subsi3_extended2): Add J constraint. 9658 (negdi2, negsi2, negsi2_extended, negsi2_extended2): New. 9659 96602018-09-26 Martin Sebor <msebor@redhat.com> 9661 9662 * tree.c (zerop): Change return type to bool. 9663 (integer_zerop, integer_onep, integer_each_onep): Same. 9664 (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. 9665 (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. 9666 (real_onep, real_minus_onep, chain_index): Same. 9667 (print_type_hash_statistics, type_list_equal): Same. 9668 * tree.h (zerop): Same. 9669 (zerop, integer_zerop, integer_onep, integer_each_onep): Same. 9670 (integer_all_onesp, integer_minus_onep, integer_pow2p): Same. 9671 (integer_nonzerop, integer_truep, tree_ctz, real_zerop): Same. 9672 (real_onep, real_minus_onep, chain_index): Same. 9673 (print_type_hash_statistics, type_list_equal): Same. 9674 96752018-09-26 Jim Wilson <jimw@sifive.com> 9676 9677 * config/riscv/riscv.h (FUNCTION_ARG_REGNO_P): Fix comment. 9678 96792018-09-26 Jakub Jelinek <jakub@redhat.com> 9680 9681 PR target/87414 9682 * config/i386/i386.c: Include debug.h and dwarf2out.h. 9683 (output_indirect_thunk): Emit DW_CFA_def_cfa_offset after the 9684 call. 9685 96862018-09-25 Andrew Stubbs <ams@codesourcery.com> 9687 9688 * builtins.c (get_builtin_sync_mem): Force address mode conversion. 9689 96902018-09-26 Uros Bizjak <ubizjak@gmail.com> 9691 9692 * config/i386/i386.h (enum reg_class): Remove FP_TOP_SSE_REGS 9693 and FP_SECOND_SSE_REGS. 9694 (REG_CLASS_NAMES): Ditto. 9695 (REG_CLASS_CONTENTS): Ditto. 9696 * config/i386/i386.c (ix86_preferred_reload_class) Do not handle 9697 FP_TOP_SSE_REGS and FP_SECOND_SSE_REGS classes. 9698 (ix86_preferred_output_reload_class): Ditto. 9699 * config/i386/i386.md (fix_trunc<mode>_i387_fisttp): Change "=&1f" 9700 clobber constraint to "=&f". 9701 (fix_truncdi_i387): Ditto. 9702 (lrintxfdi2): Ditto. 9703 (fistdi2_<rounding>): Ditto. 9704 (fpremxf4_i387): Change "=u" constraint to "=f". 9705 (fprem1xf4_i387): Ditto. 9706 (sincosxf3): Ditto. 9707 (fptanxf4_i387): Ditto. 9708 (fxtractxf3_i387): Ditto. 9709 (fscalexf4_i387): Ditto. 9710 (atan2xf3): Change "u" constraint to "f". 9711 (fyl2xxf3_i387): Ditto. 9712 (fyl2xp1xf3_i387): Ditto. 9713 97142018-09-26 Uros Bizjak <ubizjak@gmail.com> 9715 9716 PR target/87439 9717 * config/i386/i386.h (NUM_MODES_FOR_MODE_SWITCHING): Update 9718 for removed I387_MASK_PM entity. 9719 9720 97212018-09-26 Jeff Law <law@redhat.com> 9722 Revert 9723 2018-09-26 Alexey Neyman <stilor@att.net> 9724 9725 * graphite.h: Include <isl/id.h> and <isl/space.h>; these 9726 headers are no longer pulled in by <isl/val.h>. 9727 97282018-09-26 Richard Biener <rguenther@suse.de> 9729 9730 PR debug/87443 9731 * dwarf2out.c (gen_lexical_block_die): Do not equate inline 9732 or concrete instance DIE to the tree. Create abstract origin 9733 attributes also for concrete instances. 9734 97352018-09-26 Alexey Neyman <stilor@att.net> 9736 9737 * graphite.h: Include <isl/id.h> and <isl/space.h>; these 9738 headers are no longer pulled in by <isl/val.h>. 9739 97402018-09-26 Matthew Malcomson <matthew.malcomson@arm.com> 9741 9742 * config/arm/arm.c (arm_split_compare_and_swap, arm_split_atomic_op): 9743 Use new helper functions. 9744 * config/arm/sync.md (atomic_load<mode>, atomic_store<mode>): 9745 Use new helper functions. 9746 * config/arm/aarch-common-protos.h (aarch_mm_needs_acquire, 9747 aarch_mm_needs_release): New declarations. 9748 * config/arm/aarch-common.c (aarch_mm_needs_acquire, 9749 aarch_mm_needs_release): New. 9750 97512018-09-26 Eric Botcazou <ebotcazou@adacore.com> 9752 9753 * config/arm/arm.c (arm_reorg): Skip Thumb reorg pass for thunks. 9754 (arm32_output_mi_thunk): Deal with long calls. 9755 97562018-09-26 Richard Biener <rguenther@suse.de> 9757 9758 PR debug/87428 9759 PR debug/87362 9760 * tree-inline.c (expand_call_inline): When the location 9761 of the call is UNKNOWN_LOCATION use DECL_SOURCE_LOCATION 9762 or BUILTINS_LOCATION for the BLOCK_SOURCE_LOCATION of 9763 the inserted BLOCK to make inlined_function_outer_scope_p 9764 recognize it. 9765 * dwarf2out.c (add_call_src_coords_attributes): Do not add 9766 coords for reserved locations. 9767 97682018-09-25 Segher Boessenkool <segher@kernel.crashing.org> 9769 9770 * config/rs6000/rs6000.md (*movcc_internal1): Use set_attr_alternative. 9771 (*call_indirect_nonlocal_sysv<mode>): Ditto. 9772 (*call_value_indirect_nonlocal_sysv<mode>): Ditto. 9773 (*sibcall_nonlocal_sysv<mode>): Ditto. 9774 (*sibcall_value_nonlocal_sysv<mode>): Ditto. 9775 (<bd>_<mode>): Ditto. 9776 (<bd>tf_<mode>): Ditto. 9777 97782018-09-25 Segher Boessenkool <segher@kernel.crashing.org> 9779 9780 * config/rs6000/altivec.md (*altivec_mov<mode>): Write the output 9781 control string as a list of templates instead of as C code. 9782 (*altivec_movti): Ditto. 9783 * config/rs6000/darwin.md (movdf_low_di): Ditto. 9784 97852018-09-25 Jim Wilson <jimw@sifive.com> 9786 9787 * config/riscv/riscv.c (riscv_split_symbol): Mark auipc label as weak 9788 when target symbol is weak. 9789 97902018-09-25 Bernd Edlinger <bernd.edlinger@hotmail.de> 9791 9792 PR c/87387 9793 * builtins.c (unterminated_array): Simplify. 9794 * expr.c (string_constant): Handle SSA_NAME. Add more exceptions 9795 where pointer arithmetic is safe. 9796 97972018-09-25 Segher Boessenkool <segher@kernel.crashing.org> 9798 9799 PR target/86987 9800 * config/rs6000/altivec.md (altivec_vspltb): Use 9801 const_0_to_15_operand instead of u5bit_cint_operand. 9802 (*altivec_vspltb_internal): Ditto. 9803 (altivec_vspltb_direct): Ditto. 9804 (altivec_vsplth): Use const_0_to_7_operand instead of 9805 u5bit_cint_operand. 9806 (*altivec_vsplth_internal): Ditto. 9807 (altivec_vsplth_direct): Ditto. 9808 (altivec_vspltw): Use const_0_to_3_operand instead of 9809 u5bit_cint_operand. 9810 (*altivec_vspltw_internal): Ditto. 9811 (altivec_vspltw_direct): Ditto. 9812 (altivec_vspltsf): Ditto. 9813 (*altivec_vspltsf_internal): Ditto. 9814 * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Handle the 9815 various splats with the proper size immediate. Reorder the various 9816 cases by ascending size of immediate, and put all such together. 9817 98182018-09-25 Richard Biener <rguenther@suse.de> 9819 9820 PR debug/83941 9821 * dwarf2out.c (add_AT_external_die_ref): Remove now redundant 9822 GC-ification. 9823 (maybe_create_die_with_external_ref): Do not create 9824 DW_TAG_imported_unit here. 9825 (add_abstract_origin_attribute): Handle external BLOCK refs. 9826 (dwarf2out_abstract_function): Simplify LTO case. 9827 (dwarf2out_early_finish): Create DW_TAG_imported_unit explicitely 9828 rather than using maybe_create_die_with_external_ref. 9829 98302018-09-25 Uros Bizjak <ubizjak@gmail.com> 9831 9832 PR target/71278 9833 * config/i386/i386.md (frndintxf2_mask_pm): Remove. 9834 (frndintxf2_mask_pm_i387): Ditto. 9835 (nearbyintxf2): Rewrite expander pattern to match rintxf2. 9836 Enable for !flag_trapping_math. 9837 (nearbyint<mode>2): Enable x87 modes for !flag_trapping_math. 9838 Enable SSE modes for TARGET_SSE4_1 and expand them with round insn. 9839 Change operand 1 predicate to nonimmediate_operand. 9840 (attr "i387_cw"): Remove mask_pm. 9841 * config/i386/i386.h (enum ix86_stack_slot): Remove SLOT_CW_MASK_PM. 9842 (enum ix86_entity): Remove I387_MASK_PM. 9843 * config/i386/i386.c (ix86_i387_mode_needed): Do not 9844 handle I387_MASK_PM. 9845 (ix86_mode_needed): Ditto. 9846 (ix86_mode_after): Ditto. 9847 (ix86_mode_entry): Ditto. 9848 (ix86_mode_exit): Ditto. 9849 (emit_i387_cw_initialization): Do not handle I387_CW_MASK_PM. 9850 98512018-09-25 Jakub Jelinek <jakub@redhat.com> 9852 9853 * vr-values.c (vr_values::vr_values): Initialize to_remove_edges and 9854 to_update_switch_stmts to vNULL instead of calling create on them 9855 immediately. 9856 98572018-09-25 Richard Biener <rguenther@suse.de> 9858 9859 PR tree-optimization/87402 9860 * tree-ssa-sccvn.c (SSA_VISITED): Remove unused function. 9861 (visit_phi): Re-instantiate handling of supposed to be VARYING 9862 but non-VARYING backedge value. 9863 98642018-09-25 Richard Biener <rguenther@suse.de> 9865 9866 PR debug/83941 9867 * dwarf2out.c (struct sym_off_pair): New. 9868 (external_die_map): New global. 9869 (lookup_decl_die): When in LTO create DIEs lazily from the 9870 external_die_map. 9871 (lookup_block_die): New function, create DIEs lazily in LTO. 9872 (equate_block_to_die): New function. 9873 (dwarf2out_die_ref_for_decl): During WPA get the association 9874 from the external DIE map. 9875 (dwarf2out_register_external_die): Record mapping into the 9876 external DIE map. 9877 (maybe_create_die_with_external_ref): New function split out from 9878 DIE generation part of old dwarf2out_register_external_die. 9879 (add_abstract_origin_attribute): Do not return the DIE. When 9880 in LTO reference externals directly. 9881 (dwarf2out_abstract_function): When in LTO ignore calls for 9882 decls with external DIEs (already present abstract instances). 9883 (gen_call_site_die): Adjust. 9884 (add_high_low_attributes): Likewise. 9885 (gen_lexical_block_die): Likewise. 9886 (gen_inlined_subroutine_die): Likewie. 9887 (gen_block_die): Likewise. 9888 (dwarf2out_inline_entry): Likewise. 9889 (dwarf2out_early_finish): In LTRANS phase create DW_TAG_imported_unit 9890 DIEs. 9891 98922018-09-25 Martin Liska <mliska@suse.cz> 9893 9894 * ipa-fnsummary.c (estimate_node_size_and_time): Scale by two 9895 integers and not by a float value. 9896 98972018-09-25 Martin Liska <mliska@suse.cz> 9898 9899 PR fortran/87394 9900 * dbgcnt.c (dbg_cnt_process_single_pair): Return false 9901 instead of NULL. 9902 * dumpfile.c (dump_enable_all): Remove extra parenthesis. 9903 * gcov-tool.c: Declare the function with ATTRIBUTE_NORETURN. 9904 * godump.c (go_format_type): Remove extra parenthesis. 9905 99062018-09-25 Martin Liska <mliska@suse.cz> 9907 9908 * alias.c (set_dest_equal_p): Remove unused function. 9909 * config/i386/i386.c (def_builtin_pure2): Likewise. 9910 * diagnostic-show-locus.c (class layout): Remove 9911 unused field. 9912 (layout::layout): Likewise here. 9913 * dump-context.h (class temp_dump_context): Likewise. 9914 * dwarf2out.c (add_AT_fde_ref): Remove unused function. 9915 (add_AT_loclistsptr): Likewise. 9916 (add_AT_offset): Likewise. 9917 (get_AT_hi_pc): Likewise. 9918 (is_comdat_die): Likewise. 9919 (type_is_enum): Likewise. 9920 (ceiling): Likewise. 9921 (add_AT_vms_delta): Likewise. 9922 (is_class_die): Likewise. 9923 * edit-context.c (class line_event): Remove unused field. 9924 * graphite-sese-to-poly.c (tree_int_to_gmp): Remove 9925 unused function. 9926 * ipa-cp.c (ipa_get_vr_lat): Likewise. 9927 * lra-constraints.c (ok_for_index_p_nonstrict): Likewise. 9928 (ok_for_base_p_nonstrict): Likewise. 9929 * tree-chrec.c (is_not_constant_evolution): Likewise. 9930 (chrec_fold_poly_cst): Likewise. 9931 * tree-if-conv.c (has_pred_critical_p): Likewise. 9932 * tree-ssa-coalesce.c (print_exprs): Likewise. 9933 * tree-ssa-pre.c (bitmap_set_contains_expr): Likewise. 9934 * tree-ssa-uninit.c (is_and_or_or_p): Likewise. 9935 * tree-vrp.c (value_ranges_intersect_p): Likewise. 9936 (value_range_nonnegative_p): Likewise. 9937 99382018-09-25 Martin Liska <mliska@suse.cz> 9939 9940 * config/powerpcspe/powerpcspe.c (rs6000_output_function_epilogue): 9941 Do not handle "GNU Pascal". 9942 * config/rs6000/rs6000.c (rs6000_output_function_epilogue): 9943 Likewise. 9944 * config/sparc/sparc.c (sparc_pass_by_reference): Remove Pascal 9945 from documentation. Likewise. 9946 * dbxout.c (dbxout_range_type): Likewise. 9947 * doc/cpp.texi: Likewise. 9948 * doc/extend.texi: Likewise. 9949 * doc/frontends.texi: Likewise. 9950 * doc/invoke.texi: Remove Pascal entry. 9951 * tree.def (CLEANUP_POINT_EXPR): Likewise. 9952 * doc/rtl.texi (MODE_FUNCTION): Remove not used entry. 9953 99542018-09-25 Martin Liska <mliska@suse.cz> 9955 9956 PR middle-end/86078 9957 * doc/invoke.texi: Document all parameters and remove default 9958 of the parameters. 9959 99602018-09-25 Ilya Leoshkevich <iii@linux.ibm.com> 9961 9962 PR bootstrap/87417 9963 * rtl.c (rtx_code_size): Take into account that EQ_ATTR_ALT 9964 contains HOST_WIDE_INTs when computing its size. 9965 99662018-09-24 Jim Wilson <jimw@sifive.com> 9967 9968 PR target/87391 9969 * config/riscv/riscv.h (STACK_BOUNDARY): Test riscv_abi == ABI_ILP32E 9970 not TARGET_RVE. 9971 (ABI_STACK_BOUNDARY, MAX_ARGS_IN_REGISTERS): Likewise. 9972 99732018-09-24 Andrew Pinski <apinski@marvell.com> 9974 9975 * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Don't 9976 access prev before checking it for NULLness in the 9977 AARCH64_FUSE_CMP_BRANCH case. 9978 99792018-09-24 H.J. Lu <hongjiu.lu@intel.com> 9980 9981 PR target/82699 9982 * config/i386/i386.c (rest_of_insert_endbranch): Set 9983 endbr_queued_at_entrance to true and don't insert ENDBR if 9984 x86_function_profiler will be called. 9985 (x86_function_profiler): Insert ENDBR if endbr_queued_at_entrance 9986 is true. 9987 * config/i386/i386.h (machine_function): Add 9988 endbr_queued_at_entrance. 9989 99902018-09-24 Ilya Leoshkevich <iii@linux.ibm.com> 9991 9992 * genattrtab.c (mk_attr_alt): Use alternative_mask. 9993 (attr_rtx_1): Adjust caching to match the new EQ_ATTR_ALT field 9994 types. 9995 (check_attr_test): Use alternative_mask. 9996 (get_attr_value): Likewise. 9997 (compute_alternative_mask): Use alternative_mask and XWINT. 9998 (make_alternative_compare): Use alternative_mask. 9999 (attr_alt_subset_p): Use XWINT. 10000 (attr_alt_subset_of_compl_p): Likewise. 10001 (attr_alt_intersection): Use alternative_mask and XWINT. 10002 (attr_alt_union): Likewise. 10003 (attr_alt_complement): Use HOST_WIDE_INT and XWINT. 10004 (mk_attr_alt): Use alternative_mask and HOST_WIDE_INT. 10005 (simplify_test_exp): Use alternative_mask and XWINT. 10006 (write_test_expr): Use alternative_mask and XWINT, adjust bit 10007 number calculation to support 64 bits. Generate code that 10008 checks 64-bit masks. 10009 (main): Use alternative_mask. 10010 * rtl.def (EQ_ATTR_ALT): Change field types from ii to ww. 10011 100122018-09-24 Ilya Leoshkevich <iii@linux.ibm.com> 10013 10014 PR target/80080 10015 * config/s390/s390.c (s390_emit_epilogue): Do not use PARALLEL 10016 RETURN+USE when returning via %r14. 10017 100182018-09-24 Martin Liska <mliska@suse.cz> 10019 10020 * gcov.c (output_lines): Print colorization legend 10021 for both flag_use_colors and flag_use_hotness_colors. 10022 Reword the help. 10023 100242018-09-24 Martin Liska <mliska@suse.cz> 10025 10026 * coverage.c (get_coverage_counts): Use warning_at 10027 with current_function_decl location. Use %qD in warning 10028 message. 10029 100302018-09-24 Martin Liska <mliska@suse.cz> 10031 10032 * memory-block.h (memory_block_pool::release): Annotate with 10033 valgrind that the memory is not accessible. 10034 100352018-09-24 Martin Liska <mliska@suse.cz> 10036 10037 PR sanitizer/85774 10038 * asan.c: Make asan_handled_variables extern. 10039 * asan.h: Likewise. 10040 * cfgexpand.c (expand_stack_vars): Make sure 10041 a representative is unpoison if another 10042 variable in the partition is handled by 10043 use-after-scope sanitization. 10044 100452018-09-24 Richard Biener <rguenther@suse.de> 10046 10047 PR tree-optimization/63155 10048 * tree-ssa-propagate.c (add_ssa_edge): Avoid adding PHIs to 10049 the worklist when the edge of the respective argument isn't 10050 executable. 10051 100522018-09-23 Uros Bizjak <ubizjak@gmail.com> 10053 10054 * config/i386/i386.h (enum reg_class): Rename MASK_REGS to 10055 ALL_MASK_REGS and MASK_EVEX_REGS to MASK_REGS. 10056 (MASK_CLASS_P): Update for rename. 10057 (MAYBE_MASK_CLASS_P): Ditto. 10058 (REG_CLASS_NAMES): Update. 10059 (REG_CLASS_CONTENT): Update. 10060 * config/i386/i386.c (regclass_map): Update for MASK_REG 10061 and ALL_MASK_REGS rename. 10062 * config/i386/constraints.md (Yk): Update for rename. 10063 (k): Ditto. 10064 100652018-09-23 Uros Bizjak <ubizjak@gmail.com> 10066 10067 * config/i386/i386.h (enum reg_class): Remove 10068 EVEX_SSE_REGS and MOD4_SSE_REGS. 10069 (REG_CLASS_NAMES): Update. 10070 (REG_CLASS_CONTENT): Update. 10071 * config/i386/i386.c (regclass_map): Declare AVX-512 SSE 10072 registers as ALL_SSE_REGS. 10073 (ix86_additional_allocno_class_p): Remove. 10074 (TARGET_ADDITIONAL_ALLOCNO_CLASS_P): Remove. 10075 (ix86_register_priority): Lower priority of EVEX SSE registers. 10076 Use IN_RANGE macro where appropriate. 10077 (ix86_hard_regno_mode_ok): Merge AVX-5124FMAPS and 10078 AVX-5124VNNIW checks. 10079 (ix86_modes_tieable_p): Tie 512-bit SSE modes. 10080 * config/i386/sse.md (avx5124fmaddps_4fmaddps) 10081 (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddps_maskz) 10082 (avx5124fmaddps_4fmaddss, avx5124fmaddps_4fmaddss_mask) 10083 (avx5124fmaddps_4fmaddss_maskz, avx5124fmaddps_4fnmaddps) 10084 (avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddps_maskz) 10085 (avx5124fmaddps_4fnmaddss, avx5124fmaddps_4fnmaddss_mask) 10086 (avx5124fmaddps_4fnmaddss_maskz, avx5124vnniw_vp4dpwssd) 10087 (avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssd_maskz) 10088 (avx5124vnniw_vp4dpwssds, avx5124vnniw_vp4dpwssds_mask) 10089 (avx5124vnniw_vp4dpwssds_maskz): Use "v" instead of "Yh" constraint. 10090 * config/i386/constraints.md (Yh): Remove. 10091 100922018-09-23 Uros Bizjak <ubizjak@gmail.com> 10093 10094 * config/i386/i386.c (regclass_map): Declare integer REX registers 10095 as GENERAL_REGS. 10096 100972018-09-23 Gerald Pfeifer <gerald@pfeifer.com> 10098 10099 * doc/service.texi (Service): Switch the fsf.org link to https. 10100 101012018-09-22 Chung-Ju Wu <jasonwucj@gmail.com> 10102 10103 PR target/86798 10104 * config/nds32/nds32.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 10105 Define to speculation_safe_value_not_needed. 10106 101072018-09-21 Florian Weimer <fweimer@redhat.com> 10108 10109 PR middle-end/81035 10110 * doc/extend.texi (Common Function Attributes): Mention that 10111 noreturn suppresses tail call optimization. 10112 101132018-09-21 Jeff Law <law@redhat.com> 10114 10115 * gimple-ssa-evrp.c (evrp_dom_walker::cleanup): Call 10116 vr_values::cleanup_edges_and_switches. 10117 * tree-vrp.c (to_remove_edges, to_update_switch_stmts): Moved into 10118 vr_values class. 10119 (identify_jump_threads): Remove EDGE_IGNORE handling. 10120 (execute_vrp): Move handling of to_remove_edges and 10121 to_update_switch_stmts into vr_values class member functions. 10122 * tree-vrp.h (switch_update, to_remove_edges): Remove declarations. 10123 (to_update_switch_stmts): Likewise. 10124 * vr-values.c: Include cfghooks.h. 10125 (vr_values::vr_values): Initialize to_remove_edges and 10126 to_update_switch_stmts. 10127 (vr_values::~vr_values): Verify to_remove_edges and 10128 to_update_switch_stmts are empty. 10129 (vr_values::simplify_switch_using_ranges): Set EDGE_IGNORE as needed. 10130 (vr_values::cleanup_edges_and_switches): New member function. 10131 * vr-values.h (vr_values): Add cleanup_edges_and_switches member 10132 function. Add new data members. 10133 101342018-09-21 David Malcolm <dmalcolm@redhat.com> 10135 10136 PR tree-optimization/87309 10137 * dumpfile.c (dump_context::begin_scope): Filter the dump_loc 10138 calls with pflags and alt_flags. 10139 (selftest::test_capture_of_dump_calls): Add test of interaction of 10140 MSG_OPTIMIZED_LOCATIONS with AUTO_DUMP_SCOPE. 10141 101422018-09-21 Olivier Hainque <hainque@adacore.com> 10143 10144 * config.gcc: Factorize and comment inclusion of vxworks-dummy.h. 10145 101462018-09-21 Olivier Hainque <hainque@adacore.com> 10147 10148 * config/vxworks.h (CLEAR_INSN_CACHE): #define to 1. 10149 101502018-09-21 Olivier Hainque <hainque@adacore.com> 10151 10152 * config/vxworks.h (VXWORKS_LIBGCC_SPEC): Remove -lc_internal. 10153 Merge block comment with the one ahead of VXWORKS_LIBS_RTP. Then: 10154 (VXWORKS_LIBS_RTP): Minor reordering. 10155 101562018-09-21 Olivier Hainque <hainque@adacore.com> 10157 10158 * config/vxworks.h (STARTFILE_PREFIX_SPEC): Define. 10159 (VXWORKS_LIBS_DIR_RTP): Remove definition and use. 10160 101612018-09-21 Olivier Hainque <hainque@adacore.com> 10162 10163 * config/vxworks.h (SIZE_TYPE): Account for TARGET_VXWORKS64. 10164 (PTRDIFF_TYPE): Likewise. 10165 101662018-09-21 Olivier Hainque <hainque@adacore.com> 10167 10168 * config.gcc: Enforce def of TARGET_VXWORKS64 to 1 from 10169 triplet, similar to support for VxWorks7. 10170 * config/vxworks-dummy.h: Provide a default definition 10171 of TARGET_VXWORKS64 to 0. 10172 101732018-09-21 Olivier Hainque <hainque@adacore.com> 10174 10175 * config/vxworks.h (TARGET_VXWORKS7): Move default definition ... 10176 * config/vxworks-dummy.h: here. 10177 101782018-09-21 Olivier Hainque <hainque@adacore.com> 10179 10180 * config.gcc: Prepend vxworks-dummy.h to tm_file for powerpc* 10181 101822018-09-21 Shaokun Zhang <zhangshaokun@hisilicon.com> 10183 Bo Zhou <zbo.zhou@hisilicon.com> 10184 10185 * config/aarch64/aarch64-cores.def (tsv110): New CPU. 10186 * config/aarch64/aarch64-tune.md: Regenerated. 10187 * doc/invoke.texi (AArch64 Options/-mtune): Add "tsv110". 10188 * config/aarch64/aarch64.c (tsv110_tunings): New tuning table. 10189 * config/aarch64/aarch64-cost-tables.h: Add "tsv110" extra costs. 10190 101912018-09-21 Andrew Stubbs <ams@codesourcery.com> 10192 Julian Brown <julian@codesourcery.com> 10193 10194 * builtins.c (get_builtin_sync_mem): Handle address spaces. 10195 101962018-09-21 Eric Botcazou <ebotcazou@adacore.com> 10197 10198 * config/rs6000/rs6000.c (rs6000_function_ok_for_sibcall): Return false 10199 if the call takes a static chain. 10200 102012018-09-21 Martin Liska <mliska@suse.cz> 10202 10203 * auto-profile.c (autofdo_source_profile::read): Do not 10204 set sum_all. 10205 (read_profile): Do not add working sets. 10206 (read_autofdo_file): Remove sum_all. 10207 (afdo_callsite_hot_enough_for_early_inline): Remove const 10208 qualifier. 10209 * coverage.c (struct counts_entry): Remove gcov_summary. 10210 (read_counts_file): Read new GCOV_TAG_OBJECT_SUMMARY, 10211 do not support GCOV_TAG_PROGRAM_SUMMARY. 10212 (get_coverage_counts): Remove summary and expected 10213 arguments. 10214 * coverage.h (get_coverage_counts): Likewise. 10215 * doc/gcov-dump.texi: Remove -w option. 10216 * gcov-dump.c (dump_working_sets): Remove. 10217 (main): Do not support '-w' option. 10218 (print_usage): Likewise. 10219 (tag_summary): Likewise. 10220 * gcov-io.c (gcov_write_summary): Do not dump 10221 histogram. 10222 (gcov_read_summary): Likewise. 10223 (gcov_histo_index): Remove. 10224 (gcov_histogram_merge): Likewise. 10225 (compute_working_sets): Likewise. 10226 * gcov-io.h (GCOV_TAG_OBJECT_SUMMARY): Mark 10227 it not obsolete. 10228 (GCOV_TAG_PROGRAM_SUMMARY): Mark it obsolete. 10229 (GCOV_TAG_SUMMARY_LENGTH): Adjust. 10230 (GCOV_HISTOGRAM_SIZE): Remove. 10231 (GCOV_HISTOGRAM_BITVECTOR_SIZE): Likewise. 10232 (struct gcov_summary): Simplify rapidly just 10233 to runs and sum_max fields. 10234 (gcov_histo_index): Remove. 10235 (NUM_GCOV_WORKING_SETS): Likewise. 10236 (compute_working_sets): Likewise. 10237 * gcov-tool.c (print_overlap_usage_message): Remove 10238 trailing empty line. 10239 * gcov.c (read_count_file): Read GCOV_TAG_OBJECT_SUMMARY. 10240 (output_lines): Remove program related line. 10241 * ipa-profile.c (ipa_profile): Do not consider GCOV histogram. 10242 * lto-cgraph.c (output_profile_summary): Do not stream GCOV 10243 histogram. 10244 (input_profile_summary): Do not read it. 10245 (merge_profile_summaries): And do not merge it. 10246 (input_symtab): Do not call removed function. 10247 * modulo-sched.c (sms_schedule): Do not print sum_max. 10248 * params.def (HOT_BB_COUNT_FRACTION): Reincarnate param that was 10249 removed when histogram method was invented. 10250 (HOT_BB_COUNT_WS_PERMILLE): Mention that it's used only in LTO 10251 mode. 10252 * postreload-gcse.c (eliminate_partially_redundant_load): Fix 10253 GCOV coding style. 10254 * predict.c (get_hot_bb_threshold): Use HOT_BB_COUNT_FRACTION 10255 and dump selected value. 10256 * profile.c (add_working_set): Remove. 10257 (get_working_sets): Likewise. 10258 (find_working_set): Likewise. 10259 (get_exec_counts): Do not work with working sets. 10260 (read_profile_edge_counts): Do not inform as sum_max is removed. 10261 (compute_branch_probabilities): Likewise. 10262 (compute_value_histograms): Remove argument for call of 10263 get_coverage_counts. 10264 * profile.h: Do not make gcov_summary const. 10265 102662018-09-21 Monk Chiang <sh.chiang04@gmail.com> 10267 10268 * config.gcc (nds32*-*-*): Set TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0. 10269 102702018-09-21 Eric Botcazou <ebotcazou@adacore.com> 10271 10272 PR tree-optimization/86990 10273 * gimple-ssa-store-merging.c (imm_store_chain_info:coalesce_immediate): 10274 Check that the entire merged store group is made of constants only for 10275 overlapping stores. 10276 102772018-09-20 Allan Sandfeld Jensen <allan.jensen@qt.io> 10278 10279 * gcc.c (LINK_COMMAND_SPEC): Handle -r like -nostdlib. 10280 (VTABLE_VERIFICATION_SPEC): Likewise. 10281 (SANITIZER_EARLY_SPEC): Likewise. 10282 (SANITIZER_SPEC): Likewise. 10283 * config/darwin.h (LINK_COMMAND_SPEC): Likewise. 10284 * doc/invoke.texi (Link Options): Document -r. 10285 102862018-09-20 Richard Biener <rguenther@suse.de> 10287 10288 PR middle-end/87054 10289 * gimplify.c (gimplify_expr): Retain alignment of 10290 addressable lvalue in dereference. 10291 102922018-09-20 Alexandre Oliva <aoliva@redhat.com> 10293 10294 PR bootstrap/87013 10295 * configure.ac: Check for .loc is_stmt support. 10296 * configure, config.in: Rebuilt. 10297 * dwarf2out.c (dwarf2out_source_line): Skip is_stmt 10298 if not supported. 10299 103002018-09-20 Segher Boessenkool <segher@kernel.crashing.org> 10301 10302 * config/rs6000/rs6000.opt (misel=no, misel=yes): Delete. 10303 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -misel=yes and 10304 -misel=no. 10305 103062018-09-20 Segher Boessenkool <segher@kernel.crashing.org> 10307 10308 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete 10309 VECTOR_OTHER. 10310 * config/rs6000/rs6000.c (rs6000_debug_vector_unit): Delete 10311 case VECTOR_OTHER. 10312 103132018-09-20 Marek Polacek <polacek@redhat.com> 10314 10315 * doc/invoke.texi: Add -Wno-init-list-lifetime to C++ Language Options. 10316 103172018-09-20 Richard Sandiford <richard.sandiford@arm.com> 10318 10319 PR tree-optimization/87288 10320 * tree-vect-loop.c (vect_analyze_loop_2): Take PEELING_FOR_GAPS 10321 into account when determining PEELING_FOR_NITERS. 10322 103232018-09-20 Richard Sandiford <richard.sandiford@arm.com> 10324 10325 PR tree-optimization/86877 10326 * tree-vect-loop.c (vect_analyze_loop_2): Call 10327 vect_verify_datarefs_alignment. 10328 103292018-09-19 Marek Polacek <polacek@redhat.com> 10330 10331 * doc/invoke.texi: Document -Wclass-conversion. 10332 103332018-09-19 John David Anglin <danglin@gcc.gnu.org> 10334 10335 * config/pa/pa.c (pa_adjust_priority): Delete. 10336 (TARGET_SCHED_ADJUST_PRIORITY): Delete define. 10337 10338 * config/pa/pa.md (atomic_storeqi): Restore deleted expander. 10339 (atomic_storehi): Likewise. 10340 (atomic_storesi): Likewise. 10341 (atomic_loaddi): Restore compare and swap exchange loop code. 10342 103432018-09-19 Segher Boessenkool <segher@kernel.crashing.org> 10344 10345 PR rtl-optimization/86902 10346 * combine.c (try_combine): When changing the CC mode used, don't change 10347 an unrelated mode in other_insn to that new CC mode. 10348 103492018-09-19 David Malcolm <dmalcolm@redhat.com> 10350 10351 * tree-data-ref.c (runtime_alias_check_p): Use formatted printing 10352 with %T in place of calls to dump_generic_expr. 10353 (prune_runtime_alias_test_list): Likewise. 10354 (create_runtime_alias_checks): Likewise. 10355 * tree-vect-data-refs.c (vect_check_nonzero_value): Likewise. 10356 (vect_analyze_data_ref_dependence): Likewise. 10357 (vect_slp_analyze_data_ref_dependence): Likewise. 10358 (vect_record_base_alignment): Likewise. Use %G in place of call 10359 to dump_gimple_stmt. 10360 (vect_compute_data_ref_alignment): Likewise. 10361 (verify_data_ref_alignment): Likewise. 10362 (vect_find_same_alignment_drs): Likewise. 10363 (vect_analyze_group_access_1): Likewise. 10364 (vect_analyze_data_ref_accesses): Likewise. 10365 (dependence_distance_ge_vf): Likewise. 10366 (dump_lower_bound): Likewise. 10367 (vect_prune_runtime_alias_test_list): Likewise. 10368 (vect_find_stmt_data_reference): Likewise. 10369 (vect_analyze_data_refs): Likewise. 10370 (vect_create_addr_base_for_vector_ref): Likewise. 10371 (vect_create_data_ref_ptr): Likewise. 10372 * tree-vect-loop-manip.c (vect_set_loop_condition): Likewise. 10373 (vect_can_advance_ivs_p): Likewise. 10374 (vect_update_ivs_after_vectorizer): Likewise. 10375 (vect_gen_prolog_loop_niters): Likewise. 10376 (vect_prepare_for_masked_peels): Likewise. 10377 * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. 10378 (vect_determine_vectorization_factor): Likewise. 10379 (vect_is_simple_iv_evolution): Likewise. 10380 (vect_analyze_scalar_cycles_1): Likewise. 10381 (vect_analyze_loop_operations): Likewise. 10382 (report_vect_op): Likewise. 10383 (vect_is_slp_reduction): Likewise. 10384 (check_reduction_path): Likewise. 10385 (vect_is_simple_reduction): Likewise. 10386 (vect_create_epilog_for_reduction): Likewise. 10387 (vect_finalize_reduction:): Likewise. 10388 (vectorizable_induction): Likewise. 10389 (vect_transform_loop_stmt): Likewise. 10390 (vect_transform_loop): Likewise. 10391 (optimize_mask_stores): Likewise. 10392 * tree-vect-patterns.c (vect_pattern_detected): Likewise. 10393 (vect_split_statement): Likewise. 10394 (vect_recog_over_widening_pattern): Likewise. 10395 (vect_recog_average_pattern): Likewise. 10396 (vect_determine_min_output_precision_1): Likewise. 10397 (vect_determine_precisions_from_range): Likewise. 10398 (vect_determine_precisions_from_users): Likewise. 10399 (vect_mark_pattern_stmts): Likewise. 10400 (vect_pattern_recog_1): Likewise. 10401 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. 10402 (vect_record_max_nunits): Likewise. 10403 (vect_build_slp_tree_1): Likewise. 10404 (vect_build_slp_tree_2): Likewise. 10405 (vect_print_slp_tree): Likewise. 10406 (vect_analyze_slp_instance): Likewise. 10407 (vect_detect_hybrid_slp_stmts): Likewise. 10408 (vect_detect_hybrid_slp_1): Likewise. 10409 (vect_slp_analyze_operations): Likewise. 10410 (vect_slp_analyze_bb_1): Likewise. 10411 (vect_transform_slp_perm_load): Likewise. 10412 (vect_schedule_slp_instance): Likewise. 10413 * tree-vect-stmts.c (vect_mark_relevant): Likewise. 10414 (vect_mark_stmts_to_be_vectorized): Likewise. 10415 (vect_init_vector_1): Likewise. 10416 (vect_get_vec_def_for_operand): Likewise. 10417 (vect_finish_stmt_generation_1): Likewise. 10418 (vect_check_load_store_mask): Likewise. 10419 (vectorizable_call): Likewise. 10420 (vectorizable_conversion): Likewise. 10421 (vectorizable_operation): Likewise. 10422 (vectorizable_load): Likewise. 10423 (vect_analyze_stmt): Likewise. 10424 (vect_is_simple_use): Likewise. 10425 (vect_get_vector_types_for_stmt): Likewise. 10426 (vect_get_mask_type_for_stmt): Likewise. 10427 * tree-vectorizer.c (increase_alignment): Likewise. 10428 104292018-09-19 Andrew Stubbs <ams@codesourcery.com> 10430 10431 * doc/rtl.texi: Adjust vec_select description. 10432 * simplify-rtx.c (simplify_binary_operation_1): Allow VEC_SELECT to use 10433 non-constant selectors. 10434 104352018-09-19 Matthew Malcomson <matthew.malcomson@arm.com> 10436 10437 * config/aarch64/aarch64-protos.h 10438 (aarch64_offset_9bit_signed_unscaled_p): New declaration. 10439 * config/aarch64/aarch64.md (arches): New "rcpc8_4" attribute value. 10440 (arch_enabled): Add check for "rcpc8_4" attribute value of "arch". 10441 * config/aarch64/aarch64.h (AARCH64_FL_RCPC8_4): New bitfield. 10442 (AARCH64_FL_FOR_ARCH8_4): Include AARCH64_FL_RCPC8_4. 10443 (AARCH64_FL_PROFILE): Move index so flags are ordered. 10444 (AARCH64_ISA_RCPC8_4): New flag. 10445 * config/aarch64/aarch64.c (offset_9bit_signed_unscaled_p): Renamed 10446 to aarch64_offset_9bit_signed_unscaled_p. 10447 * config/aarch64/atomics.md (atomic_store<mode>): Allow offset 10448 and use stlur. 10449 * config/aarch64/constraints.md (Ust): New constraint. 10450 * config/aarch64/predicates.md. 10451 (aarch64_9bit_offset_memory_operand): New predicate. 10452 (aarch64_rcpc_memory_operand): New predicate. 10453 104542018-09-19 Eric Botcazou <ebotcazou@adacore.com> 10455 10456 PR rtl-optimization/87361 10457 * rtlanal.c (nonzero_bits1): Revert accidental change. 10458 104592018-09-19 Richard Biener <rguenther@suse.de> 10460 10461 PR tree-optimization/87349 10462 PR tree-optimization/87342 10463 * tree-ssa-sccvn.c (do_rpo_vn): Iterate max_rpo computation. 10464 104652018-09-18 Marek Polacek <polacek@redhat.com> 10466 10467 P1064R0 - Allowing Virtual Function Calls in Constant Expressions 10468 * gimple-fold.c (gimple_get_virt_method_for_vtable): Adjust assert. 10469 104702018-09-18 Segher Boessenkool <segher@kernel.crashing.org> 10471 10472 * config/rs6000/rs6000.md: Remove old "Cygnus sibcall" comment. 10473 104742018-09-18 Segher Boessenkool <segher@kernel.crashing.org> 10475 10476 PR rtl-optimization/86882 10477 * rtlanal.c (reg_overlap_mentioned_p): Handle CLOBBER. 10478 104792018-09-18 Uros Bizjak <ubizjak@gmail.com> 10480 10481 * config/i386/i386.md (*<code>extend<mode>xf2): Macroize insn from 10482 *<code>extendsfxf2 and *<code>extenddfxf2 using MODEF mode iterator. 10483 104842018-09-18 Jonathan Wakely <jwakely@redhat.com> 10485 10486 PR other/87353 10487 * doc/invoke.texi (Link Options): Fix formatting and grammar. 10488 104892018-09-18 Richard Biener <rguenther@suse.de> 10490 10491 PR middle-end/63155 10492 * tree-ssa-coalesce.c (tree_int_map_hasher): Remove. 10493 (compute_samebase_partition_bases): Likewise. 10494 (coalesce_ssa_name): Always use compute_optimized_partition_bases. 10495 (gimple_can_coalesce_p): Simplify. 10496 104972018-09-18 Hans-Peter Nilsson <hp@bitrange.com> 10498 10499 Handle a library implementation of ffs calling __builtin_ffs. 10500 * config/mmix/mmix.c (TARGET_INIT_LIBFUNCS): Override with... 10501 (mmix_init_libfuncs): New function: make __builtin_ffs expand 10502 to __ffsdi2. 10503 105042018-09-17 David Malcolm <dmalcolm@redhat.com> 10505 10506 * diagnostic-show-locus.c (class layout_range): Add field 10507 "m_original_idx". 10508 (layout_range::layout_range): Add "original_idx" param and use it 10509 to initialize new field. 10510 (make_range): Use 0 for original_idx. 10511 (layout::layout): Pass in index to calls to 10512 maybe_add_location_range. 10513 (layout::maybe_add_location_range): Add param "original_idx" and 10514 pass it on to layout_range. 10515 (layout::print_any_labels): Pass on range->m_original_idx to 10516 get_text call. 10517 (gcc_rich_location::add_location_if_nearby): Use 0 for 10518 original_idx. 10519 * gcc-rich-location.h (text_range_label::get_text): Update for new 10520 param. 10521 (range_label_for_type_mismatch::get_text): Likewise. 10522 105232018-09-17 Uros Bizjak <ubizjak@gmail.com> 10524 10525 * config/i386/i386.c (ix86_emit_i387_log1p): Emit fldln2 earlier. 10526 105272018-09-17 David Malcolm <dmalcolm@redhat.com> 10528 10529 * gimple-ssa-sprintf.c (fmtwarn): Update for introduction of 10530 format_string_diagnostic_t. 10531 (fmtwarn_n): Likewise. 10532 * substring-locations.c 10533 (format_string_diagnostic_t::format_string_diagnostic_t) New ctor. 10534 (format_warning_n_va): Convert to... 10535 (format_string_diagnostic_t::emit_warning_n_va): ...this. 10536 (format_warning_va): Convert to... 10537 (format_string_diagnostic_t::emit_warning_va): ...this. 10538 (format_warning_at_substring): Convert to... 10539 (format_string_diagnostic_t::emit_warning): ...this. 10540 (format_warning_at_substring_n): Convert to... 10541 (format_string_diagnostic_t::emit_warning_n): ...this. 10542 * substring-locations.h (class format_string_diagnostic_t): New 10543 class. 10544 (format_warning_va): Convert to 10545 format_string_diagnostic_t::emit_warning_va. 10546 (format_warning_n_va): Convert to 10547 format_string_diagnostic_t::emit_warning_n_va. 10548 (format_warning_at_substring): Convert to 10549 format_string_diagnostic_t::emit_warning. 10550 (format_warning_at_substring_n): Convert to 10551 format_string_diagnostic_t::emit_warning_n. 10552 105532018-09-17 Cesar Philippidis <cesar@codesourcery.com> 10554 Bernd Schmidt <bernds_cb1@t-online.de> 10555 10556 * config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with 10557 SImode args. 10558 105592018-09-17 Uros Bizjak <ubizjak@gmail.com> 10560 10561 * config/i386/i386.md (truncxf<mode>2_i387_noop_unspec): Change 10562 operand 0 predicate to nonimmediate operand. 10563 (rint<mode>2_frndint): Remove insn pattern. 10564 (rint<mode>2): Change operand 1 predicate to general_operand. 10565 Extend operand 1 to XFmode and generate rintxf2 insn. 10566 (frndintxf2_<rounding>): Rename from frndint<mode>2_<rounding>. 10567 Do not use X87MODEF mode macro. 10568 (frndintxf2_<rounding>_i387): Rename from 10569 frndint<mode>2_<rounding>_i387. Do not use X87MODEF mode macro. 10570 (<rounding_insn><mode>2): For non-SSE modes, extend operand 1 10571 to XFmode and generate significandxf3 insn. 10572 105732018-09-17 Richard Biener <rguenther@suse.de> 10574 10575 PR tree-optimization/87328 10576 * tree-ssa-sccvn.c (process_bb): Remove assertion about not 10577 visiting unexecutable backedges when not iterating. 10578 (do_rpo_vn): Mark all edges not executable even when not 10579 iterating. 10580 105812018-09-17 Martin Jambor <mjambor@suse.cz> 10582 10583 PR c/63886 10584 * doc/invoke.texi (Warning Options): Likewise. 10585 105862018-09-17 Richard Biener <rguenther@suse.de> 10587 10588 PR tree-optimization/87301 10589 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): Properly 10590 clean EH info from leftover copy assignments. 10591 105922018-09-17 Martin Liska <mliska@suse.cz> 10593 10594 PR gcov-profile/85871 10595 * gcov.c (output_intermediate_file): Fix out of bounds 10596 access. 10597 105982018-09-17 Vineet Gupta <vgupta@synopsys.com> 10599 10600 * config/arc/arc.c: Object attributes for core4 not reflected 10601 correctly. 10602 * config/arc/arc.h: Don't restrict DBNZ to core3 (core4 includes 10603 core3). 10604 106052018-09-17 Alexey Brodkin <abrodkin@synopsys.com> 10606 10607 * config/arc/linux.h (LINK_EH_SPEC): Add missing space. 10608 106092018-09-17 Martin Liska <mliska@suse.cz> 10610 10611 * doc/gcov.texi: Document new option --use-hotness-colors. 10612 * gcov.c (struct source_info): Declare new field. 10613 (source_info::source_info): Set default for maximum_count. 10614 (print_usage): Add new -q option. 10615 (process_args): Process it. 10616 (accumulate_line_info): Save src->maximum_count. 10617 (output_line_beginning): Make color line number if 10618 flag_use_hotness_colors is set. 10619 (output_line_details): Pass default argument value. 10620 (output_lines): Pass src->maximum_count. 10621 106222018-09-17 Martin Liska <mliska@suse.cz> 10623 10624 * common/config/i386/i386-common.c (ix86_get_valid_option_values): 10625 Use processor_names table. 10626 * config/i386/i386.c (ix86_default_align): Use 10627 processor_cost_table for alignment values. 10628 (ix86_option_override_internal): Use processor_names. 10629 (ix86_function_specific_print): Likewise. 10630 * config/i386/i386.h (struct processor_costs): 10631 Add alignment values. 10632 (struct ptt): Remove and replace with const char *. 10633 * config/i386/x86-tune-costs.h (struct processor_costs): 10634 Declare default alignments for all costs. 10635 106362018-09-17 Aldy Hernandez <aldyh@redhat.com> 10637 10638 * tree-vrp.c (extract_range_from_unary_expr): Do not special case 10639 symbolics or VR_VARYING ranges for ABS_EXPR. 10640 * wide-int-range.cc (wide_int_range_abs): Return positive numbers 10641 when range will wrap. 10642 106432018-09-15 Eric Botcazou <ebotcazou@adacore.com> 10644 10645 PR middle-end/86864 10646 * cfgexpand.c (expand_gimple_basic_block): Be prepared for a BARRIER 10647 before and after a JUMP_TABLE_DATA. 10648 106492018-09-14 John David Anglin <danglin@gcc.gnu.org> 10650 10651 PR middle-end/87188 10652 * dojump.c (do_compare_and_jump): Canonicalize function pointers 10653 when one operand is a function pointer. Use POINTER_TYPE_P and 10654 FUNC_OR_METHOD_TYPE_P. 10655 * expr.c (do_store_flag): Use POINTER_TYPE_P and FUNC_OR_METHOD_TYPE_P. 10656 * fold-const.c (build_range_check): Likewise. 10657 * match.pd (simple_comparison): Likewise. 10658 106592018-09-14 David Malcolm <dmalcolm@redhat.com> 10660 10661 PR c/82967 10662 * spellcheck.c (get_edit_distance_cutoff): New function. 10663 (selftest::test_edit_distance_unit_test_oneway): Rename to... 10664 (selftest::test_get_edit_distance_one_way): ...this. 10665 (selftest::test_get_edit_distance_unit): Rename to... 10666 (selftest::test_get_edit_distance_both_ways): ...this. 10667 (selftest::test_edit_distances): Move tests to this new function, 10668 and test some more pairs of strings. Update for above renaming. 10669 (selftest::get_old_cutoff): New function. 10670 (selftest::test_get_edit_distance_cutoff): New function. 10671 (selftest::assert_suggested_for): New function. 10672 (ASSERT_SUGGESTED_FOR): New macro. 10673 (selftest::assert_not_suggested_for): New function. 10674 (ASSERT_NOT_SUGGESTED_FOR): New macro. 10675 (selftest::test_suggestions): New function. 10676 (selftest::spellcheck_c_tests): Move test_get_edit_distance_unit 10677 tests to selftest::test_edit_distances and call it. Add calls to 10678 selftest::test_get_edit_distance_cutoff and 10679 selftest::test_suggestions. 10680 * spellcheck.h (get_edit_distance_cutoff): New function declaration. 10681 (best_match::consider): Replace hard-coded cutoff calculation with 10682 a call to... 10683 (best_match::get_cutoff): New declaration. 10684 (best_match::get_best_meaningful_candidate): Likewise. 10685 106862018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> 10687 10688 * builtins.c (fold_builtin_strlen): Remove TODO comment. 10689 106902018-09-14 Bernd Edlinger <bernd.edlinger@hotmail.de> 10691 10692 revert: 10693 2018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de> 10694 10695 * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL 10696 terminated string literal. 10697 106982018-09-14 Martin Sebor <msebor@redhat.com> 10699 10700 * builtins.c (unterminated_array): Handle ARRAY_REF. 10701 (expand_builtin_stpcpy_1): Detect unterminated char arrays. 10702 * builtins.h (unterminated_array): Declare extern. 10703 * gimple-fold.c (gimple_fold_builtin_stpcpy): Detect unterminated 10704 arrays. 10705 (gimple_fold_builtin_sprintf): Propagate NO_WARNING to transformed 10706 calls. 10707 107082018-09-14 Martin Sebor <msebor@redhat.com> 10709 Jeff Law <law@redhat.com> 10710 10711 * builtins.c (unterminated_array): New. 10712 (expand_builtin_strcpy): Adjust. 10713 (expand_builtin_strcpy_args): Detect unterminated arrays. 10714 * gimple-fold.c (get_maxval_strlen): Add argument. Detect 10715 unterminated arrays. 10716 * gimple-fold.h (get_maxval_strlen): Add argument. 10717 (gimple_fold_builtin_strcpy): Detec unterminated arrays. 10718 10719 * gimple-fold.c (get_range_strlen): Add argument. 10720 (get_maxval_strlen): Adjust. 10721 * gimple-fold.h (get_range_strlen): Add argument. 10722 107232018-09-14 Wei Xiao <wei3.xiao@intel.com> 10724 10725 * config/i386/movdirintrin.h: Fix copyright year. 10726 107272018-09-14 Uros Bizjak <ubizjak@gmail.com> 10728 10729 * reg-stack.c: Include regs.h. 10730 (replace_reg): Assert that mode is MODE_FLOAT or MODE_COMPLEX_FLOAT. 10731 (emit_pop_insn): Default pop insn mode to the reg_raw_mode of 10732 FIRST_STACK_REG, not DFmode. 10733 (emit_swap_insn): Default swap insn mode to the reg_raw_mode of 10734 FIRST_STACK_REG, not XFmode. Explicitly construct swap RTX. 10735 (change stack): Default register mode to the reg_raw_mode of 10736 FIRST_STACK_REG, not DFmode. 10737 * config/i386/i386.md (*swap<mode>): Remove insn pattern. 10738 (*swapxf): Rename from swapxf. 10739 107402018-09-14 Carl Love <cel@us.ibm.com> 10741 10742 * config/rs6000/emmintrin.h: Add _MM_SHUFFLE2. 10743 * config/rs6000/xmmintrin.h: Add _MM_SHUFFLE. 10744 107452018-09-14 Segher Boessenkool <segher@kernel.crashing.org> 10746 10747 PR target/87224 10748 * config/rs6000/rs6000.md (*mov<mode>_hardfloat64): Add Z to the Y 10749 alternatives. 10750 107512018-09-14 Sam Tebbs <sam.tebbs@arm.com> 10752 10753 PR target/85628 10754 * config/aarch64/aarch64.md (*aarch64_bfxilsi_uxtw): Define. 10755 107562018-09-14 Jason Merrill <jason@redhat.com> 10757 10758 Fix --enable-gather-detailed-mem-stats. 10759 * hash-table.c (hash_table_usage): Change from variable to function. 10760 * hash-table.h: Adjust. 10761 * Makefile.in: Add missing dependencies on hash-table.h. 10762 107632018-09-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10764 10765 PR tree-optimization/87259 10766 PR lto/87283 10767 (pass_cse_reciprocals::execute): Run optimize_recip_sqrt after 10768 execute_cse_reciprocals_1 has tried transforming. 10769 107702018-09-14 Aldy Hernandez <aldyh@redhat.com> 10771 10772 * tree-vrp.c (extract_range_from_binary_expr_1): Normalize 10773 VR_VARYING for PLUS/MINUS_EXPR. 10774 107752018-09-14 Ilya Leoshkevich <iii@linux.ibm.com> 10776 10777 * config/s390/s390-passes.def (INSERT_PASS_BEFORE): Improve 10778 formatting. 10779 107802018-09-14 Richard Biener <rguenther@suse.de> 10781 10782 PR middle-end/63155 10783 * tree-ssa-coalesce.c (ssa_conflicts_merge): Remove conflict 10784 bits for the merged partition. 10785 107862018-09-13 Martin Sebor <msebor@redhat.com> 10787 Bernd Edlinger <bernd.edlinger@hotmail.de> 10788 10789 * builtins.h (c_srlen): Add argument. 10790 * builtins.c (warn_string_no_nul): New function. 10791 (c_strlen): Add argument and use it. Update recursive calls. 10792 Pass DECL argument to string_constant to get info on non 10793 terminated strings. Update *NONSTR as needed. 10794 (fold_builtin_strlen): Add argument to calls to c_strlen. 10795 Warn for unterminated arrays. 10796 (warn_string_no_null): Add prototype. 10797 * expr.c (string_constant): Update arguments. Update recursive 10798 calls appropriately. Detect missing NUL terminator and outermost 10799 declaration its missing in. 10800 Improve checks for arrays with nonzero lower bound or elements 10801 that are not a single byte. Simplify offset computation. 10802 Simplify checks for non-NUL terminated strings. 10803 * gimple-fold.c (get_range_strlen): Add argument to c_strlen call. 10804 * gimple-ssa-sprintf.c (get_string_length): Remove unnecessary code. 10805 108062018-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> 10807 10808 * builtins.c (c_strlen): Handle not zero terminated STRING_CSTs 10809 correctly. 10810 * fold-const.c (c_getstr): Fix function comment. Remove unused third 10811 argument. Fix range checks. 10812 * fold-const.h (c_getstr): Adjust protoype. 10813 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid folding when 10814 string is constant but contains no NUL byte. 10815 10816 * expr.c (string_constant): Adjust function comment. 10817 Remove bogus check for zero termination. 10818 10819 * fold-const.c (c_getstr): Clamp STRING_LENGTH to STRING_SIZE. 10820 10821 * varasm.c (compare_constant): Compare type size of STRING_CSTs. 10822 (get_constant_size): Don't make STRING_CSTs larger than they are. 10823 (check_string_literal): New check function for STRING_CSTs. 10824 (output_constant): Use it. 10825 108262018-09-13 Eric Botcazou <ebotcazou@adacore.com> 10827 10828 PR target/86812 10829 * config/visium/visium.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. 10830 108312018-09-13 Richard Biener <rguenther@suse.de> 10832 10833 PR tree-optimization/87263 10834 * tree-ssa-sccvn.c (visit_phi): Revert some earlier changes. 10835 (struct unwind_state): Add max_rpo field. 10836 (do_rpo_vn): Allow up-to-date loop state to be used when not iterating. 10837 Compute max_rpo, the max RPO number a block can be backwards reached 10838 from. Re-write non-iterating mode to a RPO ordered worklist approach, 10839 separating it from the iterating mode. 10840 108412018-09-13 Vlad Lazar <vlad.lazar@arm.com> 10842 10843 * haifa-sched.c (rank_for_schedule): Schedule by INSN_COST. 10844 (rfs_decision): New scheduling decision. 10845 108462018-09-13 Richard Biener <rguenther@suse.de> 10847 10848 PR bootstrap/87134 10849 * tree-ssa-sccvn.c (vn_nary_op_insert_into): Fix assert. 10850 (vn_nary_op_insert_pieces_predicated): Do not write useless 10851 valid_dominated_by_p entry outside of the allocated storage. 10852 108532018-09-13 Omar Sandoval <osandov@osandov.com> 10854 Tom de Vries <tdevries@suse.de> 10855 10856 PR debug/86985 10857 * dwarf2out.c (is_c): New function. 10858 (add_subscript_info): Add DW_AT_count of 0 for C zero-length arrays. 10859 108602018-09-13 Sam Tebbs <sam.tebbs@arm.com> 10861 10862 PR target/85628 10863 * config/aarch64/aarch64.md (*aarch64_bfxil): 10864 Define. 10865 * config/aarch64/constraints.md (Ulc): Define. 10866 * config/aarch64/aarch64-protos.h (aarch64_high_bits_all_ones_p): 10867 Define. 10868 * config/aarch64/aarch64.c (aarch64_high_bits_all_ones_p): 10869 New function. 10870 108712018-09-13 Vlad Lazar <vlad.lazar@arm.com> 10872 10873 * config/aarch64/aarch64.h (TARGET_COMPUTE_FRAME_LAYOUT): Define. 10874 * config/aarch64/aarch64.c (aarch64_expand_prologue): Remove 10875 aarch64_layout_frame call. 10876 (aarch64_expand_epilogue): Likewise. 10877 (aarch64_initial_elimination_offset): Likewise. 10878 (aarch64_get_separate_components): Likewise. 10879 (aarch64_use_return_insn_p): Likewise. 10880 (aarch64_layout_frame): Remove unneeded check. 10881 108822018-09-13 Jakub Jelinek <jakub@redhat.com> 10883 10884 * configure.ac: Only append 10885 " : (reconfigured) $TOPLEVEL_CONFIGURE_ARGUMENTS" to 10886 gcc_config_arguments if it was never reconfigured or last reconfigure 10887 was with different arguments. 10888 * configure: Regenerated. 10889 108902018-09-13 Jakub Jelinek <jakub@redhat.com> 10891 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 10892 10893 PR middle-end/87290 10894 * expr.c (maybe_optimize_pow2p_mod_cmp): New function. 10895 (maybe_optimize_mod_cmp): Use it if integer_pow2p treeop1. 10896 108972018-09-13 Jakub Jelinek <jakub@redhat.com> 10898 10899 PR tree-optimization/87287 10900 * fold-const.c (fold_binary_loc) <case EQ_EXPR>: Move signed modulo 10901 X % C == 0 to X % (unsigned) C == 0 optimization to ... 10902 * match.pd (X % C == 0): ... here. New optimization. 10903 109042018-09-12 Jakub Jelinek <jakub@redhat.com> 10905 10906 PR middle-end/82853 10907 * expr.h (maybe_optimize_mod_cmp): Declare. 10908 * expr.c (mod_inv): New function. 10909 (maybe_optimize_mod_cmp): New function. 10910 (do_store_flag): Use it. 10911 * cfgexpand.c (expand_gimple_cond): Likewise. 10912 109132018-09-09 Cesar Philippidis <cesar@codesourcery.com> 10914 Julian Brown <julian@codesourcery.com> 10915 10916 PR middle-end/86336 10917 * gimplify.c (gimplify_scan_omp_clauses): Set 10918 target_firstprivatize_array_bases in OpenACC parallel and kernels 10919 region contexts. Remove GOMP_MAP_FIRSTPRIVATE_REFERENCE clauses from 10920 OpenACC data regions. 10921 109222018-09-12 Uros Bizjak <ubizjak@gmail.com> 10923 10924 * config/i386/i386.md (sqrt_extend<mode>xf3_i387): Remove. 10925 (sqrt<mode>2): Extend operand 1 to XFmode and generate sqrtxf3 insn. 10926 109272018-09-12 Richard Biener <rguenther@suse.de> 10928 10929 PR tree-optimization/87280 10930 * tree-ssa-sccvn.c (process_bb): Handle the case of executable 10931 edge but unreachable target. 10932 (do_rpo_vn): For conservatively handling a PHI only mark 10933 the backedge executable but not the block reachable. 10934 109352018-09-12 Richard Biener <rguenther@suse.de> 10936 10937 PR tree-optimization/87266 10938 * tree-ssa-sccvn.c (do_rpo_vn): Always iterate to not yet 10939 visited blocks. 10940 109412018-09-12 Andreas Krebbel <krebbel@linux.ibm.com> 10942 10943 * config/s390/s390.md (PFPO_RND_MODE_DFP, PFPO_RND_MODE_BFP): New 10944 constants. 10945 ("trunc<BFP:mode><DFP_ALL:mode>2") 10946 ("trunc<DFP_ALL:mode><BFP:mode>2") 10947 ("extend<BFP:mode><DFP_ALL:mode>2") 10948 ("extend<DFP_ALL:mode><BFP:mode>2"): Set proper rounding mode 10949 according to the target operand type. 10950 109512018-09-12 Jakub Jelinek <jakub@redhat.com> 10952 Andreas Krebbel <krebbel@linux.ibm.com> 10953 10954 PR tree-optimization/86844 10955 * gimple-ssa-store-merging.c 10956 (imm_store_chain_info::coalesce_immediate): For overlapping stores, if 10957 there are any overlapping stores in between them, make sure they are 10958 also coalesced or we give up completely. 10959 109602018-09-12 Jakub Jelinek <jakub@redhat.com> 10961 10962 PR middle-end/87248 10963 * fold-const.c (fold_ternary_loc) <case COND_EXPR>: Verify also that 10964 BIT_AND_EXPR's second operand is a power of two. Formatting fix. 10965 109662018-09-12 Tom de Vries <tdevries@suse.de> 10967 10968 * common.opt (gdescribe-dies): Add option. 10969 * dwarf2out.c (add_name_and_src_coords_attributes): Add description 10970 attribute for artifical and nameless decls. 10971 (dwarf2out_register_external_die): Add description attribute to 10972 external reference die. 10973 (add_desc_attribute): New functions. 10974 (gen_subprogram_die): Add description attribute to 10975 DW_TAG_call_site_parameter. 10976 * tree-pretty-print.c (print_generic_expr_to_str): New function. 10977 * tree-pretty-print.h (print_generic_expr_to_str): Declare. 10978 * doc/invoke.texi (@item Debugging Options): Add -gdescribe-dies and 10979 -gno-describe-dies. 10980 (@item -gdescribe-dies): Add. 10981 109822018-09-12 Aldy Hernandez <aldyh@redhat.com> 10983 10984 * tree-vrp.c (vrp_shift_undefined_p): Remove. 10985 (extract_range_from_binary_expr_1: Call 10986 wide_int_range_shift_undefined_p instead of vrp_shift_undefined_p. 10987 * wide-int-range.h (wide_int_range_shift_undefined_p): Do not 10988 depend on sign. 10989 109902018-09-12 Aldy Hernandez <aldyh@redhat.com> 10991 10992 * gimple-ssa-warn-alloca.c 10993 (alloca_type_and_limit::alloca_type_and_limit): Initialize limit 10994 field for ALLOCA_BOUND_*_LARGE. 10995 109962018-09-11 Nathan Sidwell <nathan@acm.org> 10997 10998 * gcc.c (load_specs, execute, run_attempt): Use %qs not '%s'. 10999 110002018-09-11 Uros Bizjak <ubizjak@gmail.com> 11001 11002 * reg-stack.c (subst_asm_stack_regs): Call replace_reg also 11003 for clobbers. Remove obsolete comment. 11004 110052018-09-11 Uros Bizjak <ubizjak@gmail.com> 11006 11007 * config/i386/i386.md (define_attr "type"): Remove mpxmov, mpxmk, 11008 mpxchk, mpxld and mpxst types. 11009 (define_attr length_immediate): Remove all processing of mpx types. 11010 (define_attr prefix_0f): Ditto. 11011 (define_attr memory): Ditto. 11012 110132018-09-11 Uros Bizjak <ubizjak@gmail.com> 11014 11015 * config/i386/i386.md (fyl2x_extend<mode>xf3_i387): Remove. 11016 (log<mode>2): Change operand 1 predicate to general_operand. 11017 Extend operand 1 to XFmode and generate logxf3 insn. 11018 (log10<mode>2): Change operand 1 predicate to general_operand. 11019 Extend operand 1 to XFmode and generate log10xf3 insn. 11020 (log2<mode>2): Change operand 1 predicate to general_operand. 11021 Extend operand 1 to XFmode and generate log2xf3 insn. 11022 (fyl2xp1_extend<mode>xf3_i387): Remove. 11023 (log1p<mode>2): Change operand 1 predicate to general_operand. 11024 Extend operand 1 to XFmode and generate log1pxf3 insn. 11025 (fxtract_extend<mode>xf3_i387): Remove. 11026 (logb<mode>2): Change operand 1 predicate to general_operand. 11027 Extend operand 1 to XFmode and generate logbxf3 insn. 11028 (ilogb<mode>2): Change operand 1 predicate to general_operand. 11029 Extend operand 1 to XFmode and generate fxtractxf3_i387 insn. 11030 (significand<mode>2): Change operand 1 predicate to general_operand. 11031 Extend operand 1 to XFmode and generate significandxf3 insn. 11032 110332018-09-11 Nathan Sidwell <nathan@acm.org> 11034 11035 * gcc.c (perror_with_name, pfatal_with_name): Delete. 11036 (load_specs): Use fatal_error. 11037 (DELETE_IF_ORDINARY, process_command): Use error. 11038 (execute, run_attempt): Use fatal_error. 11039 110402018-09-11 Andrew Stubbs <ams@codesourcery.com> 11041 11042 * diagnostic-core.h (sorry_at): New prototype. 11043 * diagnostic.c (sorry_at): New function. 11044 110452018-09-11 Aldy Hernandez <aldyh@redhat.com> 11046 11047 * tree-vrp.c (extract_range_from_binary_expr_1): Treat all divisions 11048 by zero as VR_UNDEFINED. 11049 110502018-09-10 Uros Bizjak <ubizjak@gmail.com> 11051 11052 * config/i386/i386.md (<sincos>xf2): Rename from *<sincos>xf2_i387. 11053 (*<sincos>_extend<mode>xf2_i387): Remove insn pattern. 11054 (<sincos>mode2): New expander. 11055 (sincos_extend<mode>xf3_i387): Remove insn pattern. 11056 (sincos -> sin, cos splitters): Remove splitter patterns. 11057 (sincos<mode>3): Change operand 2 predicate to general_operand. 11058 Extend operand 2 to XFmode and generate sincosxf3 insn. 11059 (fptanxf4_i387): Change mode of operands 0 and 3 to SFmode. 11060 Change operand 3 predicate to const1_operand. 11061 (fptan_extend<mode>xf4_i387): Remove insn pattern. 11062 (tanxf2): Update operands in the call to fptanxf4_i387. 11063 (tan<mode>2): Change operand 1 predicate to general_operand. 11064 Extend operand 1 to XFmode and generate tanxf3 insn. 11065 (atan2xf3): Rename from *fpatanxf3_i387. 11066 (fpatan_extend<mode>xf3_i387): Remove insn pattern. 11067 (atan2xf3): Remove expander. 11068 (atan2<mode<3): Change operand 1 and 2 predicates to general_operand. 11069 Extend operands 1 and 2 to XFmode and generate atan2xf3 insn. 11070 (atan<mode>2): Change operand 1 predicate to general_operand. 11071 Extend operand 1 to XFmode and generate atanxf3 insn. 11072 110732018-09-10 Uros Bizjak <ubizjak@gmail.com> 11074 11075 * config/i386/i386.md (x87/SSE constant load splitter): Use 11076 memory_operand instead of nonimmediate_operand for input operand 11077 predicate. 11078 110792018-09-09 Uros Bizjak <ubizjak@gmail.com> 11080 11081 * config/i386/i386.md (float partial SSE register stall splitter): Move 11082 splitter near its instruction pattern. 11083 (float_extend partial SSE register stall splitter): Ditto. 11084 (float_truncate partial SSE register stall splitter): Ditto. 11085 110862018-09-09 Hans-Peter Nilsson <hp@bitrange.com> 11087 11088 PR target/86794 11089 * config/mmix/mmix.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine 11090 to speculation_safe_value_not_needed. 11091 11092 PR target/85666 11093 * config/mmix/mmix.c (mmix_assemble_integer): Handle byte-size 11094 non-CONST_INT rtx:es using assemble_integer_with_op ".byte". 11095 (MMIX_CFUN_NEEDS_SAVED_EH_RETURN_ADDRESS): Don't call 11096 leaf_function_p, instead use has_hard_reg_initial_val. 11097 110982018-09-09 Nathan Sidwell <nathan@acm.org> 11099 11100 * gcc.h (pfatal_with_name): Don't declare here. 11101 * gcc.c (pfatal_with_name): Make static. 11102 111032018-09-09 Xianmiao Qu <xianmiao_qu@c-sky.com> 11104 11105 * config/csky/csky.md (*cskyv2_adddi3, *cskyv2_subdi3): Add 11106 earlyclobber. 11107 111082018-09-08 John David Anglin <danglin@gcc.gnu.org> 11109 11110 PR rtl-optimization/85458 11111 * sel-sched.c (sel_target_adjust_priority): Allow backend adjust 11112 priority hook to reduce the priority of EXPR. 11113 111142018-09-07 Uros Bizjak <ubizjak@gmail.com> 11115 11116 * config/i386/i386.md (float<SWI48x:mode><MODEF:mode>2) Enable 11117 DImode for x87 on 32bit targets. Conditionally disable x87 modes 11118 with X87_ENABLE_FLOAT. Remove preparation code. 11119 (*float<SWI48:mode><MODEF:mode>2): Rename from 11120 *float<SWI48:mode><MODEF:mode>2_mixed. Handle x87, SSE and mixed 11121 math using "enabled" attribute. 11122 (*floatdi<MODEF:mode>2_i387): Rename from 11123 *float<SWI48x:mode><MODEF:mode>2_i387. Handle only DImode and 11124 enable for 32bit targets only. 11125 (floatdi<X87MODEF:mode>2_i387_with_xmm pre-reload splitter): New 11126 splitter. 11127 (floatdi<X87MODEF:mode>2_i387_with_xmm): Use register_operand 11128 as operand 1 predicate. Rewrite as define_insn_and_split. 11129 (floatdi<X87MODEF:mode>2_i387_with_xmm memory input splitter): Remove. 11130 111312018-09-06 Uros Bizjak <ubizjak@gmail.com> 11132 11133 * reg-stack.c (get_true_reg) <case FLOAT_TRUNCATE>: Reorder 11134 to fallthru to FLOAT case. 11135 111362018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> 11137 11138 PR target/86731 11139 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Update logic 11140 around folding of vec_sl to handle out of range shift values. 11141 111422018-09-06 Uros Bizjak <ubizjak@gmail.com> 11143 11144 * config/i386/i386.md (fix_trunc<mode>_fisttp_i387_1): Remove. 11145 Update callers to gen_fix_trunc<mode>_i387_fisttp 11146 (fix_trunc<mode>_i387_fisttp): Change operand 0 predicate to 11147 nonimmediate_operand. 11148 (fix_trunc<mode>_i387_fisttp_with_temp): Remove insn pattern 11149 and corresponding splitters. 11150 (*fix_trunc<mode>_i387_1): Always expand with fix_trunc<mode>_i387. 11151 (fix_truncdi_i387): Change operand 0 predicate to nonimmediate_operand. 11152 (fix_truncdi_i387_with_temp): Remove insn pattern 11153 and corresponding splitters. 11154 (fix_trunc<mode>_i387): Change operand 0 predicate to 11155 nonimmediate_operand. 11156 (fix_trunc<mode>_i387_with_temp): Remove insn pattern 11157 and corresponding splitters. 11158 (*fistdi2_1): Remove. 11159 (fistdi2): Ditto. 11160 (fistdi2_with_temp): Remove insn pattern and corresponding splitters. 11161 (lrintxfdi2): Remove expander. Reimplement as define_insn. 11162 (*fist<mode>2_1): Remove. 11163 (fist<mode>2): Ditto. 11164 (fist<mode>2_with_temp): Remove insn pattern and corresponding 11165 splitters. 11166 (lrintxf<mode>2): Remove expander. Reimplement as define_insn. 11167 (*fist<mode>2_<rounding>_1): Always expand with fist<mode>2_<rounding>. 11168 (fistdi2_<rounding>): Change operand 0 predicate to 11169 nonimmediate_operand. 11170 (fistdi2_<rounding>_with_temp): Remove insn pattern 11171 and corresponding splitters. 11172 (fist<mode>2_<rounding>): Change operand 0 predicate to 11173 nonimmediate_operand. 11174 (fist<mode>2_<rounding>_with_temp): Remove insn pattern 11175 and corresponding splitters. 11176 11177 (*fixuns_trunc<mode>si2_avx512f_zext): Depend on TARGET_SSE_MATH. 11178 111792018-09-06 Bernd Edlinger <bernd.edlinger@hotmail.de> 11180 11181 * varasm.c (output_constructor_regular_field): Check TYPE_SIZE_UNIT of 11182 the init value. 11183 111842018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> 11185 11186 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support for 11187 early gimple folding of vec_splat(). 11188 * tree-vect-generic.c: Remove static from tree_vec_extract() definition. 11189 * gimple-fold.h: Add an extern define for tree_vec_extract(). 11190 111912018-09-06 Will Schmidt <will_schmidt@vnet.ibm.com> 11192 11193 * config/rs6000/rs6000.c (fold_mergehl_helper): Add types_compatible_p 11194 wrappers around TREE_TYPE comparisons. 11195 111962018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> 11197 11198 PR target/80080 11199 * config/s390/predicates.md: Add nonsym_memory_operand. 11200 * config/s390/s390.c (s390_legitimize_cs_operand): If operand 11201 contains a SYMBOL_REF, load it into an intermediate pseudo. 11202 (s390_emit_compare_and_swap): Legitimize operand. 11203 * config/s390/s390.md: Use the new nonsym_memory_operand 11204 with UNSPECV_CAS patterns. 11205 112062018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> 11207 11208 PR target/80080 11209 * config/s390/s390-passes.def: New file. 11210 * config/s390/s390-protos.h (class rtl_opt_pass): Add forward 11211 declaration. 11212 (make_pass_s390_early_mach): Add declaration. 11213 * config/s390/s390.c (make_pass_s390_early_mach): 11214 (s390_option_override): Remove dynamic registration. 11215 * config/s390/t-s390: Add s390-passes.def. 11216 112172018-09-06 Ilya Leoshkevich <iii@linux.ibm.com> 11218 11219 * config/s390/s390.c (s390_decompose_constant_pool_ref): 11220 Remove UNSPEC_LTREL_BASE check. 11221 (annotate_constant_pool_refs): Likewise. 11222 (find_constant_pool_ref): Likewise. 11223 (find_ltrel_base): Removed. 11224 (replace_ltrel_base): Removed. 11225 (s390_mainpool_finish): Remove replace_ltrel_base call. 11226 (s390_chunkify_start): Remove pending LTREL_BASE logic. 11227 (s390_chunkify_finish): Remove replace_ltrel_base call. 11228 * config/s390/s390.md: Remove UNSPEC_LTREL_BASE. 11229 112302018-09-06 Hans-Peter Nilsson <hp@axis.com> 11231 11232 PR target/86779 11233 * config/cris/cris.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine 11234 to speculation_safe_value_not_needed. 11235 112362018-09-05 Cesar Philippidis <cesar@codesourcery.com> 11237 Bernd Schmidt <bernds_cb1@t-online.de> 11238 11239 * config/nvptx/nvptx-opts.h: New file. 11240 * config/nvptx/nvptx.c (nvptx_file_start): Print the correct .target. 11241 * config/nvptx/nvptx.h: Include "nvptx-opts.h". 11242 (ASM_SPEC): Define. 11243 (TARGET_SM35): New macro. 11244 * config/nvptx/nvptx.md (atomic_fetch_<logic><mode>): Enable with the 11245 correct predicate. 11246 * config/nvptx/nvptx.opt (ptx_isa, sm_30, sm_35): New enum and its 11247 values. 11248 (misa=): New option. 11249 * doc/invoke.texi (Nvidia PTX Options): Document -misa. 11250 112512018-09-05 Uros Bizjak <ubizjak@gmail.com> 11252 11253 * config/i386/i386.md (truncdfsf2): Remove expander. 11254 (truncdfsf2_with_temp): Ditto. 11255 (truncxf<mode>2): Ditto. 11256 (*truncdfsf_fast_mixed): Remove insn pattern. 11257 (*truncdfsf_fast_i387): Ditto. 11258 (*truncdfsf_mixed): Ditto. 11259 (*truncdfsf_i387): Ditto. 11260 (*truncdfsf2_i387_1): Ditto. 11261 (*truncxfsf2_mixed): Ditto. 11262 (*truncxfdf2_mixed): Ditto. 11263 (*truncxf<mode>2_i387_noop): Ditto. Update callers 11264 to call gen_truncxf<mode>2 instead. 11265 (*truncxf<mode>2_i387): Remove. 11266 (reg->reg splitters): Remove splitter pattern. 11267 (reg->mem splitters): Ditto. 11268 11269 (truncdfsf2): New insn pattern. 11270 (truncxf<mode>2): Ditto. 11271 112722018-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11273 11274 * tree-ssa-math-opts.c (is_mult_by): New function. 11275 (is_square_of): Use the above. 11276 (optimize_recip_sqrt): New function. 11277 (pass_cse_reciprocals::execute): Use the above. 11278 112792018-09-05 Richard Biener <rguenther@suse.de> 11280 11281 PR bootstrap/87134 11282 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Make sure 11283 to zero-init the emplaced vec. 11284 112852018-09-05 Martin Liska <mliska@suse.cz> 11286 11287 PR tree-optimization/87205 11288 * tree-switch-conversion.c (pass_lower_switch::execute): 11289 Group cases for switch statements. 11290 112912018-09-05 Richard Biener <rguenther@suse.de> 11292 11293 PR tree-optimization/87217 11294 * tree-ssa-sccvn.c (vuse_valueize): New. 11295 (vn_reference_lookup_pieces): Use it. 11296 (vn_reference_lookup): Likewise. 11297 112982018-09-05 Nathan Sidwell <nathan@acm.org> 11299 11300 PR c++/87137 11301 * stor-layout.c (place_field): Scan forwards to check last 11302 bitfield when ms_bitfield_placement is in effect. 11303 113042018-09-05 Richard Biener <rguenther@suse.de> 11305 11306 PR bootstrap/87225 11307 * tree-vect-stmts.c (vectorizable_simd_clone_call): Fix bogus 11308 return. 11309 113102018-09-05 Siddhesh Poyarekar <siddhesh@sourceware.org> 11311 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 11312 11313 * config/aarch64/falkor-tag-collision-avoidance.c: New file. 11314 * config.gcc (extra_objs): Build it. 11315 * config/aarch64/t-aarch64 (falkor-tag-collision-avoidance.o): 11316 Likewise. 11317 * config/aarch64/aarch64-passes.def 11318 (pass_tag_collision_avoidance): New pass. 11319 * config/aarch64/aarch64.c (qdf24xx_tunings): Add 11320 AARCH64_EXTRA_TUNE_RENAME_LOAD_REGS to tuning_flags. 11321 (aarch64_classify_address): Remove static qualifier. 11322 (aarch64_address_info, aarch64_address_type): Move to... 11323 * config/aarch64/aarch64-protos.h: ... here. 11324 (make_pass_tag_collision_avoidance): New function. 11325 * config/aarch64/aarch64-tuning-flags.def (rename_load_regs): 11326 New tuning flag. 11327 113282018-09-05 Martin Liska <mliska@suse.cz> 11329 11330 * doc/gcov.texi: Update documentation of humar 11331 readable mode. 11332 * gcov.c (format_count): Print one decimal place, it provides 11333 more fine number of situations like '1G' vs. '1.4G'. 11334 113352018-09-05 Martin Liska <mliska@suse.cz> 11336 11337 PR target/87164 11338 * config/rs6000/rs6000.opt: Mark the option as Deprecated. 11339 * optc-gen.awk: Allow 'Var' for Deprecated options in order 11340 to generate a MASK value. 11341 113422018-09-04 H.J. Lu <hongjiu.lu@intel.com> 11343 11344 PR debug/86593 11345 * dwarf2out.c (based_loc_descr): Allow hard frame pointer even 11346 if frame pointer isn't used. 11347 (compute_frame_pointer_to_fb_displacement): Likewise. 11348 113492018-09-04 Jakub Jelinek <jakub@redhat.com> 11350 11351 PR target/87198 11352 * common/config/i386/i386-common.c (OPTION_MASK_ISA_XSAVEOPT_SET, 11353 OPTION_MASK_ISA_XSAVES_SET, OPTION_MASK_ISA_XSAVEC_SET): Use 11354 OPTION_MASK_ISA_XSAVE_SET instead of OPTION_MASK_ISA_XSAVE. 11355 (OPTION_MASK_ISA_XSAVE_UNSET): Add OPTION_MASK_ISA_XSAVES_UNSET 11356 and OPTION_MASK_ISA_XSAVEC_UNSET. 11357 113582018-09-04 Max Filippov <jcmvbkbc@gmail.com> 11359 11360 * config/xtensa/xtensa.c (xtensa_expand_atomic): Reorder AND and 11361 XOR operations in NAND case. 11362 113632018-09-04 Aldy Hernandez <aldyh@redhat.com> 11364 11365 * wide-int-range.cc (wide_int_range_convert): New. 11366 * wide-int-range.h (wide_int_range_convert): New. 11367 * tree-vrp.c (extract_range_from_unary_expr): Abstract wide int 11368 code into wide_int_range_convert. 11369 (extract_range_into_wide_ints): Do not munge anti range constants 11370 into the entire domain. Just return the range back. 11371 113722018-09-04 Martin Liska <mliska@suse.cz> 11373 11374 * genmatch.c (output_line_directive): Add new argument 11375 fnargs. 11376 (dt_simplify::gen_1): Encapsulate dump within __builtin_expect. 11377 113782018-09-04 Jonathan Wakely <jwakely@redhat.com> 11379 11380 * doc/invoke.texi (Option Summary): Add whitespace. 11381 11382 * doc/invoke.texi (Option Summary): Add -Waligned-new. 11383 113842018-09-04 Richard Biener <rguenther@suse.de> 11385 11386 PR tree-optimization/87211 11387 * tree-ssa-sccvn.c (visit_phi): When value-numbering to a 11388 backedge value we're supposed to treat as VARYING also number 11389 the PHI to VARYING in case it got a different value-number already. 11390 113912018-09-04 Aldy Hernandez <aldyh@redhat.com> 11392 11393 * tree-vrp.c (vrp_can_optimize_bit_op): Remove. 11394 (extract_range_from_binary_expr_1): Do not call 11395 vrp_can_optimize_bit_op. 11396 * wide-int-range.cc (wide_int_range_can_optimize_bit_op): Make 11397 static. 11398 (wide_int_range_get_mask_and_bounds): New. 11399 (wide_int_range_optimize_bit_op): New. 11400 (wide_int_range_bit_ior): Call wide_int_range_optimize_bit_op. 11401 (wide_int_range_bit_and): Same. 11402 * wide-int-range.h (wide_int_range_can_optimize_bit_op): Remove. 11403 (wide_int_range_optimize_bit_op): New. 11404 (wide_int_range_get_mask_and_bounds): New. 11405 114062018-09-04 Richard Biener <rguenther@suse.de> 11407 11408 PR tree-optimization/87176 11409 * tree-ssa-sccvn.c (visit_phi): Remove redundant allsame 11410 variable. When value-numbering a virtual PHI node make sure 11411 to not value-number to the backedge value. 11412 114132018-09-04 Jonathan Wakely <jwakely@redhat.com> 11414 11415 * doc/extend.texi (Long Long, Hex Floats): Document support for 11416 long long and hex floats in more recent versions of ISO C++. 11417 114182018-09-03 Richard Biener <rguenther@suse.de> 11419 11420 PR tree-optimization/87177 11421 * tree-ssa-sccvn.c (vuse_ssa_val): Revert previous change, keep 11422 cleanup. 11423 114242018-09-03 Alexander Monakov <amonakov@ispras.ru> 11425 11426 * bb-reorder.c (edge_order): Convert to C-qsort-style 11427 tri-state comparator. 11428 (reorder_basic_blocks_simple): Change std::stable_sort to 11429 gcc_stablesort. 11430 114312018-09-03 Alexander Monakov <amonakov@ispras.ru> 11432 11433 * tree-loop-distribution.c (offset_cmp): Convert to C-qsort-style 11434 tri-state comparator. 11435 (fuse_memset_builtins): Change std::stable_sort to gcc_stablesort. 11436 114372018-09-03 Alexander Monakov <amonakov@ispras.ru> 11438 11439 * sort.cc (struct sort_ctx): New field 'nlim'. Use it... 11440 (mergesort): ... here as maximum count for using netsort. 11441 (gcc_qsort): Set nlim to 3 if stable sort is requested. 11442 (gcc_stablesort): New. 11443 * system.h (gcc_stablesort): Declare. 11444 114452018-09-03 Alexander Monakov <amonakov@ispras.ru> 11446 11447 * sort.cc (gcc_qsort) [CHECKING_P]: Call qsort_chk. 11448 * system.h (qsort): Always redirect to gcc_qsort. Update comment. 11449 * vec.c (qsort_chk): Do not call gcc_qsort. Update comment. 11450 114512018-09-03 Segher Boessenkool <segher@kernel.crashing.org> 11452 11453 * config/rs6000/rs6000.md (*mov<mode>_hardfloat32): Remove %U from the 11454 lxsdx and stxsdx alternatives. 11455 (*mov<mode>_hardfloat64): Ditto. 11456 * config/rs6000/vsx.md (*vsx_extract_<mode>_store): Ditto. 11457 114582018-09-03 Richard Biener <rguenther@suse.de> 11459 11460 PR tree-optimization/87200 11461 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize a 11462 simplify result. 11463 114642018-09-03 Martin Liska <mliska@suse.cz> 11465 11466 PR tree-optimization/87201 11467 * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): 11468 Fix parenthesis in an expression. 11469 114702018-09-03 Richard Biener <rguenther@suse.de> 11471 11472 PR tree-optimization/87197 11473 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Mark the new def 11474 visited. CSE the VN_INFO hashtable lookup. 11475 11476 PR tree-optimization/87169 11477 * tree-ssa-sccvn.c (do_rpo_vn): When marking loops for not 11478 iterating make sure there's no extra backedges from irreducible 11479 regions feeding the header. Mark the destination block 11480 executable. 11481 114822018-09-03 Martin Liska <mliska@suse.cz> 11483 11484 PR driver/83193 11485 * common/common-target.def: Add TARGET_GET_VALID_OPTION_VALUES. 11486 * common/common-targhooks.c (default_get_valid_option_values): 11487 New function. 11488 * common/common-targhooks.h (default_get_valid_option_values): 11489 Likewise. 11490 * common/config/i386/i386-common.c: Move processor_target_table 11491 from i386.c. 11492 (ix86_get_valid_option_values): New function. 11493 (TARGET_GET_VALID_OPTION_VALUES): New macro. 11494 * config/i386/i386.c (struct ptt): Move to i386-common.c. 11495 (PTA_*): Move all defined masks into i386-common.c. 11496 (ix86_function_specific_restore): Use new processor_cost_table. 11497 * config/i386/i386.h (struct ptt): Moved from i386.c. 11498 (struct pta): Likewise. 11499 * doc/tm.texi: Document new TARGET_GET_VALID_OPTION_VALUES. 11500 * doc/tm.texi.in: Likewise. 11501 * opt-suggestions.c (option_proposer::suggest_option): 11502 Pass prefix to build_option_suggestions. 11503 (option_proposer::get_completions): Likewise. 11504 (option_proposer::build_option_suggestions): Use the new target 11505 hook. 11506 * opts.c (struct option_help_tuple): New struct. 11507 (print_filtered_help): Use the new target hook. 11508 115092018-09-03 Martin Liska <mliska@suse.cz> 11510 11511 PR middle-end/59521 11512 * predict.c (set_even_probabilities): Add likely_edges 11513 argument and handle cases where we have precisely one 11514 likely edge. 11515 (combine_predictions_for_bb): Catch also likely_edges. 11516 (tree_predict_by_opcode): Handle gswitch statements. 11517 * tree-cfg.h (find_case_label_for_value): New declaration. 11518 (find_taken_edge_switch_expr): Likewise. 11519 * tree-switch-conversion.c (switch_decision_tree::balance_case_nodes): 11520 Find pivot in decision tree based on probabily, not by number of 11521 nodes. 11522 115232018-09-02 Gerald Pfeifer <gerald@pfeifer.com> 11524 11525 * doc/standards.texi (Standards): Update Objective-C reference. 11526 115272018-09-01 Gerald Pfeifer <gerald@pfeifer.com> 11528 11529 * doc/install.texi (Prerequisites): Update link for MPC. 11530 115312018-09-01 Michael Matz <matz@suse.de> 11532 11533 PR tree-optimization/87074 11534 * gimple-loop-jam.c (unroll_jam_possible_p): Check loop exit 11535 PHIs for outer-loop uses. 11536 115372018-09-01 Gerald Pfeifer <gerald@pfeifer.com> 11538 11539 * doc/generic.texi (OpenMP): Adjust link to openmp.org. 11540 * doc/invoke.texi (C Dialect Options): Ditto. 11541 115422018-09-01 Gerald Pfeifer <gerald@pfeifer.com> 11543 11544 * doc/install.texi (Prerequisites): Adjust link mpfr.org. 11545 115462018-08-31 Richard Biener <rguenther@suse.de> 11547 11548 PR tree-optimization/87168 11549 * tree-ssa-sccvn.c (SSA_VAL): Add visited output parameter. 11550 (rpo_elim::eliminate_avail): When OP was not visited it must 11551 be available. 11552 115532018-08-31 David Malcolm <dmalcolm@redhat.com> 11554 11555 * tree-vrp.c (copy_value_range): Convert param "from" from 11556 "value_range *" to "const value_range *". 11557 (range_is_null): Likewise for param "vr". 11558 (range_int_cst_p): Likewise. 11559 (range_int_cst_singleton_p): Likewise. 11560 (symbolic_range_p): Likewise. 11561 (value_ranges_intersect_p): Likewise for both params. 11562 (value_range_nonnegative_p): Likewise for param "vr". 11563 (value_range_constant_singleton): Likewise. 11564 (vrp_set_zero_nonzero_bits): Likewise for param "ar". 11565 (extract_range_into_wide_ints): Likewise for param "vr". 11566 (extract_range_from_multiplicative_op): Likewise for params "vr0" 11567 and "vr1". 11568 (vrp_can_optimize_bit_op): Likewise. 11569 (extract_range_from_binary_expr_1): Likewise for params "vr0_" and 11570 "vr1_". 11571 (extract_range_from_unary_expr): Likewise. 11572 (debug_value_range): Likewise for param "vr". 11573 (value_range::dump): Add "const" qualifier. 11574 (vrp_prop::check_array_ref): Convert local "vr" from 11575 "value_range *" to "const value_range *". 11576 (vrp_prop::check_mem_ref): Likewise. 11577 (vrp_prop::visit_stmt): Likewise for local "old_vr". 11578 (vrp_intersect_ranges_1): Likewise for param "vr_1". 11579 (vrp_intersect_ranges): Likewise. 11580 (simplify_stmt_for_jump_threading): Likewise for local "vr". 11581 (vrp_prop::vrp_finalize): Likewise. 11582 * tree-vrp.h (value_range::dump): Add "const" qualifier. 11583 (vrp_intersect_ranges): Add "const" qualifier to params as above. 11584 (extract_range_from_unary_expr): Likewise. 11585 (value_range_constant_singleton): Likewise. 11586 (symbolic_range_p): Likewise. 11587 (copy_value_range): Likewise. 11588 (extract_range_from_binary_expr_1): Likewise. 11589 (range_int_cst_p): Likewise. 11590 (vrp_set_zero_nonzero_bits): Likewise. 11591 (range_int_cst_singleton_p): Likewise. 11592 115932018-08-31 Vlad Lazar <vlad.lazar@arm.com> 11594 11595 * config/aarch64/arm_neon.h (vabsd_s64): New. 11596 (vnegd_s64): Likewise. 11597 115982018-08-31 Martin Jambor <mjambor@suse.cz> 11599 11600 * ipa-cp.c (estimate_local_effects): Replace wrong MAX with MIN. 11601 116022018-08-31 Martin Liska <mliska@suse.cz> 11603 11604 * ipa-icf.c (sem_item::add_type): Use 11605 sem_item::m_type_hash_cache. 11606 * ipa-icf.h: Move the cache from sem_item_optimizer 11607 to sem_item. 11608 116092018-08-31 Nathan Sidwell <nathan@acm.org> 11610 11611 * doc/extend.texi (Backwards Compatibility): Remove implicit 11612 extern C leeway of () being (...). 11613 116142018-08-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 11615 11616 * ipa-inline.c (can_inline_edge_by_limits_p): Fix typos in comment. 11617 116182018-08-31 Segher Boessenkool <segher@kernel.crashing.org> 11619 11620 PR target/86684 11621 PR target/87149 11622 * config/rs6000/rs6000.md (lround<mode>di2): Gate on TARGET_FPRND. 11623 116242018-08-31 Jakub Jelinek <jakub@redhat.com> 11625 11626 PR middle-end/87138 11627 * expmed.c (expand_mult_const): Use immed_wide_int_const instead of 11628 gen_int_mode. Formatting fixes. 11629 116302018-08-30 Sandra Loosemore <sandra@codesourcery.com> 11631 11632 * target.def (custom_function_descriptors): Improve documentation. 11633 * doc/tm.texi.in (Trampolines): Expand discussion of function 11634 descriptors and move TARGET_CUSTOM_FUNCTION_DESCRIPTORS to the 11635 beginning of the section. 11636 * doc/tm.texi: Regenerated. 11637 116382018-08-30 Jose E. Marchesi <jose.marchesi@oracle.com> 11639 11640 * cfg.h (class auto_edge_flag): Spell out the template-id of the 11641 base class in the initializer list. This is a workaround for 11642 building with older GCC. 11643 (class auto_bb_flag): Likewise. 11644 116452018-08-30 Aaron Sawdey <acsawdey@linux.ibm.com> 11646 11647 * config/rs6000/altivec.md (altivec_eq<mode>): Remove star. 11648 (altivec_vcmpequ<VI_char>_p): Remove star. 11649 * config/rs6000/rs6000-string.c (do_load_for_compare): Support 11650 vector load modes. 11651 (expand_strncmp_vec_sequence): New function. 11652 (emit_final_str_compare_vec): New function. 11653 (expand_strn_compare): Add support for vector strncmp. 11654 * config/rs6000/rs6000.opt (-mstring-compare-inline-limit): Change 11655 length specification to bytes. 11656 * config/rs6000/vsx.md (vsx_ld_elemrev_v16qi_internal): Remove star. 11657 (vcmpnezb_p): New pattern. 11658 * doc/invoke.texi (RS/6000 and PowerPC Options): Update documentation 11659 for option -mstring-compare-inline-limit. 11660 116612018-08-30 Thiago Macieira <thiago.macieira@intel.com> 11662 11663 * config/i386/i386.c (PTA_WESTMERE): Remove PTA_AES. 11664 (PTA_SKYLAKE): Add PTA_AES. 11665 (PTA_GOLDMONT): Likewise. 11666 116672018-08-29 Jan Hubicka <jh@suse.cz> 11668 11669 PR lto/86517 11670 * lto-opts.c (lto_write_options): Always stream PIC/PIE mode. 11671 * lto-wrapper.c (merge_and_complain): Fix merging of PIC/PIE. 11672 116732018-08-29 Jan Hubicka <jh@suse.cz> 11674 11675 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not follow 11676 TYPE_STUB_DECL. 11677 (hash_tree): Do not visit TYPE_STUB_DECL. 11678 * tree-streamer-out.c (write_ts_type_common_tree_pointers): Do not 11679 stream TYPE_STUB_DECL. 11680 * tree-streamer-in.c (lto_input_ts_type_common_tree_pointers): Likewise. 11681 * ipa-utils.h (type_with_linkage_p): Do not rely on TYPE_STUB_DECL 11682 after free_lang_data. 11683 (type_in_anonymous_namespace_p): Likewise. 11684 116852018-08-29 Jan Hubicka <jh@suse.cz> 11686 11687 * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary 11688 comment that it has to be even number. 11689 (class sreal): Change m_sig type to int32_t. 11690 * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use 11691 int64_t for temporary calculations. 11692 (sreal_verify_basics): Drop one bit from minimum and maximum. 11693 116942018-08-30 Richard Biener <rguenther@suse.de> 11695 11696 PR tree-optimization/87147 11697 * tree-ssa-sccvn.c (SSA_VISITED): New function. 11698 (visit_phi): When the degenerate result is from the backedge and 11699 we didn't visit its definition yet drop to VARYING. 11700 (do_rpo_vn): Properly mark blocks with incoming backedges as executable. 11701 117022018-08-29 Jan Hubicka <jh@suse.cz> 11703 11704 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not walk 11705 DECL_VINDEX. 11706 (hash_tree): Likewise. 11707 117082018-08-29 Jan Hubicka <jh@suse.cz> 11709 11710 * tree.c (find_decls_types_r): Walk also TYPE_NEXT_PTR_TO 11711 and TYPE_NEXT_REF_TO. 11712 117132018-08-29 Jan Hubicka <jh@suse.cz> 11714 11715 * sreal.h (SREAL_PART_BITS): Change to 31; remove seemingly unnecessary 11716 comment that it has to be even number. 11717 (class sreal): Change m_sig type to int32_t. 11718 * sreal.c (sreal::dump, sreal::to_int, opreator+, operator-): Use 11719 int64_t for temporary calculations. 11720 (sreal_verify_basics): Drop one bit from minimum and maximum. 11721 117222018-08-30 Tamar Christina <tamar.christina@arm.com> 11723 11724 * config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max. 11725 117262018-08-30 Vlad Lazar <vlad.lazar@arm.com> 11727 11728 PR middle-end/86995 11729 * expmed.c (canonicalize_comparison): Use wi::sub instead of wi::add 11730 if to_add is negative. 11731 117322018-08-29 Bernd Edlinger <bernd.edlinger@hotmail.de> 11733 11734 PR middle-end/87053 11735 * builtins.c (c_strlen): Improve range checks. 11736 117372018-08-29 Martin Sebor <msebor@redhat.com> 11738 Jeff Law <law@redhat.com> 11739 11740 PR tree-optimization/86714 11741 PR tree-optimization/86711 11742 * builtins.c (c_strlen): Add arguments to call to string_constant. 11743 * expr.c (string_constant): Add argument. Detect missing nul 11744 terminator and outermost declaration it's missing in. 11745 * expr.h (string_constant): Add argument. 11746 * fold-const.c (read_from_constant_string): Add arguments to call to 11747 string_constant. 11748 (c_getstr): Likewise. 11749 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. 11750 to string_constant. 11751 * tree-ssa-strlen.c (get_stridx): Likewise. 11752 117532018-08-29 Jan Hubicka <jh@suse.cz> 11754 11755 * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): 11756 Do not stream DECL_VINDEX. 11757 * tree-streamer-out.c (write_ts_function_decl_tree_pointers): Likewise. 11758 * tree.c (free_lang_data_in_decl): Clear DECL_VINDEX. 11759 (decl_function_context): Use DECL_VIRTUAL_P rather than DECL_VINDEX. 11760 117612018-08-29 Richard Biener <rguenther@suse.de> 11762 11763 * tree-ssa-sccvn.c (vuse_ssa_val): Return NULL for unvisited 11764 virtual operands that are not default defs to honor region 11765 boundaries. 11766 (rpo_vn_valueize): Remove ineffective code here. 11767 117682018-08-29 Richard Biener <rguenther@suse.de> 11769 11770 PR tree-optimization/87132 11771 * tree-ssa-alias.c (get_continuation_for_phi): Do not translate 11772 when skipping defs reachable over backedges. 11773 117742018-08-29 Richard Biener <rguenther@suse.de> 11775 11776 * tree-core.h: Document use of deprecated_flag in SSA_NAME. 11777 * tree.h (SSA_NAME_POINTS_TO_READONLY_MEMORY): Define. 11778 * tree-into-ssa.c (pass_build_ssa::execute): Initialize 11779 function parameters SSA_NAME_POINTS_TO_READONLY_MEMORY from fnspec. 11780 * tree-ssa-sccvn.c (const_parms, init_const_parms): Remove. 11781 (vn_reference_lookup_3): Remove use of const_parms. 11782 (free_rpo_vn): Do not free const_parms. 11783 (do_rpo_vn): Do not call init_const_parms. 11784 * tree-ssa-alias.c (refs_may_alias_p_1): Honor 11785 SSA_NAME_POINTS_TO_READONLY_MEMORY. 11786 (call_may_clobber_ref_p_1): Likewise. 11787 117882018-08-29 Alexander Monakov <amonakov@ispras.ru> 11789 11790 PR other/86726 11791 * invoke.texi (Optimization Options): List -ftree-scev-cprop. 11792 (-O): Ditto. 11793 (-ftree-scev-cprop): Document. 11794 117952018-08-29 Jan Hubicka <jh@suse.cz> 11796 11797 * sreal.h (normalize, normalize_up, normalize_down): Add new_sig/new_exp 11798 parameters. 11799 (sreal constructor): Update. 11800 * sreal.c (sreal:operator+, sreal:operator-, sreal:operator*, 11801 sreal:operator/): Update. 11802 118032018-08-29 Martin Liska <mliska@suse.cz> 11804 11805 * tree-switch-conversion.c (switch_conversion::expand): 11806 Strenghten assumption about gswitch statements. 11807 118082018-08-29 Richard Biener <rguenther@suse.de> 11809 11810 PR tree-optimization/87117 11811 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Only 11812 re-value-number released SSA VDEFs. 11813 118142018-08-29 Richard Biener <rguenther@suse.de> 11815 11816 PR tree-optimization/87126 11817 * tree-ssa-sccvn.c (vn_reference_insert): Remove assert. 11818 118192018-08-28 Jim Wilson <jimw@sifive.com> 11820 11821 * config/riscv/pic.md: Rewrite. 11822 * config/riscv/riscv.c (riscv_address_insns): Return cost of 3 for 11823 invalid address. 11824 * config/riscv/riscv.md (ZERO_EXTEND_LOAD): Delete. 11825 (SOFTF, default_load, softload, softstore): New. 11826 118272018-08-28 Jeff Law <law@redhat.com> 11828 11829 * fold-const.c (fold_binary_loc): Remove recently added assert. 11830 118312018-08-28 Joern Rennecke <joern.rennecke@riscy-ip.com> 11832 11833 * genpreds.c (write_predicate_subfunction): Also add ATTRIBUTE_UNUSED 11834 to OP parmeter of generated function. 11835 118362018-08-28 MCC CS <deswurstes@users.noreply.github.com> 11837 11838 PR tree-optimization/87009 11839 * match.pd: Add boolean optimizations. 11840 118412018-08-28 Martin Sebor <msebor@redhat.com> 11842 11843 PR middle-end/86631 11844 * calls.c (alloc_max_size): Treat HOST_WIDE_INT special. 11845 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): New function. 11846 (pass_walloca::gate): Use it. 11847 (alloca_call_type): Same. 11848 (pass_walloca::execute): Same. 11849 * stor-layout.c (layout_decl): Treat HOST_WIDE_INT special. 11850 118512018-08-28 David Malcolm <dmalcolm@redhat.com> 11852 11853 * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): Change version check on 11854 GCC_VERSION for usage of "__gcc_dump_printf__" format from 11855 >= 3005 to >= 9000. 11856 118572018-08-28 Richard Biener <rguenther@suse.de> 11858 11859 PR tree-optimization/87124 11860 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Guard against 11861 constants before looking up avail. 11862 118632018-08-28 Jakub Jelinek <jakub@redhat.com> 11864 11865 PR middle-end/87099 11866 * calls.c (maybe_warn_nonstring_arg): Punt early if 11867 warn_stringop_overflow is zero. Don't call get_range_strlen 11868 on 3rd argument, keep iterating until lenrng[1] is INTEGER_CST. 11869 Swap comparison operands to have constants on rhs. Only use 11870 lenrng[1] if non-NULL and INTEGER_CST. Don't uselessly 11871 increment lenrng[0]. 11872 118732018-08-28 Richard Sandiford <richard.sandiford@arm.com> 11874 11875 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Fix unguarded 11876 use of tree_to_shwi. Remove duplicated test for the size being 11877 a whole number of bytes. 11878 118792018-08-28 Richard Biener <rguenther@suse.de> 11880 11881 PR tree-optimization/87117 11882 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_cleanup): 11883 Handle removed stmt without LHS (GIMPLE_NOP). 11884 118852018-08-28 Richard Biener <rguenther@suse.de> 11886 11887 PR tree-optimization/87117 11888 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Exclude 11889 void which is is_gimple_reg_type by checking for COMPLETE_TYPE_P. 11890 118912018-08-28 Richard Biener <rguenther@suse.de> 11892 11893 PR tree-optimization/87117 11894 * tree-ssa-pre.c (compute_avail): Do not make expressions 11895 with predicated values available. 11896 (get_expr_value_id): Assert we do not run into predicated value 11897 expressions. 11898 118992018-08-28 Richard Biener <rguenther@suse.de> 11900 11901 PR tree-optimization/87117 11902 * tree-ssa-operands.c (add_stmt_operand): STRING_CST may 11903 get virtual operands. 11904 (get_expr_operands): Handle STRING_CST like other decls. 11905 119062018-08-28 Martin Liska <mliska@suse.cz> 11907 11908 * tree.h: Update documentation of fndecl_built_in_p 11909 functions. 11910 11911 119122018-08-27 Jeff Law <law@redhat.com> 11913 PR tree-optimization/87110 11914 * tree-ssa-dse.c (compute_trims): Handle non-constant 11915 TYPE_SIZE_UNIT. 11916 119172018-08-27 Martin Sebor <msebor@redhat.com> 11918 11919 PR tree-optimization/86914 11920 * tree-ssa-strlen.c (maybe_set_strlen_range): Avoid MEM_REF. 11921 119222018-08-27 Martin Sebor <msebor@redhat.com> 11923 11924 PR tree-optimization/87112 11925 * builtins.c (expand_builtin_strnlen): Convert c_strlen result to 11926 the type of the bound argument. 11927 119282018-08-27 Jeff Law <law@redhat.com> 11929 11930 * tree-ssa-dse.c (compute_trims): Handle case where the reference's 11931 type does not have a TYPE_SIZE_UNIT. 11932 119332018-08-27 Steve Ellcey <sellcey@cavium.com> 11934 11935 * config/aarch64/aarch64-speculation.cc: Replace include of cfg.h 11936 with include of backend.h. 11937 119382018-08-27 Richard Biener <rguenther@suse.de> 11939 11940 PR tree-optimization/86927 11941 * tree-vect-loop.c (vect_create_epilog_for_reduction): Properly 11942 use const cond reduction code. 11943 119442018-08-27 Alexander Monakov <amonakov@ispras.ru> 11945 11946 PR tree-optimization/85758 11947 * match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression. 11948 119492018-08-27 David Malcolm <dmalcolm@redhat.com> 11950 11951 PR c++/87091 11952 * diagnostic-show-locus.c (class layout_range): Update for 11953 conversion of show_caret_p to a tri-state. 11954 (layout_range::layout_range): Likewise. 11955 (make_range): Likewise. 11956 (layout::maybe_add_location_range): Likewise. 11957 (layout::should_print_annotation_line_p): Don't show annotation 11958 lines for ranges that are SHOW_LINES_WITHOUT_RANGE. 11959 (layout::get_state_at_point): Update for conversion of 11960 show_caret_p to a tri-state. Bail out early for 11961 SHOW_LINES_WITHOUT_RANGE, so that such ranges don't affect 11962 underlining or source colorization. 11963 (gcc_rich_location::add_location_if_nearby): Update for conversion 11964 of show_caret_p to a tri-state. 11965 (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. 11966 (selftest::test_one_liner_fixit_replace_equal_secondary_range): 11967 Likewise. 11968 (selftest::test_one_liner_labels): Likewise. 11969 * gcc-rich-location.c (gcc_rich_location::add_expr): Update for 11970 conversion of show_caret_p to a tri-state. 11971 * pretty-print.c (text_info::set_location): Likewise. 11972 * pretty-print.h (text_info::set_location): Likewise. 11973 * substring-locations.c (format_warning_n_va): Likewise. 11974 * tree-diagnostic.c (default_tree_printer): Likewise. 11975 * tree-pretty-print.c (newline_and_indent): Likewise. 11976 119772018-08-27 David Malcolm <dmalcolm@redhat.com> 11978 11979 PR c++/87091 11980 * diagnostic-show-locus.c (get_line_span_for_fixit_hint): Show the 11981 line above for line-insertion fix-it hints. 11982 (selftest::test_fixit_insert_containing_newline): Update the 11983 expected results, and add a test with line-numbering enabled. 11984 119852018-08-27 Martin Liska <mliska@suse.cz> 11986 11987 PR sanitizer/86962 11988 * sanopt.c (sanitize_rewrite_addressable_params): Ignore 11989 params with DECL_HAS_VALUE_EXPR_P. 11990 119912018-08-27 Martin Liska <mliska@suse.cz> 11992 11993 * config/i386/i386.c (ix86_expand_set_or_movmem): Dump 11994 selected expansion strategy. 11995 119962018-08-27 Martin Liska <mliska@suse.cz> 11997 11998 * builtins.h (is_builtin_fn): Remove and fndecl_built_in_p. 11999 * builtins.c (is_builtin_fn): Likewise. 12000 * attribs.c (diag_attr_exclusions): Use new function 12001 fndecl_built_in_p and remove check for FUNCTION_DECL if 12002 possible. 12003 (builtin_mathfn_code): Likewise. 12004 (fold_builtin_expect): Likewise. 12005 (fold_call_expr): Likewise. 12006 (fold_builtin_call_array): Likewise. 12007 (fold_call_stmt): Likewise. 12008 (set_builtin_user_assembler_name): Likewise. 12009 (is_simple_builtin): Likewise. 12010 * calls.c (gimple_alloca_call_p): Likewise. 12011 (maybe_warn_nonstring_arg): Likewise. 12012 * cfgexpand.c (expand_call_stmt): Likewise. 12013 * cgraph.c (cgraph_update_edges_for_call_stmt_node): Likewise. 12014 (cgraph_edge::verify_corresponds_to_fndecl): Likewise. 12015 (cgraph_node::verify_node): Likewise. 12016 * cgraphclones.c (build_function_decl_skip_args): Likewise. 12017 (cgraph_node::create_clone): Likewise. 12018 * config/arm/arm.c (arm_insert_attributes): Likewise. 12019 * config/i386/i386.c (ix86_gimple_fold_builtin): Likewise. 12020 * dse.c (scan_insn): Likewise. 12021 * expr.c (expand_expr_real_1): Likewise. 12022 * fold-const.c (operand_equal_p): Likewise. 12023 (fold_binary_loc): Likewise. 12024 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Likewise. 12025 * gimple-low.c (lower_stmt): Likewise. 12026 * gimple-pretty-print.c (dump_gimple_call): Likewise. 12027 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): 12028 Likewise. 12029 * gimple.c (gimple_build_call_from_tree): Likewise. 12030 (gimple_call_builtin_p): Likewise. 12031 (gimple_call_combined_fn): Likewise. 12032 * gimplify.c (gimplify_call_expr): Likewise. 12033 (gimple_boolify): Likewise. 12034 (gimplify_modify_expr): Likewise. 12035 (gimplify_addr_expr): Likewise. 12036 * hsa-gen.c (gen_hsa_insns_for_call): Likewise. 12037 * ipa-cp.c (determine_versionability): Likewise. 12038 * ipa-fnsummary.c (compute_fn_summary): Likewise. 12039 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. 12040 * ipa-split.c (visit_bb): Likewise. 12041 (split_function): Likewise. 12042 * ipa-visibility.c (cgraph_externally_visible_p): Likewise. 12043 * lto-cgraph.c (input_node): Likewise. 12044 * lto-streamer-out.c (write_symbol): Likewise. 12045 * omp-low.c (setjmp_or_longjmp_p): Likewise. 12046 (lower_omp_1): Likewise. 12047 * predict.c (strip_predict_hints): Likewise. 12048 * print-tree.c (print_node): Likewise. 12049 * symtab.c (symtab_node::output_to_lto_symbol_table_p): Likewise. 12050 * trans-mem.c (is_tm_irrevocable): Likewise. 12051 (is_tm_load): Likewise. 12052 (is_tm_simple_load): Likewise. 12053 (is_tm_store): Likewise. 12054 (is_tm_simple_store): Likewise. 12055 (is_tm_abort): Likewise. 12056 (tm_region_init_1): Likewise. 12057 * tree-call-cdce.c (gen_shrink_wrap_conditions): Likewise. 12058 * tree-cfg.c (verify_gimple_call): Likewise. 12059 (move_stmt_r): Likewise. 12060 (stmt_can_terminate_bb_p): Likewise. 12061 * tree-eh.c (lower_eh_constructs_2): Likewise. 12062 * tree-if-conv.c (if_convertible_stmt_p): Likewise. 12063 * tree-inline.c (remap_gimple_stmt): Likewise. 12064 (copy_bb): Likewise. 12065 (estimate_num_insns): Likewise. 12066 (fold_marked_statements): Likewise. 12067 * tree-sra.c (scan_function): Likewise. 12068 * tree-ssa-ccp.c (surely_varying_stmt_p): Likewise. 12069 (optimize_stack_restore): Likewise. 12070 (pass_fold_builtins::execute): Likewise. 12071 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. 12072 (mark_all_reaching_defs_necessary_1): Likewise. 12073 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Likewise. 12074 * tree-ssa-forwprop.c (simplify_builtin_call): Likewise. 12075 (pass_forwprop::execute): Likewise. 12076 * tree-ssa-loop-im.c (stmt_cost): Likewise. 12077 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. 12078 * tree-ssa-sccvn.c (fully_constant_vn_reference_p): Likewise. 12079 * tree-ssa-strlen.c (get_string_length): Likewise. 12080 * tree-ssa-structalias.c (handle_lhs_call): Likewise. 12081 (find_func_aliases_for_call): Likewise. 12082 * tree-ssa-ter.c (find_replaceable_in_bb): Likewise. 12083 * tree-stdarg.c (optimize_va_list_gpr_fpr_size): Likewise. 12084 * tree-tailcall.c (find_tail_calls): Likewise. 12085 * tree.c (need_assembler_name_p): Likewise. 12086 (free_lang_data_in_decl): Likewise. 12087 (get_call_combined_fn): Likewise. 12088 * ubsan.c (is_ubsan_builtin_p): Likewise. 12089 * varasm.c (incorporeal_function_p): Likewise. 12090 * tree.h (DECL_BUILT_IN): Remove and replace with 12091 fndecl_built_in_p. 12092 (DECL_BUILT_IN_P): Transfort to fndecl_built_in_p. 12093 (fndecl_built_in_p): New. 12094 120952018-08-27 Martin Liska <mliska@suse.cz> 12096 12097 PR tree-optimization/86847 12098 * tree-switch-conversion.c (switch_decision_tree::dump_case_nodes): 12099 Dump also subtree probability. 12100 (switch_decision_tree::do_jump_if_equal): New function. 12101 (switch_decision_tree::emit_case_nodes): Handle special 12102 situations in balanced tree that can be emitted much simpler. 12103 Fix calculation of probabilities that happen in tree expansion. 12104 * tree-switch-conversion.h (struct cluster): Add 12105 is_single_value_p. 12106 (struct simple_cluster): Likewise. 12107 (struct case_tree_node): Add new function has_child. 12108 (do_jump_if_equal): New. 12109 121102018-08-27 Martin Liska <mliska@suse.cz> 12111 12112 * tree-switch-conversion.c (bit_test_cluster::find_bit_tests): 12113 Add new argument to bit_test_cluster constructor. 12114 (bit_test_cluster::emit): Set bits really number of values 12115 handlel by a test. 12116 (bit_test_cluster::hoist_edge_and_branch_if_true): Add 12117 probability argument. 12118 * tree-switch-conversion.h (struct bit_test_cluster): 12119 Add m_handles_entire_switch. 12120 121212018-08-27 Martin Liska <mliska@suse.cz> 12122 12123 PR tree-optimization/86702 12124 * tree-switch-conversion.c (jump_table_cluster::emit): 12125 Make probabilities even for values in jump table 12126 according to number of cases handled. 12127 (switch_decision_tree::compute_cases_per_edge): Pass 12128 argument to reset_out_edges_aux function. 12129 (switch_decision_tree::analyze_switch_statement): Likewise. 12130 * tree-switch-conversion.h (switch_decision_tree::reset_out_edges_aux): 12131 Make it static. 12132 121332018-08-27 Martin Liska <mliska@suse.cz> 12134 12135 * cfgexpand.c (expand_asm_stmt): Use label_to_block and pass 12136 cfun argument explicitly. 12137 * gimple-pretty-print.c (dump_gimple_switch): Likewise. 12138 * hsa-gen.c (gen_hsa_insns_for_switch_stmt): Use new 12139 function gimple_switch_default_bb. 12140 (convert_switch_statements): 12141 (expand_builtins): 12142 * ipa-fnsummary.c (set_switch_stmt_execution_predicate): 12143 * stmt.c (label_to_block_fn): Use label_to_block and pass 12144 cfun argument explicitly and use gimple_switch_label_bb. 12145 (expand_case): Likewise. 12146 * tree-cfg.c (lower_phi_internal_fn): Use label_to_block and pass 12147 cfun argument explicitly. Likewise. 12148 (make_edges_bb): Likewise. 12149 (make_cond_expr_edges): Likewise. 12150 (get_cases_for_edge): Likewise. 12151 (make_gimple_switch_edges): Likewise. 12152 (label_to_block_fn): Likewise. 12153 (label_to_block): Likewise. 12154 (make_goto_expr_edges): Likewise. 12155 (make_gimple_asm_edges): Likewise. 12156 (main_block_label): Likewise. 12157 (group_case_labels_stmt): Likewise. 12158 (find_taken_edge_computed_goto): Likewise. 12159 (find_taken_edge_switch_expr): Likewise. 12160 (gimple_verify_flow_info): Likewise. 12161 (gimple_redirect_edge_and_branch): Likewise. 12162 (gimple_switch_label_bb): New function. 12163 (gimple_switch_default_bb): Likewise. 12164 (gimple_switch_edge): Likewise. 12165 (gimple_switch_default_edge): Likewise. 12166 * tree-cfg.h (label_to_block_fn): Remove and replace ... 12167 (label_to_block): ... with this. 12168 (gimple_switch_label_bb): New. 12169 (gimple_switch_default_bb): Likewise. 12170 (gimple_switch_edge): Likewise. 12171 (gimple_switch_default_edge): Likewise. 12172 * tree-cfgcleanup.c (convert_single_case_switch): Use 12173 new gimple functions and pass new argument to label_to_block. 12174 (cleanup_control_flow_bb): 12175 * tree-eh.c (make_eh_dispatch_edges): Use label_to_block and pass 12176 cfun argument explicitly. 12177 (make_eh_edges): Likewise. 12178 (redirect_eh_dispatch_edge): Likewise. 12179 (lower_resx): Likewise. 12180 (lower_eh_dispatch): Likewise. 12181 (maybe_remove_unreachable_handlers): Likewise. 12182 (unsplit_eh): Likewise. 12183 (cleanup_empty_eh): Likewise. 12184 (verify_eh_edges): Likewise. 12185 (verify_eh_dispatch_edge): Likewise. 12186 * tree-ssa-dom.c (record_edge_info): Likewise. 12187 * tree-ssa-forwprop.c (simplify_gimple_switch_label_vec): Likewise. 12188 * tree-ssa-threadedge.c (thread_around_empty_blocks): Likewise. 12189 (thread_through_normal_block): Likewise. 12190 * tree-ssa-uncprop.c (associate_equivalences_with_edges): Likewise. 12191 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): 12192 * tree-switch-conversion.c (switch_conversion::collect): Use new 12193 gimple functions. 12194 (switch_conversion::check_final_bb): Likewise. 12195 (switch_conversion::gather_default_values): Pass new argument 12196 to label_to_block. 12197 (switch_conversion::build_constructors): Likewise. 12198 (switch_decision_tree::compute_cases_per_edge): Use new 12199 gimple_switch_edge function. 12200 (switch_decision_tree::analyze_switch_statement): Pass new argument 12201 to label_to_block. 12202 (switch_decision_tree::try_switch_expansion): Use 12203 gimple_switch_default_edge. 12204 * tree-vrp.c (find_switch_asserts): Pass new argument 12205 to label_to_block. 12206 * vr-values.c (vr_values::vrp_visit_switch_stmt): Likewise. 12207 (vr_values::simplify_switch_using_ranges): Likewise. 12208 122092018-08-27 Richard Biener <rguenther@suse.de> 12210 12211 * cfganal.h (rev_post_order_and_mark_dfs_back_seme): Declare. 12212 * cfganal.c (rev_post_order_and_mark_dfs_back_seme): New function. 12213 12214 * tree-ssa-sccvn.h (struct vn_pval): New structure. 12215 (struct vn_nary_op_s): Add unwind_to member. Add 12216 predicated_values flag and put result into a union together 12217 with a linked list of vn_pval. 12218 (struct vn_ssa_aux): Add name member to make maintaining 12219 a map of SSA name to vn_ssa_aux possible. Remove no longer 12220 needed info, dfsnum, low, visited, on_sccstack, use_processed 12221 and range_info_anti_range_p members. 12222 (run_scc_vn, vn_eliminate, free_scc_vn, vn_valueize): Remove. 12223 (do_rpo_vn, run_rpo_vn, eliminate_with_rpo_vn, free_rpo_vn): 12224 New functions. 12225 (vn_valueize): New global. 12226 (vn_context_bb): Likewise. 12227 (VN_INFO_RANGE_INFO, VN_INFO_ANTI_RANGE_P, VN_INFO_RANGE_TYPE, 12228 VN_INFO_PTR_INFO): Remove. 12229 * tree-ssa-sccvn.c: ... (rewrite) 12230 (pass_fre::execute): For -O2+ initialize loops and run 12231 RPO VN in optimistic mode (iterating). For -O1 and -Og 12232 run RPO VN in non-optimistic mode. 12233 * params.def (PARAM_SCCVN_MAX_SCC_SIZE): Remove. 12234 (PARAM_RPO_VN_MAX_LOOP_DEPTH): Add. 12235 * doc/invoke.texi (sccvn-max-scc-size): Remove. 12236 (rpo-vn-max-loop-depth): Document. 12237 * tree-ssa-alias.c (walk_non_aliased_vuses): Stop walking 12238 when valuezing the VUSE signals we walked out of the region. 12239 * tree-ssa-pre.c (phi_translate_1): Ignore predicated values. 12240 (phi_translate): Set VN context block to use for availability 12241 lookup. 12242 (compute_avail): Likewise. 12243 (pre_valueize): New function. 12244 (pass_pre::execute): Adjust to the RPO VN API. 12245 12246 * tree-ssa-loop-ivcanon.c: Include tree-ssa-sccvn.h. 12247 (propagate_constants_for_unrolling): Remove. 12248 (tree_unroll_loops_completely): Perform value-numbering 12249 on the unrolled bodies loop parent. 12250 122512018-08-27 Richard Biener <rguenther@suse.de> 12252 12253 * tree-ssa-pre.c (compute_antic): Re-use inverted postorder 12254 for partial antic compute. 12255 122562018-08-27 Jakub Jelinek <jakub@redhat.com> 12257 12258 PR rtl-optimization/87065 12259 * combine.c (simplify_if_then_else): Formatting fix. 12260 (if_then_else_cond): Guard MULT optimization with SCALAR_INT_MODE_P 12261 check. 12262 (known_cond): Don't return const_true_rtx for vector modes. Use 12263 CONST0_RTX instead of const0_rtx. Formatting fixes. 12264 122652018-08-27 Martin Liska <mliska@suse.cz> 12266 12267 PR gcov-profile/87069 12268 * gcov.c (process_file): Record files already processed 12269 and warn about a file being processed multiple times. 12270 122712018-08-27 Martin Liska <mliska@suse.cz> 12272 12273 PR driver/83193 12274 * config/aarch64/aarch64.c (aarch64_override_options_internal): 12275 Set default values for x_aarch64_*_string strings. 12276 * config/aarch64/aarch64.opt: Remove --{march,mcpu,mtune}== 12277 prefix. For -mabi do not print '=ABI' in help and use 12278 <option_value> format for -msve-vector-bits and -moverride 12279 options. 12280 122812018-08-26 Jeff Law <law@redhat.com> 12282 12283 * config/mips/frame-header-opt.c: Include "backend.h" rather than 12284 "cfg.h" 12285 122862018-08-26 Marek Polacek <polacek@redhat.com> 12287 12288 PR c++/87029, Implement -Wredundant-move. 12289 * doc/invoke.texi: Document -Wredundant-move. 12290 122912018-08-25 Martin Sebor <msebor@redhat.com> 12292 12293 PR tree-optimization/87059 12294 * builtins.c (expand_builtin_strncmp): Convert MIN_EXPR operand 12295 to the same type as the other. 12296 * fold-const.c (fold_binary_loc): Assert expectation. 12297 122982018-08-25 Iain Sandoe <iain@sandoe.co.uk> 12299 12300 * config/darwin.c (machopic_legitimize_pic_address): Clean up 12301 extraneous parentheses, dead code section and formatting. 12302 123032018-08-24 David Malcolm <dmalcolm@redhat.com> 12304 12305 PR c++/87091 12306 * diagnostic-show-locus.c (layout::layout): Ensure the margin is 12307 wide enough for jumps in the line-numbering to be visible. 12308 (layout::print_gap_in_line_numbering): New member function. 12309 (layout::calculate_line_spans): When using line numbering, merge 12310 line spans that are only 1 line apart. 12311 (diagnostic_show_locus): When printing line numbers, show gaps in 12312 line numbering directly, rather than printing headers. 12313 (selftest::test_diagnostic_show_locus_fixit_lines): Add test of 12314 line-numbering with multiple line spans. 12315 (selftest::test_fixit_insert_containing_newline_2): Add test of 12316 line-numbering, in which the spans are close enough to be merged. 12317 123182018-08-24 Aldy Hernandez <aldyh@redhat.com> 12319 12320 * gimple-ssa-evrp-analyze.c (set_ssa_range_info): Pass value_range 12321 to range_includes_zero_p. Do not special case VR_ANTI_RANGE. 12322 * tree-vrp.c (range_is_nonnull): Remove. 12323 (range_includes_zero_p): Accept value_range instead of min/max. 12324 (extract_range_from_binary_expr_1): Do not early bail on 12325 POINTER_PLUS_EXPR. 12326 Use range_includes_zero_p instead of range_is_nonnull. 12327 (extract_range_from_unary_expr): Use range_includes_zero_p instead 12328 of range_is_nonnull. 12329 (vrp_meet_1): Pass value_range to range_includes_zero_p. Do not 12330 special case VR_ANTI_RANGE. 12331 (vrp_finalize): Same. 12332 * tree-vrp.h (range_includes_zero_p): Pass value_range as argument 12333 instead of min/max. 12334 (range_is_nonnull): Remove. 12335 * vr-values.c (vrp_stmt_computes_nonzero): Use 12336 range_includes_zero_p instead of range_is_nonnull. 12337 (extract_range_basic): Pass value_range to range_includes_zero_p 12338 instead of range_is_nonnull. 12339 123402018-08-24 Uros Bizjak <ubizjak@gmail.com> 12341 12342 * emit-rtl.c (init_emit_once): Do not emit MODE_POINTER_BOUNDS RTXes. 12343 * emit-rtl.h (rtl_data): Remove return_bnd. 12344 * explow.c (trunc_int_for_mode): Do not handle POINTER_BOUNDS_MODE_P. 12345 * function.c (diddle_return_value): Do not handle crtl->return_bnd. 12346 * genmodes.c (complete_mode): Do not handle MODE_POINTER_BOUNDS. 12347 (POINTER_BOUNDS_MODE): Remove definition. 12348 (make_pointer_bounds_mode): Remove. 12349 (get_mode_class): Do not handle MODE_POINTER_BOUNDS. 12350 * machmode.h (POINTER_BOUNDS_MODE_P): Remove definition. 12351 (scalare_mode::includes_p): Do not handle MODE_POINTER_BOUNDS. 12352 * mode-classes.def: Do not define MODE_POINTER_BOUNDS. 12353 * stor-layout.c (int_mode_for_mode): Do not handle MODE_POINTER_BOUNDS. 12354 * tree-core.h (enum tree_index): Remove TI_POINTER_BOUNDS_TYPE. 12355 * varasm.c (output_constant_pool_2): Do not handle MODE_POINTER_BOUNDS. 12356 12357 * config/i386/i386-modes.def (BND32, BND64): Remove. 12358 * config/i386/i386.c (dbx_register_map): Remove bound registers. 12359 (dbx64_register_map): Ditto. 12360 (svr4_dbx_register_map): Ditto. 12361 (indirect_thunk_bnd_needed): Remove. 12362 (indirect_thunks_bnd_used): Ditto. 12363 (indirect_return_bnd_needed): Ditto. 12364 (indirect_return_via_cx_bnd): Ditto. 12365 (enum indirect_thunk_prefix): Remove indirect_thunk_prefix_bnd. 12366 (indirect_thunk_name): Remove handling of indirect_thunk_prefix_bnd. 12367 (output_indirect_thunk): Ditto. Remove need_prefix argument. 12368 (output_indirect_thunk_function): Remove handling of 12369 indirect_return_bnd_needed, indirect_return_via_cx_bnd, 12370 indirect_thunk_bnd_needed and indirect_thunks_bnd_used variables. 12371 (ix86_save_reg): Remove handling of crtl->return_bnd. 12372 (ix86_legitimate_constant_p): Remove handling of POINTER_BOUNDS_MODE_P. 12373 (ix86_print_operand_address_as): Remove handling of UNSPEC_BNDMK_ADDR 12374 and UNSPEC_BNDLX_ADDR. 12375 (ix86_output_indirect_branch_via_reg): Remove handling of 12376 indirect_thunk_prefix_bnd. 12377 (ix86_output_indirect_branch_via_push): Ditto. 12378 (ix86_output_function_return): Ditto. 12379 (ix86_output_indirect_function_return): Ditto. 12380 (avoid_func_arg_motion): Do not handle UNSPEC_BNDSTX. 12381 * config/i386/i386.h (FIXED_REGISTERS): Remove bound registers. 12382 (CALL_USED_REGISTERS): Ditto. 12383 (REG_ALLOC_ORDER): Update for removal of bound registers. 12384 (HI_REGISTER_NAMES): Ditto. 12385 * config/i386/i386.md (UNSPEC_BNDMK, UNSPEC_BNDMK_ADDR, UNSPEC_BNDSTX) 12386 (UNSPEC_BNDLDX, UNSPEC_BNDLDX_ADDR, UNSPEC_BNDCL, UNSPEC_BNDCU) 12387 (UNSPEC_BNDCN, UNSPEC_MPX_FENCE): Remove. 12388 (BND0_REG, BND1_REG, BND2_REG, BND3_REG): Remove 12389 (FIRST_PSEUDO_REG): Update. 12390 (BND): Remove mode iterator. 12391 * config/i386/predicates.md (bnd_mem_operator): Remove. 12392 123932018-08-24 Richard Sandiford <richard.sandiford@arm.com> 12394 12395 * tree-vect-stmts.c (vectorizable_bswap): Handle variable-length 12396 vectors. 12397 123982018-08-24 Richard Sandiford <richard.sandiford@arm.com> 12399 12400 * tree-vect-slp.c (vect_transform_slp_perm_load): Separate out 12401 the case in which the permute needs only a single element and 12402 repeats for every vector of the result. Extend that case to 12403 handle variable-length vectors. 12404 * tree-vect-stmts.c (vectorizable_load): Update accordingly. 12405 124062018-08-24 H.J. Lu <hongjiu.lu@intel.com> 12407 12408 PR debug/79342 12409 * dwarf2out.c (save_macinfo_strings): Call set_indirect_string 12410 on DW_MACINFO_start_file for -gsplit-dwarf -g3. 12411 124122018-08-24 Richard Biener <rguenther@suse.de> 12413 12414 * cfg.h (struct control_flow_graph): Add edge_flags_allocated and 12415 bb_flags_allocated members. 12416 (auto_flag): New RAII class for allocating flags. 12417 (auto_edge_flag): New RAII class for allocating edge flags. 12418 (auto_bb_flag): New RAII class for allocating bb flags. 12419 * cfgloop.c (verify_loop_structure): Allocate temporary edge 12420 flag dynamically. 12421 * cfganal.c (dfs_enumerate_from): Remove use of visited sbitmap 12422 in favor of temporarily allocated BB flag. 12423 * hsa-brig.c: Re-order includes. 12424 * hsa-dump.c: Likewise. 12425 * hsa-regalloc.c: Likewise. 12426 * print-rtl.c: Likewise. 12427 * profile-count.c: Likewise. 12428 124292018-08-24 Segher Boessenkool <segher@kernel.crashing.org> 12430 12431 PR target/86989 12432 * config/rs6000/rs6000.c (toc_relative_expr_p): Check that the base is 12433 the TOC register. 12434 124352018-08-24 Aldy Hernandez <aldyh@redhat.com> 12436 12437 PR 87073/bootstrap 12438 * wide-int-range.cc (wide_int_range_div): Do not ignore result 12439 from wide_int_range_multiplicative_op. 12440 124412018-08-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 12442 12443 * tree-vect-data-refs.c (vect_grouped_store_supported): Fix typo 12444 "permutaion". 12445 124462018-08-23 Giuliano Belinassi <giuliano.belinassi@usp.br> 12447 12448 * genmatch.c (parser::parse_operation): Fix typo 'exapnded' 12449 to 'expanded'. 12450 124512018-08-23 Alexander Monakov <amonakov@ispras.ru> 12452 12453 * tree-scalar-evolution.c (final_value_replacement_loop): Dump 12454 full GENERIC expression used for replacement. 12455 124562018-08-23 Aldy Hernandez <aldyh@redhat.com> 12457 12458 * tree-vrp.c (abs_extent_range): Remove. 12459 (extract_range_into_wide_ints): Pass wide ints by reference. 12460 (extract_range_from_binary_expr_1): Rewrite the *DIV_EXPR code. 12461 Pass wide ints by reference in all calls to 12462 extract_range_into_wide_ints. 12463 * wide-int-range.cc (wide_int_range_div): New. 12464 * wide-int-range.h (wide_int_range_div): New. 12465 (wide_int_range_includes_zero_p): New. 12466 (wide_int_range_zero_p): New. 12467 124682018-08-23 Matthew Malcomson <matthew.malcomson@arm.com> 12469 12470 * config/aarch64/aarch64.md (arches): New enum. 12471 (arch): New enum attr. 12472 (arch_enabled): New attr. 12473 (enabled): Now uses arch_enabled only. 12474 (simd, sve, fp16): Removed attribute. 12475 (fp): Attr now defined in terms of 'arch'. 12476 (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64, *movti_aarch64, 12477 *movhf_aarch64, <optab><fcvt_target><GPF:mode>2, 12478 <FCVT_F2FIXED:fcvt_fixed_insn><GPF:mode>3, 12479 <FCVT_FIXED2F:fcvt_fixed_insn><GPI:mode>3): Merge 'fp' and 'simd' 12480 attributes into 'arch'. 12481 (*movsf_aarch64, *movdf_aarch64, *movtf_aarch64, *add<mode>3_aarch64, 12482 subdi3, neg<mode>2, <optab><mode>3, one_cmpl<mode>2, 12483 *<NLOGICAL:optab>_one_cmpl<mode>3, *xor_one_cmpl<mode>3, 12484 *aarch64_ashl_sisd_or_int_<mode>3, *aarch64_lshr_sisd_or_int_<mode>3, 12485 *aarch64_ashr_sisd_or_int_<mode>3, *aarch64_sisd_ushl): Convert use of 12486 'simd' attribute into 'arch'. 12487 (load_pair_sw_<SX:mode><SX2:mode>, load_pair_dw_<DX:mode><DX2:mode>, 12488 store_pair_sw_<SX:mode><SX2:mode>, store_pair_dw_<DX:mode><DX2:mode>): 12489 Convert use of 'fp' attribute to 'arch'. 12490 * config/aarch64/aarch64-simd.md (move_lo_quad_internal_<mode>, 12491 move_lo_quad_internal_<mode>): (different modes) Merge 'fp' and 'simd' 12492 into 'arch'. 12493 (move_lo_quad_internal_be_<mode>, move_lo_quad_internal_be_<mode>): 12494 (different modes) Merge 'fp' and 'simd' into 'arch'. 12495 (*aarch64_combinez<mode>, *aarch64_combinez_be<mode>): Merge 'fp' and 12496 'simd' into 'arch'. 12497 124982018-08-23 Segher Boessenkool <segher@kernel.crashing.org> 12499 12500 PR rtl-optimization/87026 12501 * expmed.c (canonicalize_comparison): If we can no longer create 12502 pseudoregisters, don't. 12503 125042018-08-23 Richard Earnshaw <rearnsha@arm.com> 12505 12506 PR target/86951 12507 * config/arm/arm-protos.h (arm_emit_speculation_barrier): New 12508 prototype. 12509 * config/arm/arm.c (speculation_barrier_libfunc): New static 12510 variable. 12511 (arm_init_libfuncs): Initialize it. 12512 (arm_emit_speculation_barrier): New function. 12513 * config/arm/arm.md (speculation_barrier): Call 12514 arm_emit_speculation_barrier for architectures that do not have 12515 DSB or ISB. 12516 (speculation_barrier_insn): Only match on Armv7 or later. 12517 125182018-08-23 Richard Biener <rguenther@suse.de> 12519 12520 PR middle-end/87024 12521 * tree-inline.c (copy_bb): Drop unused __builtin_va_arg_pack_len 12522 calls. 12523 125242018-08-23 Richard Sandiford <richard.sandiford@arm.com> 12525 12526 * config/aarch64/aarch64.c (aarch64_evpc_sve_tbl): Fix handling 12527 of single-vector TBLs. 12528 (aarch64_vectorize_vec_perm_const): Set one_vector_p when only 12529 one input is given. 12530 125312018-08-23 Richard Sandiford <richard.sandiford@arm.com> 12532 12533 PR target/85910 12534 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Fix 12535 aarch64_evpc_tbl guard. 12536 125372018-08-22 Bernd Edlinger <bernd.edlinger@hotmail.de> 12538 12539 * tree-ssa-dse.c (compute_trims): Avoid folding away undefined 12540 behaviour. 12541 125422018-08-22 Martin Sebor <msebor@redhat.com> 12543 12544 PR middle-end/87052 12545 * tree-pretty-print.c (pretty_print_string): Add argument. 12546 (dump_generic_node): Call to pretty_print_string with string size. 12547 125482018-08-22 Segher Boessenkool <segher@kernel.crashing.org> 12549 12550 PR rtl-optimization/86771 12551 * combine.c (try_combine): Do not allow splitting a resulting PARALLEL 12552 of two SETs into those two SETs, one to be placed at i2, if that SETs 12553 destination is modified between i2 and i3. 12554 125552018-08-22 Richard Sandiford <richard.sandiford@arm.com> 12556 12557 PR tree-optimization/86725 12558 * tree-vect-loop.c (vect_inner_phi_in_double_reduction_p): New 12559 function. 12560 (vect_analyze_scalar_cycles_1): Check it. 12561 125622018-08-22 Richard Sandiford <richard.sandiford@arm.com> 12563 12564 PR tree-optimization/86725 12565 * tree-vect-loop.c (vect_is_simple_reduction): When treating 12566 an outer loop phi as a double reduction, make sure that the 12567 single user of the phi result is an inner loop phi. 12568 125692018-08-22 Richard Sandiford <richard.sandiford@arm.com> 12570 12571 * tree-vect-data-refs.c (vect_analyze_group_access_1): Convert 12572 grouped stores with gaps to a strided group. 12573 125742018-08-22 Richard Sandiford <richard.sandiford@arm.com> 12575 12576 * tree-vect-stmts.c (get_group_load_store_type) 12577 (get_load_store_type): Only test STMT_VINFO_STRIDED_P for the 12578 first statement in a group. 12579 125802018-08-22 Iain Sandoe <iain@sandoe.co.uk> 12581 12582 * config/darwin.h (LINK_COMMAND_SPEC_A): Sync LTO options with 12583 the sequence used in gcc/gcc.c. 12584 125852018-08-22 Iain Sandoe <iain@sandoe.co.uk> 12586 12587 PR other/704 12588 * gcc-ar.c (main): Don’t try to invoke the plug-in if we’re not 12589 building it. 12590 125912018-08-22 Iain Sandoe <iain@sandoe.co.uk> 12592 12593 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Adjust to use the 12594 Darwin10-specific unwinder-shim. 12595 * config/darwin12.h (LINK_GCC_C_SEQUENCE_SPEC): Remove. 12596 * config/rs6000/darwin.h (DARWIN_CRT1_SPEC, DARWIN_DYLIB1_SPEC): 12597 New to cater for Darwin10 Rosetta. 12598 125992018-08-22 Iain Sandoe <iain@sandoe.co.uk> 12600 12601 * config/i386/i386.c (ix86_output_addr_diff_elt): Move the MACH-O 12602 specific test before the one for HAVE_AS_GOTOFF_IN_DATA. 12603 126042018-08-22 Iain Sandoe <iain@sandoe.co.uk> 12605 12606 PR bootstrap/81033 12607 PR target/81733 12608 PR target/52795 12609 * gcc/dwarf2out.c (FUNC_SECOND_SECT_LABEL): New. 12610 (dwarf2out_switch_text_section): Generate a local label for the 12611 second function sub-section and apply it as the second FDE start 12612 label. 12613 * gcc/final.c (final_scan_insn_1): Emit second FDE label after the 12614 second sub-section start. 12615 126162018-08-22 Richard Biener <rguenther@suse.de> 12617 12618 PR tree-optimization/86988 12619 * tree-vrp.c (vrp_prop::check_mem_ref): Bail out on VLAs. 12620 126212018-08-22 Richard Biener <rguenther@suse.de> 12622 12623 PR tree-optimization/86945 12624 * tree-cfg.c (generate_range_test): Use unsigned arithmetic. 12625 126262018-08-22 Alexandre Oliva <oliva@adacore.com> 12627 12628 * config/rs6000/rs6000.c (SMALL_DATA_RELOC, SMALL_DATA_REG): Add 12629 a comment about how uses of r2 for .sdata2 come about. 12630 126312018-08-22 Alexandre Oliva <aoliva@redhat.com> 12632 12633 * tree-ssa-reassoc.c (is_reassociable_op): Fix cut&pasto. 12634 126352018-08-21 Marek Polacek <polacek@redhat.com> 12636 12637 PR c++/86981, Implement -Wpessimizing-move. 12638 * doc/invoke.texi: Document -Wpessimizing-move. 12639 126402018-08-21 Jan Hubicka <jh@suse.cz> 12641 12642 * tree.c (find_decls_types_r): Do not check for redundant typedefs. 12643 * tree.h (is_redundant_typedef): Remove. 12644 * dwarf2out.c (is_redundant_typedef): Turn into static function. 12645 126462018-08-21 Jan Hubicka <jh@suse.cz> 12647 12648 * tree.c (free_lang_data_in_decl): Remove types from DECL_CONTEXT 12649 when possible. 12650 126512018-08-21 Tamar Christina <tamar.christina@arm.com> 12652 12653 * expmed.c (extract_low_bits): Reject invalid subregs early. 12654 126552018-08-21 Bernd Edlinger <bernd.edlinger@hotmail.de> 12656 12657 PR middle-end/86121 12658 * tree-ssa-strlen.c (adjust_last_stmt): Avoid folding away undefined 12659 behaviour. 12660 126612018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk> 12662 12663 * config/vxworks.h: Guard vxworks_asm_out_constructor and 12664 vxworks_asm_out_destructor by !HAVE_INITFINI_ARRAY_SUPPORT 12665 * config/vxworks.c: Likewise. 12666 126672018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk> 12668 12669 * config/vxworks.c: Set targetm.have_ctors_dtors 12670 if HAVE_INITFINI_ARRAY_SUPPORT. 12671 * config/vxworks.h: Set SUPPORTS_INIT_PRIORITY 12672 if HAVE_INITFINI_ARRAY_SUPPORT. 12673 126742018-08-21 Rasmus Villemoes <rv@rasmusvillemoes.dk> 12675 12676 * config/vxworks.h: Add $(WIND_BASE)/target/h/wrn/coreip to 12677 default search path for VxWorks < 7. 12678 126792018-08-21 Bernd Edlinger <bernd.edlinger@hotmail.de> 12680 12681 * gimple-ssa-sprintf.c (decl_constant_value): Remove. 12682 (get_format_string): Refer to c_getstr. 12683 126842018-08-21 Tom de Vries <tdevries@suse.de> 12685 12686 * cgraph.h (debuginfo_early_init, debuginfo_init, debuginfo_fini) 12687 (debuginfo_start, debuginfo_stop, debuginfo_early_start) 12688 (debuginfo_early_stop): Declare. 12689 * cgraphunit.c (debuginfo_early_init, debuginfo_init, debuginfo_fini) 12690 (debuginfo_start, debuginfo_stop, debuginfo_early_start) 12691 (debuginfo_early_stop): New function. 12692 (symbol_table::finalize_compilation_unit): Call debuginfo_early_start 12693 and debuginfo_early_stop. 12694 * dwarf2out.c (dwarf2out_finish, dwarf2out_early_finish): Dump dwarf. 12695 * toplev.c (compile_file): Call debuginfo_start and debuginfo_stop. 12696 (general_init): Call debuginfo_early_init. 12697 (finalize): Call debuginfo_fini. 12698 (do_compile): Call debuginfo_init. 12699 * doc/invoke.texi (@gccoptlist): Add -fdump-debug and 12700 -fdump-early-debug. 12701 (@item -fdump-debug, @item -fdump-earlydebug): Add. 12702 127032018-08-21 Tom de Vries <tdevries@suse.de> 12704 12705 * dwarf2out.c (print_dw_val, print_loc_descr, print_die): Handle 12706 flag_dump_noaddr and flag_dump_unnumbered. 12707 127082018-08-21 Aldy Hernandez <aldyh@redhat.com> 12709 12710 * wide-int-range.cc (wide_int_range_abs): New. 12711 (wide_int_range_order_set): Rename from wide_int_range_min_max. 12712 * wide-int-range.h (wide_int_range_abs): New. 12713 (wide_int_range_min_max): New. 12714 * tree-vrp.c (extract_range_from_unary_expr): Rewrite ABS_EXPR 12715 case to call wide_int_range_abs. 12716 Rewrite MIN/MAX_EXPR to call wide_int_range_min_max. 12717 (extract_range_from_abs_expr): Delete. 12718 127192018-08-20 Michael Meissner <meissner@linux.ibm.com> 12720 12721 PR target/87033 12722 * config/rs6000/rs6000.md (extendsi<mode>2): Change constraints 12723 from 'Y' to 'YZ' to enable the LWAX instruction to be generated 12724 for indexed loads. 12725 127262018-08-20 Nathan Sidwell <nathan@acm.org> 12727 Jeff Law <law@redhat.com> 12728 12729 * config/s390/s390-c (s390_macro_to_expand): Use cpp_macro_p. 12730 * config/spu/spu-c.c (spu_macro_to_expand): Likewise. 12731 127322018-08-20 David Malcolm <dmalcolm@redhat.com> 12733 12734 PR other/84889 12735 * attribs.c (diag_attr_exclusions): Add auto_diagnostic_group instance. 12736 (decl_attributes): Likewise. 12737 * calls.c (maybe_warn_nonstring_arg): Add auto_diagnostic_group 12738 instance. 12739 * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. 12740 * diagnostic-core.h (class auto_diagnostic_group): New class. 12741 * diagnostic.c (diagnostic_initialize): Initialize the new fields. 12742 (diagnostic_report_diagnostic): Handle the first diagnostics within 12743 a group. 12744 (emit_diagnostic): Add auto_diagnostic_group instance. 12745 (inform): Likewise. 12746 (inform_n): Likewise. 12747 (warning): Likewise. 12748 (warning_at): Likewise. 12749 (warning_n): Likewise. 12750 (pedwarn): Likewise. 12751 (permerror): Likewise. 12752 (error): Likewise. 12753 (error_n): Likewise. 12754 (error_at): Likewise. 12755 (sorry): Likewise. 12756 (fatal_error): Likewise. 12757 (internal_error): Likewise. 12758 (internal_error_no_backtrace): Likewise. 12759 (auto_diagnostic_group::auto_diagnostic_group): New ctor. 12760 (auto_diagnostic_group::~auto_diagnostic_group): New dtor. 12761 * diagnostic.h (struct diagnostic_context): Add fields 12762 "diagnostic_group_nesting_depth", 12763 "diagnostic_group_emission_count", "begin_group_cb", 12764 "end_group_cb". 12765 * gimple-ssa-isolate-paths.c (find_implicit_erroneous_behavior): 12766 Add auto_diagnostic_group instance(s). 12767 (find_explicit_erroneous_behavior): Likewise. 12768 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Likewise. 12769 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Likewise. 12770 * gimplify.c (warn_implicit_fallthrough_r): Likewise. 12771 (gimplify_va_arg_expr): Likewise. 12772 * hsa-gen.c (HSA_SORRY_ATV): Likewise. 12773 (HSA_SORRY_AT): Likewise. 12774 * ipa-devirt.c (compare_virtual_tables): Likewise. 12775 (warn_odr): Likewise. 12776 * multiple_target.c (expand_target_clones): Likewise. 12777 * opts-common.c (cmdline_handle_error): Likewise. 12778 * reginfo.c (globalize_reg): Likewise. 12779 * substring-locations.c (format_warning_n_va): Likewise. 12780 * tree-inline.c (expand_call_inline): Likewise. 12781 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Likewise. 12782 * tree-ssa-loop-niter.c 12783 (do_warn_aggressive_loop_optimizations): Likewise. 12784 * tree-ssa-uninit.c (warn_uninit): Likewise. 12785 * tree.c (warn_deprecated_use): Likewise. 12786 127872018-08-20 H.J. Lu <hongjiu.lu@intel.com> 12788 12789 PR target/87014 12790 * config/i386/i386.md (eh_return): Always update EH return 12791 address in word_mode. 12792 127932018-08-20 Chung-Lin Tang <cltang@codesourcery.com> 12794 12795 * targhooks.c (std_gimplify_va_arg_expr): Properly handle case of when 12796 TARGET_SPLIT_COMPLEX_ARG is defined. 12797 127982018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 12799 12800 * expr.c (store_field): Change gcc_assert to gcc_checking_assert. 12801 128022018-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> 12803 12804 PR target/86984 12805 * expr.c (expand_assignment): Assert that bitpos is positive. 12806 (store_field): Likewise 12807 (expand_expr_real_1): Make sure that bitpos is positive. 12808 * config/alpha/alpha.h (CONSTANT_ADDRESS_P): Avoid signed 12809 integer overflow. 12810 128112018-08-20 Nathan Sidwell <nathan@acm.org> 12812 12813 * Makefile.in (CPP_ID_DATA_H): Delete. 12814 (CPP_INTERNAL_H): Don't add it. 12815 (GTFILES): Replace CPP_ID_DATA_H with CPPLIB_H. 12816 * gengtype.c (open_base_files): Replace cpp-id-data.h with cpplib.h 12817 128182018-08-20 Richard Biener <rguenther@suse.de> 12819 12820 PR tree-optimization/78655 12821 * tree-vrp.c (extract_range_from_binary_expr_1): Make 12822 pointer + offset nonnull if either operand is nonnull work. 12823 128242018-08-20 Tom de Vries <tdevries@suse.de> 12825 12826 * dwarf2out.c (add_scalar_info): Don't add reference to existing die 12827 unless the referenced die describes the added property using 12828 DW_AT_location or DW_AT_const_value. Fall back to exprloc case. 12829 Otherwise, add a DW_AT_location to the referenced die. 12830 128312018-08-19 Uros Bizjak <ubizjak@gmail.com> 12832 12833 PR target/86994 12834 * config/i386/i386.c (ix86_rtx_costs) [case SET]: Check source for 12835 register_operand when calling ix86_set_reg_reg_cost. 12836 [case CONST_INT, case CONST, case LABEL_REF, case SYMBOL_REF]: 12837 Set *total to 0 for operands that satisfy x86_64_immediate_operand 12838 predicate and to 1 otherwise. 12839 128402018-08-18 Iain Sandoe <iain@sandoe.co.uk> 12841 12842 * config/darwin.c (darwin_override_options): If -gsplit-dwarf is set, 12843 emit a diagnostic that it is not supported and reset the option. 12844 * config/darwin.h (DRIVER_SELF_SPECS): Note that gsplit-dwarf is not 12845 supported and consume the option. (ASM_FINAL_SPEC): New. 12846 128472018-08-17 Segher Boessenkool <segher@kernel.crashing.org> 12848 12849 * doc/md.texi (Patterns): Use @ref instead of @xref in the middle of 12850 a sentence. 12851 128522018-08-17 Sandra Loosemore <sandra@codesourcery.com> 12853 12854 C-SKY port: Documentation 12855 12856 * doc/extend.texi (C-SKY Function Attributes): New section. 12857 * doc/invoke.texi (Option Summary): Add C-SKY options. 12858 (C-SKY Options): New section. 12859 * doc/md.texi (Machine Constraints): Document C-SKY constraints. 12860 128612018-08-17 Jojo <jijie_rong@c-sky.com> 12862 Huibin Wang <huibin_wang@c-sky.com> 12863 Sandra Loosemore <sandra@codesourcery.com> 12864 Chung-Lin Tang <cltang@codesourcery.com> 12865 12866 C-SKY port: Backend implementation 12867 12868 * config/csky/*: New. 12869 * common/config/csky/*: New. 12870 128712018-08-17 Jojo <jijie_rong@c-sky.com> 12872 Huibin Wang <huibin_wang@c-sky.com> 12873 Sandra Loosemore <sandra@codesourcery.com> 12874 Chung-Lin Tang <cltang@codesourcery.com> 12875 Andrew Jenner <andrew@codesourcery.com> 12876 12877 C-SKY port: Configury 12878 12879 * config.gcc (csky-*-*): New. 12880 * configure.ac: Add csky to targets for dwarf2 debug_line support. 12881 * configure: Regenerated. 12882 128832018-08-17 David Malcolm <dmalcolm@redhat.com> 12884 12885 * dump-context.h: Include "dumpfile.h". 12886 (dump_context::dump_printf_va): Convert final param from va_list 12887 to va_list *. Convert from ATTRIBUTE_PRINTF to 12888 ATTRIBUTE_GCC_DUMP_PRINTF. 12889 (dump_context::dump_printf_loc_va): Likewise. 12890 * dumpfile.c: Include "stringpool.h". 12891 (make_item_for_dump_printf_va): Delete. 12892 (make_item_for_dump_printf): Delete. 12893 (class dump_pretty_printer): New class. 12894 (dump_pretty_printer::dump_pretty_printer): New ctor. 12895 (dump_pretty_printer::emit_items): New member function. 12896 (dump_pretty_printer::emit_any_pending_textual_chunks): New member 12897 function. 12898 (dump_pretty_printer::emit_item): New member function. 12899 (dump_pretty_printer::stash_item): New member function. 12900 (dump_pretty_printer::format_decoder_cb): New member function. 12901 (dump_pretty_printer::decode_format): New member function. 12902 (dump_context::dump_printf_va): Reimplement in terms of 12903 dump_pretty_printer. 12904 (dump_context::dump_printf_loc_va): Convert final param from va_list 12905 to va_list *. 12906 (dump_context::begin_scope): Reimplement call to 12907 make_item_for_dump_printf. 12908 (dump_printf): Update for change to dump_printf_va. 12909 (dump_printf_loc): Likewise. 12910 (selftest::test_capture_of_dump_calls): Convert "stmt" from 12911 greturn * to gimple *. Add a test_decl. Add tests of dump_printf 12912 with %T, %E, and %G. 12913 * dumpfile.h (ATTRIBUTE_GCC_DUMP_PRINTF): New macro. 12914 (dump_printf): Replace ATTRIBUTE_PRINTF_2 with 12915 ATTRIBUTE_GCC_DUMP_PRINTF (2, 3). 12916 (dump_printf_loc): Replace ATTRIBUTE_PRINTF_3 with 12917 ATTRIBUTE_GCC_DUMP_PRINTF (3, 0). 12918 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Convert 12919 use of HOST_WIDE_INT_PRINT_DEC on unsigned HOST_WIDE_INT "count" 12920 within a dump_printf_loc call to "%wu". 12921 (vector_alignment_reachable_p): Merge two dump_printf[_loc] calls, 12922 converting a use of HOST_WIDE_INT_PRINT_DEC to "%wd". Add a 12923 missing space after "=". 12924 * tree-vect-loop.c (vect_analyze_loop_2) Within a dump_printf 12925 call, convert use of HOST_WIDE_INT_PRINT_DEC to "%wd". 12926 * tree-vect-slp.c (vect_slp_bb): Within a dump_printf_loc call, 12927 convert use of HOST_WIDE_INT_PRINT_UNSIGNED to "%wu". 12928 * tree-vectorizer.c (try_vectorize_loop_1): Likewise. Remove 12929 duplicate "vectorized" from message. 12930 129312018-08-17 Szabolcs Nagy <szabolcs.nagy@arm.com> 12932 12933 * config/arm/arm-builtins.c (arm_init_simd_builtin_types): Clear 12934 polyNxK_t element's TYPE_STRING_FLAG. 12935 129362018-08-17 Segher Boessenkool <segher@kernel.crashing.org> 12937 12938 * config/rs6000/rs6000.md (*cbranch, *creturn): Name these patterns 12939 (they were unnamed before). Fix comments. 12940 129412018-08-17 Nathan Sidwell <nathan@acm.org> 12942 12943 * cppbuiltin.c: Include "cpplib.h", not "cpp-id-data.h". 12944 129452018-08-17 Richard Biener <rguenther@suse.de> 12946 12947 PR tree-optimization/86841 12948 * wide-int-range.cc (wide_int_range_lshift): Use to_uhwi. 12949 129502018-08-17 Martin Liska <mliska@suse.cz> 12951 12952 * common.opt: Remove Warn, Init and Report for options with 12953 Ignore/Deprecated flag. Warning is done automatically for 12954 Deprecated flags. 12955 * config/i386/i386.opt: Likewise. 12956 * config/ia64/ia64.opt: Likewise. 12957 * config/rs6000/rs6000.opt: Likewise. 12958 * cppbuiltin.c (define_builtin_macros_for_compilation_flags): 12959 Remove usage of flag_check_pointer_bounds. 12960 * lto-wrapper.c (merge_and_complain): Do not handle 12961 OPT_fcheck_pointer_bounds. 12962 (append_compiler_options): Likewise. 12963 * opt-functions.awk: Do not handle Deprecated. 12964 * optc-gen.awk: Check that Var, Report and Init are not 12965 used for an option with Ignore/Deprecated flag. 12966 * opts-common.c (decode_cmdline_option): Do not report 12967 CL_ERR_DEPRECATED. 12968 (read_cmdline_option): Report warning for OPT_SPECIAL_deprecated 12969 options. 12970 * opts.h (struct cl_option): Remove cl_deprecated flag. 12971 (CL_ERR_DEPRECATED): Remove error enum value. 12972 129732018-08-17 Richard Biener <rguenther@suse.de> 12974 12975 PR middle-end/86505 12976 * tree-inline.c (copy_bb): When inlining __builtin_va_arg_pack_len () 12977 across a va-arg-pack using call adjust its return value accordingly. 12978 129792018-08-16 Martin Sebor <msebor@redhat.com> 12980 12981 PR tree-optimization/86853 12982 * gimple-ssa-sprintf.c (struct format_result): Rename member. 12983 (struct fmtresult): Add member and initialize it in ctors. 12984 (format_character): Handle %C. Extend range to NUL. Set MAYFAIL. 12985 (format_string): Handle %S the same as %ls. Set MAYFAIL. 12986 (format_directive): Set POSUNDER4K when MAYFAIL is set. 12987 (parse_directive): Handle %C same as %c. 12988 (sprintf_dom_walker::compute_format_length): Adjust. 12989 (is_call_safe): Adjust. 12990 129912018-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de> 12992 12993 * builtins.c (c_strlen): Add new parameter eltsize. Use it 12994 for determining how to count the elements. 12995 * builtins.h (c_strlen): Adjust prototype. 12996 * expr.c (string_constant): Add new parameter mem_size. 12997 Set *mem_size appropriately. 12998 * expr.h (string_constant): Adjust protoype. 12999 * gimple-fold.c (get_range_strlen): Add new parameter eltsize. 13000 * gimple-fold.h (get_range_strlen): Adjust prototype. 13001 * gimple-ssa-sprintf.c (get_string_length): Add new parameter eltsize. 13002 (format_string): Call get_string_length with eltsize. 13003 130042018-08-16 David Malcolm <dmalcolm@redhat.com> 13005 13006 * diagnostic.c (default_diagnostic_start_span_fn): Call pp_string 13007 to emit the span, rather than setting it as the prefix. 13008 130092018-08-16 David Malcolm <dmalcolm@redhat.com> 13010 13011 * diagnostic-show-locus.c (layout::start_annotation_line): Add 13012 "margin_char" parameter, defaulting to space. Use it in place 13013 of pp_space for the initial part of the margin. 13014 (layout::print_leading_fixits): Use '+' when filling the margin 13015 of line-insertion fix-it hints. 13016 130172018-08-16 Segher Boessenkool <segher@kernel.crashing.org> 13018 13019 * config/rs6000/rs6000.md (two unnamed define_insn and define_split): 13020 Delete. 13021 130222018-08-16 Segher Boessenkool <segher@kernel.crashing.org> 13023 13024 * config/rs6000/altivec.md: Don't set length attribute to the default 13025 value. 13026 * config/rs6000/darwin.md: Ditto. 13027 * config/rs6000/dfp.md: Ditto. 13028 * config/rs6000/htm.md: Ditto. 13029 * config/rs6000/rs6000.md: Ditto. 13030 * config/rs6000/sync.md: Ditto. 13031 * config/rs6000/vsx.md: Ditto. 13032 130332018-08-16 Segher Boessenkool <segher@kernel.crashing.org> 13034 13035 * config/rs6000/altivec.md: Don't set length attribute to the default 13036 value, for branch instructions. 13037 * config/rs6000/darwin.md: Ditto. 13038 * config/rs6000/rs6000.md: Ditto. 13039 130402018-08-16 Segher Boessenkool <segher@kernel.crashing.org> 13041 13042 * config/rs6000/rs6000.md (length): Always define as const_int 4. 13043 (unnamed conditional branch define_insn): Set length to 4 or 8 13044 depending on offset. 13045 (<bd>_<mode>): Similar, for alternative 0. 13046 (<bd>tf_<mode>): Ditto. 13047 130482018-08-16 Tamar Christina <tamar.christina@arm.com> 13049 13050 * expr.c (copy_blkmode_to_reg): Perform larger copies when safe. 13051 130522018-08-16 Matthew Malcomson <matthew.malcomson@arm.com> 13053 13054 * doc/rtl.texi: Replace old RTX class names with new names. 13055 13056 130572018-08-16 Vlad Lazar <vlad.lazar@arm.com> 13058 13059 * expmed.h (canonicalize_comparison): New declaration. 13060 * expmed.c (canonicalize_comparison, equivalent_cmp_code): New function. 13061 * expmed.c (emit_store_flag_1): Add call to canonicalize_comparison. 13062 * optabs.c (prepare_cmp_insn): Likewise. 13063 * rtl.h (unsigned_condition_p): New function which checks if a 13064 comparison operator is unsigned. 13065 130662018-08-16 Nathan Sidwell <nathan@acm.org> 13067 13068 * config/rs6000/rs6000-c.c (rs6000_macro_to_expend): Use cpp_macro_p. 13069 * config/powerpcspc/powerpcspe-c.c (rs6000_macro_to_expend): Likewise. 13070 130712018-08-16 Tamar Christina <tamar.christina@arm.com> 13072 13073 PR target/84711 13074 * config/arm/arm.c (arm_can_change_mode_class): Disallow subreg. 13075 * config/arm/neon.md (movv4hf, movv8hf): Refactored to.. 13076 (mov<mov>): ..this and enable unconditionally. 13077 130782018-08-16 Tamar Christina <tamar.christina@arm.com> 13079 13080 * config/arm/neon.md (*neon_mov<mode>): Remove reg-to-reg alternative. 13081 130822018-08-16 Sam Tebbs <sam.tebbs@arm.com> 13083 13084 * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt) 13085 (mlow-precision-sqrt, mlow-precision-div, mverbose-cost-dump): Replace 13086 "Common" with "Target". 13087 130882018-08-15 Uros Bizjak <ubizjak@gmail.com> 13089 13090 * config/i386/i386.opt (mmitigate-rop): Mark as deprecated. 13091 * doc/invoke.texi (mmitigate-rop): Remove. 13092 * config/i386/i386.c: Do not include "regrename.h". 13093 (ix86_rop_should_change_byte_p, reg_encoded_number) 13094 (ix86_get_modrm_for_rop, set_rop_modrm_reg_bits, ix86_mitigate_rop): 13095 Remove. 13096 (ix86_reorg): Remove call to ix86_mitigate_rop. 13097 * config/i386/i386.md (attr "modrm_class"): Remove. 13098 (cmp<mode>_ccno_1, mov<mode>_xor, movstrict<mode>_xor) 13099 (x86_mov<mode>cc_0_m1. x86_mov<mode>cc_0_m1_se) 13100 (x86_mov<mode>cc_0_m1_neg): Remove modrm_class attribute override. 13101 131022018-08-15 Will Schmidt <will_schmidt@vnet.ibm.com> 13103 13104 * config/rs6000/rs600.c (rs6000_gimple_fold_builtin): Add entries to 13105 allow folding of mergeh() and mergel() for the float and double types. 13106 (fold_mergehl_helper): Rework to handle building a permute tree 13107 for float vectors. 13108 131092018-08-15 Uros Bizjak <ubizjak@gmail.com> 13110 13111 * config/i386/i386.c (expand_vec_perm_movs): Enable V4SFmode 13112 for TARGET_SSE. 13113 131142018-08-15 David Malcolm <dmalcolm@redhat.com> 13115 13116 * common.opt (fdiagnostics-show-labels): New option. 13117 * diagnostic-show-locus.c (class layout_range): Add field 13118 "m_label". 13119 (class layout): Add field "m_show_labels_p". 13120 (layout_range::layout_range): Add param "label" and use it to 13121 initialize m_label. 13122 (make_range): Pass in NULL for new "label" param of layout_range's 13123 ctor. 13124 (layout::layout): Initialize m_show_labels_p. 13125 (layout::maybe_add_location_range): Pass in loc_range->m_label 13126 when constructing layout_range instances. 13127 (struct line_label): New struct. 13128 (layout::print_any_labels): New member function. 13129 (layout::print_line): Call it if label-printing is enabled. 13130 (selftest::test_one_liner_labels): New test. 13131 (selftest::test_diagnostic_show_locus_one_liner): Call it. 13132 * diagnostic.c (diagnostic_initialize): Initialize 13133 context->show_labels_p. 13134 * diagnostic.h (struct diagnostic_context): Add field 13135 "show_labels_p". 13136 * doc/invoke.texi (Diagnostic Message Formatting Options): Add 13137 -fno-diagnostics-show-labels. 13138 * dwarf2out.c (gen_producer_string): Add 13139 OPT_fdiagnostics_show_labels to the ignored options. 13140 * gcc-rich-location.c (gcc_rich_location::add_expr): Add "label" 13141 param. 13142 (gcc_rich_location::maybe_add_expr): Likewise. 13143 * gcc-rich-location.h (gcc_rich_location::gcc_rich_location): Add 13144 label" param, defaulting to NULL. 13145 (gcc_rich_location::add_expr): Add "label" param. 13146 (gcc_rich_location::maybe_add_expr): Likewise. 13147 (class text_range_label): New class. 13148 (class range_label_for_type_mismatch): New class. 13149 * gimple-ssa-sprintf.c (fmtwarn): Pass NULL for new label params 13150 of format_warning_va. 13151 (fmtwarn_n): Likewise for new params of format_warning_n_va. 13152 * lto-wrapper.c (merge_and_complain): Add 13153 OPT_fdiagnostics_show_labels to the "pick one setting" options. 13154 (append_compiler_options): Likewise to the dropped options. 13155 (append_diag_options): Likewise to the passed-on options. 13156 * opts.c (common_handle_option): Handle the new option. 13157 * selftest-diagnostic.c 13158 (test_diagnostic_context::test_diagnostic_context): Enable 13159 show_labels_p. 13160 * substring-locations.c: Include "gcc-rich-location.h". 13161 (format_warning_n_va): Add "fmt_label" and "param_label" params 13162 and use them as appropriate. 13163 (format_warning_va): Add "fmt_label" and "param_label" params, 13164 passing them on to format_warning_n_va. 13165 (format_warning_at_substring): Likewise. 13166 (format_warning_at_substring_n): Likewise. 13167 * substring-locations.h (format_warning_va): Add "fmt_label" and 13168 "param_label" params. 13169 (format_warning_n_va): Likewise. 13170 (format_warning_at_substring): Likewise. 13171 (format_warning_at_substring_n): Likewise. 13172 * toplev.c (general_init): Initialize global_dc->show_labels_p. 13173 131742018-08-15 Qing Zhao <qing.zhao@oracle.com> 13175 13176 PR testsuite/86519 13177 * builtins.c (expand_builtin_memcmp): Do not expand the call 13178 when overflow is detected. 13179 131802018-08-15 Martin Sebor <msebor@redhat.com> 13181 13182 PR tree-optimization/71625 13183 * config/aarch64/aarch64-builtins.c 13184 (aarch64_init_simd_builtin_types): Clear Poly8_t's TYPE_STRING_FLAG. 13185 131862018-08-15 Ilya Leoshkevich <iii@linux.ibm.com> 13187 13188 * config/s390/s390.c (s390_reorg): Remove loop. 13189 131902018-08-15 Iain Sandoe <iain@sandoe.co.uk> 13191 13192 * config/darwin.c 13193 (darwin_function_switched_text_sections): Delete. 13194 * gcc/config/darwin.h 13195 (TARGET_ASM_FUNCTION_SWITCHED_TEXT_SECTIONS): Likewise. 13196 131972018-08-15 Iain Sandoe <iain@sandoe.co.uk> 13198 13199 PR target/81685 13200 * config/darwin.h: (DEBUG_STR_OFFSETS_SECTION, DEBUG_LOCLISTS_SECTION, 13201 DEBUG_RNGLISTS_SECTION) new macros. (DEBUG_PUBNAMES_SECTION, 13202 DEBUG_PUBTYPES_SECTION) update to include GNU variant. 13203 132042018-08-15 Martin Liska <mliska@suse.cz> 13205 13206 PR tree-optimization/86925 13207 * predict.c (expr_expected_value_1): When taking 13208 later predictor, assign also probability. 13209 Use fold_build2_initializer_loc in order to fold 13210 the expression in -frounding-math. 13211 132122018-08-14 Allan Sandfeld Jensen <allan.jensen@qt.io> 13213 13214 * config/i386/i386.c (expand_vec_perm_movs): New method matching movs 13215 patterns. 13216 (expand_vec_perm_1): Try the new method. 13217 132182018-08-14 Ilya Leoshkevich <iii@linux.ibm.com> 13219 13220 PR target/86547 13221 * lra-lives.c (remove_some_program_points_and_update_live_ranges): 13222 Check whether lra_live_max_point is 0 before dividing. 13223 132242018-08-14 Martin Sebor <msebor@redhat.com> 13225 13226 PR tree-optimization/86650 13227 * tree-vrp.c (vrp_prop::check_array_ref): Print an inform message. 13228 (vrp_prop::check_mem_ref): Same. 13229 132302018-08-13 Liu Hao <lh_mouse@126.com> 13231 13232 * pretty-print.c (eat_esc_sequence): Swap the foreground and 13233 background colors if the COMMON_LVB_REVERSE_VIDEO flag is set, 13234 and clear it thereafter, as it only works for DBCS. 13235 132362018-08-13 Liu Hao <lh_mouse@126.com> 13237 13238 * pretty-print.c (mingw_ansi_fputs): Do not call _close() on the 13239 handle returned by _get_osf_handle(). 13240 132412018-08-13 Will Schmidt <will_schmidt@vnet.ibm.com> 13242 13243 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Add support 13244 for folding vec_perm. 13245 132462018-08-13 Will Schmidt <will_schmidt@vnet.ibm.com> 13247 13248 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): 13249 Add support for gimple-folding of vec_pack() and vec_unpack() 13250 intrinsics. 13251 132522018-08-13 Will Schmidt <will_schmidt@vnet.ibm.com> 13253 13254 * config/rs6000/rs6000.c (rs6000_builtin_valid_without_lhs): Add 13255 vec_xst variants to the list. 13256 (rs6000_gimple_fold_builtin): Add support for folding unaligned 13257 vector loads and stores. 13258 132592018-08-13 David Edelsohn <dje.gcc@gmail.com> 13260 13261 * config.gcc (rs6000-ibm-aix4.x): Delete. 13262 (rs6000-ibm-aix5.1): Delete. 13263 (rs6000-ibm-aix5.2): Delete. 13264 (rs6000-ibm-aix5.3): Delete. 13265 * config/rs6000/aix43.h: Delete. 13266 * config/rs6000/aix51.h: Delete. 13267 * config/rs6000/aix52.h: Delete. 13268 * config/rs6000/t-aix43: Delete. 13269 132702018-08-13 Ilya Leoshkevich <iii@linux.ibm.com> 13271 13272 * config/s390/s390.c (s390_decompose_constant_pool_ref): 13273 New function. 13274 (s390_decompose_address): Factor out constant pool ref 13275 decomposition. 13276 132772018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> 13278 13279 * config/nds32/nds32-predicates.c 13280 (nds32_can_use_bclr_p): Change return type as bool. 13281 (nds32_can_use_bset_p): Ditto. 13282 (nds32_can_use_btgl_p): Ditto. 13283 (nds32_can_use_bitci_p): Ditto. 13284 * config/nds32/nds32-protos.h 13285 (nds32_can_use_bclr_p): Change declaration. 13286 (nds32_can_use_bset_p): Ditto. 13287 (nds32_can_use_btgl_p): Ditto. 13288 (nds32_can_use_bitci_p): Ditto. 13289 132902018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> 13291 13292 * config/nds32/nds32.c (nds32_expand_prologue, nds32_expand_epilogue): 13293 Support -msched-prolog-epilog option. 13294 * config/nds32/nds32.opt (msched-prolog-epilog): New option. 13295 132962018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> 13297 13298 * common/config/nds32/nds32-common.c 13299 (nds32_option_optimization_table): Enalbe -malways-align. 13300 133012018-08-12 Chung-Ju Wu <jasonwucj@gmail.com> 13302 13303 * config.gcc (nds32*): Add nds32_isr.h and nds32_init.inc in 13304 extra_headers. 13305 * common/config/nds32/nds32-common.c (nds32_handle_option): Handle 13306 OPT_misr_secure_ case. 13307 * config/nds32/nds32-isr.c: Implementation of backward compatibility. 13308 * config/nds32/nds32-protos.h (nds32_isr_function_critical_p): New. 13309 * config/nds32/nds32.c (nds32_attribute_table): Add critical and 13310 secure attribute. 13311 * config/nds32/nds32.h (nds32_isr_nested_type): Add NDS32_CRITICAL. 13312 (nds32_isr_info): New field security_level. 13313 (TARGET_ISR_VECTOR_SIZE_4_BYTE): New macro. 13314 * config/nds32/nds32.md (return_internal): Consider critical attribute. 13315 * config/nds32/nds32.opt (misr-secure): New option. 13316 * config/nds32/nds32_init.inc: New file. 13317 * config/nds32/nds32_isr.h: New file. 13318 133192018-08-11 John David Anglin <danglin@gcc.gnu.org> 13320 13321 * config/pa/pa.md (UNSPEC_MEMORY_BARRIER): New unspec enum. 13322 Update comment for atomic instructions. 13323 (atomic_storeqi, atomic_storehi, atomic_storesi, atomic_storesf, 13324 atomic_loaddf, atomic_loaddf_1, atomic_storedf, atomic_storedf_1): 13325 Remove. 13326 (atomic_loaddi): Revise fence expansion to only emit fence prior to 13327 load for __ATOMIC_SEQ_CST model. 13328 (atomic_loaddi_1): Remove float register target. 13329 (atomic_storedi): Handle CONST_INT values. 13330 (atomic_storedi_1): Remove float register source. Add special case 13331 for zero value. 13332 (memory_barrier): New expander and insn. 13333 133342018-08-11 Jakub Jelinek <jakub@redhat.com> 13335 13336 PR tree-optimization/86835 13337 * tree-ssa-math-opts.c (insert_reciprocals): Even when inserting 13338 new_stmt after def_gsi, make sure to insert new_square_stmt after 13339 that stmt, not 2 stmts before it. 13340 133412018-08-10 Alexander Monakov <amonakov@ispras.ru> 13342 13343 PR target/82418 13344 * config/i386/i386.md (<s>mul<mode>3_highpart): Use DWIH mode iterator 13345 instead of SWI48. 13346 133472018-08-10 Martin Liska <mliska@suse.cz> 13348 13349 PR target/83610 13350 * builtin-types.def (BT_FN_LONG_LONG_LONG_DOUBLE): Add new 13351 function type. 13352 * builtins.c (expand_builtin_expect_with_probability): 13353 New function. 13354 (expand_builtin_expect_with_probability): New function. 13355 (build_builtin_expect_predicate): Add new argumnet probability 13356 for BUILT_IN_EXPECT_WITH_PROBABILITY. 13357 (fold_builtin_expect): 13358 (fold_builtin_2): 13359 (fold_builtin_3): 13360 * builtins.def (BUILT_IN_EXPECT_WITH_PROBABILITY): 13361 * builtins.h (fold_builtin_expect): Set new argument. 13362 * doc/extend.texi: Document __builtin_expect_with_probability. 13363 * doc/invoke.texi: Likewise. 13364 * gimple-fold.c (gimple_fold_call): Pass new argument. 13365 * ipa-fnsummary.c (find_foldable_builtin_expect): Handle 13366 also BUILT_IN_EXPECT_WITH_PROBABILITY. 13367 * predict.c (get_predictor_value): New function. 13368 (expr_expected_value): Add new argument probability. Assume 13369 that predictor and probability are always non-null. 13370 (expr_expected_value_1): Likewise. For __builtin_expect and 13371 __builtin_expect_with_probability set probability. Handle 13372 combination in binary expressions. 13373 (tree_predict_by_opcode): Simplify code by simply calling 13374 get_predictor_value. 13375 (pass_strip_predict_hints::execute): Add handling of 13376 BUILT_IN_EXPECT_WITH_PROBABILITY. 13377 * predict.def (PRED_BUILTIN_EXPECT_WITH_PROBABILITY): Add 13378 new predictor. 13379 * tree.h (DECL_BUILT_IN_P): New function. 13380 133812018-08-10 Martin Liska <mliska@suse.cz> 13382 13383 PR tree-optimization/85799 13384 * passes.def: Add argument for pass_strip_predict_hints. 13385 * predict.c (class pass_strip_predict_hints): Add new argument 13386 early_p. 13387 (strip_predictor_early): New function. 13388 (pass_strip_predict_hints::execute): Call the function to 13389 strip predictors. 13390 (strip_predict_hints): New function. 13391 * predict.def: Fix comment. 13392 133932018-08-10 Thomas Preud'homme <thomas.preudhomme@linaro.org> 13394 13395 * Makefile.in: Clarify which tm.texi to copy over to assert the 13396 right to grant a GFDL license for all. 13397 133982018-08-09 Jeff Law <law@redhat.com> 13399 13400 * config/m68k/m68k.c (m68k_adjust_decorated_operand): Remove 13401 unused variable. 13402 134032018-08-09 Andreas Schwab <schwab@linux-m68k.org> 13404 13405 * config/m68k/m68k-protos.h (m68k_final_prescan_insn): Remove 13406 prototype. 13407 134082018-08-09 Richard Sandiford <richard.sandiford@arm.com> 13409 13410 * tree-vect-loop.c (vectorizable_reduction): Allow inner-loop 13411 reductions for variable-length vectors. 13412 134132018-08-09 David Malcolm <dmalcolm@redhat.com> 13414 13415 PR other/84889 13416 * common.opt (fdiagnostics-show-line-numbers): New option. 13417 * diagnostic-show-locus.c (class layout): Add fields 13418 "m_show_line_numbers_p" and "m_linenum_width"; 13419 (num_digits): New function. 13420 (test_num_digits): New function. 13421 (layout::layout): Initialize new fields. Update m_x_offset 13422 logic to handle any left margin. 13423 (layout::print_source_line): Print line number when requested. 13424 (layout::start_annotation_line): New member function. 13425 (layout::print_annotation_line): Call it. 13426 (layout::print_leading_fixits): Likewise. 13427 (layout::print_trailing_fixits): Likewise. Update calls to 13428 move_to_column for new parameter. 13429 (layout::get_x_bound_for_row): Add "add_left_margin" param and use 13430 it to potentially call start_annotation_line. 13431 (layout::show_ruler): Call start_annotation_line. 13432 (selftest::test_line_numbers_multiline_range): New selftest. 13433 (selftest::diagnostic_show_locus_c_tests): Call test_num_digits 13434 and selftest::test_line_numbers_multiline_range. 13435 * diagnostic.c (diagnostic_initialize): Initialize 13436 show_line_numbers_p. 13437 * diagnostic.h (struct diagnostic_context): Add field 13438 "show_line_numbers_p". 13439 * doc/invoke.texi (Diagnostic Message Formatting Options): Add 13440 -fno-diagnostics-show-line-numbers. 13441 * dwarf2out.c (gen_producer_string): Add 13442 OPT_fdiagnostics_show_line_numbers to the ignored options. 13443 * lto-wrapper.c (merge_and_complain): Likewise to the "pick 13444 one setting" options. 13445 (append_compiler_options): Likewise to the dropped options. 13446 (append_diag_options): Likewise to the passed-on options. 13447 * opts.c (common_handle_option): Handle the new option. 13448 * toplev.c (general_init): Set up global_dc->show_line_numbers_p. 13449 134502018-08-09 Kelvin Nilsen <kelvin@gcc.gnu.org> 13451 13452 * doc/extend.texi (PowerPC AltiVec Built-in Functions Available on 13453 ISA 2.07): Correct spelling of bcdsub to be __builtin_bcdsub. Add 13454 third argument of type "const signed char" to descriptions of 13455 __builtin_bcdadd, __builtin_bcdadd_lt, __builtin_bcdadd_eq, 13456 __builtin_bcdadd_gt, __builtin_bcdadd_ov, __builtin_bcdsub, 13457 __builtin_bcdsub_lt, __builtin_bcdsub_eq, __builtin_bcdsub_gt, 13458 __builtin_bcdsub_ov functions. 13459 134602018-08-09 Richard Sandiford <richard.sandiford@arm.com> 13461 13462 PR tree-optimization/86858 13463 * tree-vect-loop.c (vect_is_simple_reduction): Restore 13464 flow_bb_inside_loop_p calls. 13465 134662018-08-09 Richard Sandiford <richard.sandiford@arm.com> 13467 13468 PR tree-optimization/86871 13469 * tree-vect-stmts.c (vect_transform_stmt): Use gimple_get_lhs 13470 instead of gimple_assign_lhs. 13471 134722018-08-09 Richard Earnshaw <rearnsha@arm.com> 13473 13474 PR target/86887 13475 * config/aarch64/aarch64.md (add<mode>3_carryinC_zero): Add missing 13476 register constraint to operand 0. 13477 (add<mode>3_carryinC): Likewise. 13478 (add<mode>3_carryinV_zero, add<mode>3_carryinV): Likewise. 13479 134802018-08-09 Martin Liska <mliska@suse.cz> 13481 13482 PR c/86895 13483 * common.opt: Remove extra line. 13484 134852018-08-09 Martin Liska <mliska@suse.cz> 13486 13487 * params.def (PARAM_ALIGN_LOOP_ITERATIONS): Remove double dots 13488 at the end of a line, make first letter capital and end up 13489 a sentence with a dot. 13490 (PARAM_LOOP_INTERCHANGE_STRIDE_RATIO): Likewise. 13491 (PARAM_LOOP_BLOCK_TILE_SIZE): Likewise. 13492 (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS): Likewise. 13493 (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): Likewise. 13494 (PARAM_MAX_ISL_OPERATIONS): Likewise. 13495 (PARAM_GRAPHITE_ALLOW_CODEGEN_ERRORS): Likewise. 13496 (PARAM_PROFILE_FUNC_INTERNAL_ID): Likewise. 13497 (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. 13498 (PARAM_SLP_MAX_INSNS_IN_BB): Likewise. 13499 (PARAM_IPA_CP_EVAL_THRESHOLD): Likewise. 13500 (PARAM_IPA_CP_RECURSION_PENALTY): Likewise. 13501 (PARAM_IPA_CP_SINGLE_CALL_PENALTY): Likewise. 13502 (PARAM_IPA_CP_LOOP_HINT_BONUS): Likewise. 13503 (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Likewise. 13504 (PARAM_TREE_REASSOC_WIDTH): Likewise. 13505 (PARAM_HSA_GEN_DEBUG_STORES): Likewise. 13506 (PARAM_MAX_SPECULATIVE_DEVIRT_MAYDEFS): Likewise. 13507 (PARAM_MAX_VRP_SWITCH_ASSERTIONS): Likewise. 13508 135092018-08-09 Andreas Krebbel <krebbel@linux.ibm.com> 13510 13511 PR target/84332 13512 * config/s390/s390.c (s390_option_override_internal): Reduce the 13513 stack-clash-protection-probe-interval param if it would be too big 13514 for z900. 13515 135162018-08-08 Andreas Schwab <schwab@linux-m68k.org> 13517 13518 PR target/46179 13519 * config/m68k/m68k.h (FINAL_PRESCAN_INSN): Don't define. 13520 * config/m68k/m68k.c (handle_move_double): Don't call 13521 m68k_final_prescan_insn. 13522 (m68k_adjust_decorated_operand): Renamed from 13523 m68k_final_prescan_insn, remove first and third operand and 13524 simplify. 13525 (print_operand): Call it. 13526 (print_operand_address): Call it. 13527 135282018-08-08 Nathan Sidwell <nathan@acm.org> 13529 13530 * diagnostic.c (diagnostic_report_current_module): Use 13531 linemap_included_from & linemap_included_from_linemap. 13532 135332018-08-08 Hongbo Zhang <hongbo.zhang@linaro.org> 13534 13535 * config/aarch64/aarch64-cores.def: Add phecda core. 13536 * config/aarch64/aarch64-tune.md: Regenerate. 13537 * doc/invoke.texi: Add phecda core. 13538 135392018-08-08 Andreas Krebbel <krebbel@linux.ibm.com> 13540 13541 PR target/85295 13542 * config/s390/constraints.md ("NxHD0", "NxSD0"): New constraint 13543 definitions. 13544 * config/s390/s390.md ("movti"): Add more alternatives for 13545 constant to GPR copies. 13546 135472018-08-08 Andreas Krebbel <krebbel@linux.ibm.com> 13548 13549 * config/s390/s390.c: Fix whitespace damage throughout the file. 13550 * config/s390/s390.h: Likewise. 13551 * config/s390/tpf.h: Likewise. 13552 135532018-08-08 Ilya Leoshkevich <iii@linux.ibm.com> 13554 13555 * config/s390/s390.c (s390_loadrelative_operand_p): 13556 Remove TARGET_CPU_ZARCH usages. 13557 (s390_rtx_costs): Likewise. 13558 (s390_legitimate_constant_p): Likewise. 13559 (s390_cannot_force_const_mem): Likewise. 13560 (legitimate_reload_constant_p): Likewise. 13561 (s390_preferred_reload_class): Likewise. 13562 (legitimize_pic_address): Likewise. 13563 (legitimize_tls_address): Likewise. 13564 (s390_split_branches): Removed. 13565 (s390_add_execute): Removed. 13566 (s390_dump_pool): Remove TARGET_CPU_ZARCH usages. 13567 (s390_mainpool_start): Likewise. 13568 (s390_mainpool_finish): Likewise. 13569 (s390_mainpool_cancel): Removed. 13570 (s390_chunkify_start): Remove TARGET_CPU_ZARCH usages. 13571 (s390_chunkify_cancel): Likewise. 13572 (s390_return_addr_rtx): Likewise. 13573 (s390_register_info): Remove split_branches_pending_p uages. 13574 (s390_optimize_register_info): Likewise. 13575 (s390_init_frame_layout): Remove TARGET_CPU_ZARCH and 13576 split_branches_pending_p usages. 13577 (s390_can_eliminate): Remove TARGET_CPU_ZARCH usages. 13578 (s390_load_got): Likewise. 13579 (s390_expand_split_stack_prologue): Likewise. 13580 (output_asm_nops): Likewise. 13581 (s390_function_profiler): Likewise. 13582 (s390_emit_call): Likewise. 13583 (s390_conditional_register_usage): Likewise. 13584 (s390_optimize_prologue): Likewise. 13585 (s390_reorg): Remove TARGET_CPU_ZARCH and 13586 split_branches_pending_p usages. 13587 (s390_option_override_internal): Remove TARGET_CPU_ZARCH 13588 usages. 13589 (s390_output_indirect_thunk_function): Likewise. 13590 * config/s390/s390.h (TARGET_CPU_ZARCH): Removed. 13591 (TARGET_CPU_ZARCH_P): Removed. 13592 (struct machine_function): Remove split_branches_pending_p. 13593 * config/s390/s390.md: Remove TARGET_CPU_ZARCH usages. 13594 135952018-08-08 Ilya Leoshkevich <iii@linux.ibm.com> 13596 13597 * common/config/s390/s390-common.c (processor_flags_table): 13598 Remove flags. 13599 * config.gcc: Remove with_arch/with_tune support. 13600 * config/s390/2064.md: Remove cpu attribute comparisons. 13601 * config/s390/driver-native.c (s390_host_detect_local_cpu): 13602 Remove MTN. 13603 * config/s390/linux.h (ASM_SPEC): 13604 Remove -march support. 13605 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): 13606 Use a table to get an arch level. 13607 * config/s390/s390-opts.h (enum processor_type): 13608 Remove enum values. 13609 * config/s390/s390.c 13610 (processor_table): Remove entries, add arch_level values. 13611 (s390_issue_rate): Remove cases. 13612 (s390_option_override): Adjust 13613 s390_option_override_internal() call. 13614 (s390_option_override_internal): Remove deprecation warning. 13615 (s390_valid_target_attribute_tree): Adjust 13616 s390_option_override_internal() call. 13617 * config/s390/s390.h (struct s390_processor): 13618 Share with s390-c.c, add arch_level field. 13619 * config/s390/s390.md: 13620 Remove occurrences in cpu attribute. 13621 * config/s390/s390.opt: Remove -march/-mtune support. 13622 * config/s390/tpf.h (ASM_SPEC): Remove -march support. 13623 * doc/invoke.texi: Remove deprecation warning. 13624 136252018-08-08 Luis Machado <luis.machado@linaro.org> 13626 13627 * config/aarch64/aarch64.c (qdf24xx_vector_cost): New static 13628 global. 13629 (qdf24xx_tunings): Set vector cost structure to 13630 qdf24xx_vector_cost. 13631 13632 * config/aarch64/aarch64.c (qdf24xx_addrcost_table) 13633 <register_sextend>: Set to 3. 13634 136352018-08-07 Richard Sandiford <richard.sandiford@arm.com> 13636 13637 PR target/86838 13638 * config/aarch64/iterators.md (FRECP, frecp_suffix): Delete. 13639 * config/aarch64/aarch64-simd.md 13640 (aarch64_frecp<FRECP:frecp_suffix><mode>): Fold FRECPE into... 13641 (@aarch64_frecpe<mode>): ...here and the move FRECPX to... 13642 (aarch64_frecpx<mode>): ...this new pattern. 13643 * config/aarch64/aarch64-simd-builtins.def: Remove comment 13644 about aarch64_frecp<FRECP:frecp_suffix><mode>. 13645 136462018-08-07 Martin Liska <mliska@suse.cz> 13647 13648 PR middle-end/83023 13649 * predict.c (expr_expected_value_1): Handle DECL_IS_MALLOC, 13650 BUILT_IN_REALLOC and DECL_IS_OPERATOR_NEW. 13651 * predict.def (PRED_MALLOC_NONNULL): New predictor. 13652 * doc/extend.texi: Document that malloc attribute adds 13653 hit to compiler. 13654 136552018-08-06 John David Anglin <danglin@gcc.gnu.org> 13656 13657 PR target/86785 13658 * config/pa/pa.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13659 Define to speculation_safe_value_not_needed. 13660 136612018-08-06 Jeff Law <law@redhat.com> 13662 13663 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Pass down 13664 the vr_values instance to cprop_into_stmt. 13665 (cprop_into_stmt): Pass vr_values instance down to cprop_operand. 13666 (cprop_operand): Also query EVRP to determine if OP is a constant. 13667 136682018-08-06 Nathan Sidwell <nathan@acm.org> 13669 13670 * diagnostic.c (diagnostic_report_current_module): Reroll 13671 included-at loop. Translate text. 13672 136732018-08-06 David Malcolm <dmalcolm@redhat.com> 13674 13675 * function-tests.c (selftest::test_expansion_to_rtl): Call 13676 free_after_compilation. 13677 136782018-08-06 Alan Hayward <alan.hayward@arm.com> 13679 13680 * config/aarch64/aarch64.md: Add clobber highs to tls_desc. 13681 136822018-08-06 Andreas Krebbel <krebbel@linux.ibm.com> 13683 13684 * config/s390/s390.c (s390_loop_unroll_adjust): Prevent small 13685 loops with memory block operations from getting unrolled. 13686 136872018-08-06 Ulrich Weigand <uweigand@de.ibm.com> 13688 13689 PR target/86807 13690 * config/spu/spu.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13691 Define to speculation_safe_value_not_needed. 13692 136932018-08-06 Jeff Law <law@redhat.com> 13694 13695 * reload1.c (forget_old_reloads_1): Adjust CLOBBER_HIGH 13696 assert. 13697 136982018-08-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> 13699 13700 PR target/86662 13701 * gcc/tree.c (build_common_tree_nodes): Initialize integer_types array 13702 with all enabled __intN types. 13703 13704 * gcc/testsuite/gcc.target/msp430/pr86662.c: New test. 13705 137062018-08-06 Alan Hayward <alan.hayward@arm.com> 13707 13708 * alias.c (record_set): Check for clobber high. 13709 * cfgexpand.c (expand_gimple_stmt): Likewise. 13710 * combine-stack-adj.c (single_set_for_csa): Likewise. 13711 * combine.c (find_single_use_1): Likewise. 13712 (set_nonzero_bits_and_sign_copies): Likewise. 13713 (get_combine_src_dest): Likewise. 13714 (is_parallel_of_n_reg_sets): Likewise. 13715 (try_combine): Likewise. 13716 (record_dead_and_set_regs_1): Likewise. 13717 (reg_dead_at_p_1): Likewise. 13718 (reg_dead_at_p): Likewise. 13719 * dce.c (deletable_insn_p): Likewise. 13720 (mark_nonreg_stores_1): Likewise. 13721 (mark_nonreg_stores_2): Likewise. 13722 * df-scan.c (df_find_hard_reg_defs): Likewise. 13723 (df_uses_record): Likewise. 13724 (df_get_call_refs): Likewise. 13725 * dwarf2out.c (mem_loc_descriptor): Likewise. 13726 * haifa-sched.c (haifa_classify_rtx): Likewise. 13727 * ira-build.c (create_insn_allocnos): Likewise. 13728 * ira-costs.c (scan_one_insn): Likewise. 13729 * ira.c (equiv_init_movable_p): Likewise. 13730 (rtx_moveable_p): Likewise. 13731 (interesting_dest_for_shprep): Likewise. 13732 * jump.c (mark_jump_label_1): Likewise. 13733 * postreload-gcse.c (record_opr_changes): Likewise. 13734 * postreload.c (reload_cse_simplify): Likewise. 13735 (struct reg_use): Add source expr. 13736 (reload_combine): Check for clobber high. 13737 (reload_combine_note_use): Likewise. 13738 (reload_cse_move2add): Likewise. 13739 (move2add_note_store): Likewise. 13740 * print-rtl.c (print_pattern): Likewise. 13741 * recog.c (decode_asm_operands): Likewise. 13742 (store_data_bypass_p): Likewise. 13743 (if_test_bypass_p): Likewise. 13744 * regcprop.c (kill_clobbered_value): Likewise. 13745 (kill_set_value): Likewise. 13746 * reginfo.c (reg_scan_mark_refs): Likewise. 13747 * reload1.c (maybe_fix_stack_asms): Likewise. 13748 (eliminate_regs_1): Likewise. 13749 (elimination_effects): Likewise. 13750 (mark_not_eliminable): Likewise. 13751 (scan_paradoxical_subregs): Likewise. 13752 (forget_old_reloads_1): Likewise. 13753 * reorg.c (find_end_label): Likewise. 13754 (try_merge_delay_insns): Likewise. 13755 (redundant_insn): Likewise. 13756 (own_thread_p): Likewise. 13757 (fill_simple_delay_slots): Likewise. 13758 (fill_slots_from_thread): Likewise. 13759 (dbr_schedule): Likewise. 13760 * resource.c (update_live_status): Likewise. 13761 (mark_referenced_resources): Likewise. 13762 (mark_set_resources): Likewise. 13763 * rtl.c (copy_rtx): Likewise. 13764 * rtlanal.c (reg_referenced_p): Likewise. 13765 (single_set_2): Likewise. 13766 (noop_move_p): Likewise. 13767 (note_stores): Likewise. 13768 * sched-deps.c (sched_analyze_reg): Likewise. 13769 (sched_analyze_insn): Likewise. 13770 137712018-08-06 Alan Hayward <alan.hayward@arm.com> 13772 13773 * cse.c (invalidate_reg): New function extracted from... 13774 (invalidate): ...here. 13775 (canonicalize_insn): Check for clobber high. 13776 (invalidate_from_clobbers): invalidate clobber highs. 13777 (invalidate_from_sets_and_clobbers): Likewise. 13778 (count_reg_usage): Check for clobber high. 13779 (insn_live_p): Likewise. 13780 * cselib.c (cselib_expand_value_rtx_1):Likewise. 13781 (cselib_invalidate_regno): Check for clobber in setter. 13782 (cselib_invalidate_rtx): Pass through setter. 13783 (cselib_invalidate_rtx_note_stores): 13784 (cselib_process_insn): Check for clobber high. 13785 * cselib.h (cselib_invalidate_rtx): Add operand. 13786 137872018-08-06 Alan Hayward <alan.hayward@arm.com> 13788 13789 * lra-eliminations.c (lra_eliminate_regs_1): Check for clobber high. 13790 (mark_not_eliminable): Likewise. 13791 * lra-int.h (struct lra_insn_reg): Add clobber high marker. 13792 * lra-lives.c (process_bb_lives): Check for clobber high. 13793 * lra.c (new_insn_reg): Remember clobber highs. 13794 (collect_non_operand_hard_regs): Check for clobber high. 13795 (lra_set_insn_recog_data): Likewise. 13796 (add_regs_to_insn_regno_info): Likewise. 13797 (lra_update_insn_regno_info): Likewise. 13798 137992018-08-06 Alan Hayward <alan.hayward@arm.com> 13800 13801 * rtl.h (reg_is_clobbered_by_clobber_high): Add declarations. 13802 * rtlanal.c (reg_is_clobbered_by_clobber_high): Add function. 13803 138042018-08-06 Alan Hayward <alan.hayward@arm.com> 13805 13806 * emit-rtl.c (verify_rtx_sharing): Check for CLOBBER_HIGH. 13807 (copy_insn_1): Likewise. 13808 (gen_hard_reg_clobber_high): New gen function. 13809 * genconfig.c (walk_insn_part): Check for CLOBBER_HIGH. 13810 * genemit.c (gen_exp): Likewise. 13811 (gen_emit_seq): Pass through info. 13812 (gen_insn): Check for CLOBBER_HIGH. 13813 (gen_expand): Pass through info. 13814 (gen_split): Likewise. 13815 (output_add_clobbers): Likewise. 13816 * genrecog.c (validate_pattern): Check for CLOBBER_HIGH. 13817 (remove_clobbers): Likewise. 13818 * rtl.h (gen_hard_reg_clobber_high): New declaration. 13819 138202018-08-06 Alan Hayward <alan.hayward@arm.com> 13821 13822 * doc/rtl.texi (clobber_high): Add. 13823 (parallel): Add in clobber high 13824 * rtl.c (rtl_check_failed_code3): Add function. 13825 * rtl.def (CLOBBER_HIGH): Add expression. 13826 * rtl.h (RTL_CHECKC3): Add macro. 13827 (rtl_check_failed_code3): Add declaration. 13828 (XC3EXP): Add macro. 13829 138302018-08-05 H.J. Lu <hongjiu.lu@intel.com> 13831 13832 PR target/86386 13833 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Set 13834 cfun->machine->max_used_stack_alignment if needed. 13835 138362018-08-04 Martin Sebor <msebor@redhat.com> 13837 13838 PR tree-optimization/86571 13839 * gimple-ssa-sprintf.c (format_floating): Extend upper bound of 13840 NaN output to 4. 13841 138422018-08-03 Sandra Loosemore <sandra@codesourcery.com> 13843 13844 PR target/86799 13845 * config/nios2/nios2.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13846 Define. 13847 138482018-08-03 Jeff Law <law@redhat.com> 13849 13850 PR target/86795 13851 * config/mn10300/mn10300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13852 Define to speculation_safe_value_not_needed. 13853 138542018-08-03 David Malcolm <dmalcolm@redhat.com> 13855 13856 * doc/gcov.texi (-x): Remove duplicate "to". 13857 * doc/invoke.texi (-Wnoexcept-type): Remove duplicate "calls". 13858 (-Wif-not-aligned): Remove duplicate "is". 13859 (-flto): Remove duplicate "the". 13860 (MicroBlaze Options): In examples of "-mcpu=cpu-type", remove 13861 duplicate "v5.00.b". 13862 (MSP430 Options): Remove duplicate "and" from the description 13863 of "-mgprel-sec=regexp". 13864 (x86 Options): Remove duplicate copies of "vmldLog102" and 13865 vmlsLog104 from description of "-mveclibabi=type". 13866 138672018-08-03 Richard Sandiford <richard.sandiford@arm.com> 13868 13869 * internal-fn.h (first_commutative_argument): Declare. 13870 * internal-fn.c (first_commutative_argument): New function. 13871 * tree-vect-slp.c (vect_get_and_check_slp_defs): Remove extra 13872 restrictions for pattern statements. Use first_commutative_argument 13873 to look for commutative operands in calls to internal functions. 13874 138752018-08-03 Aldy Hernandez <aldyh@redhat.com> 13876 13877 * Makefile.in (wide-int-range.o): New. 13878 * tree-vrp.c: Move all the wide_int_* functions to... 13879 * wide-int-range.cc: ...here. 13880 * tree-vrp.h: Move all the wide_int_* prototypes to... 13881 * wide-int-range.h: ...here. 13882 138832018-08-03 Tom de Vries <tdevries@suse.de> 13884 13885 * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): Return 13886 UI_NONE. 13887 * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Remove define. 13888 * except.c (output_function_exception_table): Do early exit if 13889 targetm_common.except_unwind_info (&global_options) == UI_NONE. 13890 138912018-08-03 Martin Liska <mliska@suse.cz> 13892 13893 * predict.c (dump_prediction): Change to 2 digits 13894 in fraction part. 13895 138962018-08-03 Siddhesh Poyarekar <siddhesh@sourceware.org> 13897 13898 * config/aarch64/falkor.md (falkor_am_1_vxvy_vxvy): Move 13899 neon_dup_q to... 13900 (falkor_am_1_gtov_gtov): ... a new insn reservation. 13901 139022018-07-19 Ilya Leoshkevich <iii@linux.ibm.com> 13903 13904 * config/nds32/nds32.c (nds32_hard_regno_mode_ok): Replace > with >=. 13905 * df-problems.c (df_remove_dead_eq_notes): Replace > with >=. 13906 * dwarf2out.c (mem_loc_descriptor): Replace > with >=. 13907 * lra-constraints.c (spill_hard_reg_in_range): Replace <= with <. 13908 * lra-remat.c (call_used_input_regno_present_p): Replace <= with <. 13909 139102018-08-02 David Malcolm <dmalcolm@redhat.com> 13911 13912 * diagnostic-show-locus.c (diagnostic_show_locus): Use 13913 pp_take_prefix when saving the existing prefix. 13914 * diagnostic.c (diagnostic_append_note): Likewise. 13915 * langhooks.c (lhd_print_error_function): Likewise. 13916 * pretty-print.c (pp_set_prefix): Drop the "const" from "prefix" 13917 param's type. Free the existing prefix. 13918 (pp_take_prefix): New function. 13919 (pretty_printer::pretty_printer): Drop the prefix parameter. 13920 Rename the length parameter to match the comment. 13921 (pretty_printer::~pretty_printer): Free the prefix. 13922 * pretty-print.h (pretty_printer::pretty_printer): Drop the prefix 13923 parameter. 13924 (struct pretty_printer): Drop the "const" from "prefix" field's 13925 type and clarify memory management. 13926 (pp_set_prefix): Drop the "const" from the 2nd param. 13927 (pp_take_prefix): New decl. 13928 139292018-08-02 Aaron Sawdey <acsawdey@linux.ibm.com> 13930 13931 * config/rs6000/rs6000-string.c (select_block_compare_mode): Move test 13932 for word_mode_ok here instead of passing as argument. 13933 (expand_block_compare): Change select_block_compare_mode() call. 13934 (expand_strncmp_gpr_sequence): New function. 13935 (expand_strn_compare): Make use of expand_strncmp_gpr_sequence. 13936 139372018-08-02 Jeff Law <law@redhat.com> 13938 13939 PR target/86790 13940 * config/m68k/m68k.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13941 Define to speculation_safe_value_not_needed. 13942 13943 PR target/86784 13944 * config/h8300/h8300.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13945 Define to speculation_safe_value_not_needed. 13946 139472018-08-02 Tom de Vries <tdevries@suse.de> 13948 13949 PR target/86660 13950 * common/config/nvptx/nvptx-common.c (nvptx_except_unwind_info): New 13951 function. Return UI_TARGET unconditionally. 13952 (TARGET_EXCEPT_UNWIND_INFO): Redefine to nvptx_except_unwind_info. 13953 * config/nvptx/nvptx.c (TARGET_ASM_BYTE_OP): Emit commented out '.byte'. 13954 139552018-08-02 Richard Sandiford <richard.sandiford@arm.com> 13956 13957 * genemit.c (print_overload_test): Fix typo. 13958 139592018-08-02 Richard Biener <rguenther@suse.de> 13960 13961 PR tree-optimization/86816 13962 * tree-ssa-tail-merge.c (tail_merge_valueize): New function 13963 which checks for value availability before querying it. 13964 (gvn_uses_equal): Use it. 13965 (same_succ_hash): Likewise. 13966 (gimple_equal_p): Likewise. 13967 139682018-08-02 Nick Clifton <nickc@redhat.com> 13969 13970 PR target/86813 13971 * config/stormy16/stormy16.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13972 Define to speculation_safe_value_not_needed. 13973 13974 PR target/86810 13975 * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13976 Define to speculation_safe_value_not_needed. 13977 13978 PR target/86810 13979 * config/v850/v850.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13980 Define to speculation_safe_value_not_needed. 13981 13982 PR target/86803 13983 * config/rx/rx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13984 Define to speculation_safe_value_not_needed. 13985 13986 PR target/86797 13987 * config/msp430/msp430.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13988 Define to speculation_safe_value_not_needed. 13989 13990 PR target/86791 13991 * config/mcore/mcore.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13992 Define to speculation_safe_value_not_needed. 13993 13994 PR target/86789 13995 * config/m32r/m32r.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 13996 Define to speculation_safe_value_not_needed. 13997 13998 PR target/86787 13999 * config/iq2000/iq2000.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): 14000 Define to speculation_safe_value_not_needed. 14001 14002 PR target/86782 14003 * config/frv/frv.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to 14004 speculation_safe_value_not_needed. 14005 14006 PR target/86781 14007 * config/fr30/fr30.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define 14008 to speculation_safe_value_not_needed. 14009 140102018-08-02 Richard Sandiford <richard.sandiford@arm.com> 14011 14012 * doc/md.texi: Expand the documentation of instruction names 14013 to mention port-local uses. Document '@' in pattern names. 14014 * read-md.h (overloaded_instance, overloaded_name): New structs. 14015 (mapping): Declare. 14016 (md_reader::handle_overloaded_name): New member function. 14017 (md_reader::get_overloads): Likewise. 14018 (md_reader::m_first_overload): New member variable. 14019 (md_reader::m_next_overload_ptr): Likewise. 14020 (md_reader::m_overloads_htab): Likewise. 14021 * read-md.c (md_reader::md_reader): Initialize m_first_overload, 14022 m_next_overload_ptr and m_overloads_htab. 14023 * read-rtl.c (iterator_group): Add "type" and "get_c_token" fields. 14024 (get_mode_token, get_code_token, get_int_token): New functions. 14025 (map_attr_string): Add an optional argument that passes back 14026 the associated iterator. 14027 (overloaded_name_hash, overloaded_name_eq_p, named_rtx_p): 14028 (md_reader::handle_overloaded_name, add_overload_instance): New 14029 functions. 14030 (apply_iterators): Handle '@' names. Report an error if '@' 14031 is used without iterators. 14032 (initialize_iterators): Initialize the new iterator_group fields. 14033 * genopinit.c (handle_overloaded_code_for) 14034 (handle_overloaded_gen): New functions. 14035 (main): Use them to print declarations of maybe_code_for_* and 14036 maybe_gen_* functions, and inline definitions of code_for_* and gen_*. 14037 * genemit.c (print_overload_arguments, print_overload_test) 14038 (handle_overloaded_code_for, handle_overloaded_gen): New functions. 14039 (main): Use it to print definitions of maybe_code_for_* and 14040 maybe_gen_* functions. 14041 * config/aarch64/aarch64.c (aarch64_split_128bit_move): Use 14042 gen_aarch64_mov{low,high}_di and gen_aarch64_movdi_{low,high} 14043 instead of explicit mode checks. 14044 (aarch64_split_simd_combine): Likewise gen_aarch64_simd_combine. 14045 (aarch64_split_simd_move): Likewise gen_aarch64_split_simd_mov. 14046 (aarch64_emit_load_exclusive): Likewise gen_aarch64_load_exclusive. 14047 (aarch64_emit_store_exclusive): Likewise gen_aarch64_store_exclusive. 14048 (aarch64_expand_compare_and_swap): Likewise 14049 gen_aarch64_compare_and_swap and gen_aarch64_compare_and_swap_lse 14050 (aarch64_gen_atomic_cas): Likewise gen_aarch64_atomic_cas. 14051 (aarch64_emit_atomic_swap): Likewise gen_aarch64_atomic_swp. 14052 (aarch64_constant_pool_reload_icode): Delete. 14053 (aarch64_secondary_reload): Use code_for_aarch64_reload_movcp 14054 instead of aarch64_constant_pool_reload_icode. Use 14055 code_for_aarch64_reload_mov instead of explicit mode checks. 14056 (rsqrte_type, get_rsqrte_type, rsqrts_type, get_rsqrts_type): Delete. 14057 (aarch64_emit_approx_sqrt): Use gen_aarch64_rsqrte instead of 14058 get_rsqrte_type and gen_aarch64_rsqrts instead of gen_rqrts_type. 14059 (recpe_type, get_recpe_type, recps_type, get_recps_type): Delete. 14060 (aarch64_emit_approx_div): Use gen_aarch64_frecpe instead of 14061 get_recpe_type and gen_aarch64_frecps instead of get_recps_type. 14062 (aarch64_atomic_load_op_code): Delete. 14063 (aarch64_emit_atomic_load_op): Likewise. 14064 (aarch64_gen_atomic_ldop): Use UNSPECV_ATOMIC_* instead of 14065 aarch64_atomic_load_op_code. Use gen_aarch64_atomic_load 14066 instead of aarch64_emit_atomic_load_op. 14067 * config/aarch64/aarch64.md (aarch64_reload_movcp<GPF_TF:mode><P:mode>) 14068 (aarch64_reload_movcp<VALL:mode><P:mode>, aarch64_reload_mov<mode>) 14069 (aarch64_movdi_<mode>low, aarch64_movdi_<mode>high) 14070 (aarch64_mov<mode>high_di, aarch64_mov<mode>low_di): Add a '@' 14071 character before the pattern name. 14072 * config/aarch64/aarch64-simd.md (aarch64_split_simd_mov<mode>) 14073 (aarch64_rsqrte<mode>, aarch64_rsqrts<mode>) 14074 (aarch64_simd_combine<mode>, aarch64_frecpe<mode>) 14075 (aarch64_frecps<mode>): Likewise. 14076 * config/aarch64/atomics.md (atomic_compare_and_swap<mode>) 14077 (aarch64_compare_and_swap<mode>, aarch64_compare_and_swap<mode>_lse) 14078 (aarch64_load_exclusive<mode>, aarch64_store_exclusive<mode>) 14079 (aarch64_atomic_swp<mode>, aarch64_atomic_cas<mode>) 14080 (aarch64_atomic_load<atomic_ldop><mode>): Likewise. 14081 140822018-08-02 Richard Sandiford <richard.sandiford@arm.com> 14083 14084 * config/aarch64/aarch64.c (aarch64_float_const_representable_p): 14085 Allow HFmode constants if TARGET_FP_F16INST. 14086 140872018-08-02 Jackson Woodruff <jackson.woodruff@arm.com> 14088 14089 PR target/86014 14090 * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): 14091 No longer check last store for clobber of address register. 14092 140932018-08-02 Martin Liska <mliska@suse.cz> 14094 14095 PR gcov-profile/86817 14096 * gcov.c (process_all_functions): New function. 14097 (main): Call it. 14098 (process_file): Move functions processing to 14099 process_all_functions. 14100 141012018-08-02 David Malcolm <dmalcolm@redhat.com> 14102 14103 * dumpfile.c (dump_user_location_t::dump_user_location_t): Add 14104 "const" to the "gimple *" and "rtx_insn *" parameters. 14105 * dumpfile.h (dump_user_location_t::dump_user_location_t): 14106 Likewise. 14107 (dump_location_t::dump_location_t): Likewise. 14108 141092018-08-01 Martin Sebor <msebor@redhat.com> 14110 14111 PR tree-optimization/86650 14112 * gimple-pretty-print.c (percent_G_format): Accept a "gimple *" 14113 rather than a "gcall *". Directly pass the data of interest 14114 to percent_K_format, rather than building a temporary CALL_EXPR 14115 to hold it. 14116 * gimple-fold.c (gimple_fold_builtin_strncpy): Adjust. 14117 (gimple_fold_builtin_strncat): Adjust. 14118 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Replace 14119 gcall* argument with gimple*. 14120 * gimple-ssa-warn-restrict.c (check_call): Same. 14121 (wrestrict_dom_walker::before_dom_children): Same. 14122 (builtin_access::builtin_access): Same. 14123 (check_bounds_or_overlap): Same 14124 (maybe_diag_overlap): Same. 14125 (maybe_diag_offset_bounds): Same. 14126 * tree-diagnostic.c (default_tree_printer): Move usage of 14127 EXPR_LOCATION (t) and TREE_BLOCK (t) from within percent_K_format 14128 to this callsite. 14129 * tree-pretty-print.c (percent_K_format): Add argument. 14130 * tree-pretty-print.h: Add argument. 14131 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Adjust. 14132 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Adjust. 14133 (maybe_diag_stxncpy_trunc): Same. 14134 (handle_builtin_stxncpy): Same. 14135 (handle_builtin_strcat): Same. 14136 141372018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14138 14139 * match.pd: Optimise pointer range checks. 14140 141412018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14142 14143 PR tree-optimization/86758 14144 * tree-vect-stmts.c (vectorizable_simd_clone_call): Don't try 14145 to remove pattern statements. 14146 141472018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14148 14149 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Use the 14150 result of dfs_enumerate_from when constructing stmt_vec_infos, 14151 instead of additionally calling get_loop_body. 14152 141532018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14154 14155 * tree-vectorizer.h (vect_create_data_ref_ptr): Remove inv_p 14156 parameter. 14157 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Likewise. 14158 When creating an iv, assert that the step is not known to be zero. 14159 (vect_setup_realignment): Update call accordingly. 14160 * tree-vect-stmts.c (vectorizable_store): Likewise. 14161 (vectorizable_load): Likewise. Handle VMAT_INVARIANT separately. 14162 141632018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14164 14165 * tree-vectorizer.h (vect_stmt_to_vectorize): New function. 14166 * tree-vect-loop.c (vect_update_vf_for_slp): Use it. 14167 (vectorizable_reduction): Likewise. 14168 * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. 14169 (vect_detect_hybrid_slp_stmts): Likewise. 14170 * tree-vect-stmts.c (vect_is_simple_use): Likewise. 14171 141722018-08-01 Aldy Hernandez <aldyh@redhat.com> 14173 14174 * tree-vrp (zero_nonzero_bits_from_bounds): Rename to... 14175 (wide_int_set_zero_nonzero_bits): ...this. 14176 (zero_nonzero_bits_from_vr): Rename to... 14177 (vrp_set_zero_nonzero_bits): ...this. 14178 (extract_range_from_multiplicative_op_1): Abstract wide int 14179 code... 14180 (wide_int_range_multiplicative_op): ...here. 14181 (extract_range_from_binary_expr_1): Extract wide int binary 14182 operations into their own functions. 14183 (wide_int_range_lshift): New. 14184 (wide_int_range_can_optimize_bit_op): New. 14185 (wide_int_range_shift_undefined_p): New. 14186 (wide_int_range_bit_xor): New. 14187 (wide_int_range_bit_ior): New. 14188 (wide_int_range_bit_and): New. 14189 (wide_int_range_trunc_mod): New. 14190 (extract_range_into_wide_ints): New. 14191 (vrp_shift_undefined_p): New. 14192 (extract_range_from_multiplicative_op): New. 14193 (vrp_can_optimize_bit_op): New. 14194 * tree-vrp.h (value_range::dump): New. 14195 (wide_int_range_multiplicative_op): New. 14196 (wide_int_range_lshift):New. 14197 (wide_int_range_shift_undefined_p): New. 14198 (wide_int_range_bit_xor): New. 14199 (wide_int_range_bit_ior): New. 14200 (wide_int_range_bit_and): New. 14201 (wide_int_range_trunc_mod): New. 14202 (zero_nonzero_bits_from_bounds): Rename to... 14203 (wide_int_set_zero_nonzero_bits): ...this. 14204 (zero_nonzero_bits_from_vr): Rename to... 14205 (vrp_set_zero_nonzero_bits): ...this. 14206 (range_easy_mask_min_max): Rename to... 14207 (wide_int_range_can_optimize_bit_op): this. 14208 * vr-values.c (simplify_bit_ops_using_ranges): Rename 14209 zero_nonzero_bits_from_vr into vrp_set_zero_nonzero_bits. 14210 142112018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14212 14213 * tree-vectorizer.h (vect_orig_stmt): New function. 14214 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Use it. 14215 * tree-vect-loop.c (vect_model_reduction_cost): Likewise. 14216 (vect_create_epilog_for_reduction): Likewise. 14217 (vectorizable_live_operation): Likewise. 14218 * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. 14219 (vect_detect_hybrid_slp_stmts, vect_schedule_slp): Likewise. 14220 * tree-vect-stmts.c (vectorizable_call): Likewise. 14221 (vectorizable_simd_clone_call, vect_remove_stores): Likewise. 14222 142232018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14224 14225 * tree-vectorizer.h (vect_transform_stmt): Remove grouped_store 14226 argument. 14227 * tree-vect-stmts.c (vect_transform_stmt): Likewise. 14228 * tree-vect-loop.c (vect_transform_loop_stmt): Update call accordingly. 14229 (vect_transform_loop): Likewise. 14230 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. 14231 142322018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14233 14234 * tree-vectorizer.h (vect_schedule_slp): Return void. 14235 * tree-vect-slp.c (vect_schedule_slp_instance): Likewise. 14236 (vect_schedule_slp): Likewise. 14237 142382018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14239 14240 * tree-vect-loop.c (vect_transform_loop_stmt): Remove slp_scheduled 14241 argument. 14242 (vect_transform_loop): Update calls accordingly. Schedule SLP 14243 instances before the main loop, if any exist. 14244 142452018-08-01 Richard Sandiford <richard.sandiford@arm.com> 14246 14247 PR tree-optimization/86749 14248 * tree-vect-patterns.c (vect_determine_min_output_precision_1): 14249 If the lhs is used in a COND_EXPR, check that it is being used 14250 as the "then" or "else" value. 14251 142522018-08-01 Tom de Vries <tdevries@suse.de> 14253 14254 PR target/86800 14255 * config/nvptx/nvptx.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define to 14256 speculation_safe_value_not_needed. 14257 142582018-08-01 Richard Biener <rguenther@suse.de> 14259 14260 * tree-ssa-sccvn.c (visit_phi): Compare invariant addresses 14261 as base and offset. 14262 142632018-08-01 Martin Liska <mliska@suse.cz> 14264 14265 * value-prof.c (gimple_divmod_fixed_value_transform): Unify 14266 format how successful transformation is dumped. 14267 (gimple_mod_pow2_value_transform): Likewise. 14268 (gimple_mod_subtract_transform): Likewise. 14269 (gimple_stringops_transform): Likewise. 14270 142712018-08-01 Martin Liska <mliska@suse.cz> 14272 14273 PR value-prof/35543 14274 * value-prof.c (interesting_stringop_to_profile_p): 14275 Simplify the code and add BUILT_IN_MEMMOVE. 14276 (gimple_stringops_transform): Likewise. 14277 142782018-08-01 Sam Tebbs <sam.tebbs@arm.com> 14279 14280 * config/aarch64/aarch64-simd.md 14281 (*aarch64_get_lane_zero_extendsi<mode>): Rename to... 14282 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): ... This and 14283 use GPI iterator instead of SI mode. 14284 142852018-08-01 Richard Earnshaw <rearnsha@arm.com> 14286 14287 * config/rs6000/rs6000.md (speculation_barrier): Renamed from 14288 rs6000_speculation_barrier. 14289 * config/rs6000/rs6000.c (rs6000_expand_builtin): Adjust for 14290 new barrier pattern name. 14291 142922018-08-01 Richard Earnshaw <rearnsha@arm.com> 14293 14294 * config/i386/i386.md (unspecv): Add UNSPECV_SPECULATION_BARRIER. 14295 (speculation_barrier): New insn. 14296 142972018-08-01 Richard Biener <rguenther@suse.de> 14298 14299 PR bootstrap/86724 14300 * graphite.h: Include isl/id.h and isl/space.h to allow build 14301 with ISL 0.20. 14302 143032018-08-01 Jan Willem Jagersma <jwjagersma@gmail.com> 14304 14305 PR target/86651 14306 * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO 14307 mode for COFF targets. 14308 * defaults.h (TARGET_COFF): Define. 14309 * config/i386/djgpp.h (TARGET_ASM_LTO_START, TARGET_ASM_LTO_END, 14310 TARGET_COFF): Define. 14311 (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): Declare. 14312 * config/i386/djgpp.c (saved_debug_info_level): New static variable. 14313 (i386_djgpp_asm_lto_start, i386_djgpp_asm_lto_end): New functions. 14314 143152018-07-31 Alexandre Oliva <oliva@adacore.com> 14316 14317 * gimple-streamer-in.c (input_bb): Restore BB discriminator. 14318 * gimple-streamer-out.c (output_bb): Save it. 14319 * lto-streamer-in.c (input_struct_function_base): Restore 14320 instance discriminator if available. Create map on demand. 14321 * lto-streamer-out.c (output_struct_function_base): Save it if 14322 available. 14323 * final.c (decl_to_instance_map): Document LTO strategy. 14324 143252018-07-31 Alexandre Oliva <oliva@adacore.com> 14326 Olivier Hainque <hainque@adacore.com> 14327 14328 * debug.h (decl_to_instance_map_t): New type. 14329 (decl_to_instance_map): Declare. 14330 (maybe_create_decl_to_instance_map): New inline function. 14331 * final.c (bb_discriminator, last_bb_discriminator): New statics, 14332 to track basic block discriminators. 14333 (final_start_function_1): Initialize them. 14334 (final_scan_insn_1): On NOTE_INSN_BASIC_BLOCK, track 14335 bb_discriminator. 14336 (decl_to_instance_map): New variable. 14337 (map_decl_to_instance, maybe_set_discriminator): New functions. 14338 (notice_source_line): Set discriminator. 14339 143402018-07-31 Ian Lance Taylor <iant@golang.org> 14341 14342 * targhooks.c (default_have_speculation_safe_value): Add 14343 ATTRIBUTE_UNUSED. 14344 143452018-07-31 David Malcolm <dmalcolm@redhat.com> 14346 14347 * dump-context.h: Include "pretty-print.h". 14348 (dump_context::refresh_dumps_are_enabled): New decl. 14349 (dump_context::emit_item): New decl. 14350 (class dump_context): Add fields "m_test_pp" and 14351 "m_test_pp_flags". 14352 (temp_dump_context::temp_dump_context): Add param "test_pp_flags". 14353 (temp_dump_context::get_dumped_text): New decl. 14354 (class temp_dump_context): Add field "m_pp". 14355 * dumpfile.c (refresh_dumps_are_enabled): Convert to... 14356 (dump_context::refresh_dumps_are_enabled): ...and add a test for 14357 m_test_pp. 14358 (set_dump_file): Update for above change. 14359 (set_alt_dump_file): Likewise. 14360 (dump_loc): New overload, taking a pretty_printer *. 14361 (dump_context::dump_loc): Call end_any_optinfo. Dump the location 14362 to any test pretty-printer. 14363 (make_item_for_dump_gimple_stmt): New function, adapted from 14364 optinfo::add_gimple_stmt. 14365 (dump_context::dump_gimple_stmt): Call it, and use the result, 14366 eliminating the direct usage of dump_file and alt_dump_file in 14367 favor of indirectly using them via emit_item. 14368 (make_item_for_dump_gimple_expr): New function, adapted from 14369 optinfo::add_gimple_expr. 14370 (dump_context::dump_gimple_expr): Call it, and use the result, 14371 eliminating the direct usage of dump_file and alt_dump_file in 14372 favor of indirectly using them via emit_item. 14373 (make_item_for_dump_generic_expr): New function, adapted from 14374 optinfo::add_tree. 14375 (dump_context::dump_generic_expr): Call it, and use the result, 14376 eliminating the direct usage of dump_file and alt_dump_file in 14377 favor of indirectly using them via emit_item. 14378 (make_item_for_dump_printf_va): New function, adapted from 14379 optinfo::add_printf_va. 14380 (make_item_for_dump_printf): New function. 14381 (dump_context::dump_printf_va): Call make_item_for_dump_printf_va, 14382 and use the result, eliminating the direct usage of dump_file and 14383 alt_dump_file in favor of indirectly using them via emit_item. 14384 (make_item_for_dump_dec): New function. 14385 (dump_context::dump_dec): Call it, and use the result, 14386 eliminating the direct usage of dump_file and alt_dump_file in 14387 favor of indirectly using them via emit_item. 14388 (make_item_for_dump_symtab_node): New function, adapted from 14389 optinfo::add_symtab_node. 14390 (dump_context::dump_symtab_node): Call it, and use the result, 14391 eliminating the direct usage of dump_file and alt_dump_file in 14392 favor of indirectly using them via emit_item. 14393 (dump_context::begin_scope): Reimplement, avoiding direct usage 14394 of dump_file and alt_dump_file in favor of indirectly using them 14395 via emit_item. 14396 (dump_context::emit_item): New member function. 14397 (temp_dump_context::temp_dump_context): Add param "test_pp_flags". 14398 Set up test pretty-printer on the underlying context. Call 14399 refresh_dumps_are_enabled. 14400 (temp_dump_context::~temp_dump_context): Call 14401 refresh_dumps_are_enabled. 14402 (temp_dump_context::get_dumped_text): New member function. 14403 (selftest::verify_dumped_text): New function. 14404 (ASSERT_DUMPED_TEXT_EQ): New macro. 14405 (selftest::test_capture_of_dump_calls): Run all tests twice, with 14406 and then without optinfo enabled. Add uses of 14407 ASSERT_DUMPED_TEXT_EQ to all tests. Add test of nested scopes. 14408 * dumpfile.h: Update comment for the dump_* API. 14409 * optinfo-emit-json.cc 14410 (selftest::test_building_json_from_dump_calls): Update for new 14411 param for temp_dump_context ctor. 14412 * optinfo.cc (optinfo_item::optinfo_item): Remove "owned" param 14413 and "m_owned" field. 14414 (optinfo_item::~optinfo_item): Likewise. 14415 (optinfo::add_item): New member function. 14416 (optinfo::emit): Update comment. 14417 (optinfo::add_string): Delete. 14418 (optinfo::add_printf): Delete. 14419 (optinfo::add_printf_va): Delete. 14420 (optinfo::add_gimple_stmt): Delete. 14421 (optinfo::add_gimple_expr): Delete. 14422 (optinfo::add_tree): Delete. 14423 (optinfo::add_symtab_node): Delete. 14424 (optinfo::add_dec): Delete. 14425 * optinfo.h (class dump_context): New forward decl. 14426 (optinfo::add_item): New decl. 14427 (optinfo::add_string): Delete. 14428 (optinfo::add_printf): Delete. 14429 (optinfo::add_printf_va): Delete. 14430 (optinfo::add_gimple_stmt): Delete. 14431 (optinfo::add_gimple_expr): Delete. 14432 (optinfo::add_tree): Delete. 14433 (optinfo::add_symtab_node): Delete. 14434 (optinfo::add_dec): Delete. 14435 (optinfo::add_poly_int): Delete. 14436 (optinfo_item::optinfo_item): Remove "owned" param. 14437 (class optinfo_item): Remove field "m_owned". 14438 144392018-07-31 Jozef Lawrynowicz <jozef.l@mittosystems.com> 14440 14441 PR middle-end/86705 14442 * gcc/cfgexpand.c (set_parm_rtl): Use the alignment of Pmode when 14443 MAX_SUPPORTED_STACK_ALIGNMENT would otherwise be exceeded by the 14444 requested variable alignment. 14445 (expand_one_ssa_partition): Likewise. 14446 (expand_one_var): Likewise. 14447 144482018-07-31 Richard Earnshaw <rearnsha@arm.com> 14449 14450 * config/pdp11/pdp11.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Redefine 14451 to speculation_safe_value_not_needed. 14452 144532018-07-31 Richard Earnshaw <rearnsha@arm.com> 14454 14455 * targhooks.h (speculation_safe_value_not_needed): New prototype. 14456 * targhooks.c (speculation_safe_value_not_needed): New function. 14457 * target.def (have_speculation_safe_value): Update documentation. 14458 * doc/tm.texi: Regenerated. 14459 144602018-07-31 Richard Earnshaw <rearnsha@arm.com> 14461 14462 * config/aarch64/iterators.md (ALLI_TI): New iterator. 14463 * config/aarch64/aarch64.md (despeculate_copy<ALLI_TI:mode>): New 14464 expand. 14465 (despeculate_copy<ALLI:mode>_insn): New insn. 14466 (despeculate_copyti_insn): New insn. 14467 (despeculate_simple<ALLI:mode>): New insn 14468 (despeculate_simpleti): New insn. 14469 * config/aarch64/aarch64.c (aarch64_speculation_safe_value): New 14470 function. 14471 (TARGET_SPECULATION_SAFE_VALUE): Redefine to 14472 aarch64_speculation_safe_value. 14473 (aarch64_print_operand): Handle const0_rtx in modifier 'H'. 14474 144752018-07-31 Richard Earnshaw <rearnsha@arm.com> 14476 14477 * config/aarch64/aarch64-speculation.cc: New file. 14478 * config/aarch64/aarch64-passes.def (pass_track_speculation): Add 14479 before pass_reorder_blocks. 14480 * config/aarch64/aarch64-protos.h (make_pass_track_speculation): Add 14481 prototype. 14482 * config/aarch64/aarch64.c (aarch64_conditional_register_usage): Fix 14483 X14 and X15 when tracking speculation. 14484 * config/aarch64/aarch64.md (register name constants): Add 14485 SPECULATION_TRACKER_REGNUM and SPECULATION_SCRATCH_REGNUM. 14486 (unspec): Add UNSPEC_SPECULATION_TRACKER. 14487 (speculation_barrier): New insn attribute. 14488 (cmp<mode>): Allow SP in comparisons. 14489 (speculation_tracker): New insn. 14490 (speculation_barrier): Add speculation_barrier attribute. 14491 * config/aarch64/t-aarch64: Add make rule for aarch64-speculation.o. 14492 * config.gcc (aarch64*-*-*): Add aarch64-speculation.o to extra_objs. 14493 * doc/invoke.texi (AArch64 Options): Document -mtrack-speculation. 14494 144952018-07-31 Richard Earnshaw <rearnsha@arm.com> 14496 14497 * config/aarch64/aarch64.md (cb<optab><mode>1): Disable when 14498 aarch64_track_speculation is true. 14499 (tb<optab><mode>1): Likewise. 14500 * config/aarch64/aarch64.c (aarch64_split_compare_regs): Do not 14501 generate CB[N]Z when tracking speculation. 14502 (aarch64_split_compare_and_swap): Likewise. 14503 (aarch64_split_atomic_op): Likewise. 14504 145052018-07-31 Richard Earnshaw <rearnsha@arm.com> 14506 14507 * config/aarch64/aarch64.opt (mtrack-speculation): New target option. 14508 145092018-07-31 Richard Earnshaw <rearnsha@arm.com> 14510 14511 * config/aarch64.md (unspecv): Add UNSPECV_SPECULAION_BARRIER. 14512 (speculation_barrier): New insn. 14513 145142018-07-31 Richard Earnshaw <rearnsha@arm.com> 14515 14516 * config/arm/unspecs.md (unspecv): Add VUNSPEC_SPECULATION_BARRIER. 14517 * config/arm/arm.md (speculation_barrier): New expand. 14518 (speculation_barrier_insn): New pattern. 14519 145202018-07-31 Richard Earnshaw <rearnsha@arm.com> 14521 14522 * builtin-types.def (BT_FN_PTR_PTR_VAR): New function type. 14523 (BT_FN_I1_I1_VAR, BT_FN_I2_I2_VAR, BT_FN_I4_I4_VAR): Likewise. 14524 (BT_FN_I8_I8_VAR, BT_FN_I16_I16_VAR): Likewise. 14525 * builtin-attrs.def (ATTR_NOVOPS_NOTHROW_LEAF_LIST): New attribute 14526 list. 14527 * builtins.def (BUILT_IN_SPECULATION_SAFE_VALUE_N): New builtin. 14528 (BUILT_IN_SPECULATION_SAFE_VALUE_PTR): New internal builtin. 14529 (BUILT_IN_SPECULATION_SAFE_VALUE_1): Likewise. 14530 (BUILT_IN_SPECULATION_SAFE_VALUE_2): Likewise. 14531 (BUILT_IN_SPECULATION_SAFE_VALUE_4): Likewise. 14532 (BUILT_IN_SPECULATION_SAFE_VALUE_8): Likewise. 14533 (BUILT_IN_SPECULATION_SAFE_VALUE_16): Likewise. 14534 * builtins.c (expand_speculation_safe_value): New function. 14535 (expand_builtin): Call it. 14536 * doc/cpp.texi: Document predefine __HAVE_SPECULATION_SAFE_VALUE. 14537 * doc/extend.texi: Document __builtin_speculation_safe_value. 14538 * doc/md.texi: Document "speculation_barrier" pattern. 14539 * doc/tm.texi.in: Pull in TARGET_SPECULATION_SAFE_VALUE and 14540 TARGET_HAVE_SPECULATION_SAFE_VALUE. 14541 * doc/tm.texi: Regenerated. 14542 * target.def (have_speculation_safe_value, speculation_safe_value): New 14543 hooks. 14544 * targhooks.c (default_have_speculation_safe_value): New function. 14545 (default_speculation_safe_value): New function. 14546 * targhooks.h (default_have_speculation_safe_value): Add prototype. 14547 (default_speculation_safe_value): Add prototype. 14548 145492018-07-31 David Malcolm <dmalcolm@redhat.com> 14550 14551 * dump-context.h (dump_context::dump_loc): New decl. 14552 * dumpfile.c (dump_context::dump_loc): New member function. 14553 (dump_context::dump_gimple_stmt_loc): Reimplement using dump_loc 14554 and dump_gimple_stmt. 14555 (dump_context::dump_gimple_expr_loc): Likewise, using 14556 dump_gimple_expr. 14557 (dump_context::dump_generic_expr_loc): Likewise, using 14558 dump_generic_expr. 14559 (dump_context::dump_printf_loc_va): Likewise, using 14560 dump_printf_va. 14561 (dump_context::begin_scope): Explicitly using the global function 14562 "dump_loc", rather than the member function. 14563 145642018-07-31 Martin Sebor <msebor@redhat.com> 14565 14566 PR tree-optimization/86741 14567 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid incomplete types. 14568 145692018-07-31 Andreas Krebbel <krebbel@linux.ibm.com> 14570 14571 * config/s390/s390.c (s390_expand_setmem): Make the unrolling to 14572 depend on whether prefetch instructions will be emitted or not. 14573 Use TARGET_SETMEM_PFD for checking whether prefetch instructions 14574 will be emitted or not. 14575 * config/s390/s390.h (TARGET_SETMEM_PREFETCH_DISTANCE) 14576 (TARGET_SETMEM_PFD): New macros. 14577 145782018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14579 14580 * tree-vectorizer.h (stmt_vec_info): Turn back into a typedef. 14581 (NULL_STMT_VEC_INFO): Delete. 14582 (stmt_vec_info::operator*): Likewise. 14583 (stmt_vec_info::operator gimple *): Likewise. 14584 * tree-vect-loop.c (vectorizable_reduction): Use NULL instead 14585 of NULL_STMT_VEC_INFO. 14586 * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. 14587 (vect_reassociating_reduction_p): Likewise. 14588 * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. 14589 (vectorizable_store): Likewise. 14590 * tree-vectorizer.c (vec_info::set_vinfo_for_stmt): Likewise. 14591 (vec_info::free_stmt_vec_infos): Likewise. 14592 145932018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14594 14595 * tree-vectorizer.h (vect_stmt_in_region_p): Delete. 14596 * tree-vectorizer.c (vect_stmt_in_region_p): Likewise. 14597 145982018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14599 14600 * tree-vectorizer.h (vec_info::new_vinfo_for_stmt) 14601 (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) 14602 (vec_info::free_stmt_vec_info): New private member functions. 14603 (set_stmt_vec_info_vec, free_stmt_vec_infos, vinfo_for_stmt) 14604 (set_vinfo_for_stmt, new_stmt_vec_info, free_stmt_vec_info): Delete. 14605 * tree-parloops.c (gather_scalar_reductions): Remove calls to 14606 set_stmt_vec_info_vec and free_stmt_vec_infos. 14607 * tree-vect-loop.c (_loop_vec_info): Remove call to 14608 set_stmt_vec_info_vec. 14609 * tree-vect-stmts.c (new_stmt_vec_info, set_stmt_vec_info_vec) 14610 (free_stmt_vec_infos, free_stmt_vec_info): Delete in favor of... 14611 * tree-vectorizer.c (vec_info::new_stmt_vec_info) 14612 (vec_info::set_vinfo_for_stmt, vec_info::free_stmt_vec_infos) 14613 (vec_info::free_stmt_vec_info): ...these new functions. Remove 14614 assignments in {vec_info::,}new_stmt_vec_info that are redundant 14615 with the clearing in the xcalloc. 14616 (stmt_vec_info_vec): Delete. 14617 (vec_info::vec_info): Don't call set_stmt_vec_info_vec. 14618 (vectorize_loops): Likewise. 14619 (vec_info::~vec_info): Remove argument from call to 14620 free_stmt_vec_infos. 14621 (vec_info::add_stmt): Remove vinfo argument from call to 14622 new_stmt_vec_info. 14623 146242018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14625 14626 * tree-vectorizer.h (free_stmt_vec_info): Take a stmt_vec_info 14627 rather than a gimple stmt. 14628 * tree-vect-stmts.c (free_stmt_vec_info): Likewise. Don't free 14629 information for pattern statements when passed the original 14630 statement; instead wait to be passed the pattern statement itself. 14631 Don't call set_vinfo_for_stmt here. 14632 (free_stmt_vec_infos): Update call to free_stmt_vec_info. 14633 * tree-vect-loop.c (_loop_vec_info::~loop_vec_info): Don't free 14634 stmt_vec_infos here. 14635 * tree-vect-slp.c (_bb_vec_info::~bb_vec_info): Likewise. 14636 * tree-vectorizer.c (vec_info::remove_stmt): Nullify the statement's 14637 stmt_vec_infos entry. 14638 146392018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14640 14641 * tree-vectorizer.h (vec_info::replace_stmt): Declare. 14642 * tree-vectorizer.c (vec_info::replace_stmt): New function. 14643 * tree-vect-slp.c (vect_remove_slp_scalar_calls): Use it. 14644 * tree-vect-stmts.c (vectorizable_call): Likewise. 14645 (vectorizable_simd_clone_call): Likewise. 14646 146472018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14648 14649 * tree-vectorizer.h (vec_info::remove_stmt): Declare. 14650 * tree-vectorizer.c (vec_info::remove_stmt): New function. 14651 * tree-vect-loop-manip.c (vect_set_loop_condition): Use it. 14652 * tree-vect-loop.c (vect_transform_loop): Likewise. 14653 * tree-vect-slp.c (vect_schedule_slp): Likewise. 14654 * tree-vect-stmts.c (vect_remove_stores): Likewise. 14655 146562018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14657 14658 * tree-vectorizer.h (vec_info::lookup_dr): New member function. 14659 (vect_dr_stmt): Delete. 14660 * tree-vectorizer.c (vec_info::lookup_dr): New function. 14661 * tree-vect-loop-manip.c (vect_update_inits_of_drs): Use it instead 14662 of DR_VECT_AUX. 14663 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) 14664 (vect_analyze_data_ref_dependence, vect_record_base_alignments) 14665 (vect_verify_datarefs_alignment, vect_peeling_supportable) 14666 (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) 14667 (vect_analyze_data_refs): Likewise. 14668 (vect_slp_analyze_data_ref_dependence): Likewise. Take a vec_info 14669 argument. 14670 (vect_find_same_alignment_drs): Likewise. 14671 (vect_slp_analyze_node_dependences): Update calls accordingly. 14672 (vect_analyze_data_refs_alignment): Likewise. Use vec_info::lookup_dr 14673 instead of DR_VECT_AUX. 14674 (vect_get_peeling_costs_all_drs): Take a loop_vec_info instead 14675 of a vector data references. Use vec_info::lookup_dr instead of 14676 DR_VECT_AUX. 14677 (vect_peeling_hash_get_lowest_cost): Update calls accordingly. 14678 (vect_enhance_data_refs_alignment): Likewise. Use vec_info::lookup_dr 14679 instead of DR_VECT_AUX. 14680 146812018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14682 14683 * tree-vectorizer.h (_loop_vec_info::unaligned_dr): Change to 14684 dr_vec_info. 14685 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update 14686 accordingly. 14687 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 14688 * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. 14689 (vect_gen_prolog_loop_niters): Likewise. 14690 146912018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14692 14693 * tree-vectorizer.h (set_dr_misalignment, dr_misalignment) 14694 (DR_TARGET_ALIGNMENT, aligned_access_p, known_alignment_for_access_p) 14695 (vect_known_alignment_in_bytes, vect_dr_behavior) 14696 (vect_get_scalar_dr_size): Take references as dr_vec_infos 14697 instead of data_references. Update calls to other routines for 14698 which the same change has been made. 14699 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Take 14700 dr_vec_infos instead of stmt_vec_infos. 14701 (vect_analyze_data_ref_dependence): Update call accordingly. 14702 (vect_slp_analyze_data_ref_dependence) 14703 (vect_record_base_alignments): Use DR_VECT_AUX. 14704 (vect_calculate_target_alignment, vect_compute_data_ref_alignment) 14705 (vect_update_misalignment_for_peel, verify_data_ref_alignment) 14706 (vector_alignment_reachable_p, vect_get_data_access_cost) 14707 (vect_peeling_supportable, vect_analyze_group_access_1) 14708 (vect_analyze_group_access, vect_analyze_data_ref_access) 14709 (vect_vfa_segment_size, vect_vfa_access_size, vect_vfa_align) 14710 (vect_compile_time_alias, vect_small_gap_p) 14711 (vectorizable_with_step_bound_p, vect_duplicate_ssa_name_ptr_info): 14712 (vect_supportable_dr_alignment): Take references as dr_vec_infos 14713 instead of data_references. Update calls to other routines for 14714 which the same change has been made. 14715 (vect_verify_datarefs_alignment, vect_get_peeling_costs_all_drs) 14716 (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) 14717 (vect_slp_analyze_and_verify_node_alignment) 14718 (vect_analyze_data_ref_accesses, vect_prune_runtime_alias_test_list) 14719 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) 14720 (vect_setup_realignment): Use dr_vec_infos. Update calls after 14721 above changes. 14722 (_vect_peel_info::dr): Replace with... 14723 (_vect_peel_info::dr_info): ...this new field. 14724 (vect_peeling_hash_get_most_frequent) 14725 (vect_peeling_hash_choose_best_peeling): Update accordingly. 14726 (vect_peeling_hash_get_lowest_cost): 14727 (vect_enhance_data_refs_alignment): Likewise. Update calls to other 14728 routines for which the same change has been made. 14729 (vect_peeling_hash_insert): Likewise. Take a dr_vec_info instead of a 14730 data_reference. 14731 * tree-vect-loop-manip.c (get_misalign_in_elems) 14732 (vect_gen_prolog_loop_niters): Use dr_vec_infos. Update calls after 14733 above changes. 14734 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 14735 * tree-vect-stmts.c (vect_get_store_cost, vect_get_load_cost) 14736 (vect_truncate_gather_scatter_offset, compare_step_with_zero) 14737 (get_group_load_store_type, get_negative_load_store_type) 14738 (vect_get_data_ptr_increment, vectorizable_store) 14739 (vectorizable_load): Likewise. 14740 (ensure_base_align): Take a dr_vec_info instead of a data_reference. 14741 Update calls to other routines for which the same change has been made. 14742 147432018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14744 14745 * tree-vectorizer.h (vec_info::move_dr): New member function. 14746 (dataref_aux): Rename to... 14747 (dr_vec_info): ...this and add "dr" and "stmt" fields. 14748 (_stmt_vec_info::dr_aux): Update accordingly. 14749 (_stmt_vec_info::data_ref_info): Delete. 14750 (STMT_VINFO_GROUPED_ACCESS, DR_GROUP_FIRST_ELEMENT) 14751 (DR_GROUP_NEXT_ELEMENT, DR_GROUP_SIZE, DR_GROUP_STORE_COUNT) 14752 (DR_GROUP_GAP, DR_GROUP_SAME_DR_STMT, REDUC_GROUP_FIRST_ELEMENT): 14753 (REDUC_GROUP_NEXT_ELEMENT, REDUC_GROUP_SIZE): Use dr_aux.dr instead 14754 of data_ref. 14755 (STMT_VINFO_DATA_REF): Likewise. Turn into an lvalue. 14756 (STMT_VINFO_DR_INFO): New macro. 14757 (DR_VECT_AUX): Use STMT_VINFO_DR_INKFO and vect_dr_stmt. 14758 (set_dr_misalignment): Update after rename of dataref_aux. 14759 (vect_dr_stmt): Move earlier in file. Return dr_aux.stmt. 14760 * tree-vect-stmts.c (new_stmt_vec_info): Remove redundant 14761 initialization of STMT_VINFO_DATA_REF. 14762 * tree-vectorizer.c (vec_info::move_dr): New function. 14763 * tree-vect-patterns.c (vect_recog_bool_pattern) 14764 (vect_recog_mask_conversion_pattern) 14765 (vect_recog_gather_scatter_pattern): Use it. 14766 * tree-vect-data-refs.c (vect_analyze_data_refs): Initialize 14767 the "dr" and "stmt" fields of dr_vec_info instead of 14768 STMT_VINFO_DATA_REF. 14769 147702018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14771 14772 * tree-vectorizer.h (_stmt_vec_info::pattern_stmt_p): New field. 14773 (is_pattern_stmt_p): Use it. 14774 * tree-vect-patterns.c (vect_init_pattern_stmt): Set pattern_stmt_p 14775 on pattern statements. 14776 147772018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14778 14779 * tree-vect-patterns.c (vect_mark_pattern_stmts): Take the 14780 original stmt as a stmt_vec_info rather than a gimple stmt. 14781 (vect_pattern_recog_1): Take the statement directly as a 14782 stmt_vec_info, rather than via a gimple_stmt_iterator. 14783 Update call to vect_mark_pattern_stmts. 14784 (vect_pattern_recog): Update calls accordingly. 14785 147862018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14787 14788 * tree-vectorizer.h (vect_get_vec_defs_for_stmt_copy) 14789 (vect_get_vec_def_for_stmt_copy): Take a vec_info rather than 14790 a vect_def_type for the first argument. 14791 * tree-vect-stmts.c (vect_get_vec_defs_for_stmt_copy): Likewise. 14792 (vect_get_vec_def_for_stmt_copy): Likewise. Return the original 14793 operand if it isn't defined by a vectorized statement. 14794 (vect_build_gather_load_calls): Remove the mask_dt argument and 14795 update calls to vect_get_vec_def_for_stmt_copy. 14796 (vectorizable_bswap): Likewise the dt argument. 14797 (vectorizable_call): Update calls to vectorizable_bswap and 14798 vect_get_vec_def_for_stmt_copy. 14799 (vectorizable_simd_clone_call, vectorizable_assignment) 14800 (vectorizable_shift, vectorizable_operation, vectorizable_condition) 14801 (vectorizable_comparison): Update calls to 14802 vect_get_vec_def_for_stmt_copy. 14803 (vectorizable_store): Likewise. Remove now-unnecessary calls to 14804 vect_is_simple_use. 14805 (vect_get_loop_based_defs): Remove dt argument and update call 14806 to vect_get_vec_def_for_stmt_copy. 14807 (vectorizable_conversion): Update calls to vect_get_loop_based_defs 14808 and vect_get_vec_def_for_stmt_copy. 14809 (vectorizable_load): Update calls to vect_build_gather_load_calls 14810 and vect_get_vec_def_for_stmt_copy. 14811 * tree-vect-loop.c (vect_create_epilog_for_reduction) 14812 (vectorizable_reduction, vectorizable_live_operation): Update calls 14813 to vect_get_vec_def_for_stmt_copy. 14814 148152018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14816 14817 * tree-vect-data-refs.c (vect_record_base_alignment): Replace vec_info 14818 and gimple stmt arguments with a stmt_vec_info. 14819 (vect_record_base_alignments): Update calls accordingly. 14820 * tree-vect-slp.c (vect_record_max_nunits): Replace vec_info 14821 and gimple stmt arguments with a stmt_vec_info. 14822 (vect_build_slp_tree_1): Remove vinfo argument and update call 14823 to vect_record_max_nunits. 14824 (vect_build_slp_tree_2): Update calls to vect_build_slp_tree_1 14825 and vect_record_max_nunits. 14826 148272018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14828 14829 * tree-vectorizer.h (nested_in_vect_loop_p): Move further down 14830 file and take a stmt_vec_info instead of a gimple stmt. 14831 (supportable_widening_operation, vect_finish_replace_stmt) 14832 (vect_finish_stmt_generation, vect_get_store_rhs) 14833 (vect_get_vec_def_for_operand_1, vect_get_vec_def_for_operand) 14834 (vect_get_vec_defs, vect_init_vector, vect_transform_stmt) 14835 (vect_remove_stores, vect_analyze_stmt, vectorizable_condition) 14836 (vect_get_smallest_scalar_type, vect_check_gather_scatter) 14837 (vect_create_data_ref_ptr, bump_vector_ptr) 14838 (vect_permute_store_chain, vect_setup_realignment) 14839 (vect_transform_grouped_load, vect_record_grouped_load_vectors) 14840 (vect_create_addr_base_for_vector_ref, vectorizable_live_operation) 14841 (vectorizable_reduction, vectorizable_induction) 14842 (get_initial_def_for_reduction, is_simple_and_all_uses_invariant) 14843 (vect_get_place_in_interleaving_chain): Take stmt_vec_infos rather 14844 than gimple stmts as arguments. 14845 * tree-vect-data-refs.c (vect_get_smallest_scalar_type) 14846 (vect_preserves_scalar_order_p, vect_slp_analyze_node_dependences) 14847 (can_group_stmts_p, vect_check_gather_scatter) 14848 (vect_create_addr_base_for_vector_ref, vect_create_data_ref_ptr) 14849 (bump_vector_ptr, vect_permute_store_chain, vect_setup_realignment) 14850 (vect_permute_load_chain, vect_shift_permute_load_chain) 14851 (vect_transform_grouped_load) 14852 (vect_record_grouped_load_vectors): Likewise. 14853 * tree-vect-loop.c (vect_fixup_reduc_chain) 14854 (get_initial_def_for_reduction, vect_create_epilog_for_reduction) 14855 (vectorize_fold_left_reduction, is_nonwrapping_integer_induction) 14856 (vectorizable_reduction, vectorizable_induction) 14857 (vectorizable_live_operation, vect_loop_kill_debug_uses): Likewise. 14858 * tree-vect-patterns.c (type_conversion_p, adjust_bool_stmts) 14859 (vect_get_load_store_mask): Likewise. 14860 * tree-vect-slp.c (vect_get_place_in_interleaving_chain) 14861 (vect_analyze_slp_instance, vect_mask_constant_operand_p): Likewise. 14862 * tree-vect-stmts.c (vect_mark_relevant) 14863 (is_simple_and_all_uses_invariant) 14864 (exist_non_indexing_operands_for_use_p, process_use) 14865 (vect_init_vector_1, vect_init_vector, vect_get_vec_def_for_operand_1) 14866 (vect_get_vec_def_for_operand, vect_get_vec_defs) 14867 (vect_finish_stmt_generation_1, vect_finish_replace_stmt) 14868 (vect_finish_stmt_generation, vect_truncate_gather_scatter_offset) 14869 (compare_step_with_zero, vect_get_store_rhs, get_group_load_store_type) 14870 (get_negative_load_store_type, get_load_store_type) 14871 (vect_check_load_store_mask, vect_check_store_rhs) 14872 (vect_build_gather_load_calls, vect_get_strided_load_store_ops) 14873 (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) 14874 (vect_create_vectorized_demotion_stmts, vectorizable_conversion) 14875 (vectorizable_assignment, vectorizable_shift, vectorizable_operation) 14876 (get_group_alias_ptr_type, vectorizable_store, hoist_defs_of_uses) 14877 (vectorizable_load, vectorizable_condition, vectorizable_comparison) 14878 (vect_analyze_stmt, vect_transform_stmt, vect_remove_stores) 14879 (supportable_widening_operation): Likewise. 14880 148812018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14882 14883 * tree-vect-data-refs.c (vect_describe_gather_scatter_call): Take 14884 a stmt_vec_info instead of a gcall. 14885 (vect_check_gather_scatter): Update call accordingly. 14886 * tree-vect-loop-manip.c (iv_phi_p): Take a stmt_vec_info instead 14887 of a gphi. 14888 (vect_can_advance_ivs_p, vect_update_ivs_after_vectorizer) 14889 (slpeel_update_phi_nodes_for_loops):): Update calls accordingly. 14890 * tree-vect-loop.c (vect_transform_loop_stmt): Take a stmt_vec_info 14891 instead of a gimple stmt. 14892 (vect_transform_loop): Update calls accordingly. 14893 * tree-vect-slp.c (vect_split_slp_store_group): Take and return 14894 stmt_vec_infos instead of gimple stmts. 14895 (vect_analyze_slp_instance): Update use accordingly. 14896 * tree-vect-stmts.c (read_vector_array, write_vector_array) 14897 (vect_clobber_variable, vect_stmt_relevant_p, permute_vec_elements) 14898 (vect_use_strided_gather_scatters_p, vect_build_all_ones_mask) 14899 (vect_build_zero_merge_argument, vect_get_gather_scatter_ops) 14900 (vect_gen_widened_results_half, vect_get_loop_based_defs) 14901 (vect_create_vectorized_promotion_stmts, can_vectorize_live_stmts): 14902 Take a stmt_vec_info instead of a gimple stmt and pass stmt_vec_infos 14903 down to subroutines. 14904 149052018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14906 14907 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Change the type 14908 of the worklist from a vector of gimple stmts to a vector of 14909 stmt_vec_infos. 14910 * tree-vect-stmts.c (vect_mark_relevant, process_use) 14911 (vect_mark_stmts_to_be_vectorized): Likewise 14912 149132018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14914 14915 * tree-vect-loop.c (vect_analyze_loop_operations): Look up the 14916 statement before passing it to vect_analyze_stmt. 14917 (vect_create_epilog_for_reduction): Use a stmt_vec_info to walk 14918 the chain of phi vector definitions. Track the exit phi via its 14919 stmt_vec_info. 14920 (vectorizable_reduction): Set cond_stmt_vinfo directly from the 14921 STMT_VINFO_REDUC_DEF. 14922 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Use 14923 stmt_vec_infos to handle the statement chains. 14924 (vect_get_slp_defs): Record the first statement in the node 14925 using a stmt_vec_info. 14926 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Look up 14927 statements here and pass their stmt_vec_info down to subroutines. 14928 (vect_init_vector_1): Hoist call to vinfo_for_stmt and pass it 14929 down to vect_finish_stmt_generation. 14930 (vect_init_vector, vect_get_vec_defs, vect_finish_replace_stmt) 14931 (vect_finish_stmt_generation): Call vinfo_for_stmt and pass 14932 stmt_vec_infos to subroutines. 14933 (vect_remove_stores): Use stmt_vec_infos to handle the statement 14934 chains. 14935 149362018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14937 14938 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): 14939 (vect_check_gather_scatter, vect_create_data_ref_ptr, bump_vector_ptr) 14940 (vect_permute_store_chain, vect_setup_realignment) 14941 (vect_permute_load_chain, vect_shift_permute_load_chain) 14942 (vect_transform_grouped_load): Use stmt_vec_info rather than gimple 14943 stmts internally, and when passing values to other vectorizer routines. 14944 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. 14945 * tree-vect-loop.c (vect_analyze_scalar_cycles_1) 14946 (vect_analyze_loop_operations, get_initial_def_for_reduction) 14947 (vect_create_epilog_for_reduction, vectorize_fold_left_reduction) 14948 (vectorizable_reduction, vectorizable_induction) 14949 (vectorizable_live_operation, vect_transform_loop_stmt) 14950 (vect_transform_loop): Likewise. 14951 * tree-vect-patterns.c (vect_reassociating_reduction_p) 14952 (vect_recog_widen_op_pattern, vect_recog_mixed_size_cond_pattern) 14953 (vect_recog_bool_pattern, vect_recog_gather_scatter_pattern): Likewise. 14954 * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. 14955 (vect_slp_analyze_node_operations_1): Likewise. 14956 * tree-vect-stmts.c (vect_mark_relevant, process_use) 14957 (exist_non_indexing_operands_for_use_p, vect_init_vector_1) 14958 (vect_mark_stmts_to_be_vectorized, vect_get_vec_def_for_operand) 14959 (vect_finish_stmt_generation_1, get_group_load_store_type) 14960 (get_load_store_type, vect_build_gather_load_calls) 14961 (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) 14962 (vect_create_vectorized_demotion_stmts, vectorizable_conversion) 14963 (vectorizable_assignment, vectorizable_shift, vectorizable_operation) 14964 (vectorizable_store, vectorizable_load, vectorizable_condition) 14965 (vectorizable_comparison, vect_analyze_stmt, vect_transform_stmt) 14966 (supportable_widening_operation): Likewise. 14967 (vect_get_vector_types_for_stmt): Likewise. 14968 * tree-vectorizer.h (vect_dr_behavior): Likewise. 14969 149702018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14971 14972 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) 14973 (vect_slp_analyze_node_dependences, vect_analyze_data_ref_accesses) 14974 (vect_permute_store_chain, vect_permute_load_chain) 14975 (vect_shift_permute_load_chain, vect_transform_grouped_load): Avoid 14976 repeated stmt_vec_info lookups. 14977 * tree-vect-loop-manip.c (vect_can_advance_ivs_p): Likewise. 14978 (vect_update_ivs_after_vectorizer): Likewise. 14979 * tree-vect-loop.c (vect_is_simple_reduction): Likewise. 14980 (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. 14981 * tree-vect-patterns.c (adjust_bool_stmts): Likewise. 14982 * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. 14983 (vect_bb_slp_scalar_cost): Likewise. 14984 * tree-vect-stmts.c (get_group_alias_ptr_type): Likewise. 14985 149862018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14987 14988 * tree-vect-data-refs.c (vect_check_gather_scatter): Pass the 14989 gcall rather than the generic gimple stmt to gimple_call_internal_fn. 14990 (vect_get_smallest_scalar_type, can_group_stmts_p): Use dyn_cast 14991 to get gassigns and gcalls, rather than operating on generc gimple 14992 stmts. 14993 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p) 14994 (vect_mark_stmts_to_be_vectorized, vectorizable_store) 14995 (vectorizable_load, vect_analyze_stmt): Likewise. 14996 * tree-vect-loop.c (vectorizable_reduction): Likewise gphi. 14997 149982018-07-31 Richard Sandiford <richard.sandiford@arm.com> 14999 15000 * tree-vectorizer.h (get_earlier_stmt, get_later_stmt): Take and 15001 return stmt_vec_infos rather than gimple stmts. Do not accept 15002 null arguments. 15003 (vect_find_last_scalar_stmt_in_slp): Return a stmt_vec_info instead 15004 of a gimple stmt. 15005 * tree-vect-slp.c (vect_find_last_scalar_stmt_in_slp): Likewise. 15006 Update use of get_later_stmt. 15007 (vect_get_constant_vectors): Update call accordingly. 15008 (vect_schedule_slp_instance): Likewise 15009 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Likewise. 15010 (vect_slp_analyze_instance_dependence): Likewise. 15011 (vect_preserves_scalar_order_p): Update use of get_earlier_stmt. 15012 150132018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15014 15015 * tree-vectorizer.h (stmt_info_for_cost::stmt): Replace with... 15016 (stmt_info_for_cost::stmt_info): ...this new field. 15017 (add_stmt_costs): Update accordingly. 15018 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) 15019 (vect_get_known_peeling_cost): Likewise. 15020 (vect_estimate_min_profitable_iters): Likewise. 15021 * tree-vect-stmts.c (record_stmt_cost): Likewise. 15022 150232018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15024 15025 * tree-vectorizer.h (_loop_vec_info::may_misalign_stmts): Change 15026 from an auto_vec<gimple *> to an auto_vec<stmt_vec_info>. 15027 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Update 15028 accordingly. 15029 * tree-vect-loop-manip.c (vect_create_cond_for_align_checks): Likewise. 15030 150312018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15032 15033 * tree-vectorizer.h (_stmt_vec_info::same_dr_stmt): Change from 15034 a gimple stmt to a stmt_vec_info. 15035 * tree-vect-stmts.c (vectorizable_load): Update accordingly. 15036 150372018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15038 15039 * tree-vectorizer.h (vec_info::grouped_stores): Change from 15040 an auto_vec<gimple *> to an auto_vec<stmt_vec_info>. 15041 (_loop_vec_info::reduction_chains): Likewise. 15042 * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): Update 15043 accordingly. 15044 * tree-vect-slp.c (vect_analyze_slp): Likewise. 15045 150462018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15047 15048 * tree-vectorizer.h (_stmt_vec_info::first_element): Change from 15049 a gimple stmt to a stmt_vec_info. 15050 (_stmt_vec_info::next_element): Likewise. 15051 * tree-vect-data-refs.c (vect_update_misalignment_for_peel) 15052 (vect_slp_analyze_and_verify_node_alignment) 15053 (vect_analyze_group_access_1, vect_analyze_group_access) 15054 (vect_small_gap_p, vect_prune_runtime_alias_test_list) 15055 (vect_create_data_ref_ptr, vect_record_grouped_load_vectors) 15056 (vect_supportable_dr_alignment): Update accordingly. 15057 * tree-vect-loop.c (vect_fixup_reduc_chain): Likewise. 15058 (vect_fixup_scalar_cycles_with_patterns, vect_is_slp_reduction) 15059 (vect_is_simple_reduction, vectorizable_reduction): Likewise. 15060 * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. 15061 * tree-vect-slp.c (vect_build_slp_tree_1) 15062 (vect_attempt_slp_rearrange_stmts, vect_supported_load_permutation_p) 15063 (vect_split_slp_store_group, vect_analyze_slp_instance) 15064 (vect_analyze_slp, vect_transform_slp_perm_load): Likewise. 15065 * tree-vect-stmts.c (vect_model_store_cost, vect_model_load_cost) 15066 (get_group_load_store_type, get_load_store_type) 15067 (get_group_alias_ptr_type, vectorizable_store, vectorizable_load) 15068 (vect_transform_stmt, vect_remove_stores): Likewise. 15069 150702018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15071 15072 * tree-vectorizer.h (vect_dr_stmt): Return a stmt_vec_info rather 15073 than a gimple stmt. 15074 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) 15075 (vect_slp_analyze_data_ref_dependence, vect_record_base_alignments) 15076 (vect_calculate_target_alignmentm, vect_compute_data_ref_alignment) 15077 (vect_update_misalignment_for_peel, vect_verify_datarefs_alignment) 15078 (vector_alignment_reachable_p, vect_get_data_access_cost) 15079 (vect_get_peeling_costs_all_drs, vect_peeling_hash_get_lowest_cost) 15080 (vect_peeling_supportable, vect_enhance_data_refs_alignment) 15081 (vect_find_same_alignment_drs, vect_analyze_data_refs_alignment) 15082 (vect_analyze_group_access_1, vect_analyze_group_access) 15083 (vect_analyze_data_ref_access, vect_analyze_data_ref_accesses) 15084 (vect_vfa_access_size, vect_small_gap_p, vect_analyze_data_refs) 15085 (vect_supportable_dr_alignment): Remove vinfo_for_stmt from the 15086 result of vect_dr_stmt and use the stmt_vec_info instead of 15087 the associated gimple stmt. 15088 * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. 15089 (vect_gen_prolog_loop_niters): Likewise. 15090 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 15091 150922018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15093 15094 * tree-vectorizer.h (_slp_tree::stmts): Change from a vec<gimple *> 15095 to a vec<stmt_vec_info>. 15096 * tree-vect-slp.c (vect_free_slp_tree): Update accordingly. 15097 (vect_create_new_slp_node): Take a vec<gimple *> instead of a 15098 vec<stmt_vec_info>. 15099 (_slp_oprnd_info::def_stmts): Change from a vec<gimple *> 15100 to a vec<stmt_vec_info>. 15101 (bst_traits::value_type, bst_traits::value_type): Likewise. 15102 (bst_traits::hash): Update accordingly. 15103 (vect_get_and_check_slp_defs): Change the stmts parameter from 15104 a vec<gimple *> to a vec<stmt_vec_info>. 15105 (vect_two_operations_perm_ok_p, vect_build_slp_tree_1): Likewise. 15106 (vect_build_slp_tree): Likewise. 15107 (vect_build_slp_tree_2): Likewise. Update uses of 15108 SLP_TREE_SCALAR_STMTS. 15109 (vect_print_slp_tree): Update uses of SLP_TREE_SCALAR_STMTS. 15110 (vect_mark_slp_stmts, vect_mark_slp_stmts_relevant) 15111 (vect_slp_rearrange_stmts, vect_attempt_slp_rearrange_stmts) 15112 (vect_supported_load_permutation_p, vect_find_last_scalar_stmt_in_slp) 15113 (vect_detect_hybrid_slp_stmts, vect_slp_analyze_node_operations_1) 15114 (vect_slp_analyze_node_operations, vect_slp_analyze_operations) 15115 (vect_bb_slp_scalar_cost, vect_slp_analyze_bb_1) 15116 (vect_get_constant_vectors, vect_get_slp_defs) 15117 (vect_transform_slp_perm_load, vect_schedule_slp_instance) 15118 (vect_remove_slp_scalar_calls, vect_schedule_slp): Likewise. 15119 (vect_analyze_slp_instance): Build up a vec of stmt_vec_infos 15120 instead of gimple stmts. 15121 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Change 15122 the stores parameter for a vec<gimple *> to a vec<stmt_vec_info>. 15123 (vect_slp_analyze_instance_dependence): Update uses of 15124 SLP_TREE_SCALAR_STMTS. 15125 (vect_slp_analyze_and_verify_node_alignment): Likewise. 15126 (vect_slp_analyze_and_verify_instance_alignment): Likewise. 15127 * tree-vect-loop.c (neutral_op_for_slp_reduction): Likewise. 15128 (get_initial_defs_for_reduction): Likewise. 15129 (vect_create_epilog_for_reduction): Likewise. 15130 (vectorize_fold_left_reduction): Likewise. 15131 * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise. 15132 (vect_model_simple_cost, vectorizable_shift, vectorizable_load) 15133 (can_vectorize_live_stmts): Likewise. 15134 151352018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15136 15137 * tree-vectorizer.h (_loop_vec_info::reductions): Change from an 15138 auto_vec<gimple *> to an auto_vec<stmt_vec_info>. 15139 (vect_force_simple_reduction): Take and return stmt_vec_infos rather 15140 than gimple stmts. 15141 * tree-parloops.c (valid_reduction_p): Take a stmt_vec_info instead 15142 of a gimple stmt. 15143 (gather_scalar_reductions): Update after above interface changes. 15144 * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Likewise. 15145 (vect_is_simple_reduction): Take and return stmt_vec_infos rather 15146 than gimple stmts. 15147 (vect_force_simple_reduction): Likewise. 15148 * tree-vect-patterns.c (vect_pattern_recog_1): Update use of 15149 LOOP_VINFO_REDUCTIONS. 15150 * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. 15151 151522018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15153 15154 * tree-vectorizer.h (_stmt_vec_info::reduc_def): Change from 15155 a gimple stmt to a stmt_vec_info. 15156 * tree-vect-loop.c (vect_active_double_reduction_p) 15157 (vect_force_simple_reduction, vectorizable_reduction): Update 15158 accordingly. 15159 151602018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15161 15162 * tree-vectorizer.h (_slp_tree::vec_stmts): Change from a 15163 vec<gimple *> to a vec<stmt_vec_info>. 15164 * tree-vect-loop.c (vect_create_epilog_for_reduction): Change 15165 the reduction_phis argument from a vec<gimple *> to a 15166 vec<stmt_vec_info>. 15167 (vectorizable_reduction): Likewise the phis local variable that 15168 is passed to vect_create_epilog_for_reduction. Update for new type 15169 of SLP_TREE_VEC_STMTS. 15170 (vectorizable_induction): Update for new type of SLP_TREE_VEC_STMTS. 15171 (vectorizable_live_operation): Likewise. 15172 * tree-vect-slp.c (vect_get_slp_vect_defs): Likewise. 15173 (vect_transform_slp_perm_load, vect_schedule_slp_instance): Likewise. 15174 151752018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15176 15177 * tree-vectorizer.h (_stmt_vec_info::vectorized_stmt): Change from 15178 a gimple stmt to a stmt_vec_info. 15179 (vectorizable_condition, vectorizable_live_operation) 15180 (vectorizable_reduction, vectorizable_induction): Pass back the 15181 vectorized statement as a stmt_vec_info. 15182 * tree-vect-data-refs.c (vect_record_grouped_load_vectors): Update 15183 use of STMT_VINFO_VEC_STMT. 15184 * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise, 15185 accumulating the inner phis that feed the STMT_VINFO_VEC_STMT 15186 as stmt_vec_infos rather than gimple stmts. 15187 (vectorize_fold_left_reduction): Change vec_stmt from a gimple stmt 15188 to a stmt_vec_info. 15189 (vectorizable_live_operation): Likewise. 15190 (vectorizable_reduction, vectorizable_induction): Likewise, 15191 updating use of STMT_VINFO_VEC_STMT. 15192 * tree-vect-stmts.c (vect_get_vec_def_for_operand_1): Update use 15193 of STMT_VINFO_VEC_STMT. 15194 (vect_build_gather_load_calls, vectorizable_bswap, vectorizable_call) 15195 (vectorizable_simd_clone_call, vectorizable_conversion) 15196 (vectorizable_assignment, vectorizable_shift, vectorizable_operation) 15197 (vectorizable_store, vectorizable_load, vectorizable_condition) 15198 (vectorizable_comparison, can_vectorize_live_stmts): Change vec_stmt 15199 from a gimple stmt to a stmt_vec_info. 15200 (vect_transform_stmt): Update use of STMT_VINFO_VEC_STMT. Pass a 15201 pointer to a stmt_vec_info to the vectorizable_* routines. 15202 152032018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15204 15205 * tree-vectorizer.h (_stmt_vec_info::related_stmt): Change from 15206 a gimple stmt to a stmt_vec_info. 15207 (is_pattern_stmt_p): Update accordingly. 15208 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Likewise. 15209 (vect_record_grouped_load_vectors): Likewise. 15210 * tree-vect-loop.c (vect_determine_vf_for_stmt): Likewise. 15211 (vect_fixup_reduc_chain, vect_update_vf_for_slp): Likewise. 15212 (vect_model_reduction_cost): Likewise. 15213 (vect_create_epilog_for_reduction): Likewise. 15214 (vectorizable_reduction, vectorizable_induction): Likewise. 15215 * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. 15216 Return the stmt_vec_info for the pattern statement. 15217 (vect_set_pattern_stmt): Update use of STMT_VINFO_RELATED_STMT. 15218 (vect_split_statement, vect_mark_pattern_stmts): Likewise. 15219 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. 15220 (vect_detect_hybrid_slp, vect_get_slp_defs): Likewise. 15221 * tree-vect-stmts.c (vect_mark_relevant): Likewise. 15222 (vect_get_vec_def_for_operand_1, vectorizable_call): Likewise. 15223 (vectorizable_simd_clone_call, vect_analyze_stmt, new_stmt_vec_info) 15224 (free_stmt_vec_info, vect_is_simple_use): Likewise. 15225 152262018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15227 15228 * tree-vectorizer.h (vect_finish_replace_stmt): Return a stmt_vec_info 15229 (vect_finish_stmt_generation): Likewise. 15230 * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. 15231 (vect_finish_replace_stmt, vect_finish_stmt_generation): Likewise. 15232 (vect_build_gather_load_calls): Use the return value of the above 15233 functions instead of a separate call to vinfo_for_stmt. Use narrow 15234 scopes for the input gimple stmt and wider scopes for the associated 15235 stmt_vec_info. Use vec_info::lookup_def when setting these 15236 stmt_vec_infos from an SSA_NAME definition. 15237 (vectorizable_bswap, vectorizable_call, vectorizable_simd_clone_call) 15238 (vect_create_vectorized_demotion_stmts, vectorizable_conversion) 15239 (vectorizable_assignment, vectorizable_shift, vectorizable_operation) 15240 (vectorizable_store, vectorizable_load, vectorizable_condition) 15241 (vectorizable_comparison): Likewise. 15242 * tree-vect-loop.c (vectorize_fold_left_reduction): Likewise. 15243 (vectorizable_reduction): Likewise. 15244 152452018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15246 15247 * tree-vectorizer.h (vect_is_simple_use): Add an optional 15248 stmt_vec_info * parameter before the optional gimple **. 15249 * tree-vect-stmts.c (vect_is_simple_use): Likewise. 15250 (process_use, vect_get_vec_def_for_operand_1): Update callers. 15251 (vect_get_vec_def_for_operand, vectorizable_shift): Likewise. 15252 * tree-vect-loop.c (vectorizable_reduction): Likewise. 15253 (vectorizable_live_operation): Likewise. 15254 * tree-vect-patterns.c (type_conversion_p): Likewise. 15255 (vect_look_through_possible_promotion): Likewise. 15256 (vect_recog_rotate_pattern): Likewise. 15257 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. 15258 152592018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15260 15261 * tree-vectorizer.h (stmt_vec_info): Temporarily change from 15262 a typedef to a wrapper class. 15263 (NULL_STMT_VEC_INFO): New macro. 15264 (vec_info::stmt_infos): Change to vec<stmt_vec_info>. 15265 (stmt_vec_info::operator*): New function. 15266 (stmt_vec_info::operator gimple *): Likewise. 15267 (set_vinfo_for_stmt): Use NULL_STMT_VEC_INFO. 15268 (add_stmt_costs): Likewise. 15269 * tree-vect-loop-manip.c (iv_phi_p): Likewise. 15270 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost) 15271 (vect_get_known_peeling_cost): Likewise. 15272 (vect_estimate_min_profitable_iters): Likewise. 15273 * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. 15274 * tree-vect-slp.c (vect_remove_slp_scalar_calls): Likewise. 15275 * tree-vect-stmts.c (vect_build_gather_load_calls): Likewise. 15276 (vectorizable_store, free_stmt_vec_infos): Likewise. 15277 (new_stmt_vec_info): Change return type of xcalloc to 15278 _stmt_vec_info *. 15279 152802018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15281 15282 * tree-vectorizer.h (vec_info::lookup_single_use): Declare. 15283 * tree-vectorizer.c (vec_info::lookup_single_use): New function. 15284 * tree-vect-loop.c (vectorizable_reduction): Use it instead of 15285 a single_imm_use-based sequence. 15286 * tree-vect-stmts.c (supportable_widening_operation): Likewise. 15287 152882018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15289 15290 * tree-vectorizer.h (vec_info::lookup_def): Declare. 15291 * tree-vectorizer.c (vec_info::lookup_def): New function. 15292 * tree-vect-patterns.c (vect_get_internal_def): Use it. 15293 (vect_widened_op_tree): Likewise. 15294 * tree-vect-stmts.c (vect_is_simple_use): Likewise. 15295 * tree-vect-loop.c (vect_analyze_loop_operations): Likewise. 15296 (vectorizable_reduction): Likewise. 15297 (vect_valid_reduction_input_p): Take a stmt_vec_info instead 15298 of a gimple *. 15299 (vect_is_slp_reduction): Update calls accordingly. Use 15300 vec_info::lookup_def. 15301 (vect_is_simple_reduction): Likewise 15302 * tree-vect-slp.c (vect_detect_hybrid_slp_1): Use vec_info::lookup_def. 15303 153042018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15305 15306 * tree-vectorizer.h (vec_info::lookup_stmt): Declare. 15307 * tree-vectorizer.c (vec_info::lookup_stmt): New function. 15308 * tree-vect-loop.c (vect_determine_vf_for_stmt): Use it instead 15309 of vinfo_for_stmt. 15310 (vect_determine_vectorization_factor, vect_analyze_scalar_cycles_1) 15311 (vect_compute_single_scalar_iteration_cost, vect_analyze_loop_form) 15312 (vect_update_vf_for_slp, vect_analyze_loop_operations) 15313 (vect_is_slp_reduction, vectorizable_induction) 15314 (vect_transform_loop_stmt, vect_transform_loop): Likewise. 15315 * tree-vect-patterns.c (vect_init_pattern_stmt): 15316 (vect_determine_min_output_precision_1, vect_determine_precisions) 15317 (vect_pattern_recog): Likewise. 15318 * tree-vect-stmts.c (vect_analyze_stmt, vect_transform_stmt): Likewise. 15319 * config/powerpcspe/powerpcspe.c (rs6000_density_test): Likewise. 15320 * config/rs6000/rs6000.c (rs6000_density_test): Likewise. 15321 * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Likewise. 15322 (vect_detect_hybrid_slp_1, vect_detect_hybrid_slp_2) 15323 (vect_detect_hybrid_slp): Likewise. Change the walk_stmt_info 15324 info field from a loop to a loop_vec_info. 15325 153262018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15327 15328 * tree-vectorizer.h (stmt_vec_info): Move typedef earlier in file. 15329 (vec_info::add_stmt): Declare. 15330 * tree-vectorizer.c (vec_info::add_stmt): New function. 15331 * tree-vect-data-refs.c (vect_create_data_ref_ptr): Use it. 15332 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Likewise. 15333 (vect_create_epilog_for_reduction, vectorizable_reduction): Likewise. 15334 (vectorizable_induction): Likewise. 15335 * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Likewise. 15336 * tree-vect-stmts.c (vect_finish_stmt_generation_1): Likewise. 15337 (vectorizable_simd_clone_call, vectorizable_store): Likewise. 15338 (vectorizable_load): Likewise. 15339 * tree-vect-patterns.c (vect_init_pattern_stmt): Likewise. 15340 (vect_recog_bool_pattern, vect_recog_mask_conversion_pattern) 15341 (vect_recog_gather_scatter_pattern): Likewise. 15342 (append_pattern_def_seq): Likewise. Remove a check that is 15343 performed by add_stmt itself. 15344 153452018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15346 15347 * tree-vect-loop.c (vectorizable_reduction): Fix an instance in 15348 which make_ssa_name was called with new_stmt before new_stmt 15349 had been created. 15350 153512018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15352 15353 * tree-vect-loop.c (vect_valid_reduction_input_p): New function, 15354 split out from... 15355 (vect_is_slp_reduction): ...here... 15356 (vect_is_simple_reduction): ...and here. Remove repetition of tests 15357 that are already known to be false. 15358 153592018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15360 15361 * tree-vectorizer.h (vect_free_slp_instance): Add a final_p parameter. 15362 * tree-vect-slp.c (vect_free_slp_tree): Likewise. Don't update 15363 STMT_VINFO_NUM_SLP_USES when it's true. 15364 (vect_free_slp_instance): Add a final_p parameter and pass it to 15365 vect_free_slp_tree. 15366 (vect_build_slp_tree_2): Update call to vect_free_slp_instance. 15367 (vect_analyze_slp_instance): Likewise. 15368 (vect_slp_analyze_operations): Likewise. 15369 (vect_slp_analyze_bb_1): Likewise. 15370 * tree-vectorizer.c (vec_info): Likewise. 15371 * tree-vect-loop.c (vect_transform_loop): Likewise. 15372 153732018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15374 15375 * tree-vect-loop.c (vectorizable_reduction): Assert that the 15376 function is not called for second and subsequent members of 15377 a reduction group. 15378 153792018-07-31 Richard Sandiford <richard.sandiford@arm.com> 15380 15381 * tree-vect-loop.c (get_initial_def_for_reduction): Move special 15382 cases for nested loops from here to ... 15383 (vect_create_epilog_for_reduction): ...here. Only call 15384 vect_is_simple_use for inner-loop reductions. 15385 153862018-07-31 Martin Liska <mliska@suse.cz> 15387 15388 PR gcov-profile/85338 15389 PR gcov-profile/85350 15390 PR gcov-profile/85372 15391 * profile.c (struct location_triplet): New. 15392 (struct location_triplet_hash): Likewise. 15393 (output_location): Do not output a BB that 15394 is already recorded for a line. 15395 (branch_prob): Use streamed_locations. 15396 153972018-07-31 Martin Liska <mliska@suse.cz> 15398 15399 PR gcov-profile/85370 15400 * coverage.c (coverage_begin_function): Do not mark target 15401 clones as artificial functions. 15402 154032018-07-31 Martin Liska <mliska@suse.cz> 15404 15405 PR gcov-profile/83813 15406 PR gcov-profile/84758 15407 PR gcov-profile/85217 15408 PR gcov-profile/85332 15409 * profile.c (branch_prob): Do not record GOTO expressions 15410 for GIMPLE statements which locations are already streamed. 15411 154122018-07-31 Olivier Hainque <hainque@adacore.com> 15413 15414 * gcc.c (handle_spec_function): Accept a soft_matched_part 15415 argument, as do_spec_1. Pass it down to ... 15416 (eval_spec_function): Accept a soft_matched_part argument, 15417 and pass it down to ... 15418 (do_spec_2): Accept a soft_matched_part argument, and pass 15419 it down to do_spec_1. 15420 (do_spec_1): Pass soft_matched_part to handle_spec_function. 15421 (handle_braces): Update call to handle_spec_function. 15422 (driver::set_up_specs): Update calls to do_spec_2. 15423 (compare_debug_dump_opt_spec_function): Likewise. 15424 (compare_debug_self_opt_spec_function): Likewise. 15425 154262018-07-31 Olivier Hainque <hainque@adacore.com> 15427 15428 * common.opt (nolibc): New option. 15429 * doc/invoke.texi (Link Options): Document it. 15430 * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): Honor nolibc. 15431 * config/alpha/linux.h: Likewise. 15432 * config/arc/elf.h: Likewise. 15433 * config/arm/uclinux-elf.h: Likewise. 15434 * config/arm/unknown-elf.h: Likewise. 15435 * config/avr/avrlibc.h: Likewise. 15436 * config/bfin/bfin.h: Likewise. 15437 * config/bfin/linux.h: Likewise. 15438 * config/bfin/uclinux.h: Likewise. 15439 * config/darwin.h: Likewise. 15440 * config/darwin10.h: Likewise. 15441 * config/darwin12.h: Likewise. 15442 * config/gnu-user.h: Likewise. 15443 * config/lm32/uclinux-elf.h: Likewise. 15444 * config/pa/pa-hpux11.h: Likewise. 15445 * config/pa/pa64-hpux.h: Likewise. 15446 * config/sparc/sparc.h: Likewise. 15447 154482018-07-31 Olivier Hainque <hainque@adacore.com> 15449 15450 * gcc.c (getenv_spec_function): Prepend '/' to value for allowed 15451 undefined variables. 15452 154532018-07-30 Segher Boessenkool <segher@kernel.crashing.org> 15454 15455 PR target/86640 15456 * config/arm/arm.c (arm_block_set_aligned_vect): Use gen_int_mode 15457 instead of GEN_INT. 15458 154592018-07-30 Bernd Edlinger <bernd.edlinger@hotmail.de> 15460 15461 * tree-ssa-forwprop.c (simplify_builtin_call): Don't create a not NUL 15462 terminated string literal. 15463 154642018-07-30 Segher Boessenkool <segher@kernel.crashing.org> 15465 15466 PR rtl-optimization/85160 15467 * combine.c (is_just_move): New function. 15468 (try_combine): Allow combining two instructions into two if neither of 15469 the original instructions was a move. 15470 154712018-07-30 Alexander Monakov <amonakov@ispras.ru> 15472 15473 PR target/86673 15474 * doc/extend.texi (Global Register Variables): Discourage use of type 15475 qualifiers. 15476 (Local Register Variables): Likewise. 15477 154782018-07-30 Richard Sandiford <richard.sandiford@arm.com> 15479 15480 PR tree-optimization/86506 15481 * hwint.h (ceil_log2): Resync with hwint.c implementation. 15482 154832018-07-30 Ilya Leoshkevich <iii@linux.ibm.com> 15484 15485 PR target/86547 15486 * lra-constraints.c (spill_hard_reg_in_range): When selecting the 15487 hard_regno, make sure no insn between `from` and `to` clobbers it. 15488 154892018-07-30 Cesar Philippidis <cesar@codesourcery.com> 15490 Tom de Vries <tdevries@suse.de> 15491 15492 * config/nvptx/nvptx.c (PTX_GANG_DEFAULT): Rename to ... 15493 (PTX_DEFAULT_RUNTIME_DIM): ... this. 15494 (nvptx_goacc_validate_dims): Set default worker and gang dims to 15495 PTX_DEFAULT_RUNTIME_DIM. 15496 (nvptx_dim_limit): Ignore GOMP_DIM_WORKER. 15497 154982018-07-29 John David Anglin <danglin@gcc.gnu.org> 15499 15500 * config/pa/pa.c (pa_output_addr_vec): Align address table. 15501 * config/pa/pa.h (JUMP_TABLES_IN_TEXT_SECTION): Revise comment. 15502 * config/pa/pa32-linux.h (JUMP_TABLES_IN_TEXT_SECTION): Define. 15503 155042018-07-27 Michael Meissner <meissner@linux.ibm.com> 15505 15506 * config/rs6000/constraints.md (wG constraint): Delete, no longer 15507 used. 15508 * config/rs6000/predicates.md (p9_fusion_reg_operand): Rename 15509 predicate to reflect toc fusion has been deleted. 15510 (toc_fusion_mem_raw): Delete, no longer used. 15511 (toc_fusion_mem_wrapped): Likewise. 15512 * config/rs6000/rs6000-cpus.def (POWERPC_MASKS): Delete toc 15513 fusion mask bit. 15514 * config/rs6000/rs6000-protos.h (fusion_wrap_memory_address): 15515 Delete, no longer used. 15516 * config/rs6000/rs6000.c (struct rs6000_reg_addr): Delete fields 15517 meant to be used for toc fusion. 15518 (rs6000_debug_print_mode): Delete toc fusion debugging. 15519 (rs6000_debug_reg_global): Likewise. 15520 (rs6000_init_hard_regno_mode_ok): Delete setting up fields for toc 15521 fusion and secondary reload support that were never used. 15522 (rs6000_option_override_internal): Delete TOC fusion, that was only 15523 partially defined, and it did not work unless you also used the 15524 -mcmodel= switch. 15525 (rs6000_legitimate_address_p): Delete TOC fusion support. 15526 (rs6000_opt_masks): Likewise. 15527 (fusion_wrap_memory_address): Delete function, no longer used. 15528 (fusion_split_address); Delete TOC fusion support. 15529 * config/rs6000/rs6000.h (TARGET_TOC_FUSION_INT): Delete, no 15530 longer used with toc fusion being deleted. 15531 (TARGET_TOC_FUSION_FP): Likewise. 15532 * config/rs6000/rs6000.md (UNSPEC_FUSION_ADDIS): Delete TOC fusion 15533 UNSPEC. 15534 (toc fusion spliter): Delete TOC fusion support. 15535 (toc_fusionload_<mode>): Likewise. 15536 (toc_fusionload_di): Likewise. 15537 (fusion_gpr_load_<mode>): Delete generator function, this insn no 15538 longer needs to be named. Rename predicate to delete TOC fusion. 15539 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_load): Likewise. 15540 (fusion_gpr_<P:mode>_<GPR_FUSION:mode>_store): Likewise. 15541 (fusion_vsx_<P:mode>_<GPR_FUSION:mode>_load): Likewise. 15542 (fusion_vsx_<P:mode>_<GPR_FUSION:mode>_store): Likewise. 15543 (p9 fusion peephole2s): Rename predicate to delete TOC fusion. 15544 155452018-07-27 Kelvin Nilsen <kelvin@gcc.gnu.org> 15546 15547 * doc/extend.texi (Basic PowerPC Built-in Functions Available on 15548 ISA 2.05): Replace __uint128_t with __uint128 and __int128_t with 15549 __int128 in built-in function prototypes. 15550 (PowerPC AltiVec Built-in Functions on ISA 2.07): Likewise. 15551 (PowerPC AltiVec Built-in Functions on ISA 3.0): Likewise. 15552 155532018-07-27 Martin Sebor <msebor@redhat.com> 15554 15555 PR tree-optimization/86696 15556 * tree-ssa-strlen.c (get_min_string_length): Handle all integer 15557 types, including enums. 15558 (handle_char_store): Be prepared for the above function to fail. 15559 155602018-07-26 Qing Zhao <qing.zhao@oracle.com> 15561 15562 * builtins.c (inline_expand_builtin_string_cmp): Disable inlining 15563 when optimization level is lower than 2 or optimize for size. 15564 155652018-07-26 Martin Sebor <msebor@redhat.com> 15566 15567 PR tree-optimization/86043 15568 PR tree-optimization/86042 15569 * tree-ssa-strlen.c (handle_builtin_memcpy): Handle strict overlaps. 15570 (get_string_cst_length): Rename... 15571 (get_min_string_length): ...to this. Add argument. 15572 (handle_char_store): Extend to handle multi-character stores by 15573 MEM_REF. 15574 * tree.c (initializer_zerop): Use new argument. Handle MEM_REF. 15575 * tree.h (initializer_zerop): Add argument. 15576 155772018-07-26 Jakub Jelinek <jakub@redhat.com> 15578 15579 PR middle-end/86660 15580 * omp-low.c (scan_sharing_clauses): Don't ignore map clauses for 15581 declare target to variables if they have always,{to,from,tofrom} map 15582 kinds. 15583 155842018-07-26 Martin Liska <mliska@suse.cz> 15585 15586 PR lto/86548 15587 * lto-wrapper.c: Add linker_output as prefix 15588 for ltrans_output_file. 15589 155902018-07-26 Segher Boessenkool <segher@kernel.crashing.org> 15591 15592 PR rtl-optimization/85805 15593 * combine.c (reg_nonzero_bits_for_combine): Only use the last set 15594 value for hard registers if that was written in the same mode. 15595 155962018-07-26 Martin Liska <mliska@suse.cz> 15597 15598 PR gcov-profile/86536 15599 * gcov.c (format_gcov): Use printf format %.*f directly 15600 and do not handle special values. 15601 156022018-07-25 Claudiu Zissulescu <claziss@synopsys.com> 15603 15604 * common/config/arc/arc-common.c (arc_option_optimization_table): 15605 Update default optimizations for size. 15606 156072018-07-25 Claudiu Zissulescu <claziss@synopsys.com> 15608 15609 * config/arc/arc.md (movsf_insn): Add short instruction selection. 15610 * config/arc/constraints.md (CfZ): New constraint. 15611 * config/arc/fpu.md (addssf3_fpu): Use CfZ constraint. 15612 (subsf3_fpu): Likewise. 15613 (cmpsf_fpu): Likewise. 15614 (cmpsf_fpu_uneq): Likewise. 15615 156162018-07-25 Claudiu Zissulescu <claziss@synopsys.com> 15617 15618 * config/arc/arc.c (compact_memory_operand_p): Check for uncached 15619 accesses as well. 15620 (arc_is_uncached_mem_p): uncached applies to both the variable and 15621 the pointer. 15622 156232018-07-25 Claudiu Zissulescu <claziss@synopsys.com> 15624 15625 * config/arc/arc.h (ADDITIONAL_REGISTER_NAMES): Add additional 15626 register names. 15627 156282018-07-25 David Malcolm <dmalcolm@redhat.com> 15629 15630 * optinfo-emit-json.cc (class optrecord_json_writer): Convert 15631 field "m_scopes" from vec to auto_vec. 15632 156332018-07-25 Martin Liska <mliska@suse.cz> 15634 15635 * config/powerpcspe/powerpcspe-protos.h (rs6000_loop_align): Fix 15636 return type. 15637 156382018-07-25 Richard Biener <rguenther@suse.de> 15639 15640 PR debug/86654 15641 * dwarf2out.c (dwarf2out_decl): Do not handle nested functions 15642 special wrt context_die late. 15643 (gen_subprogram_die): Re-use DIEs in local scope. 15644 156452018-07-25 Richard Sandiford <richard.sandiford@arm.com> 15646 15647 PR tree-optimization/86644 15648 * hwint.c (ceil_log2): Fix comment. Return 0 for 0. 15649 156502018-07-25 Martin Liska <mliska@suse.cz> 15651 15652 PR middle-end/86645 15653 * dumpfile.c: And excluded values with TDF_ALL_VALUES. 15654 * dumpfile.h (enum dump_flag): Defince TDF_ALL_VALUES. 15655 156562018-07-25 Martin Liska <mliska@suse.cz> 15657 15658 PR sanitizer/79635 15659 * params.def: Explain ASan abbreviation and provide 15660 a documentation link. 15661 156622018-07-24 Martin Sebor <msebor@redhat.com> 15663 15664 PR tree-optimization/86622 15665 PR tree-optimization/86532 15666 * builtins.h (string_length): Declare. 15667 * builtins.c (c_strlen): Correct handling of non-constant offsets. 15668 (check_access): Be prepared for non-constant length ranges. 15669 (string_length): Make extern. 15670 * expr.c (string_constant): Only handle the minor non-constant 15671 array index. Use string_constant to compute the length of 15672 a generic string constant. 15673 156742018-07-24 Richard Sandiford <richard.sandiford@arm.com> 15675 15676 PR tree-optimization/86618 15677 * tree-vect-stmts.c (vectorizable_call): Don't take the address 15678 of LOOP_VINFO_MASKS (loop_vinfo) when loop_vinfo is null. 15679 156802018-07-24 David Malcolm <dmalcolm@redhat.com> 15681 15682 PR tree-optimization/86636 15683 * json.cc (json::object::set): Fix comment. Add assertions. 15684 (json::array::append): Move here from json.h. Add comment and an 15685 assertion. 15686 (json::string::string): Likewise. 15687 * json.h (json::array::append): Move to json.cc. 15688 (json::string::string): Likewise. 15689 * optinfo-emit-json.cc 15690 (optrecord_json_writer::impl_location_to_json): Assert that we 15691 aren't attempting to write out UNKNOWN_LOCATION, or an ad-hoc 15692 wrapper around it. Expand the location once, rather than three 15693 times. 15694 (optrecord_json_writer::inlining_chain_to_json): Fix the check for 15695 UNKNOWN_LOCATION, to use LOCATION_LOCUS to look through ad-hoc 15696 wrappers. 15697 (optrecord_json_writer::optinfo_to_json): Likewise, in four 15698 places. Fix some overlong lines. 15699 157002018-07-24 Matthew Malcomson <matthew.malcomson@arm.com> 15701 15702 * config/aarch64/aarch64-simd.md 15703 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>): Split into... 15704 (aarch64_<ANY_EXTEND:su>subw<mode>): ... This... 15705 (aarch64_<ANY_EXTEND:su>addw<mode>): ... And this. 15706 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w<mode>_internal): Split into... 15707 (aarch64_<ANY_EXTEND:su>subw<mode>_internal): ... This... 15708 (aarch64_<ANY_EXTEND:su>addw<mode>_internal): ... And this. 15709 (aarch64_<ANY_EXTEND:su><ADDSUB:optab>w2<mode>_internal): Split into... 15710 (aarch64_<ANY_EXTEND:su>subw2<mode>_internal): ... This... 15711 (aarch64_<ANY_EXTEND:su>addw2<mode>_internal): ... And this. 15712 157132018-07-24 Jakub Jelinek <jakub@redhat.com> 15714 15715 PR middle-end/86627 15716 * expmed.c (expand_divmod): Punt if d == HOST_WIDE_INT_MIN 15717 and size > HOST_BITS_PER_WIDE_INT. For size > HOST_BITS_PER_WIDE_INT 15718 and abs_d == d, do the power of two handling if profitable. 15719 157202018-07-24 Richard Biener <rguenther@suse.de> 15721 15722 * match.pd: Add BIT_FIELD_REF canonicalizations. 15723 157242018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> 15725 15726 PR c/86617 15727 * genmatch.c (dt_operand::gen_match_op): Avoid folding volatile values. 15728 157292018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> 15730 15731 * gimple-fold.c (gimple_fold_builtin_printf): Don't create a not NUL 15732 terminated STRING_CST object. 15733 157342018-07-23 Bernd Edlinger <bernd.edlinger@hotmail.de> 15735 15736 hsa-dump.c (dump_hsa_symbol): Avoid out of scope access to buf. 15737 157382018-07-23 Segher Boessenkool <segher@kernel.crashing.org> 15739 15740 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Adjust. 15741 * config/rs6000/rs6000-protos.h (rs6000_split_v4si_init): Delete. 15742 * config/rs6000/rs6000.c (rs6000_expand_vector_init): Always force 15743 the elements into a register. 15744 (rs6000_split_v4si_init_di_reg): Delete. 15745 (rs6000_split_v4si_init): Delete. 15746 * config/rs6000/vsx.md (unspec): Delete UNSPEC_VSX_VEC_INIT. 15747 (vsx_init_v4si): Rewrite as a define_expand. 15748 157492018-07-23 Segher Boessenkool <segher@kernel.crashing.org> 15750 15751 * config/rs6000/rs6000.md (splitters for rldimi and rlwimi with the 15752 zero_extend argument from memory): New. 15753 157542018-07-22 Martin Sebor <msebor@redhat.com> 15755 15756 PR bootstrap/86621 15757 * gimple-ssa-warn-alloca.c (alloca_call_type_by_arg): Avoid 15758 diagnosing calls with unknown arguments unless -Walloca-larger-than 15759 is restricted to less than PTRDIFF_MAX bytes. 15760 157612018-07-22 Gerald Pfeifer <gerald@pfeifer.com> 15762 15763 * doc/gcov.texi (Invoking Gcov): Editorial changes. 15764 157652018-07-20 David Malcolm <dmalcolm@redhat.com> 15766 15767 * pretty-print.c (text_info::set_location): Remove redundant 15768 "line_table" parameter from call to rich_location::set_range. 15769 157702018-07-20 Martin Sebor <msebor@redhat.com> 15771 15772 PR middle-end/82063 15773 * builtins.c (expand_builtin_alloca): Adjust. 15774 * calls.c (alloc_max_size): Simplify. 15775 * cgraphunit.c (cgraph_node::expand): Adjust. 15776 * common.opt (larger_than_size, warn_frame_larger_than): Remove 15777 variables. 15778 (frame_larger_than_size): Same. 15779 (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Change options 15780 to take a HOST_WIDE_INT argument and accept a byte-size suffix. 15781 Initialize. 15782 * doc/invoke.texi (GCC Command Options): Document option arguments. 15783 Explain byte-size arguments and suffixes. 15784 (-Wvla-larger-than, -Wno-alloc-size-larger-than): Update. 15785 (-Wno-alloca-larger-than, -Wno-vla-larger-than): Same. 15786 (-Wframe-larger-than, -Wlarger-than, -Wstack-usage): Same. 15787 * doc/options.texi (UInteger): Expand. 15788 (Host_Wide_Int, ByteSize): Document new properties. 15789 * final.c (final_start_function_1): Include sizes in an error message. 15790 * function.c (frame_offset_overflow): Same. 15791 * gimple-ssa-warn-alloca.c (pass_walloca::gate): Adjust. 15792 (alloca_call_type_by_arg): Change function argument to HOST_WIDE_INT. 15793 Diagnose unbounded alloca calls only for limits of less than 15794 PTRDIFF_MAX. 15795 (alloca_call_type): Adjust. Diagnose possibly out-of-bounds alloca 15796 calls and VLA size only for limits of less than PTRDIFF_MAX. Same 15797 for alloca(0). 15798 (pass_walloca::execute): Adjust. Diagnose alloca calls in loops 15799 only for limits of less than PTRDIFF_MAX. 15800 * langhooks-def.h (lhd_handle_option): Change function argument 15801 to HOST_WIDE_INT. 15802 * langhooks.c (lhd_handle_option): Same. 15803 * langhooks.h (handle_option): Same. 15804 * opt-functions.awk (switch_bit_fields): Handle Host_Wide_Int and 15805 ByteSize flags. 15806 (var_type, var_type_struct): Same. 15807 (var_set): Handle ByteSize flag. 15808 * optc-gen.awk: Add comments to output to ease debugging. Make 15809 use of HOST_WIDE_INT where appropriate. 15810 * opts-gen-save.awk: Use %lx to format unsigned long. 15811 * opth-gen.awk: Change function argument to HOST_WIDE_INT. 15812 * opts-common.c (integral_argument): Return HOST_WIDE_INT and add 15813 arguments. Parse bytes-size suffixes. 15814 (enum_arg_to_value): Change function argument to HOST_WIDE_INT. 15815 (enum_value_to_arg): Same. 15816 (decode_cmdline_option): Handle cl_host_wide_int. Adjust. 15817 (handle_option): Adjust. 15818 (generate_option): Change function argument to HOST_WIDE_INT. 15819 (cmdline_handle_error): Adjust. 15820 (read_cmdline_option): Change function argument to HOST_WIDE_INT. 15821 (set_option): Change function argument to HOST_WIDE_INT. 15822 (option_enabled): Handle cl_host_wide_int. 15823 (get_option_state): Handle CLVC_SIZE. 15824 (control_warning_option): Same. 15825 * opts.c (common_handle_option): Change function argument to 15826 HOST_WIDE_INT. Remove handling of OPT_Walloca_larger_than_ and 15827 OPT_Wvla_larger_than_. 15828 * opts.h (enum cl_var_type): Add an enumerator. 15829 * stor-layout.c (layout_decl): Print a more meaningful warning. 15830 * toplev.c (output_stack_usage): Adjust. 15831 158322018-07-20 Qing Zhao <qing.zhao@oracle.com> 15833 15834 * builtins.c (expand_builtin_memcmp): Delete the last parameter for 15835 call to inline_expand_builtin_string_cmp. 15836 (expand_builtin_strcmp): Likewise. 15837 (expand_builtin_strncmp): Likewise. 15838 (inline_string_cmp): Delete the last parameter, change char_type_node 15839 to unsigned_char_type_node for strcmp/strncmp, add conversions to the 15840 two operands. 15841 (inline_expand_builtin_string_cmp): Delete the last parameter, give up 15842 the inlining expansion on target where the type of the call has same or 15843 narrower precision than unsigned char. 15844 158452018-07-20 David Malcolm <dmalcolm@redhat.com> 15846 15847 * Makefile.in (OBJS): Add json.o and optinfo-emit-json.o. 15848 (CFLAGS-optinfo-emit-json.o): Define TARGET_NAME. 15849 * common.opt (fsave-optimization-record): New option. 15850 * coretypes.h (struct kv_pair): Move here from dumpfile.c. 15851 * doc/invoke.texi (-fsave-optimization-record): New option. 15852 * dumpfile.c: Include "optinfo-emit-json.h". 15853 (struct kv_pair): Move to coretypes.h. 15854 (optgroup_options): Make non-static. 15855 (dump_context::end_scope): Call 15856 optimization_records_maybe_pop_dump_scope. 15857 * dumpfile.h (optgroup_options): New decl. 15858 * json.cc: New file. 15859 * json.h: New file. 15860 * optinfo-emit-json.cc: New file. 15861 * optinfo-emit-json.h: New file. 15862 * optinfo.cc: Include "optinfo-emit-json.h". 15863 (optinfo::emit): Call optimization_records_maybe_record_optinfo. 15864 (optinfo_enabled_p): Check optimization_records_enabled_p. 15865 (optinfo_wants_inlining_info_p): Likewise. 15866 * optinfo.h: Update comment. 15867 * profile-count.c (profile_quality_as_string): New function. 15868 * profile-count.h (profile_quality_as_string): New decl. 15869 (profile_count::quality): New accessor. 15870 * selftest-run-tests.c (selftest::run_tests): Call json_cc_tests 15871 and optinfo_emit_json_cc_tests. 15872 * selftest.h (selftest::json_cc_tests): New decl. 15873 (selftest::optinfo_emit_json_cc_tests): New decl. 15874 * toplev.c: Include "optinfo-emit-json.h". 15875 (compile_file): Call optimization_records_finish. 15876 (do_compile): Call optimization_records_start. 15877 * tree-ssa-live.c: Include optinfo.h. 15878 (remove_unused_scope_block_p): Retain inlining information if 15879 optinfo_wants_inlining_info_p returns true. 15880 158812018-07-20 Richard Biener <rguenther@suse.de> 15882 15883 PR debug/86585 15884 * dwarf2out.c (dwarf2out_die_ref_for_decl): Test in_lto_p 15885 to cover -flto-partition=none. 15886 158872018-07-20 Martin Liska <mliska@suse.cz> 15888 15889 * tree.h (DECL_LOCATION_RANGE): Remove unused macro. 15890 (get_decl_source_range): Remove unused function. 15891 158922018-07-20 Richard Biener <rguenther@suse.de> 15893 15894 * tree-ssa-sccvn.h (struct vn_nary_op_s): Add next member. 15895 (struct vn_phi_s): Likewise. 15896 (struct vn_reference_s): Likewise. 15897 * tree-ssa-sccvn.c (vn_nary_op_hasher::equal): Add shortcut 15898 for searching the slot of an entry known to be in the hash itself. 15899 (vn_phi_hasher::equal): Likewise. 15900 (vn_reference_hasher::equal): Likewise. 15901 (last_inserted_ref, last_inserted_phi, last_inserted_nary): New 15902 globals. 15903 (optimistic_info, current_info): Remove, keeping only valid_info. 15904 (vn_reference_lookup_1): Remove fallback lookup. 15905 (vn_reference_lookup_2): Likewise. 15906 (vn_nary_op_lookup_1): Likewise. 15907 (vn_phi_lookup): Likewise. 15908 (vn_nary_build_or_lookup_1): Make sure to not chain the built 15909 hash element. 15910 (vn_reference_insert): Adjust, chain the inserted hash element 15911 at last_inserted_ref. 15912 (vn_reference_insert_pieces): Likewise. 15913 (visit_reference_op_call): Likewise. 15914 (vn_nary_op_insert_into): Chain the inserted hash element at 15915 last_inserted_nary. 15916 (vn_nary_op_insert_pieces): Adjust. 15917 (vn_nary_op_insert): Likewise. 15918 (vn_nary_op_insert_stmt): Likewise. 15919 (vn_phi_insert): Adjust, chain the inserted hash element at 15920 last_inserted_phi. 15921 (process_scc): Remove clearing and copying the optimistic 15922 table. Instead remove elements inserted during an optimistic 15923 iteration from the single table we maintain. 15924 (init_scc_vn): Adjust. 15925 (free_scc_vn): Likewise. 15926 (sccvn_dom_walker::record_cond): Likewise. 15927 (sccvn_dom_walker::after_dom_children): Likewise. 15928 159292018-07-19 Martin Sebor <msebor@redhat.com> 15930 15931 PR tree-optimization/84047 15932 PR tree-optimization/83776 15933 * tree-vrp.c (vrp_prop::check_mem_ref): New function. 15934 (check_array_bounds): Call it. 15935 159362018-07-19 Martin Sebor <msebor@redhat.com> 15937 15938 * align.h (align_flags): Use member initialization. 15939 159402018-07-19 David Malcolm <dmalcolm@redhat.com> 15941 15942 * Makefile.in (OBJS): Add optinfo.o. 15943 * coretypes.h (class symtab_node): New forward decl. 15944 (struct cgraph_node): New forward decl. 15945 (class varpool_node): New forward decl. 15946 * dump-context.h: New file. 15947 * dumpfile.c: Include "optinfo.h", "dump-context.h", "cgraph.h", 15948 "tree-pass.h". 15949 (refresh_dumps_are_enabled): Use optinfo_enabled_p. 15950 (set_dump_file): Call dumpfile_ensure_any_optinfo_are_flushed. 15951 (set_alt_dump_file): Likewise. 15952 (dump_context::~dump_context): New dtor. 15953 (dump_gimple_stmt): Move implementation to... 15954 (dump_context::dump_gimple_stmt): ...this new member function. 15955 Add the stmt to any pending optinfo, creating one if need be. 15956 (dump_gimple_stmt_loc): Move implementation to... 15957 (dump_context::dump_gimple_stmt_loc): ...this new member function. 15958 Start a new optinfo and add the stmt to it. 15959 (dump_gimple_expr): Move implementation to... 15960 (dump_context::dump_gimple_expr): ...this new member function. 15961 Add the stmt to any pending optinfo, creating one if need be. 15962 (dump_gimple_expr_loc): Move implementation to... 15963 (dump_context::dump_gimple_expr_loc): ...this new member function. 15964 Start a new optinfo and add the stmt to it. 15965 (dump_generic_expr): Move implementation to... 15966 (dump_context::dump_generic_expr): ...this new member function. 15967 Add the tree to any pending optinfo, creating one if need be. 15968 (dump_generic_expr_loc): Move implementation to... 15969 (dump_context::dump_generic_expr_loc): ...this new member 15970 function. Add the tree to any pending optinfo, creating one if 15971 need be. 15972 (dump_printf): Move implementation to... 15973 (dump_context::dump_printf_va): ...this new member function. Add 15974 the text to any pending optinfo, creating one if need be. 15975 (dump_printf_loc): Move implementation to... 15976 (dump_context::dump_printf_loc_va): ...this new member function. 15977 Start a new optinfo and add the stmt to it. 15978 (dump_dec): Move implementation to... 15979 (dump_context::dump_dec): ...this new member function. Add the 15980 value to any pending optinfo, creating one if need be. 15981 (dump_context::dump_symtab_node): New member function. 15982 (dump_context::get_scope_depth): New member function. 15983 (dump_context::begin_scope): New member function. 15984 (dump_context::end_scope): New member function. 15985 (dump_context::ensure_pending_optinfo): New member function. 15986 (dump_context::begin_next_optinfo): New member function. 15987 (dump_context::end_any_optinfo): New member function. 15988 (dump_context::s_current): New global. 15989 (dump_context::s_default): New global. 15990 (dump_scope_depth): Delete global. 15991 (dumpfile_ensure_any_optinfo_are_flushed): New function. 15992 (dump_symtab_node): New function. 15993 (get_dump_scope_depth): Reimplement in terms of dump_context. 15994 (dump_begin_scope): Likewise. 15995 (dump_end_scope): Likewise. 15996 (selftest::temp_dump_context::temp_dump_context): New ctor. 15997 (selftest::temp_dump_context::~temp_dump_context): New dtor. 15998 (selftest::verify_item): New function. 15999 (ASSERT_IS_TEXT): New macro. 16000 (ASSERT_IS_TREE): New macro. 16001 (ASSERT_IS_GIMPLE): New macro. 16002 (selftest::test_capture_of_dump_calls): New test. 16003 (selftest::dumpfile_c_tests): Call it. 16004 * dumpfile.h (dump_printf, dump_printf_loc, dump_basic_block) 16005 (dump_generic_expr_loc, dump_generic_expr, dump_gimple_stmt_loc) 16006 (dump_gimple_stmt, dump_dec): Gather these related decls and add a 16007 descriptive comment. 16008 (dump_function, print_combine_total_stats, enable_rtl_dump_file) 16009 (dump_node, dump_bb): Move these unrelated decls. 16010 (class dump_manager): Add leading comment. 16011 * optinfo.cc: New file. 16012 * optinfo.h: New file. 16013 160142018-07-19 Michael Collison <michael.collison@arm.com> 16015 Richard Henderson <rth@redhat.com> 16016 16017 * config/aarch64/aarch64.md (subv<GPI>4, usubv<GPI>4): New patterns. 16018 (subti): Handle op1 zero. 16019 (subvti4, usub4ti4): New. 16020 (*sub<GPI>3_compare1_imm): New. 16021 (sub<GPI>3_carryinCV): New. 16022 (*sub<GPI>3_carryinCV_z1_z2, *sub<GPI>3_carryinCV_z1): New. 16023 (*sub<GPI>3_carryinCV_z2, *sub<GPI>3_carryinCV): New. 16024 160252018-07-19 Michael Collison <michael.collison@arm.com> 16026 Richard Henderson <rth@redhat.com> 16027 16028 * config/aarch64/aarch64.md: (addv<GPI>4, uaddv<GPI>4): New. 16029 (addti3): Create simpler code if low part is already known to be 0. 16030 (addvti4, uaddvti4): New. 16031 (*add<GPI>3_compareC_cconly_imm): New. 16032 (*add<GPI>3_compareC_cconly): New. 16033 (*add<GPI>3_compareC_imm): New. 16034 (*add<GPI>3_compareC): Rename from add<GPI>3_compare1; do not 16035 handle constants within this pattern.. 16036 (*add<GPI>3_compareV_cconly_imm): New. 16037 (*add<GPI>3_compareV_cconly): New. 16038 (*add<GPI>3_compareV_imm): New. 16039 (add<GPI>3_compareV): New. 16040 (add<GPI>3_carryinC, add<GPI>3_carryinV): New. 16041 (*add<GPI>3_carryinC_zero, *add<GPI>3_carryinV_zero): New. 16042 (*add<GPI>3_carryinC, *add<GPI>3_carryinV): New. 16043 ((*add<GPI>3_compareC_cconly_imm): Replace 'ne' operator 16044 with 'comparison' operator. 16045 (*add<GPI>3_compareV_cconly_imm): Ditto. 16046 (*add<GPI>3_compareV_cconly): Ditto. 16047 (*add<GPI>3_compareV_imm): Ditto. 16048 (add<GPI>3_compareV): Ditto. 16049 (add<mode>3_carryinC): Ditto. 16050 (*add<mode>3_carryinC_zero): Ditto. 16051 (*add<mode>3_carryinC): Ditto. 16052 (add<mode>3_carryinV): Ditto. 16053 (*add<mode>3_carryinV_zero): Ditto. 16054 (*add<mode>3_carryinV): Ditto. 16055 160562018-07-19 Michael Collison <michael.collison@arm.com> 16057 Richard Henderson <rth@redhat.com> 16058 16059 * config/aarch64/aarch64-modes.def (CC_V): New. 16060 * config/aarch64/aarch64-protos.h 16061 (aarch64_addti_scratch_regs): Declare 16062 (aarch64_subvti_scratch_regs): Declare. 16063 (aarch64_expand_subvti): Declare. 16064 (aarch64_gen_unlikely_cbranch): Declare 16065 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Test 16066 for signed overflow using CC_Vmode. 16067 (aarch64_get_condition_code_1): Handle CC_Vmode. 16068 (aarch64_gen_unlikely_cbranch): New function. 16069 (aarch64_addti_scratch_regs): New function. 16070 (aarch64_subvti_scratch_regs): New function. 16071 (aarch64_expand_subvti): New function. 16072 160732018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> 16074 16075 * config/aarch64/aarch64-option-extensions.def: New entry for profile 16076 extension. 16077 * config/aarch64/aarch64.h (AARCH64_FL_PROFILE): New. 16078 * doc/invoke.texi (aarch64-feature-modifiers): New entry for profile 16079 extension. 16080 160812018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> 16082 16083 PR target/83009 16084 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make 16085 address check not strict. 16086 160872018-07-19 Andre Vieira <andre.simoesdiasvieira@arm.com> 16088 16089 * config/aarch64/aarch64-simd.md (aarch64_simd_mov<VQ:mode>): Replace 16090 Umq with Umn. 16091 (store_pair_lanes<mode>): Likewise. 16092 * config/aarch64/aarch64-protos.h (aarch64_addr_query_type): Add new 16093 enum value 'ADDR_QUERY_LDP_STP_N'. 16094 * config/aarch64/aarch64.c (aarch64_addr_query_type): Likewise. 16095 (aarch64_print_address_internal): Add declaration. 16096 (aarch64_print_ldpstp_address): Remove. 16097 (aarch64_classify_address): Adapt mode for 'ADDR_QUERY_LDP_STP_N'. 16098 (aarch64_print_operand): Change printing of 'y'. 16099 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Use 16100 new enum value 'ADDR_QUERY_LDP_STP_N', don't hardcode mode and use 16101 'true' rather than '1'. 16102 * config/aarch64/constraints.md (Uml): Likewise. 16103 (Uml): Rename to Umn. 16104 (Umq): Remove. 16105 161062018-07-19 Richard Biener <rguenther@suse.de> 16107 16108 * tree-ssa-sccvn.h (struct vn_phi_s): Make phiargs member 16109 a trailing array. 16110 * tree-ssa-sccvn.c: Remove alloc-pool.h use. 16111 (vn_phi_hasher): Derive from nofree_ptr_hash and remove remove method. 16112 (vn_reference_hasher): Likewise. 16113 (struct vn_tables_s): Remove obstack and alloc-pool members. 16114 (vn_tables_obstack, vn_tables_insert_obstack): New global obstacks. 16115 (vn_nary_build_or_lookup_1): Manually build in vn_tables_insert_obstack. 16116 (vn_reference_insert): Allocate from obstack instead of from alloc-pool. 16117 (vn_reference_insert_pieces): Likewise. 16118 (alloc_vn_nary_op_noinit): Adjust. 16119 (vn_nary_op_insert_stmt): Allocate phiargs in-place. 16120 (vn_phi_eq): Adjust. 16121 (shared_lookup_phiargs): Remove. 16122 (vn_phi_lookup): Allocate temporary vn_phi_s on the stack. 16123 (vn_phi_insert): Allocate from obstack instead of from alloc-pool. 16124 (visit_reference_op_call): Likewise. 16125 (copy_nary, copy_phi, copy_reference): Remove. 16126 (process_scc): Rewind the obstack when iterating. Do not 16127 copy the elements to valid_info but just move them from one 16128 hashtable to the other. 16129 (allocate_vn_table): Adjust. 16130 (free_vn_table): Likewise. 16131 (init_scc_vn): Likewise. 16132 (free_scc_vn): Likewise. 16133 161342018-07-19 H.J. Lu <hongjiu.lu@intel.com> 16135 16136 PR target/86560 16137 * config/i386/i386.c (rest_of_insert_endbranch): Lookup 16138 indirect_return as function type attribute. 16139 (ix86_attribute_table): Change indirect_return to function 16140 type attribute. 16141 * doc/extend.texi: Update indirect_return attribute. 16142 161432018-07-19 Aldy Hernandez <aldyh@redhat.com> 16144 16145 * wide-int.h (widest2_int): New. 16146 * gimple-fold.c (arith_overflowed_p): Use it. 16147 * tree.h (widest2_int_cst): New. 16148 * tree-vrp.c (wide_int_binop_overflow): Rename from 16149 vrp_int_const_binop. 16150 Rewrite to work on trees. 16151 (extract_range_from_multiplicative_op_1): Abstract code to... 16152 (wide_int_range_min_max): ...here. 16153 (wide_int_range_cross_product): ...and here. 16154 (extract_range_from_binary_expr_1): Abstract overflow code to... 16155 (wide_int_range_mult_wrapping): ...here. 16156 * tree-vrp.h (wide_int_range_cross_product): New. 16157 (wide_int_range_mult_wrapping): New. 16158 161592018-07-19 Andrew Senkevich <andrew.senkevich@intel.com> 16160 Julia Koval <julia.koval@intel.com> 16161 16162 * config/i386/x86-tune-costs.h (skylake_memcpy, 16163 skylake_memset): Replace rep_prefix with unrolling for size 512. 16164 161652018-07-18 Kugan Vivekanandarajah <kuganv@linaro.org> 16166 16167 PR middle-end/86544 16168 * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): Handle 16169 comparision with EQ_EXPR in last stmt. 16170 161712018-07-18 Kelvin Nilsen <kelvin@gcc.gnu.org> 16172 16173 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Rename 16174 this subsection to "PowerPC AltiVec/VSX Built-in Functions". 16175 (PowerPC AltiVec/VSX Built-in Functions): New name for subsection 16176 previously known as "PowerPC AltiVec Built-in Functions". Move 16177 some material to new subsubsections "PowerPC AltiVec Built-in 16178 Functions on ISA 2.06" and "PowerPC AltiVec Built-in Functions on 16179 ISA 2.07". 16180 (PowerPC Altivec Built-in Functions on ISA 2.05): New subsubsection. 16181 (PowerPC Altivec Built-in Functions on ISA 2.06): Likewise. 16182 (PowerPC Altivec Built-in Functions on ISA 2.07): Likewise. 16183 (PowerPC Altivec Built-in Functions on ISA 3.0): Likewise. 16184 161852018-07-18 Richard Biener <rguenther@suse.de> 16186 16187 PR tree-optimization/86557 16188 * tree-vect-patterns.c (vect_recog_divmod_pattern): Also handle 16189 EXACT_DIV_EXPR. 16190 161912018-07-18 Ilya Leoshkevich <iii@linux.ibm.com> 16192 16193 * config/s390/s390.c (s390_function_profiler): Generate CFI. 16194 161952018-07-17 Jeff Law <law@redhat.com> 16196 16197 * config/arm/arm.c (get_label_padding): Update for recent 16198 changes to label_to_alignment. 16199 16200 PR tree-optimization/86010 16201 * tree-ssa-dse.c (compute_trims): Fix typo/thinko. 16202 16203 * config/mips/mips.c (vr4130_align_insns): Update for recent 16204 changes to label_to_alignment. 16205 16206 * config/frv/frv.c (frv_label_align): Update for recent changes 16207 to label_to_alignment. 16208 16209 * config/nios2/nios2.c (nios2_label_align): Update for recent 16210 changes which dropped ALIGN_LABELS_LOG. 16211 162122018-07-17 Andreas Schwab <schwab@linux-m68k.org> 16213 16214 * config/m68k/m68k.md (umulsi3_highpart+1, const_umulsi3_highpart) 16215 (smulsi3_highpart+1, const_smulsi3_highpart): Add CC_STATUS_INIT. 16216 162172018-07-17 Claudiu Zissulescu <claziss@synopsys.com> 16218 16219 * config/arc/arc.c (arc_label_align): Use align_labels instead of 16220 deprecated align_labels_log. 16221 162222018-07-17 Richard Biener <rguenther@suse.de> 16223 16224 PR lto/86456 16225 * dwarf2out.c (init_sections_and_labels): Always generate 16226 a debug_line_str_section for early LTO debug. 16227 (dwarf2out_finish): Reset debug_line_str_hash output early. 16228 Bump counter for extra dwarf5 .debug_loc labels to not conflict 16229 with fat LTO part. 16230 (dwarf2out_early_finish): Output debug_line_str. 16231 162322018-07-17 Robin Dapp <rdapp@linux.ibm.com> 16233 16234 * config/s390/s390.c (preferred_la_operand_p): Do not use LA with 16235 index register on z196 or later. 16236 162372018-07-17 Robin Dapp <rdapp@linux.ibm.com> 16238 16239 * config/s390/s390.c (s390_default_align): Set default function 16240 alignment to 16. 16241 (s390_override_options_after_change): Call s390_default align. 16242 (s390_option_override_internal): Call s390_default_align. 16243 (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define. 16244 162452018-07-17 Jakub Jelinek <jakub@redhat.com> 16246 16247 PR middle-end/86542 16248 * omp-low.c (create_task_copyfn): Copy over also fields corresponding 16249 to _looptemp_ clauses, other than the first two. 16250 162512018-07-17 Martin Liska <mliska@suse.cz> 16252 16253 * opts.c: Do not enable OPT_falign_* for -Os. 16254 162552018-07-17 Martin Liska <mliska@suse.cz> 16256 16257 * align.h (MAX_CODE_ALIGN): New. 16258 (MAX_CODE_ALIGN_VALUE): New. 16259 * common/config/i386/i386-common.c (ix86_handle_option): 16260 (MAX_CODE_ALIGN): Moved to align.h. 16261 * final.c (MAX_CODE_ALIGN): Likewise. 16262 * opts.c (parse_and_check_align_values): 16263 (MAX_CODE_ALIGN): Likewise. 16264 (MAX_CODE_ALIGN_VALUE): Likewise. 16265 162662018-07-17 Martin Liska <mliska@suse.cz> 16267 16268 * config/i386/att.h (ASM_OUTPUT_ALIGN): Fix spacing 16269 in order to fulfil coding style. 16270 * config/i386/cygming.h (ASM_OUTPUT_ALIGN): Likewise. 16271 * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 16272 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. 16273 * config/iq2000/iq2000.h (ASM_OUTPUT_ALIGN): Likewise. 16274 * config/pa/pa.h (ASM_OUTPUT_ALIGN): Likewise. 16275 * config/sparc/sol2.h (ASM_OUTPUT_ALIGN_WITH_NOP): Likewise. 16276 * config/sparc/sparc.h (ASM_OUTPUT_ALIGN): Likewise. 16277 * config/visium/visium.h (ASM_OUTPUT_ALIGN): Likewise. 16278 (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 16279 162802018-07-17 Martin Liska <mliska@suse.cz> 16281 16282 * align.h: New file. 16283 * config/alpha/alpha.c (alpha_align_insns_1): Use align_functions 16284 directly. 16285 * config/i386/i386.c (ix86_avoid_jump_mispredicts): Use new return type 16286 align_flags of label_to_alignment. 16287 * config/m32r/m32r.h (LOOP_ALIGN): Wrap returned values into 16288 align_flags class. 16289 * config/m68k/m68k.c: Do not use removed align_labels_value and 16290 align_loops_value. 16291 * config/nds32/nds32.h (JUMP_ALIGN): Wrap result into align_flags class. 16292 (LOOP_ALIGN): Likewise. 16293 (LABEL_ALIGN): Likewise. 16294 * config/powerpcspe/powerpcspe.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): 16295 Remove not used macro. 16296 (rs6000_loop_align): Change return type to align_flags. 16297 (rs6000_loop_align_max_skip): Remove. 16298 * config/rs6000/rs6000-protos.h (rs6000_loop_align): 16299 Change return type to align_flags. 16300 * config/rs6000/rs6000.c (TARGET_ASM_LOOP_ALIGN_MAX_SKIP): 16301 Remove not used macro. 16302 (rs6000_loop_align): Change return type to align_flags. 16303 (rs6000_loop_align_max_skip): Remove. 16304 * config/rx/rx.h (JUMP_ALIGN): Wrap integer values 16305 * config/rx/rx-protos.h (rx_align_for_label): Make it 16306 static function. 16307 * config/rx/rx.c (rx_align_for_label): Change return type 16308 to align_flags. 16309 (rx_max_skip_for_label): Remove TARGET_ASM_*_ALIGN_MAX_SKIP 16310 macro definitions. 16311 into align_flags class. 16312 (LABEL_ALIGN): Likewise. 16313 (LOOP_ALIGN): Likewise. 16314 * config/s390/s390.c (s390_label_align): Use align_flags 16315 class member. 16316 (s390_asm_output_function_label): Likewise. 16317 * config/sh/sh.c (sh_override_options_after_change): 16318 Use align_flags class directly without macros. 16319 (find_barrier): Likewise. 16320 (barrier_align): Likewise. 16321 (sh_loop_align): Likewise. 16322 * config/spu/spu.c (spu_option_override): 16323 Use align_flags_tuple::get_value instead of removed macros. 16324 (spu_sched_init): Likewise. 16325 * config/spu/spu.h (GTY): Likewise. 16326 * config/visium/visium.c (visium_option_override): 16327 Set "8" as default secondary alignment. 16328 * config/visium/visium.h (SUBALIGN_LOG): Define to 3 16329 in order to guarantee secondary alignment of 8. 16330 * coretypes.h: Include align.h header file. 16331 * doc/tm.texi: Remove TARGET_ASM_JUMP_ALIGN_MAX_SKIP, 16332 TARGET_ASM_LOOP_ALIGN_MAX_SKIP, TARGET_ASM_LABEL_ALIGN_MAX_SKIP 16333 and TARGET_ASM_LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP macros. 16334 * doc/tm.texi.in: Likewise. 16335 * final.c (struct label_alignment): Remove not used structure. 16336 (LABEL_ALIGN): Change type to align_flags. 16337 (LOOP_ALIGN): Likewise. 16338 (JUMP_ALIGN): Likewise. 16339 (default_loop_align_max_skip): Remove. 16340 (default_label_align_max_skip): Likewise. 16341 (default_jump_align_max_skip): Likewise. 16342 (default_label_align_after_barrier_max_skip): 16343 (LABEL_TO_ALIGNMENT): Change to access label_align vector. 16344 (LABEL_TO_MAX_SKIP): Remove. 16345 (label_to_alignment): Return align_flags type instead of integer. 16346 (label_to_max_skip): Remove. 16347 (align_fuzz): Use align_flags type. 16348 (compute_alignments): Use align_flags type and use align_flags::max 16349 to combine multiple alignments. 16350 (grow_label_align): Grow vec instead of C array. 16351 (update_alignments): Assign just LABEL_TO_ALIGNMENT. 16352 (shorten_branches): Use align_flags type and use align_flags::max 16353 to combine multiple alignments. 16354 (final_scan_insn_1): Remove usage of secondary alignment that comes 16355 from label alignment, but instead use proper secondary alignment 16356 which is computed in grow_label_align. 16357 * flags.h (struct align_flags_tuple): Move to align.h. 16358 (struct align_flags): Likewise. 16359 (state_align_loops): Rename to align_loops. 16360 (state_align_jumps): Rename to align_jumps. 16361 (state_align_labels): Rename to align_labels. 16362 (state_align_functions): Rename to align_functions. 16363 (align_loops_log): Remove. 16364 (align_jumps_log): Remove. 16365 (align_labels_log): Remove. 16366 (align_functions_log): Remove. 16367 (align_loops_max_skip): Remove. 16368 (align_jumps_max_skip): Remove. 16369 (align_labels_max_skip): Remove. 16370 (align_functions_max_skip): Remove. 16371 (align_loops_value): Remove. 16372 (align_jumps_value): Remove. 16373 (align_labels_value): Remove. 16374 (align_functions_value): Remove. 16375 * output.h (label_to_alignment): Change return type to align_flags. 16376 (label_to_max_skip): Remove. 16377 * target.def: Remove loop_align_max_skip, label_align_max_skip, 16378 jump_align_max_skip macros. 16379 * targhooks.h (default_loop_align_max_skip): Remove. 16380 (default_label_align_max_skip): Likewise. 16381 (default_jump_align_max_skip): Likewise. 16382 (default_label_align_after_barrier_max_skip): Remove. 16383 * toplev.c (read_log_maxskip): Use ::normalize function. 16384 (parse_N_M): Remove not used argument and also call ::normalize. 16385 (parse_alignment_opts): Do not pass unused arguments. 16386 * varasm.c (assemble_start_function): Use directly align_functions 16387 instead of removed macros. 16388 * system.h: Do not poison removed macros. 16389 163902018-07-17 Jakub Jelinek <jakub@redhat.com> 16391 16392 PR middle-end/86539 16393 * gimplify.c (gimplify_omp_for): Ensure taskloop firstprivatized init 16394 and cond temporaries don't have reference type if iterator has 16395 pointer type. For init use &for_pre_body instead of pre_p if 16396 for_pre_body is non-empty. 16397 163982018-07-16 Segher Boessenkool <segher@kernel.crashing.org> 16399 16400 * config/rs6000/rs6000.md (trunc<mode>sf2): Expand truncates of 16401 double-double modes to SFmode directly directly. 16402 (trunc<mode>sf2_fprs): Delete. 16403 164042018-07-16 Segher Boessenkool <segher@kernel.crashing.org> 16405 16406 * config/rs6000/rs6000.c (init_float128_ibm): Use the correct names 16407 for conversions between IFmode and the decimal floating point modes. 16408 (init_float128_ieee): Use the correct names for conversions between 16409 KFmode and the decimal floating point modes. 16410 164112018-07-16 Segher Boessenkool <segher@kernel.crashing.org> 16412 16413 * config/rs6000/rs6000.c (init_float128_ibm): Use more correct names 16414 for the conversions between TDmode and IFmode. 16415 (init_float128_ieee): Use more correct names for the conversions 16416 between TDmode and KFmode. 16417 164182018-07-16 Jakub Jelinek <jakub@redhat.com> 16419 16420 PR tree-optimization/86526 16421 * builtins.c (expand_builtin_memcmp): Formatting fixes. 16422 (inline_expand_builtin_string_cmp): Likewise. 16423 (inline_string_cmp): Likewise. Use c_readstr instead of 16424 builtin_memcpy_read_str. Add unit_mode temporary. 16425 164262018-07-16 Bernd Edlinger <bernd.edlinger@hotmail.de> 16427 16428 PR middle-end/86528 16429 * builtins.c (check_access): Bail out if range[0] is no INTEGER_CST. 16430 * expr.c (string_constant): Fix the element size of ARRAY_TYPE. 16431 164322018-07-16 Kelvin Nilsen <kelvin@gcc.gnu.org> 16433 16434 * doc/extend.texi (PowerPC AltiVec Built-in Functions): 16435 Alphabetize prototypes of built-in functions, separating out 16436 built-in functions that are listed in this section but should be 16437 described elsewhere. 16438 164392018-07-16 Uros Bizjak <ubizjak@gmail.com> 16440 16441 PR target/86511 16442 * expmed.c (emit_store_flag): Do not emit setcc followed by a 16443 conditional move when trapping comparison was split to a 16444 non-trapping one (and vice versa). 16445 164462018-07-16 Ilya Leoshkevich <iii@linux.ibm.com> 16447 16448 * config/s390/s390.c (s390_function_profiler): Generate nops 16449 instead of profiler call sequences. 16450 * config/s390/s390.opt: Add the new option. 16451 164522018-07-16 Ilya Leoshkevich <iii@linux.ibm.com> 16453 16454 * config/s390/s390.c (s390_function_profiler): Generate 16455 __mcount_loc section. 16456 * config/s390/s390.opt: Add the new option. 16457 164582018-07-16 Ilya Leoshkevich <iii@linux.ibm.com> 16459 16460 * common.opt: Add the new warning. 16461 * config/s390/s390.c (s390_function_profiler): Emit "brasl 16462 %r0,__fentry__" when -mfentry is specified. 16463 (s390_option_override_internal): Disallow -mfentry for 31-bit 16464 CPUs. 16465 * config/s390/s390.opt: Add the new option. 16466 164672018-07-16 Richard Biener <rguenther@suse.de> 16468 16469 PR lto/86523 16470 * dwarf2out.c (dwarf2out_register_external_die): Assign DIE parents 16471 for function-local FUNCTION_DECL and RESULT_DECL immediately. 16472 164732018-07-16 Martin Liska <mliska@suse.cz> 16474 16475 PR ipa/86529 16476 * ipa-pure-const.c (malloc_candidate_p): Revert ::get 16477 to ::get_create. 16478 164792017-07-16 Claudiu Zissulescu <claziss@synopsys.com> 16480 16481 * config/arc/arcHS.md: Update ARCHS scheduling rules. 16482 164832017-07-16 Claudiu Zissulescu <claziss@synopsys.com> 16484 16485 * config/arc/arc-arch.h (arc_tune_attr): Add new tune parameters 16486 for ARCHS4x. 16487 * config/arc/arc-cpus.def (hs4x): New cpu. 16488 (hs4xd): Likewise. 16489 * config/arc/arc-tables.opt: Regenerate. 16490 * config/arc/arc.c (arc_sched_issue_rate): New function. 16491 (TARGET_SCHED_ISSUE_RATE): Define. 16492 (TARGET_SCHED_EXPOSED_PIPELINE): Likewise. 16493 * config/arc/arc.md (attr type): Add fpu_fuse, fpu_sdiv, fpu_ddiv, 16494 fpu_cvt. 16495 (attr tune): Add ARCHS4x tune values. 16496 (attr tune_dspmpy): Define. 16497 (*tst): Correct instruction type. 16498 * config/arc/arcHS.md: Don't use this automaton for ARCHS4x cpus. 16499 * config/arc/arcHS4x.md: New file. 16500 * config/arc/fpu.md: Update instruction type attributes. 16501 * config/arc/t-multilib: Regenerate. 16502 165032018-07-16 Tom de Vries <tdevries@suse.de> 16504 16505 PR debug/86455 16506 * var-tracking.c (vt_initialize): Fix pre_dec handling. 16507 165082018-07-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 16509 16510 * config/aarch64/atomics.md (aarch64_store_execlusive<mode>): Add 16511 early clobber. 16512 165132018-07-16 Eric Botcazou <ebotcazou@adacore.com> 16514 16515 PR tree-optimization/86514 16516 * tree-ssa-reassoc.c (init_range_entry) <CASE_CONVERT>: Return for a 16517 conversion to a boolean type from a type with greater precision. 16518 165192018-07-16 Tom de Vries <tdevries@suse.de> 16520 16521 * var-tracking.c (vt_initialize): Print adjusted insn slim if 16522 dump_flags request TDF_SLIM. 16523 165242018-07-16 Aldy Hernandez <aldyh@redhat.com> 16525 16526 * fold-const.c (int_const_binop_1): Abstract... 16527 (wide_int_binop): ...wide int code here. 16528 (poly_int_binop): ...poly int code here. 16529 Abstract the rest of int_const_binop_1 into int_const_binop. 16530 * fold-const.h (wide_int_binop): New. 16531 * tree-vrp.c (vrp_int_const_binop): Call wide_int_binop. 16532 Remove useless PLUS/MINUS_EXPR case. 16533 (zero_nonzero_bits_from_vr): Move wide int code... 16534 (zero_nonzero_bits_from_bounds): ...here. 16535 (extract_range_from_binary_expr_1): Move mask optimization code... 16536 (range_easy_mask_min_max): ...here. 16537 * tree-vrp.h (zero_nonzero_bits_from_bounds): New. 16538 (range_easy_mask_min_max): New. 16539 165402018-07-15 Jeff Law <law@redhat.com> 16541 16542 PR target/85993 16543 * config/sh/sh.c (output_mi_thunk): Remove dead conditional 16544 block. 16545 165462018-07-14 Jim Wilson <jimw@sifive.com> 16547 16548 * config/riscv/linux.h (TARGET_ASM_FILE_END): New. 16549 165502018-07-14 Paul Koning <ni1d@arrl.net> 16551 16552 * config/pdp11/pdp11.c (pdp11_rtx_costs): Bugfixes. 16553 165542018-07-13 Jan Hubicka <hubicka@ucw.cz> 16555 16556 * lto-streamer-out.c (copy_function_or_variable): Dump info about 16557 copying section. 16558 165592018-07-13 Bill Schmidt <wschmidt@linux.ibm.com> 16560 Steve Munroe <munroesj52@gmail.com> 16561 16562 * config/rs6000/emmintrin.h (_mm_and_si128): New function. 16563 (_mm_andnot_si128): Likewise. 16564 (_mm_or_si128): Likewise. 16565 (_mm_xor_si128): Likewise. 16566 165672018-07-13 Qing Zhao <qing.zhao@oracle.com> 16568 16569 PR middle-end/78809 16570 * builtins.c (expand_builtin_memcmp): Inline the calls first 16571 when result_eq is false. 16572 (expand_builtin_strcmp): Inline the calls first. 16573 (expand_builtin_strncmp): Likewise. 16574 (inline_string_cmp): New routine. Expand a string compare 16575 call by using a sequence of char comparison. 16576 (inline_expand_builtin_string_cmp): New routine. Inline expansion 16577 a call to str(n)cmp/memcmp. 16578 * doc/invoke.texi (--param builtin-string-cmp-inline-length): 16579 New option. 16580 * params.def (BUILTIN_STRING_CMP_INLINE_LENGTH): New. 16581 165822018-07-13 Richard Earnshaw <rearnsha@arm.com> 16583 16584 * config/arm/driver-arm.c: Include arm-native.h. 16585 (host_detect_local_cpu): Use auto-generated data tables. 16586 (vendors, arm_cpu_table): Delete. Move part information to ... 16587 * config/arm/arm-cpus.in: ... here. 16588 * config/arm/parsecpu.awk (gen_native): New function. 16589 (vendor, part): New CPU fields. 16590 (END): Add support for building the native CPU detection tables. 16591 * config/arm/t-arm (arm-native.h): Add build rule. 16592 (driver-arm.o): Add dependency on arm-native.h. 16593 165942018-07-13 Richard Biener <rguenther@suse.de> 16595 16596 PR middle-end/85974 16597 * match.pd (addr1 - addr2): Allow either of the operand to 16598 have a conversion. 16599 166002018-07-13 Tom de Vries <tdevries@suse.de> 16601 16602 * tree-inline.c (remap_ssa_name): Save and reuse debug exprs generated 16603 in remap_ssa_name. 16604 166052018-07-13 Jackson Woodruff <jackson.woodruff@arm.com> 16606 16607 * config/aarch64/aarch64.c (aarch64_operands_adjust_ok_for_ldpstp): Use 16608 arrays instead of numbered variables. 16609 166102018-07-13 Eric Botcazou <ebotcazou@adacore.com> 16611 16612 * config/sparc/sparc-protos.h (sparc_compute_frame_size): Delete. 16613 * config/sparc/sparc.c (sparc_compute_frame_size): Make static. 16614 166152018-07-13 Richard Biener <rguenther@suse.de> 16616 16617 PR debug/86452 16618 * dwarf2out.c (gen_type_die_with_usage): Use scope_die_for 16619 instead of get_context_die. 16620 166212018-07-13 Kugan Vivekanandarajah <kuganv@linaro.org> 16622 Richard Biener <rguenther@suse.de> 16623 16624 PR middle-end/86489 16625 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Check 16626 that the loop latch destination where phi is defined. 16627 166282018-07-12 Kito Cheng <kito.cheng@gmail.com> 16629 16630 * config/riscv/riscv.c (enum riscv_privilege_levels): Add UNKNOWN_MODE. 16631 (riscv_expand_epilogue): Add assertion to check interrupt mode. 16632 (riscv_set_current_function): Extract getting interrupt type to new 16633 function. 16634 (riscv_get_interrupt_type): New function. 16635 (riscv_merge_decl_attributes): New function, checking interrupt type is 16636 same. 16637 (TARGET_MERGE_DECL_ATTRIBUTES): Define. 16638 166392018-07-12 Paul Koning <ni1d@arrl.net> 16640 16641 * config/pdp11/pdp11.c (pdp11_output_def): Fix typo in .set 16642 directive. 16643 166442018-07-12 Paul Koning <ni1d@arrl.net> 16645 16646 * doc/rtl.texi (REG_NONNEG): Remove decrement and branch until 16647 zero reference, add doloop_end instead. 16648 * doc/md.texi (decrement_and_branch_until_zero): Remove. 16649 (Looping patterns): Remove decrement_and_branch_until_zero. Add 16650 detail for doloop_end. 16651 166522018-07-12 Martin Sebor <msebor@redhat.com> 16653 16654 PR c/86453 16655 * attribs.c (decl_attributes): Reject conflicting attributes before 16656 calling attribute handlers. 16657 166582018-07-12 Jan Hubicka <hubicka@ucw.cz> 16659 16660 * dumpfile.c (gcc::dump_manager::get_dump_file_name): Add PART 16661 parameter. 16662 (gcc::dump_manager::get_dump_file_name): likewise. 16663 (dump_begin): Likewise. 16664 * dumpfile.h (dump_begin): Update prototype. 16665 (gcc::dump_manager::get_dump_file_name, 16666 gcc::dump_manager::get_dump_file_name): Update prototype. 16667 166682018-07-12 Richard Sandiford <richard.sandiford@linaro.org> 16669 16670 * internal-fn.h (vectorizable_internal_fn_p): New function. 16671 * tree-vect-slp.c (compatible_calls_p): Likewise. 16672 (vect_build_slp_tree_1): Remove nops argument. Handle calls 16673 to internal functions. 16674 (vect_build_slp_tree_2): Update call to vect_build_slp_tree_1. 16675 166762018-07-12 Richard Sandiford <richard.sandiford@linaro.org> 16677 16678 * fold-const.h (inverse_conditions_p): Declare. 16679 * fold-const.c (inverse_conditions_p): New function. 16680 * match.pd: Use inverse_conditions_p. Add folds of view_converts 16681 that test the inverse condition of a conditional internal function. 16682 * internal-fn.h (vectorized_internal_fn_supported_p): Declare. 16683 * internal-fn.c (internal_fn_mask_index): Handle conditional 16684 internal functions. 16685 (vectorized_internal_fn_supported_p): New function. 16686 * tree-if-conv.c: Include internal-fn.h and fold-const.h. 16687 (any_pred_load_store): Replace with... 16688 (need_to_predicate): ...this new variable. 16689 (redundant_ssa_names): New variable. 16690 (ifcvt_can_use_mask_load_store): Move initial checks to... 16691 (ifcvt_can_predicate): ...this new function. Handle tree codes 16692 for which a conditional internal function exists. 16693 (if_convertible_gimple_assign_stmt_p): Use ifcvt_can_predicate 16694 instead of ifcvt_can_use_mask_load_store. Update after variable 16695 name change. 16696 (predicate_load_or_store): New function, split out from 16697 predicate_mem_writes. 16698 (check_redundant_cond_expr): New function. 16699 (value_available_p): Likewise. 16700 (predicate_rhs_code): Likewise. 16701 (predicate_mem_writes): Rename to... 16702 (predicate_statements): ...this. Use predicate_load_or_store 16703 and predicate_rhs_code. 16704 (combine_blocks, tree_if_conversion): Update after above name changes. 16705 (ifcvt_local_dce): Handle redundant_ssa_names. 16706 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): Handle 16707 general conditional functions. 16708 * tree-vect-stmts.c (vectorizable_call): Likewise. 16709 167102018-07-12 Richard Sandiford <richard.sandiford@linaro.org> 16711 Alan Hayward <alan.hayward@arm.com> 16712 David Sherwood <david.sherwood@arm.com> 16713 16714 * internal-fn.h (can_interpret_as_conditional_op_p): Declare. 16715 * internal-fn.c (can_interpret_as_conditional_op_p): New function. 16716 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Handle conditional 16717 plus and minus and convert them into IFN_COND_FMA-based sequences. 16718 (convert_mult_to_fma): Handle conditional plus and minus. 16719 167202018-07-12 Richard Sandiford <richard.sandiford@linaro.org> 16721 16722 * doc/md.texi (cond_fma, cond_fms, cond_fnma, cond_fnms): Document. 16723 * optabs.def (cond_fma_optab, cond_fms_optab, cond_fnma_optab) 16724 (cond_fnms_optab): New optabs. 16725 * internal-fn.def (COND_FMA, COND_FMS, COND_FNMA, COND_FNMS): New 16726 internal functions. 16727 (FMA): Use DEF_INTERNAL_FLT_FN rather than DEF_INTERNAL_FLT_FLOATN_FN. 16728 * internal-fn.h (get_conditional_internal_fn): Declare. 16729 (get_unconditional_internal_fn): Likewise. 16730 * internal-fn.c (cond_ternary_direct): New macro. 16731 (expand_cond_ternary_optab_fn): Likewise. 16732 (direct_cond_ternary_optab_supported_p): Likewise. 16733 (FOR_EACH_COND_FN_PAIR): Likewise. 16734 (get_conditional_internal_fn): New function. 16735 (get_unconditional_internal_fn): Likewise. 16736 * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 5. 16737 (gimple_match_op::gimple_match_op): Add a new overload for 5 16738 operands. 16739 (gimple_match_op::set_op): Likewise. 16740 (gimple_resimplify5): Declare. 16741 * genmatch.c (decision_tree::gen): Generate simplifications for 16742 5 operands. 16743 * gimple-match-head.c (gimple_simplify): Define an overload for 16744 5 operands. Handle calls with 5 arguments in the top-level overload. 16745 (convert_conditional_op): Handle conversions from unconditional 16746 internal functions to conditional ones. 16747 (gimple_resimplify5): New function. 16748 (build_call_internal): Pass a fifth operand. 16749 (maybe_push_res_to_seq): Likewise. 16750 (try_conditional_simplification): Try converting conditional 16751 internal functions to unconditional internal functions. 16752 Handle 3-operand unconditional forms. 16753 * match.pd (UNCOND_TERNARY, COND_TERNARY): Operator lists. 16754 Define ternary equivalents of the current rules for binary conditional 16755 internal functions. 16756 * config/aarch64/aarch64.c (aarch64_preferred_else_value): Handle 16757 ternary operations. 16758 * config/aarch64/iterators.md (UNSPEC_COND_FMLA, UNSPEC_COND_FMLS) 16759 (UNSPEC_COND_FNMLA, UNSPEC_COND_FNMLS): New unspecs. 16760 (optab): Handle them. 16761 (SVE_COND_FP_TERNARY): New int iterator. 16762 (sve_fmla_op, sve_fmad_op): New int attributes. 16763 * config/aarch64/aarch64-sve.md (cond_<optab><mode>) 16764 (*cond_<optab><mode>_2, *cond_<optab><mode_4) 16765 (*cond_<optab><mode>_any): New SVE_COND_FP_TERNARY patterns. 16766 167672018-07-12 Richard Sandiford <richard.sandiford@linaro.org> 16768 16769 * target.def (preferred_else_value): New target hook. 16770 * doc/tm.texi.in (TARGET_PREFERRED_ELSE_VALUE): New hook. 16771 * doc/tm.texi: Regenerate. 16772 * targhooks.h (default_preferred_else_value): Declare. 16773 * targhooks.c (default_preferred_else_value): New function. 16774 * internal-fn.h (conditional_internal_fn_code): Declare. 16775 * internal-fn.c (FOR_EACH_CODE_MAPPING): New macro. 16776 (get_conditional_internal_fn): Use it. 16777 (conditional_internal_fn_code): New function. 16778 * gimple-match.h (gimple_match_cond): New struct. 16779 (gimple_match_op): Add a cond member function. 16780 (gimple_match_op::gimple_match_op): Update all forms to take a 16781 gimple_match_cond. 16782 * genmatch.c (expr::gen_transform): Use the same condition as res_op 16783 for the suboperation, but don't specify a particular else_value. 16784 * tree-ssa-sccvn.c (vn_nary_simplify, vn_reference_lookup_3) 16785 (visit_nary_op, visit_reference_op_load): Pass 16786 gimple_match_cond::UNCOND to the gimple_match_op constructor. 16787 * gimple-match-head.c: Include tree-eh.h 16788 (convert_conditional_op): New function. 16789 (maybe_resimplify_conditional_op): Likewise. 16790 (gimple_resimplify1): Call maybe_resimplify_conditional_op. 16791 (gimple_resimplify2): Likewise. 16792 (gimple_resimplify3): Likewise. 16793 (gimple_resimplify4): Likewise. 16794 (maybe_push_res_to_seq): Return null for conditional operations. 16795 (try_conditional_simplification): New function. 16796 (gimple_simplify): Call it. Pass conditions to the gimple_match_op 16797 constructor. 16798 * match.pd: Fold VEC_COND_EXPRs of an IFN_COND_* call to a new 16799 IFN_COND_* call. 16800 * config/aarch64/aarch64.c (aarch64_preferred_else_value): New 16801 function. 16802 (TARGET_PREFERRED_ELSE_VALUE): Redefine. 16803 168042018-07-12 Jan Hubicka <hubicka@ucw.cz> 16805 16806 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream 16807 DECL_FCONTEXT 16808 (hash_tree): Do not hash DECL_FCONTEXT 16809 * tree-streamer-in.c (lto_input_ts_field_decl_tree_pointers): 16810 Do not stream DECL_FCONTEXT. 16811 * tree-streamer-out.c (write_ts_field_decl_tree_pointers): Likewise. 16812 * tree.c (free_lang_data_in_decl): Free DECL_FCONTEXT. 16813 168142018-07-12 Richard Biener <rguenther@suse.de> 16815 16816 PR debug/86462 16817 * dwarf2out.c (gen_block_die): Only output blocks when they have 16818 at least one !DECL_IGNORED_P variable. 16819 168202018-07-12 Richard Biener <rguenther@suse.de> 16821 16822 PR target/84829 16823 * config/gnu-user.h (GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC): 16824 Remove -mieee-fp handling. 16825 168262018-07-12 Richard Biener <rguenther@suse.de> 16827 16828 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Remove bogus 16829 left-over from last patch. 16830 168312018-07-12 Jakub Jelinek <jakub@redhat.com> 16832 16833 PR tree-optimization/86492 16834 * gimple-ssa-store-merging.c 16835 (imm_store_chain_info::coalesce_immediate_stores): Call 16836 check_no_overlap even for the merge_overlapping case. Formatting fix. 16837 168382018-07-12 Richard Biener <rguenther@suse.de> 16839 16840 PR middle-end/86479 16841 * fold-const.c (fold_binary_op_with_conditional_arg): Do not 16842 move possibly trapping operations into the conditional. 16843 168442018-07-12 Richard Biener <rguenther@suse.de> 16845 16846 * tree-ssa-sccvn.c (mprts_hook_cnt): Remove. 16847 (vn_lookup_simplify_result): Remove recursion limit applied 16848 here. 16849 (vn_nary_build_or_lookup_1): Adjust. 16850 (try_to_simplify): Likewise. 16851 * gimple-match-head.c (gimple_resimplify1): Instead apply one 16852 here. 16853 (gimple_resimplify2): Likewise. 16854 (gimple_resimplify3): Likewise. 16855 (gimple_resimplify4): Likewise. 16856 168572018-07-11 Jakub Jelinek <jakub@redhat.com> 16858 16859 * config/i386/avx512bitalgintrin.h (_mm512_mask_bitshuffle_epi64_mask): 16860 Use __mmask64 type instead of __mmask8 for __M argument. 16861 * config/i386/avx512fintrin.h (_mm512_mask_xor_epi64, 16862 _mm512_maskz_xor_epi64): Use __mmask8 type instead of __mmask16 for 16863 __U argument. 16864 (_mm512_mask_cmpneq_epi64_mask): Use __mmask8 type instead of 16865 __mmask16 for __M argument. 16866 (_mm512_maskz_insertf32x4, _mm512_maskz_inserti32x4, 16867 _mm512_mask_insertf32x4, _mm512_mask_inserti32x4): Cast last argument 16868 to __mmask16 instead of __mmask8. 16869 * config/i386/avx512vlintrin.h (_mm_mask_add_ps, _mm_maskz_add_ps, 16870 _mm256_mask_add_ps, _mm256_maskz_add_ps, _mm_mask_sub_ps, 16871 _mm_maskz_sub_ps, _mm256_mask_sub_ps, _mm256_maskz_sub_ps, 16872 _mm256_maskz_cvtepi32_ps, _mm_maskz_cvtepi32_ps): Use __mmask8 type 16873 instead of __mmask16 for __U argument. 16874 * config/i386/avx512vlbwintrin.h (_mm_mask_cmp_epi8_mask): Use 16875 __mmask16 instead of __mmask8 for __U argument. 16876 (_mm256_mask_cmp_epi8_mask): Use __mmask32 instead of __mmask16 for 16877 __U argument. 16878 (_mm256_cmp_epi8_mask): Use __mmask32 return type instead of 16879 __mmask16. 16880 (_mm_mask_cmp_epu8_mask): Use __mmask16 instead of __mmask8 for __U 16881 argument. 16882 (_mm256_mask_cmp_epu8_mask): Use __mmask32 instead of __mmask16 for 16883 __U argument. 16884 (_mm256_cmp_epu8_mask): Use __mmask32 return type instead of 16885 __mmask16. 16886 (_mm_mask_cmp_epi16_mask): Cast last argument to __mmask8 instead 16887 of __mmask16. 16888 (_mm256_mask_cvtepi8_epi16): Use __mmask16 instead of __mmask32 for 16889 __U argument. 16890 (_mm_mask_cvtepi8_epi16): Use __mmask8 instead of __mmask32 for 16891 __U argument. 16892 (_mm256_mask_cvtepu8_epi16): Use __mmask16 instead of __mmask32 for 16893 __U argument. 16894 (_mm_mask_cvtepu8_epi16): Use __mmask8 instead of __mmask32 for 16895 __U argument. 16896 (_mm256_mask_cmpneq_epu8_mask, _mm256_mask_cmplt_epu8_mask, 16897 _mm256_mask_cmpge_epu8_mask, _mm256_mask_cmple_epu8_mask): Change 16898 return type as well as __M argument type and all casts from __mmask8 16899 to __mmask32. 16900 (_mm256_mask_cmpneq_epu16_mask, _mm256_mask_cmplt_epu16_mask, 16901 _mm256_mask_cmpge_epu16_mask, _mm256_mask_cmple_epu16_mask): Change 16902 return type as well as __M argument type and all casts from __mmask8 16903 to __mmask16. 16904 (_mm256_mask_cmpneq_epi8_mask, _mm256_mask_cmplt_epi8_mask, 16905 _mm256_mask_cmpge_epi8_mask, _mm256_mask_cmple_epi8_mask): Change 16906 return type as well as __M argument type and all casts from __mmask8 16907 to __mmask32. 16908 (_mm256_mask_cmpneq_epi16_mask, _mm256_mask_cmplt_epi16_mask, 16909 _mm256_mask_cmpge_epi16_mask, _mm256_mask_cmple_epi16_mask): Change 16910 return type as well as __M argument type and all casts from __mmask8 16911 to __mmask16. 16912 * config/i386/avx512vbmi2vlintrin.h (_mm_mask_shrdi_epi32, 16913 _mm_mask_shldi_epi32): Cast last argument to __mmask8 instead of 16914 __mmask16. 16915 169162018-07-11 Grazvydas Ignotas <notasas@gmail.com> 16917 16918 * config/i386/avx512bwintrin.h: (_mm512_mask_cmp_epi8_mask, 16919 _mm512_mask_cmp_epu8_mask): Use __mmask64 type instead of __mmask32 16920 for __U argument. 16921 169222018-07-11 Paul Koning <ni1d@arrl.net> 16923 16924 * doc/md.texi (define_subst): Document how multiple occurrences of 16925 the same argument in the replacement pattern are handled. 16926 169272018-07-11 Paul Koning <ni1d@arrl.net> 16928 16929 * doc/extend.texi (Common Variable Attributes): Move "mode" into 16930 alphabetical order. 16931 (Common Type Attributes): Add "mode" attribute. 16932 169332018-07-11 Jan Hubicka <hubicka@ucw.cz> 16934 16935 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not 16936 stream DECL_ORIGINAL_TYPE. 16937 (DFS::DFS_write_tree_body): Drop hack handling local external decls. 16938 (hash_tree): Do not walk DECL_ORIGINAL_TYPE. 16939 * tree-streamer-in.c (lto_input_ts_decl_non_common_tree_pointers): 16940 Do not walk original type. 16941 * tree-streamer-out.c (streamer_write_chain): Drop hack handling 16942 external decls. 16943 (write_ts_decl_non_common_tree_pointers): Do not stream 16944 DECL_ORIGINAL_TYPE 16945 * tree.c (free_lang_data_in_decl): Clear DECL_ORIGINAL_TYPE. 16946 (find_decls_types_r): Do not walk DEC_ORIGINAL_TYPE. 16947 169482018-07-11 Aldy Hernandez <aldyh@redhat.com> 16949 16950 * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not jump 16951 thread twice from the same starting edge. 16952 169532018-07-11 Aldy Hernandez <aldyh@redhat.com> 16954 16955 * vr-values.c (gimple_stmt_nonzero_p): Abstract common code to... 16956 * gimple.c (gimple_call_nonnull_result_p): ...here... 16957 (gimple_call_nonnull_arg): ...and here. 16958 * gimple.h (gimple_call_nonnull_result_p): New. 16959 (gimple_call_nonnull_arg): New. 16960 169612018-07-11 Richard Earnshaw <rearnsha@arm.com> 16962 16963 * config/arm/arm-cpus.in: Move information from fpu field of each 16964 cpu definition to the isa field. 16965 * config/arm/parsecpu.awk (fpu): Delete match rule. 16966 (gen_comm_data): Don't add bits from the CPU's FPU entry. 16967 169682018-07-11 Richard Biener <rguenther@suse.de> 16969 16970 PR debug/86457 16971 * dwarf2out.c (init_sections_and_labels): Use 16972 output_asm_line_debug_info consistently. 16973 (dwarf2out_early_finish): Likewise. 16974 (dwarf2out_finish): Remove DW_AT_stmt_list from early generated 16975 type units. 16976 169772018-07-11 Richard Biener <rguenther@suse.de> 16978 16979 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): 16980 Rework father_bb setting in a way to avoid propagating constants 16981 multiple times on a loop body. 16982 169832018-07-10 Mark Wielaard <mark@klomp.org> 16984 16985 PR debug/86459 16986 * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert. 16987 169882018-07-10 Richard Biener <rguenther@suse.de> 16989 16990 * hash-map.h (hash_map::iterator::operator*): Return 16991 references to key and value. 16992 169932018-07-10 Jakub Jelinek <jakub@redhat.com> 16994 16995 PR c++/86443 16996 * gimplify.c (find_combined_omp_for): Add DATA argument, in addition 16997 to finding the inner OMP_FOR/OMP_SIMD stmt find non-trivial wrappers, 16998 BLOCKs with BLOCK_VARs, OMP_PARALLEL in between, OMP_FOR in between. 16999 (gimplify_omp_for): For composite loops, move outer 17000 OMP_{DISTRIBUTE,TASKLOOP,FOR,PARALLEL} right around innermost 17001 OMP_FOR/OMP_SIMD if there are any non-trivial wrappers. For class 17002 iterators add any needed clauses. Allow OMP_FOR_ORIG_DECLS to contain 17003 TREE_LIST for both the original class iterator and the "last" helper 17004 var. Gimplify OMP_FOR_PRE_BODY before the outermost composite 17005 loop, remember has_decl_expr from outer composite loops for the 17006 innermost OMP_SIMD in TREE_PRIVATE bit on OMP_FOR_INIT. 17007 170082018-07-09 Martin Sebor <msebor@redhat.com> 17009 17010 PR middle-end/77357 17011 PR middle-end/86428 17012 * builtins.c (c_strlen): Avoid out-of-bounds warnings when 17013 accessing implicitly initialized array elements. 17014 * expr.c (string_constant): Handle string initializers of 17015 character arrays within aggregates. 17016 * gimple-fold.c (fold_array_ctor_reference): Add argument. 17017 Store element offset. As a special case, handle zero size. 17018 (fold_nonarray_ctor_reference): Same. 17019 (fold_ctor_reference): Add argument. Store subobject offset. 17020 * gimple-fold.h (fold_ctor_reference): Add argument. 17021 170222018-07-09 Paul Koning <ni1d@arrl.net> 17023 17024 * config/pdp11/pdp11.c (pdp11_addr_cost): New function. 17025 (pdp11_insn_cost): New function. 17026 (pdp11_md_asm_adjust): New function. 17027 (TARGET_INVALID_WITHIN_DOLOOP): Define. 17028 (pdp11_rtx_costs): Update to match machine better. 17029 (output_addr_const_pdp11): Correct format mismatch warnings. 17030 * config/pdp11/pdp11.h (SLOW_BYTE_ACCESS): Correct definition. 17031 * config/pdp11/pdp11.md: General change to add base_cost and/or 17032 length attributes for use by new pdp11_insn_cost function. 17033 (MIN_BRANCH): Correct definition. 17034 (MIN_SOB): Ditto. 17035 (doloop_end): Use standard pattern name for looping pattern. 17036 (doloop_end_nocc): New. 17037 (movsf): Add another constraint alternative. 17038 (zero_extendqihi2): Add constraint alternatives for not in place 17039 extend. 17040 (zero_extendhisi2): Remove. 17041 (shift patterns): Add CC handling variants. 17042 (bswaphi2): New. 17043 (bswapsi2): New. 17044 (rothi3): New. 17045 (define_peephole2): New peephole to recognize mov that sets CC for 17046 subsequent test. 17047 170482018-07-09 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 17049 17050 * config/sparc/sparc.c (sparc_fold_builtin) <SPARC_BUILTIN_PDIST, 17051 SPARC_BUILTIN_PDISTN>: Adapt for signature change of wi::neg, 17052 wi::add. 17053 170542018-07-09 Jakub Jelinek <jakub@redhat.com> 17055 17056 PR c/86420 17057 * real.c (real_nextafter): Return true if result is denormal. 17058 170592018-07-09 Martin Liska <mliska@suse.cz> 17060 17061 * common.opt: Add back wrongly removed attribute. 17062 170632018-07-09 Richard Biener <rguenther@suse.de> 17064 17065 PR debug/86413 17066 * dwarf2out.c (gen_block_die): For an early generated DIE 17067 always output high/low PC attributes. 17068 170692018-07-09 Tom de Vries <tdevries@suse.de> 17070 17071 * cfgexpand.c (expand_debug_source_expr): Handle VAR_DECL. 17072 * tree-inline.c (remap_ssa_name): Handle default def ssa_name mapping 17073 onto VAR_DECL with abstract origin. 17074 170752018-07-07 Jim Wilson <jimw@sifive.com> 17076 17077 * config/riscv/riscv.c (TARGET_CUSTOM_FUNCTION_DESCRIPTORS): New. 17078 170792018-07-07 Tom de Vries <tdevries@suse.de> 17080 17081 * tree-dfa.c (dump_enumerated_decls): Handle cfun->cfg == NULL. 17082 170832018-07-07 Aldy Hernandez <aldyh@redhat.com> 17084 17085 * tree-vrp.c (vrp_int_const_binop): Change overflow type to 17086 overflow_type. 17087 (combine_bound): Use wide-int overflow calculation instead of 17088 rolling our own. 17089 * calls.c (maybe_warn_alloc_args_overflow): Change overflow type to 17090 overflow_type. 17091 * fold-const.c (int_const_binop_2): Same. 17092 (extract_muldiv_1): Same. 17093 (fold_div_compare): Same. 17094 (fold_abs_const): Same. 17095 * match.pd: Same. 17096 * poly-int.h (add): Same. 17097 (sub): Same. 17098 (neg): Same. 17099 (mul): Same. 17100 * predict.c (predict_iv_comparison): Same. 17101 * profile-count.c (slow_safe_scale_64bit): Same. 17102 * simplify-rtx.c (simplify_const_binary_operation): Same. 17103 * tree-chrec.c (tree_fold_binomial): Same. 17104 * tree-data-ref.c (split_constant_offset_1): Same. 17105 * tree-if-conv.c (idx_within_array_bound): Same. 17106 * tree-scalar-evolution.c (iv_can_overflow_p): Same. 17107 * tree-ssa-phiopt.c (minmax_replacement): Same. 17108 * tree-vect-loop.c (is_nonwrapping_integer_induction): Same. 17109 * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Same. 17110 * vr-values.c (vr_values::adjust_range_with_scev): Same. 17111 * wide-int.cc (wi::add_large): Same. 17112 (wi::mul_internal): Same. 17113 (wi::sub_large): Same. 17114 (wi::divmod_internal): Same. 17115 * wide-int.h: Change overflow type to overflow_type for neg, add, 17116 mul, smul, umul, div_trunc, div_floor, div_ceil, div_round, 17117 mod_trunc, mod_ceil, mod_round, add_large, sub_large, 17118 mul_internal, divmod_internal. 17119 (overflow_type): New enum. 17120 (accumulate_overflow): New. 17121 171222018-07-06 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> 17123 17124 * tree-ssa-phiopt.c (cond_removal_in_popcount_pattern): New. 17125 (tree_ssa_phiopt_worker): Call cond_removal_in_popcount_pattern. 17126 171272018-07-06 Kugan Vivekanandarajah <kuganv@linaro.org> 17128 17129 * tree-ssa-loop-niter.c (number_of_iterations_popcount): If popcount 17130 argument is checked for zero before entering loop, avoid checking again. 17131 171322018-07-06 Kugan Vivekanandarajah <kuganv@linaro.org> 17133 17134 * gimplify.h (generic_expr_could_trap_p): Set as global function. 17135 * gimplify.h (generic_expr_could_trap_p): Likwise. 17136 * tree-scalar-evolution.c (expression_expensive_p): Handle COND_EXPR. 17137 171382018-07-06 Jakub Jelinek <jakub@redhat.com> 17139 17140 PR tree-optimization/86401 17141 * fold-const.c (fold_binary_loc) <case BIT_AND_EXPR>: Move the 17142 ((A & N) + B) & M -> (A + B) & M etc. optimization into ... 17143 (fold_bit_and_mask): ... here. New helper function for match.pd. 17144 * fold-const.h (fold_bit_and_mask): Declare. 17145 * match.pd (((A & N) + B) & M -> (A + B) & M): New optimization. 17146 171472018-07-06 Peter Bergner <bergner@linux.ibm.com> 17148 17149 PR target/86324 17150 * target.def (translate_mode_attribute): New hook. 17151 * targhooks.h (default_translate_mode_attribute): Declare. 17152 * targhooks.c (default_translate_mode_attribute): New function. 17153 * doc/tm.texi.in (TARGET_TRANSLATE_MODE_ATTRIBUTE): New hook. 17154 * doc/tm.texi: Regenerate. 17155 * config/rs6000/rs6000.c (TARGET_TRANSLATE_MODE_ATTRIBUTE): Define. 17156 (rs6000_translate_mode_attribute): New function. 17157 171582018-07-06 Paul Koning <ni1d@arrl.net> 17159 17160 * doc/md.texi (define_split): Document DONE and FAIL. 17161 (define_peephole2): Ditto. 17162 171632018-07-05 Jeff Law <law@redhat.com> 17164 17165 PR tree-optimization/86010 17166 * tree-ssa-dse.c (compute_trims): More aggressively trim at 17167 both the head and tail of mem* and str* calls. 17168 171692018-07-05 Jim Wilson <jimw@sifive.com> 17170 17171 * config.gcc (riscv*-*-*): When setting xlen, handle riscv-*. 17172 171732018-07-05 Indu Bhagat <indu.bhagat@oracle.com> 17174 17175 * config/aarch64/aarch64-simd.md: correct flags text for 17176 MIN_EXPR replacement. 17177 171782018-07-05 James Clarke <jrtc27@jrtc27.com> 17179 17180 * configure: Regenerated. 17181 171822018-07-05 Carl Love <cel@us.ibm.com> 17183 17184 * config/rs6000/rs6000-c.c: Map ALTIVEC_BUILTIN_VEC_UNPACKH for 17185 float argument to VSX_BUILTIN_DOUBLEH_V4SF. 17186 Map ALTIVEC_BUILTIN_VEC_UNPACKL for float argument to 17187 VSX_BUILTIN_DOUBLEL_V4SF. 17188 171892018-07-05 Martin Sebor <msebor@redhat.com> 17190 17191 PR c++/86400 17192 * tree-ssa-strlen.c (maybe_set_strlen_range): Use type size rather 17193 than its domain to compute its the upper bound of a char array. 17194 171952018-07-05 Nathan Sidwell <nathan@acm.org> 17196 17197 Replace NO_IMPLICIT_EXTERN_C with SYSTEM_IMPLICIT_EXTERN_C. 17198 * doc/cpp.texi: Update comment. 17199 * doc/tm.texi: Rebuilt. 17200 * doc/tm.texi.in (NO_IMPLICIT_EXTERN_C): Replace with ... 17201 (SYSTEM_IMPLICIT_EXTERN_C): ... this, opposite sense. 17202 * doc/extend.texi (Backwards Compatibility): Clarify it is system 17203 headers affected by extern "C". 17204 * system.h: Poison NO_IMPLICIT_EXTERN_C. 17205 * config/alpha/alpha.h, config/arm/uclinux-elf.h, 17206 config/bfin/elf.h, config/cris/cris.h, config/darwin.h, 17207 config/dragonfly.h, config/freebsd.h, config/gnu-user.h, 17208 config/i386/cygming.h, config/i386/djgpp.h, config/i386/nto.h, 17209 config/ia64/hpux.h, config/lm32/lm32.h, config/lm32/uclinux-elf.h, 17210 config/lynx.h, config/mips/elf.h, config/mmix/mmix.h, 17211 config/netbsd.h, config/pa/pa-hpux.h, config/powerpcspe/sysv4.h, 17212 config/riscv/elf.h, config/rs6000/sysv4.h, config/rtems.h, 17213 config/s390/tpf.h, config/sh/newlib.h, config/sol2.h, 17214 config/sparc/openbsd64.h, config/sparc/sp-elf.h, 17215 config/sparc/sp64-elf.h, config/spu/spu.h, 17216 config/stormy16/stormy16.h, config/v850/v850.h, 17217 config/visium/visium.h, config/vx-common.h, config/xtensa/elf.h: Don't 17218 define NO_IMPLICIT_EXTERN_C. 17219 * config/rs6000/aix.h: Set SYSTEM_IMPLICIT_EXTERN_C. 17220 172212018-07-05 Tamar Christina <tamar.christina@arm.com> 17222 17223 PR target/84711 17224 * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE 17225 instead of GET_MODE_SIZE when comparing Units. 17226 172272018-07-05 Tamar Christina <tamar.christina@arm.com> 17228 17229 PR target/84711 17230 * rtlanal.c (set_noop_p): Constrain on mode change, 17231 include hard-reg-set.h 17232 172332018-07-05 Tamar Christina <tamar.christina@arm.com> 17234 17235 * config/aarch64/aarch64.c (aarch64_expand_movmem): Fix mode size. 17236 172372018-07-05 Jakub Jelinek <jakub@redhat.com> 17238 17239 Revert 17240 2018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> 17241 17242 PR sanitizer/84250 17243 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static 17244 libasan. 17245 * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. 17246 172472018-07-04 Maxim Ostapenko <m.ostapenko@samsung.com> 17248 17249 PR sanitizer/84250 17250 * config/gnu-user.h (LIBASAN_EARLY_SPEC): Pass -lstdc++ for static 17251 libasan. 17252 * gcc.c: Do not pass LIBUBSAN_SPEC if ASan is enabled with UBSan. 17253 172542018-07-04 Eric Botcazou <ebotcazou@adacore.com> 17255 17256 PR middle-end/86380 17257 * expmed.c (choose_multiplier): Fix incorrect comparison with mask. 17258 172592018-07-04 Aldy Hernandez <aldyh@redhat.com> 17260 17261 * tree-vrp.c (extract_range_from_binary_expr_1): Initialize 17262 neg_*_op* variables. 17263 172642018-07-04 Martin Liska <mliska@suse.cz> 17265 17266 * tree-switch-conversion.c: Define 17267 max_ratio_for_speed and max_ratio_for_size constants. 17268 172692018-07-04 Denys Vlasenko <dvlasenk@redhat.com> 17270 Martin Liska <mliska@suse.cz> 17271 17272 PR middle-end/66240 17273 PR target/45996 17274 PR c/84100 17275 * common.opt: Rename align options with 'str_' prefix. 17276 * common/config/i386/i386-common.c (set_malign_value): New 17277 function. 17278 (ix86_handle_option): Use it to set -falign-* options/ 17279 * config/aarch64/aarch64-protos.h (struct tune_params): Change 17280 type from int to string. 17281 * config/aarch64/aarch64.c: Update default values from int 17282 to string. 17283 * config/alpha/alpha.c (alpha_override_options_after_change): 17284 Likewise. 17285 * config/arm/arm.c (arm_override_options_after_change_1): Likewise. 17286 * config/i386/dragonfly.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print 17287 max skip conditionally. 17288 * config/i386/freebsd.h (SUBALIGN_LOG): New. 17289 (ASM_OUTPUT_MAX_SKIP_ALIGN): Print 17290 max skip conditionally. 17291 * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print 17292 max skip conditionally. 17293 * config/i386/gnu-user.h (SUBALIGN_LOG): New. 17294 (ASM_OUTPUT_MAX_SKIP_ALIGN): Print 17295 max skip conditionally. 17296 * config/i386/i386.c (struct ptt): Change type from int to 17297 string. 17298 (ix86_default_align): Set default values. 17299 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Print 17300 max skip conditionally. 17301 * config/i386/iamcu.h (SUBALIGN_LOG): New. 17302 (ASM_OUTPUT_MAX_SKIP_ALIGN): 17303 * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): 17304 * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Print 17305 max skip conditionally. 17306 * config/i386/openbsdelf.h (SUBALIGN_LOG): New. 17307 (ASM_OUTPUT_MAX_SKIP_ALIGN) Print max skip conditionally.: 17308 * config/i386/x86-64.h (SUBALIGN_LOG): New. 17309 (ASM_OUTPUT_MAX_SKIP_ALIGN): Print 17310 max skip conditionally. 17311 (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. 17312 * config/ia64/ia64.c (ia64_option_override): Set default values 17313 for alignment options. 17314 * config/m68k/m68k.c: Handle new str_align_* options. 17315 * config/mips/mips.c (mips_set_compression_mode): Change 17316 type of constants. 17317 (mips_option_override): Set default values for options. 17318 * config/powerpcspe/powerpcspe.c (rs6000_option_override_internal): 17319 Likewise. 17320 * config/rs6000/rs6000.c (rs6000_option_override_internal): 17321 Likewise. 17322 * config/rx/rx.c (rx_option_override): Likewise. 17323 * config/rx/rx.h (JUMP_ALIGN): Use align_jumps_log. 17324 (LABEL_ALIGN): Use align_labels_log. 17325 (LOOP_ALIGN): Use align_loops_align. 17326 * config/s390/s390.c (s390_asm_output_function_label): Use new 17327 macros. 17328 * config/sh/sh.c (sh_override_options_after_change): 17329 Change type of constants. 17330 * config/spu/spu.c (spu_sched_init): Likewise. 17331 * config/sparc/sparc.c (sparc_option_override): Set default 17332 values for options. 17333 * config/visium/visium.c (visium_option_override): Likewise. 17334 * config/visium/visium.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Do not 17335 emit p2align format with last argument if it's not needed. 17336 * doc/invoke.texi: Document extended format of -falign-*. 17337 * final.c: Use align_labels alignment. 17338 * flags.h (struct target_flag_state): Change type to use 17339 align_flags. 17340 (struct align_flags_tuple): New. 17341 (struct align_flags): Likewise. 17342 (align_loops_log): Redefine macro to use new types. 17343 (align_loops_max_skip): Redefine macro to use new types. 17344 (align_jumps_log): Redefine macro to use new types. 17345 (align_jumps_max_skip): Redefine macro to use new types. 17346 (align_labels_log): Redefine macro to use new types. 17347 (align_labels_max_skip): Redefine macro to use new types. 17348 (align_functions_log): Redefine macro to use new types. 17349 (align_loops): Redefine macro to use new types. 17350 (align_jumps): Redefine macro to use new types. 17351 (align_labels): Redefine macro to use new types. 17352 (align_functions): Redefine macro to use new types. 17353 (align_functions_max_skip): Redefine macro to use new types. 17354 (align_loops_value): New macro. 17355 (align_jumps_value): New macro. 17356 (align_labels_value): New macro. 17357 (align_functions_value): New macro. 17358 * function.c (invoke_set_current_function_hook): Propagate 17359 alignment values from flags to global variables default in 17360 topleev.h. 17361 * ipa-icf.c (sem_function::equals_wpa): Use 17362 cl_optimization_option_eq instead of memcmp. 17363 * lto-streamer.h (cl_optimization_stream_out): Support streaming 17364 of string types. 17365 (cl_optimization_stream_in): Likewise. 17366 * optc-save-gen.awk: Support strings in cl_optimization. 17367 * opth-gen.awk: Likewise. 17368 * opts.c (finish_options): Remove error checking of invalid 17369 value ranges. 17370 (MAX_CODE_ALIGN): Remove. 17371 (MAX_CODE_ALIGN_VALUE): Likewise. 17372 (parse_and_check_align_values): New function. 17373 (check_alignment_argument): Likewise. 17374 (common_handle_option): Use check_alignment_argument. 17375 * opts.h (parse_and_check_align_values): Declare. 17376 * toplev.c (init_alignments): Remove. 17377 (read_log_maxskip): New. 17378 (parse_N_M): Likewise. 17379 (parse_alignment_opts): Likewise. 17380 (backend_init_target): Remove usage of init_alignments. 17381 * toplev.h (parse_alignment_opts): Declare. 17382 * tree-streamer-in.c (streamer_read_tree_bitfields): Add new 17383 argument. 17384 * tree-streamer-out.c (streamer_write_tree_bitfields): Likewise. 17385 * tree.c (cl_option_hasher::equal): New. 17386 * varasm.c: Use new global macros. 17387 173882018-07-04 Denys Vlasenko <dvlasenk@redhat.com> 17389 17390 * config/i386/dragonfly.h: (ASM_OUTPUT_MAX_SKIP_ALIGN): 17391 Use a simpler align directive also if MAXSKIP = ALIGN-1. 17392 * config/i386/gas.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 17393 * config/i386/lynx.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 17394 * config/i386/netbsd-elf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 17395 * config/i386/i386.h (ASM_OUTPUT_MAX_SKIP_PAD): Likewise. 17396 * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove "If N 17397 is large, do at least 8 byte alignment" code. Add SUBALIGN_LOG 17398 define. Use a simpler align directive also if MAXSKIP = ALIGN-1. 17399 * config/i386/gnu-user.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 17400 * config/i386/iamcu.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 17401 * config/i386/openbsdelf.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 17402 * config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Likewise. 17403 174042018-07-04 Martin Liska <mliska@suse.cz> 17405 Jonathan Wakely <jwakely@redhat.com> 17406 17407 * coverage.c: Use correct type. 17408 * doc/invoke.texi: Language correction. 17409 174102018-07-03 H.J. Lu <hongjiu.lu@intel.com> 17411 17412 PR target/85620 17413 * config/i386/i386.c (rest_of_insert_endbranch): Also generate 17414 ENDBRANCH for non-tail call which may return via indirect branch. 17415 * doc/extend.texi: Document indirect_return attribute. 17416 174172018-07-03 Martin Sebor <msebor@redhat.com> 17418 17419 PR tree-optimization/86274 17420 * gimple-ssa-sprintf.c (fmtresult::type_max_digits): Verify 17421 precondition. 17422 (format_floating): Correct handling of infinities and NaNs. 17423 174242018-07-03 Martin Sebor <msebor@redhat.com> 17425 17426 * print-tree.c (print_real_cst): New function. 17427 (print_node_brief): Call it. 17428 (print_node): Ditto. 17429 174302018-07-03 Jeff Law <law@redhat.com> 17431 17432 * config/h8300/h8300.md (logical<mode>3_sn, logical<mode>3): Merge 17433 into a single pattern. 17434 17435 * config/h8300/h8300.md (ors code_iterator): New. 17436 (bsetqi_msx, bnotqi_msx patterns and splitters): Consolidate into 17437 a single pattern and single splitter. 17438 (bsethi_msx, bnothi_msx patterns): Consolidate into a single pattern. 17439 (iorqi3_1, xorqi3_1): Likewise. 17440 (iorqi3, xorqi3 expanders): Similarly. 17441 17442 * config/h8300/h8300.md (movmd_internal_normal): Consolidated with 17443 (movmd_internal) into a single pattern using the P mode iterator. 17444 (movmd splitters): Similarly. 17445 (stpcpy_internal_normal, stpcpy_internal): Similarly for thes patterns. 17446 (movsd splitters): Similarly. 17447 17448 * config/h8300/h8300.c (h8300_insn_length_from_table): Consolidate 17449 ADDB, ADDW and ADDL into a single ADD attribute which selects the 17450 right table based on the size of the operand. 17451 * config/h8300/h8300.md (length_table): Corresponding changes. All 17452 references to "addb", "addw" and "addl" changed to "add". 17453 (btst patterns): Merge two variants into a single pattern. 17454 (tstqi, tsthi): Likewise. 17455 (addhi3_incdec, addsi3_incdec): Likewise. 17456 (subhi3_h8300hs, subsi3_h8300hs): Likewise. 17457 (mulhi3, mulsi3): Likewise. 17458 (udivhi3, udivsi3): Likewise. 17459 (divhi3, divsi3): Likewise. 17460 (andorqi3, andorhi3, andorsi3): Likewise. 17461 174622018-07-03 Uros Bizjak <ubizjak@gmail.com> 17463 17464 PR target/85694 17465 * config/i386/sse.md (uavg<mode>3_ceil): New expander. 17466 (<sse2_avx2>_uavg<mode>3<mask_name>): Simplify expander. 17467 174682018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17469 17470 PR tree-optimization/85694 17471 * config/aarch64/iterators.md (HADD, RHADD): New int iterators. 17472 (u): Handle UNSPEC_SHADD, UNSPEC_UHADD, UNSPEC_SRHADD and 17473 UNSPEC_URHADD. 17474 * config/aarch64/aarch64-simd.md (<u>avg<mode>3_floor) 17475 (<u>avg<mode>3_ceil): New patterns. 17476 174772018-07-03 David Malcolm <dmalcolm@redhat.com> 17478 17479 * gcc.dg/vect/slp-perm-1.c: Remove "note: " prefix from 17480 scan-tree-dump directive. 17481 * gcc.dg/vect/slp-perm-2.c: Likewise. 17482 * gcc.dg/vect/slp-perm-3.c: Likewise. 17483 * gcc.dg/vect/slp-perm-5.c: Likewise. 17484 * gcc.dg/vect/slp-perm-6.c: Likewise. 17485 * gcc.dg/vect/slp-perm-7.c: Likewise. 17486 * gcc.dg/vect/slp-perm-8.c: Likewise. 17487 174882018-07-03 Marek Polacek <polacek@redhat.com> 17489 17490 PR middle-end/86202 17491 * gimple-fold.c (size_must_be_zero_p): Check the type of the size. 17492 174932018-07-03 Richard Biener <rguenther@suse.de> 17494 17495 PR ipa/86389 17496 * tree-ssa-structalias.c (find_func_clobbers): Properly 17497 handle indirect calls. 17498 174992018-07-03 Jeff Law <law@redhat.com> 17500 17501 * config/h8300/h8300.md (HSI, QHSI, QHSIF): New mode iterators. 17502 (shifts): New code iterator. 17503 (movqi, movhi, movsi, movsf expanders): Consolidate into a single 17504 expander. Fix HImode handling on H8/SX. 17505 (addqi3, addhi3, addsi3 expanders): Consolidate into a single expander. 17506 (subqi3, subhi3, subsi3 expanders): Likewise. 17507 (andqi3, andhi3, andsi3 expanders): Likewise. 17508 (iorqi3, iorhi3, iorsi3 expanders): Likewise. 17509 (xorqi3, xorhi3, xorsi3 expanders): Likewise. 17510 (negqi2, neghi2, negsi2, negsf2 expanders): Likewise. 17511 (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. 17512 (zero_extendqihi2, zero_extendqisi2): Likewise. 17513 (extendqihi2, extendqisi2): Likewise. 17514 (rotlqi3, rotlhi3, rotlsi3): Likewise. 17515 (neghi2_h8300, negsi2_h8300): Likewise for these patterns. 17516 (rotlqi3_1, rotlhi3_1): Likewise. 17517 (logicalhi3_sn, logicalsi3_sn): Likewise. 17518 (logicalhi3, logicalsi3): Likewise. 17519 175202018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17521 17522 * tree-vect-patterns.c (vect_recog_rotate_pattern) 17523 (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) 17524 (vect_recog_mixed_size_cond_pattern, adjust_bool_pattern_cast) 17525 (adjust_bool_pattern, vect_recog_bool_pattern): Pass the vector 17526 type to append_pattern_def_seq instead of creating a stmt_vec_info 17527 directly. 17528 (build_mask_conversion): Likewise. Remove vinfo argument. 17529 (vect_add_conversion_to_patterm): Likewise, renaming to... 17530 (vect_add_conversion_to_pattern): ...this. 17531 (vect_recog_mask_conversion_pattern): Update call to 17532 build_mask_conversion. Pass the vector type to 17533 append_pattern_def_seq here too. 17534 (vect_recog_gather_scatter_pattern): Update call to 17535 vect_add_conversion_to_pattern. 17536 175372018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17538 17539 * tree-vect-patterns.c (new_pattern_def_seq): Delete. 17540 (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) 17541 (vect_recog_widen_op_pattern, vect_recog_over_widening_pattern) 17542 (vect_recog_rotate_pattern, vect_synth_mult_by_constant): Don't set 17543 STMT_VINFO_PATTERN_DEF_SEQ to null here. 17544 (vect_recog_pow_pattern, vect_recog_vector_vector_shift_pattern) 17545 (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern): Use 17546 append_pattern_def_seq instead of new_pattern_def_seq. 17547 (vect_recog_divmod_pattern): Do both of the above. 17548 (vect_pattern_recog_1): Assert that STMT_VINO_PATTERN_DEF_SEQ 17549 is null. 17550 175512018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17552 17553 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): 17554 (vect_recog_sad_pattern, vect_recog_widen_op_pattern) 17555 (vect_recog_widen_mult_pattern, vect_recog_pow_pattern): 17556 (vect_recog_widen_sum_pattern, vect_recog_over_widening_pattern) 17557 (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern) 17558 (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) 17559 (vect_recog_vector_vector_shift_pattern, vect_synth_mult_by_constant) 17560 (vect_recog_mult_pattern, vect_recog_divmod_pattern) 17561 (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) 17562 (vect_recog_mask_conversion_pattern): Replace vec<gimple *> 17563 parameter with a single stmt_vec_info. 17564 (vect_recog_func_ptr): Likewise. 17565 (vect_recog_gather_scatter_pattern): Likewise, folding in... 17566 (vect_try_gather_scatter_pattern): ...this. 17567 (vect_pattern_recog_1): Remove stmts_to_replace and just pass 17568 the stmt_vec_info of the statement to be matched. Don't clear 17569 STMT_VINFO_RELATED_STMT. 17570 (vect_pattern_recog): Update call accordingly. 17571 175722018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17573 17574 PR tree-optimization/85694 17575 * doc/md.texi (avgM3_floor, uavgM3_floor, avgM3_ceil) 17576 (uavgM3_ceil): Document new optabs. 17577 * doc/sourcebuild.texi (vect_avg_qi): Document new target selector. 17578 * internal-fn.def (IFN_AVG_FLOOR, IFN_AVG_CEIL): New internal 17579 functions. 17580 * optabs.def (savg_floor_optab, uavg_floor_optab, savg_ceil_optab) 17581 (savg_ceil_optab): New optabs. 17582 * tree-vect-patterns.c (vect_recog_average_pattern): New function. 17583 (vect_vect_recog_func_ptrs): Add it. 17584 * tree-vect-stmts.c (vectorizable_call): Get the type of the zero 17585 constant directly from the associated lhs. 17586 175872018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17588 17589 * tree-vect-patterns.c (vect_split_statement): New function. 17590 (vect_convert_input): Use it to try to split an existing cast. 17591 175922018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17593 17594 * poly-int.h (print_hex): New function. 17595 * dumpfile.h (dump_dec, dump_hex): Declare. 17596 * dumpfile.c (dump_dec, dump_hex): New poly_wide_int functions. 17597 * tree-vectorizer.h (_stmt_vec_info): Add min_output_precision, 17598 min_input_precision, operation_precision and operation_sign. 17599 * tree-vect-patterns.c (vect_get_range_info): New function. 17600 (vect_same_loop_or_bb_p, vect_single_imm_use) 17601 (vect_operation_fits_smaller_type): Delete. 17602 (vect_look_through_possible_promotion): Add an optional 17603 single_use_p parameter. 17604 (vect_recog_over_widening_pattern): Rewrite to use new 17605 stmt_vec_info infomration. Handle one operation at a time. 17606 (vect_recog_cast_forwprop_pattern, vect_narrowable_type_p) 17607 (vect_truncatable_operation_p, vect_set_operation_type) 17608 (vect_set_min_input_precision): New functions. 17609 (vect_determine_min_output_precision_1): Likewise. 17610 (vect_determine_min_output_precision): Likewise. 17611 (vect_determine_precisions_from_range): Likewise. 17612 (vect_determine_precisions_from_users): Likewise. 17613 (vect_determine_stmt_precisions, vect_determine_precisions): Likewise. 17614 (vect_vect_recog_func_ptrs): Put over_widening first. 17615 Add cast_forwprop. 17616 (vect_pattern_recog): Call vect_determine_precisions. 17617 176182018-07-03 Richard Sandiford <richard.sandiford@arm.com> 17619 17620 * tree-vect-patterns.c (vect_mark_pattern_stmts): Remove pattern 17621 statements that have been replaced by further pattern statements. 17622 (vect_pattern_recog_1): Clear STMT_VINFO_PATTERN_DEF_SEQ on failure. 17623 176242018-07-03 Richard Biener <rguenther@suse.de> 17625 17626 * tree-vect-stmts.c (vect_is_simple_use): Consolidate dumping, 17627 always set *dt. Dump vectype in vectype overload. 17628 * dumpfile.h (dump_gimple_expr): New function. 17629 (dump_gimple_expr_loc): Likewise. 17630 * dumpfile.c (dump_gimple_expr): New function. 17631 (dump_gimple_expr_loc): Likewise. 17632 176332018-07-02 Jeff Law <law@redhat.com> 17634 17635 * config/h8300/h8300.md (movqi_h8300, movqi_h8300hs): Consolidate 17636 the H8/300, H8/300H and H8/S variants into a single pattern. 17637 (movhi_h8300, movqi_h8300hs): Similarly. 17638 (pushqi_h8300hs, pushhi_h8300hs): Consolidate into a single pattern. 17639 (QHI mode iterator): New. 17640 17641 * config/h8300/h8300.md: Remove trailing whitespace. 17642 176432018-07-02 Jim Wilson <jimw@sifive.com> 17644 17645 * config/riscv/riscv.c (riscv_expand_epilogue): Use emit_jump_insn 17646 instead of emit_insn for interrupt returns. 17647 * config/riscv/riscv.md (riscv_met): Add (return) to rtl. 17648 (riscv_sret, riscv_uret): Likewise. 17649 176502018-07-02 David Malcolm <dmalcolm@redhat.com> 17651 17652 * pretty-print.c (selftest::test_pp_format): Move save and restore 17653 of quotes to class auto_fix_quotes, and add an instance. 17654 * selftest.c: Include "intl.h". 17655 (selftest::auto_fix_quotes::auto_fix_quotes): New ctor. 17656 (selftest::auto_fix_quotes::~auto_fix_quotes): New dtor. 17657 * selftest.h (selftest::auto_fix_quotes): New class. 17658 176592018-07-02 Richard Henderson <richard.henderson@linaro.org> 17660 17661 * config/aarch64/aarch64-protos.h, config/aarch64/aarch64.c 17662 (aarch64_sve_prepare_conditional_op): Remove. 17663 * config/aarch64/aarch64-sve.md (cond_<SVE_INT_BINARY><SVE_I>): 17664 Allow aarch64_simd_reg_or_zero as select operand; remove 17665 the aarch64_sve_prepare_conditional_op call. 17666 (cond_<SVE_INT_BINARY_SD><SVE_SDI>): Likewise. 17667 (cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise. 17668 (*cond_<SVE_INT_BINARY><SVE_I>_z): New pattern. 17669 (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_z): New pattern. 17670 (*cond_<SVE_COND_FP_BINARY><SVE_F>_z): New pattern. 17671 (*cond_<SVE_INT_BINARY><SVE_I>_any): New pattern. 17672 (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_any): New pattern. 17673 (*cond_<SVE_COND_FP_BINARY><SVE_F>_any): New pattern 17674 and a splitters to match all of the *_any patterns. 17675 * config/aarch64/predicates.md (aarch64_sve_any_binary_operator): New. 17676 17677 * config/aarch64/iterators.md (SVE_INT_BINARY_REV): Remove. 17678 (SVE_COND_FP_BINARY_REV): Remove. 17679 (sve_int_op_rev, sve_fp_op_rev): New. 17680 * config/aarch64/aarch64-sve.md (*cond_<SVE_INT_BINARY><SVE_I>_0): New. 17681 (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_0): New. 17682 (*cond_<SVE_COND_FP_BINARY><SVE_F>_0): New. 17683 (*cond_<SVE_INT_BINARY><SVE_I>_2): Rename, add movprfx alternative. 17684 (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_2): Similarly. 17685 (*cond_<SVE_COND_FP_BINARY><SVE_F>_2): Similarly. 17686 (*cond_<SVE_INT_BINARY><SVE_I>_3): Similarly; use sve_int_op_rev. 17687 (*cond_<SVE_INT_BINARY_SD><SVE_SDI>_3): Similarly. 17688 (*cond_<SVE_COND_FP_BINARY><SVE_F>_3): Similarly; use sve_fp_op_rev. 17689 17690 * config/aarch64/aarch64-sve.md (cond_<SVE_COND_FP_BINARY><SVE_F>): 17691 Remove match_dup 1 from the inner unspec. 17692 (*cond_<SVE_COND_FP_BINARY><SVE_F>): Likewise. 17693 17694 * config/aarch64/aarch64.md (movprfx): New attr. 17695 (length): Default movprfx to 8. 17696 * config/aarch64/aarch64-sve.md (*mul<SVE_I>3): Add movprfx alt. 17697 (*madd<SVE_I>, *msub<SVE_I): Likewise. 17698 (*<su>mul<SVE_I>3_highpart): Likewise. 17699 (*<SVE_INT_BINARY_SD><SVE_SDI>3): Likewise. 17700 (*v<ASHIFT><SVE_I>3): Likewise. 17701 (*<su><MAXMIN><SVE_I>3): Likewise. 17702 (*<su><MAXMIN><SVE_F>3): Likewise. 17703 (*fma<SVE_F>4, *fnma<SVE_F>4): Likewise. 17704 (*fms<SVE_F>4, *fnms<SVE_F>4): Likewise. 17705 (*div<SVE_F>4): Likewise. 17706 177072018-07-02 Richard Sandiford <richard.sandiford@arm.com> 17708 17709 * tree-vect-patterns.c (vect_recog_widen_shift_pattern): Fix typo 17710 in dump string. 17711 177122018-07-02 Richard Biener <rguenther@suse.de> 17713 17714 PR tree-optimization/86363 17715 * tree-ssa-sccvn.c (vn_reference_lookup_3): Check the 17716 memset argument refers to a non-variable address. 17717 177182018-07-02 Aldy Hernandez <aldyh@redhat.com> 17719 17720 * tree-vrp.c (extract_range_from_binary_expr_1): Abstract a lot of the 17721 {PLUS,MINUS}_EXPR code to... 17722 (adjust_symbolic_bound): ...here, 17723 (combine_bound): ...here, 17724 (set_value_range_with_overflow): ...and here. 17725 177262018-07-02 Aldy Hernandez <aldyh@redhat.com> 17727 17728 * tree-vrp.c (extract_range_from_unary_expr): Abstract ABS_EXPR 17729 code... 17730 (extract_range_from_abs_expr): ...here. 17731 177322018-07-02 Eric Botcazou <ebotcazou@adacore.com> 17733 17734 * config/i386/i386.c (ix86_finalize_stack_frame_flags): Do not overrule 17735 -fno-omit-frame-pointer when not optimizing. 17736 177372018-07-02 Martin Liska <mliska@suse.cz> 17738 17739 PR ipa/86279 17740 * ipa-pure-const.c (malloc_candidate_p): Revert usage of ::get. 17741 (propagate_nothrow): Likewise. 17742 177432018-07-02 Martin Liska <mliska@suse.cz> 17744 17745 PR ipa/86323 17746 * ipa-inline.c (early_inliner): Revert wrongly added ::get call. 17747 177482018-07-02 David Malcolm <dmalcolm@redhat.com> 17749 17750 * dumpfile.c (dump_generic_expr_loc): Undo removal of this 17751 function in r262149, changing "loc" param from source_location to 17752 const dump_location_t &. 17753 * dumpfile.h (dump_generic_expr_loc): Undo removal of this 17754 declaration, as above. 17755 177562018-07-01 Paul Koning <ni1d@arrl.net> 17757 17758 * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle 17759 -munit-asm, -mgnu-asm, -mdec-asm. 17760 * config/pdp11/pdp11-protos.h (pdp11_gen_int_label): New. 17761 (pdp11_output_labelref): New. 17762 (pdp11_output_def): New. 17763 (pdp11_output_addr_vec_elt): New. 17764 * config/pdp11/pdp11.c: Use tab between opcode and operands. Use 17765 %# and %@ format codes. 17766 (pdp11_option_override): New. 17767 (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define. 17768 (pdp11_output_ident): New. 17769 (pdp11_asm_named_section): New. 17770 (pdp11_asm_init_sections): New. 17771 (pdp11_file_start): New. 17772 (pdp11_file_end): New. 17773 (output_ascii): Use .ascii/.asciz for -mdec-asm. 17774 (pdp11_asm_print_operand): Update %# and %$ for -mdec-asm. Add 17775 %o, like %c but octal. 17776 (pdp11_option_override): New. 17777 * config/pdp11/pdp11.h (TEXT_SECTION_ASM_OP): Update for 17778 -mdec-asm. 17779 (DATA_SECTION_ASM_OP): Ditto. 17780 (READONLY_DATA_SECTION_ASM_OP): New. 17781 (IS_ASM_LOGICAL_LINE_SEPARATOR): New. 17782 (ASM_GENERATE_INTERNAL_LABEL): Use new function. 17783 (ASM_OUTPUT_LABELREF): Ditto. 17784 (ASM_OUTPUT_DEF): Ditto. 17785 (ASM_OUTPUT_EXTERNAL): New. 17786 (ASM_OUTPUT_SOURCE_FILENAME): New. 17787 (ASM_OUTPUT_ADDR_VEC_ELT): Use new function. 17788 (ASM_OUTPUT_SKIP): Update for -mdec-asm. 17789 * config/pdp11/pdp11.md: Use tab between opcode and operands. Use 17790 %# and %@ format codes. 17791 * config/pdp11/pdp11.opt (mgnu-asm): New. 17792 (mdec-asm): Conflicts with -mgnu-asm and -munix-asm. 17793 (munix-asm): Conflicts with -mdec-asm and -mgnu-asm. 17794 * doc/invoke.txt (PDP-11 Options): Add -mgnu-asm. 17795 177962018-07-01 Aldy Hernandez <aldyh@redhat.com> 17797 17798 * tree-ssa-threadupdate.c (mark_threaded_blocks): Avoid 17799 dereferencing path[] beyond its length. 17800 (debug_path): New. 17801 (debug_all_paths): New. 17802 (rewire_first_differing_edge): New. 17803 (adjust_paths_after_duplication): New. 17804 (duplicate_thread_path): Call adjust_paths_after_duplication. 17805 Add new argument. 17806 (thread_through_all_blocks): Add new argument to 17807 duplicate_thread_path. 17808 178092018-06-30 Jim Wilson <jimw@sifive.com> 17810 17811 * config/riscv/predicates.md (p2m1_shift_operand): New. 17812 (high_mask_shift_operand): New. 17813 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): New combiner 17814 pattern using p2m1_shift_operand. 17815 (lshsi3_zero_extend_3+2): New combiner pattern using 17816 high_mask_shift_operand. 17817 178182018-06-30 Richard Sandiford <richard.sandiford@arm.com> 17819 17820 * tree-vect-patterns.c (vect_get_external_def_edge): New function, 17821 split out from... 17822 (vect_recog_rotate_pattern): ...here. 17823 (vect_convert_input): Try to insert casts of invariants in the 17824 preheader. 17825 * tree-vect-loop-manip.c (vect_loop_versioning): Don't require the 17826 preheader to be empty. 17827 178282018-06-30 Richard Sandiford <richard.sandiford@arm.com> 17829 17830 * tree-vect-patterns.c (append_pattern_def_seq): Take an optional 17831 vector type. If given, install it in the new statement's 17832 STMT_VINFO_VECTYPE. 17833 (vect_element_precision): New function. 17834 (vect_unpromoted_value): New struct. 17835 (vect_unpromoted_value::vect_unpromoted_value): New function. 17836 (vect_unpromoted_value::set_op): Likewise. 17837 (vect_look_through_possible_promotion): Likewise. 17838 (vect_joust_widened_integer, vect_joust_widened_type): Likewise. 17839 (vect_widened_op_tree, vect_convert_input): Likewise. 17840 (vect_convert_inputs, vect_convert_output): Likewise. 17841 (vect_recog_dot_prod_pattern): Use vect_look_through_possible_promotion 17842 to handle the optional cast of the multiplication result and 17843 vect_widened_op_tree to detect the widened multiplication itself. 17844 Do not require the input and output of promotion casts to have 17845 the same sign, but base the signedness of the operation on the 17846 input rather than the result. If the pattern includes two 17847 promotions, check that those promotions have the same sign. 17848 Do not restrict the MULT_EXPR handling to a double-width result; 17849 handle quadruple-width results and wider. Use vect_convert_inputs 17850 to convert the inputs to the common type. 17851 (vect_recog_sad_pattern): Use vect_look_through_possible_promotion 17852 to handle the optional cast of the ABS result. Also allow a sign 17853 change or a sign extension between the ABS and MINUS. 17854 Use vect_widened_op_tree to detect the widened subtraction and use 17855 vect_convert_inputs to convert the inputs to the common type. 17856 (vect_handle_widen_op_by_const): Delete. 17857 (vect_recog_widen_op_pattern): New function. 17858 (vect_recog_widen_mult_pattern): Use it. 17859 (vect_recog_widen_shift_pattern): Likewise. 17860 (vect_recog_widen_sum_pattern): Use 17861 vect_look_through_possible_promotion to handle the promoted 17862 PLUS_EXPR operand. 17863 178642018-06-30 Richard Sandiford <richard.sandiford@arm.com> 17865 17866 * gimple-iterator.c (gsi_for_stmt): Add a new overload that takes 17867 the containing gimple_seq *. 17868 * gimple-iterator.h (gsi_for_stmt): Declare it. 17869 * tree-vect-patterns.c (vect_recog_dot_prod_pattern) 17870 (vect_recog_sad_pattern, vect_recog_widen_sum_pattern) 17871 (vect_recog_widen_shift_pattern, vect_recog_rotate_pattern) 17872 (vect_recog_vector_vector_shift_pattern, vect_recog_divmod_pattern) 17873 (vect_recog_mask_conversion_pattern): Remove STMT_VINFO_IN_PATTERN_P 17874 checks. 17875 (vect_init_pattern_stmt, vect_set_pattern_stmt): New functions, 17876 split out from... 17877 (vect_mark_pattern_stmts): ...here. Handle cases in which the 17878 statement being replaced is part of an existing pattern 17879 definition sequence, inserting the new pattern statements before 17880 the original one. 17881 (vect_pattern_recog_1): Don't return a bool. If the statement 17882 is already part of a pattern, instead apply pattern matching 17883 to the pattern definition statements. Don't clear the 17884 STMT_VINFO_RELATED_STMT if is_pattern_stmt_p. 17885 (vect_pattern_recog): Don't break after the first match; 17886 continue processing the pattern definition statements instead. 17887 Don't bail out for STMT_VINFO_IN_PATTERN_P here. 17888 178892018-06-30 Richard Sandiford <richard.sandiford@arm.com> 17890 17891 * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. 17892 (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) 17893 (vect_recog_widen_sum_pattern): Use it. 17894 178952018-06-30 Richard Sandiford <richard.sandiford@arm.com> 17896 17897 * tree-vect-loop.c (vectorizable_reduction): Assert that the 17898 phi is not a pattern statement and has not been replaced by 17899 a pattern statement. 17900 * tree-vect-patterns.c (type_conversion_p): Don't check 17901 STMT_VINFO_IN_PATTERN_P. 17902 (vect_recog_vector_vector_shift_pattern): Likewise. 17903 (vect_recog_dot_prod_pattern): Expect vect_is_simple_use to return 17904 the pattern statement rather than the original statement; check 17905 directly for a WIDEN_MULT_EXPR here. 17906 * tree-vect-slp.c (vect_get_and_check_slp_defs): Expect 17907 vect_is_simple_use to return the pattern statement rather 17908 than the original statement; use is_pattern_stmt_p to check 17909 for such a pattern statement. 17910 * tree-vect-stmts.c (process_use): Expect vect_is_simple_use 17911 to return the pattern statement rather than the original statement; 17912 don't do the same transformation here. 17913 (vect_is_simple_use): If the defining statement has been replaced 17914 by a pattern statement, return the pattern statement instead. 17915 Remove the corresponding (local) transformation from the vectype 17916 overload. 17917 179182018-06-30 Richard Sandiford <richard.sandiford@arm.com> 17919 17920 * tree-vectorizer.h (vect_is_simple_use): Move the gimple ** to the 17921 end and default to null. 17922 * tree-vect-loop.c (vect_create_epilog_for_reduction) 17923 (vectorizable_reduction): Update calls accordingly, dropping the 17924 gimple ** argument if the passed-back statement isn't needed. 17925 * tree-vect-patterns.c (vect_get_internal_def, type_conversion_p) 17926 (vect_recog_rotate_pattern): Likewise. 17927 (vect_recog_mask_conversion_pattern): Likewise. 17928 * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise. 17929 (vect_mask_constant_operand_p): Likewise. 17930 * tree-vect-stmts.c (is_simple_and_all_uses_invariant, process_use): 17931 (vect_model_simple_cost, vect_get_vec_def_for_operand): Likewise. 17932 (get_group_load_store_type, get_load_store_type): Likewise. 17933 (vect_check_load_store_mask, vect_check_store_rhs): Likewise. 17934 (vectorizable_call, vectorizable_simd_clone_call): Likewise. 17935 (vectorizable_conversion, vectorizable_assignment): Likewise. 17936 (vectorizable_shift, vectorizable_operation): Likewise. 17937 (vectorizable_store, vect_is_simple_cond): Likewise. 17938 (vectorizable_condition, vectorizable_comparison): Likewise. 17939 (get_same_sized_vectype, vect_get_mask_type_for_stmt): Likewise. 17940 (vect_is_simple_use): Rename the def_stmt argument to def_stmt_out 17941 and move it to the end. Cope with null def_stmt_outs. 17942 179432018-06-30 Bernd Edlinger <bernd.edlinger@hotmail.de> 17944 17945 * Makefile.in (FLAGS_TO_PASS): Add RANLIB_FOR_TARGET. 17946 179472018-06-29 Jeff Law <law@redhat.com> 17948 17949 * config/v850/v850.c (v850_legitimate_address_p): Handle large 17950 displacements for TARGET_V850E2V3 and newer. 17951 (TARGET_LRA_P): Remove. Defaults to LRA now. 17952 * config/v850/v850.md (sign23byte_load): Remove. 17953 (unsign23byte_load, sign23hword_load, unsign23hword_load): Likewise. 17954 (23word_load, 23byte_store, 23hword_store, 23word_store): Likewise. 17955 179562018-06-29 Martin Liska <mliska@suse.cz> 17957 17958 PR lto/85759 17959 * coverage.c (coverage_init): Mangle full path name. 17960 * doc/invoke.texi: Document the change. 17961 * gcov-io.c (mangle_path): New. 17962 * gcov-io.h (mangle_path): Likewise. 17963 * gcov.c (mangle_name): Use mangle_path for path mangling. 17964 179652018-06-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 17966 17967 * config/arm/arm.c (output_move_double): Don't allow STRD instructions 17968 if starting source register is not even. 17969 179702018-06-29 Martin Liska <mliska@suse.cz> 17971 17972 PR tree-optimization/86263 17973 * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion): 17974 Make edge redirection. 17975 179762018-06-29 David Malcolm <dmalcolm@redhat.com> 17977 17978 * dumpfile.c (dump_loc): Add indentation based on scope depth. 17979 (dump_scope_depth): New variable. 17980 (get_dump_scope_depth): New function. 17981 (dump_begin_scope): New function. 17982 (dump_end_scope): New function. 17983 * dumpfile.h (get_dump_scope_depth): New declaration. 17984 (dump_begin_scope): New declaration. 17985 (dump_end_scope): New declaration. 17986 (class auto_dump_scope): New class. 17987 (AUTO_DUMP_SCOPE): New macro. 17988 * tree-vectorizer.h (DUMP_VECT_SCOPE): Reimplement in terms of 17989 AUTO_DUMP_SCOPE. 17990 179912018-06-29 Richard Biener <rguenther@suse.de> 17992 17993 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): Assert 17994 compute_all_dependences succeeds. 17995 * tree-vect-loop.c (vect_get_datarefs_in_loop): Fail early if we 17996 exceed --param loop-max-datarefs-for-datadeps. 17997 179982018-06-29 Jakub Jelinek <jakub@redhat.com> 17999 18000 * config/rs6000/t-rs6000: Append rs6000-modes.h to TM_H. 18001 180022018-06-28 Uros Bizjak <ubizjak@gmail.com> 18003 18004 PR target/86348 18005 * config/i386/sse.md (*vec_extractv4si_0_zext_sse4): Use 18006 alternative 0 in preferred_for_speed attribute. 18007 180082018-06-28 Paul Koning <ni1d@arrl.net> 18009 18010 * config/pdp11/pdp11-protos.h (pdp11_shift_length): New function. 18011 * config/pdp11/pdp11.c (pdp11_shift_length): New function. 18012 * config/pdp11/pdp11.h (ADJUST_INSN_LENGTH): Remove. 18013 * config/pdp11/pdp11.md: Correct "length" attribute calculation 18014 for shift insn patterns. 18015 180162018-06-28 David Malcolm <dmalcolm@redhat.com> 18017 18018 * cgraph.c (cgraph_node::get_body): Replace assignments to 18019 "dump_file" with calls to set_dump_file. 18020 * dumpfile.c (alt_dump_file): Make static, and group with... 18021 (alt_flags): ...this definition. 18022 (dumps_are_enabled): New variable. 18023 (refresh_dumps_are_enabled): New function. 18024 (set_dump_file): New function. 18025 (set_alt_dump_file): New function. 18026 (gcc::dump_manager::dump_start): Replace assignments to 18027 "dump_file" and "alt_dump_file" with calls to set_dump_file and 18028 set_alt_dump_file. 18029 (gcc::dump_manager::dump_finish): Likewise. 18030 * dumpfile.h (alt_dump_file): Delete decl. 18031 (dumps_are_enabled): New variable decl. 18032 (set_dump_file): New function decl. 18033 (dump_enabled_p): Rewrite in terms of new "dumps_are_enabled" 18034 global. 18035 * tree-nested.c (lower_nested_functions): Replace assignments to 18036 "dump_file" with calls to set_dump_file. 18037 180382018-06-28 Eric Botcazou <ebotcazou@adacore.com> 18039 18040 * tree-cfg.c (verify_gimple_in_cfg): Call verify_location on the 18041 goto_locus of each outgoing edge of each basic block. 18042 180432018-06-28 Richard Biener <rguenther@suse.de> 18044 18045 * dwarf2out.c (decl_scope_table): Remove. 18046 (push_decl_scope): Likewise. 18047 (pop_decl_scope): Likewise. 18048 (gen_type_die_for_member): Do not call push/pop_decl_scope. 18049 (gen_struct_or_union_type_die): Likewise. 18050 (gen_tagged_type_die): Likewise. 18051 (dwarf2out_init): Do not initialize decl_scope_table. 18052 (dwarf2out_c_finalize): Do not free it. 18053 180542018-06-28 Richard Biener <rguenther@suse.de> 18055 18056 * dwarf2out.c (gen_subprogram_die): Use is_unit_die when 18057 deciding whether to not re-use a DIE. 18058 180592018-06-28 Richard Biener <rguenther@suse.de> 18060 18061 * dwarf2out.c (gen_subprogram_die): Always re-use DIEs with an 18062 DW_AT_abstract_origin attribute. 18063 180642018-06-28 Martin Liska <mliska@suse.cz> 18065 18066 * tree-switch-conversion.c (jump_table_cluster::can_be_handled): 18067 Use newly introduced constants. 18068 * tree-switch-conversion.h (struct jump_table_cluster): 18069 Define max_ratio_for_size and max_ratio_for_speed. 18070 180712018-06-28 Martin Liska <mliska@suse.cz> 18072 18073 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): 18074 Add new checking assert to catch invalid state. 18075 (jump_table_cluster::can_be_handled): Handle single case 18076 clusters. 18077 (jump_table_cluster::is_beneficial): Bail out for such case. 18078 (bit_test_cluster::find_bit_tests): 18079 Add new checking assert to catch invalid state. 18080 (bit_test_cluster::can_be_handled): Handle single case 18081 clusters. 18082 (bit_test_cluster::is_beneficial): Bail out for such case. 18083 (switch_decision_tree::analyze_switch_statement): 18084 Fix comment. 18085 180862018-06-28 Martin Liska <mliska@suse.cz> 18087 18088 * common.opt: Introduce -completion option. 18089 * gcc.c (driver_handle_option): Handle it. 18090 (driver::main): Print completions if completion 18091 is set. 18092 * opt-suggestions.c (option_proposer::get_completions): 18093 New function. 18094 (option_proposer::suggest_completion): Likewise. 18095 (option_proposer::find_param_completions): Likewise. 18096 (verify_autocompletions): Likewise. 18097 (test_completion_valid_options): Likewise. 18098 (test_completion_valid_params): Likewise. 18099 (in_completion_p): Likewise. 18100 (empty_completion_p): Likewise. 18101 (test_completion_partial_match): Likewise. 18102 (test_completion_garbage): Likewise. 18103 (opt_proposer_c_tests): Likewise. 18104 * opt-suggestions.h: Declare new functions. 18105 * opts.c (common_handle_option): Handle OPT__completion_. 18106 * selftest-run-tests.c (selftest::run_tests): Add 18107 opt_proposer_c_tests. 18108 * selftest.c (assert_str_startswith): New. 18109 * selftest.h (assert_str_startswith): Likewise. 18110 (opt_proposer_c_tests): New. 18111 (ASSERT_STR_STARTSWITH): Likewise. 18112 181132018-06-28 Martin Liska <mliska@suse.cz> 18114 18115 * Makefile.in: Add opt-suggestions.o. 18116 * gcc-main.c: Include opt-suggestions.h. 18117 * gcc.c (driver::driver): Likewise. 18118 (driver::~driver): Remove m_option_suggestions. 18119 (driver::build_option_suggestions): Moved to option_proposer. 18120 (driver::suggest_option): Likewise. 18121 (driver::handle_unrecognized_options): Use option_proposer. 18122 * gcc.h (class driver): Add new memver m_option_proposer. 18123 * opt-suggestions.c: New file. 18124 * opt-suggestions.h: New file. 18125 181262018-06-28 Martin Liska <mliska@suse.cz> 18127 18128 * vec.h (class auto_string_vec): New (moved from auto_argvec). 18129 (auto_string_vec::~auto_string_vec): Likewise. 18130 181312018-06-28 Eric Botcazou <ebotcazou@adacore.com> 18132 18133 * tree-inline.h (struct copy_body_data): Move remapping_type_depth and 18134 prevent_decl_creation_for_types fields up and add reset_location field. 18135 * tree-inline.c (remap_gimple_stmt): Force input_location on the new 18136 statement if id->reset_location is true. 18137 (copy_edges_for_bb): Do not set goto_locus on the new edges if 18138 id->reset_location is true. 18139 (copy_phis_for_bb): Force input_location on the arguments if 18140 id->reset_location is true. 18141 (expand_call_inline): Set id->reset_location if DECL_IGNORED_P 18142 is set on the function to be inlined. 18143 181442018-06-27 Stephan Bergmann <sbergman@redhat.com> 18145 18146 * doc/invoke.texi (Debugging Options): Add -gsplit-dwarf. 18147 181482018-06-27 Dimitar Dimitrov <dimitar@dinux.eu> 18149 18150 * lra-eliminations.c (update_reg_eliminate): Mark all spanning hard 18151 registers for Pmode. 18152 * lra-lives.c (check_pseudos_live_through_calls): Mark all spanning 18153 hard registers for the clobbered pseudo. 18154 181552018-06-27 Paul Koning <ni1d@arrl.net> 18156 18157 * common/config/pdp11/pdp11-common.c (pdp11_handle_option): Handle 18158 mutually exclusive options. 18159 * config/pdp11/constraints.md (h): New constraint. 18160 (O): Update definition to match shift code generation. 18161 (D): New constraint. 18162 * config/pdp11/pdp11-modes.def (CCNZ): Define mode. 18163 (CCFP): Remove. 18164 * config/pdp11/pdp11-protos.h (int_no_side_effect_operand): New 18165 function. 18166 (output_jump): Change arguments. 18167 (pdp11_fixed_cc_regs): New function. 18168 (pdp11_cc_mode): Ditto. 18169 (pdp11_expand_shift): Ditto. 18170 (pdp11_assemble_shift): Ditto. 18171 (pdp11_small_shift): Ditto. 18172 (pdp11_branch_cost): Remove. 18173 * config/pdp11/pdp11.c (pdp11_assemble_integer): Remove comments 18174 from output. 18175 (pdp11_register_move_cost): Update for CC registers. 18176 (pdp11_rtx_costs): Add case for LSHIFTRT. 18177 (pdp11_output_jump): Add CCNZ mode conditional branches. 18178 (notice_update_cc_on_set): Remove. 18179 (pdp11_cc_mode): New function. 18180 (simple_memory_operand): Correct pre/post decrement case. 18181 (no_side_effect_operand): New function. 18182 (pdp11_regno_reg_class): Add CC_REGS class. 18183 (pdp11_fixed_cc_regs): New function. 18184 (pdp11_small_shift): New function. 18185 (pdp11_expand_shift): New function to expand shift insns. 18186 (pdp11_assemble_shift): New function to output shifts. 18187 (pdp11_branch_cost): Remove. 18188 (pdp11_modes_tieable_p): Make QI/HI modes tieable. 18189 * config/pdp11/pdp11.h (SIZE_TYPE): Ensure 16-bit type. 18190 (WCHAR_TYPE): Ditto. 18191 (PTRDIFF_TYPE): Ditto. 18192 (ADJUST_INSN_LENGTH): New macro. 18193 (FIXED_REGISTERS): Add CC registers. 18194 (CALL_USED_REGISTERS): Ditto. 18195 (reg_class): Ditto. 18196 (REG_CLASS_NAMES): Ditto. 18197 (REG_CLASS_CONTENTS): Ditto. 18198 (SELECT_CC_MODE): Use new function. 18199 (TARGET_FLAGS_REGNUM): New macro. 18200 (TARGET_FIXED_CONDITION_CODE_REGS): Ditto. 18201 (cc0_reg_rtx): Remove. 18202 (CC_STATUS_MDEP): Remove. 18203 (CC_STATUS_MDEFP_INIT): Remove. 18204 (CC_IN_FPU): Remove. 18205 (NOTICE_UPDATE_CC): Remove. 18206 (REGISTER_NAMES): Add CC registers. 18207 (BRANCH_COST): Change to constant 1. 18208 * config/pdp11/pdp11.md: Rewrite for CCmode condition code 18209 handling. 18210 * config/pdp11/pdp11.opt (mbcopy): Remove. 18211 (mbcopy-builtin): Remove. 18212 (mbranch-cheap): Remove. 18213 (mbranch-expensive): Remove. 18214 * config/pdp11/predicates.md (expand_shift_operand): Update to 18215 match shift code generation. 18216 (ccnz_operator): New predicate. 18217 * doc/invoke.texi (PDP-11 Options): Remove deleted options 18218 -mbcopy, -mbcopy-builtin, -mbranch-cheap, -mbranch-expensive. 18219 Remove non-existent option -mabshi, -mno-abshi. Document mutually 18220 exclusive options. 18221 * doc/md.texi (PDP-11): Document new D and h constraints. Update 18222 description of O constraint. 18223 182242018-06-27 Jeff Law <law@redhat.com> 18225 Austin Law <austinklaw@gmail.com> 18226 18227 * config/v850/v850.md (addsi3_set_flags): New pattern. 18228 (subsi3_set_flags, negsi2_set_flags, andsi3_set_flags): Likewise. 18229 (iorsi3_set_flags, xorsi3_set_flags, one_cmplsi2_set_flags): Likewise. 18230 (zero_extendhisi2_v850_set_flags): Likewise. 18231 (zero_extendqisi2_v850_set_flags): Likewise. 18232 (ashlsi3_set_flags, ashlsi3_v850e2_set_flags): Likewise. 18233 (lshrsi3_set_flags, lshrsi3_v850e2_set_flags): Likewise. 18234 (ashrsi3_set_flags, ashrsi3_v850e2_set_flags): Likewise. 18235 18236 * config/v850/v850-protos.h (notice_update_cc): Remove. 18237 * config/v850/v850.c (v850_compare_op0, v850_compare_op1): Remove. 18238 (v850_print_operand): Handle 'D' and "d". 18239 (v850_select_cc_mode): Remove ATTRIBUTE_UNUSED for last argument. 18240 Add handling of arithmetic/logical operations compared against zero. 18241 (v850_gen_float_compare): Remove ATTRIBUTE_UNUSED for last argument. 18242 Do not look at v850_compare_op, instead get mode from last argument. 18243 (v850_gen_compare): Remove 18244 (increment_stack): Use addsi3_clobber_flags to avoid splitting failure 18245 after reload for prologue insns. 18246 (expand_prologue): Account for CLOBBER of CC_REGNUM in various 18247 patterns. 18248 (construct_save_jarl): Likewise. 18249 (TARGET_FLAGS_REGNUM): Define. 18250 * config/v850/v850.h (v850_compare_op0, v850_compare_op1): Remove. 18251 (NOTICE_UPDATE_CC): Remove. 18252 * config/v850/v850.md (v850_tst1): Use (reg:CCZ CC_REGNUM) rather 18253 than cc0. Conditionalize on reload_completed. 18254 (cmpsi_insn, setfcc_insn): Likewise. 18255 (tst1 splitter): Turn into define_and_split which sets the flags 18256 after reload. 18257 (cstoresi4, cbranchsf4, cbranchdf4, cbranchsi4_insn): Likewise. 18258 (cbranchsi4, branch_normal, branch_invert): Do not expose cc0 here. 18259 (cstoresf4, cstoredf4): Clobber the flags. 18260 (cmpsi, cmpsf, cmpdf): Remove expanders. 18261 (setf_insn): Remove pattern. 18262 (addsi3): Turn into define_and_split which clobbers the flags after 18263 reload and a suitable pattern (addsi3_clobber_flags) for use after 18264 reload. 18265 (subsi3, negsi2, andsi3, iorsi3, xorsi3, one_cmplsi2) Likewise. 18266 (ashlsi3, ashlsi3_v850e2, lshrsi3, lsh4si3_v850e2): Likewise. 18267 (ashrsi3, ashrsi3_v850e2): Likewise. 18268 (bins): Clobber the flags. 18269 (movsicc_normal_cc, movsicc_normal, movsicc_tst1): Likewise. 18270 (movsicc_tst1_revesed, sasf, swap and rotate patterns): Likewise. 18271 (fix_loop_counter, call_internal_short, call_internal_long): Likewise. 18272 (call_value_internal_short, call_value_internal_long): Likewise. 18273 (callt_save_interrupt, callt_return_interrupt): Likewise. 18274 (save_interrupt, return_interrupt): Likewise. 18275 (callt_save_all_interrupt, save_all_interrupt): Likewise. 18276 (_save_all_interrupt, callt_restore_all_interrupt): Likewise. 18277 (restore_all_interrupt, _restore_all_interrupt): Likewise. 18278 (All FP comparisons): Only allow after reload has completed. 18279 (trfsr): Likewise. 18280 (divh, divhu): Tweak output template. 18281 (branch_z_normal, branch_z_invert): Remove 18282 (branch_nz_normal, branch_nz_invert): Likewise. 18283 (extendhisi_insn, extendqisi_insn): Do not clobber flags. 18284 18285 * config/v850/v850-modes.def (CCZ, CCNZ): Add new modes. 18286 * config/v850/v850.c (notice_update_cc): Remove. 18287 * config/v850/v850.h (CC_OVERFLOW_UNUSABLE): Remove 18288 (CC_NO_CARRY): Likewise. 18289 (NOTICE_UPDATE_CC): Define to nothing. 18290 * config/v850/v850.md: Remove block comment on cc0 handling 18291 Remove "cc" attribute from all patterns. Remove cc_status handling 18292 from all patterns. Minor formatting fixes. 18293 182942018-06-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18295 18296 * config/aarch64/aarch64-cores.def (cortex-a76): New entry. 18297 (cortex-a76.cortex-a55): Likewise. 18298 * config/aarch64/aarch64-tune.md: Regenerate. 18299 * doc/invoke.texi (AArch64 Options): Document cortex-a76 and 18300 cortex-a76.cortex-a55. 18301 183022018-06-27 Jeff Law <law@redhat.com> 18303 18304 * config/v850/t-v850 (MULTILIB_OPTIONS): Remove 8byte-align. 18305 (MULTILIB_DIRNAMES): Similarly. 18306 183072018-06-27 Eric Botcazou <ebotcazou@adacore.com> 18308 18309 * gimple.h (gimple_return_retbnd): Delete. 18310 (gimple_return_set_retbnd): Likewise. 18311 * cgraphunit.c (cgraph_node::expand_thunk): Remove call to 18312 gimple_return_set_retbnd. 18313 * gimple-pretty-print.c (dump_gimple_return): Remove call to 18314 gimple_return_retbnd and adjust. 18315 * tree-inline.h (struct copy_body_data): Remove retbnd field. 18316 * tree-inline.c (remap_gimple_stmt): Remove handling of retbnd. 18317 Explicitly return NULL in a couple more cases. Move assertion 18318 on debug statements and remove unreachable code. 18319 (reset_debug_binding): Do not test id->retbnd. 18320 (expand_call_inline): Do not set it. 18321 183222018-06-27 Rasmus Villemoes <rv@rasmusvillemoes.dk> 18323 18324 * configure.ac: Add --disable-gcov option. 18325 * configure: Regenerate. 18326 * Makefile.in: Honour @enable_gcov@. 18327 * doc/install.texi: Document --disable-gcov. 18328 183292018-06-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18330 18331 * config/arm/arm-cpus.in (cortex-a76): New entry. 18332 (cortex-a76.cortex-a55): Likewise. 18333 * config/arm/arm-tables.opt: Regenerate. 18334 * config/arm/arm-tune.md: Likewise. 18335 * config/arm/driver-arm.c (arm_cpu_table): Add Cortex-A76 entry. 18336 * doc/invoke.texi (ARM Options): Document cortex-a76 and 18337 cortex-a76.cortex-a55. 18338 183392018-06-27 Tamar Christina <tamar.christina@arm.com> 18340 18341 PR target/85769 18342 * config/aarch64/aarch64.md (*movhf_aarch64): Add dup v0.4h pattern. 18343 183442018-06-27 Siddhesh Poyarekar <siddhesh@sourceware.org> 18345 18346 * config/aarch64/aarch64.h (CALL_USE_REGISTERS): Fix obsolete 18347 comment. 18348 (EPILOGUE_USES): Likewise. 18349 183502018-06-26 Eric Botcazou <ebotcazou@adacore.com> 18351 18352 * tree-inline.c (remap_location): New function extracted from... 18353 (copy_edges_for_bb): Add ID parameter. Remap goto_locus. 18354 (copy_phis_for_bb): ...here. Call remap_location. 18355 (copy_cfg_body): Adjust call to copy_edges_for_bb. 18356 183572018-06-26 Aaron Sawdey <acsawdey@linux.ibm.com> 18358 18359 * config/rs6000/rs6000-string.c (expand_block_clear): Don't use 18360 unaligned vsx for 16B memset. 18361 183622018-06-26 Segher Boessenkool <segher@kernel.crashing.org> 18363 18364 PR target/86285 18365 * config/rs6000/rs6000.c (rs6000_init_builtins): Do not set 18366 ieee128_float_type_node to long_double_type_node unless 18367 TARGET_LONG_DOUBLE_128 is set. 18368 183692018-06-26 David Malcolm <dmalcolm@redhat.com> 18370 18371 * cfgloop.c (get_loop_location): Convert return type from 18372 location_t to dump_user_location_t, replacing INSN_LOCATION lookups 18373 by implicit construction from rtx_insn *, and using 18374 dump_user_location_t::from_function_decl for the fallback case. 18375 * cfgloop.h (get_loop_location): Convert return type from 18376 location_t to dump_user_location_t. 18377 * cgraphunit.c (walk_polymorphic_call_targets): Update call to 18378 dump_printf_loc to pass in a dump_location_t rather than a 18379 location_t, via the gimple stmt. 18380 * coverage.c (get_coverage_counts): Update calls to 18381 dump_printf_loc to pass in dump_location_t rather than a 18382 location_t. 18383 * doc/optinfo.texi (Dump types): Convert example of 18384 dump_printf_loc from taking "locus" to taking "insn". Update 18385 description of the "_loc" calls to cover dump_location_t. 18386 * dumpfile.c: Include "backend.h", "gimple.h", "rtl.h", and 18387 "selftest.h". 18388 (dump_user_location_t::dump_user_location_t): New constructors, 18389 from gimple *stmt and rtx_insn *. 18390 (dump_user_location_t::from_function_decl): New function. 18391 (dump_loc): Make static. 18392 (dump_gimple_stmt_loc): Convert param "loc" from location_t to 18393 const dump_location_t &. 18394 (dump_generic_expr_loc): Delete. 18395 (dump_printf_loc): Convert param "loc" from location_t to 18396 const dump_location_t &. 18397 (selftest::test_impl_location): New function. 18398 (selftest::dumpfile_c_tests): New function. 18399 * dumpfile.h: Include "profile-count.h". 18400 (class dump_user_location_t): New class. 18401 (struct dump_impl_location_t): New struct. 18402 (class dump_location_t): New class. 18403 (dump_printf_loc): Convert 2nd param from source_location to 18404 const dump_location_t &. 18405 (dump_generic_expr_loc): Delete. 18406 (dump_gimple_stmt_loc): Convert 2nd param from source_location to 18407 const dump_location_t &. 18408 * gimple-fold.c (fold_gimple_assign): Update call to 18409 dump_printf_loc to pass in a dump_location_t rather than a 18410 location_t, via the gimple stmt. 18411 (gimple_fold_call): Likewise. 18412 * gimple-loop-interchange.cc 18413 (loop_cand::analyze_iloop_reduction_var): Update for change to 18414 check_reduction_path. 18415 (tree_loop_interchange::interchange): Update for change to 18416 find_loop_location. 18417 * graphite-isl-ast-to-gimple.c (scop_to_isl_ast): Update for 18418 change in return-type of find_loop_location. 18419 (graphite_regenerate_ast_isl): Likewise. 18420 * graphite-optimize-isl.c (optimize_isl): Likewise. 18421 * graphite.c (graphite_transform_loops): Likewise. 18422 * ipa-devirt.c (ipa_devirt): Update call to dump_printf_loc to 18423 pass in a dump_location_t rather than a location_t, via the 18424 gimple stmt. 18425 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. 18426 * ipa.c (walk_polymorphic_call_targets): Likewise. 18427 * loop-unroll.c (report_unroll): Convert "locus" param from 18428 location_t to dump_location_t. 18429 (decide_unrolling): Update for change to get_loop_location's 18430 return type. 18431 * omp-grid.c (struct grid_prop): Convert field "target_loc" from 18432 location_t to dump_user_location_t. 18433 (grid_find_single_omp_among_assignments_1): Updates calls to 18434 dump_printf_loc to pass in a dump_location_t rather than a 18435 location_t, via the gimple stmt. 18436 (grid_parallel_clauses_gridifiable): Convert "tloc" from 18437 location_t to dump_location_t. Updates calls to dump_printf_loc 18438 to pass in a dump_location_t rather than a location_t, via the 18439 gimple stmt. 18440 (grid_inner_loop_gridifiable_p): Likewise. 18441 (grid_dist_follows_simple_pattern): Likewise. 18442 (grid_gfor_follows_tiling_pattern): Likewise. 18443 (grid_target_follows_gridifiable_pattern): Likewise. 18444 (grid_attempt_target_gridification): Convert initialization 18445 of local "grid" from memset to zero-initialization; FIXME: does 18446 this require C++11? Update call to dump_printf_loc to pass in a 18447 optinfo_location rather than a location_t, via the gimple stmt. 18448 * profile.c (read_profile_edge_counts): Updates call to 18449 dump_printf_loc to pass in a dump_location_t rather than a 18450 location_t 18451 (compute_branch_probabilities): Likewise. 18452 * selftest-run-tests.c (selftest::run_tests): Call 18453 dumpfile_c_tests. 18454 * selftest.h (dumpfile_c_tests): New decl. 18455 * tree-loop-distribution.c (pass_loop_distribution::execute): 18456 Update for change in return type of find_loop_location. 18457 * tree-parloops.c (parallelize_loops): Likewise. 18458 * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Convert 18459 "locus" from location_t to dump_user_location_t. 18460 (canonicalize_loop_induction_variables): Likewise. 18461 * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Update 18462 for change in return type of find_loop_location. 18463 * tree-ssa-loop-niter.c (number_of_iterations_exit): Update call 18464 to dump_printf_loc to pass in a dump_location_t rather than a 18465 location_t, via the stmt. 18466 * tree-ssa-sccvn.c (eliminate_dom_walker::before_dom_children): 18467 Likewise. 18468 * tree-vect-loop-manip.c (find_loop_location): Convert return 18469 type from source_location to dump_user_location_t. 18470 (vect_do_peeling): Update for above change. 18471 (vect_loop_versioning): Update for change in type of 18472 vect_location. 18473 * tree-vect-loop.c (check_reduction_path): Convert "loc" param 18474 from location_t to dump_user_location_t. 18475 (vect_estimate_min_profitable_iters): Update for change in type 18476 of vect_location. 18477 * tree-vect-slp.c (vect_print_slp_tree): Convert param "loc" from 18478 location_t to dump_location_t. 18479 (vect_slp_bb): Update for change in type of vect_location. 18480 * tree-vectorizer.c (vect_location): Convert from source_location 18481 to dump_user_location_t. 18482 (try_vectorize_loop_1): Update for change in vect_location's type. 18483 (vectorize_loops): Likewise. 18484 (increase_alignment): Likewise. 18485 * tree-vectorizer.h (vect_location): Convert from source_location 18486 to dump_user_location_t. 18487 (find_loop_location): Convert return type from source_location to 18488 dump_user_location_t. 18489 (check_reduction_path): Convert 1st param from location_t to 18490 dump_user_location_t. 18491 * value-prof.c (check_counter): Update call to dump_printf_loc to 18492 pass in a dump_user_location_t rather than a location_t; update 18493 call to error_at for change in type of "locus". 18494 (check_ic_target): Update call to dump_printf_loc to 18495 pass in a dump_user_location_t rather than a location_t, via the 18496 call_stmt. 18497 184982018-06-26 Robin Dapp <rdapp@linux.vnet.ibm.com> 18499 18500 * config/s390/s390.h (enum processor_flags): Do not use 18501 default tune parameter when -march was specified. 18502 185032018-06-26 Jakub Jelinek <jakub@redhat.com> 18504 18505 PR target/86314 18506 * config/i386/i386.md (setcc + movzbl to xor + setcc peephole2s): 18507 Check reg_overlap_mentioned_p in addition to reg_set_p with the same 18508 operands. 18509 185102018-06-26 Richard Biener <rguenther@suse.de> 18511 18512 PR tree-optimization/86287 18513 PR bootstrap/86316 18514 * tree-vect-loop.c (vect_transform_loop_stmt): Fix read-after-free. 18515 (vect_analyze_loop): Initialize n_stmts. 18516 185172018-06-26 Richard Biener <rguenther@suse.de> 18518 18519 PR middle-end/86271 18520 * fold-const.c (fold_convertible_p): Pointer extension 18521 isn't valid. 18522 185232018-06-26 Alexandre Oliva <aoliva@redhat.com> 18524 18525 PR debug/86064 18526 * dwarf2out.c (loc_list_has_views): Adjust comments. 18527 (dw_loc_list): Split single cross-partition range with 18528 nonzero locview. 18529 185302018-06-25 Jeff Law <law@redhat.com> 18531 18532 * common/config/v850/v850-common.c (TARGET_DEFAULT_TARGET_FLAGS): Turn 18533 on -mbig-switch by default. 18534 18535 * config/v850/predicates.md (const_float_1_operand): Fix match_code 18536 test. 18537 (const_float_0_operand): Remove unused predicate. 18538 * config/v850/v850.md (define_constants): Remove UNSPEC_LOOP. 18539 (define_c_enum unspec): Add LOOP, RCP and RSQRT constants. 18540 (recipsf2): New expander. Original pattern now called 18541 (recipsf2_insn). 18542 (recipdf2, recipdf2_insn): Similarly. 18543 (rsqrtsf2, rsqrtsf2_insn): Similarly 18544 (rsqrtdf2, rsqrtdf2_insn): Similarly 18545 185462018-06-26 Gerald Pfeifer <gerald@pfeifer.com> 18547 18548 * ginclude/stddef.h: Remove an obsolete comment on FreeBSD 5. 18549 Simplify logic for FreeBSD (twice). 18550 185512018-06-25 Martin Sebor <msebor@redhat.com> 18552 18553 PR tree-optimization/86204 18554 * tree-ssa-strlen.c (handle_builtin_strlen): Avoid storing 18555 a strnlen result if it's less than the length of the string. 18556 185572018-06-25 Martin Sebor <msebor@redhat.com> 18558 18559 PR tree-optimization/85700 18560 * gimple-fold.c (gimple_fold_builtin_strncat): Adjust comment. 18561 * tree-ssa-strlen.c (is_strlen_related_p): Handle integer subtraction. 18562 (maybe_diag_stxncpy_trunc): Distinguish strncat from strncpy. 18563 185642018-06-25 Martin Sebor <msebor@redhat.com> 18565 18566 * doc/extend.texi (Zero-length arrays): Update and clarify. 18567 185682018-06-25 Michael Meissner <meissner@linux.ibm.com> 18569 18570 * config.gcc (powerpc64le*): Revert January 16th, 2018 patch that 18571 added IEEE/IBM long double multilib support on PowerPC little 18572 endian Linux systems. 18573 * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Likewise. 18574 (MULTILIB_DEFAULTS): Likewise. 18575 * config/rs6000/rs6000.c (rs6000_option_override_internal): 18576 Likewise. 18577 * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Likewise. 18578 * config/rs6000/t-ldouble-linux64le-ibm: Delete, no longer used. 18579 * config/rs6000/t-ldouble-linux64le-ieee: Delete, no longer used. 18580 185812018-06-25 Alexander Monakov <amonakov@ispras.ru> 18582 18583 PR middle-end/86311 18584 * sort.cc (REORDER_23): Avoid memcpy with same destination and source. 18585 (REORDER_45): Likewise. 18586 185872018-06-25 Jeff Law <law@redhat.com> 18588 18589 * config/v850/v850.md (divmodhi4): Make sure to sign extend the 18590 dividend to 32 bits. Adjust length. 18591 (udivmodhi4): Cleanup output template. Fix length. 18592 185932018-06-25 Carl Love <cel@us.ibm.com> 18594 18595 * config/rs6000/vsx.md: Change word selector to prefered location. 18596 185972018-06-25 Richard Biener <rguenther@suse.de> 18598 18599 PR tree-optimization/86304 18600 * tree-vectorizer.c (vectorize_loops): Walk over new possibly 18601 epilogue-if-converted loops as well. 18602 186032018-06-25 Jan Hubicka <hubicka@ucw.cz> 18604 18605 * lto-section-out.c (lto_begin_section): Do not print section 18606 name for noaddr and unnumbered dumps. 18607 186082018-06-25 Richard Biener <rguenther@suse.de> 18609 18610 * tree-vectorizer.h (struct vec_info_shared): New structure 18611 with parts split out from struct vec_info and loop_nest from 18612 struct _loop_vec_info. 18613 (struct vec_info): Adjust accordingly. 18614 (struct _loop_vec_info): Likewise. 18615 (LOOP_VINFO_LOOP_NEST): Adjust. 18616 (LOOP_VINFO_DATAREFS): Likewise. 18617 (LOOP_VINFO_DDRS): Likewise. 18618 (struct _bb_vec_info): Likewise. 18619 (BB_VINFO_DATAREFS): Likewise. 18620 (BB_VINFO_DDRS): Likewise. 18621 (struct _stmt_vec_info): Add dr_aux member. 18622 (DR_VECT_AUX): Adjust to refer to member of DR_STMTs vinfo. 18623 (DR_MISALIGNMENT_UNINITIALIZED): New. 18624 (set_dr_misalignment): Adjust. 18625 (dr_misalignment): Assert misalign isn't DR_MISALIGNMENT_UNINITIALIZED. 18626 (vect_analyze_loop): Adjust prototype. 18627 (vect_analyze_loop_form): Likewise. 18628 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): 18629 Compute dependences lazily. 18630 (vect_record_base_alignments): Use shared datarefs/ddrs. 18631 (vect_verify_datarefs_alignment): Likewise. 18632 (vect_analyze_data_refs_alignment): Likewise. 18633 (vect_analyze_data_ref_accesses): Likewise. 18634 (vect_analyze_data_refs): Likewise. 18635 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Add 18636 constructor parameter for shared part. 18637 (vect_analyze_loop_form): Pass in shared part and adjust. 18638 (vect_analyze_loop_2): Pass in storage for the number of 18639 stmts. Move loop nest finding to the caller. Compute 18640 datarefs lazily. 18641 (vect_analyze_loop): Pass in shared part. 18642 (vect_transform_loop): Verify shared datarefs are unchanged. 18643 * tree-vect-slp.c (_bb_vec_info::_bb_vec_info): Add 18644 constructor parameter for shared part. 18645 (vect_slp_analyze_bb_1): Pass in shared part and adjust. 18646 (vect_slp_bb): Verify shared datarefs are unchanged before 18647 transform. 18648 * tree-vect-stmts.c (ensure_base_align): Adjust for DR_AUX 18649 change. 18650 (new_stmt_vec_info): Initialize DR_AUX misalignment to 18651 DR_MISALIGNMENT_UNINITIALIZED. 18652 * tree-vectorizer.c (vec_info::vec_info): Add constructor 18653 parameter for shared part. 18654 (vec_info::~vec_info): Adjust. 18655 (vec_info_shared::vec_info_shared): New. 18656 (vec_info_shared::~vec_info_shared): Likewise. 18657 (vec_info_shared::save_datarefs): Likewise. 18658 (vec_info_shared::check_datarefs): Likewise. 18659 (try_vectorize_loop_1): Construct shared part live for analyses 18660 of a single loop for multiple vector sizes. 18661 * tree-parloops.c (gather_scalar_reductions): Adjust. 18662 186632018-06-25 Richard Biener <rguenther@suse.de> 18664 18665 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Modify 18666 DR for SIMD lane accesses here and mark DR with (void *)-1 aux. 18667 (vect_analyze_data_refs): Remove similar code from here and 18668 simplify accordingly. 18669 186702018-06-25 Richard Biener <rguenther@suse.de> 18671 18672 * tree-vect-data-refs.c (vect_check_gather_scatter): Fail 18673 for reverse storage order accesses rather than asserting 18674 they cannot happen here. 18675 186762018-06-25 Tom de Vries <tdevries@suse.de> 18677 18678 PR debug/86257 18679 * config/i386/i386.md (define_insn "*tls_global_dynamic_64_<mode>"): 18680 Use data16 instead of .byte for insn prefix. 18681 186822018-06-25 Andreas Krebbel <krebbel@linux.ibm.com> 18683 18684 PR C++/86082 18685 * parser.c (make_char_string_pack): Pass this literal chars 18686 through cpp_interpret_string. 18687 (cp_parser_userdef_numeric_literal): Check the result of 18688 make_char_string_pack. 18689 186902018-06-24 Maya Rashish <coypu@sdf.org> 18691 18692 * ginclude/stddef.h: Simplify conditions around avoiding 18693 re-definition of __size_t. 18694 186952018-06-22 Jan Hubicka <hubicka@ucw.cz> 18696 18697 * lto-streamer-out.c (tree_is_indexable): Make LABEL_DECL nonindexable 18698 unless it is forced or nonlocal; assert that we stream no IMPORTED_DECL. 18699 187002018-06-22 Maya Rashish <coypu@sdf.org> 18701 18702 * doc/invoke.texi (mno-fancy-math-387): Update for changes 18703 made to OpenBSD and NetBSD through the years. 18704 187052018-06-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 18706 18707 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change 18708 behavior of vec_pack (vector double, vector double) to match 18709 behavior of vec_float2 (vector double, vector double). 18710 187112018-06-22 Olivier Hainque <hainque@adacore.com> 18712 18713 * gimplify.c (gimplify_function_tree): Prevent creation 18714 of a trampoline for the address of the current function 18715 passed to entry/exit instrumentation hooks. 18716 187172018-06-22 Aaron Sawdey <acsawdey@linux.ibm.com> 18718 18719 PR target/86222 18720 * config/rs6000/rs6000-string.c (expand_strn_compare): Handle -m32 18721 correctly. 18722 187232018-06-22 Martin Liska <mliska@suse.cz> 18724 18725 PR tree-optimization/86263 18726 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): 18727 Bail out if is_enabled is false. 18728 * tree-switch-conversion.h (jump_table_cluster::is_enabled): 18729 New declaration. 18730 (jump_table_cluster::is_enabled): New function. 18731 187322018-06-22 Jan Hubicka <hubicka@ucw.cz> 18733 18734 * lto-streamer-out.c (DFS::DFS_write_tree_body): Do not stream 18735 BINFO_BASE_ACCESSES and BINFO_VPTR_FIELD. 18736 * tree-streamer-in.c (streamer_read_tree_bitfields): Likewise. 18737 (lto_input_ts_binfo_tree_pointers): Likewise. 18738 * tree-streamer-out.c (streamer_write_tree_bitfields, 18739 write_ts_binfo_tree_pointers): Likewise. 18740 * tree.c (free_lang_data_in_binfo): Clear BINFO_VPTR_FIELD. 18741 187422018-06-22 Jan Hubicka <hubicka@ucw.cz> 18743 18744 * tree.c (free_lang_data_in_type): Free all TYPE_VFIELDs. 18745 187462018-06-22 Martin Liska <mliska@suse.cz> 18747 18748 * symbol-summary.h (get): Make it pure and inline move 18749 functionality from ::get function. 18750 (get): Remove and inline into ::get and ::get_create. 18751 (get_create): Move code from ::get function. 18752 187532018-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 18754 18755 PR target/85994 18756 * config/i386/sol2.h (CPP_SPEC): Don't pass -P for 18757 -x assembler-with-cpp. 18758 187592018-06-22 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 18760 18761 * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define 18762 _FILE_OFFSET_BITS=64 for C++. 18763 187642018-06-21 Michael Meissner <meissner@linux.ibm.com> 18765 18766 * config/rs6000/rs6000.md (extendtfif2): Add missing 128-bit 18767 conversion insn that shows up when pr85657-3.c is compiled using 18768 IEEE 128-bit long double. 18769 (neg<mode>2_internal): Use the correct mode to check whether the 18770 mode is IBM extended. 18771 * config/rs6000/rs6000.c (init_float128_ieee): Prevent complex 18772 multiply and divide external functions from being created more 18773 than once. 18774 187752018-06-21 Eric Botcazou <ebotcazou@adacore.com> 18776 18777 * cfgrtl.c (fixup_reorder_chain): Do not emit NOPs in DECL_IGNORED_P 18778 functions. 18779 (rtl_merge_blocks): Likewise. Do not emit a NOP if the location of 18780 the edge can be forwarded. 18781 (cfg_layout_merge_blocks): Likewise. 18782 187832018-06-21 Eric Botcazou <ebotcazou@adacore.com> 18784 18785 * except.c (finish_eh_generation): Commit edge insertions only after 18786 the EH edges have been redirected from post-landing to landing pads. 18787 187882018-06-21 Eric Botcazou <ebotcazou@adacore.com> 18789 18790 * tree-nested.c (get_frame_type): Use create_tmp_var_raw instead of 18791 create_tmp_var_for to create the FRAME decl. 18792 (finalize_nesting_tree_1): Do not unchain the FRAME decl. 18793 187942018-06-21 Eric Botcazou <ebotcazou@adacore.com> 18795 18796 * tree-inline.c (copy_edges_for_bb): Minor tweak. 18797 (maybe_move_debug_stmts_to_successors): Also reset the locus of the 18798 debug statement when resetting its value. 18799 (expand_call_inline): Copy the locus of the call onto the assignment 18800 of the return value, if any. Use local variable in more cases. 18801 188022018-06-21 Martin Liska <mliska@suse.cz> 18803 18804 * ipa-pure-const.c (propagate_nothrow): Use 18805 funct_state_summaries->get. 18806 (dump_malloc_lattice): Likewise. 18807 (propagate_malloc): Likewise. 18808 188092018-06-21 Richard Biener <rguenther@suse.de> 18810 18811 * lto-streamer-out.c (DFS::DFS_write_tree_body): Update outdated 18812 comment. Follow BLOCK_ABSTRACT_ORIGIN unconditionally. 18813 * tree-streamer-in.c (lto_input_ts_block_tree_pointers): Update 18814 comment. 18815 * tree-streamer-out.c (write_ts_block_tree_pointers): Stream 18816 BLOCK_ABSTRACT_ORIGIN unconditionally. 18817 188182018-06-21 David Malcolm <dmalcolm@redhat.com> 18819 18820 * ipa-cp.c (ipcp_driver): Set edge_clone_summaries to NULL after 18821 deleting it. 18822 * ipa-reference.c (ipa_reference_c_finalize): Delete 18823 ipa_ref_opt_sum_summaries and set it to NULL. 18824 188252018-06-21 Tom de Vries <tdevries@suse.de> 18826 18827 PR tree-optimization/85859 18828 * tree-ssa-tail-merge.c (stmt_local_def): Copy gimple_is_call 18829 test with comment from bb_no_side_effects_p. 18830 188312018-06-21 Richard Biener <rguenther@suse.de> 18832 18833 PR tree-optimization/86232 18834 * tree-ssa-loop-niter.c (number_of_iterations_popcount): Adjust 18835 max for constant niter. 18836 188372018-06-21 Andre Vieira <andre.simoesdiasvieira@arm.com> 18838 18839 * config/aarch64/aarch64-simd.md 18840 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): New. 18841 188422018-06-21 Andre Vieira <andre.simoesdiasvieira@arm.com> 18843 18844 * config/aarch64/aarch64-simd.md (aarch64_crypto_aes<aes_op>v16qi): 18845 Make opernads of the unspec commutative. 18846 188472018-06-21 Richard Biener <rguenther@suse.de> 18848 18849 * tree-data-ref.c (dr_step_indicator): Handle NULL DR_STEP. 18850 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr): 18851 Avoid calling vect_mark_for_runtime_alias_test with gathers or scatters. 18852 (vect_analyze_data_ref_dependence): Re-order checks to deal with 18853 NULL DR_STEP. 18854 (vect_record_base_alignments): Do not record base alignment 18855 for gathers or scatters. 18856 (vect_compute_data_ref_alignment): Drop return value that is always 18857 true. Bail out early for gathers or scatters. 18858 (vect_enhance_data_refs_alignment): Bail out early for gathers 18859 or scatters. 18860 (vect_find_same_alignment_drs): Likewise. 18861 (vect_analyze_data_refs_alignment): Remove dead code. 18862 (vect_slp_analyze_and_verify_node_alignment): Likewise. 18863 (vect_analyze_data_refs): For possible gathers or scatters do 18864 not create an alternate DR, just check their possible validity 18865 and mark them. Adjust DECL_NONALIASED handling to not rely 18866 on DR_BASE_ADDRESS. 18867 * tree-vect-loop-manip.c (vect_update_inits_of_drs): Do not 18868 update inits of gathers or scatters. 18869 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): 18870 Also copy gather/scatter flag to pattern vinfo. 18871 188722018-06-20 Kelvin Nilsen <kelvin@gcc.gnu.org> 18873 18874 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Change 18875 behavior of vec_packsu (vector unsigned long long, vector unsigned 18876 long long) to match behavior of vec_packs with same signature. 18877 188782018-06-20 Chung-Lin Tang <cltang@codesourcery.com> 18879 Thomas Schwinge <thomas@codesourcery.com> 18880 Cesar Philippidis <cesar@codesourcery.com> 18881 18882 * gimplify.c (gimplify_scan_omp_clauses): Add support for 18883 OMP_CLAUSE_{IF_PRESENT,FINALIZE}. 18884 (gimplify_adjust_omp_clauses): Likewise. 18885 (gimplify_oacc_declare_1): Add support for GOMP_MAP_RELEASE, remove 18886 support for GOMP_MAP_FORCE_{ALLOC,TO,FROM,TOFROM}. 18887 (gimplify_omp_target_update): Update handling of acc update and 18888 enter/exit data. 18889 * omp-low.c (install_var_field): Remove unused parameter 18890 base_pointers_restrict. 18891 (scan_sharing_clauses): Remove base_pointers_restrict parameter. 18892 Update call to install_var_field. Handle OMP_CLAUSE_{IF_PRESENT, 18893 FINALIZE} 18894 (omp_target_base_pointers_restrict_p): Delete. 18895 (scan_omp_target): Update call to scan_sharing_clauses. 18896 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_{IF_PRESENT, 18897 FINALIZE}. 18898 * tree-nested.c (convert_nonlocal_omp_clauses): Handle 18899 OMP_CLAUSE_{IF_PRESENT,FINALIZE}. 18900 (convert_local_omp_clauses): Likewise. 18901 * tree-pretty-print.c (dump_omp_clause): Likewise. 18902 * tree.c (omp_clause_num_ops): Add entries for OMP_CLAUSE_{IF_PRESENT, 18903 FINALIZE}. 18904 (omp_clause_code_name): Likewise. 18905 189062018-06-20 Jakub Jelinek <jakub@redhat.com> 18907 18908 PR debug/86194 18909 * var-tracking.c (use_narrower_mode_test): Check if shift amount can 18910 be narrowed. 18911 18912 PR tree-optimization/86231 18913 * tree-vrp.c (union_ranges): For ( [ ) ] or ( )[ ] range and 18914 anti-range don't overwrite *vr0min before using it to compute *vr0max. 18915 189162018-06-20 Tom de Vries <tdevries@suse.de> 18917 18918 PR tree-optimization/86097 18919 * tree-ssa-loop-manip.c (canonicalize_loop_ivs): Also convert *nit to 18920 iv type if signedness of iv type is not the same as that of *nit. 18921 189222018-06-20 Jakub Jelinek <jakub@redhat.com> 18923 18924 * cfgrtl.c (rtl_verify_edges): Formatting fix. If bb->preds has any 18925 EDGE_EH edges, verify they are all EDGE_EH. 18926 189272018-06-20 Maya Rashish <coypu@sdf.org> 18928 18929 * ginclude/stddef.h: Limit #include <machine/ansi.h> to NetBSD. 18930 189312018-06-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 18932 18933 * config/aarch64/aarch64-tuning-flags.def (no_ldp_stp_qregs): New. 18934 * config/aarch64/aarch64.c (xgene1_tunings): Add 18935 AARCH64_EXTRA_TUNE_NO_LDP_STP_QREGS to tune_flags. 18936 (aarch64_mode_valid_for_sched_fusion_p): 18937 Allow 16-byte modes. 18938 (aarch64_classify_address): Allow 16-byte modes for load_store_pair_p. 18939 * config/aarch64/aarch64-ldpstp.md: Add peepholes for LDP STP of 18940 128-bit modes. 18941 * config/aarch64/aarch64-simd.md (load_pair<VQ:mode><VQ2:mode>): 18942 New pattern. 18943 (vec_store_pair<VQ:mode><VQ2:mode>): Likewise. 18944 * config/aarch64/iterators.md (VQ2): New mode iterator. 18945 189462018-06-20 Martin Liska <mliska@suse.cz> 18947 18948 * tree-switch-conversion.c (jump_table_cluster::can_be_handled): 18949 Change default ratio from 10 to 8. 18950 189512018-06-20 Martin Liska <mliska@suse.cz> 18952 18953 * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): 18954 New. 18955 (bit_test_cluster::find_bit_tests): Likewise. 18956 (switch_decision_tree::analyze_switch_statement): Find clusters. 18957 * tree-switch-conversion.h (struct jump_table_cluster): Document 18958 hierarchy. 18959 189602018-06-20 Martin Liska <mliska@suse.cz> 18961 18962 * tree-switch-conversion.c (switch_conversion::collect): 18963 Record m_uniq property. 18964 (switch_conversion::expand): Bail out for special conditions. 18965 (group_cluster::~group_cluster): New. 18966 (group_cluster::group_cluster): Likewise. 18967 (group_cluster::dump): Likewise. 18968 (jump_table_cluster::emit): New. 18969 (switch_decision_tree::fix_phi_operands_for_edges): New. 18970 (struct case_node): Remove struct. 18971 (jump_table_cluster::can_be_handled): New. 18972 (case_values_threshold): Moved to header. 18973 (reset_out_edges_aux): Likewise. 18974 (jump_table_cluster::is_beneficial): New. 18975 (bit_test_cluster::can_be_handled): Likewise. 18976 (add_case_node): Remove. 18977 (bit_test_cluster::is_beneficial): New. 18978 (case_bit_test::cmp): New. 18979 (bit_test_cluster::emit): New. 18980 (expand_switch_as_decision_tree_p): Remove. 18981 (bit_test_cluster::hoist_edge_and_branch_if_true): New. 18982 (fix_phi_operands_for_edge): Likewise. 18983 (switch_decision_tree::analyze_switch_statement): New. 18984 (compute_cases_per_edge): Move ... 18985 (switch_decision_tree::compute_cases_per_edge): ... here. 18986 (try_switch_expansion): Likewise. 18987 (switch_decision_tree::try_switch_expansion): Likewise. 18988 (record_phi_operand_mapping): Likewise. 18989 (switch_decision_tree::record_phi_operand_mapping): Likewise. 18990 (emit_case_decision_tree): Likewise. 18991 (switch_decision_tree::emit): Likewise. 18992 (balance_case_nodes): Likewise. 18993 (switch_decision_tree::balance_case_nodes): Likewise. 18994 (dump_case_nodes): Likewise. 18995 (switch_decision_tree::dump_case_nodes): Likewise. 18996 (emit_jump): Likewise. 18997 (switch_decision_tree::emit_jump): Likewise. 18998 (emit_cmp_and_jump_insns): Likewise. 18999 (switch_decision_tree::emit_cmp_and_jump_insns): Likewise. 19000 (emit_case_nodes): Likewise. 19001 (switch_decision_tree::emit_case_nodes): Likewise. 19002 (conditional_probability): Remove. 19003 * tree-switch-conversion.h (enum cluster_type): New. 19004 (PRINT_CASE): New. 19005 (struct cluster): Likewise. 19006 (cluster::cluster): Likewise. 19007 (struct simple_cluster): Likewise. 19008 (simple_cluster::simple_cluster): Likewise. 19009 (struct group_cluster): Likewise. 19010 (struct jump_table_cluster): Likewise. 19011 (struct bit_test_cluster): Likewise. 19012 (struct min_cluster_item): Likewise. 19013 (struct case_tree_node): Likewise. 19014 (case_tree_node::case_tree_node): Likewise. 19015 (jump_table_cluster::case_values_threshold): Likewise. 19016 (struct case_bit_test): Likewise. 19017 (struct switch_decision_tree): Likewise. 19018 (struct switch_conversion): Likewise. 19019 (switch_decision_tree::reset_out_edges_aux): Likewise. 19020 190212018-06-20 Martin Liska <mliska@suse.cz> 19022 19023 * tree-switch-conversion.c (MAX_CASE_BIT_TESTS): Remove. 19024 (hoist_edge_and_branch_if_true): Likewise. 19025 (expand_switch_using_bit_tests_p): Likewise. 19026 (struct case_bit_test): Likewise. 19027 (case_bit_test_cmp): Likewise. 19028 (emit_case_bit_tests): Likewise. 19029 (switch_conversion::switch_conversion): New class. 19030 (struct switch_conv_info): Remove old struct. 19031 (collect_switch_conv_info): More to ... 19032 (switch_conversion::collect): ... this. 19033 (check_range): Likewise. 19034 (switch_conversion::check_range): Likewise. 19035 (check_all_empty_except_final): Likewise. 19036 (switch_conversion::check_all_empty_except_final): Likewise. 19037 (check_final_bb): Likewise. 19038 (switch_conversion::check_final_bb): Likewise. 19039 (create_temp_arrays): Likewise. 19040 (switch_conversion::create_temp_arrays): Likewise. 19041 (free_temp_arrays): Likewise. 19042 (gather_default_values): Likewise. 19043 (switch_conversion::gather_default_values): Likewise. 19044 (build_constructors): Likewise. 19045 (switch_conversion::build_constructors): Likewise. 19046 (constructor_contains_same_values_p): Likewise. 19047 (switch_conversion::contains_same_values_p): Likewise. 19048 (array_value_type): Likewise. 19049 (switch_conversion::array_value_type): Likewise. 19050 (build_one_array): Likewise. 19051 (switch_conversion::build_one_array): Likewise. 19052 (build_arrays): Likewise. 19053 (switch_conversion::build_arrays): Likewise. 19054 (gen_def_assigns): Likewise. 19055 (switch_conversion::gen_def_assigns): Likewise. 19056 (prune_bbs): Likewise. 19057 (switch_conversion::prune_bbs): Likewise. 19058 (fix_phi_nodes): Likewise. 19059 (switch_conversion::fix_phi_nodes): Likewise. 19060 (gen_inbound_check): Likewise. 19061 (switch_conversion::gen_inbound_check): Likewise. 19062 (process_switch): Use the newly created class. 19063 (switch_conversion::expand): New. 19064 (switch_conversion::~switch_conversion): New. 19065 * tree-switch-conversion.h: New file. 19066 190672018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19068 19069 * tree-vectorizer.h (NUM_PATTERNS, vect_recog_func_ptr): Move to 19070 tree-vect-patterns.c. 19071 * tree-vect-patterns.c (vect_supportable_direct_optab_p): New function. 19072 (vect_recog_dot_prod_pattern): Use it. Remove the type_in argument. 19073 (vect_recog_sad_pattern): Likewise. 19074 (vect_recog_widen_sum_pattern): Likewise. 19075 (vect_recog_pow_pattern): Likewise. Check for a null vectype. 19076 (vect_recog_widen_shift_pattern): Remove the type_in argument. 19077 (vect_recog_rotate_pattern): Likewise. 19078 (vect_recog_mult_pattern): Likewise. 19079 (vect_recog_vector_vector_shift_pattern): Likewise. 19080 (vect_recog_divmod_pattern): Likewise. 19081 (vect_recog_mixed_size_cond_pattern): Likewise. 19082 (vect_recog_bool_pattern): Likewise. 19083 (vect_recog_mask_conversion_pattern): Likewise. 19084 (vect_try_gather_scatter_pattern): Likewise. 19085 (vect_recog_widen_mult_pattern): Likewise. Check for a null vectype. 19086 (vect_recog_over_widening_pattern): Likewise. 19087 (vect_recog_gather_scatter_pattern): Likewise. 19088 (vect_recog_func_ptr): Move from tree-vectorizer.h 19089 (vect_vect_recog_func_ptrs): Move further down the file. 19090 (vect_recog_func): Likewise. Remove the third argument. 19091 (NUM_PATTERNS): Define based on vect_vect_recog_func_ptrs. 19092 (vect_pattern_recog_1): Expect the pattern function to do any 19093 necessary target tests. Also expect it to provide a vector type. 19094 Remove the type_in handling. 19095 190962018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19097 19098 * tree-vect-patterns.c (vect_pattern_detected): New function. 19099 (vect_recog_dot_prod_patternm, vect_recog_sad_pattern) 19100 (vect_recog_widen_mult_pattern, vect_recog_widen_sum_pattern) 19101 (vect_recog_over_widening_pattern, vect_recog_widen_shift_pattern 19102 (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern) 19103 (vect_recog_mult_pattern, vect_recog_divmod_pattern) 19104 (vect_recog_mixed_size_cond_pattern, vect_recog_bool_pattern) 19105 (vect_recog_mask_conversion_pattern) 19106 (vect_try_gather_scatter_pattern): Likewise. 19107 191082018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19109 19110 * tree-vect-patterns.c (vect_get_internal_def): New function. 19111 (vect_recog_dot_prod_pattern, vect_recog_sad_pattern) 19112 (vect_recog_vector_vector_shift_pattern, check_bool_pattern) 19113 (search_type_for_mask_1): Use it. 19114 191152018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19116 19117 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove 19118 redundant WIDEN_SUM_EXPR handling. 19119 (vect_recog_sad_pattern): Likewise. 19120 191212018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19122 19123 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Remove 19124 redundant check that the types of a PLUS_EXPR or MULT_EXPR agree. 19125 (vect_recog_sad_pattern): Likewise PLUS_EXPR, ABS_EXPR and MINUS_EXPR. 19126 (vect_recog_widen_mult_pattern): Likewise MULT_EXPR. 19127 (vect_recog_widen_sum_pattern): Likewise PLUS_EXPR. 19128 191292018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19130 19131 * tree-vect-stmts.c (vectorizable_call): Make sure that we 19132 use the stmt_vec_info of the original bb statement for the 19133 new zero assignment, even if the call is part of a pattern. 19134 191352018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19136 19137 * tree-vectorizer.h (_stmt_vec_info): Note above pattern_def_seq 19138 that the sequence is attached to the original statement rather 19139 than the pattern statement. 19140 * tree-vect-loop.c (vect_determine_vf_for_stmt): Take the 19141 PATTERN_DEF_SEQ from the original statement rather than 19142 the main pattern statement. 19143 * tree-vect-stmts.c (free_stmt_vec_info): Likewise. 19144 * tree-vect-patterns.c (vect_recog_dot_prod_pattern): Likewise. 19145 (vect_mark_pattern_stmts): Don't copy the PATTERN_DEF_SEQ. 19146 191472018-06-20 Richard Sandiford <richard.sandiford@arm.com> 19148 19149 * tree-vect-stmts.c (vect_analyze_stmt): Move the handling of pattern 19150 definition statements before the early exit for statements that aren't 19151 live or relevant. 19152 * tree-vect-loop.c (vect_transform_loop_stmt): New function, 19153 split out from... 19154 (vect_transform_loop): ...here. Process pattern definition 19155 statements without first checking whether the main pattern 19156 statement is live or relevant. 19157 191582018-06-19 Eric Botcazou <ebotcazou@adacore.com> 19159 19160 * tree-cfgcleanup.c (tree_forwarder_block_p): Do not return false at 19161 -O0 if the locus represent UNKNOWN_LOCATION but have different values. 19162 191632018-06-19 Aaron Sawdey <acsawdey@linux.ibm.com> 19164 19165 * config/rs6000/rs6000-string.c (select_block_compare_mode): Check 19166 TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller. 19167 (do_and3, do_and3_mask, do_compb3, do_rotl3): New functions. 19168 (expand_block_compare): Change select_block_compare_mode call. 19169 (expand_strncmp_align_check): Use new functions, fix comment. 19170 (emit_final_str_compare_gpr): New function. 19171 (expand_strn_compare): Refactor and clean up code. 19172 * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Remove *. 19173 191742018-06-19 Tony Reix <tony.reix@atos.com> 19175 Damien Bergamini <damien.bergamini@atos.com> 19176 David Edelsohn <dje.gcc@gmail.com> 19177 19178 * collect2.c (static_obj): New variable. 19179 (static_libs): New variable. 19180 (is_in_list): Uncomment declaration. 19181 (main): Track AIX libraries linked statically. 19182 (is_in_list): Uncomment definition. 19183 (scan_prog_file): Don't add AIX shared libraries initializer 19184 to constructor list if linking statically. 19185 191862018-06-19 Max Filippov <jcmvbkbc@gmail.com> 19187 19188 * config/xtensa/xtensa.md (UNSPEC_FRAME_BLOCKAGE): New unspec 19189 constant. 19190 (allocate_stack, frame_blockage, *frame_blockage): New patterns. 19191 191922018-06-19 Jan Hubicka <hubicka@ucw.cz> 19193 19194 * tree.c (find_decls_types_r): Remove all non-VAR_DECLs from 19195 blocks. 19196 191972018-06-19 Martin Liska <mliska@suse.cz> 19198 19199 * config/i386/i386.c (ix86_can_inline_p): Do not use 19200 ipa_fn_summaries::get_create. 19201 * ipa-cp.c (ipcp_cloning_candidate_p): Replace get_create with 19202 get. 19203 (devirtualization_time_bonus): Likewise. 19204 (ipcp_propagate_stage): Likewise. 19205 * ipa-fnsummary.c (redirect_to_unreachable): Likewise. 19206 (edge_set_predicate): Likewise. 19207 (evaluate_conditions_for_known_args): Likewise. 19208 (evaluate_properties_for_edge): Likewise. 19209 (ipa_call_summary::reset): Tranform to ... 19210 (ipa_call_summary::~ipa_call_summary): ... this. 19211 (ipa_fn_summary::reset): Transform to ... 19212 (ipa_fn_summary::~ipa_fn_summary): ... this. 19213 (ipa_fn_summary_t::remove): Rename to ... 19214 (ipa_fn_summary_t::remove_callees): ... this. 19215 (ipa_fn_summary_t::duplicate): Use placement new 19216 instead of memory copy. 19217 (ipa_call_summary_t::duplicate): Likewise. 19218 (ipa_call_summary_t::remove): Remove. 19219 (dump_ipa_call_summary): Change get_create to get. 19220 (ipa_dump_fn_summary): Dump only when summary exists. 19221 (analyze_function_body): Use symbol_summary::get instead 19222 of get_create. 19223 (compute_fn_summary): Likewise. 19224 (estimate_edge_devirt_benefit): Likewise. 19225 (estimate_edge_size_and_time): Likewise. 19226 (inline_update_callee_summaries): Likewise. 19227 (remap_edge_change_prob): Likewise. 19228 (remap_edge_summaries): Likewise. 19229 (ipa_merge_fn_summary_after_inlining): Likewise. 19230 (write_ipa_call_summary): Likewise. 19231 (ipa_fn_summary_write): Likewise. 19232 (ipa_free_fn_summary): Likewise. 19233 * ipa-fnsummary.h (struct GTY): Add new ctor and copy ctor. 19234 (struct ipa_call_summary): Likewise. 19235 * ipa-icf.c (sem_function::merge): Use symbol_summary::get instead 19236 of get_create. 19237 * ipa-inline-analysis.c (do_estimate_edge_time): Likewise. 19238 (estimate_size_after_inlining): Likewise. 19239 (estimate_growth): Likewise. 19240 (growth_likely_positive): Likewise. 19241 * ipa-inline-transform.c (clone_inlined_nodes): Likewise. 19242 (inline_call): Likewise. 19243 * ipa-inline.c (caller_growth_limits): Likewise. 19244 (can_inline_edge_p): Likewise. 19245 (can_inline_edge_by_limits_p): Likewise. 19246 (compute_uninlined_call_time): Likewise. 19247 (compute_inlined_call_time): Likewise. 19248 (want_inline_small_function_p): Likewise. 19249 (edge_badness): Likewise. 19250 (update_caller_keys): Likewise. 19251 (update_callee_keys): Likewise. 19252 (inline_small_functions): Likewise. 19253 (inline_to_all_callers_1): Likewise. 19254 (dump_overall_stats): Likewise. 19255 (early_inline_small_functions): Likewise. 19256 (early_inliner): Likewise. 19257 * ipa-profile.c (ipa_propagate_frequency_1): Likewise. 19258 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. 19259 * ipa-pure-const.c (malloc_candidate_p): Likewise. 19260 * ipa-split.c (execute_split_functions): Likewise. 19261 * symbol-summary.h: Likewise. 19262 * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. 19263 192642018-06-19 Richard Biener <rguenther@suse.de> 19265 19266 * tree-vectorizer.c (try_vectorize_loop_1): Split out of ... 19267 (vectorize_loops): ... here. Fix dbgcnt handling. 19268 (try_vectorize_loop): Wrap try_vectorize_loop_1. 19269 192702018-06-19 Segher Boessenkool <segher@kernel.crashing.org> 19271 19272 PR target/86197 19273 * config/rs6000/rs6000.md (rs6000_discover_homogeneous_aggregate): An 19274 ieee128 argument takes up only one (vector) register, not two (floating 19275 point) registers. 19276 192772018-06-19 Eric Botcazou <ebotcazou@adacore.com> 19278 19279 * gimplify.c (gimplify_init_constructor): Really never clear for an 19280 incomplete constructor if CONSTRUCTOR_NO_CLEARING is set. 19281 192822018-06-19 Richard Biener <rguenther@suse.de> 19283 19284 PR tree-optimization/86179 19285 * tree-vect-patterns.c (vect_pattern_recog_1): Clean up 19286 after failed recognition. 19287 192882018-06-18 Martin Sebor <msebor@redhat.com> 19289 19290 PR middle-end/85602 19291 * calls.c (maybe_warn_nonstring_arg): Handle strncat. 19292 * tree-ssa-strlen.c (is_strlen_related_p): Make extern. 19293 Handle integer subtraction. 19294 (maybe_diag_stxncpy_trunc): Handle nonstring source arguments. 19295 * tree-ssa-strlen.h (is_strlen_related_p): Declare. 19296 192972018-06-18 David Malcolm <dmalcolm@redhat.com> 19298 19299 * config/frv/frv-protos.h (frv_ifcvt_modify_insn): Strengthen 3rd 19300 param from rtx to rtx_insn *. 19301 * config/frv/frv.c (frv_ifcvt_add_insn): Likewise for "insn" 19302 param. 19303 (frv_ifcvt_modify_insn): Likwise. 19304 (frv_ifcvt_modify_final): Likwise for local "existing_insn", 19305 adding an as_a <rtx_insn *> cast. Likewise for local "insn". 19306 * config/mips/mips.c (r10k_insert_cache_barriers): Add an 19307 as_a <rtx_insn *> cast to local "unprotected_region" once 19308 it's been established that it's not NULL or pc_rtx. 19309 * config/nds32/nds32-relax-opt.c (nds32_group_insns): Strengthen 19310 param "sethi" from rtx to rtx_insn *. 19311 (nds32_group_float_insns): Likewise for param "insn". 19312 * config/vax/vax-protos.h (vax_output_int_add): Likewise for 1st 19313 param. 19314 (vax_output_int_subtract): Likewise. 19315 * config/vax/vax.c (vax_output_int_add): Likewise for param 19316 "insn". 19317 (vax_output_int_subtract): Likewise. 19318 * emit-rtl.c (set_insn_deleted): Likewise, removing cast. 19319 (emit_pattern_after): Likewise for param "after". 19320 (emit_insn_after): Likewise. 19321 (emit_jump_insn_after): Likewise. 19322 (emit_call_insn_after): Likewise. 19323 (emit_debug_insn_after): Likewise. 19324 (emit_pattern_before): Likewise for param "before". 19325 (emit_insn_before): Likewise. 19326 (emit_jump_insn_before): Likewise. 19327 * final.c (get_insn_template): Likewise for param "insn", removing 19328 a cast. 19329 * output.h (get_insn_template): Likewise for 2nd param. 19330 * rtl.h (emit_insn_before): Likewise. 19331 (emit_jump_insn_before): Likewise. 19332 (emit_debug_insn_before_noloc): Likewise. 19333 (emit_insn_after): Likewise. 19334 (emit_jump_insn_after): Likewise. 19335 (emit_call_insn_after): Likewise. 19336 (emit_debug_insn_after): Likewise. 19337 (set_insn_deleted): Likewise for param. 19338 193392018-06-18 Michael Meissner <meissner@linux.ibm.com> 19340 19341 PR target/85358 19342 * config/rs6000/rs6000-modes.def (toplevel): Rework the 128-bit 19343 floating point modes, so that IFmode is numerically greater than 19344 TFmode, which is greater than KFmode using FRACTIONAL_FLOAT_MODE 19345 to declare the ordering. This prevents IFmode from being 19346 converted to TFmode when long double is IEEE 128-bit on an ISA 3.0 19347 machine. Include rs6000-modes.h to share the fractional values 19348 between genmodes* and the rest of the compiler. 19349 (IFmode): Likewise. 19350 (KFmode): Likewise. 19351 (TFmode): Likewise. 19352 * config/rs6000/rs6000-modes.h: New file. 19353 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Change the 19354 meaning of rs6000_long_double_size so that 126..128 selects an 19355 appropriate 128-bit floating point type. 19356 (rs6000_option_override_internal): Likewise. 19357 * config/rs6000/rs6000.h (toplevel): Include rs6000-modes.h. 19358 (TARGET_LONG_DOUBLE_128): Change the meaning of 19359 rs6000_long_double_size so that 126..128 selects an appropriate 19360 128-bit floating point type. 19361 (LONG_DOUBLE_TYPE_SIZE): Update comment. 19362 * config/rs6000/rs6000.md (trunciftf2): Correct the modes of the 19363 source and destination to match the standard usage. 19364 (truncifkf2): Likewise. 19365 (copysign<mode>3, IEEE iterator): Rework copysign of float128 on 19366 ISA 2.07 to use an explicit clobber, instead of passing in a 19367 temporary. 19368 (copysign<mode>3_soft): Likewise. 19369 193702018-06-18 David Malcolm <dmalcolm@redhat.com> 19371 19372 * tree-vect-data-refs.c (vect_analyze_data_ref_dependences): 19373 Replace dump_printf_loc call with DUMP_VECT_SCOPE. 19374 (vect_slp_analyze_instance_dependence): Likewise. 19375 (vect_enhance_data_refs_alignment): Likewise. 19376 (vect_analyze_data_refs_alignment): Likewise. 19377 (vect_slp_analyze_and_verify_instance_alignment 19378 (vect_analyze_data_ref_accesses): Likewise. 19379 (vect_prune_runtime_alias_test_list): Likewise. 19380 (vect_analyze_data_refs): Likewise. 19381 * tree-vect-loop-manip.c (vect_update_inits_of_drs): Likewise. 19382 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 19383 (vect_analyze_scalar_cycles_1): Likewise. 19384 (vect_get_loop_niters): Likewise. 19385 (vect_analyze_loop_form_1): Likewise. 19386 (vect_update_vf_for_slp): Likewise. 19387 (vect_analyze_loop_operations): Likewise. 19388 (vect_analyze_loop): Likewise. 19389 (vectorizable_induction): Likewise. 19390 (vect_transform_loop): Likewise. 19391 * tree-vect-patterns.c (vect_pattern_recog): Likewise. 19392 * tree-vect-slp.c (vect_analyze_slp): Likewise. 19393 (vect_make_slp_decision): Likewise. 19394 (vect_detect_hybrid_slp): Likewise. 19395 (vect_slp_analyze_operations): Likewise. 19396 (vect_slp_bb): Likewise. 19397 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. 19398 (vectorizable_bswap): Likewise. 19399 (vectorizable_call): Likewise. 19400 (vectorizable_simd_clone_call): Likewise. 19401 (vectorizable_conversion): Likewise. 19402 (vectorizable_assignment): Likewise. 19403 (vectorizable_shift): Likewise. 19404 (vectorizable_operation): Likewise. 19405 * tree-vectorizer.h (DUMP_VECT_SCOPE): New macro. 19406 194072018-06-18 Martin Sebor <msebor@redhat.com> 19408 19409 PR tree-optimization/81384 19410 * builtin-types.def (BT_FN_SIZE_CONST_STRING_SIZE): New. 19411 * builtins.c (expand_builtin_strnlen): New function. 19412 (expand_builtin): Call it. 19413 (fold_builtin_n): Avoid setting TREE_NO_WARNING. 19414 * builtins.def (BUILT_IN_STRNLEN): New. 19415 * calls.c (maybe_warn_nonstring_arg): Handle BUILT_IN_STRNLEN. 19416 Warn for bounds in excess of maximum object size. 19417 * tree-ssa-strlen.c (maybe_set_strlen_range): Return tree representing 19418 single-value ranges. Handle strnlen. 19419 (handle_builtin_strlen): Handle strnlen. 19420 (strlen_check_and_optimize_stmt): Same. 19421 * doc/extend.texi (Other Builtins): Document strnlen. 19422 194232018-06-18 Maya Rashish <coypu@sdf.org> 19424 19425 * config/alpha/openbsd.h (TARGET_DEFAULT): Define. 19426 (LINK_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): Likewise. 19427 (INTMAX_TYPE, UINTMAX_TYPE, WINT_TYPE): Likewise. 19428 19429 * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Move from 19430 here to ... 19431 * config/alpha/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Here. 19432 194332018-06-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 19434 19435 * tree.c (escaped_string::escape): Replace cast to char * by 19436 const_cast<char *> (unescaped). 19437 194382018-06-18 Nick Clifton <nickc@redhat.com> 19439 19440 PR 84195 19441 * tree.c (escaped_string): New class. Converts an unescaped 19442 string into its escaped equivalent. 19443 (warn_deprecated_use): Use the new class to convert the 19444 deprecation message, if present. 19445 (test_escaped_strings): New self test. 19446 (test_c_tests): Add test_escaped_strings. 19447 * doc/extend.texi (deprecated): Add a note that the 19448 deprecation message is affected by the -fmessage-length 19449 option, and that control characters will be escaped. 19450 (#pragma GCC error): Document this pragma. 19451 (#pragma GCC warning): Likewise. 19452 * doc/invoke.texi (-fmessage-length): Document this option's 19453 effect on the #warning and #error preprocessor directives and 19454 the deprecated attribute. 19455 194562018-06-18 Eric Botcazou <ebotcazou@adacore.com> 19457 19458 * tree.c (decl_value_expr_lookup): Revert latest change. 19459 (decl_value_expr_insert): Likewise. 19460 194612018-06-17 Eric Botcazou <ebotcazou@adacore.com> 19462 19463 * gimplify.c (nonlocal_vlas): Delete. 19464 (nonlocal_vla_vars): Likewise. 19465 (gimplify_var_or_parm_decl): Do not add debug VAR_DECLs for non-local 19466 referenced VLAs. 19467 (gimplify_body): Do not create and destroy nonlocal_vlas. 19468 * tree-nested.c: Include diagnostic.h. 19469 (use_pointer_in_frame): Tweak. 19470 (lookup_field_for_decl): Add assertion and declare the transformation. 19471 (convert_nonlocal_reference_op) <PARM_DECL>: Rework and issue an 19472 internal error when the reference is in a wrong context. Do not 19473 create a debug decl by default. 19474 (note_nonlocal_block_vlas): Delete. 19475 (convert_nonlocal_reference_stmt) <GIMPLE_BIND>: Do not call it. 19476 (convert_local_reference_op) <PARM_DECL>: Skip the frame decl. Do not 19477 create a debug decl by default. 19478 (convert_gimple_call) <GIMPLE_CALL>: Issue an internal error when the 19479 call is in a wrong context. 19480 (fixup_vla_decls): New function. 19481 (finalize_nesting_tree_1): Adjust comment. Call fixup_vla_decls if no 19482 debug variables were created. 19483 * tree.c (decl_value_expr_lookup): Add checking assertion. 19484 (decl_value_expr_insert): Likewise. 19485 194862018-06-16 Kugan Vivekanandarajah <kuganv@linaro.org> 19487 19488 PR middle-end/82479 19489 * ipa-fnsummary.c (will_be_nonconstant_expr_predicate): Handle CALL_EXPR. 19490 * tree-scalar-evolution.c (interpret_expr): Likewise. 19491 (expression_expensive_p): Likewise. 19492 * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Likewise. 19493 * tree-ssa-loop-niter.c (number_of_iterations_popcount): New. 19494 (number_of_iterations_exit_assumptions): Use number_of_iterations_popcount. 19495 (ssa_defined_by_minus_one_stmt_p): New. 19496 194972018-06-16 Kugan Vivekanandarajah <kuganv@linaro.org> 19498 19499 PR middle-end/64946 19500 * cfgexpand.c (expand_debug_expr): Hande ABSU_EXPR. 19501 * config/i386/i386.c (ix86_add_stmt_cost): Likewise. 19502 * dojump.c (do_jump): Likewise. 19503 * expr.c (expand_expr_real_2): Check operand type's sign. 19504 * fold-const.c (const_unop): Handle ABSU_EXPR. 19505 (fold_abs_const): Likewise. 19506 * gimple-pretty-print.c (dump_unary_rhs): Likewise. 19507 * gimple-ssa-backprop.c (backprop::process_assign_use): Likesie. 19508 (strip_sign_op_1): Likesise. 19509 * match.pd: Add new pattern to generate ABSU_EXPR. 19510 * optabs-tree.c (optab_for_tree_code): Handle ABSU_EXPR. 19511 * tree-cfg.c (verify_gimple_assign_unary): Likewise. 19512 * tree-eh.c (operation_could_trap_helper_p): Likewise. 19513 * tree-inline.c (estimate_operator_cost): Likewise. 19514 * tree-pretty-print.c (dump_generic_node): Likewise. 19515 * tree-vect-patterns.c (vect_recog_sad_pattern): Likewise. 19516 * tree.def (ABSU_EXPR): New. 19517 195182018-06-16 Jakub Jelinek <jakub@redhat.com> 19519 19520 PR middle-end/86095 19521 * common.opt (Wunsafe-loop-optimizations): Add Ignore, remove Var, 19522 documented as preserved for backward compatibility only. 19523 * doc/invoke.texi: Remove -Wunsafe-loop-optimizations documentation. 19524 19525 PR rtl-optimization/86108 19526 * bb-reorder.c (create_forwarder_block): Renamed to ... 19527 (create_eh_forwarder_block): ... this. Split OLD_BB after labels and 19528 jump from new landing pad to the second part. 19529 (sjlj_fix_up_crossing_landing_pad, dw2_fix_up_crossing_landing_pad): 19530 Adjust callers. 19531 195322018-06-15 Jakub Jelinek <jakub@redhat.com> 19533 19534 PR middle-end/85878 19535 * expr.c (expand_assignment): Remove now redundant COMPLEX_MODE_P 19536 check from first store_expr, use to_mode instead of GET_MODE (to_rtx). 19537 Only call store_expr for halves if the mode is the same. 19538 19539 PR middle-end/86123 19540 * match.pd ((X / Y) == 0 -> X < Y): Don't transform complex divisions. 19541 Fix up comment formatting. 19542 195432018-06-15 Bernd Edlinger <bernd.edlinger@hotmail.de> 19544 19545 * typed-splay-tree.h (typed_splay_tree::remove): New function. 19546 (typed_splay_tree::closure, 19547 typed_splay_tree::inner_foreach_fn, typed_splay_tree::m_inner): Deleted. 19548 (typed_splay_tree::typed_splay_tree, 19549 typed_splay_tree::operator =): Declared private. 19550 (typed_splay_tree::splay_tree_key, typed_splay_tree::splay_tree_value, 19551 typed_splay_tree::splay_tree_node_s, typed_splay_tree::KDEL, 19552 typed_splay_tree::VDEL, typed_splay_tree::splay_tree_delete_helper, 19553 typed_splay_tree::rotate_left, typed_splay_tree::rotate_right, 19554 typed_splay_tree::splay_tree_splay, 19555 typed_splay_tree::splay_tree_foreach_helper, 19556 typed_splay_tree::splay_tree_insert, 19557 typed_splay_tree::splay_tree_remove, 19558 typed_splay_tree::splay_tree_lookup, 19559 typed_splay_tree::splay_tree_predecessor, 19560 typed_splay_tree::splay_tree_successor, 19561 typed_splay_tree::splay_tree_min, 19562 typed_splay_tree::splay_tree_max): Took over from splay-tree.c/.h. 19563 (typed_splay_tree::root, typed_splay_tree::comp, 19564 typed_splay_tree::delete_key, 19565 typed_splay_tree::delete_value): New data members. 19566 * typed-splay-tree.c (selftest::test_str_to_int): Add a test for 19567 typed_splay_tree::remove. 19568 195692018-06-15 Matthew Fortune <matthew.fortune@mips.com> 19570 19571 * config/mips/mips.h (ASM_SPEC): Pass through -mcrc, -mno-crc, 19572 -mginv and -mno-ginv to the assembler. 19573 * config/mips/mips.opt (-mcrc): New option. 19574 (-mginv): Likewise. 19575 * doc/invoke.text (-mcrc): Document. 19576 (-mginv): Likewise. 19577 195782018-06-15 Nick Clifton <nickc@redhat.com> 19579 19580 PR 84195 19581 * tree.c (escaped_string): New class. Converts an unescaped 19582 string into its escaped equivalent. 19583 (warn_deprecated_use): Use the new class to convert the 19584 deprecation message, if present. 19585 (test_escaped_strings): New self test. 19586 (test_c_tests): Add test_escaped_strings. 19587 * doc/extend.texi (deprecated): Add a note that the 19588 deprecation message is affected by the -fmessage-length 19589 option, and that control characters will be escaped. 19590 (#pragma GCC error): Document this pragma. 19591 (#pragma GCC warning): Likewise. 19592 * doc/invoke.texi (-fmessage-length): Document this option's 19593 effect on the #warning and #error preprocessor directives and 19594 the deprecated attribute. 19595 195962018-06-15 Richard Biener <rguenther@suse.de> 19597 19598 * tree-vect-slp.c (vect_slp_bb): Dump MSG_OPTIMIZED_LOCATIONS 19599 here, also noting vector size used. 19600 * tree-vectorizer.c (vectorize_loops): Adjust. Note vector 19601 size used in MSG_OPTIMIZED_LOCATIONS dump. 19602 (pass_slp_vectorize::execute): Adjust. 19603 196042018-06-15 Claudiu Zissulescu <claziss@synopsys.com> 19605 19606 PR target/85968 19607 * config/arc/arc.c (arc_return_address_register): Fix 19608 if-condition. 19609 196102018-06-15 Richard Biener <rguenther@suse.de> 19611 19612 PR middle-end/86159 19613 * tree-cfg.c (gimplify_build3): Do not strip sign conversions, 19614 leave useless conversion stripping to force_gimple_operand_gsi. 19615 (gimplify_build2): Likewise. 19616 (gimplify_build1): Likewise. 19617 196182018-06-15 Richard Biener <rguenther@suse.de> 19619 19620 PR middle-end/86076 19621 * tree-cfg.c (move_stmt_op): unshare invariant addresses 19622 before adjusting their block. 19623 196242018-06-15 Sebastian Huber <sebastian.huber@embedded-brains.de> 19625 19626 * config.gcc (riscv*-*-elf* | riscv*-*-rtems*): Use custom 19627 multilibs for *-*-rtems*. 19628 * config/riscv/t-rtems: New file. 19629 196302018-06-14 Jakub Jelinek <jakub@redhat.com> 19631 19632 PR middle-end/86122 19633 * match.pd ((A +- CST1) +- CST2): Punt if last resort 19634 unsigned_type_for returns NULL. 19635 19636 PR target/85945 19637 * lower-subreg.c (find_decomposable_subregs): Don't decompose float 19638 subregs of multi-word pseudos unless the float mode has word size. 19639 196402018-06-14 Richard Biener <rguenther@suse.de> 19641 19642 PR middle-end/86139 19643 * tree-vect-generic.c (build_word_mode_vector_type): Remove 19644 duplicate and harmful type_hash_canon. 19645 * tree.c (type_hash_canon): Assert we didn't find ourselves. 19646 196472018-06-14 Richard Biener <rguenther@suse.de> 19648 19649 PR ipa/86124 19650 * tree-ssa-struct-alias.c (create_variable_info_for): Handle 19651 NULL cgraph_node. 19652 196532018-06-14 Sebastian Huber <sebastian.huber@embedded-brains.de> 19654 19655 * config/rtems.h (STDINT_LONG32): Define. 19656 196572018-06-13 Matthew Fortune <matthew.fortune@mips.com> 19658 Prachi Godbole <prachi.godbole@imgtec.com> 19659 19660 * config/mips/mips-cpus.def: Define P6600. 19661 * config/mips/mips-tables.opt: Regenerate. 19662 * config/mips/mips.c (mips_ucbranch_type): New enum. 19663 (mips_rtx_cost_data): Add support for P6600. 19664 (mips_issue_rate): Likewise. 19665 (mips_multipass_dfa_lookahead): Likewise. 19666 (mips_avoid_hazard): Likewise. 19667 (mips_reorg_process_insns): Likewise. 19668 (mips_classify_branch_p6600): New function. 19669 * config/mips/mips.h (TUNE_P6600): New define. 19670 (MIPS_ISA_LEVEL_SPEC): Infer mips64r6 from p6600. 19671 (ENABLE_LD_ST_PAIRS): Enable load/store bonding for p6600. 19672 * config/mips/mips.md: Include p6600.md. 19673 (processor): Add p6600. 19674 * config/mips/p6600.md: New file. 19675 * doc/invoke.texi: Add p6600 to supported architectures. 19676 196772018-06-13 Martin Sebor <msebor@redhat.com> 19678 19679 PR tree-optimization/86114 19680 * gimple-fold.c (gimple_fold_builtin_strlen): Only handle LHS 19681 of integer types. 19682 * tree-ssa-strlen.c (maybe_set_strlen_range): Same. 19683 196842018-06-13 Richard Biener <rguenther@suse.de> 19685 19686 * tree-vect-patterns.c (vect_recog_vector_vector_shift_pattern): 19687 Properly set vector type of the intermediate stmt. 19688 * tree-vect-stmts.c (vectorizable_operation): The destination 19689 var always has vectype_out type. 19690 196912018-06-13 Jeff Law <law@redhat.com> 19692 19693 * config/rl78/rl78.c (move_elim_pass): Use TDF_NONE rather than 19694 integer 0 for argument to print_rtl_with_bb. 19695 (rl78_reorg): Likewise. 19696 196972018-06-13 David Malcolm <dmalcolm@redhat.com> 19698 19699 * config/arc/arc.c (hwloop_optimize): Strengthen local "end_label" 19700 from rtx to rtx_insn *. 19701 * config/bfin/bfin.c (hwloop_optimize): Likewise for local 19702 "label". 19703 (add_sched_insns_for_speculation): Likewise for local "target", 19704 converting usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. 19705 * config/c6x/c6x.c (reorg_split_calls): Strengthen param "call_labels" 19706 from rtx_insn ** to rtx_code_label **. 19707 (reorg_emit_nops): Likewise. 19708 (c6x_reorg): Likewise for local "call_labels". 19709 * config/sh/sh-protos.h (get_dest_uid): Strengthen 1st param from 19710 rtx to rtx_insn *. 19711 * config/sh/sh.c (dump_table): Strengthen local "lab" from rtx to 19712 rtx_code_label *, adding safe_as_a <rtx_code_label *> casts to 19713 the loops over LABEL_REFS. 19714 (fixup_addr_diff_vecs): Add as_a <rtx_insn *> to usage of 19715 braf_label. 19716 (barrier_align): Convert usage of JUMP_LABEL to JUMP_LABEL_AS_INSN. 19717 (get_dest_uid): Strengthen param "label" from rtx to rtx_insn *. 19718 (split_branches): Strengthen local "olabel" from rtx to 19719 rtx_insn *, adding a safe_as_a cast. 19720 * emit-rtl.c (next_real_insn): Strengthen param from "rtx" 19721 to "rtx_insn *". 19722 (add_insn_after): Likewise for first two params. 19723 (add_insn_before): Likewise. 19724 (remove_insn): Likewise for param. 19725 (emit_pattern_before_noloc): Likewise for second and third params. 19726 (emit_jump_insn_before_noloc): Convert NULL_RTX to NULL. 19727 (emit_call_insn_before_noloc): Likewise. 19728 (emit_debug_insn_before_noloc): Strengthen "before" param from "rtx" 19729 to "rtx_insn *". 19730 (emit_barrier_before): Likewise. 19731 (emit_label_before): Strengthen "label" param from "rtx" to 19732 "rtx_code_label *". Strengthen "before" param from "rtx" to 19733 "rtx_insn *". 19734 (emit_insn_after_1): Strengthen "after" param from "rtx" to 19735 "rtx_insn *". 19736 (emit_pattern_after_noloc): Likewise. 19737 (emit_insn_after_noloc): Likewise. 19738 (emit_jump_insn_after_noloc): Likewise. 19739 (emit_call_insn_after_noloc): Likewise. 19740 (emit_debug_insn_after_noloc): Likewise. 19741 (emit_barrier_after): Likewise. 19742 (emit_label_after): Likewise for both params. 19743 (emit_pattern_after_setloc): Likewise for "after" param. Convert 19744 "loc" param from "int" to "location_t". 19745 (emit_insn_after_setloc): Likewise. 19746 (emit_jump_insn_after_setloc): Likewise. 19747 (emit_call_insn_after_setloc): Likewise. 19748 (emit_debug_insn_after_setloc): Likewise. 19749 (emit_pattern_before_setloc): Likewise for "before" param. Convert 19750 "loc" param from "int" to "location_t". 19751 (emit_pattern_before): Convert NULL_RTX to NULL. 19752 (emit_insn_before_setloc): Convert "loc" param from "int" to 19753 "location_t". 19754 (emit_jump_insn_before_setloc): Likewise. 19755 (emit_call_insn_before_setloc): Likewise. 19756 (emit_debug_insn_before_setloc): Strengthen "before" param from rtx to 19757 rtx_insn *. Convert "loc" param from "int" to "location_t". 19758 * rtl.h (emit_insn_before_setloc, emit_jump_insn_before_setloc, 19759 emit_call_insn_before_setloc, emit_debug_insn_before_setloc): 19760 Convert 3rd param from "int" to "location_t". 19761 (emit_barrier_before, emit_barrier_after, next_real_insn): 19762 Strengthen param from rtx to rtx_insn *. 19763 (emit_label_before): Strengthen 1st param from "rtx" to 19764 "rtx_code_label *". Strengthen 2nd param from "rtx" to 19765 "rtx_insn *". 19766 (emit_insn_after_noloc, emit_jump_insn_after_noloc, 19767 emit_call_insn_after_noloc, emit_debug_insn_after_noloc): 19768 Strengthen 2nd param from "rtx" to "rtx_insn *". 19769 (emit_insn_after_setloc, emit_jump_insn_after_setloc) 19770 emit_call_insn_after_setloc, emit_debug_insn_after_setloc): 19771 Likewise. Convert 3rd param from "int" to "location_t". 19772 (emit_label_after): Strengthen 1st param from "rtx" to 19773 "rtx_code_label *". 19774 (next_real_insn, remove_insn): Strengthen param from "rtx" to 19775 "rtx_insn *". 19776 (add_insn_before, add_insn_after): Strengthen 1st and 2nd params 19777 from "rtx" to "rtx_insn *". 19778 197792018-06-13 Jan Hubicka <hubicka@gcc.gnu.org> 19780 19781 * cgraph.c (cgraph_node::get_untransformed_body): Dump function 19782 bodies streamed in with -Q. 19783 * dumpfile.c (dump_files): Add lto-stream-out dump file. 19784 * dumpfile.h (tree_dump_index): Add lto_stream_out. 19785 * gimple-streamer-out.c: Include gimple-pretty-print.h 19786 (output_bb): Dump stmts streamed. 19787 * lto-section-out.c: Include print-tree.h 19788 (lto_begin_section): Dump sections created. 19789 (lto_output_decl_index): Dump decl encoded. 19790 * lto-streamer-out.c: Include print-tree.h 19791 (create_output_block): Dump output block created. 19792 (DFS::DFS_write_tree_body): Dump DFS SCCs streamed. 19793 (output_function): Dump function output. 19794 (output_constructor): Dump constructor streamed. 19795 (write_global_stream): Output indexes encoded. 19796 (produce_asm_for_decls): Dump streams encoded. 19797 * lto-streamer.c (streamer_dump_file): New global var. 19798 * lto-streamer.h (streamer_dump_file): Declare. 19799 * passes.c (ipa_write_summaries): Initialize streamer dump. 19800 * varpool.c (varpool_node::get_constructor): Dump constructors streamed 19801 in. 19802 198032018-06-13 Eric Botcazou <ebotcazou@adacore.com> 19804 19805 PR target/86048 19806 * config/i386/winnt.c (i386_pe_seh_cold_init): Do not emit negative 19807 offsets for register save directives. Emit a second batch of save 19808 directives, if need be, when the function accesses prior frames. 19809 198102018-06-12 Claudiu Zissulescu <claziss@synopsys.com> 19811 19812 * config/arc/fpu.md (fmasf4): Force operand to register. 19813 (fnmasf4): Likewise. 19814 198152018-06-12 Claudiu Zissulescu <claziss@synopsys.com> 19816 19817 * config/arc/arc-protos.h (arc_pad_return): Remove. 19818 * config/arc/arc.c (machine_function): Remove force_short_suffix 19819 and size_reason. 19820 (arc_print_operand): Adjust printing of '&'. 19821 (arc_verify_short): Remove conditional printing of short suffix. 19822 (arc_final_prescan_insn): Remove reference to size_reason. 19823 (pad_return): New function. 19824 (arc_reorg): Call pad_return. 19825 (arc_pad_return): Remove. 19826 (arc_init_machine_status): Remove reference to force_short_suffix. 19827 * config/arc/arc.md (vunspec): Add VUNSPEC_ARC_BLOCKAGE. 19828 (attr length): When attribute iscompact is true force to 2 19829 regardless; in the case of maybe check if we want to force the 19830 instruction to have 4 bytes length. 19831 (nopv): Change it to generate 4 byte long nop as well. 19832 (blockage): New pattern. 19833 (simple_return): Remove call to arc_pad_return. 19834 (p_return_i): Likewise. 19835 198362018-06-12 Claudiu Zissulescu <claziss@synopsys.com> 19837 19838 * config/arc/elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define. 19839 198402018-06-12 Claudiu Zissulescu <claziss@synopsys.com> 19841 19842 * config/arc/builtins.def (SYNC): SYNC instruction is valid on all 19843 ARC cores. 19844 198452018-06-12 Claudiu Zissulescu <claziss@synopsys.com> 19846 19847 * config/arc/arc.c (atomic_exchangesi): EX instruction is default 19848 for ARC700 and ARCv2. 19849 198502018-06-13 Chenghua Xu <paul.hua.gm@gmail.com> 19851 19852 PR target/86076 19853 * config/mips/loongson.md (vec_setv4hi): Gen_lowpart for 19854 operands[2] instead of operands[1]. 19855 19856 198572018-06-12 Richard Sandiford <richard.sandiford@linaro.org> 19858 19859 * lra-constraints.c (simplify_operand_subreg): In the paradoxical 19860 case, check whether the outer register overlaps an unallocatable 19861 register, not just whether it fits the required class. 19862 198632018-06-12 Richard Sandiford <richard.sandiford@linaro.org> 19864 19865 * poly-int.h (can_div_trunc_p): Add new overload in which all values 19866 are poly_ints. 19867 * alias.c (get_addr): Extend CONST_INT handling to poly_int_rtx_p. 19868 (memrefs_conflict_p): Likewise. 19869 (init_alias_analysis): Likewise. 19870 * cfgexpand.c (expand_debug_expr): Likewise. 19871 * combine.c (combine_simplify_rtx, force_int_to_mode): Likewise. 19872 * cse.c (fold_rtx): Likewise. 19873 * explow.c (adjust_stack, anti_adjust_stack): Likewise. 19874 * expr.c (emit_block_move_hints): Likewise. 19875 (clear_storage_hints, push_block, emit_push_insn): Likewise. 19876 (store_expr_with_bounds, reduce_to_bit_field_precision): Likewise. 19877 (emit_group_load_1): Use rtx_to_poly_int64 for group offsets. 19878 (emit_group_store): Likewise. 19879 (find_args_size_adjust): Use strip_offset. Use rtx_to_poly_int64 19880 to read the PRE/POST_MODIFY increment. 19881 * calls.c (store_one_arg): Use strip_offset. 19882 * rtlanal.c (rtx_addr_can_trap_p_1): Extend CONST_INT handling to 19883 poly_int_rtx_p. 19884 (set_noop_p): Use rtx_to_poly_int64 for the elements selected 19885 by a VEC_SELECT. 19886 * simplify-rtx.c (avoid_constant_pool_reference): Use strip_offset. 19887 (simplify_binary_operation_1): Extend CONST_INT handling to 19888 poly_int_rtx_p. 19889 * var-tracking.c (compute_cfa_pointer): Take a poly_int64 rather 19890 than a HOST_WIDE_INT. 19891 (hard_frame_pointer_adjustment): Change from HOST_WIDE_INT to 19892 poly_int64. 19893 (adjust_mems, add_stores): Update accodingly. 19894 (vt_canonicalize_addr): Track polynomial offsets. 19895 (emit_note_insn_var_location): Likewise. 19896 (vt_add_function_parameter): Likewise. 19897 (vt_initialize): Likewise. 19898 198992018-06-12 Jeff Law <law@redhat.com> 19900 19901 * config.gcc (alpha*-*-freebsd*): Remove. 19902 * config/alpha/freebsd.h: Remove. 19903 199042018-06-12 David Malcolm <dmalcolm@redhat.com> 19905 19906 PR other/69968 19907 * spellcheck-tree.c (levenshtein_distance): Rename to... 19908 (get_edit_distance): ...this, and update for underlying renaming. 19909 * spellcheck-tree.h (levenshtein_distance): Rename to... 19910 (get_edit_distance): ...this. 19911 * spellcheck.c (levenshtein_distance): Rename to... 19912 (get_edit_distance): ...this. Convert from Levenshtein distance 19913 to Damerau-Levenshtein distance by supporting transpositions of 19914 adjacent characters. Rename "v1" to "v_next" and "v0" to 19915 "v_one_ago". 19916 (selftest::levenshtein_distance_unit_test_oneway): Rename to... 19917 (selftest::test_edit_distance_unit_test_oneway): ...this, and 19918 update for underlying renaming. 19919 (selftest::levenshtein_distance_unit_test): Rename to... 19920 (selftest::test_get_edit_distance_unit): ...this, and update for 19921 underlying renaming. 19922 (selftest::test_find_closest_string): Add example from PR 69968 19923 where transposition helps 19924 (selftest::test_metric_conditions): Update for renaming. 19925 (selftest::test_metric_conditions): Likewise. 19926 (selftest::spellcheck_c_tests): Likewise. 19927 * spellcheck.h (levenshtein_distance): Rename both overloads to... 19928 (get_edit_distance): ...this. 19929 (best_match::consider): Update for renaming. 19930 199312018-06-12 Martin Sebor <msebor@redhat.com> 19932 19933 PR tree-optimization/85259 19934 * builtins.c (compute_objsize): Handle constant offsets. 19935 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Return 19936 true iff a warning has been issued. 19937 * gimple.h (gimple_nonartificial_location): New function. 19938 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Call 19939 gimple_nonartificial_location and handle -Wno-system-headers. 19940 (handle_builtin_stxncpy): Same. 19941 199422018-06-12 Martin Sebor <msebor@redhat.com> 19943 19944 PR c/85931 19945 * fold-const.c (operand_equal_p): Handle SAVE_EXPR. 19946 199472018-06-12 Will Schmidt <will_schmidt@vnet.ibm.com> 19948 19949 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add 19950 BUILTIN_VEC_XST entries for pointer to double and long long. 19951 199522018-06-12 H.J. Lu <hongjiu.lu@intel.com> 19953 19954 PR target/85990 19955 * config/i386/gnu-user.h (TARGET_THREAD_SPLIT_STACK_OFFSET): 19956 Update comments. 19957 * config/i386/gnu-user64.h (TARGET_THREAD_SPLIT_STACK_OFFSET): 19958 Likewise. 19959 199602018-06-12 Martin Liska <mliska@suse.cz> 19961 19962 * doc/options.texi: Document IntegerRange. 19963 199642018-06-12 Martin Liska <mliska@suse.cz> 19965 19966 * config/i386/i386.opt: Make MPX-related options as Deprecated. 19967 * opt-functions.awk: Handle Deprecated flag. 19968 * opts-common.c (decode_cmdline_option): Handle cl_deprecated 19969 and report error. 19970 (read_cmdline_option): Report warning for a deprecated option. 19971 * opts.h (struct cl_option): Add new field cl_deprecated. 19972 (CL_ERR_DEPRECATED): New. 19973 199742018-06-12 Martin Liska <mliska@suse.cz> 19975 19976 * doc/options.texi: Document Deprecated option flag. 19977 199782018-06-12 Claudiu Zissulescu <claziss@synopsys.com> 19979 19980 * config/arc/arc-arch.h (arc_extras): New enum. 19981 (arc_cpu_t):Add field extra. 19982 (arc_cpu_types): Consider the extras. 19983 * config/arc/arc-cpus.def: Add extras info. 19984 * config/arc/arc-opts.h (processor_type): Consider extra field. 19985 * config/arc/arc.c (arc_override_options): Handle extra field. 19986 199872018-06-12 Claudiu Zissulescu <claziss@synopsys.com> 19988 19989 * config/arc/arc-arch.h: Update ARC_OPTX macro. 19990 * config/arc/arc-options.def (ARC_OPTX): Introduce a new doc 19991 field. 19992 * config/arc/arc.c (arc_init): Update pic warning. 19993 (irq_range): Update irq range parsing warnings. 19994 (arc_override_options): Update various warning messages. 19995 (arc_handle_aux_attribute): Likewise. 19996 199972018-06-12 Robert Suchanek <robert.suchanek@mips.com> 19998 19999 * config/mips/i6400.md (i6400_fpu_fadd): Remove frint. 20000 200012018-06-12 Jozef Lawrynowicz <jozef.l@mittosystems.com> 20002 20003 * doc/sourcebuild.texi: Document usage of line number 0 in verify 20004 compiler messages directives. 20005 200062018-06-12 Matthew Fortune <mfortune@gmail.com> 20007 20008 * config/mips/mips-cpus.def: New MIPS_CPU for i6500. 20009 * config/mips/mips-tables.opt: Regenerate. 20010 * config/mips/mips.h (MIPS_ISA_LEVEL_SPEC): Mark i6500 as 20011 mips64r6. 20012 * doc/invoke.texi: Document -march=i6500. 20013 200142018-06-12 Prachi Godbole <prachi.godbole@imgtec.com> 20015 20016 * config/mips/i6400.md (i6400_gpmuldiv): Remove cpu_unit. 20017 (i6400_gpmul): Add cpu_unit. 20018 (i6400_gpdiv): Likewise. 20019 (i6400_msa_add_d): Update reservations. 20020 (i6400_msa_int_add) Likewise. 20021 (i6400_msa_short_logic3) Likewise. 20022 (i6400_msa_short_logic2) Likewise. 20023 (i6400_msa_short_logic) Likewise. 20024 (i6400_msa_move) Likewise. 20025 (i6400_msa_cmp) Likewise. 20026 (i6400_msa_short_float2) Likewise. 20027 (i6400_msa_div_d) Likewise. 20028 (i6400_msa_long_logic1) Likewise. 20029 (i6400_msa_long_logic2) Likewise. 20030 (i6400_msa_mult) Likewise. 20031 (i6400_msa_long_float2) Likewise. 20032 (i6400_msa_long_float4) Likewise. 20033 (i6400_msa_long_float5) Likewise. 20034 (i6400_msa_long_float8) Likewise. 20035 (i6400_fpu_fadd): Include frint type. 20036 (i6400_fpu_store): New define_insn_reservation. 20037 (i6400_fpu_load): Likewise. 20038 (i6400_fpu_move): Likewise. 20039 (i6400_fpu_fcmp): Likewise. 20040 (i6400_fpu_fmadd): Likewise. 20041 (i6400_int_mult): Include imul3nc type and update reservation. 20042 (i6400_int_div): Include idiv3 type and update reservation. 20043 (i6400_int_load): Update to check type not move_type. 20044 (i6400_int_store): Likewise. 20045 (i6400_int_prefetch): Set zero latency. 20046 200472018-06-12 Eric Botcazou <ebotcazou@adacore.com> 20048 20049 * gcc.c: Document new %@{...} sequence. 20050 (LINK_COMMAND_SPEC): Use it for the -L switches. 20051 (cpp_unique_options): Use it for the -I switches. 20052 (at_file_argbuf): New global variable. 20053 (in_at_file): Likewise. 20054 (alloc_args): Create at_file_argbuf. 20055 (clear_args): Truncate at_file_argbuf. 20056 (store_arg): If in_at_file, push the argument onto at_file_argbuf. 20057 (open_at_file): New function. 20058 (close_at_file): Likewise. 20059 (create_at_file): Delete. 20060 (do_spec_1) <'i'>: Use open_at_file/close_at_file. 20061 <'o'>: Likewise. 20062 <'@'>: New case. 20063 (validate_switches_from_spec): Deal with %@{...} sequence. 20064 (validate_switches): Likewise. 20065 (driver::finalize): Call clear_args. 20066 200672018-06-11 Rasmus Villemoes <rasmus.villemoes@prevas.dk> 20068 20069 * config/vx-common.h (USE_TM_CLONE_REGISTRY): #define to 0. 20070 200712018-06-11 Martin Sebor <msebor@redhat.com> 20072 20073 * doc/invoke.texi (-Wall): List -Wc++17-compat. 20074 (Wno-class-memaccess): Add @opindex. 20075 (Wno-templates, Wno-multiple-inheritance): Same. 20076 (Wno-virtual-inheritance, Wno-namespaces): Same. 20077 (Wno-pedantic, Wno-chkp, Wcoverage-mismatch): Same. 20078 (Wno-format-overflow, Wno-format-truncation): Same. 20079 (Wno-unused-local-typedefs, Walloc-size-larger-than): Same. 20080 (Wno-alloc-size-larger-than, Wframe-larger-than): Same 20081 (Wno-stack-usage, Wno-c++-compat, Wno-c++11-compat): Same. 20082 (Wno-c++14-compat, Wno-c++17-compat, Wno-openmp-simd): Same. 20083 (Wno-unsuffixed-float-constants, Wno-addr-space-convert): Same. 20084 (Wno-misspelled-isr): Same. 20085 200862018-06-11 Martin Sebor <msebor@redhat.com> 20087 20088 * PR tree-optimization/86083 20089 * tree-ssa-strlen.c (handle_char_store): Use tree_expr_nonzero_p. 20090 200912018-06-11 Zhouyi Zhou <zhouzhouyi@gmail.com> 20092 20093 * tree-eh.c (lower_eh_constructs_2): Add a comma to comment. 20094 200952018-06-11 Segher Boessenkool <segher@kernel.crashing.org> 20096 20097 PR target/85755 20098 * config/rs6000/rs6000.md (*movdi_internal32): Put constraint modifiers 20099 on the correct operand. 20100 (*movdi_internal64): Ditto. 20101 201022018-06-11 Martin Liska <mliska@suse.cz> 20103 20104 PR tree-optimization/86089 20105 * tree-ssa-strlen.c (get_string_length): Move back removed hunk. 20106 201072018-06-11 Julia Koval <julia.koval@intel.com> 20108 20109 * config/i386/vaesintrin.h (_mm_aesdec_epi128, _mm_aesdeclast_epi128) 20110 _mm_aesenc_epi128, _mm_aesenclast_epi128: Remove. 20111 * config/i386/vpclmulqdqintrin.h (_mm_clmulepi64_epi128): Remove. 20112 201132018-06-11 Olivier Hainque <hainque@adacore.com> 20114 20115 * dwarf2out.c (gen_compile_unit_die): Fallout to DW_LANG_Ada83 20116 for Ada with strict dwarf2. 20117 201182018-06-08 Peter Bergner <bergner@vnet.ibm.com> 20119 20120 PR target/85755 20121 * config/rs6000/rs6000.c (mem_operand_gpr): Enable PRE_INC and PRE_DEC 20122 addresses. 20123 201242018-06-08 Jan Hubicka <hubicka@ucw.cz> 20125 20126 * dumpfile.c (FIRST_ME_AUTO_NUMBERED_DUMP): Bump to 4. 20127 201282018-06-08 David Edelsohn <dje.gcc@gmail.com> 20129 20130 * config/rs6000/rs6000.c (rs6000_passes_ieee128): Protect with #if 20131 TARGET_ELF. 20132 201332018-06-08 Martin Liska <mliska@suse.cz> 20134 20135 * tree-cfg.h (debug_function): Fix argument type to match 20136 implementation. 20137 201382018-06-08 Martin Liska <mliska@suse.cz> 20139 20140 * config/powerpcspe/powerpcspe.c (rs6000_xcoff_visibility): 20141 Remove usage of MPX-related (and removed) fields. 20142 * config/rs6000/rs6000.c (rs6000_xcoff_visibility): Likewise. 20143 201442018-06-08 David Malcolm <dmalcolm@redhat.com> 20145 20146 * cfg.c (debug): Use TDF_NONE rather than 0. 20147 * cfghooks.c (debug): Likewise. 20148 * dumpfile.c (DUMP_FILE_INFO): Likewise; also for OPTGROUP. 20149 (struct dump_option_value_info): Convert to... 20150 (struct kv_pair): ...this template type. 20151 (dump_options): Convert to kv_pair<dump_flags_t>; use TDF_NONE 20152 rather than 0. 20153 (optinfo_verbosity_options): Likewise. 20154 (optgroup_options): Convert to kv_pair<optgroup_flags_t>; use 20155 OPTGROUP_NONE. 20156 (gcc::dump_manager::dump_register): Use optgroup_flags_t rather 20157 than int for "optgroup_flags" param. 20158 (dump_generic_expr_loc): Use dump_flags_t rather than int for 20159 "dump_kind" param. 20160 (dump_dec): Likewise. 20161 (dump_finish): Use TDF_NONE rather than 0. 20162 (gcc::dump_manager::opt_info_enable_passes): Use optgroup_flags_t 20163 rather than int for "optgroup_flags" param. Use TDF_NONE rather 20164 than 0. Update for change to option_ptr. 20165 (opt_info_switch_p_1): Convert "optgroup_flags" param from int * 20166 to optgroup_flags_t *. Use TDF_NONE and OPTGROUP_NONE rather than 20167 0. Update for changes to optinfo_verbosity_options and 20168 optgroup_options. 20169 (opt_info_switch_p): Convert optgroup_flags from int to 20170 optgroup_flags_t. 20171 (dump_basic_block): Use dump_flags_t rather than int 20172 for "dump_kind" param. 20173 * dumpfile.h (TDF_ADDRESS, TDF_SLIM, TDF_RAW, TDF_DETAILS, 20174 TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO, TDF_UID) 20175 TDF_STMTADDR, TDF_GRAPH, TDF_MEMSYMS, TDF_RHS_ONLY, TDF_ASMNAME, 20176 TDF_EH, TDF_NOUID, TDF_ALIAS, TDF_ENUMERATE_LOCALS, TDF_CSELIB, 20177 TDF_SCEV, TDF_GIMPLE, TDF_FOLDING, MSG_OPTIMIZED_LOCATIONS, 20178 MSG_MISSED_OPTIMIZATION, MSG_NOTE, MSG_ALL, TDF_COMPARE_DEBUG, 20179 TDF_NONE): Convert from macros to... 20180 (enum dump_flag): ...this new enum. 20181 (dump_flags_t): Update to use enum. 20182 (operator|, operator&, operator~, operator|=, operator&=): 20183 Implement for dump_flags_t. 20184 (OPTGROUP_NONE, OPTGROUP_IPA, OPTGROUP_LOOP, OPTGROUP_INLINE, 20185 OPTGROUP_OMP, OPTGROUP_VEC, OPTGROUP_OTHER, OPTGROUP_ALL): 20186 Convert from macros to... 20187 (enum optgroup_flag): ...this new enum. 20188 (optgroup_flags_t): New typedef. 20189 (operator|, operator|=): Implement for optgroup_flags_t. 20190 (struct dump_file_info): Convert field "alt_flags" to 20191 dump_flags_t. Convert field "optgroup_flags" to 20192 optgroup_flags_t. 20193 (dump_basic_block): Use dump_flags_t rather than int for param. 20194 (dump_generic_expr_loc): Likewise. 20195 (dump_dec): Likewise. 20196 (dump_register): Convert param "optgroup_flags" to 20197 optgroup_flags_t. 20198 (opt_info_enable_passes): Likewise. 20199 * early-remat.c (early_remat::dump_edge_list): Use TDF_NONE rather 20200 than 0. 20201 * gimple-pretty-print.c (debug): Likewise. 20202 * gimple-ssa-store-merging.c (bswap_replace): Likewise. 20203 (merged_store_group::apply_stores): Likewise. 20204 * gimple-ssa-strength-reduction.c (insert_initializers): Likewise. 20205 * gimple.c (verify_gimple_pp): Likewise. 20206 * graphite-poly.c (print_pbb_body): Likewise. 20207 * passes.c (pass_manager::register_one_dump_file): Convert 20208 local "optgroup_flags" to optgroup_flags_t. 20209 * print-tree.c (print_node): Use TDF_NONE rather than 0. 20210 (debug): Likewise. 20211 (debug_body): Likewise. 20212 * tree-pass.h (struct pass_data): Convert field "optgroup_flags" 20213 to optgroup_flags_t. 20214 * tree-pretty-print.c (print_struct_decl): Use TDF_NONE rather 20215 than 0. 20216 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Likewise. 20217 (convert_mult_to_fma): Likewise. 20218 * tree-ssa-reassoc.c (undistribute_ops_list): Likewise. 20219 * tree-ssa-sccvn.c (vn_eliminate): Likewise. 20220 * tree-vect-data-refs.c (dump_lower_bound): Convert param 20221 "dump_kind" to dump_flags_t. 20222 202232018-06-08 Segher Boessenkool <segher@kernel.crashing.org> 20224 20225 * config/rs6000/rs6000.c (min, max): Delete. 20226 202272018-06-08 Segher Boessenkool <segher@kernel.crashing.org> 20228 20229 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete mention of 20230 -mabi=spe and -mabi=no-spe. 20231 202322018-06-08 Martin Liska <mliska@suse.cz> 20233 20234 * ipa-pure-const.c (propagate_pure_const): Use ::get at places 20235 where we expect an existing summary. 20236 202372018-06-08 Martin Liska <mliska@suse.cz> 20238 20239 * ipa-inline-analysis.c (simple_edge_hints): Use ::get method. 20240 * ipa-inline.h (estimate_edge_growth): Likewise. 20241 202422018-06-08 Martin Liska <mliska@suse.cz> 20243 20244 * cgraph.c (function_version_hasher::hash): Use 20245 cgraph_node::get_uid (). 20246 (function_version_hasher::equal): 20247 * cgraph.h (cgraph_node::get_uid): New method. 20248 * ipa-inline.c (update_caller_keys): Use 20249 cgraph_node::get_uid (). 20250 (update_callee_keys): Likewise. 20251 * ipa-utils.c (searchc): Likewise. 20252 (ipa_reduced_postorder): Likewise. 20253 * lto-cgraph.c (input_node): Likewise. 20254 * passes.c (is_pass_explicitly_enabled_or_disabled): Likewise. 20255 * symbol-summary.h (symtab_insertion): Likewise. 20256 (symtab_removal): Likewise. 20257 (symtab_duplication): Likewise. 20258 * tree-pretty-print.c (dump_function_header): Likewise. 20259 * tree-sra.c (convert_callers_for_node): Likewise. 20260 202612018-06-08 Martin Liska <mliska@suse.cz> 20262 20263 * cgraph.c (symbol_table::create_edge): Always assign a new 20264 unique number. 20265 (symbol_table::free_edge): Do not recycle numbers. 20266 * cgraph.h (cgraph_edge::get): New method. 20267 * symbol-summary.h (symtab_removal): Use it. 20268 (symtab_duplication): Likewise. 20269 (call_summary::hashable_uid): Remove. 20270 202712018-06-08 Martin Liska <mliska@suse.cz> 20272 20273 * ipa-inline-analysis.c (inline_edge_removal_hook): Remove. 20274 (initialize_growth_caches): Remove. 20275 (free_growth_caches): Likewise. 20276 (do_estimate_edge_time): Use edge_growth_cache. 20277 (do_estimate_edge_size): Likewise. 20278 (do_estimate_edge_hints): Likewise. 20279 * ipa-inline.c (reset_edge_caches): Likewise. 20280 (recursive_inlining): Likewise. 20281 (inline_small_functions): Likewise. 20282 * ipa-inline.h (initialize_growth_caches): Remove. 20283 (estimate_edge_size): Likewise. 20284 (estimate_edge_time): Likewise. 20285 (estimate_edge_hints): Likewise. 20286 (reset_edge_growth_cache): Likewise. 20287 * symbol-summary.h (call_summary::remove): New method. 20288 202892018-06-08 Martin Liska <mliska@suse.cz> 20290 20291 * ipa-cp.c (class edge_clone_summary): New summary. 20292 (grow_edge_clone_vectors): Remove. 20293 (ipcp_edge_duplication_hook): Remove. 20294 (class edge_clone_summary_t): New call_summary class. 20295 (ipcp_edge_removal_hook): Remove. 20296 (edge_clone_summary_t::duplicate): New function. 20297 (get_next_cgraph_edge_clone): Use edge_clone_summaries. 20298 (create_specialized_node): Likewise. 20299 (ipcp_driver): Initialize edge_clone_summaries and do not 20300 register hooks. 20301 203022018-06-08 Martin Liska <mliska@suse.cz> 20303 20304 * symbol-summary.h (get): New function. 20305 (call_summary::m_initialize_when_cloning): New class member. 20306 203072018-06-08 Martin Liska <mliska@suse.cz> 20308 20309 * cgraph.c (cgraph_node::remove): Do not recycle uid. 20310 * cgraph.h (symbol_table::release_symbol): Do not pass uid. 20311 (symbol_table::allocate_cgraph_symbol): Do not set uid. 20312 * passes.c (uid_hash_t): Record removed_nodes by their uids. 20313 (remove_cgraph_node_from_order): Use the removed_nodes set. 20314 (do_per_function_toporder): Likwise. 20315 * symbol-summary.h (symtab_insertion): Use cgraph_node::uid 20316 instead of summary_uid. 20317 (symtab_removal): Likewise. 20318 (symtab_duplication): Likewise. 20319 203202018-06-08 Martin Liska <mliska@suse.cz> 20321 20322 * ipa-cp.c (ipcp_store_bits_results): Use 20323 ipcp_transformation_sum. 20324 (ipcp_store_vr_results): Likewise. 20325 * ipa-prop.c (ipcp_grow_transformations_if_necessary): Renamed 20326 to ... 20327 (ipcp_transformation_initialize): ... this. 20328 (ipa_set_node_agg_value_chain): 20329 (ipa_node_params_t::duplicate): Use ipcp_transformation_sum. 20330 (write_ipcp_transformation_info): Likewise. 20331 (read_ipcp_transformation_info): Likewise. 20332 (ipcp_update_bits): Likewise. 20333 (ipcp_update_vr): Likewise. 20334 (ipcp_transform_function): Likewise. 20335 * ipa-prop.h: Rename ipcp_transformation_summary to 20336 ipcp_transformation. 20337 (class ipcp_transformation_t): New function summary. 20338 (ipcp_get_transformation_summary): Use ipcp_transformation_sum. 20339 (ipa_get_agg_replacements_for_node): Likewise. 20340 203412018-06-08 Martin Liska <mliska@suse.cz> 20342 20343 * ipa-pure-const.c (struct funct_state_d): Do it class instead 20344 of struct. 20345 (class funct_state_summary_t): New function_summary class. 20346 (has_function_state): Remove. 20347 (get_function_state): Likewise. 20348 (set_function_state): Likewise. 20349 (add_new_function): Likewise. 20350 (funct_state_summary_t::insert): New function. 20351 (duplicate_node_data): Remove. 20352 (remove_node_data): Remove. 20353 (funct_state_summary_t::duplicate): New function. 20354 (register_hooks): Create new funct_state_summaries. 20355 (pure_const_generate_summary): Use it. 20356 (pure_const_write_summary): Likewise. 20357 (pure_const_read_summary): Likewise. 20358 (propagate_pure_const): Likewise. 20359 (propagate_nothrow): Likewise. 20360 (dump_malloc_lattice): Likewise. 20361 (propagate_malloc): Likewise. 20362 (execute): Do not register hooks, just remove summary 20363 instead. 20364 (pass_ipa_pure_const::pass_ipa_pure_const): Simplify 20365 constructor. 20366 203672018-06-08 Martin Liska <mliska@suse.cz> 20368 20369 * ipa-reference.c (remove_node_data): Remove. 20370 (duplicate_node_data): Likewise. 20371 (class ipa_ref_var_info_summary_t): New class. 20372 (class ipa_ref_opt_summary_t): Likewise. 20373 (get_reference_vars_info): Use ipa_ref_var_info_summaries. 20374 (get_reference_optimization_summary): Use 20375 ipa_ref_opt_sum_summaries. 20376 (set_reference_vars_info): Remove. 20377 (set_reference_optimization_summary): Likewise. 20378 (ipa_init): Create summaries. 20379 (init_function_info): Use function summary. 20380 (ipa_ref_opt_summary_t::duplicate): New function. 20381 (ipa_ref_opt_summary_t::remove): New function. 20382 (get_read_write_all_from_node): Fix GNU coding style. 20383 (propagate): Use function summary. 20384 (write_node_summary_p): Fix GNU coding style. 20385 (stream_out_bitmap): Likewise. 20386 (ipa_reference_read_optimization_summary): Use function summary. 20387 (ipa_reference_c_finalize): Do not release hooks. 20388 203892018-06-08 Martin Liska <mliska@suse.cz> 20390 20391 * ipa-fnsummary.c (dump_ipa_call_summary): Use ::get method. 20392 (analyze_function_body): Extract multiple calls of get_create. 20393 * ipa-inline-analysis.c (simple_edge_hints): Likewise. 20394 * ipa-inline.c (recursive_inlining): Use ::get method. 20395 * ipa-inline.h (estimate_edge_growth): Likewise. 20396 203972018-06-08 Martin Liska <mliska@suse.cz> 20398 20399 * hsa-common.h (enum hsa_function_kind): Rename HSA_NONE to 20400 HSA_INVALID. 20401 (hsa_function_summary::hsa_function_summary): Use the new enum 20402 value. 20403 (hsa_gpu_implementation_p): Use hsa_summaries::get. 20404 * hsa-gen.c (hsa_get_host_function): Likewise. 20405 (get_brig_function_name): Likewise. 20406 * ipa-hsa.c (process_hsa_functions): Likewise. 20407 (ipa_hsa_write_summary): Likewise. 20408 * symbol-summary.h (symtab_duplication): Use ::get function/ 20409 (get): New function. 20410 204112018-06-08 Martin Liska <mliska@suse.cz> 20412 20413 * config/i386/i386.c (ix86_can_inline_p): Use get_create instead 20414 of get. 20415 * hsa-common.c (hsa_summary_t::link_functions): Likewise. 20416 (hsa_register_kernel): Likewise. 20417 * hsa-common.h (hsa_gpu_implementation_p): Likewise. 20418 * hsa-gen.c (hsa_get_host_function): Likewise. 20419 (get_brig_function_name): Likewise. 20420 (generate_hsa): Likewise. 20421 (pass_gen_hsail::execute): Likewise. 20422 * ipa-cp.c (ipcp_cloning_candidate_p): Likewise. 20423 (devirtualization_time_bonus): Likewise. 20424 (ipcp_propagate_stage): Likewise. 20425 * ipa-fnsummary.c (redirect_to_unreachable): Likewise. 20426 (edge_set_predicate): Likewise. 20427 (evaluate_conditions_for_known_args): Likewise. 20428 (evaluate_properties_for_edge): Likewise. 20429 (ipa_fn_summary::reset): Likewise. 20430 (ipa_fn_summary_t::duplicate): Likewise. 20431 (dump_ipa_call_summary): Likewise. 20432 (ipa_dump_fn_summary): Likewise. 20433 (analyze_function_body): Likewise. 20434 (compute_fn_summary): Likewise. 20435 (estimate_edge_devirt_benefit): Likewise. 20436 (estimate_edge_size_and_time): Likewise. 20437 (estimate_calls_size_and_time): Likewise. 20438 (estimate_node_size_and_time): Likewise. 20439 (inline_update_callee_summaries): Likewise. 20440 (remap_edge_change_prob): Likewise. 20441 (remap_edge_summaries): Likewise. 20442 (ipa_merge_fn_summary_after_inlining): Likewise. 20443 (ipa_update_overall_fn_summary): Likewise. 20444 (read_ipa_call_summary): Likewise. 20445 (inline_read_section): Likewise. 20446 (write_ipa_call_summary): Likewise. 20447 (ipa_fn_summary_write): Likewise. 20448 (ipa_free_fn_summary): Likewise. 20449 * ipa-hsa.c (process_hsa_functions): Likewise. 20450 (ipa_hsa_write_summary): Likewise. 20451 (ipa_hsa_read_section): Likewise. 20452 * ipa-icf.c (sem_function::merge): Likewise. 20453 * ipa-inline-analysis.c (simple_edge_hints): Likewise. 20454 (do_estimate_edge_time): Likewise. 20455 (estimate_size_after_inlining): Likewise. 20456 (estimate_growth): Likewise. 20457 (growth_likely_positive): Likewise. 20458 * ipa-inline-transform.c (clone_inlined_nodes): Likewise. 20459 (inline_call): Likewise. 20460 * ipa-inline.c (caller_growth_limits): Likewise. 20461 (can_inline_edge_p): Likewise. 20462 (can_inline_edge_by_limits_p): Likewise. 20463 (compute_uninlined_call_time): Likewise. 20464 (compute_inlined_call_time): Likewise. 20465 (want_inline_small_function_p): Likewise. 20466 (edge_badness): Likewise. 20467 (update_caller_keys): Likewise. 20468 (update_callee_keys): Likewise. 20469 (recursive_inlining): Likewise. 20470 (inline_small_functions): Likewise. 20471 (inline_to_all_callers_1): Likewise. 20472 (dump_overall_stats): Likewise. 20473 (early_inline_small_functions): Likewise. 20474 (early_inliner): Likewise. 20475 * ipa-inline.h (estimate_edge_growth): Likewise. 20476 * ipa-profile.c (ipa_propagate_frequency_1): Likewise. 20477 * ipa-prop.c (ipa_make_edge_direct_to_target): Likewise. 20478 * ipa-prop.h (IPA_NODE_REF): Likewise. 20479 (IPA_EDGE_REF): Likewise. 20480 * ipa-pure-const.c (malloc_candidate_p): Likewise. 20481 (propagate_malloc): Likewise. 20482 * ipa-split.c (execute_split_functions): Likewise. 20483 * symbol-summary.h: Rename get to get_create. 20484 (get): Likewise. 20485 (get_create): Likewise. 20486 * tree-sra.c (ipa_sra_preliminary_function_checks): Likewise. 20487 204882018-06-08 Martin Liska <mliska@suse.cz> 20489 20490 * symbol-summary.h (release): Move definition out of class 20491 declaration. 20492 (symtab_removal): Likewise. 20493 (symtab_duplication): Likewise. 20494 204952018-06-08 Martin Liska <mliska@suse.cz> 20496 20497 * symbol-summary.h (function_summary): Move constructor 20498 implementation out of class declaration. 20499 (release): Likewise. 20500 (symtab_insertion): Likewise. 20501 (symtab_removal): Likewise. 20502 (symtab_duplication): Likewise. 20503 (get): Likewise. 20504 205052018-06-08 Martin Liska <mliska@suse.cz> 20506 20507 * Makefile.in: Remove support for MPX (macros, related functions, 20508 fields in cgraph_node, ...). 20509 * builtin-types.def (BT_BND): Likewise. 20510 (BT_FN_BND_CONST_PTR): Likewise. 20511 (BT_FN_CONST_PTR_BND): Likewise. 20512 (BT_FN_VOID_PTR_BND): Likewise. 20513 (BT_FN_BND_CONST_PTR_SIZE): Likewise. 20514 (BT_FN_VOID_CONST_PTR_BND_CONST_PTR): Likewise. 20515 * builtins.c (expand_builtin_memcpy_with_bounds): Likewise. 20516 (expand_builtin_mempcpy_with_bounds): Likewise. 20517 (expand_builtin_memset_with_bounds): Likewise. 20518 (expand_builtin_memset_args): Likewise. 20519 (std_expand_builtin_va_start): Likewise. 20520 (expand_builtin): Likewise. 20521 (expand_builtin_with_bounds): Likewise. 20522 * builtins.def (DEF_BUILTIN_CHKP): Likewise. 20523 (DEF_LIB_BUILTIN_CHKP): Likewise. 20524 (DEF_EXT_LIB_BUILTIN_CHKP): Likewise. 20525 (DEF_CHKP_BUILTIN): Likewise. 20526 (BUILT_IN_MEMCPY): Likewise. 20527 (BUILT_IN_MEMMOVE): Likewise. 20528 (BUILT_IN_MEMPCPY): Likewise. 20529 (BUILT_IN_MEMSET): Likewise. 20530 (BUILT_IN_STPCPY): Likewise. 20531 (BUILT_IN_STRCAT): Likewise. 20532 (BUILT_IN_STRCHR): Likewise. 20533 (BUILT_IN_STRCPY): Likewise. 20534 (BUILT_IN_STRLEN): Likewise. 20535 (BUILT_IN_MEMCPY_CHK): Likewise. 20536 (BUILT_IN_MEMMOVE_CHK): Likewise. 20537 (BUILT_IN_MEMPCPY_CHK): Likewise. 20538 (BUILT_IN_MEMSET_CHK): Likewise. 20539 (BUILT_IN_STPCPY_CHK): Likewise. 20540 (BUILT_IN_STRCAT_CHK): Likewise. 20541 (BUILT_IN_STRCPY_CHK): Likewise. 20542 * calls.c (store_bounds): Likewise. 20543 (emit_call_1): Likewise. 20544 (special_function_p): Likewise. 20545 (maybe_warn_nonstring_arg): Likewise. 20546 (initialize_argument_information): Likewise. 20547 (finalize_must_preallocate): Likewise. 20548 (compute_argument_addresses): Likewise. 20549 (expand_call): Likewise. 20550 * cfgexpand.c (expand_call_stmt): Likewise. 20551 (expand_return): Likewise. 20552 (expand_gimple_stmt_1): Likewise. 20553 (pass_expand::execute): Likewise. 20554 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Likewise. 20555 (cgraph_node::remove): Likewise. 20556 (cgraph_node::dump): Likewise. 20557 (cgraph_node::verify_node): Likewise. 20558 * cgraph.h (chkp_function_instrumented_p): Likewise. 20559 (symtab_node::get_alias_target): Likewise. 20560 (cgraph_node::can_remove_if_no_direct_calls_and_refs_p): Likewise. 20561 (cgraph_local_p): Likewise. 20562 * cgraphbuild.c (cgraph_edge::rebuild_edges): Likewise. 20563 (cgraph_edge::rebuild_references): Likewise. 20564 * cgraphunit.c (varpool_node::finalize_decl): Likewise. 20565 (walk_polymorphic_call_targets): Likewise. 20566 (cgraph_node::expand_thunk): Likewise. 20567 (symbol_table::output_weakrefs): Likewise. 20568 * common/config/i386/i386-common.c (OPTION_MASK_ISA2_GENERAL_REGS_ONLY_UNSET): Likewise. 20569 (ix86_handle_option): Likewise. 20570 * config/i386/constraints.md: Likewise. 20571 * config/i386/i386-builtin-types.def (BND): Likewise. 20572 (VOID): Likewise. 20573 (PVOID): Likewise. 20574 (ULONG): Likewise. 20575 * config/i386/i386-builtin.def (BDESC_END): Likewise. 20576 (BDESC_FIRST): Likewise. 20577 (BDESC): Likewise. 20578 * config/i386/i386-c.c (ix86_target_macros_internal): Likewise. 20579 * config/i386/i386-protos.h (ix86_bnd_prefixed_insn_p): Likewise. 20580 * config/i386/i386.c (enum reg_class): Likewise. 20581 (ix86_target_string): Likewise. 20582 (ix86_option_override_internal): Likewise. 20583 (ix86_conditional_register_usage): Likewise. 20584 (ix86_valid_target_attribute_inner_p): Likewise. 20585 (ix86_set_indirect_branch_type): Likewise. 20586 (ix86_set_current_function): Likewise. 20587 (ix86_function_arg_regno_p): Likewise. 20588 (init_cumulative_args): Likewise. 20589 (ix86_function_arg_advance): Likewise. 20590 (ix86_function_arg): Likewise. 20591 (ix86_pass_by_reference): Likewise. 20592 (ix86_function_value_regno_p): Likewise. 20593 (ix86_function_value_1): Likewise. 20594 (ix86_function_value_bounds): Likewise. 20595 (ix86_return_in_memory): Likewise. 20596 (ix86_setup_incoming_vararg_bounds): Likewise. 20597 (ix86_va_start): Likewise. 20598 (indirect_thunk_need_prefix): Likewise. 20599 (print_reg): Likewise. 20600 (ix86_print_operand): Likewise. 20601 (ix86_expand_call): Likewise. 20602 (ix86_output_function_return): Likewise. 20603 (reg_encoded_number): Likewise. 20604 (BDESC_VERIFYS): Likewise. 20605 (ix86_init_mpx_builtins): Likewise. 20606 (ix86_init_builtins): Likewise. 20607 (ix86_emit_cmove): Likewise. 20608 (ix86_emit_move_max): Likewise. 20609 (ix86_expand_builtin): Likewise. 20610 (ix86_builtin_mpx_function): Likewise. 20611 (ix86_get_arg_address_for_bt): Likewise. 20612 (ix86_load_bounds): Likewise. 20613 (ix86_store_bounds): Likewise. 20614 (ix86_load_returned_bounds): Likewise. 20615 (ix86_store_returned_bounds): Likewise. 20616 (ix86_class_likely_spilled_p): Likewise. 20617 (ix86_hard_regno_mode_ok): Likewise. 20618 (x86_order_regs_for_local_alloc): Likewise. 20619 (ix86_mitigate_rop): Likewise. 20620 (ix86_bnd_prefixed_insn_p): Likewise. 20621 (ix86_mpx_bound_mode): Likewise. 20622 (ix86_make_bounds_constant): Likewise. 20623 (ix86_initialize_bounds): Likewise. 20624 (TARGET_LOAD_BOUNDS_FOR_ARG): Likewise. 20625 (TARGET_STORE_BOUNDS_FOR_ARG): Likewise. 20626 (TARGET_LOAD_RETURNED_BOUNDS): Likewise. 20627 (TARGET_STORE_RETURNED_BOUNDS): Likewise. 20628 (TARGET_CHKP_BOUND_MODE): Likewise. 20629 (TARGET_BUILTIN_CHKP_FUNCTION): Likewise. 20630 (TARGET_CHKP_FUNCTION_VALUE_BOUNDS): Likewise. 20631 (TARGET_CHKP_MAKE_BOUNDS_CONSTANT): Likewise. 20632 (TARGET_CHKP_INITIALIZE_BOUNDS): Likewise. 20633 * config/i386/i386.h (TARGET_MPX): Likewise. 20634 (TARGET_MPX_P): Likewise. 20635 (VALID_BND_REG_MODE): Likewise. 20636 (FIRST_BND_REG): Likewise. 20637 (LAST_BND_REG): Likewise. 20638 (enum reg_class): Likewise. 20639 (BND_REG_P): Likewise. 20640 (BND_REGNO_P): Likewise. 20641 (BNDmode): Likewise. 20642 (ADJUST_INSN_LENGTH): Likewise. 20643 * config/i386/i386.md: Likewise. 20644 * config/i386/i386.opt: Likewise. 20645 * config/i386/linux-common.h (LIBMPX_LIBS): Likewise. 20646 (defined): Likewise. 20647 (LINK_MPX): Likewise. 20648 (MPX_SPEC): Likewise. 20649 (LIBMPX_SPEC): Likewise. 20650 (LIBMPXWRAPPERS_SPEC): Likewise. 20651 (CHKP_SPEC): Likewise. 20652 * config/i386/predicates.md: Likewise. 20653 * dbxout.c (dbxout_type): Likewise. 20654 * doc/extend.texi: Likewise. 20655 * doc/invoke.texi: Likewise. 20656 * doc/md.texi: Likewise. 20657 * doc/tm.texi: Likewise. 20658 * doc/tm.texi.in: Likewise. 20659 * dwarf2out.c (is_base_type): Likewise. 20660 (gen_formal_types_die): Likewise. 20661 (gen_subprogram_die): Likewise. 20662 (gen_type_die_with_usage): Likewise. 20663 (gen_decl_die): Likewise. 20664 (dwarf2out_late_global_decl): Likewise. 20665 * expr.c (expand_assignment): Likewise. 20666 (emit_storent_insn): Likewise. 20667 (store_expr_with_bounds): Likewise. 20668 (store_expr): Likewise. 20669 (expand_expr_real_1): Likewise. 20670 * expr.h (store_expr_with_bounds): Likewise. 20671 * function.c (use_register_for_decl): Likewise. 20672 (struct bounds_parm_data): Likewise. 20673 (assign_parms_augmented_arg_list): Likewise. 20674 (assign_parm_find_entry_rtl): Likewise. 20675 (assign_parm_is_stack_parm): Likewise. 20676 (assign_parm_load_bounds): Likewise. 20677 (assign_bounds): Likewise. 20678 (assign_parms): Likewise. 20679 (expand_function_start): Likewise. 20680 * gcc.c (CHKP_SPEC): Likewise. 20681 * gimple-fold.c (gimple_fold_builtin_memory_op): Likewise. 20682 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Likewise. 20683 (wrestrict_dom_walker::check_call): Likewise. 20684 * gimple.c (gimple_build_call_from_tree): Likewise. 20685 * gimple.h (enum gf_mask): Likewise. 20686 (gimple_call_with_bounds_p): Likewise. 20687 (gimple_call_set_with_bounds): Likewise. 20688 * gimplify.c (gimplify_init_constructor): Likewise. 20689 * ipa-cp.c (initialize_node_lattices): Likewise. 20690 (propagate_constants_across_call): Likewise. 20691 (find_more_scalar_values_for_callers_subset): Likewise. 20692 * ipa-hsa.c (process_hsa_functions): Likewise. 20693 * ipa-icf-gimple.c (func_checker::compare_gimple_call): Likewise. 20694 * ipa-icf.c (sem_function::merge): Likewise. 20695 * ipa-inline.c (early_inliner): Likewise. 20696 * ipa-pure-const.c (warn_function_noreturn): Likewise. 20697 (warn_function_cold): Likewise. 20698 (propagate_pure_const): Likewise. 20699 * ipa-ref.h (enum GTY): Likewise. 20700 * ipa-split.c (find_retbnd): Likewise. 20701 (consider_split): Likewise. 20702 (split_function): Likewise. 20703 * ipa-visibility.c (cgraph_externally_visible_p): Likewise. 20704 * ipa.c (walk_polymorphic_call_targets): Likewise. 20705 (symbol_table::remove_unreachable_nodes): Likewise. 20706 (process_references): Likewise. 20707 (cgraph_build_static_cdtor_1): Likewise. 20708 * lto-cgraph.c (lto_output_node): Likewise. 20709 (output_refs): Likewise. 20710 (compute_ltrans_boundary): Likewise. 20711 (input_overwrite_node): Likewise. 20712 (input_node): Likewise. 20713 (input_cgraph_1): Likewise. 20714 * params.def (PARAM_CHKP_MAX_CTOR_SIZE): Likewise. 20715 * passes.c (pass_manager::execute_early_local_passes): Likewise. 20716 (class pass_chkp_instrumentation_passes): Likewise. 20717 (make_pass_chkp_instrumentation_passes): Likewise. 20718 * passes.def: Likewise. 20719 * rtl.h (struct GTY): Likewise. 20720 (CALL_EXPR_WITH_BOUNDS_P): Likewise. 20721 * stor-layout.c (layout_type): Likewise. 20722 * symtab.c: Likewise. 20723 * target.def: Likewise. 20724 * targhooks.c (default_chkp_bound_type): Likewise. 20725 (default_chkp_bound_mode): Likewise. 20726 (default_builtin_chkp_function): Likewise. 20727 (default_chkp_function_value_bounds): Likewise. 20728 (default_chkp_make_bounds_constant): Likewise. 20729 (default_chkp_initialize_bounds): Likewise. 20730 * targhooks.h (default_chkp_bound_type): Likewise. 20731 (default_chkp_bound_mode): Likewise. 20732 (default_builtin_chkp_function): Likewise. 20733 (default_chkp_function_value_bounds): Likewise. 20734 (default_chkp_make_bounds_constant): Likewise. 20735 (default_chkp_initialize_bounds): Likewise. 20736 * toplev.c (compile_file): Likewise. 20737 (process_options): Likewise. 20738 * tree-core.h (DEF_BUILTIN): Likewise. 20739 (DEF_BUILTIN_CHKP): Likewise. 20740 * tree-inline.c (declare_return_variable): Likewise. 20741 (remap_gimple_stmt): Likewise. 20742 (copy_bb): Likewise. 20743 (initialize_inlined_parameters): Likewise. 20744 (expand_call_inline): Likewise. 20745 * tree-pass.h (make_pass_ipa_chkp_versioning): Likewise. 20746 (make_pass_ipa_chkp_early_produce_thunks): Likewise. 20747 (make_pass_ipa_chkp_produce_thunks): Likewise. 20748 (make_pass_chkp): Likewise. 20749 (make_pass_chkp_opt): Likewise. 20750 (make_pass_chkp_instrumentation_passes): Likewise. 20751 * tree-pretty-print.c (dump_generic_node): Likewise. 20752 * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise. 20753 * tree-ssa-dce.c (propagate_necessity): Likewise. 20754 (eliminate_unnecessary_stmts): Likewise. 20755 * tree-ssa-pre.c (create_expression_by_pieces): Likewise. 20756 * tree-ssa-sccvn.c (copy_reference_ops_from_call): Likewise. 20757 * tree-ssa-sccvn.h: Likewise. 20758 * tree-ssa-strlen.c (get_string_length): Likewise. 20759 (valid_builtin_call): Likewise. 20760 (adjust_last_stmt): Likewise. 20761 (handle_builtin_strchr): Likewise. 20762 (handle_builtin_strcpy): Likewise. 20763 (handle_builtin_stxncpy): Likewise. 20764 (handle_builtin_memcpy): Likewise. 20765 (handle_builtin_strcat): Likewise. 20766 (strlen_check_and_optimize_stmt): Likewise. 20767 * tree-stdarg.c (expand_ifn_va_arg_1): Likewise. 20768 * tree-streamer-in.c: Likewise. 20769 * tree-streamer.c (record_common_node): Likewise. 20770 * tree.c (tree_code_size): Likewise. 20771 (wide_int_to_tree_1): Likewise. 20772 (type_contains_placeholder_1): Likewise. 20773 (build_common_tree_nodes): Likewise. 20774 * tree.def (POINTER_BOUNDS_TYPE): Likewise. 20775 * tree.h (POINTER_BOUNDS_TYPE_P): Likewise. 20776 (POINTER_BOUNDS_P): Likewise. 20777 (BOUNDED_TYPE_P): Likewise. 20778 (BOUNDED_P): Likewise. 20779 (CALL_WITH_BOUNDS_P): Likewise. 20780 (pointer_bounds_type_node): Likewise. 20781 * value-prof.c (gimple_ic): Likewise. 20782 * var-tracking.c (vt_add_function_parameters): Likewise. 20783 * varasm.c (make_decl_rtl): Likewise. 20784 (assemble_start_function): Likewise. 20785 (output_constant): Likewise. 20786 (maybe_assemble_visibility): Likewise. 20787 * varpool.c (ctor_for_folding): Likewise. 20788 * chkp-builtins.def: Remove. 20789 * ipa-chkp.c: Remove. 20790 * ipa-chkp.h: Remove. 20791 * rtl-chkp.c: Remove. 20792 * rtl-chkp.h: Remove. 20793 * tree-chkp-opt.c: Remove. 20794 * tree-chkp.c: Remove. 20795 * tree-chkp.h: Remove. 20796 207972018-06-07 Carl Love <cel@us.ibm.com> 20798 20799 * config/rs6000/vsx.md (vextract_fp_from_shorth, 20800 vextract_fp_from_shortl): Add BE support. 20801 208022018-06-07 Paul Koning <ni1d@arrl.net> 20803 20804 * compare-elim.c (try_merge_compare): Don't merge compare if 20805 address contains a side effect. 20806 (try_eliminate_compare): Likewise. 20807 208082018-06-07 Olga Makhotina <olga.makhotina@intel.com> 20809 20810 * config.gcc: Support "tremont". 20811 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "tremont". 20812 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 20813 PROCESSOR_TREMONT. 20814 * config/i386/i386.c (m_TREMONT): Define. 20815 (processor_target_table): Add "tremont". 20816 (PTA_TREMONT): Define. 20817 (ix86_lea_outperforms): Add TARGET_TREMONT. 20818 (get_builtin_code_for_version): Handle PROCESSOR_TREMONT. 20819 (fold_builtin_cpu): Add M_INTEL_TREMONT, replace M_INTEL_GOLDMONT 20820 and M_INTEL_GOLDMONT_PLUS. 20821 (fold_builtin_cpu): Add "tremont". 20822 (ix86_add_stmt_cost): Add TARGET_TREMONT. 20823 (ix86_option_override_internal): Add "tremont". 20824 * config/i386/i386.h (processor_costs): Define TARGET_TREMONT. 20825 (processor_type): Add PROCESSOR_TREMONT. 20826 * config/i386/x86-tune.def: Add m_TREMONT. 20827 * doc/invoke.texi: Add tremont as x86 -march=/-mtune= CPU type. 20828 208292018-06-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> 20830 20831 * config/msp430/msp430.c (msp430_mcu_name): Set the "i" in the 20832 symbol defined for msp430i* devices to be lower case. 20833 208342018-06-07 Richard Biener <rguenther@suse.de> 20835 20836 * graphite-sese-to-poly.c (extract_affine): Avoid unneded 20837 wrapping. Properly wrap the result of a BIT_NOT_EXPR. 20838 Properly wrap signed arithmetic if overflow wraps. 20839 208402018-06-07 Jakub Jelinek <jakub@redhat.com> 20841 20842 PR tree-optimization/69615 20843 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): If rhs2 is lhs 20844 of a cast from a same precision integral SSA_NAME in a bb dominated 20845 by first_bb, retry with rhs2 set to the rhs1 of the cast. Don't emit 20846 cast to utype if rhs2 has already a compatible type. 20847 208482018-06-07 Richard Biener <rguenther@suse.de> 20849 20850 PR tree-optimization/85935 20851 * graphite-scop-detection.c (find_params_in_bb): Analyze 20852 condition operands with respect to the correct loop. Assert 20853 the analysis doesn't fail. 20854 208552018-06-04 Carl Love <cel@us.ibm.com> 20856 20857 * config/rs6000/vsx.md (first_match_index_<mode>): Calculate index 20858 using natural element order. Use gen_lshrsi3 instead of gen_ashrsi3 20859 as it is slightly cheaper. 20860 (first_match_or_eos_index_<mode>): 20861 Calculate index using natural element order. 20862 (first_match_index_<mode>): 20863 Calculate index using natural element order. 20864 (first_match_or_eos_index_<mode>): 20865 Calculate index using natural order. 20866 (define_insn vclzlsbb): Change to define_insn vclzlsbb_<mode>. 20867 for BE and LE modes. 20868 * config/rs6000/rs6000-c.c: Rename P9V_BUILTIN_VCLZLSBB, 20869 P9V_BUILTIN_VCLZLSBB_V16QI. 20870 * config/rs6000/rs6000-builtin.def: Make VCLZLSBB mode 20871 specific. 20872 208732018-06-06 Kelvin Nilsen <kelvin@gcc.gnu.org> 20874 20875 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Adjust 20876 indentation and line wrap for many prototypes. Add missing 20877 @smallexample directives around block of prototypes for vec_xl and 20878 vec_xst. 20879 208802018-06-05 Michael Meissner <meissner@linux.ibm.com> 20881 20882 * config/rs6000/rs6000.c (rs6000_passes_ieee128): New boolean to 20883 track if we pass or return IEEE 128-bit floating point. 20884 (ieee128_mangling_gcc_8_1): New boolean to say whether to generate 20885 C++ mangling that is compatible with GCC 8.1. 20886 (TARGET_ASM_GLOBALIZE_DECL_NAME): Override target hook. 20887 (init_cumulative_args): Note if we pass or return IEEE 128-bit 20888 floating point types. 20889 (rs6000_function_arg_advance_1): Likewise. 20890 (rs6000_mangle_type): Optionally generate mangled names that match 20891 what GCC 8.1 generated for IEEE 128-bit floating point types. 20892 (rs6000_globalize_decl_name): If we have an external function that 20893 passes or returns IEEE 128-bit types, generate a weak reference 20894 from the mangled name used in GCC 8.1 to the current mangled 20895 name. 20896 (rs6000_init_builtins): Make __ibm128 use the long double type if 20897 long double is IBM extended double. Make __float128 use the long 20898 double type if long double is IEEE 128-bit. 20899 20900 PR target/85657 20901 * config/rs6000/rs6000-builtin.def (BU_IBM128_2): New helper 20902 macro for __ibm128 built-in functions. 20903 (PACK_IF): Add __ibm128 pack/unpack functions. 20904 (UNPACK_IF): Likewise. 20905 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Do not 20906 enable long double built-in functions if long double is IEEE 20907 128-bit floating point. 20908 (rs6000_invalid_builtin): Update long double built-in function 20909 error message. 20910 (rs6000_expand_builtin): For PACK_IF and UNPACK_IF built-in 20911 functions, adjust the built-in function to use the long double 20912 built-in function if __ibm128 and long double are the same type. 20913 * doc/extend.texi (PowerPC builtins): Update documention for 20914 __builtin_{,un}pack_longdouble. Add documentation for 20915 __builtin_{,un}pack_ibm128. 20916 209172018-06-06 Jim Wilson <jimw@sifive.com> 20918 20919 * config/riscv/riscv.c (enum riscv_privilege_levels): New. 20920 (struct machine_function): New field interrupt_mode. 20921 (riscv_handle_type_attribute): New function. Add forward declaration. 20922 (riscv_attribute_table) <interrupt>: Use riscv_handle_type_attribute. 20923 (riscv_expand_epilogue): Check interrupt_mode field. 20924 (riscv_set_current_function): Check interrupt attribute args and 20925 set interrupt_mode field. 20926 * config/riscv/riscv.md (UNSPECV_SRET, UNSPECV_URET): New. 20927 (riscv_sret, riscv_uret): New. 20928 * doc/extend.texi (RISC-V Function Attributes) <interrupt>: Document 20929 new arguments to interrupt attribute. 20930 209312018-06-06 Peter Bergner <bergner@vnet.ibm.com> 20932 20933 PR target/63177 20934 * /config/rs6000/rs6000.h (ASM_CPU_SPEC): Add support for -mpower9. 20935 Don't handle -mcpu=power8 if -mpower9-vector is also used. 20936 209372018-06-06 Kelvin Nilsen <kelvin@gcc.gnu.org> 20938 20939 * config/rs6000/rs6000-builtin.def (VSX_BUILTIN_VEC_LD, 20940 VSX_BUILTIN_VEC_ST): Add comment to explain non-traditional uses. 20941 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove 20942 several redundant entries. 20943 209442018-06-06 David Malcolm <dmalcolm@redhat.com> 20945 20946 * config/i386/i386-protos.h (ix86_expand_call): Strengthen return 20947 type from "rtx" to "rtx_insn *". 20948 * config/i386/i386.c (ix86_expand_split_stack_prologue): Likewise 20949 for local "call_insn", removing cast. 20950 (ix86_expand_call): Likewise, introducing a "call_insn" local. 20951 209522018-06-06 Eric Botcazou <ebotcazou@adacore.com> 20953 20954 PR tree-optimization/86066 20955 * gimple-ssa-store-merging.c (process_store): Do not bypass BIT_NOT_EXPR 20956 for BIT_INSERT_EXPR stores. 20957 209582018-06-06 Richard Biener <rguenther@suse.de> 20959 20960 PR tree-optimization/86062 20961 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary 20962 component refs ontop 20963 of to be offsetted base. 20964 209652018-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> 20966 20967 * config/msp430/msp430.c (msp430_attr): Allow interrupt handlers 20968 to be static and remove check on interrupt attribute name. 20969 209702018-06-05 Kelvin Nilsen <kelvin@gcc.gnu.org> 20971 20972 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove 20973 volatile qualifier from vec_lvsl and vec_lvsr argument prototypes. 20974 209752018-06-05 Steve Ellcey <sellcey@cavium.com> 20976 20977 PR target/79924 20978 * config/aarch64/aarch64-protos.h (aarch64_err_no_fpadvsimd): Remove 20979 second argument. 20980 * config/aarch64/aarch64-protos..c (aarch64_err_no_fpadvsimd): 20981 Remove second argument, change how error is called. 20982 (aarch64_layout_arg): Remove second argument from 20983 aarch64_err_no_fpadvsimd call. 20984 (aarch64_init_cumulative_args): Ditto. 20985 (aarch64_gimplify_va_arg_expr): Ditto. 20986 * config/aarch64/aarch64.md (mov<mode>): Ditto. 20987 209882018-06-05 Uros Bizjak <ubizjak@gmail.com> 20989 20990 * config/i386/i386.md (simple_return_indirect_internal): New expander. 20991 (*simple_return_indirect_internal<mode>): Rename from 20992 simple_return_indirect_internal. Use W mode iterator. 20993 (rstorssp): New expander. 20994 (*rstorssp<mode>): Rename from rstorssp. Use P mode iterator. 20995 (clrssbsy): New expander. 20996 (*clrssbsy<mode>): Rename from clrssbsy. Use P mode iterator. 20997 209982018-06-05 Andre Vieira <andre.simoesdiasvieira@arm.com> 20999 21000 * config/arm/arm_cmse.h (cmse_nsfptr_create): Change typeof to 21001 __typeof__. 21002 (cmse_check_pointed_object): Likewise. 21003 210042018-06-05 Martin Liska <mliska@suse.cz> 21005 21006 PR gcov-profile/47618 21007 * doc/invoke.texi: Document how -fprofile-dir format 21008 is extended. 21009 210102018-06-05 Richard Biener <rguenther@suse.de> 21011 21012 * tree-cfgcleanup.c (cleanup_control_flow_pre): For edge 21013 removal pretend DOM info isn't available so we do not update 21014 it and only remove edges, not dominated blocks. Actually free 21015 DOM info in case we removed something. Remove unreachable blocks. 21016 (mfb_keep_latches): Work with either DOM info or marked backedges. 21017 (cleanup_tree_cfg_noloop): Do not remove unreachable blocks 21018 first. Mark backedges if DOM info isn't available. 21019 (Re-)compute DOM info after cleanup_control_flow_pre. 21020 210212018-06-05 Richard Biener <rguenther@suse.de> 21022 21023 * tree-cfg.c (struct locus_discrim_map): Store line, not location. 21024 (locus_discrim_hasher::hash): Adjust. 21025 (locus_discrim_hasher::equal): Likewise. 21026 (next_discriminator_for_locus): Work on line directly. 21027 (same_line_p): Pass in expanded locus1 as well. 21028 (assign_discriminators): Avoid redundant location expansions. 21029 210302018-06-05 Richard Biener <rguenther@suse.de> 21031 21032 PR tree-optimization/86046 21033 * tree-ssa.c (maybe_optimize_var): Clear DECL_GIMPLE_REG_P 21034 if required after clearing TREE_ADDRESSABLE. 21035 210362018-06-05 Richard Biener <rguenther@suse.de> 21037 21038 PR tree-optimization/86047 21039 * tree-ssa-loop.c (for_each_index): Glob handling of all 21040 decls and constants and really handle all of them. 21041 210422018-06-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 21043 21044 PR target/81497 21045 * config/arm/arm-builtins.c (arm_type_qualifiers): Add 21046 qualifier_void_pointer and qualifier_const_void_pointer. 21047 (arm_ldc_qualifiers, arm_stc_qualifiers): Use the above. 21048 (arm_init_builtins): Handle the above. 21049 * config/arm/arm_acle.h (__arm_cdp, __arm_ldc, __arm_ldcl, __arm_stc, 21050 __arm_stcl, __arm_mcr, __arm_cdp2, __arm_ldc2, __arm_ldcl2, __arm_stc2, 21051 __arm_stcl2,__arm_mcr2, __arm_mcrr, __arm_mcrr2): Remove return for 21052 void intrinsics. 21053 210542018-06-05 Martin Liska <mliska@suse.cz> 21055 21056 * auto-profile.c (read_autofdo_file): Do not use 21057 gcov_ctr_summary struct. 21058 (afdo_callsite_hot_enough_for_early_inline): Likewise. 21059 * coverage.c (struct counts_entry): Likewise. 21060 (read_counts_file): Read just single summary entry. 21061 (get_coverage_counts): Use gcov_summary struct. 21062 * coverage.h (get_coverage_counts): Likewise. 21063 * gcov-dump.c (dump_working_sets): Likewise. 21064 (tag_summary): Dump just single summary. 21065 * gcov-io.c (gcov_write_summary): Write just histogram 21066 summary. 21067 (gcov_read_summary): Read just single summary. 21068 (compute_working_sets): Use gcov_summary struct. 21069 * gcov-io.h (GCOV_TAG_SUMMARY_LENGTH): Remove usage 21070 of GCOV_COUNTERS_SUMMABLE. 21071 (GCOV_COUNTERS_SUMMABLE): Remove. 21072 (GCOV_FIRST_VALUE_COUNTER): Replace with 21073 GCOV_COUNTER_V_INTERVAL. 21074 (struct gcov_ctr_summary): Remove. 21075 (struct gcov_summary): Directly use fields of former 21076 gcov_ctr_summary. 21077 (compute_working_sets): Use gcov_summary struct. 21078 * gcov.c (read_count_file): Do not use ctrs fields. 21079 * lto-cgraph.c (merge_profile_summaries): Use gcov_summary 21080 struct. 21081 * lto-streamer.h (struct GTY): Make profile_info gcov_summary 21082 struct. 21083 * profile.c: Likewise. 21084 * profile.h: Likewise. 21085 210862018-06-05 Martin Liska <mliska@suse.cz> 21087 21088 PR gcov-profile/84846 21089 * gcov.c (output_lines): Print working directory only 21090 in intermediate format. 21091 210922018-06-05 Andreas Krebbel <krebbel@linux.ibm.com> 21093 21094 * config/s390/s390-builtin-types.def: Add void function type. 21095 * config/s390/s390-builtins.def: Use the function type for the 21096 tbeginc builtin. 21097 210982018-06-04 Jim Wilson <jimw@sifive.com> 21099 21100 * config/riscv/riscv-protos.h (riscv_expand_epilogue): Change bool arg 21101 to int. 21102 * config/riscv/riscv.c (riscv_for_each_saved_reg): New args epilogue 21103 and maybe_eh_return. Change regno to unsigned int. Use new args to 21104 handle EH_RETURN_DATA_REGNO registers properly. 21105 (riscv_expand_prologue): Pass new args to riscv_for_each_saved_reg. 21106 (riscv_expand_epilogue): Update comment. Change argument name and 21107 type. Update code to use new name and type. Pass new args to 21108 riscv_for_each_saved_reg. Only use EH_RETURN_STACKADJ_RTX when 21109 EXCEPTION_RETURN. 21110 * config/riscv/riscv.md (NORMAL_RETURN): New. 21111 (SIBCALL_RETURN, EXCEPTION_RETURN): New. 21112 (epilogue, sibcall_epilogue): Update riscv_expand_epilogue arg. 21113 (eh_return): Call gen_eh_return_internal and emit barrier. 21114 (eh_return_internal): Call riscv_expand_epilogue. 21115 211162018-06-04 Eric Botcazou <ebotcazou@adacore.com> 21117 21118 * gimple-ssa-store-merging.c (struct merged_store_group): Move up 21119 bit_insertion field and declare can_be_merged_into method. 21120 (merged_store_group::can_be_merged_into): New method. 21121 (imm_store_chain_info::coalesce_immediate): Call it to decide whether 21122 consecutive non-overlapping stores can be merged. Turn MEM_REF stores 21123 into BIT_INSERT_EXPR stores if the group contains a non-MEM_REF store. 21124 211252018-06-04 Richard Biener <rguenther@suse.de> 21126 21127 PR tree-optimization/85955 21128 * builtins.c (fold_builtin_sincos): Convert pointers to 21129 destination to appropriate type before dereferencing. 21130 211312018-06-04 Segher Boessenkool <segher@kernel.crashing.org> 21132 21133 * config/rs6000/rs6000.md (abs<mode>2 for FLOAT128): Handle IFmode. 21134 211352018-06-04 Richard Sandiford <richard.sandiford@linaro.org> 21136 21137 * expr.c (expand_expr_real_1): Force the operand into memory if 21138 its TYPE_MODE is BLKmode and if there is no integer mode for 21139 the number of bits being extracted. 21140 211412018-06-04 Jakub Jelinek <jakub@redhat.com> 21142 21143 PR target/85832 21144 PR target/86036 21145 * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): 21146 Use vptestnm rather than vptestm in (=Yc,v,C) variant. 21147 211482018-06-04 Richard Biener <rguenther@suse.de> 21149 21150 * tree-cfgcleanup.c (cleanup_tree_cfg_1): Fold into... 21151 (cleanup_tree_cfg_noloop): ... single caller. Do 21152 start_recording_case_labels later. 21153 211542018-06-04 Sebastian Peryt <sebastian.peryt@intel.com> 21155 21156 * config/i386/cldemoteintrin.h: Change define from _X86INTRIN_H_INCLUDED 21157 to _IMMINTRIN_H_INCLUDED. 21158 * config/i386/pconfigintrin.h: Ditto. 21159 * config/i386/waitpkgintrin.h: Ditto. 21160 * config/i386/immintrin.h: Add includes for sgxintrin.h, 21161 pconfigintrin.h, waitpkgintrin.h and cldemoteintrin.h. 21162 * config/i386/x86intrin.h: Remove includes for mintrin.h, xmmintrin.h, 21163 emmintrin.h, pmmintrin.h, tmmintrin.h, smmintrin.h, wmmintrin.h, 21164 bmiintrin.h, bmi2intrin.h, lzcntintrin.h, sgxintrin.h, pconfigintrin.h, 21165 waitpkgintrin.h and cldemoteintrin.h. 21166 211672018-06-04 Richard Biener <rguenther@suse.de> 21168 21169 PR tree-optimization/86038 21170 * tracer.c (find_best_successor): Check probability for 21171 being initialized, bail out if not. 21172 211732018-06-04 Richard Earnshaw <rearnsha@arm.com> 21174 21175 PR target/86003 21176 * config/arm/arm-cpus.in (ALL_QUIRKS): Add xscale feature to the list 21177 of bits to ignore when comparing architectures. 21178 211792018-06-04 Jakub Jelinek <jakub@redhat.com> 21180 21181 PR tree-optimization/69615 21182 * fold-const.c (merge_ranges): If range1 is - [x, x] and x is the 21183 maximum or minimum of the type, try to merge it also as if 21184 range1 is + [-, x - 1] or + [x + 1, -]. 21185 21186 PR c++/86025 21187 * tree.c (inchash::add_expr): Handle IDENTIFIER_NODE. 21188 211892018-06-03 Eric Botcazou <ebotcazou@adacore.com> 21190 21191 PR tree-optimization/86034 21192 * gimple-ssa-store-merging.c (output_merged_store): Convert the RHS to 21193 the unsigned bitfield type in a bit insertion sequence if it does not 21194 have a larger precision than the bitfield size. 21195 (process_store): Also bypass widening conversions for BIT_INSERT_EXPR. 21196 211972018-06-03 Kito Cheng <kito.cheng@gmail.com> 21198 21199 * config/nds32/nds32-peephole2.md: Add new patterns for code size. 21200 212012018-06-03 Chung-Ju Wu <jasonwucj@gmail.com> 21202 21203 * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3J. 21204 * config/nds32/nds32.c (nds32_option_override): Consider ARCH_V3J. 21205 * config/nds32/nds32.h (TARGET_ISA_V3): Add ARCH_V3J checking. 21206 * config/nds32/nds32.opt (march): Add enum value Value(ARCH_V3J). 21207 212082018-06-03 Chung-Ju Wu <jasonwucj@gmail.com> 21209 21210 * common/config/nds32/nds32-common.c (nds32_option_optimization_table): 21211 Disable -fdelete-null-pointer-checks for ELF toolchain. 21212 212132018-06-02 Chung-Ju Wu <jasonwucj@gmail.com> 21214 Kito Cheng <kito.cheng@gmail.com> 21215 21216 * config.gcc (nds32*): Use nds32-linux.opt and nds32-elf.opt. 21217 (nds32le-*-*, nds32be-*-*): Integrate checking process. 21218 (nds32*-*-*): Add glibc and uclibc conditions. 21219 * common/config/nds32/nds32-common.c (nds32_except_unwind_info): New. 21220 (TARGET_EXCEPT_UNWIND_INFO): Define. 21221 * config/nds32/elf.h: New file. 21222 * config/nds32/linux.h: New file. 21223 * config/nds32/nds32-elf.opt: New file. 21224 * config/nds32/nds32-linux.opt: New file. 21225 * config/nds32/nds32-fp-as-gp.c 21226 (pass_nds32_fp_as_gp::gate): Consider TARGET_LINUX_ABI. 21227 * config/nds32/nds32.c (nds32_conditional_register_usage): Consider 21228 TARGET_LINUX_ABI. 21229 (nds32_asm_file_end): Ditto. 21230 (nds32_print_operand): Ditto. 21231 (nds32_insert_attributes): Ditto. 21232 (nds32_init_libfuncs): New function. 21233 (TARGET_HAVE_TLS): Define. 21234 (TARGET_INIT_LIBFUNCS): Define. 21235 * config/nds32/nds32.h (TARGET_DEFAULT_RELAX): Apply different relax 21236 spec content. 21237 (TARGET_ELF): Apply different mcmodel setting. 21238 (LINK_SPEC, LIB_SPEC, STARTFILE_SPEC, ENDFILE_SPEC): The content has 21239 been migrated into elf.h and linux.h files. 21240 * config/nds32/nds32.md (add_pc): Consider TARGET_LINUX_ABI. 21241 * config/nds32/nds32.opt (mvh): Consider TARGET_LINUX_ABI. 21242 (mcmodel): The content has been migrated into nds32-elf.opt and 21243 nds32-linux.opt files. 21244 * config/nds32/t-elf: New file. 21245 * config/nds32/t-linux: New file. 21246 212472018-06-02 Chung-Ju Wu <jasonwucj@gmail.com> 21248 Shiva Chen <shiva0217@gmail.com> 21249 21250 * config/nds32/constants.md (unspec_volatile_element): Add 21251 UNSPEC_VOLATILE_OMIT_FP_BEGIN and UNSPEC_VOLATILE_OMIT_FP_END. 21252 * config/nds32/nds32-fp-as-gp.c: New implementation of fp_as_gp 21253 optimization. 21254 * config/nds32/nds32-protos.h (nds32_naked_function_p): Declare. 21255 (make_pass_nds32_fp_as_gp): Declare. 21256 * config/nds32/nds32.c (nds32_register_passes): Add fp_as_gp as one 21257 optmization pass. 21258 (nds32_asm_function_end_prologue): Remove unused asm output. 21259 (nds32_asm_function_begin_epilogue): Remove unused asm output. 21260 (nds32_asm_file_start): Output necessary fp_as_gp information. 21261 (nds32_option_override): Adjust register usage. 21262 (nds32_expand_prologue): Consider fp_as_gp situation. 21263 (nds32_expand_prologue_v3push): Consider fp_as_gp situation. 21264 * config/nds32/nds32.md (prologue): Check fp_as_gp_p and naked_p. 21265 (epilogue): Ditto. 21266 (return): Ditto. 21267 (simple_return): Ditto. 21268 (omit_fp_begin): Output special directive for fp_as_gp. 21269 (omit_fp_end): Output special directive for fp_as_gp. 21270 * config/nds32/nds32.opt (mfp-as-gp, mno-fp-as-gp, mforce-fp-as-gp, 21271 mforbid-fp-as-gp): New options. 21272 212732018-06-01 Mark Wielaard <mark@klomp.org> 21274 21275 * dwarf2out.c (dwarf2out_finish): Remove generation of 21276 DW_AT_loclists_base. 21277 212782018-06-01 Eric Botcazou <ebotcazou@adacore.com> 21279 21280 * gimple-ssa-store-merging.c: Include gimple-fold.h. 21281 (struct store_immediate_info): Document BIT_INSERT_EXPR stores. 21282 (struct merged_store_group): Add bit_insertion field. 21283 (dump_char_array): Use standard hexadecimal format. 21284 (merged_store_group::merged_store_group): Set bit_insertion to false. 21285 (merged_store_group::apply_stores): Use optimal buffer size. Deal 21286 with BIT_INSERT_EXPR stores. Move up code updating the mask and 21287 also print the mask in the dump file. 21288 (pass_store_merging::gate): Minor tweak. 21289 (imm_store_chain_info::coalesce_immediate): Fix wrong association 21290 of stores with groups in dump. Allow coalescing of BIT_INSERT_EXPR 21291 stores with INTEGER_CST stores. 21292 (count_multiple_uses) <BIT_INSERT_EXPR>: New case. 21293 (imm_store_chain_info::output_merged_store): Add try_bitpos variable 21294 and use it throughout. Generate bit insertion sequences if need be. 21295 (pass_store_merging::process_store): Remove redundant condition. 21296 Record stores from a SSA name to a bit-field with BIT_INSERT_EXPR. 21297 212982018-06-01 Segher Boessenkool <segher@kernel.crashing.org> 21299 21300 * config/rs6000/rs6000.c (rs6000_mangle_type): Change the mangling of 21301 the 128-bit floating point types. Fix function comment. 21302 213032018-06-01 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 21304 21305 * config/aarch64/aarch64-simd.md 21306 (aarch64_simd_vec_unpack<su>_lo_<mode>): Use UXTL and SXTL assembler 21307 mnemonics. 21308 (aarch64_simd_vec_unpack<su>_hi_<mode>): Use UXTL2 and SXTL2 assembler 21309 mnemonics. 21310 213112018-06-01 Richard Sandiford <richard.sandiford@linaro.org> 21312 21313 PR tree-optimization/85989 21314 * gimple-ssa-backprop.c (backprop::m_visited_phis): New member 21315 variable. 21316 (backprop::intersect_uses): Check it when deciding whether this 21317 is a backedge reference. 21318 (backprop::process_block): Add each phi to m_visited_phis 21319 after visiting it, then clear it at the end. 21320 213212018-06-01 Richard Biener <rguenther@suse.de> 21322 21323 * tree-vectorizer.h (vect_dr_stmt): New function. 21324 (vect_get_load_cost): Adjust. 21325 (vect_get_store_cost): Likewise. 21326 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): 21327 Use vect_dr_stmt instead of DR_SMTT. 21328 (vect_record_base_alignments): Likewise. 21329 (vect_calculate_target_alignment): Likewise. 21330 (vect_compute_data_ref_alignment): Likewise and make static. 21331 (vect_update_misalignment_for_peel): Likewise. 21332 (vect_verify_datarefs_alignment): Likewise. 21333 (vector_alignment_reachable_p): Likewise. 21334 (vect_get_data_access_cost): Likewise. Pass down 21335 vinfo to vect_get_load_cost/vect_get_store_cost instead of DR. 21336 (vect_get_peeling_costs_all_drs): Likewise. 21337 (vect_peeling_hash_get_lowest_cost): Likewise. 21338 (vect_enhance_data_refs_alignment): Likewise. 21339 (vect_find_same_alignment_drs): Likewise. 21340 (vect_analyze_data_refs_alignment): Likewise. 21341 (vect_analyze_group_access_1): Likewise. 21342 (vect_analyze_group_access): Likewise. 21343 (vect_analyze_data_ref_access): Likewise. 21344 (vect_analyze_data_ref_accesses): Likewise. 21345 (vect_vfa_segment_size): Likewise. 21346 (vect_small_gap_p): Likewise. 21347 (vectorizable_with_step_bound_p): Likewise. 21348 (vect_prune_runtime_alias_test_list): Likewise. 21349 (vect_analyze_data_refs): Likewise. 21350 (vect_supportable_dr_alignment): Likewise. 21351 * tree-vect-loop-manip.c (get_misalign_in_elems): Likewise. 21352 (vect_gen_prolog_loop_niters): Likewise. 21353 * tree-vect-loop.c (vect_analyze_loop_2): Likewise. 21354 * tree-vect-patterns.c (vect_recog_bool_pattern): Do not 21355 modify DR_STMT. 21356 (vect_recog_mask_conversion_pattern): Likewise. 21357 (vect_try_gather_scatter_pattern): Likewise. 21358 * tree-vect-stmts.c (vect_model_store_cost): Pass stmt_info 21359 to vect_get_store_cost. 21360 (vect_get_store_cost): Get stmt_info instead of DR. 21361 (vect_model_load_cost): Pass stmt_info to vect_get_load_cost. 21362 (vect_get_load_cost): Get stmt_info instead of DR. 21363 213642018-06-01 Richard Biener <rguenther@suse.de> 21365 21366 PR middle-end/86017 21367 * gimple-fold.c (var_decl_component_p): Also allow offsetted 21368 vars wrapped in MEM_REFs. 21369 213702018-06-01 Richard Sandiford <richard.sandiford@linaro.org> 21371 21372 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): 21373 Fix subreg tests so that we only return a choice between 21374 GENERAL_REGS and FP_REGS if the original classes included both. 21375 213762018-06-01 Richard Biener <rguenther@suse.de> 21377 21378 PR ipa/85960 21379 * tree-ssa-structalias.c (get_function_part_constraint): 21380 Handle NULL fi->decl. 21381 (find_func_aliases_for_call): Properly handle indirect 21382 fi from direct call. 21383 (find_func_clobbers): Likewise. 21384 (ipa_pta_execute): Likewise. 21385 (create_variable_info_for): For functions that are ifunc_resolver 21386 resolve to a varinfo that contains the result of the resolver call. 21387 (associate_varinfo_to_alias): Do not treat ifunc resolvers as 21388 aliases. 21389 213902018-05-31 Michael Collison <michael.collison@arm.com> 21391 21392 * config/aarch64/aarch64.md: 21393 (*fix_to_zero_extenddfdi2): New pattern. 21394 * gcc.target/aarch64/fix_extend1.c: New testcase. 21395 213962018-05-31 Qing Zhao <qing.zhao@oracle.com> 21397 21398 PR middle-end/78809 21399 PR middle-end/83026 21400 * builtins.c (expand_builtin): Add the handling of BUILT_IN_STRCMP_EQ 21401 and BUILT_IN_STRNCMP_EQ. 21402 * builtins.def: Add new builtins BUILT_IN_STRCMP_EQ and 21403 BUILT_IN_STRNCMP_EQ. 21404 * gimple-fold.c (gimple_fold_builtin_string_compare): Add the 21405 handling of BUILTIN_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. 21406 (gimple_fold_builtin): Likewise. 21407 * tree-ssa-strlen.c (compute_string_length): New function. 21408 (determine_min_obsize): New function. 21409 (handle_builtin_string_cmp): New function to handle calls to 21410 string compare functions. 21411 (strlen_optimize_stmt): Add handling to builtin string compare 21412 calls. 21413 * tree-ssa-structalias.c (find_func_aliases_for_builtin_call): 21414 Add the handling of BUILT_IN_STRCMP_EQ and BUILT_IN_STRNCMP_EQ. 21415 * tree.c (build_common_builtin_nodes): Add new defines of 21416 BUILT_IN_STRNCMP_EQ and BUILT_IN_STRCMP_EQ. 21417 214182018-05-31 Jakub Jelinek <jakub@redhat.com> 21419 21420 PR target/85984 21421 * bb-reorder.c (pass_partition_blocks::gate): Return false for 21422 functions with naked attribute. 21423 214242018-05-31 Uros Bizjak <ubizjak@gmail.com> 21425 21426 * config/i386/sse.md (avx_vec_concat<mode>): 21427 Substitute concat_tg_mode mode attribute with xtg_mode. 21428 (<mask_codefor>avx512dq_broadcast<mode><mask_name>_1): Ditto. 21429 (concat_tg_mode): Remove mode attribute. 21430 214312018-05-31 Martin Sebor <msebor@redhat.com> 21432 21433 PR c/82063 21434 * calls.c (alloc_max_size): Correct a logic error/typo. 21435 Treat excessive arguments as infinite. Warn for invalid arguments. 21436 * doc/invoke.texi (-Walloc-size-larger-than): Update. 21437 214382018-05-31 H.J. Lu <hongjiu.lu@intel.com> 21439 21440 PR target/85829 21441 * config/i386/x86-tune.def: Re-enable partial_reg_dependency 21442 and movx for Haswell. 21443 214442018-05-31 Chung-Lin Tang <cltang@codesourcery.com> 21445 Cesar Philippidis <cesar@codesourcery.com> 21446 21447 PR middle-end/85879 21448 * gimplify.c (gimplify_adjust_omp_clauses): Add 'remove = true' 21449 when emitting error on private/firstprivate reductions. 21450 * omp-low.c (lower_omp_target): Avoid reference-type processing 21451 on pointers for firstprivate clause. 21452 214532018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org> 21454 21455 * config/aarch64/aarch64-simd-builtins.def (ld1x3): New. 21456 (st1x2): Likewise. 21457 (st1x3): Likewise. 21458 * config/aarch64/aarch64-simd.md 21459 (aarch64_ld1x3<VALLDIF:mode>): New pattern. 21460 (aarch64_ld1_x3_<mode>): Likewise 21461 (aarch64_st1x2<VALLDIF:mode>): Likewise 21462 (aarch64_st1_x2_<mode>): Likewise 21463 (aarch64_st1x3<VALLDIF:mode>): Likewise 21464 (aarch64_st1_x3_<mode>): Likewise 21465 * config/aarch64/arm_neon.h (vld1_u8_x3): New function. 21466 (vld1_s8_x3): Likewise. 21467 (vld1_u16_x3): Likewise. 21468 (vld1_s16_x3): Likewise. 21469 (vld1_u32_x3): Likewise. 21470 (vld1_s32_x3): Likewise. 21471 (vld1_u64_x3): Likewise. 21472 (vld1_s64_x3): Likewise. 21473 (vld1_f16_x3): Likewise. 21474 (vld1_f32_x3): Likewise. 21475 (vld1_f64_x3): Likewise. 21476 (vld1_p8_x3): Likewise. 21477 (vld1_p16_x3): Likewise. 21478 (vld1_p64_x3): Likewise. 21479 (vld1q_u8_x3): Likewise. 21480 (vld1q_s8_x3): Likewise. 21481 (vld1q_u16_x3): Likewise. 21482 (vld1q_s16_x3): Likewise. 21483 (vld1q_u32_x3): Likewise. 21484 (vld1q_s32_x3): Likewise. 21485 (vld1q_u64_x3): Likewise. 21486 (vld1q_s64_x3): Likewise. 21487 (vld1q_f16_x3): Likewise. 21488 (vld1q_f32_x3): Likewise. 21489 (vld1q_f64_x3): Likewise. 21490 (vld1q_p8_x3): Likewise. 21491 (vld1q_p16_x3): Likewise. 21492 (vld1q_p64_x3): Likewise. 21493 (vst1_s64_x2): Likewise. 21494 (vst1_u64_x2): Likewise. 21495 (vst1_f64_x2): Likewise. 21496 (vst1_s8_x2): Likewise. 21497 (vst1_p8_x2): Likewise. 21498 (vst1_s16_x2): Likewise. 21499 (vst1_p16_x2): Likewise. 21500 (vst1_s32_x2): Likewise. 21501 (vst1_u8_x2): Likewise. 21502 (vst1_u16_x2): Likewise. 21503 (vst1_u32_x2): Likewise. 21504 (vst1_f16_x2): Likewise. 21505 (vst1_f32_x2): Likewise. 21506 (vst1_p64_x2): Likewise. 21507 (vst1q_s8_x2): Likewise. 21508 (vst1q_p8_x2): Likewise. 21509 (vst1q_s16_x2): Likewise. 21510 (vst1q_p16_x2): Likewise. 21511 (vst1q_s32_x2): Likewise. 21512 (vst1q_s64_x2): Likewise. 21513 (vst1q_u8_x2): Likewise. 21514 (vst1q_u16_x2): Likewise. 21515 (vst1q_u32_x2): Likewise. 21516 (vst1q_u64_x2): Likewise. 21517 (vst1q_f16_x2): Likewise. 21518 (vst1q_f32_x2): Likewise. 21519 (vst1q_f64_x2): Likewise. 21520 (vst1q_p64_x2): Likewise. 21521 (vst1_s64_x3): Likewise. 21522 (vst1_u64_x3): Likewise. 21523 (vst1_f64_x3): Likewise. 21524 (vst1_s8_x3): Likewise. 21525 (vst1_p8_x3): Likewise. 21526 (vst1_s16_x3): Likewise. 21527 (vst1_p16_x3): Likewise. 21528 (vst1_s32_x3): Likewise. 21529 (vst1_u8_x3): Likewise. 21530 (vst1_u16_x3): Likewise. 21531 (vst1_u32_x3): Likewise. 21532 (vst1_f16_x3): Likewise. 21533 (vst1_f32_x3): Likewise. 21534 (vst1_p64_x3): Likewise. 21535 (vst1q_s8_x3): Likewise. 21536 (vst1q_p8_x3): Likewise. 21537 (vst1q_s16_x3): Likewise. 21538 (vst1q_p16_x3): Likewise. 21539 (vst1q_s32_x3): Likewise. 21540 (vst1q_s64_x3): Likewise. 21541 (vst1q_u8_x3): Likewise. 21542 (vst1q_u16_x3): Likewise. 21543 (vst1q_u32_x3): Likewise. 21544 (vst1q_u64_x3): Likewise. 21545 (vst1q_f16_x3): Likewise. 21546 (vst1q_f32_x3): Likewise. 21547 (vst1q_f64_x3): Likewise. 21548 (vst1q_p64_x3): Likewise. 21549 215502018-05-30 Jozef Lawrynowicz <jozef.l@mittosystems.com> 21551 21552 * config/msp430/msp430.c (msp430_output_labelref): Prepend 21553 user_label_prefix to name. 21554 21555 * tree-core.h: Update comment about the format of NAME string 21556 passed to handler in attribute_spec. 21557 21558 * config/msp430/msp430.md: Remove erroneous subreg expression from 21559 zero_extendqisi2 insn pattern. Remove msp430x ISA restriction on 21560 zero_extend{q,h}isi2. 21561 215622018-05-30 Borislav Petkov <bp@suse.de> 21563 21564 * doc/extend.texi: Document some architecture specific 21565 constraints and sort entries. 21566 215672018-05-30 Martin Sebor <msebor@redhat.com> 21568 21569 PR middle-end/85369 21570 * builtins.c (expand_builtin_stpcpy_1): New function. 21571 (expand_builtin_stpcpy): Call it, and call maybe_warn_nonstring_arg 21572 only if the former succeeds. 21573 215742018-05-31 Sameera Deshpande <sameera.deshpande@linaro.org> 21575 21576 * config/aarch64/aarch64-cores.def (saphira) : Add support for ARMv8.4 21577 in saphira. 21578 215792018-05-30 Jan Hubicka <hubicka@ucw.cz> 21580 21581 * doc/invoke.texi (-flinker-output): Document 21582 215832018-05-30 Jan Hubicka <hubicka@ucw.cz> 21584 21585 * passes.c (ipa_write_summaries): Only modify statements if body 21586 is in memory. 21587 * cgraphunit.c (ipa_passes): Also produce intermeidate code when 21588 incrementally linking. 21589 (ipa_passes): Likewise. 21590 * lto-cgraph.c (lto_output_node): When incrementally linking do not 21591 pass down resolution info. 21592 * common.opt (flag_incremental_link): Update info. 21593 * gcc.c (plugin specs): Turn flinker-output=* to 21594 -plugin-opt=-linker-output-known 21595 * toplev.c (compile_file): Also cut compilation when doing incremental 21596 link. 21597 * flag-types. (enum lto_partition_model): Add 21598 LTO_LINKER_OUTPUT_NOLTOREL. 21599 (invoke.texi): Add -flinker-output docs. 21600 * ipa.c (symbol_table::remove_unreachable_nodes): Handle LTO incremental 21601 link same way as WPA; do not stream in dead initializers. 21602 21603 * dwarf2out.c (dwarf2out_die_ref_for_decl, 21604 darf2out_register_external_decl): Support incremental link. 21605 216062018-05-30 Jan Hubicka <hubicka@ucw.cz> 21607 21608 * lto-opts.c (lto_write_options): Skip OPT_dumpdir, OPT_fresolution_. 21609 216102018-05-30 Jan Hubicka <hubicka@ucw.cz> 21611 21612 * lto-wrapper.c (debug_objcopy): Add rename parameter; pass 21613 it down to simple_object_copy_lto_debug_sections. 21614 (run_gcc): Determine incremental LTO link time and configure 21615 lto1 into non-wpa mode, disable renaming of debug sections. 21616 216172018-05-30 Kelvin Nilsen <kelvin@gcc.gnu.org> 21618 21619 * doc/extend.texi (PowerPC AltiVec Built-in Functions): Remove 21620 descriptions of various incorrectly documented functions. 21621 216222018-05-30 Andre Vieira <andre.simoesdiasvieira@arm.com> 21623 21624 Revert: 21625 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make 21626 address check not strict. 21627 216282018-05-30 Richard Biener <rguenther@suse.de> 21629 21630 PR tree-optimization/85964 21631 * tracer.c (better_p): Drop initialized count check, we only 21632 call the function with initialized counts now. 21633 (find_best_successor): Do find a best edge if one 21634 has uninitialized count. 21635 (find_best_predecessor): Likewise. Do BB frequency check only 21636 if count is initialized. 21637 216382017-05-30 Jackson Woodruff <jackson.woodruff@arm.com> 21639 21640 * config/aarch64/aarch64.c (aarch64_host_wide_int_compare): New. 21641 (aarch64_ldrstr_offset_compare): New. 21642 (aarch64_operands_adjust_ok_for_ldpstp): Update to consider all 21643 load/store orderings. 21644 (aarch64_gen_adjusted_ldpstp): Likewise. 21645 216462018-05-30 Wilco Dijkstra <wdijkstr@arm.com> 21647 21648 * config/aarch64/aarch64.c (aarch64_ira_change_pseudo_allocno_class): 21649 Check for subset of GENERAL_REGS and FP_REGS. 21650 * config/aarch64/aarch64-simd.md (aarch64_get_lane): Increase cost of 21651 r=w alternative. 21652 216532018-05-30 Richard Sandiford <richard.sandiford@linaro.org> 21654 21655 * alias.c (adjust_offset_for_component_ref): Use poly_int_tree_p 21656 and wi::to_poly_offset. Add the current offset and then check 21657 whether the sum fits, rather than using an unchecked addition of 21658 a checked term. Check for a shwi rather than a uhwi. 21659 * expr.c (get_bit_range): Use tree_to_poly_uint64. 21660 (store_constructor): Use poly_int_tree_p. 21661 (expand_expr_real_1): Likewise. 21662 * function.c (assign_temp): Likewise. 21663 * fold-const.c (const_binop): Use poly_int_tree_p and 21664 wi::to_poly_offset. 21665 (fold_indirect_ref_1): Likewise. Use multiple_p to attempt an exact 21666 division. 21667 * ipa-icf-gimple.c (func_checker::compare_operand): Use 21668 to_poly_offset for MEM offsets. 21669 * ipa-icf.c (sem_variable::equals): Likewise. 21670 * stor-layout.c (compute_record_mode): Use poly_int_tree_p. 21671 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Use 21672 wi::to_poly_offset for BIT_FIELD_REF offsets. 21673 (vn_reference_maybe_forwprop_address): Use poly_int_tree_p and 21674 wi::to_poly_offset. 21675 * var-tracking.c (emit_note_insn_var_location): Use 21676 tree_to_poly_uint64. 21677 216782018-05-29 Jim Wilson <jimw@sifive.com> 21679 21680 * config/riscv/riscv.c (riscv_interrupt_type): Fix comment typo. 21681 216822018-05-29 Uros Bizjak <ubizjak@gmail.com> 21683 21684 PR target/85950 21685 * config/i386/i386.md (l<rounding_insn><MODEF:mode><SWI48:mode>2): 21686 Enable for TARGET_SSE4_1 and generate rounds{s,d} and cvtts{s,d}2si{,q} 21687 sequence. 21688 (sse4_1_round<mode>2): Use nonimmediate_operand 21689 for operand 1 predicate. 21690 216912018-05-29 Martin Sebor <msebor@redhat.com> 21692 Richard Biener <rguenther@suse.de> 21693 21694 PR testsuite/85888 21695 * calls.c (get_size_range): Call determine_value_range instead 21696 of get_value_range.. 21697 * tree-vrp.h (determine_value_range): Declared new function. 21698 * tree-vrp.c (determine_value_range_1, determine_value_range): New. 21699 217002018-05-29 Richard Biener <rguenther@suse.de> 21701 21702 * tree-vect-data-refs.c (vect_preserves_scalar_order_p): Make 21703 sure to use non-pattern stmts for get_earlier_stmt arguments. 21704 * tree-vectorizer.h (get_earlier_stmt): Assert we do not get 21705 called on pattern stmts. 21706 (get_later_stmt): Likewise. 21707 217082018-05-29 Martin Liska <mliska@suse.cz> 21709 21710 PR gcov-profile/85759 21711 * doc/gcov.texi: Document GCOV_ERROR_FILE and GCOV_EXIT_AT_ERROR 21712 env variables. 21713 217142018-05-29 Jakub Jelinek <jakub@redhat.com> 21715 21716 * tree-cfg.c (verify_gimple_assign_unary): Add checking for 21717 VEC_UNPACK_*_EXPR. 21718 (verify_gimple_assign_binary): Check TYPE_VECTOR_SUBPARTS for 21719 VEC_PACK_*_EXPR. 21720 21721 PR target/85918 21722 * tree.def (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, 21723 VEC_PACK_FLOAT_EXPR): New tree codes. 21724 * tree-pretty-print.c (op_code_prio): Handle 21725 VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR. 21726 (dump_generic_node): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, 21727 VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. 21728 * tree-inline.c (estimate_operator_cost): Likewise. 21729 * gimple-pretty-print.c (dump_binary_rhs): Handle VEC_PACK_FLOAT_EXPR. 21730 * fold-const.c (const_binop): Likewise. 21731 (const_unop): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR and 21732 VEC_UNPACK_FIX_TRUNC_LO_EXPR. 21733 * tree-cfg.c (verify_gimple_assign_unary): Likewise. 21734 (verify_gimple_assign_binary): Handle VEC_PACK_FLOAT_EXPR. 21735 * cfgexpand.c (expand_debug_expr): Handle VEC_UNPACK_FIX_TRUNC_HI_EXPR, 21736 VEC_UNPACK_FIX_TRUNC_LO_EXPR and VEC_PACK_FLOAT_EXPR. 21737 * expr.c (expand_expr_real_2): Likewise. 21738 * optabs.def (vec_packs_float_optab, vec_packu_float_optab, 21739 vec_unpack_sfix_trunc_hi_optab, vec_unpack_sfix_trunc_lo_optab, 21740 vec_unpack_ufix_trunc_hi_optab, vec_unpack_ufix_trunc_lo_optab): New 21741 optabs. 21742 * optabs.c (expand_widen_pattern_expr): For 21743 VEC_UNPACK_FIX_TRUNC_HI_EXPR and VEC_UNPACK_FIX_TRUNC_LO_EXPR use 21744 sign from result type rather than operand's type. 21745 (expand_binop_directly): For vec_packu_float_optab and 21746 vec_packs_float_optab allow result type to be different from operand's 21747 type. 21748 * optabs-tree.c (optab_for_tree_code): Handle 21749 VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and 21750 VEC_PACK_FLOAT_EXPR. Formatting fixes. 21751 * tree-vect-generic.c (expand_vector_operations_1): Handle 21752 VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR and 21753 VEC_PACK_FLOAT_EXPR. 21754 * tree-vect-stmts.c (supportable_widening_operation): Handle 21755 FIX_TRUNC_EXPR. 21756 (supportable_narrowing_operation): Handle FLOAT_EXPR. 21757 * config/i386/i386.md (fixprefix, floatprefix): New code attributes. 21758 * config/i386/sse.md (*float<floatunssuffix>v2div2sf2): Rename to ... 21759 (float<floatunssuffix>v2div2sf2): ... this. Formatting fix. 21760 (vpckfloat_concat_mode, vpckfloat_temp_mode, vpckfloat_op_mode): New 21761 mode attributes. 21762 (vec_pack<floatprefix>_float_<mode>): New expander. 21763 (vunpckfixt_mode, vunpckfixt_model, vunpckfixt_extract_mode): New mode 21764 attributes. 21765 (vec_unpack_<fixprefix>fix_trunc_lo_<mode>, 21766 vec_unpack_<fixprefix>fix_trunc_hi_<mode>): New expanders. 21767 * doc/md.texi (vec_packs_float_@var{m}, vec_packu_float_@var{m}, 21768 vec_unpack_sfix_trunc_hi_@var{m}, vec_unpack_sfix_trunc_lo_@var{m}, 21769 vec_unpack_ufix_trunc_hi_@var{m}, vec_unpack_ufix_trunc_lo_@var{m}): 21770 Document. 21771 * doc/generic.texi (VEC_UNPACK_FLOAT_HI_EXPR, 21772 VEC_UNPACK_FLOAT_LO_EXPR): Fix pasto in description. 21773 (VEC_UNPACK_FIX_TRUNC_HI_EXPR, VEC_UNPACK_FIX_TRUNC_LO_EXPR, 21774 VEC_PACK_FLOAT_EXPR): Document. 21775 217762018-05-29 Richard Biener <rguenther@suse.de> 21777 21778 * tree-vectorizer.h (struct vec_info): Add stmt_vec_infos 21779 member. 21780 (stmt_vec_info_vec): Make pointer. 21781 (init_stmt_vec_info_vec): Remove. 21782 (free_stmt_vec_info_vec): Likewise. 21783 (set_stmt_vec_info_vec): New function. 21784 (free_stmt_vec_infos): Likewise. 21785 (vinfo_for_stmt): Adjust for stmt_vec_info_vec indirection. 21786 (set_vinfo_for_stmt): Likewise. 21787 (get_earlier_stmt): Likewise. 21788 (get_later_stmt): Likewise. 21789 * tree-vectorizer.c (stmt_vec_info_vec): Make pointer. 21790 (vec_info::vec_info): Allocate stmt_vec_infos and set the global. 21791 (vec_info::~vec_info): Free stmt_vec_infos. 21792 (vectorize_loops): Set the global stmt_vec_info_vec to NULL. 21793 Remove old init_stmt_vec_info_vec/free_stmt_vec_info_vec calls. 21794 (pass_slp_vectorize::execute): Likewise. 21795 * tree-vect-stmts.c (init_stmt_vec_info_vec): Remove. 21796 (free_stmt_vec_info_vec): Likewise. 21797 (set_stmt_vec_info_vec): New function. 21798 (free_stmt_vec_infos): Likewise. 21799 * tree-vect-loop.c (_loop_vec_info::~_loop_vec_info): Set 21800 the global stmt_vec_info_vec. 21801 * tree-parloops.c (gather_scalar_reductions): Use 21802 set_stmt_vec_info_vec/free_stmt_vec_infos and maintain a local 21803 vector. 21804 218052018-05-29 Richard Biener <rguenther@suse.de> 21806 21807 * dominance.c (iterate_fix_dominators): Push/pop TV_DOMINANCE. 21808 218092018-05-29 Martin Liska <mliska@suse.cz> 21810 David Malcolm <dmalcolm@redhat.com> 21811 21812 * vec.c (test_reverse): New. 21813 (vec_c_tests): Add new test. 21814 * vec.h (vl_ptr>::reverse): New function. 21815 218162018-05-29 Gerald Pfeifer <gerald@pfeifer.com> 21817 21818 * config.gcc: Identify FreeBSD 3.x and 4.x as unsupported. 21819 21820 * config/freebsd-spec.h (FBSD_LIB_SPEC): Only consider FreeBSD 5 21821 and later. 21822 218232018-05-28 Bernd Edlinger <bernd.edlinger@hotmail.de> 21824 21825 * tree-dump.c (dump_node): Use splay_tree_delete_pointers. 21826 218272018-05-28 Richard Biener <rguenther@suse.de> 21828 21829 PR tree-optimization/85933 21830 * tree-vect-data-refs.c (vect_record_base_alignments): Only 21831 look at stmts marked as vectorizable. 21832 218332018-05-28 Richard Biener <rguenther@suse.de> 21834 21835 PR tree-optimization/85934 21836 * tree-vect-generic.c (expand_vector_operations_1): Hoist 21837 vector boolean check before scalar optimization. 21838 218392018-05-28 Jakub Jelinek <jakub@redhat.com> 21840 21841 * doc/invoke.texi (ARM Options): Use @item instead of @itemx 21842 for armv5te. 21843 218442018-05-28 Mark Wielaard <mark@klomp.org> 21845 21846 * dwarf2asm.c (dw2_asm_output_delta_uleb128): Add brackets around lab2 21847 if it is an expression containing a minus sign. 21848 218492018-05-27 John David Anglin <danglin@gcc.gnu.org> 21850 21851 * config/pa/pa-linux.h (NEED_INDICATE_EXEC_STACK): Define to 0. 21852 218532018-05-27 Paul Koning <ni1d@arrl.net> 21854 21855 * config/pdp11/pdp11.md (truncsihi2): Remove. 21856 218572018-05-27 Monk Chiang <sh.chiang04@gmail.com> 21858 Chung-Ju Wu <jasonwucj@gmail.com> 21859 21860 * config/nds32/nds32-intrinsic.md (unaligned_storedi): Modify patterns 21861 implementation. 21862 (unaligned_store_dw): Ditto. 21863 * config/nds32/nds32-memory-manipulation.c 21864 (nds32_expand_movmemsi_loop_known_size): Refactoring implementation. 21865 (nds32_gen_dup_4_byte_to_word_value): Rename to ... 21866 (nds32_gen_dup_4_byte_to_word_value_aux): ... this. 21867 (emit_setmem_word_loop): Rename to ... 21868 (emit_setmem_doubleword_loop): ... this. 21869 (nds32_gen_dup_4_byte_to_word_value): New function. 21870 (nds32_gen_dup_8_byte_to_double_word_value): New function. 21871 (nds32_expand_setmem_loop): Refine implementation. 21872 (nds32_expand_setmem_loop_v3m): Ditto. 21873 * config/nds32/nds32-multiple.md (unaligned_store_update_base_dw): New 21874 pattern. 21875 218762018-05-27 Chung-Ju Wu <jasonwucj@gmail.com> 21877 21878 * config/nds32/nds32.md (bswapsi2, bswaphi2): New patterns. 21879 218802018-05-27 Chung-Ju Wu <jasonwucj@gmail.com> 21881 21882 * config/nds32/nds32.c (nds32_attribute_table): Add "no_prologue". 21883 (nds32_init_machine_status): Initialize machine->attr_naked_p and 21884 machine->attr_no_prologue_p. 21885 (nds32_compute_stack_frame): Check "naked" and "no_prologue" attributes. 21886 (nds32_naked_function_p): Handle "naked" and "no_prologue" attributes. 21887 (nds32_expand_epilogue): Consider attr_naked_p. 21888 (nds32_expand_epilogue_v3pop): Likewise. 21889 (nds32_can_use_return_insn): Likewise. 21890 * config/nds32/nds32.h (machine_function): Add attr_naked_p and 21891 attr_no_prologue_p fields. 21892 * config/nds32/nds32.opt (mret-in-naked-func): New option. 21893 218942018-05-27 Jakub Jelinek <jakub@redhat.com> 21895 21896 PR target/85918 21897 * config/i386/i386.md (fixunssuffix, floatunssuffix): New code 21898 attributes. 21899 * config/i386/sse.md 21900 (<floatsuffix>float<sseintvecmodelower><mode>2<mask_name><round_name>): 21901 Rename to ... 21902 (float<floatunssuffix><sseintvecmodelower><mode>2<mask_name><round_name>): 21903 ... this. 21904 (<floatsuffix>float<sselongvecmodelower><mode>2<mask_name><round_name>): 21905 Rename to ... 21906 (float<floatunssuffix><sselongvecmodelower><mode>2<mask_name><round_name>): 21907 ... this. 21908 (*<floatsuffix>floatv2div2sf2): Rename to ... 21909 (*float<floatunssuffix>v2div2sf2): ... this. 21910 (<floatsuffix>floatv2div2sf2_mask): Rename to ... 21911 (float<floatunssuffix>v2div2sf2_mask): ... this. 21912 (*<floatsuffix>floatv2div2sf2_mask_1): Rename to ... 21913 (*float<floatunssuffix>v2div2sf2_mask_1): ... this. 21914 (<fixsuffix>fix_truncv8dfv8si2<mask_name><round_saeonly_name>): Rename 21915 to ... 21916 (fix<fixunssuffix>_truncv8dfv8si2<mask_name><round_saeonly_name>): 21917 ... this. 21918 (<fixsuffix>fix_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): 21919 Rename to ... 21920 (fix<fixunssuffix>_trunc<mode><sseintvecmodelower>2<mask_name><round_saeonly_name>): 21921 ... this. 21922 (<fixsuffix>fix_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): 21923 Rename to ... 21924 (fix<fixunssuffix>_trunc<mode><sselongvecmodelower>2<mask_name><round_saeonly_name>): 21925 ... this. 21926 (<fixsuffix>fix_truncv2sfv2di2<mask_name>): Rename to ... 21927 (fix<fixunssuffix>_truncv2sfv2di2<mask_name>): ... this. 21928 (vec_pack_ufix_trunc_<mode>): Use gen_fixuns_truncv8dfv8si2 instead of 21929 gen_ufix_truncv8dfv8si2. 21930 * config/i386/i386-builtin.def (__builtin_ia32_cvttpd2uqq256_mask, 21931 __builtin_ia32_cvttpd2uqq128_mask, __builtin_ia32_cvttps2uqq256_mask, 21932 __builtin_ia32_cvttps2uqq128_mask, __builtin_ia32_cvtuqq2ps256_mask, 21933 __builtin_ia32_cvtuqq2ps128_mask, __builtin_ia32_cvtuqq2pd256_mask, 21934 __builtin_ia32_cvtuqq2pd128_mask, __builtin_ia32_cvttpd2udq512_mask, 21935 __builtin_ia32_cvtuqq2ps512_mask, __builtin_ia32_cvtuqq2pd512_mask, 21936 __builtin_ia32_cvttps2uqq512_mask, __builtin_ia32_cvttpd2uqq512_mask): 21937 Use fixuns instead ufix or floatuns instead ufloat in CODE_FOR_ names. 21938 219392018-05-24 H.J. Lu <hongjiu.lu@intel.com> 21940 21941 PR target/85900 21942 PR target/85345 21943 * varasm.c (assemble_alias): Lookup ifunc attribute on error. 21944 219452018-05-25 Jim Wilson <jimw@sifive.com> 21946 21947 * config/riscv/riscv-protos.h (riscv_epilogue_uses): New. 21948 * config/riscv/riscv.c (struct machine_function): Add 21949 interrupt_handler_p and attribute_checked_p fields. 21950 (riscv_attribute_table): Add interrupt. 21951 (riscv_interrupt_type_p): New. 21952 (riscv_save_reg_p): Save extra regs for interrupt handler. 21953 (riscv_use_save_libcall): Return false for interrupt handler. 21954 (riscv_first_stack_step): Add forward declaration. 21955 (riscv_compute_frame_info): New local interrupt_save_t1. Set it 21956 for interrupt handler with large frame. Use it for saved reg list. 21957 (riscv_expand_prologue): Move flag_stack_usage_info support to 21958 eliminate duplication. 21959 (riscv_expand_epilogue): Generate mret for interrupt handler. 21960 (riscv_epilogue_uses): New. 21961 (riscv_can_use_return_insn): Return false for interrupt handler. 21962 (riscv_function_ok_for_sibcall): Likewise. 21963 (riscv_set_current_function): Add interrupt handler support. 21964 * config/riscv/riscv.h (EPILOGUE_USES): Call riscv_epilogue_uses. 21965 * config/riscv/riscv.md (UNSPECV_MRET): New. 21966 (GP_REGNUM): New. 21967 (riscv_frflags, riscv_fsflags): Use tab after opcode. 21968 (riscv_mret): New. 21969 * doc/extend.texi (RISC-V Function Attributes) <interrupt>: New. 21970 219712018-05-25 Bill Schmidt <wschmidt@linux.ibm.com> 21972 21973 PR tree-optimization/85712 21974 * gimple-ssa-strength-reduction.c (replace_one_candidate): Skip if 21975 this candidate has already been replaced in-situ by a copy. 21976 219772018-05-25 Jason Merrill <jason@redhat.com> 21978 21979 PR c++/80485 - inline function non-zero address. 21980 * symtab.c (nonzero_address): Check DECL_COMDAT. 21981 219822018-05-25 Uros Bizjak <ubizjak@gmail.com> 21983 21984 PR target/83628 21985 * config/alpha/alpha.md (ashlsi3): New insn pattern. 21986 (*ashlsi_se): Rename from *ashldi_se. Define as sign 21987 extension of SImode operation. Use const123_operand predicate. 21988 (*saddsi_1): Remove. 21989 (*saddl_se_1): Ditto. 21990 (*ssubsi_1): Ditto. 21991 (*ssubl_se_1): Ditto. 21992 * config/alpha/predicates.md (const123_operand): New predicate. 21993 * config/alpha/constraints.md (P): Use IN_RANGE. 21994 219952018-05-25 Richard Biener <rguenther@suse.de> 21996 21997 * tree-ssa-alias.h (refs_may_alias_p): Add tbaa_p bool parameter, 21998 defaulted to true. 21999 (ref_maybe_used_by_stmt_p): Likewise. 22000 (stmt_may_clobber_ref_p): Likewise. 22001 (stmt_may_clobber_ref_p_1): Likewise. 22002 * tree-ssa-alias.c (refs_may_alias_p): Add tbaa_p bool parameter 22003 and pass it along. 22004 (ref_maybe_used_by_stmt_p): Likewise. 22005 (stmt_may_clobber_ref_p): Likewise. 22006 (stmt_may_clobber_ref_p_1): Likewise. 22007 * tree-vect-data-refs.c (vect_slp_analyze_node_dependences): Use 22008 the alias oracle to disambiguate DRs with stmts DR analysis 22009 couldn't handle. 22010 (vect_analyze_data_refs): Do not give up on not analyzable 22011 DRs for BB vectorization. Remove code truncating the dataref 22012 vector. 22013 220142018-05-25 Jakub Jelinek <jakub@redhat.com> 22015 22016 PR target/85832 22017 * config/i386/sse.md (<avx512>_eq<mode>3<mask_scalar_merge_name>_1): 22018 Add (=Yk,v,C) variant using vptestm insn. Use TARGET_AVX512BW 22019 in test instead of TARGET_AVX512F for VI12_AVX512VL iterator. 22020 220212018-05-25 Richard Biener <rguenther@suse.de> 22022 22023 * tree-vect-data-refs.c (vect_find_stmt_data_reference): New 22024 function, combining stmt data ref gathering and fatal analysis 22025 parts. 22026 (vect_analyze_data_refs): Remove now redudnant code and simplify. 22027 * tree-vect-loop.c (vect_get_datarefs_in_loop): Factor out from 22028 vect_analyze_loop_2 and use vect_find_stmt_data_reference. 22029 * tree-vect-slp.c (vect_slp_bb): Use vect_find_stmt_data_reference. 22030 * tree-vectorizer.h (vect_find_stmt_data_reference): Declare. 22031 220322018-05-25 Bin Cheng <bin.cheng@arm.com> 22033 22034 PR tree-optimization/85720 22035 * tree-loop-distribution.c (break_alias_scc_partitions): Don't merge 22036 SCC if all partitions are builtins. 22037 (version_loop_by_alias_check): New parameter. Generate cancelable 22038 runtime alias check if all partitions are builtins. 22039 (distribute_loop): Update call to above function. 22040 220412018-05-25 Bin Cheng <bin.cheng@arm.com> 22042 22043 * tree-outof-ssa.c (tree-ssa.h, tree-dfa.h): Include header files. 22044 (create_default_def, for_all_parms): Moved from tree-ssa-coalesce.c. 22045 (parm_default_def_partition_arg): Ditto. 22046 (set_parm_default_def_partition): Ditto. 22047 (get_parm_default_def_partitions): Ditto and make it static. 22048 (get_undefined_value_partitions): Ditto and make it static. 22049 (remove_ssa_form): Refactor call to init_var_map here. 22050 * tree-ssa-coalesce.c (build_ssa_conflict_graph): Support live range 22051 computation for loop region. 22052 (coalesce_partitions, compute_optimized_partition_bases): Ditto. 22053 (register_default_def): Delete. 22054 (for_all_parms, create_default_def): Move to tree-outof-ssa.c. 22055 (parm_default_def_partition_arg): Ditto. 22056 (set_parm_default_def_partition): Ditto. 22057 (get_parm_default_def_partitions): Ditto and make it static. 22058 (get_undefined_value_partitions): Ditto and make it static. 22059 (coalesce_with_default, coalesce_with_default): Update comment. 22060 (create_coalesce_list_for_region): New func factored out from 22061 create_outofssa_var_map. 22062 (populate_coalesce_list_for_outofssa): New func factored out from 22063 create_outofssa_var_map and coalesce_ssa_name. 22064 (create_outofssa_var_map): Delete. 22065 (coalesce_ssa_name): Refactor to support live range computation. 22066 * tree-ssa-coalesce.h (coalesce_ssa_name): Change decl. 22067 (get_parm_default_def_partitions): Delete. 22068 (get_undefined_value_partitions): Ditto. 22069 * tree-ssa-live.c (init_var_map, delete_var_map): Support live range 22070 computation for loop region. 22071 (new_tree_live_info, loe_visit_block): Ditto. 22072 (live_worklist, set_var_live_on_entry): Ditto. 22073 (calculate_live_on_exit, verify_live_on_entry): Ditto. 22074 * tree-ssa-live.h (struct _var_map): New fields. 22075 (init_var_map): Change decl. 22076 (region_contains_p): New. 22077 220782018-05-25 Bin Cheng <bin.cheng@arm.com> 22079 22080 * tree-ssa-live.h (live_merge_and_clear): Delete. 22081 220822018-05-25 Richard Biener <rguenther@suse.de> 22083 22084 PR c++/85912 22085 * tree-dump.c (dequeue_and_dump): Remove access to removed 22086 operand 2 of a SWITCH_EXPR. 22087 220882018-05-25 Richard Sandiford <richard.sandiford@linaro.org> 22089 22090 * doc/sourcebuild.texi (vect_double_cond_arith): Include 22091 multiplication and division. 22092 * doc/md.texi (cond_mul@var{m}, cond_div@var{m}, cond_mod@var{m}) 22093 (cond_udiv@var{m}, cond_umod@var{m}): Document. 22094 * optabs.def (cond_smul_optab, cond_sdiv_optab, cond_smod_optab) 22095 (cond_udiv_optab, cond_umod_optab): New optabs. 22096 * internal-fn.def (IFN_COND_MUL, IFN_COND_DIV, IFN_COND_MOD) 22097 (IFN_COND_RDIV): New internal functions. 22098 * internal-fn.c (get_conditional_internal_fn): Handle TRUNC_DIV_EXPR, 22099 TRUNC_MOD_EXPR and RDIV_EXPR. 22100 * match.pd (UNCOND_BINARY, COND_BINARY): Handle them. 22101 * config/aarch64/iterators.md (UNSPEC_COND_MUL, UNSPEC_COND_DIV): 22102 New unspecs. 22103 (SVE_INT_BINARY): Include mult. 22104 (SVE_COND_FP_BINARY): Include UNSPEC_MUL and UNSPEC_DIV. 22105 (optab, sve_int_op): Handle mult. 22106 (optab, sve_fp_op, commutative): Handle UNSPEC_COND_MUL and 22107 UNSPEC_COND_DIV. 22108 * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New pattern 22109 for SVE_INT_BINARY_SD. 22110 221112018-05-25 Richard Sandiford <richard.sandiford@linaro.org> 22112 22113 * config/aarch64/iterators.md (SVE_INT_BINARY_SD): New code iterator. 22114 (optab, sve_int_op): Handle div and udiv. 22115 * config/aarch64/aarch64-sve.md (<optab><mode>3): New expander 22116 for SVE_INT_BINARY_SD. 22117 (*<optab><mode>3): New insn for the same. 22118 221192018-05-25 Richard Sandiford <richard.sandiford@linaro.org> 22120 22121 * tree-vect-patterns.c: Include predict.h. 22122 (vect_recog_divmod_pattern): Restrict check for division support 22123 to when optimizing for size. 22124 221252018-05-25 Richard Sandiford <richard.sandiford@linaro.org> 22126 22127 * doc/sourcebuild.texi (vect_double_cond_arith: Document. 22128 * gimple-match.h (gimple_match_op::MAX_NUM_OPS): Bump to 4. 22129 (gimple_match_op::gimple_match_op): Add an overload for 4 operands. 22130 (gimple_match_op::set_op): Likewise. 22131 (gimple_resimplify4): Declare. 22132 * genmatch.c (get_operand_type): Handle CFN_COND_* functions. 22133 (expr::gen_transform): Likewise. 22134 (decision_tree::gen): Generate a simplification routine for 4 operands. 22135 * gimple-match-head.c (gimple_simplify): Add an overload for 22136 4 operands. In the top-level function, handle up to 4 call 22137 arguments and call gimple_resimplify4. 22138 (gimple_resimplify4): New function. 22139 (build_call_internal): Pass a fourth operand. 22140 (maybe_push_to_seq): Likewise. 22141 * match.pd (UNCOND_BINARY, COND_BINARY): New operator lists. 22142 Fold VEC_COND_EXPRs of an operation and a default value into 22143 an IFN_COND_* function if possible. 22144 * config/aarch64/iterators.md (UNSPEC_COND_MAX, UNSPEC_COND_MIN): 22145 New unspecs. 22146 (SVE_COND_FP_BINARY): Include them. 22147 (optab, sve_fp_op): Handle them. 22148 (SVE_INT_BINARY_REV): New code iterator. 22149 (SVE_COND_FP_BINARY_REV): New int iterator. 22150 (commutative): New int attribute. 22151 * config/aarch64/aarch64-protos.h (aarch64_sve_prepare_conditional_op): 22152 Declare. 22153 * config/aarch64/aarch64.c (aarch64_sve_prepare_conditional_op): New 22154 function. 22155 * config/aarch64/aarch64-sve.md (cond_<optab><mode>): Use it. 22156 (*cond_<optab><mode>): New patterns for reversed operands. 22157 221582018-05-25 Richard Biener <rguenther@suse.de> 22159 22160 * tree-vectorizer.h (STMT_VINFO_GROUP_*, GROUP_*): Remove. 22161 (DR_GROUP_*): New, assert we have non-NULL ->data_ref_info. 22162 (REDUC_GROUP_*): New, assert we have NULL ->data_ref_info. 22163 (STMT_VINFO_GROUPED_ACCESS): Adjust. 22164 * tree-vect-data-refs.c (everywhere): Adjust users. 22165 * tree-vect-loop.c (everywhere): Likewise. 22166 * tree-vect-slp.c (everywhere): Likewise. 22167 * tree-vect-stmts.c (everywhere): Likewise. 22168 * tree-vect-patterns.c (vect_reassociating_reduction_p): Likewise. 22169 221702018-05-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 22171 22172 * configure.ac (gcc_cv_as_section_has_e): Move to common section. 22173 Rename to... 22174 (gcc_cv_as_section_exclude): ... this. 22175 Try Solaris as #exclude syntax. 22176 * configure: Regenerate. 22177 * config.in: Regenerate. 22178 * config/i386/i386.c (i386_solaris_elf_named_section): Handle 22179 SECTION_EXCLUDE. 22180 * config/sparc/sparc.c (sparc_solaris_elf_asm_named_section) 22181 [HAVE_GAS_SECTION_EXCLUDE]: Handle SECTION_EXCLUDE. 22182 22183 * varasm.c (default_elf_asm_named_section): Don't check if 22184 HAVE_GAS_SECTION_EXCLUDE is defined. 22185 221862018-05-25 Richard Sandiford <richard.sandiford@linaro.org> 22187 22188 * doc/md.texi: Update the documentation of the cond_* optabs 22189 to mention the new final operand. Fix GET_MODE_NUNITS call. 22190 Describe the scalar case too. 22191 * internal-fn.def (IFN_EXTRACT_LAST): Change type to fold_left. 22192 * internal-fn.c (expand_cond_unary_optab_fn): Expect 3 operands 22193 instead of 2. 22194 (expand_cond_binary_optab_fn): Expect 4 operands instead of 3. 22195 (get_conditional_internal_fn): Update comment. 22196 * tree-vect-loop.c (vectorizable_reduction): Pass the original 22197 accumulator value as a final argument to conditional functions. 22198 * config/aarch64/aarch64-sve.md (cond_<optab><mode>): Turn into 22199 a define_expand and add an "else" operand. Assert for now that 22200 the else operand is equal to operand 2. Use SVE_INT_BINARY and 22201 SVE_COND_FP_BINARY instead of SVE_COND_INT_OP and SVE_COND_FP_OP. 22202 (*cond_<optab><mode>): New patterns. 22203 * config/aarch64/iterators.md (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX) 22204 (UNSPEC_COND_SMIN, UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) 22205 (UNSPEC_COND_EOR): Delete. 22206 (optab): Remove associated mappings. 22207 (SVE_INT_BINARY): New code iterator. 22208 (sve_int_op): Remove int attribute and add "minus" to the code 22209 attribute. 22210 (SVE_COND_INT_OP): Delete. 22211 (SVE_COND_FP_OP): Rename to... 22212 (SVE_COND_FP_BINARY): ...this. 22213 222142018-05-25 Richard Sandiford <richard.sandiford@linaro.org> 22215 22216 * optabs.c (can_reuse_operands_p): New function. 22217 (maybe_legitimize_operands): Try to reuse the results for 22218 earlier operands. 22219 222202018-05-24 Uros Bizjak <ubizjak@gmail.com> 22221 22222 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>64<round_name>): 22223 Add {q} suffix to insn mnemonic. 22224 222252018-05-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> 22226 22227 * config/msp430/msp430.c (TARGET_WARN_FUNC_RETURN): Define. 22228 (msp430_warn_func_return): New. 22229 222302018-05-24 Roger Sayle <roger@nextmovesoftware.com> 22231 22232 * fold-const.c (tree_nonzero_bits): New function. 22233 * fold-const.h (tree_nonzero_bits): Likewise. 22234 * match.pd (POPCOUNT): New patterns to fold BUILTIN_POPCOUNT and 22235 friends. POPCOUNT(x&1) => x&1, POPCOUNT(x)==0 => x==0, etc. 22236 222372018-05-24 H.J. Lu <hongjiu.lu@intel.com> 22238 22239 PR target/85900 22240 PR target/85345 22241 * varasm.c (assemble_alias): Check ifunc_resolver only on 22242 FUNCTION_DECL. 22243 222442018-05-24 Uros Bizjak <ubizjak@gmail.com> 22245 22246 PR target/85903 22247 * config/i386/sse.md (movdi_to_sse): Do not generate pseudo 22248 when memory input operand is handled. 22249 222502018-05-24 Luis Machado <luis.machado@linaro.org> 22251 22252 * config/aarch64/aarch64.c (qdf24xx_addrcost_table): New static 22253 global. 22254 (qdf24xx_tunings) <addr_costs>: Set to qdf24xx_addrcost_table. 22255 222562018-05-24 Richard Sandiford <richard.sandiford@linaro.org> 22257 22258 * match.pd: Delay FMA folds until after vectorization. 22259 222602018-05-24 Andre Vieira <andre.simoesdiasvieira@arm.com> 22261 22262 PR target/83009 22263 * config/aarch64/predicates.md (aarch64_mem_pair_lanes_operand): Make 22264 address check not strict. 22265 222662018-05-24 Richard Sandiford <richard.sandiford@linaro.org> 22267 22268 * gimple-match.h (gimple_match_op): New class. 22269 (mprts_hook): Replace parameters with a gimple_match_op *. 22270 (maybe_build_generic_op): Likewise. 22271 (gimple_simplified_result_is_gimple_val): Replace parameters with 22272 a const gimple_match_op *. 22273 (gimple_simplify): Replace code_helper * and tree * parameters with 22274 a gimple_match_op * parameter. 22275 (gimple_resimplify1): Replace code_helper *, tree and tree * 22276 parameters with a gimple_match_op * parameter. 22277 (gimple_resimplify2): Likewise. 22278 (gimple_resimplify3): Likewise. 22279 (maybe_push_res_to_seq): Replace code_helper, tree and tree * 22280 parameters with a gimple_match_op * parameter. 22281 * gimple-match-head.c (gimple_simplify): Change prototypes of 22282 auto-generated functions to take a gimple_match_op * instead of 22283 separate code_helper * and tree * parameters. Make the same 22284 change in the top-level overload and update calls to the 22285 gimple_resimplify routines. Update calls to the auto-generated 22286 functions and to maybe_push_res_to_seq in the publicly-facing 22287 operation-specific gimple_simplify overloads. 22288 (gimple_match_op::MAX_NUM_OPS): Define. 22289 (gimple_resimplify1): Replace rcode and ops with a single res_op 22290 parameter. Update call to gimple_simplify. 22291 (gimple_resimplify2): Likewise. 22292 (gimple_resimplify3): Likewise. 22293 (mprts_hook): Replace parameters with a gimple_match_op *. 22294 (maybe_build_generic_op): Likewise. 22295 (build_call_internal): Replace type, nargs and ops with 22296 a gimple_match_op *. 22297 (maybe_push_res_to_seq): Replace res_code, type and ops parameters 22298 with a single gimple_match_op *. Update calls to mprts_hook, 22299 build_call_internal and gimple_simplified_result_is_gimple_val. 22300 Factor out code that is common to the tree_code and combined_fn cases. 22301 * genmatch.c (expr::gen_transform): Replace tem_code and 22302 tem_ops with a gimple_match_op called tem_op. Update calls 22303 to the gimple_resimplify functions and maybe_push_res_to_seq. 22304 (dt_simplify::gen_1): Manipulate res_op instead of res_code and 22305 res_ops. Update call to the gimple_resimplify functions. 22306 (dt_simplify::gen): Pass res_op instead of res_code and res_ops. 22307 (decision_tree::gen): Make the functions take a gimple_match_op * 22308 called res_op instead of separate res_code and res_ops parameters. 22309 Update call accordingly. 22310 * gimple-fold.c (replace_stmt_with_simplification): Replace rcode 22311 and ops with a single res_op parameter. Update calls to 22312 maybe_build_generic_op and maybe_push_res_to_seq. 22313 (fold_stmt_1): Update calls to gimple_simplify and 22314 replace_stmt_with_simplification. 22315 (gimple_fold_stmt_to_constant_1): Update calls to gimple_simplify 22316 and gimple_simplified_result_is_gimple_val. 22317 * tree-cfgcleanup.c (cleanup_control_expr_graph): Update call to 22318 gimple_simplify. 22319 * tree-ssa-sccvn.c (vn_lookup_simplify_result): Replace parameters 22320 with a gimple_match_op *. 22321 (vn_nary_build_or_lookup): Likewise. Update call to 22322 vn_nary_build_or_lookup_1. 22323 (vn_nary_build_or_lookup_1): Replace rcode, type and ops with a 22324 gimple_match_op *. Update calls to the gimple_resimplify routines 22325 and to gimple_simplified_result_is_gimple_val. 22326 (vn_nary_simplify): Update call to vn_nary_build_or_lookup_1. 22327 Use gimple_match_op::MAX_NUM_OPS instead of a hard-coded 3. 22328 (vn_reference_lookup_3): Update call to vn_nary_build_or_lookup. 22329 (visit_nary_op): Likewise. 22330 (visit_reference_op_load): Likewise. 22331 223322018-05-23 Luis Machado <luis.machado@linaro.org> 22333 22334 * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Use correct type 22335 modifier for printing the step amount. 22336 223372018-05-23 Jozef Lawrynowicz <jozef.l@somniumtech.com> 22338 22339 PR target/78849 22340 * tree.c (build_common_tree_nodes): Dont set TYPE_SIZE for __intN 22341 types. 22342 223432018-05-23 Segher Boessenkool <segher@kernel.crashing.org> 22344 22345 * doc/sourcebuild.texi (Endianness): New subsubsection. 22346 223472018-05-23 Luis Machado <luis.machado@linaro.org> 22348 22349 * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) 22350 <prefetch_dynamic_strides>: New const bool field. 22351 * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include 22352 prefetch_dynamic_strides. 22353 (exynosm1_prefetch_tune): Likewise. 22354 (thunderxt88_prefetch_tune): Likewise. 22355 (thunderx_prefetch_tune): Likewise. 22356 (thunderx2t99_prefetch_tune): Likewise. 22357 (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides to 22358 false. 22359 (aarch64_override_options_internal): Update to set 22360 PARAM_PREFETCH_DYNAMIC_STRIDES. 22361 * doc/invoke.texi (prefetch-dynamic-strides): Document new option. 22362 * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. 22363 * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. 22364 * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for 22365 prefetch-dynamic-strides setting. 22366 223672018-05-23 Luis Machado <luis.machado@linaro.org> 22368 22369 * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) 22370 <minimum_stride>: New const int field. 22371 * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include 22372 minimum_stride field defaulting to -1. 22373 (exynosm1_prefetch_tune): Likewise. 22374 (thunderxt88_prefetch_tune): Likewise. 22375 (thunderx_prefetch_tune): Likewise. 22376 (thunderx2t99_prefetch_tune): Likewise. 22377 (qdf24xx_prefetch_tune) <minimum_stride>: Set to 2048. 22378 <default_opt_level>: Set to 3. 22379 (aarch64_override_options_internal): Update to set 22380 PARAM_PREFETCH_MINIMUM_STRIDE. 22381 * doc/invoke.texi (prefetch-minimum-stride): Document new option. 22382 * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. 22383 * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. 22384 * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if 22385 stride is constant and is below the minimum stride threshold. 22386 223872018-05-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22388 22389 * config/arm/arm-cpus.in (mode26): Delete. 22390 (armv4): Delete mode26 reference. 22391 * config/arm/arm.c (arm_configure_build_target): Delete use of 22392 isa_bit_mode26. 22393 223942018-05-23 Uros Bizjak <ubizjak@gmail.com> 22395 22396 * config/i386/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512): 22397 New insn pattern. 22398 (floatunssi<mode>2): Also enable for AVX512F and TARGET_SSE_MATH. 22399 Rewrite expander pattern. Emit gen_floatunssi<mode>2_i387_with_xmm 22400 for non-SSE modes. 22401 (floatunsdisf2): Rewrite expander pattern. Hanlde TARGET_AVX512F. 22402 (floatunsdidf2): Ditto. 22403 224042018-05-23 Uros Bizjak <ubizjak@gmail.com> 22405 22406 * config/i386/i386.md (fixuns_trunc<mode>di2): New insn pattern. 22407 (fixuns_trunc<mode>si2_avx512f): Ditto. 22408 (*fixuns_trunc<mode>si2_avx512f_zext): Ditto. 22409 (fixuns_trunc<mode>si2): Also enable for AVX512F and TARGET_SSE_MATH. 22410 Emit fixuns_trunc<mode>si2_avx512f for AVX512F targets. 22411 224122018-05-23 Alexander Monakov <amonakov@ispras.ru> 22413 22414 PR rtl-optimization/79985 22415 * df-scan.c (df_insn_refs_collect): Remove special case for 22416 global registers and asm statements. 22417 224182018-05-23 Alexander Monakov <amonakov@ispras.ru> 22419 22420 * extend.texi (Global Register Variables): Rewrite the bullet list. 22421 Note that the register is available for allocation. Note that access 22422 via inline asm must use constraints. Add note about async-signal 22423 handlers. Remove paragraph about automagic register selection. 22424 224252018-05-23 Richard Biener <rguenther@suse.de> 22426 22427 * tree-ssa-sccvn.c (vn_reference_lookup_3): Remove restriction 22428 of fixed offset from memset VN. 22429 224302018-05-23 Bill Schmidt <wschmidt@linux.ibm.com> 22431 22432 * gimple-ssa-strength-reduction.c (struct slsr_cand_d): Add 22433 first_interp field. 22434 (alloc_cand_and_find_basis): Initialize first_interp field. 22435 (slsr_process_mul): Modify first_interp field. 22436 (slsr_process_add): Likewise. 22437 (slsr_process_cast): Modify first_interp field for each new 22438 interpretation. 22439 (slsr_process_copy): Likewise. 22440 (dump_candidate): Dump first_interp field. 22441 (replace_mult_candidate): Process all interpretations, not just 22442 subsequent ones. 22443 (replace_rhs_if_not_dup): Likewise. 22444 (replace_one_candidate): Likewise. 22445 224462018-05-23 Wilco Dijkstra <wdijkstr@arm.com> 22447 22448 * config/aarch64/aarch64.c (aarch64_use_frame_pointer): 22449 Add new boolean. 22450 (aarch64_needs_frame_chain): New function. 22451 (aarch64_parse_override_string): Set aarch64_use_frame_pointer. 22452 224532018-05-23 Sudakshina Das <sudi.das@arm.com> 22454 22455 PR target/84882 22456 * common/config/aarch64/aarch64-common.c (aarch64_handle_option): 22457 Check val before adding MASK_STRICT_ALIGN to opts->x_target_flags. 22458 * config/aarch64/aarch64.opt (mstrict-align): Remove RejectNegative. 22459 * config/aarch64/aarch64.c (aarch64_attributes): Mark allow_neg 22460 as true for strict-align. 22461 (aarch64_can_inline_p): Perform checks even when callee has no 22462 attributes to check for strict alignment. 22463 * doc/extend.texi (AArch64 Function Attributes): Document 22464 no-strict-align. 22465 * doc/invoke.texi: (AArch64 Options): Likewise. 22466 224672018-05-23 Richard Sandiford <richard.sandiford@linaro.org> 22468 22469 PR tree-optimization/85853 22470 * tree-vect-slp.c (vect_slp_analyze_node_operations): Split out 22471 the handling of the root of the node to... 22472 (vect_slp_analyze_node_operations_1): ...this new function, 22473 and run the whole thing with the child nodes' def types 22474 set according to their SLP node's def type. 22475 224762018-05-23 Richard Biener <rguenther@suse.de> 22477 22478 PR middle-end/85874 22479 * tree-data-ref.c (create_runtime_alias_checks): Defer 22480 and ignore overflow warnings. 22481 224822018-05-23 Yury Gribov <tetra2005@gmail.com> 22483 22484 PR tree-optimization/85822 22485 * tree-vrp.c (is_masked_range_test): Fix handling of negative 22486 constants. 22487 224882018-05-23 Richard Biener <rguenther@suse.de> 22489 22490 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle arbitrary 22491 memset constants via native_interpret_expr. 22492 224932018-05-22 H.J. Lu <hongjiu.lu@intel.com> 22494 22495 PR target/85345 22496 * cgraph.h (cgraph_node::create): Set ifunc_resolver for ifunc 22497 attribute. 22498 (cgraph_node::create_alias): Likewise. 22499 (cgraph_node::get_availability): Check ifunc_resolver instead 22500 of looking up ifunc attribute. 22501 * cgraphunit.c (maybe_diag_incompatible_alias): Likewise. 22502 * varasm.c (do_assemble_alias): Likewise. 22503 (assemble_alias): Likewise. 22504 (default_binds_local_p_3): Likewise. 22505 * cgraph.h (cgraph_node): Add ifunc_resolver. 22506 (cgraph_node::only_called_directly_or_aliased_p): Return false 22507 for IFUNC resolver. 22508 * lto-cgraph.c (input_node): Set ifunc_resolver for ifunc 22509 attribute. 22510 * symtab.c (symtab_node::verify_base): Verify that ifunc_resolver 22511 is equivalent to lookup_attribute ("ifunc", DECL_ATTRIBUTES (decl)). 22512 (symtab_node::binds_to_current_def_p): Check ifunc_resolver 22513 instead of looking up ifunc attribute. 22514 225152018-05-22 Luis Machado <luis.machado@linaro.org> 22516 22517 * config/aarch64/aarch64.md (*ashift<mode>_extv_bfiz): New pattern. 22518 225192018-05-22 Martin Sebor <msebor@redhat.com> 22520 22521 PR middle-end/85359 22522 * builtins.c (expand_builtin_strcpy): Call maybe_warn_nonstring_arg 22523 only when expasion succeeds. 22524 (expand_builtin_strcmp): Same. 22525 (expand_builtin_strncmp): Same. 22526 225272018-05-22 Martin Sebor <msebor@redhat.com> 22528 22529 * calls.c (maybe_warn_nonstring_arg): Fix a typo in a comment. 22530 225312018-05-22 Jackson Woodruff <jackson.woodruff@arm.com> 22532 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22533 22534 * config/aarch64/aarch64-ldpstp.md: Replace uses of 22535 aarch64_mem_pair_operand with memory_operand and delete operand swapping 22536 code. 22537 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): 22538 Add check for legitimate_address. 22539 (aarch64_gen_adjusted_ldpstp): Swap operands where appropriate. 22540 (aarch64_swap_ldrstr_operands): New. 22541 * config/aarch64/aarch64-protos.h (aarch64_swap_ldrstr_operands): 22542 Define prototype. 22543 225442018-05-22 Jackson Woodruff <jackson.woodruff@arm.com> 22545 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22546 22547 * config/aarch64/aarch64.md: New patterns to generate stp 22548 and ldp. 22549 (store_pair_sw, store_pair_dw): New patterns to generate stp for 22550 single words and double words. 22551 (load_pair_sw, load_pair_dw): Likewise. 22552 (store_pair_sf, store_pair_df, store_pair_si, store_pair_di): 22553 Delete. 22554 (load_pair_sf, load_pair_df, load_pair_si, load_pair_di): 22555 Delete. 22556 * config/aarch64/aarch64-ldpstp.md: Modify peephole 22557 for different mode ldpstp and add peephole for merged zero stores. 22558 Likewise for loads. 22559 * config/aarch64/aarch64.c (aarch64_operands_ok_for_ldpstp): 22560 Add size check. 22561 (aarch64_gen_store_pair): Rename calls to match new patterns. 22562 (aarch64_gen_load_pair): Rename calls to match new patterns. 22563 * config/aarch64/aarch64-simd.md (load_pair<mode>): Rename to... 22564 (load_pair<DREG:mode><DREG2:mode>): ... This. 22565 (store_pair<mode>): Rename to... 22566 (vec_store_pair<DREG:mode><DREG2:mode>): ... This. 22567 * config/aarch64/iterators.md (DREG, DREG2, DX2, SX, SX2, DSX): 22568 New mode iterators. 22569 (V_INT_EQUIV): Handle SImode. 22570 * config/aarch64/predicates.md (aarch64_reg_zero_or_fp_zero): 22571 New predicate. 22572 225732018-05-22 Martin Sebor <msebor@redhat.com> 22574 22575 PR c/85623 22576 * calls.c (maybe_warn_nonstring_arg): Use string length to set 22577 or ajust the presumed bound on an operation to avoid unnecessary 22578 warnings. 22579 225802018-05-22 Martin Sebor <msebor@redhat.com> 22581 22582 PR tree-optimization/85826 22583 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Avoid 22584 assuming that a DECL necesarily has a constant size. 22585 225862018-05-22 Richard Sandiford <richard.sandiford@linaro.org> 22587 22588 PR middle-end/85862 22589 * internal-fn.c (expand_direct_optab_fn): Cope with a null lhs. 22590 225912018-05-22 Richard Biener <rguenther@suse.de> 22592 22593 PR tree-optimization/85834 22594 * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly handle 22595 non-constant and non-zero memset arguments. 22596 225972018-05-22 Martin Liska <mliska@suse.cz> 22598 22599 PR ipa/85607 22600 * ipa-icf.c (sem_item::add_type): Do not ICE for incomplete types. 22601 226022018-05-22 Richard Biener <rguenther@suse.de> 22603 22604 PR tree-optimization/85863 22605 * tree-vect-stmts.c (vect_is_simple_cond): Only widen invariant 22606 comparisons when vectype is specified. 22607 (vectorizable_condition): Do not specify vectype for 22608 vect_is_simple_cond when SLP vectorizing. 22609 226102018-05-21 Michael Meissner <meissner@linux.ibm.com> 22611 22612 PR target/85657 22613 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Do not 22614 define __ibm128 as long double. 22615 * config/rs6000/rs6000.c (rs6000_init_builtins): Create __ibm128 22616 as a distinct type when IEEE 128-bit support is enabled. 22617 (init_float128_ieee): Fix up conversions between IFmode and IEEE 22618 128-bit types to use the correct functions. 22619 (rs6000_expand_float128_convert): Use explicit FLOAT_EXTEND to 22620 convert between 128-bit floating point types that have different 22621 modes but the same representation, instead of using gen_lowpart to 22622 makean alias. 22623 * config/rs6000/rs6000.md (IFKF): New iterator for IFmode and 22624 KFmode. 22625 (IFKF_reg): New attributes to give the register constraints for 22626 IFmode and KFmode. 22627 (extend<mode>tf2_internal): New insns to mark an explicit 22628 conversion between 128-bit floating point types that have a 22629 different mode but share the same representation. 22630 226312018-05-21 Richard Sandiford <richard.sandiford@linaro.org> 22632 22633 PR tree-optimization/85814 22634 * tree-ssa-strlen.c (get_stridx_plus_constant): Cope with 22635 a null return from get_strinfo when unsharing the next 22636 strinfo in the chain. 22637 226382018-05-21 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> 22639 22640 PR gcc/84923 22641 * varasm.c (weak_finish): Clean up weak_decls. 22642 226432018-05-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22644 22645 * config/aarch64/aarch64.md ("unspec"): Define UNSPEC_SABAL, 22646 UNSPEC_SABDL2, UNSPEC_SADALP, UNSPEC_UABAL, UNSPEC_UABDL2, 22647 UNSPEC_UADALP values. 22648 * config/aarch64/iterators.md (ABAL): New int iterator. 22649 (ABDL2): Likewise. 22650 (ADALP): Likewise. 22651 (sur): Add mappings for the above. 22652 * config/aarch64/aarch64-simd.md (aarch64_<sur>abdl2<mode>_3): 22653 New define_insn. 22654 (aarch64_<sur>abal<mode>_4): Likewise. 22655 (aarch64_<sur>adalp<mode>_3): Likewise. 22656 (<sur>sadv16qi): New define_expand. 22657 226582018-05-21 Alexander Nesterovskiy <alexander.nesterovskiy@intel.com> 22659 22660 * config/i386/i386.md (*movsf_internal): AVX falsedep fix. 22661 (*movdf_internal): Ditto. 22662 (*rcpsf2_sse): Ditto. 22663 (*rsqrtsf2_sse): Ditto. 22664 (*sqrt<mode>2_sse): Ditto. 22665 226662018-05-21 Tamar Christina <tamar.christina@arm.com> 22667 22668 * config/aarch64/aarch64-simd.md (aarch64_eor3qv8hi): Change to 22669 eor3q<mode>4. 22670 (aarch64_bcaxqv8hi): Change to bcaxq<mode>4. 22671 * config/aarch64/aarch64-simd-builtins.def (veor3q_u8, veor3q_u32, 22672 veor3q_u64, veor3q_s8, veor3q_s16, veor3q_s32, veor3q_s64, vbcaxq_u8, 22673 vbcaxq_u32, vbcaxq_u64, vbcaxq_s8, vbcaxq_s16, vbcaxq_s32, 22674 vbcaxq_s64): New. 22675 * config/aarch64/arm_neon.h: Likewise. 22676 * config/aarch64/iterators.md (VQ_I): New. 22677 226782018-05-21 Alexey Brodkin <abrodkin@synopsys.com> 22679 22680 * config.gcc: Add arc/t-multilib-linux to tmake_file for 22681 arc*-*-linux*. 22682 * config/arc/t-multilib-linux: Specify MULTILIB_OPTIONS and 22683 MULTILIB_DIRNAMES 22684 226852018-05-20 Chung-Ju Wu <jasonwucj@gmail.com> 22686 22687 * config/nds32/constraints.md (S): New constraint. 22688 * config/nds32/nds32.md (call_internal): Use constraint S. 22689 (call_value_internal): Likewise. 22690 (sibcall_internal): Likewise. 22691 (sibcall_value_internal): Likewise. 22692 226932018-05-20 Kito Cheng <kito.cheng@gmail.com> 22694 Chung-Ju Wu <jasonwucj@gmail.com> 22695 22696 * config/nds32/nds32.c (nds32_register_move_cost): Take garywolf cpu 22697 into consideration. 22698 226992018-05-20 Kito Cheng <kito.cheng@gmail.com> 22700 Chung-Ju Wu <jasonwucj@gmail.com> 22701 22702 * config/nds32/nds32-cost.c (rtx_cost_model_t): New structure. 22703 (insn_size_16bit, insn_size_32bit): New variables for cost evaluation. 22704 (nds32_rtx_costs_impl): Simplify. 22705 (nds32_address_cost_impl): Simplify. 22706 (nds32_init_rtx_costs): New function. 22707 (nds32_rtx_costs_speed_prefer): Likewise. 22708 (nds32_rtx_costs_size_prefer): Likewise. 22709 (nds32_address_cost_speed_prefer): Likewise. 22710 (nds32_address_cost_speed_fwprop): Likewise. 22711 (nds32_address_cost_size_prefer): Likewise. 22712 * config/nds32/nds32-protos.h (nds32_init_rtx_costs): Declare. 22713 * config/nds32/nds32.c (nds32_option_override): Use 22714 nds32_init_rtx_costs function. 22715 227162018-05-20 Chung-Ju Wu <jasonwucj@gmail.com> 22717 22718 * config/nds32/nds32.c (nds32_asm_file_start): Output pipeline model. 22719 * config/nds32/nds32.h (TARGET_PIPELINE_N7): Define. 22720 (TARGET_PIPELINE_N8): Likewise. 22721 (TARGET_PIPELINE_N10): Likewise. 22722 (TARGET_PIPELINE_N13): Likewise. 22723 (TARGET_PIPELINE_GRAYWOLF): Likewise. 22724 227252018-05-19 Monk Chiang <sh.chiang04@gmail.com> 22726 22727 * config/nds32/nds32-fpu.md: Update copyright year. 22728 227292018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> 22730 22731 * config/nds32/nds32.h (ASM_SPEC): Adjust spec rule. 22732 227332018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> 22734 22735 * config/nds32/nds32.c 22736 (nds32_md_asm_adjust): Consider flag_inline_asm_r15 variable. 22737 * config/nds32/nds32.opt (minline-asm-r15): New option. 22738 227392018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> 22740 22741 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): Add 22742 MASK_HW_ABS. 22743 * config/nds32/nds32.md (abssi2): New pattern. 22744 227452018-05-19 Uros Bizjak <ubizjak@gmail.com> 22746 22747 * config/i386/i386.md (rex64namesuffix): New mode attribute. 22748 * config/i386/sse.md (sse_cvtsi2ss<rex64namesuffix><round_name>): 22749 Merge insn pattern from sse_cvtsi2ss<round_name> and 22750 sse_cvtsi2ssq<round_name> using SWI48 mode iterator. 22751 (sse_cvtss2si<rex64namesuffix><round_name>): Merge insn pattern 22752 from sse_cvtss2si<round_name> and sse_cvtss2siq<round_name> 22753 using SWI48 mode iterator. 22754 (sse_cvtss2si<rex64namesuffix>_2): Merge insn pattern from 22755 sse_cvtss2si_2 and sse_cvtss2siq_2 using SWI48 mode iterator. 22756 (sse_cvttss2si<rex64namesuffix><round_saeonly_name>): Merge insn 22757 pattern from sse_cvttss2si<round_saeonly_name> 22758 and sse_cvttss2siq<round_saeonly_name> using SWI48 mode iterator. 22759 (avx512f_vcvtss2usi<rex64namesuffix><round_name>): Merge insn pattern 22760 from avx512f_vcvtss2usi<round_name> and avx512f_vcvtss2usiq<round_name> 22761 using SWI48 mode iterator. 22762 (avx512f_vcvttss2usi<rex64namesuffix><round_saeonly_name>): Merge 22763 insn pattern from avx512f_vcvttss2usi<round_saeonly_name> and 22764 avx512f_vcvttss2usiq<round_saeonly_name> using SWI48 mode iterator. 22765 (avx512f_vcvtsd2usi<rex64namesuffix><round_name>): Merge insn pattern 22766 from avx512f_vcvtsd2usi<round_name> and avx512f_vcvtsd2usiq<round_name> 22767 using SWI48 mode iterator. 22768 (avx512f_vcvttsd2usi<rex64namesuffix><round_saeonly_name>): Merge 22769 insn pattern from avx512f_vcvttsd2usi<round_saeonly_name> and 22770 avx512f_vcvttsd2usiq<round_saeonly_name> using SWI48 mode iterator. 22771 (sse2_cvtsd2si<rex64namesuffix><round_name>): Merge insn pattern from 22772 sse2_cvtsd2si<round_name> and sse2_cvtsd2siq<round_name> using 22773 SWI48 mode iterator. 22774 (sse2_cvtsd2si<rex64namesuffix>_2): Merge insn pattern from 22775 sse2_cvtsd2si_2 and sse2_cvtsd2siq_2 using SWI48 mode iterator. 22776 (sse_cvttsd2si<rex64namesuffix><round_saeonly_name>): Merge insn 22777 pattern from sse_cvttsd2si<round_saeonly_name> 22778 and sse_cvttsd2siq<round_saeonly_name> using SWI48 mode iterator. 22779 227802018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> 22781 22782 * config/nds32/nds32-md-auxiliary.c 22783 (nds32_valid_smw_lwm_base_p): Refine. 22784 (nds32_output_smw_single_word): Refine. 22785 (nds32_output_smw_double_word): New. 22786 * config/nds32/nds32-protos.h (nds32_output_smw_double_word): New. 22787 227882018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> 22789 22790 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push): Refine. 22791 (nds32_output_stack_pop): Refine. 22792 (nds32_expand_unaligned_load): Refine. 22793 (nds32_expand_unaligned_store): Refine. 22794 227952018-05-19 Kuan-Lin Chen <kuanlinchentw@gmail.com> 22796 Chung-Ju Wu <jasonwucj@gmail.com> 22797 22798 * config/nds32/constants.md: Add TP_REGNUM constant. 22799 (unspec_element): Add UNSPEC_GOTINIT, UNSPEC_GOT, UNSPEC_GOTOFF, 22800 UNSPEC_PLT, UNSPEC_TLSGD, UNSPEC_TLSLD, UNSPEC_TLSIE, UNSPEC_TLSLE and 22801 UNSPEC_ADD32. 22802 * config/nds32/nds32-doubleword.md: Consider flag_pic. 22803 * config/nds32/nds32-dspext.md (mov<mode>): Expand TLS and PIC cases. 22804 * config/nds32/nds32-predicates.c (nds32_const_unspec_p): New. 22805 * config/nds32/nds32-md-auxiliary.c: Implementation that support TLS 22806 and PIC code generation. 22807 * config/nds32/nds32-protos.h: Declarations that support TLS and PIC 22808 code generation. 22809 * config/nds32/nds32-relax-opt.c: Consider TLS and PIC for relax 22810 optimization. 22811 * config/nds32/nds32.md: Support TLS and PIC. 22812 * config/nds32/nds32.c: Support TLS and PIC. 22813 * config/nds32/nds32.h (nds32_relax_insn_type): New enum type. 22814 * config/nds32/predicates.md (nds32_nonunspec_symbolic_operand): New 22815 predicate. 22816 228172018-05-19 Chung-Ju Wu <jasonwucj@gmail.com> 22818 22819 * config/nds32/nds32-predicates.c (const_vector_to_hwint): Use machine 22820 mode with E_ prefix. 22821 228222018-05-19 Kuan-Lin Chen <kuanlinchentw@gmail.com> 22823 Chung-Ju Wu <jasonwucj@gmail.com> 22824 22825 * config/nds32/constants.md (unspec_element): Add UNSPEC_ICT. 22826 * config/nds32/nds32-md-auxiliary.c 22827 (symbolic_reference_mentioned_p): New. 22828 (nds32_legitimize_ict_address): New. 22829 (nds32_expand_ict_move): New. 22830 (nds32_indirect_call_referenced_p): New. 22831 (nds32_symbol_binds_local_p): Delete. 22832 (nds32_long_call_p): Modify. 22833 * config/nds32/nds32-opts.h (nds32_ict_model_type): New enum type. 22834 * config/nds32/nds32-protos.h 22835 (symbolic_reference_mentioned_p): Declare. 22836 (nds32_legitimize_ict_address): Declare. 22837 (nds32_expand_ict_move): Declare. 22838 (nds32_indirect_call_referenced_p): Declare. 22839 * config/nds32/nds32-relax-opt.c (nds32_ict_const_p): New. 22840 (nds32_relax_group): Use nds32_ict_const_p as condition. 22841 * config/nds32/nds32.c (nds32_attribute_table): Add "indirect_call". 22842 (nds32_asm_file_start): Output ict_model directive in asm code. 22843 (nds32_legitimate_address_p): Consider indirect call. 22844 (nds32_print_operand): Consider indirect call. 22845 (nds32_print_operand_address): Consider indirect call. 22846 (nds32_insert_attributes): Handle "indirect_call" attribute. 22847 (TARGET_LEGITIMATE_ADDRESS_P): Define. 22848 (TARGET_LEGITIMATE_CONSTANT_P): Define. 22849 (TARGET_CANNOT_FORCE_CONST_MEM): Define. 22850 (TARGET_DELEGITIMIZE_ADDRESS): Define. 22851 (TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA): Define. 22852 * config/nds32/nds32.h (SYMBOLIC_CONST_P): Define. 22853 (TARGET_ICT_MODEL_SMALL): Define. 22854 (TARGET_ICT_MODEL_LARGE): Define. 22855 * config/nds32/nds32.md (movsi): Consider ict model. 22856 (call, call_value): Consider ict model. 22857 (sibcall, sibcall_value): Consider ict model. 22858 * config/nds32/nds32.opt (mict-model): New option. 22859 * config/nds32/predicates.md (nds32_symbolic_operand): Consider ict 22860 model. 22861 228622018-05-18 Kito Cheng <kito.cheng@gmail.com> 22863 Monk Chiang <sh.chiang04@gmail.com> 22864 Jim Wilson <jimw@sifive.com> 22865 22866 * common/config/riscv/riscv-common.c (riscv_parse_arch_string): 22867 Add support to parse rv32e*. Clear MASK_RVE for rv32i and rv64i. 22868 * config.gcc (riscv*-*-*): Add support for rv32e* and ilp32e. 22869 * config/riscv/riscv-c.c (riscv_cpu_cpp_builtins): Define 22870 __riscv_32e when TARGET_RVE. Handle ABI_ILP32E as soft-float ABI. 22871 * config/riscv/riscv-opts.h (riscv_abi_type): Add ABI_ILP32E. 22872 * config/riscv/riscv.c (riscv_compute_frame_info): When TARGET_RVE, 22873 compute save_libcall_adjustment properly. 22874 (riscv_option_override): Call error if TARGET_RVE and not ABI_ILP32E. 22875 (riscv_conditional_register_usage): Handle TARGET_RVE and ABI_ILP32E. 22876 * config/riscv/riscv.h (UNITS_PER_FP_ARG): Handle ABI_ILP32E. 22877 (STACK_BOUNDARY, ABI_STACK_BOUNDARY): Handle TARGET_RVE. 22878 (GP_REG_LAST, MAX_ARGS_IN_REGISTERS): Likewise. 22879 (ABI_SPEC): Handle mabi=ilp32e. 22880 * config/riscv/riscv.opt (abi_type): Add ABI_ILP32E. 22881 (RVE): Add RVE mask. 22882 * doc/invoke.texi (RISC-V options) <-mabi>: Add ilp32e info. 22883 <-march>: Add rv32e as an example. 22884 228852018-05-18 Marc Glisse <marc.glisse@inria.fr> 22886 22887 PR c++/82899 22888 * tree-ssa-structalias.c (create_variable_info_for_1): Extra argument. 22889 (intra_create_variable_infos): Handle C++ constructors. 22890 228912018-05-18 Martin Liska <mliska@suse.cz> 22892 22893 * passes.def: Remove a redundant pass. 22894 228952018-05-18 Eric Botcazou <ebotcazou@adacore.com> 22896 22897 PR bootstrap/85838 22898 * config/sparc/sparc.c (sparc_expand_builtin): Always initialize op[0]. 22899 229002018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22901 22902 * config/arm/arm-cpus.in (armv3m, mode32): Delete features. 22903 (ARMv4): Update. 22904 (ARMv2, ARMv3, ARMv3m): Delete fgroups. 22905 (ARMv6m): Update. 22906 (armv2, armv2a, armv3, armv3m): Delete architectures. 22907 (arm2, arm250, arm3, arm6, arm60, arm600, arm610, arm620, 22908 arm7, arm7d, arm7di, arm70, arm700, arm700i, arm710, arm720, 22909 arm710c, arm7100, arm7500, arm7500fe, arm7m, arm7dm, arm7dmi): 22910 Delete cpus. 22911 * config/arm/arm.md (maddsidi4): Remove check for arm_arch3m. 22912 (*mulsidi3adddi): Likewise. 22913 (mulsidi3): Likewise. 22914 (*mulsidi3_nov6): Likewise. 22915 (umulsidi3): Likewise. 22916 (umulsidi3_nov6): Likewise. 22917 (umaddsidi4): Likewise. 22918 (*umulsidi3adddi): Likewise. 22919 (smulsi3_highpart): Likewise. 22920 (*smulsi3_highpart_nov6): Likewise. 22921 (umulsi3_highpart): Likewise. 22922 (*umulsi3_highpart_nov6): Likewise. 22923 * config/arm/arm.h (arm_arch3m): Delete. 22924 * config/arm/arm.c (arm_arch3m): Delete. 22925 (arm_option_override_internal): Update armv3-related comment. 22926 (arm_configure_build_target): Delete use of isa_bit_mode32. 22927 (arm_option_reconfigure_globals): Delete set of arm_ach3m. 22928 (arm_rtx_costs_internal): Delete check of arm_arch3m. 22929 * config/arm/arm-fixed.md (mulsq3): Delete check for arm_arch3m. 22930 (mulsa3): Likewise. 22931 (mulusa3): Likewise. 22932 * config/arm/arm-protos.h (arm_arch3m): Delete. 22933 * config/arm/arm-tables.opt: Regenerate. 22934 * config/arm/arm-tune.md: Likewise. 22935 * config/arm/t-arm-elf (all_early_nofp): Delete mentions of 22936 deleted architectures. 22937 229382018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 22939 22940 * config/arm/arm-cpus.in (armv5, armv5e): Delete features. 22941 (armv5t, armv5te): New features. 22942 (ARMv5, ARMv5e): Delete fgroups. 22943 (ARMv5t, ARMv5te): Adjust for above changes. 22944 (ARMv6m): Likewise. 22945 (armv5, armv5e): Delete arches. 22946 * config/arm/arm.md (*call_reg_armv5): Use arm_arch5t instead of 22947 arm_arch5. 22948 (*call_reg_arm): Likewise. 22949 (*call_value_reg_armv5): Likewise. 22950 (*call_value_reg_arm): Likewise. 22951 (*call_symbol): Likewise. 22952 (*call_value_symbol): Likewise. 22953 (*sibcall_insn): Likewise. 22954 (*sibcall_value_insn): Likewise. 22955 (clzsi2): Likewise. 22956 (prefetch): Likewise. 22957 (define_split and define_peephole2 dependent on arm_arch5): 22958 Likewise. 22959 * config/arm/arm.h (TARGET_LDRD): Use arm_arch5te instead of 22960 arm_arch5e. 22961 (TARGET_ARM_QBIT): Likewise. 22962 (TARGET_DSP_MULTIPLY): Likewise. 22963 (enum base_architecture): Delete BASE_ARCH_5, BASE_ARCH_5E. 22964 (arm_arch5, arm_arch5e): Delete. 22965 (arm_arch5t, arm_arch5te): Declare. 22966 * config/arm/arm.c (arm_arch5, arm_arch5e): Delete. 22967 (arm_arch5t): Declare. 22968 (arm_option_reconfigure_globals): Update for the above. 22969 (arm_options_perform_arch_sanity_checks): Update comment, replace 22970 use of arm_arch5 with arm_arch5t. 22971 (use_return_insn): Likewise. 22972 (arm_emit_call_insn): Likewise. 22973 (output_return_instruction): Likewise. 22974 (arm_final_prescan_insn): Likewise. 22975 (arm_coproc_builtin_available): Likewise. 22976 * config/arm/arm-c.c (arm_cpu_builtins): Replace arm_arch5 and 22977 arm_arch5e with arm_arch5t and arm_arch5te. 22978 * config/arm/arm-protos.h (arm_arch5, arm_arch5e): Delete. 22979 (arm_arch5t, arm_arch5te): Declare. 22980 * config/arm/arm-tables.opt: Regenerate. 22981 * config/arm/t-arm-elf: Remove references to armv5, armv5e. 22982 * config/arm/t-multilib: Likewise. 22983 * config/arm/thumb1.md (*call_reg_thumb1_v5): Check arm_arch5t 22984 instead of arm_arch5. 22985 (*call_reg_thumb1): Likewise. 22986 (*call_value_reg_thumb1_v5): Likewise. 22987 (*call_value_reg_thumb1): Likewise. 22988 * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Remove now 22989 unreachable path. 22990 * doc/invoke.texi (ARM Options): Remove references to armv5, armv5e. 22991 229922018-05-18 Martin Liska <mliska@suse.cz> 22993 22994 PR gcov-profile/84846 22995 * doc/gcov.texi: Document -t option of gcov tool. 22996 229972018-05-18 Martin Liska <mliska@suse.cz> 22998 22999 PR gcov-profile/84846 23000 * gcov.c (print_usage): Add new -t option. 23001 (process_args): Handle the option. 23002 (generate_results): Use stdout as output when requested by 23003 the option. 23004 230052018-05-18 Martin Liska <mliska@suse.cz> 23006 23007 PR gcov-profile/84846 23008 * coverage.c (coverage_init): Write PWD to .gcno file. 23009 * doc/gcov.texi: Document how working directory is printed. 23010 * gcov-dump.c (dump_gcov_file): Print PWD. 23011 * gcov.c (output_intermediate_file): Likewise. 23012 (read_graph_file): Read PWD string. 23013 (output_lines): Print PWD. 23014 230152018-05-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 23016 23017 PR middle-end/85817 23018 * ipa-pure-const.c (malloc_candidate_p): Remove the check integer_zerop 23019 for retval and return false if all args to phi are zero. 23020 230212018-05-18 Richard Biener <rguenther@suse.de> 23022 23023 * gimple-ssa-evrp.c (class evrp_folder): Add simplify_stmt_using_ranges 23024 method. 23025 (evrp_dom_walker::before_dom_children): Call it. 23026 230272018-05-18 Richard Biener <rguenther@suse.de> 23028 23029 * tree-dfa.c (get_ref_base_and_extent): Use range-info to refine 23030 results when processing array refs with variable index. 23031 230322018-05-18 Toon Moene <toon@moene.org> 23033 23034 * doc/invoke.texi: Move -floop-unroll-and-jam documentation 23035 directly after that of -floop-interchange. Indicate that both 23036 options are enabled by default when specifying -O3. 23037 230382018-05-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 23039 23040 * config/aarch64/aarch64-simd.md (vec_set<mode>): Use VALL_F16 mode 23041 iterator. Delete separate integer-mode vec_set<mode> expander. 23042 (aarch64_simd_vec_setv2di): Delete. 23043 (vec_setv2di): Delete. 23044 (aarch64_simd_vec_set<mode>): Delete all other patterns with that name. 23045 Use VALL_F16 mode iterator. Add LD1 alternative and use vwcore for 23046 the "w, r" alternative. 23047 230482018-05-18 Martin Liska <mliska@suse.cz> 23049 23050 * passes.def: Add pass_lower_switch and pass_lower_switch_O0. 23051 * tree-pass.h (make_pass_lower_switch_O0): New function. 23052 * tree-switch-conversion.c (node_has_low_bound): Remove. 23053 (node_has_high_bound): Likewise. 23054 (node_is_bounded): Likewise. 23055 (class pass_lower_switch): Make it a template type and create 23056 two instances. 23057 (pass_lower_switch::execute): Add template argument. 23058 (make_pass_lower_switch): New function. 23059 (make_pass_lower_switch_O0): New function. 23060 (do_jump_if_equal): Remove. 23061 (emit_case_nodes): Simplify to just handle all 3 cases and leave 23062 all the hard work to tree optimization passes. 23063 230642018-05-18 Martin Liska <mliska@suse.cz> 23065 23066 * dbgcnt.c (limit_low): Renamed from limit. 23067 (limit_high): New variable. 23068 (dbg_cnt_is_enabled): Check for upper limit. 23069 (dbg_cnt): Adjust dumping. 23070 (dbg_cnt_set_limit_by_index): Add new argument for high 23071 value. 23072 (dbg_cnt_set_limit_by_name): Likewise. 23073 (dbg_cnt_process_single_pair): Parse new format. 23074 (dbg_cnt_process_opt): Use strtok. 23075 (dbg_cnt_list_all_counters): Remove 'value' and add 23076 'limit_high'. 23077 * doc/invoke.texi: Document changes. 23078 230792018-05-18 Richard Sandiford <richard.sandiford@linaro.org> 23080 23081 * doc/sourcebuild.texi (scalar_all_fma): Document. 23082 * tree.def (FMA_EXPR): Delete. 23083 * internal-fn.def (FMA, FMS, FNMA, FNMS): New internal functions. 23084 * internal-fn.c (ternary_direct): New macro. 23085 (expand_ternary_optab_fn): Likewise. 23086 (direct_ternary_optab_supported_p): Likewise. 23087 * Makefile.in (build/genmatch.o): Depend on case-fn-macros.h. 23088 * builtins.c (fold_builtin_fma): Delete. 23089 (fold_builtin_3): Don't call it. 23090 * cfgexpand.c (expand_debug_expr): Remove FMA_EXPR handling. 23091 * expr.c (expand_expr_real_2): Likewise. 23092 * fold-const.c (operand_equal_p): Likewise. 23093 (fold_ternary_loc): Likewise. 23094 * gimple-pretty-print.c (dump_ternary_rhs): Likewise. 23095 * gimple.c (DEFTREECODE): Likewise. 23096 * gimplify.c (gimplify_expr): Likewise. 23097 * optabs-tree.c (optab_for_tree_code): Likewise. 23098 * tree-cfg.c (verify_gimple_assign_ternary): Likewise. 23099 * tree-eh.c (operation_could_trap_p): Likewise. 23100 (stmt_could_throw_1_p): Likewise. 23101 * tree-inline.c (estimate_operator_cost): Likewise. 23102 * tree-pretty-print.c (dump_generic_node): Likewise. 23103 (op_code_prio): Likewise. 23104 * tree-ssa-loop-im.c (stmt_cost): Likewise. 23105 * tree-ssa-operands.c (get_expr_operands): Likewise. 23106 * tree.c (commutative_ternary_tree_code, add_expr): Likewise. 23107 * fold-const-call.h (fold_fma): Delete. 23108 * fold-const-call.c (fold_const_call_ssss): Handle CFN_FMS, 23109 CFN_FNMA and CFN_FNMS. 23110 (fold_fma): Delete. 23111 * genmatch.c (combined_fn): New enum. 23112 (commutative_ternary_tree_code): Remove FMA_EXPR handling. 23113 (commutative_op): New function. 23114 (commutate): Use it. Handle more than 2 operands. 23115 (dt_operand::gen_gimple_expr): Use commutative_op. 23116 (parser::parse_expr): Allow :c to be used with non-binary 23117 operators if the commutative operand is known. 23118 * gimple-ssa-backprop.c (backprop::process_builtin_call_use): Handle 23119 CFN_FMS, CFN_FNMA and CFN_FNMS. 23120 (backprop::process_assign_use): Remove FMA_EXPR handling. 23121 * hsa-gen.c (gen_hsa_insns_for_operation_assignment): Likewise. 23122 (gen_hsa_fma): New function. 23123 (gen_hsa_insn_for_internal_fn_call): Use it for IFN_FMA, IFN_FMS, 23124 IFN_FNMA and IFN_FNMS. 23125 * match.pd: Add folds for IFN_FMS, IFN_FNMA and IFN_FNMS. 23126 * gimple-fold.h (follow_all_ssa_edges): Declare. 23127 * gimple-fold.c (follow_all_ssa_edges): New function. 23128 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Use the 23129 gimple_build interface and use follow_all_ssa_edges to fold the result. 23130 (convert_mult_to_fma): Use direct_internal_fn_suppoerted_p 23131 instead of checking for optabs directly. 23132 * config/i386/i386.c (ix86_add_stmt_cost): Recognize FMAs as calls 23133 rather than FMA_EXPRs. 23134 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Create a 23135 call to IFN_FMA instead of an FMA_EXPR. 23136 231372018-05-17 Jim Wilson <jimw@sifive.com> 23138 23139 * expr.c (do_tablejump): When converting index to Pmode, if we have a 23140 sign extended promoted subreg, and the range does not have the sign bit 23141 set, then do a sign extend. 23142 23143 * config/riscv/riscv.c (riscv_extend_comparands): In unsigned QImode 23144 test, check for sign extended subreg and/or constant operands, and 23145 do a sign extend in that case. 23146 231472018-05-17 Steve Ellcey <sellcey@cavium.com> 23148 23149 * config/aarch64/thunderx2t99.md (thunderx2t99_ls_both): Delete. 23150 (thunderx2t99_multiple): Delete psuedo-units from used cpus. 23151 Add untyped. 23152 (thunderx2t99_alu_shift): Remove alu_shift_reg, alus_shift_reg. 23153 Change logics_shift_reg to logics_shift_imm. 23154 (thunderx2t99_fp_loadpair_basic): Delete. 23155 (thunderx2t99_fp_storepair_basic): Delete. 23156 (thunderx2t99_asimd_int): Add neon_sub and neon_sub_q types. 23157 (thunderx2t99_asimd_polynomial): Delete. 23158 (thunderx2t99_asimd_fp_simple): Add neon_fp_mul_s_scalar_q 23159 and neon_fp_mul_d_scalar_q. 23160 (thunderx2t99_asimd_fp_conv): Add *int_to_fp* types. 23161 (thunderx2t99_asimd_misc): Delete neon_dup and neon_dup_q. 23162 (thunderx2t99_asimd_recip_step): Add missing *sqrt* types. 23163 (thunderx2t99_asimd_lut): Add missing tbl types. 23164 (thunderx2t99_asimd_ext): Delete. 23165 (thunderx2t99_asimd_load1_1_mult): Delete. 23166 (thunderx2t99_asimd_load1_2_mult): Delete. 23167 (thunderx2t99_asimd_load1_ldp): New. 23168 (thunderx2t99_asimd_load1): New. 23169 (thunderx2t99_asimd_load2): Add missing *load2* types. 23170 (thunderx2t99_asimd_load3): New. 23171 (thunderx2t99_asimd_load4): New. 23172 (thunderx2t99_asimd_store1_1_mult): Delete. 23173 (thunderx2t99_asimd_store1_2_mult): Delete. 23174 (thunderx2t99_asimd_store2_mult): Delete. 23175 (thunderx2t99_asimd_store2_onelane): Delete. 23176 (thunderx2t99_asimd_store_stp): New. 23177 (thunderx2t99_asimd_store1): New. 23178 (thunderx2t99_asimd_store2): New. 23179 (thunderx2t99_asimd_store3): New. 23180 (thunderx2t99_asimd_store4): New. 23181 231822018-05-17 Jerome Lambourg <lambourg@adacore.com> 23183 23184 * config/arm/arm_cmse.h (cmse_nsfptr_create, cmse_is_nsfptr): Remove 23185 #include <stdint.h>. Replace intptr_t with __INTPTR_TYPE__. 23186 231872018-05-17 Pat Haugen <pthaugen@us.ibm.com> 23188 Segher Boessenkool <segher@kernel.crashing.org> 23189 23190 PR target/85698 23191 * config/rs6000/rs6000.c (rs6000_output_move_128bit): Check dest 23192 operand. 23193 231942018-05-17 Richard Biener <rguenther@suse.de> 23195 23196 * tree-ssa-dse.c (dse_classify_store): Fix iterator increment 23197 for pruning loop and prune defs feeding only already visited PHIs. 23198 231992018-05-17 Richard Biener <rguenther@suse.de> 23200 23201 * tree-ssa-sccvn.c (vn_reference_lookup_3): Improve memset handling. 23202 232032018-05-17 Bin Cheng <bin.cheng@arm.com> 23204 Richard Biener <rguenther@suse.de> 23205 23206 PR tree-optimization/85793 23207 * tree-vect-stmts.c (vectorizable_load): Handle 1 element-wise load 23208 for VMAT_ELEMENTWISE. 23209 232102018-05-17 Richard Sandiford <richard.sandiford@linaro.org> 23211 23212 * internal-fn.h (lookup_internal_fn): Declare 23213 * internal-fn.c (lookup_internal_fn): New function. 23214 * gimple.c (gimple_build_call_from_tree): Handle calls to 23215 internal functions. 23216 * gimple-pretty-print.c (dump_gimple_call): Print "." before 23217 internal function names. 23218 * tree-pretty-print.c (dump_generic_node): Likewise. 23219 * tree-ssa-scopedtables.c (expr_hash_elt::print): Likewise. 23220 232212018-05-17 Richard Sandiford <richard.sandiford@linaro.org> 23222 23223 * gimple-fold.h (gimple_build): Make the function forms take 23224 combined_fn rather than built_in_function. 23225 (gimple_simplify): Likewise. 23226 * gimple-match-head.c (gimple_simplify): Likewise. 23227 * gimple-fold.c (gimple_build): Likewise. 23228 * tree-vect-loop.c (get_initial_def_for_reduction): Use gimple_build 23229 rather than gimple_build_call_internal. 23230 (get_initial_defs_for_reduction): Likewise. 23231 (vect_create_epilog_for_reduction): Likewise. 23232 (vectorizable_live_operation): Likewise. 23233 232342018-05-17 Martin Liska <mliska@suse.cz> 23235 23236 * gimple-ssa-sprintf.c (format_directive): Do not use 23237 space in between 'G_' and '('. 23238 232392018-05-17 Jakub Jelinek <jakub@redhat.com> 23240 23241 PR target/85323 23242 * config/i386/i386.c (ix86_fold_builtin): Handle masked shifts 23243 even if the mask is not all ones. 23244 23245 PR target/85323 23246 * config/i386/i386.c (ix86_fold_builtin): Fold shift builtins by 23247 vector. 23248 (ix86_gimple_fold_builtin): Likewise. 23249 23250 PR target/85323 23251 * config/i386/i386.c: Include tree-vector-builder.h. 23252 (ix86_vector_shift_count): New function. 23253 (ix86_fold_builtin): Fold shift builtins by scalar count. 23254 (ix86_gimple_fold_builtin): Likewise. 23255 23256 * config/i386/avx512fintrin.h (_mm512_set_epi16, _mm512_set_epi8, 23257 _mm512_setzero): New intrinsics. 23258 232592018-05-17 James Greenhalgh <james.greenhalgh@arm.com> 23260 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 23261 23262 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify 23263 code generation for cases where splatting a value is not useful. 23264 * simplify-rtx.c (simplify_ternary_operation): Simplify 23265 vec_merge across a vec_duplicate and a paradoxical subreg forming 23266 a vector mode to a vec_concat. 23267 232682018-05-17 Olga Makhotina <olga.makhotina@intel.com> 23269 23270 * config.gcc: Support "goldmont-plus". 23271 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 23272 "goldmont-plus". 23273 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 23274 PROCESSOR_GOLDMONT_PLUS. 23275 * config/i386/i386.c (m_GOLDMONT_PLUS): Define. 23276 (processor_target_table): Add "goldmont-plus". 23277 (PTA_GOLDMONT_PLUS): Define. 23278 (ix86_lea_outperforms): Add TARGET_GOLDMONT_PLUS. 23279 (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT_PLUS. 23280 (fold_builtin_cpu): Add M_INTEL_GOLDMONT_PLUS. 23281 (fold_builtin_cpu): Add "goldmont-plus". 23282 (ix86_add_stmt_cost): Add TARGET_GOLDMONT_PLUS. 23283 (ix86_option_override_internal): Add "goldmont-plus". 23284 * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT_PLUS. 23285 (processor_type): Add PROCESSOR_GOLDMONT_PLUS. 23286 * config/i386/x86-tune.def: Add m_GOLDMONT_PLUS. 23287 * doc/invoke.texi: Add goldmont-plus as x86 -march=/-mtune= CPU type. 23288 232892018-05-17 Richard Biener <rguenther@suse.de> 23290 23291 PR tree-optimization/85757 23292 * tree-ssa-dse.c (dse_classify_store): Record a PHI def and 23293 remove defs that only feed that PHI from further processing. 23294 232952018-05-16 Jim Wilson <jimw@sifive.com> 23296 23297 * config/riscv/riscv.md (<optab>si3_mask, <optab>si3_mask_1): Prepend 23298 asterisk to name. 23299 (<optab>di3_mask, <optab>di3_mask_1): Likewise. 23300 233012018-05-16 Mark Wielaard <mark@klomp.org> 23302 23303 * dwarf2out.c (count_index_strings): New function. 23304 (output_indirect_strings): Call count_index_strings and generate 23305 header for dwarf_version >= 5. 23306 233072018-05-16 Mark Wielaard <mark@klomp.org> 23308 23309 * dwarf2out.c (dwarf_FORM): New function. 23310 (set_indirect_string): Use dwarf_FORM. 23311 (reset_indirect_string): Likewise. 23312 (size_of_die): Likewise. 23313 (value_format): Likewise. 23314 (output_die): Likewise. 23315 (add_skeleton_AT_string): Likewise. 23316 (output_macinfo_op): Likewise. 23317 (index_string): Likewise. 23318 (output_index_string_offset): Likewise. 23319 (output_index_string): Likewise. 23320 (count_index_strings): Likewise. 23321 233222018-05-16 Carl Love <cel@us.ibm.com> 23323 23324 * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions 23325 dcbt and dcbtstt with TH=16 if operands[2] is 0 and Power 8 or newer. 23326 233272018-05-16 Martin Jambor <mjambor@suse.cz> 23328 23329 * ipa-prop.c (ipa_free_all_edge_args): Remove. 23330 * ipa-prop.h (ipa_free_all_edge_args): Likewise. 23331 233322018-05-16 Wilco Dijkstra <wdijkstr@arm.com> 23333 23334 * config/aarch64/aarch64.md (fma<mode>4): Change into expand pattern. 23335 (fnma<mode>4): Likewise. 23336 (fms<mode>4): Likewise. 23337 (fnms<mode>4): Likewise. 23338 (aarch64_fma<mode>4): Rename insn, reorder accumulator operand. 23339 (aarch64_fnma<mode>4): Likewise. 23340 (aarch64_fms<mode>4): Likewise. 23341 (aarch64_fnms<mode>4): Likewise. 23342 (aarch64_fnmadd<mode>4): Likewise. 23343 233442018-05-16 Jason Merrill <jason@redhat.com> 23345 23346 * tree.c (warn_deprecated_use): Return bool. Simplify logic. 23347 233482018-05-16 Richard Biener <rguenther@suse.de> 23349 23350 * tree-vectorizer.h (struct stmt_info_for_cost): Add where member. 23351 (dump_stmt_cost): Declare. 23352 (add_stmt_cost): Dump cost we add. 23353 (add_stmt_costs): New function. 23354 (vect_model_simple_cost, vect_model_store_cost, vect_model_load_cost): 23355 No longer exported. 23356 (vect_analyze_stmt): Adjust prototype. 23357 (vectorizable_condition): Likewise. 23358 (vectorizable_live_operation): Likewise. 23359 (vectorizable_reduction): Likewise. 23360 (vectorizable_induction): Likewise. 23361 * tree-vect-loop.c (vect_analyze_loop_operations): Create local 23362 cost vector to pass to vectorizable_ and record afterwards. 23363 (vect_model_reduction_cost): Take cost vector argument and adjust. 23364 (vect_model_induction_cost): Likewise. 23365 (vectorizable_reduction): Likewise. 23366 (vectorizable_induction): Likewise. 23367 (vectorizable_live_operation): Likewise. 23368 * tree-vect-slp.c (vect_create_new_slp_node): Initialize 23369 SLP_TREE_NUMBER_OF_VEC_STMTS. 23370 (vect_analyze_slp_cost_1): Remove. 23371 (vect_analyze_slp_cost): Likewise. 23372 (vect_slp_analyze_node_operations): Take visited args and 23373 a target cost vector. Avoid processing already visited stmt sets. 23374 (vect_slp_analyze_operations): Use a local cost vector to gather 23375 costs and register those of non-discarded instances. 23376 (vect_bb_vectorization_profitable_p): Use add_stmt_costs. 23377 (vect_schedule_slp_instance): Remove copying of 23378 SLP_TREE_NUMBER_OF_VEC_STMTS. Instead assert that it is not 23379 zero. 23380 * tree-vect-stmts.c (record_stmt_cost): Remove path directly 23381 adding cost. Record cost entry location. 23382 (vect_prologue_cost_for_slp_op): Function to compute cost of 23383 a constant or invariant generated for SLP vect in the prologue, 23384 split out from vect_analyze_slp_cost_1. 23385 (vect_model_simple_cost): Make static. Adjust for SLP costing. 23386 (vect_model_promotion_demotion_cost): Likewise. 23387 (vect_model_store_cost): Likewise, make static. 23388 (vect_model_load_cost): Likewise. 23389 (vectorizable_bswap): Add cost vector arg and adjust. 23390 (vectorizable_call): Likewise. 23391 (vectorizable_simd_clone_call): Likewise. 23392 (vectorizable_conversion): Likewise. 23393 (vectorizable_assignment): Likewise. 23394 (vectorizable_shift): Likewise. 23395 (vectorizable_operation): Likewise. 23396 (vectorizable_store): Likewise. 23397 (vectorizable_load): Likewise. 23398 (vectorizable_condition): Likewise. 23399 (vectorizable_comparison): Likewise. 23400 (can_vectorize_live_stmts): Likewise. 23401 (vect_analyze_stmt): Likewise. 23402 (vect_transform_stmt): Adjust calls to vectorizable_*. 23403 * tree-vectorizer.c: Include gimple-pretty-print.h. 23404 (dump_stmt_cost): New function. 23405 234062018-05-16 Richard Biener <rguenther@suse.de> 23407 23408 * params.def (PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE): New param. 23409 * doc/invoke.texi (dse-max-alias-queries-per-store): Document. 23410 * tree-ssa-dse.c: Include tree-ssa-loop.h. 23411 (check_name): New callback. 23412 (dse_classify_store): Track cycles via a visited bitmap of PHI 23413 defs and simplify handling of in-loop and across loop dead stores 23414 and properly fail for loop-variant refs. Handle byte-tracking with 23415 multiple defs. Use PARAM_DSE_MAX_ALIAS_QUERIES_PER_STORE for 23416 limiting the walk. 23417 234182018-05-16 Richard Sandiford <richard.sandiford@linaro.org> 23419 23420 * tree-vectorizer.h (vect_get_vector_types_for_stmt): Declare. 23421 (vect_get_mask_type_for_stmt): Likewise. 23422 * tree-vect-slp.c (vect_two_operations_perm_ok_p): New function, 23423 split out from... 23424 (vect_build_slp_tree_1): ...here. Use vect_get_vector_types_for_stmt 23425 to determine the statement's vector type and the vector type that 23426 should be used for calculating nunits. Deal with cases in which 23427 the type has to be deferred. 23428 (vect_slp_analyze_node_operations): Use vect_get_vector_types_for_stmt 23429 and vect_get_mask_type_for_stmt to calculate STMT_VINFO_VECTYPE. 23430 * tree-vect-loop.c (vect_determine_vf_for_stmt_1) 23431 (vect_determine_vf_for_stmt): New functions, split out from... 23432 (vect_determine_vectorization_factor): ...here. 23433 * tree-vect-stmts.c (vect_get_vector_types_for_stmt) 23434 (vect_get_mask_type_for_stmt): New functions, split out from 23435 vect_determine_vectorization_factor. 23436 234372018-05-16 Richard Biener <rguenther@suse.de> 23438 23439 * tree-cfg.c (verify_gimple_assign_ternary): Properly 23440 verify the [VEC_]COND_EXPR embedded comparison. 23441 234422018-05-15 Martin Sebor <msebor@redhat.com> 23443 23444 PR tree-optimization/85753 23445 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Handle 23446 RECORD_TYPE in addition to ARRAY_TYPE. 23447 234482018-05-15 Martin Sebor <msebor@redhat.com> 23449 23450 PR middle-end/85643 23451 * calls.c (get_attr_nonstring_decl): Handle MEM_REF. 23452 234532018-05-15 Richard Biener <rguenther@suse.de> 23454 23455 * tree-ssa-dse.c (dse_classify_store): Remove use_stmt parameter, 23456 add by_clobber_p one. Change algorithm to collect all defs 23457 representing uses we need to walk and try reducing them to 23458 a single one before failing. 23459 (dse_dom_walker::dse_optimize_stmt): Adjust. 23460 234612018-05-13 Mark Wielaard <mark@klomp.org> 23462 23463 * dwarf2out.c (dwarf_OP): Handle DW_OP_addrx and DW_OP_constx. 23464 (size_of_loc_descr): Likewise. 23465 (output_loc_operands): Likewise. 23466 (output_loc_operands_raw): Likewise. 23467 (dw_addr_op): Use dwarf_OP () for DW_OP_constx and DW_OP_addrx. 23468 (resolve_addr_in_expr): Handle DW_OP_addrx and DW_OP_constx. 23469 (hash_loc_operands): Likewise. 23470 (compare_loc_operands): Likewise. 23471 234722018-05-14 Mark Wielaard <mark@klomp.org> 23473 23474 * dwarf2out.c (count_index_addrs): New function. 23475 (dwarf2out_finish): Use count_index_addrs to calculate addrs_length. 23476 234772018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 23478 23479 PR tree-optimization/83648 23480 * ipa-pure-const.c (malloc_candidate_p): Allow function with NULL 23481 return value as malloc candidate. 23482 234832018-05-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 23484 23485 PR ipa/85734 23486 * ipa-pure-const.c (warn_function_malloc): Pass value of known_finite 23487 param as true in call to suggest_attribute. 23488 234892018-05-14 Segher Boessenkool <segher@kernel.crashing.org> 23490 23491 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete @itemx for 23492 -mreadonly-in-sdata. 23493 234942018-05-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 23495 23496 * config/aarch64/aarch64-simd.md (*aarch64_crypto_aese_fused): 23497 New pattern. 23498 (aarch64_crypto_aesd_fused): Likewise. 23499 235002018-05-14 Wilco Dijkstra <wdijkstr@arm.com> 23501 23502 * config/aarch64/aarch64.md (mov<mode>): Remove '*' in alternatives. 23503 (movsi_aarch64): Likewise. 23504 (load_pairsi): Likewise. 23505 (load_pairdi): Likewise. 23506 (store_pairsi): Likewise. 23507 (store_pairdi): Likewise. 23508 (load_pairsf): Likewise. 23509 (load_pairdf): Likewise. 23510 (store_pairsf): Likewise. 23511 (store_pairdf): Likewise. 23512 (zero_extend): Likewise. 23513 (trunc): Swap alternatives. 23514 (fcvt_target): Add '?' to prefer w over r. 23515 235162018-05-14 Jakub Jelinek <jakub@redhat.com> 23517 23518 PR target/85756 23519 * config/i386/i386.md: Disallow non-commutative arithmetics in 23520 last twpeephole for mem {+,-,&,|,^}= x; mem != 0 after cmpelim 23521 optimization. Use COMMUTATIVE_ARITH_P test rather than != MINUS 23522 in the peephole2 before it. 23523 235242018-05-14 Sebastian Peryt <sebastian.peryt@intel.com> 23525 23526 * common/config/i386/i386-common.c (OPTION_MASK_ISA_CLDEMOTE_SET, 23527 OPTION_MASK_ISA_CLDEMOTE_UNSET): New defines. 23528 (ix86_handle_option): Handle -mcldemote. 23529 * config.gcc: New header. 23530 * config/i386/cldemoteintrin.h: New file. 23531 * config/i386/cpuid.h (bit_CLDEMOTE): New bit. 23532 * config/i386/driver-i386.c (host_detect_local_cpu): Detect 23533 -mcldemote. 23534 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 23535 OPTION_MASK_ISA_CLDEMOTE. 23536 * config/i386/i386.c (ix86_target_string): Add -mcldemote. 23537 (ix86_valid_target_attribute_inner_p): Ditto. 23538 (enum ix86_builtins): Add IX86_BUILTIN_CLDEMOTE. 23539 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_cldemote. 23540 (ix86_expand_builtin): Expand IX86_BUILTIN_CLDEMOTE. 23541 * config/i386/i386.h (TARGET_CLDEMOTE, TARGET_CLDEMOTE_P): New. 23542 * config/i386/i386.md (UNSPECV_CLDEMOTE): New. 23543 (cldemote): New. 23544 * config/i386/i386.opt: Add -mcldemote. 23545 * config/i386/x86intrin.h: New header. 23546 * doc/invoke.texi: Add -mcldemote. 23547 235482018-05-14 Richard Biener <rguenther@suse.de> 23549 23550 * doc/match-and-simplify.texi: Adjust :s documentation. 23551 235522018-05-14 Alexander Monakov <amonakov@ispras.ru> 23553 23554 * sort.cc (REORDER_23): Pass the type for the temporaries instead of 23555 intended memcpy size. 23556 (REORDER_45): Likewise. 23557 235582018-05-13 Alexander Monakov <amonakov@ispras.ru> 23559 23560 * sort.cc: New file. 23561 * system.h [!CHECKING_P] (qsort): Redirect to gcc_qsort. 23562 * vec.c (qsort_chk): Use gcc_qsort. 23563 * Makefile.in (OBJS-libcommon): Add sort.o. 23564 (build/sort.o): New target. Use it... 23565 (BUILD_RTL): ... here, and... 23566 (build/gencfn-macros): ... here, and... 23567 (build/genmatch): ... here. 23568 235692018-05-13 Kito Cheng <kito.cheng@gmail.com> 23570 Chung-Ju Wu <jasonwucj@gmail.com> 23571 23572 * config.gcc (nds32*-*-*): Check that n15 is valid to --with-cpu. 23573 * config/nds32/nds32-graywolf.md: New file. 23574 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_GRAYWOLF. 23575 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n15 23576 pipeline. 23577 * config/nds32/nds32-protos.h: More declarations for n15 pipeline. 23578 * config/nds32/nds32-utils.c: More implementations for n15 pipeline. 23579 * config/nds32/nds32.md (pipeline_model): Add graywolf. 23580 * config/nds32/nds32.opt (mcpu): Support n15 pipeline cpus. 23581 * config/nds32/pipelines.md: Include n15 settings. 23582 235832018-05-13 Kito Cheng <kito.cheng@gmail.com> 23584 Chung-Ju Wu <jasonwucj@gmail.com> 23585 23586 * config.gcc (nds32*-*-*): Check that n12/n13 are valid to --with-cpu. 23587 * config/nds32/nds32-n13.md: New file. 23588 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N12 and CPU_N13. 23589 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n12/n13 23590 pipeline. 23591 * config/nds32/nds32-protos.h: More declarations for n12/n13 pipeline. 23592 * config/nds32/nds32.md (pipeline_model): Add n13. 23593 * config/nds32/nds32.opt (mcpu): Support n12/n13 pipeline cpus. 23594 * config/nds32/pipelines.md: Include n13 settings. 23595 235962018-05-13 Kito Cheng <kito.cheng@gmail.com> 23597 Chung-Ju Wu <jasonwucj@gmail.com> 23598 23599 * config.gcc (nds32*-*-*): Check that n10/d10 are valid to --with-cpu. 23600 * config/nds32/nds32-n10.md: New file. 23601 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N10. 23602 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n10 23603 pipeline. 23604 * config/nds32/nds32-protos.h: More declarations for n10 pipeline. 23605 * config/nds32/nds32-utils.c: More implementations for n10 pipeline. 23606 * config/nds32/nds32.md (pipeline_model): Add n10. 23607 * config/nds32/nds32.opt (mcpu): Support n10 pipeline cpus. 23608 * config/nds32/pipelines.md: Include n10 settings. 23609 236102018-05-13 Monk Chiang <sh.chiang04@gmail.com> 23611 Kito Cheng <kito.cheng@gmail.com> 23612 Chung-Ju Wu <jasonwucj@gmail.com> 23613 23614 * config.gcc (nds32be-*-*): Handle --with-ext-dsp. 23615 * config/nds32/constants.md (unspec_element, unspec_volatile_element): 23616 Add enum values for DSP extension instructions. 23617 * config/nds32/constraints.md (Iu06, IU06, CVp5, CVs5, CVs2, CVhi): 23618 New constraints. 23619 * config/nds32/iterators.md (shifts, shiftrt, sat_plus, all_plus, 23620 sat_minus, all_minus, plus_minus, extend, sumax, sumin, sumin_max): 23621 New code iterators. 23622 (su, zs, uk, opcode, add_rsub, add_sub): New code attributes. 23623 * config/nds32/nds32-dspext.md: New file for DSP implementation. 23624 * config/nds32/nds32-intrinsic.c: Implementation of DSP extension. 23625 * config/nds32/nds32-intrinsic.md: Likewise. 23626 * config/nds32/nds32_intrinsic.h: Likewise. 23627 * config/nds32/nds32-md-auxiliary.c: Likewise. 23628 * config/nds32/nds32-memory-manipulation.c: Consider DSP extension. 23629 * config/nds32/nds32-predicates.c (const_vector_to_hwint): New. 23630 (nds32_valid_CVp5_p, nds32_valid_CVs5_p): New. 23631 (nds32_valid_CVs2_p, nds32_valid_CVhi_p): New. 23632 * config/nds32/nds32-protos.h: New declarations for DSP extension. 23633 * config/nds32/nds32-utils.c (extract_mac_non_acc_rtx): New case 23634 TYPE_DMAC in switch statement. 23635 * config/nds32/nds32.c: New checking and implementation for DSP 23636 extension instructions. 23637 * config/nds32/nds32.h: Likewise. 23638 * config/nds32/nds32.md: Likewise. 23639 * config/nds32/nds32.opt (mhw-abs, mext-dsp): New options. 23640 * config/nds32/predicates.md: Implement new predicates for DSP 23641 extension. 23642 236432018-05-11 Michael Meissner <meissner@linux.vnet.ibm.com> 23644 23645 * config/rs6000/rs6000.md (mov<mode>_softfloat, FMOVE32): 23646 Reformat alternatives and attributes so it is easier to identify 23647 which constraints/attributes go with which instruction. 23648 (mov<mode>_hardfloat32, FMOVE64): Likewise. 23649 (mov<mode>_softfloat32, FMOVE64): Likewise. 23650 (mov<mode>_hardfloat64, FMOVE64): Likewise. 23651 (mov<mode>_softfloat64, FMOVE64): Likewise. 23652 236532018-05-11 Kelvin Nilsen <kelvin@gcc.gnu.org> 23654 23655 * doc/extend.texi (PowerPC Built-in Functions): Rename this 23656 subsection. 23657 (Basic PowerPC Built-in Functions): The new name of the 23658 subsection previously known as "PowerPC Built-in Functions". 23659 (Basic PowerPC Built-in Functions Available on all Configurations): 23660 New subsubsection. 23661 (Basic PowerPC Built-in Functions Available on ISA 2.05): Likewise. 23662 (Basic PowerPC Built-in Functions Available on ISA 2.06): Likewise. 23663 (Basic PowerPC Built-in Functions Available on ISA 2.07): Likewise. 23664 (Basic PowerPC Built-in Functions Available on ISA 3.0): Likewise. 23665 236662018-05-11 Martin Jambor <mjambor@suse.cz> 23667 23668 PR ipa/85655 23669 * ipa-cp.c (intersect_with_plats): Check that the lattice contains 23670 single const. 23671 236722018-05-11 Richard Earnshaw <rearnsha@arm.com> 23673 23674 PR target/85733 23675 * config/arm/arm-cpus.in (fgroup ARMv6m): Add be8 feature. 23676 236772018-05-11 Sebastian Peryt <sebastian.peryt@intel.com> 23678 23679 * common/config/i386/i386-common.c (OPTION_MASK_ISA_WAITPKG_SET, 23680 OPTION_MASK_ISA_WAITPKG_UNSET): New defines. 23681 (ix86_handle_option): Handle -mwaitpkg. 23682 * config.gcc: New header. 23683 * config/i386/cpuid.h (bit_WAITPKG): New bit. 23684 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mwaitpkg. 23685 * config/i386/i386-builtin-types.def ((UINT8, UNSIGNED, UINT64)): New 23686 function type. 23687 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 23688 OPTION_MASK_ISA_WAITPKG. 23689 * config/i386/i386.c (ix86_target_string): Add -mwaitpkg. 23690 (ix86_option_override_internal): Add PTA_WAITPKG. 23691 (ix86_valid_target_attribute_inner_p): Add -mwaitpkg. 23692 (enum ix86_builtins): Add IX86_BUILTIN_UMONITOR, IX86_BUILTIN_UMWAIT, 23693 IX86_BUILTIN_TPAUSE. 23694 (ix86_init_mmx_sse_builtins): Define __builtin_ia32_umonitor, 23695 __builtin_ia32_umwait and __builtin_ia32_tpause. 23696 (ix86_expand_builtin): Expand IX86_BUILTIN_UMONITOR, 23697 IX86_BUILTIN_UMWAIT, IX86_BUILTIN_TPAUSE. 23698 * config/i386/i386.h (TARGET_WAITPKG, TARGET_WAITPKG_P): New. 23699 * config/i386/i386.md (UNSPECV_UMWAIT, UNSPECV_UMONITOR, 23700 UNSPECV_TPAUSE): New. 23701 (umwait, umwait_rex64, umonitor_<mode>, tpause, tpause_rex64): New. 23702 * config/i386/i386.opt: Add -mwaitpkg. 23703 * config/i386/waitpkgintrin.h: New file. 23704 * config/i386/x86intrin.h: New header. 23705 * doc/invoke.texi: Add -mwaitpkg. 23706 237072018-05-11 Richard Earnshaw <rearnsha@arm.com> 23708 23709 PR target/85606 23710 * config/arm/arm-cpus.in: Add comment that ARMv6-m and ARMv6S-m are now 23711 equivalent. 23712 (cortex-m0): Use armv6s-m isa. 23713 (cortex-m0plus): Likewise. 23714 (cortex-m1): Likewise. 23715 (cortex-m0.small-multiply): Likewise. 23716 (cortex-m0plus.small-multiply): Likewise. 23717 (cortex-m1.small-multiply): Likewise. 23718 237192018-05-11 Allan Sandfeld Jensen <allan.jensen@qt.io> 23720 Jakub Jelinek <jakub@redhat.com> 23721 23722 PR tree-optimization/85692 23723 * tree-ssa-forwprop.c (simplify_vector_constructor): Try two 23724 source permute as well. 23725 237262018-05-11 Martin Liska <mliska@suse.cz> 23727 23728 PR sanitizer/85556 23729 * doc/extend.texi: Document LLVM style format for no_sanitize 23730 attribute. 23731 237322018-05-10 Michael Meissner <meissner@linux.vnet.ibm.com> 23733 23734 * config/rs6000/rs6000.c (mode_supports_dq_form): Rename 23735 mode_supports_vsx_dform_quad to mode_supports_dq_form. 23736 (mode_supports_vsx_dform_quad): Likewise. 23737 (mode_supports_vmx_dform): Move these functions to be next to the 23738 other mode_supports functions. 23739 (mode_supports_dq_form): Likewise. 23740 (quad_address_p): Change calls of mode_supports_vsx_dform_quad to 23741 mode_supports_dq_form. 23742 (reg_offset_addressing_ok_p): Likewise. 23743 (offsettable_ok_by_alignment): Likewise. 23744 (rs6000_legitimate_offset_address_p): Likewise. 23745 (legitimate_lo_sum_address_p): Likewise. 23746 (rs6000_legitimize_address): Likewise. 23747 (rs6000_legitimize_reload_address): Likewise. 23748 (rs6000_secondary_reload_inner): Likewise. 23749 (rs6000_preferred_reload_class): Likewise. 23750 (rs6000_output_move_128bit): Likewise. 23751 237522018-05-10 Uros Bizjak <ubizjak@gmail.com> 23753 23754 * config/i386/i386.c (ix86_expand_builtin) <case IX86_BUILTIN_RDPID>: 23755 Generate SImode target register for null target. 23756 <case IX86_BUILTIN_XGETBV>: Ditto. 23757 <case IX86_BUILTIN_XSETBV>: Optimize LSHIFTRT generation. 23758 * config/i386/xsaveintrin.h (_xgetbv): Add missing return. 23759 237602018-05-10 Carl Love <cel@us.ibm.com> 23761 23762 * config/rs6000/rs6000.md (prefetch): Generate ISA 2.06 instructions 23763 dcbtt and dcbtstt if operands[2] is 0. 23764 237652018-05-10 Uros Bizjak <ubizjak@gmail.com> 23766 23767 PR target/85693 23768 * config/i386/sse.md (usadv64qi): New expander. 23769 237702018-05-10 Segher Boessenkool <segher@kernel.crashing.org> 23771 23772 * config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 23773 altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw): Remove 23774 -maltivec=be support. 23775 (vec_widen_umult_even_v16qi, vec_widen_smult_even_v16qi, 23776 vec_widen_umult_even_v8hi, vec_widen_smult_even_v8hi, 23777 vec_widen_umult_even_v4si, vec_widen_smult_even_v4si, 23778 vec_widen_umult_odd_v16qi, vec_widen_smult_odd_v16qi, 23779 vec_widen_umult_odd_v8hi, vec_widen_smult_odd_v8hi, 23780 vec_widen_umult_odd_v4si, vec_widen_smult_odd_v4si, altivec_vpkpx, 23781 altivec_vpks<VI_char>ss, altivec_vpks<VI_char>us, 23782 altivec_vpku<VI_char>us, altivec_vpku<VI_char>um, altivec_vsum2sws, 23783 altivec_vsumsws): Adjust. 23784 (altivec_vspltb *altivec_vspltb_internal, altivec_vsplth, 23785 *altivec_vsplth_internal, altivec_vspltw, *altivec_vspltw_internal, 23786 altivec_vspltsf, *altivec_vspltsf_internal): Remove -maltivec=be 23787 support. 23788 (altivec_vperm_<mode>, altivec_vperm_<mode>_uns, 23789 altivec_vupkhs<VU_char>, altivec_vupkls<VU_char>, altivec_vupkhpx, 23790 altivec_vupklpx, altivec_lvsl, altivec_lvsr): Adjust. 23791 (altivec_lve<VI_char>x): Delete expand. 23792 (*altivec_lve<VI_char>x_internal): Rename to... 23793 (altivec_lve<VI_char>x): ... this. 23794 (altivec_lvxl_<mode>): Delete expand. 23795 (*altivec_lvxl_<mode>_internal): Rename to ... 23796 (altivec_lvxl_<mode>): ... this. 23797 (altivec_stvxl_<mode>): Delete expand. 23798 (*altivec_stvxl_<mode>_internal): Rename to ... 23799 (altivec_stvxl_<mode>): ... this. 23800 (altivec_stve<VI_char>x): Delete expand. 23801 (*altivec_stve<VI_char>x_internal): Rename to ... 23802 (altivec_stve<VI_char>x): ... this. 23803 (doublee<mode>2, unsdoubleev4si2, doubleo<mode>2, unsdoubleov4si2, 23804 doubleh<mode>2, unsdoublehv4si2, doublel<mode>2, unsdoublelv4si2, 23805 reduc_plus_scal_<mode>): Adjust. 23806 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust 23807 comment. 23808 (rs6000_cpu_cpp_builtins): Adjust. 23809 (altivec_resolve_overloaded_builtin): Remove -maltivec=be support. 23810 * config/rs6000/rs6000-protos.h (altivec_expand_lvx_be, 23811 altivec_expand_stvx_be, altivec_expand_stvex_be): Delete. 23812 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove 23813 -maltivec=be support. 23814 (rs6000_split_vec_extract_var): Adjust. 23815 (rs6000_split_v4si_init): Adjust. 23816 (swap_selector_for_mode): Delete. 23817 (altivec_expand_lvx_be, altivec_expand_stvx_be, 23818 altivec_expand_stvex_be): Delete. 23819 (altivec_expand_lv_builtin, altivec_expand_stv_builtin): Remove 23820 -maltivec=be support. 23821 (rs6000_gimple_fold_builtin): Ditto. 23822 (rs6000_generate_float2_double_code, rs6000_generate_float2_code): 23823 Adjust. 23824 * config/rs6000/rs6000.h (VECTOR_ELT_ORDER_BIG): Delete. 23825 (TARGET_DIRECT_MOVE_64BIT): Adjust. 23826 * config/rs6000/rs6000.md (split for extendsidi2 for vectors): Adjust. 23827 * config/rs6000/rs6000.opt (maltivec=le, maltivec=be): Delete. 23828 * config/rs6000/vsx.md (floate<mode>, unsfloatev2di, floato<mode>, 23829 unsfloatov2di, vsignedo_v2df, vsignede_v2df, vunsignedo_v2df, 23830 vunsignede_v2df, vsx_extract_<mode>_p9, *vsx_extract_si, 23831 *vsx_extract_<mode>_p8, *vsx_extract_si_<uns>float_df, 23832 *vsx_extract_si_<uns>float_<mode>, vsx_set_<mode>_p9, vsx_set_v4sf_p9, 23833 *vsx_insert_extract_v4sf_p9, *vsx_insert_extract_v4sf_p9_2, and an 23834 anonymous split): Adjust. 23835 (vsx_mergel_<mode>, vsx_mergeh_<mode>): Remove -maltivec=be support. 23836 (vsx_xxspltd_<mode>, extract4b, insert4b): Adjust. 23837 238382018-05-10 Eric Botcazou <ebotcazou@adacore.com> 23839 23840 * configure.ac (gcc_gxx_include_dir_add_sysroot): Set it to 1 only 23841 when --with-gxx-include-dir is also specified. 23842 * configure: Regenerate. 23843 238442018-05-09 Jim Wilson <jimw@sifive.com> 23845 23846 PR target/84797 23847 * config.gcc (riscv*-*-*): Handle --with-multilib-list. 23848 * config/riscv/t-withmultilib: New. 23849 * config/riscv/withmultilib.h: New. 23850 * doc/install.texi: Document RISC-V --with-multilib-list support. 23851 238522018-05-09 Richard Biener <rguenther@suse.de> 23853 23854 * tree-vect-slp.c (vect_bb_slp_scalar_cost): Fill a cost 23855 vector. 23856 (vect_bb_vectorization_profitable_p): Adjust. Compute 23857 actual scalar cost using the cost vector and the add_stmt_cost 23858 machinery. 23859 238602018-05-09 Segher Boessenkool <segher@kernel.crashing.org> 23861 23862 PR rtl-optimization/85645 23863 * config/rs6000/rs6000.c (rs6000_emit_prologue_components): Put a SET 23864 in the REG_CFA_REGISTER note for LR, don't leave it empty. 23865 238662018-05-09 Segher Boessenkool <segher@kernel.crashing.org> 23867 23868 PR rtl-optimization/85645 23869 * shrink-wrap.c (spread_components): Return a boolean saying if 23870 anything was changed. 23871 (try_shrink_wrapping_separate): Iterate spread_components until 23872 nothing changes anymore. 23873 238742018-05-09 Segher Boessenkool <segher@kernel.crashing.org> 23875 23876 PR rtl-optimization/85645 23877 * regrename.c (build_def_use): Also kill the chains that include the 23878 destination of a REG_CFA_REGISTER note. 23879 238802018-05-09 Segher Boessenkool <segher@kernel.crashing.org> 23881 23882 PR rtl-optimization/85645 23883 * regcprop.c (copyprop_hardreg_forward_1): Don't propagate into an 23884 insn that has a REG_CFA_REGISTER note. 23885 238862018-05-09 Richard Sandiford <richard.sandiford@linaro.org> 23887 23888 * cfgexpand.c (expand_clobber): New function. 23889 (expand_gimple_stmt_1): Use it. 23890 * tree-vect-stmts.c (vect_clobber_variable): New function, 23891 split out from... 23892 (vectorizable_simd_clone_call): ...here. 23893 (vectorizable_store): Emit a clobber either side of an 23894 IFN_STORE_LANES sequence. 23895 (vectorizable_load): Emit a clobber after an IFN_LOAD_LANES sequence. 23896 238972018-05-09 Tom de Vries <tom@codesourcery.com> 23898 23899 PR target/85626 23900 * config/nvptx/nvptx.md (define_insn "trap", define_insn "trap_if_true") 23901 (define_insn "trap_if_false"): Add exit after trap. 23902 239032018-05-09 Eric Botcazou <ebotcazou@adacore.com> 23904 23905 PR rtl-optimization/85638 23906 * bb-reorder.c: Include common/common-target.h. 23907 (create_forwarder_block): New function extracted from... 23908 (fix_up_crossing_landing_pad): ...here. Rename into... 23909 (dw2_fix_up_crossing_landing_pad): ...this. 23910 (sjlj_fix_up_crossing_landing_pad): New function. 23911 (find_rarely_executed_basic_blocks_and_crossing_edges): In SJLJ mode, 23912 call sjlj_fix_up_crossing_landing_pad if there are incoming EH edges 23913 from both partitions and exit the loop after one iteration. 23914 239152018-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> 23916 23917 Revert: 23918 * doc/extend.texi (PowerPC Built-in Functions): Rename this 23919 subsection. 23920 (Basic PowerPC Built-in Functions): The new name of the 23921 subsection previously known as "PowerPC Built-in Functions". 23922 (Basic PowerPC Built-in Functions Available on all Configurations): 23923 New subsubsection. 23924 (Basic PowerPC Built-in Functions Available on ISA 2.05): New 23925 subsubsection. 23926 (Basic PowerPC Built-in Functions Available on ISA 2.06): New 23927 subsubsection. 23928 (Basic PowerPC Built-in Functions Available on ISA 2.07): New 23929 subsubsection. 23930 (Basic PowerPC Built-in Functions Available on ISA 3.0): New 23931 subsubsection. 23932 239332018-05-08 Jim Wilson <jimw@sifive.com> 23934 23935 * config/riscv/linux.h (MUSL_ABI_SUFFIX): Delete unnecessary backslash. 23936 (LD_EMUL_SUFFIX): New. 23937 (LINK_SPEC): Use it. 23938 239392018-05-08 Kelvin Nilsen <kelvin@gcc.gnu.org> 23940 23941 * doc/extend.texi (PowerPC Built-in Functions): Rename this 23942 subsection. 23943 (Basic PowerPC Built-in Functions): The new name of the 23944 subsection previously known as "PowerPC Built-in Functions". 23945 (Basic PowerPC Built-in Functions Available on all Configurations): 23946 New subsubsection. 23947 (Basic PowerPC Built-in Functions Available on ISA 2.05): New 23948 subsubsection. 23949 (Basic PowerPC Built-in Functions Available on ISA 2.06): New 23950 subsubsection. 23951 (Basic PowerPC Built-in Functions Available on ISA 2.07): New 23952 subsubsection. 23953 (Basic PowerPC Built-in Functions Available on ISA 3.0): New 23954 subsubsection. 23955 239562018-05-08 Jakub Jelinek <jakub@redhat.com> 23957 23958 PR target/85683 23959 * config/i386/i386.md: Add peepholes for mem {+,-,&,|,^}= x; mem != 0 23960 after cmpelim optimization. 23961 239622018-05-08 Olga Makhotina <olga.makhotina@intel.com> 23963 23964 * config.gcc: Support "goldmont". 23965 * config/i386/driver-i386.c (host_detect_local_cpu): Detect "goldmont". 23966 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 23967 PROCESSOR_GOLDMONT. 23968 * config/i386/i386.c (m_GOLDMONT): Define. 23969 (processor_target_table): Add "goldmont". 23970 (PTA_GOLDMONT): Define. 23971 (ix86_lea_outperforms): Add TARGET_GOLDMONT. 23972 (get_builtin_code_for_version): Handle PROCESSOR_GOLDMONT. 23973 (fold_builtin_cpu): Add M_INTEL_GOLDMONT. 23974 (fold_builtin_cpu): Add "goldmont". 23975 (ix86_add_stmt_cost): Add TARGET_GOLDMONT. 23976 (ix86_option_override_internal): Add "goldmont". 23977 * config/i386/i386.h (processor_costs): Define TARGET_GOLDMONT. 23978 (processor_type): Add PROCESSOR_GOLDMONT. 23979 * config/i386/i386.md: Add CPU "glm". 23980 * config/i386/glm.md: New file. 23981 * config/i386/x86-tune.def: Add m_GOLDMONT. 23982 * doc/invoke.texi: Add goldmont as x86 -march=/-mtune= CPU type. 23983 239842018-05-08 Jakub Jelinek <jakub@redhat.com> 23985 23986 PR target/85572 23987 * config/i386/i386.c (ix86_expand_sse2_abs): Handle E_V2DImode and 23988 E_V4DImode. 23989 * config/i386/sse.md (abs<mode>2): Use VI_AVX2 iterator instead of 23990 VI1248_AVX512VL_AVX512BW. Handle V2DImode and V4DImode if not 23991 TARGET_AVX512VL using ix86_expand_sse2_abs. Formatting fixes. 23992 23993 PR target/85317 23994 * config/i386/i386.c (ix86_fold_builtin): Handle 23995 IX86_BUILTIN_{,P}MOVMSK{PS,PD,B}{,128,256}. 23996 23997 PR target/85480 23998 * config/i386/sse.md (ssequaterinsnmode): New mode attribute. 23999 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): New pattern. 24000 240012018-05-08 Richard Earnshaw <rearnsha@arm.com> 24002 24003 PR target/85658 24004 * config/arm/parsecpu.awk (check_cpu): Fix operator precedence. 24005 (check_arch): Likewise. 24006 (check_fpu): Return the result rather than printing it. 24007 (end arch): Fix operator precedence. 24008 (end cpu): Likewise. 24009 (END): Print the result from check_fpu. 24010 240112018-05-08 Richard Sandiford <richard.sandiford@linaro.org> 24012 Alan Hayward <alan.hayward@arm.com> 24013 David Sherwood <david.sherwood@arm.com> 24014 24015 * config/aarch64/aarch64-sve.md (*pred_cmp<cmp_op><mode>_combine) 24016 (*pred_cmp<cmp_op><mode>, *fcm<cmp_op><mode>_and_combine) 24017 (*fcmuo<mode>_and_combine, *fcm<cmp_op><mode>_and) 24018 (*fcmuo<mode>_and): New patterns. 24019 240202018-05-08 Richard Sandiford <richard.sandiford@linaro.org> 24021 24022 * config/aarch64/iterators.md (UNSPEC_COND_LO, UNSPEC_COND_LS) 24023 (UNSPEC_COND_HI, UNSPEC_COND_HS, UNSPEC_COND_UO): Delete. 24024 (SVE_INT_CMP, SVE_FP_CMP): New code iterators. 24025 (cmp_op, sve_imm_con): New code attributes. 24026 (SVE_COND_INT_CMP, imm_con): Delete. 24027 (cmp_op): Remove above unspecs from int attribute. 24028 * config/aarch64/aarch64-sve.md (*vec_cmp<cmp_op>_<mode>): Rename 24029 to... 24030 (*cmp<cmp_op><mode>): ...this. Use UNSPEC_MERGE_PTRUE instead of 24031 comparison-specific unspecs. 24032 (*vec_cmp<cmp_op>_<mode>_ptest): Rename to... 24033 (*cmp<cmp_op><mode>_ptest): ...this and adjust likewise. 24034 (*vec_cmp<cmp_op>_<mode>_cc): Rename to... 24035 (*cmp<cmp_op><mode>_cc): ...this and adjust likewise. 24036 (*vec_fcm<cmp_op><mode>): Rename to... 24037 (*fcm<cmp_op><mode>): ...this and adjust likewise. 24038 (*vec_fcmuo<mode>): Rename to... 24039 (*fcmuo<mode>): ...this and adjust likewise. 24040 (*pred_fcm<cmp_op><mode>): New pattern. 24041 * config/aarch64/aarch64.c (aarch64_emit_unop, aarch64_emit_binop) 24042 (aarch64_emit_sve_ptrue_op, aarch64_emit_sve_ptrue_op_cc): New 24043 functions. 24044 (aarch64_unspec_cond_code): Remove handling of LTU, GTU, LEU, GEU 24045 and UNORDERED. 24046 (aarch64_gen_unspec_cond, aarch64_emit_unspec_cond): Delete. 24047 (aarch64_emit_sve_predicated_cond): New function. 24048 (aarch64_expand_sve_vec_cmp_int): Use aarch64_emit_sve_ptrue_op_cc. 24049 (aarch64_emit_unspec_cond_or): Replace with... 24050 (aarch64_emit_sve_or_conds): ...this new function. Use 24051 aarch64_emit_sve_ptrue_op for the individual comparisons and 24052 aarch64_emit_binop to OR them together. 24053 (aarch64_emit_inverted_unspec_cond): Replace with... 24054 (aarch64_emit_sve_inverted_cond): ...this new function. Use 24055 aarch64_emit_sve_ptrue_op for the comparison and 24056 aarch64_emit_unop to invert the result. 24057 (aarch64_expand_sve_vec_cmp_float): Update after the above 24058 changes. Use aarch64_emit_sve_ptrue_op for native comparisons. 24059 240602018-05-07 Nathan Sidwell <nathan@acm.org> 24061 24062 * doc/invoke.texi (C++ Dialect Options): Remove -ffor-scope. 24063 * doc/extend.texi (Deprecated Features): Remove -fno-for-scope 24064 (Backwards Compatibility): Likewise. 24065 240662018-05-07 Luis Machado <luis.machado@linaro.org> 24067 24068 PR bootstrap/85681 24069 Revert: 24070 2018-05-07 Luis Machado <luis.machado@linaro.org> 24071 24072 * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) 24073 <prefetch_dynamic_strides>: New const bool field. 24074 * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include 24075 prefetch_dynamic_strides. 24076 (exynosm1_prefetch_tune): Likewise. 24077 (thunderxt88_prefetch_tune): Likewise. 24078 (thunderx_prefetch_tune): Likewise. 24079 (thunderx2t99_prefetch_tune): Likewise. 24080 (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides 24081 to false. 24082 (aarch64_override_options_internal): Update to set 24083 PARAM_PREFETCH_DYNAMIC_STRIDES. 24084 * doc/invoke.texi (prefetch-dynamic-strides): Document new option. 24085 * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. 24086 * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. 24087 * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for 24088 prefetch-dynamic-strides setting. 24089 24090 2018-05-07 Luis Machado <luis.machado@linaro.org> 24091 24092 * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) 24093 <minimum_stride>: New const int field. 24094 * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include 24095 minimum_stride field. 24096 (exynosm1_prefetch_tune): Likewise. 24097 (thunderxt88_prefetch_tune): Likewise. 24098 (thunderx_prefetch_tune): Likewise. 24099 (thunderx2t99_prefetch_tune): Likewise. 24100 (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. 24101 (aarch64_override_options_internal): Update to set 24102 PARAM_PREFETCH_MINIMUM_STRIDE. 24103 * doc/invoke.texi (prefetch-minimum-stride): Document new option. 24104 * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. 24105 * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. 24106 * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if 24107 stride is constant and is below the minimum stride threshold. 24108 241092018-05-07 Luis Machado <luis.machado@linaro.org> 24110 24111 * config/aarch64/aarch64.c (qdf24xx_prefetch_tune) <l2_cache_size>: Set 24112 to 512. 24113 241142018-05-07 Luis Machado <luis.machado@linaro.org> 24115 24116 * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) 24117 <prefetch_dynamic_strides>: New const bool field. 24118 * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include 24119 prefetch_dynamic_strides. 24120 (exynosm1_prefetch_tune): Likewise. 24121 (thunderxt88_prefetch_tune): Likewise. 24122 (thunderx_prefetch_tune): Likewise. 24123 (thunderx2t99_prefetch_tune): Likewise. 24124 (qdf24xx_prefetch_tune): Likewise. Set prefetch_dynamic_strides 24125 to false. 24126 (aarch64_override_options_internal): Update to set 24127 PARAM_PREFETCH_DYNAMIC_STRIDES. 24128 * doc/invoke.texi (prefetch-dynamic-strides): Document new option. 24129 * params.def (PARAM_PREFETCH_DYNAMIC_STRIDES): New. 24130 * params.h (PARAM_PREFETCH_DYNAMIC_STRIDES): Define. 24131 * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Account for 24132 prefetch-dynamic-strides setting. 24133 241342018-05-07 Luis Machado <luis.machado@linaro.org> 24135 24136 * config/aarch64/aarch64-protos.h (cpu_prefetch_tune) 24137 <minimum_stride>: New const int field. 24138 * config/aarch64/aarch64.c (generic_prefetch_tune): Update to include 24139 minimum_stride field. 24140 (exynosm1_prefetch_tune): Likewise. 24141 (thunderxt88_prefetch_tune): Likewise. 24142 (thunderx_prefetch_tune): Likewise. 24143 (thunderx2t99_prefetch_tune): Likewise. 24144 (qdf24xx_prefetch_tune): Likewise. Set minimum_stride to 2048. 24145 (aarch64_override_options_internal): Update to set 24146 PARAM_PREFETCH_MINIMUM_STRIDE. 24147 * doc/invoke.texi (prefetch-minimum-stride): Document new option. 24148 * params.def (PARAM_PREFETCH_MINIMUM_STRIDE): New. 24149 * params.h (PARAM_PREFETCH_MINIMUM_STRIDE): Define. 24150 * tree-ssa-loop-prefetch.c (should_issue_prefetch_p): Return false if 24151 stride is constant and is below the minimum stride threshold. 24152 241532018-05-06 Jakub Jelinek <jakub@redhat.com> 24154 24155 PR c++/85659 24156 * cfgexpand.c (expand_asm_stmt): Don't create a temporary if 24157 the type is addressable. Don't force op into register if it has 24158 BLKmode. 24159 241602018-05-05 Roland McGrath <mcgrathr@google.com> 24161 24162 PR other/77609 24163 * varasm.c (default_section_type_flags): Set SECTION_NOTYPE for 24164 any section for which we don't know a specific type it should have, 24165 regardless of name. Previously this was done only for the exact 24166 names ".init_array", ".fini_array", and ".preinit_array". 24167 (default_elf_asm_named_section): Add comment about 24168 relationship with default_section_type_flags and SECTION_NOTYPE. 24169 (get_section): Don't consider it a type conflict if one side has 24170 SECTION_NOTYPE and the other doesn't, as long as neither has the 24171 SECTION_BSS et al used in the default_section_type_flags logic. 24172 241732018-05-05 Tom de Vries <tom@codesourcery.com> 24174 24175 PR target/85653 24176 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_3): Define. 24177 (workaround_barsyncs): New function. 24178 (nvptx_reorg): Use workaround_barsyncs. 24179 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. 24180 (define_expand "nvptx_membar_cta"): New define_expand. 24181 (define_insn "*nvptx_membar_cta"): New insn. 24182 241832018-05-04 Pekka Jääskeläinen <pekka.jaaskelainen@parmance.com> 24184 24185 * brig-builtins.def: Add consts to ptrs etc. in BRIG builtin defs. 24186 To improve optimization opportunities. 24187 * builtin-types.def: The new needed builtin types for the above. 24188 241892018-05-04 Richard Biener <rguenther@suse.de> 24190 24191 * bb-reorder.c (sanitize_hot_paths): Release hot_bbs_to_check. 24192 * gimple-ssa-store-merging.c 24193 (imm_store_chain_info::output_merged_store): Remove redundant create, 24194 release split_store vector contents on failure. 24195 * tree-vect-slp.c (vect_schedule_slp_instance): Avoid leaking 24196 scalar stmt vector on cache hit. 24197 241982018-05-04 Segher Boessenkool <segher@kernel.crashing.org> 24199 24200 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Remove 24201 Xilinx FP support. 24202 * config.gcc (powerpc-xilinx-eabi*): Remove. 24203 * config/rs6000/predicates.md (easy_fp_constant): Remove Xilinx FP 24204 support. 24205 (fusion_addis_mem_combo_load): Ditto. 24206 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Remove Xilinx 24207 FP support. 24208 (rs6000_cpu_cpp_builtins): Ditto. 24209 * config/rs6000/rs6000-linux.c 24210 (rs6000_linux_float_exceptions_rounding_supported_p): Ditto. 24211 * config/rs6000/rs6000-opts.h (enum fpu_type_t): Delete. 24212 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Remove Xilinx FP 24213 support. 24214 (rs6000_setup_reg_addr_masks): Ditto. 24215 (rs6000_init_hard_regno_mode_ok): Ditto. 24216 (rs6000_option_override_internal): Ditto. 24217 (legitimate_lo_sum_address_p): Ditto. 24218 (rs6000_legitimize_address): Ditto. 24219 (rs6000_legitimize_reload_address): Ditto. 24220 (rs6000_legitimate_address_p): Ditto. 24221 (abi_v4_pass_in_fpr): Ditto. 24222 (setup_incoming_varargs): Ditto. 24223 (rs6000_gimplify_va_arg): Ditto. 24224 (rs6000_split_multireg_move): Ditto. 24225 (rs6000_savres_strategy): Ditto. 24226 (rs6000_emit_prologue_components): Ditto. 24227 (rs6000_emit_epilogue_components): Ditto. 24228 (rs6000_emit_prologue): Ditto. 24229 (rs6000_emit_epilogue): Ditto. 24230 (rs6000_elf_file_end): Ditto. 24231 (rs6000_function_value): Ditto. 24232 (rs6000_libcall_value): Ditto. 24233 * config/rs6000/rs6000.h: Ditto. 24234 (TARGET_MINMAX_SF, TARGET_MINMAX_DF): Delete, merge to ... 24235 (TARGET_MINMAX): ... this. New. 24236 (TARGET_SF_FPR, TARGET_DF_FPR, TARGET_SF_INSN, TARGET_DF_INSN): Delete. 24237 * config/rs6000/rs6000.md: Remove Xilinx FP support. 24238 (*movsi_internal1_single): Delete. 24239 * config/rs6000/rs6000.opt (msingle-float, mdouble-float, msimple-fpu, 24240 mfpu=, mxilinx-fpu): Delete. 24241 * config/rs6000/singlefp.h: Delete. 24242 * config/rs6000/sysv4.h: Remove Xilinx FP support. 24243 * config/rs6000/t-rs6000: Ditto. 24244 * config/rs6000/t-xilinx: Delete. 24245 * config/rs6000/titan.md: Adjust for fp_type removal. 24246 * config/rs6000/vsx.md: Remove Xilinx FP support. 24247 (VStype_simple): Delete. 24248 (VSfptype_simple, VSfptype_mul, VSfptype_div, VSfptype_sqrt): Delete. 24249 * config/rs6000/xfpu.h: Delete. 24250 * config/rs6000/xfpu.md: Delete. 24251 * config/rs6000/xilinx.h: Delete. 24252 * config/rs6000/xilinx.opt: Delete. 24253 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove 24254 -msingle-float, -mdouble-float, -msimple-fpu, -mfpu=, and -mxilinx-fpu. 24255 242562018-05-04 Tom de Vries <tom@codesourcery.com> 24257 24258 PR libgomp/85639 24259 * builtins.c (expand_builtin_goacc_parlevel_id_size): Handle null target 24260 if ignore == 0. 24261 242622018-05-04 Richard Biener <rguenther@suse.de> 24263 24264 PR middle-end/85627 24265 * tree-complex.c (update_complex_assignment): We are always in SSA form. 24266 (expand_complex_div_wide): Likewise. 24267 (expand_complex_operations_1): Likewise. 24268 (expand_complex_libcall): Preserve EH info of the original stmt. 24269 (tree_lower_complex): Handle removed blocks. 24270 * tree.c (build_common_builtin_nodes): Do not set ECF_NOTRHOW 24271 on complex multiplication and division libcall builtins. 24272 242732018-05-04 Richard Biener <rguenther@suse.de> 24274 24275 PR middle-end/85574 24276 * fold-const.c (negate_expr_p): Restrict negation of operand 24277 zero of a division to when we know that can happen without 24278 overflow. 24279 (fold_negate_expr_1): Likewise. 24280 242812018-05-04 Jakub Jelinek <jakub@redhat.com> 24282 24283 PR libstdc++/85466 24284 * real.h (real_nextafter): Declare. 24285 * real.c (real_nextafter): New function. 24286 * fold-const-call.c (fold_const_nextafter): New function. 24287 (fold_const_call_sss): Call it for CASE_CFN_NEXTAFTER and 24288 CASE_CFN_NEXTTOWARD. 24289 (fold_const_call_1): For CASE_CFN_NEXTTOWARD call fold_const_call_sss 24290 even when arg1_mode is different from arg0_mode. 24291 242922018-05-03 Nathan Sidwell <nathan@acm.org> 24293 24294 * doc/extend.texi (Deprecated Features): Remove 24295 -ffriend-injection. 24296 (Backwards Compatibility): Likewise. 24297 * doc/invoke.texi (C++ Language Options): Likewise. 24298 (C++ Dialect Options): Likewise. 24299 243002018-05-03 Jakub Jelinek <jakub@redhat.com> 24301 24302 PR target/85530 24303 * config/i386/avx512fintrin.h (_mm512_mullox_epi64, 24304 _mm512_mask_mullox_epi64): New intrinsics. 24305 243062018-05-03 Tom de Vries <tom@codesourcery.com> 24307 24308 PR testsuite/85106 24309 * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization 24310 dump files): Add offload-tree. 24311 243122018-05-03 Richard Biener <rguenther@suse.de> 24313 24314 PR tree-optimization/85615 24315 * tree-ssa-threadupdate.c (thread_block_1): Only allow exits 24316 to loops not nested in BBs loop father to avoid creating multi-entry 24317 loops. 24318 243192018-05-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24320 24321 PR tree-optimization/70291 24322 * tree-complex.c (expand_complex_libcall): Add type, inplace_p 24323 arguments. Change return type to tree. Emit libcall as a new 24324 statement rather than replacing existing one when inplace_p is true. 24325 (expand_complex_multiplication_components): New function. 24326 (expand_complex_multiplication): Expand floating-point complex 24327 multiplication using the above. 24328 (expand_complex_division): Rename inner_type parameter to type. 24329 Update expand_complex_libcall call-site. 24330 (expand_complex_operations_1): Update expand_complex_multiplication 24331 and expand_complex_division call-sites. 24332 243332018-05-02 Jakub Jelinek <jakub@redhat.com> 24334 24335 PR target/85582 24336 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, 24337 *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask, 24338 *<shift_insn><dwi>3_doubleword_mask_1): In condition require that 24339 the highest significant bit of the shift count mask is clear. In 24340 check whether and[sq]i3 is needed verify that all significant bits 24341 of the shift count other than the highest are set. 24342 243432018-05-02 Tom de Vries <tom@codesourcery.com> 24344 24345 PR libgomp/82428 24346 * builtins.def (DEF_GOACC_BUILTIN_ONLY): Define. 24347 * omp-builtins.def (BUILT_IN_GOACC_PARLEVEL_ID) 24348 (BUILT_IN_GOACC_PARLEVEL_SIZE): New builtin. 24349 * builtins.c (expand_builtin_goacc_parlevel_id_size): New function. 24350 (expand_builtin): Call expand_builtin_goacc_parlevel_id_size. 24351 * doc/extend.texi (Other Builtins): Add __builtin_goacc_parlevel_id and 24352 __builtin_goacc_parlevel_size. 24353 243542018-05-02 Richard Biener <rguenther@suse.de> 24355 24356 PR tree-optimization/85597 24357 * tree-vect-stmts.c (vectorizable_operation): For ternary SLP 24358 do not use split vect_get_vec_defs call but call vect_get_slp_defs 24359 directly. 24360 243612018-05-02 Tom de Vries <tom@codesourcery.com> 24362 24363 PR testsuite/85106 24364 * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization 24365 dump files): Add ltrans-tree. 24366 243672018-05-02 Tom de Vries <tom@codesourcery.com> 24368 24369 PR testsuite/85106 24370 * doc/sourcebuild.texi (Commands for use in dg-final, Scan optimization 24371 dump files): Add wpa-ipa. 24372 243732018-05-02 Segher Boessenkool <segher@kernel.crashing.org> 24374 24375 * config.gcc (powerpc*-*-*): Remove paired.h. Unsupport the 24376 powerpc*-*-linux*paired* target. 24377 * config/rs6000/750cl.h: Delete. 24378 * config/rs6000/paired.h: Delete. 24379 * config/rs6000/paired.md: Delete. 24380 * config/rs6000/predicates.md (easy_vector_constant): Remove paired 24381 float support. 24382 * config/rs6000/rs6000-builtin.def: Remove paired float support. 24383 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Update 24384 comment. Remove paired float support. 24385 * config/rs6000/rs6000-modes.def: Remove V2SF and V2SI. 24386 * config/rs6000/rs6000-opts.h (enum rs6000_vector): Delete 24387 VECTOR_PAIRED. 24388 * config/rs6000/rs6000-protos.h (paired_expand_vector_init, 24389 paired_emit_vector_cond_expr, paired_expand_vector_move): Delete 24390 declarations. 24391 * config/rs6000/rs6000.c: Remove paired float support. 24392 (paired_expand_vector_init, paired_expand_vector_move, 24393 paired_emit_vector_compare, paired_emit_vector_cond_expr, 24394 (paired_expand_lv_builtin, paired_expand_stv_builtin, 24395 paired_expand_builtin, paired_expand_predicate_builtin, 24396 paired_init_builtins): Delete. 24397 * config/rs6000/rs6000.h: Remove paired float support. 24398 * config/rs6000/rs6000.md: Remove paired float support. 24399 (move_from_CR_ov_bit): Delete. 24400 * config/rs6000/rs6000.opt (mpaired): Delete. 24401 * config/rs6000/t-rs6000: Remove paired.md from MD_INCLUDES. 24402 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mpaired. 24403 244042018-05-02 Richard Biener <rguenther@suse.de> 24405 24406 PR middle-end/85567 24407 * gimplify.c (gimplify_save_expr): When in SSA form allow 24408 SAVE_EXPRs to compute to SSA vars. 24409 244102018-05-02 Jakub Jelinek <jakub@redhat.com> 24411 24412 PR target/85582 24413 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask, 24414 *ashl<dwi>3_doubleword_mask_1, *<shift_insn><dwi>3_doubleword_mask, 24415 *<shift_insn><dwi>3_doubleword_mask_1): If and[sq]i3 is needed, don't 24416 clobber operands[2], instead use a new pseudo. Formatting fixes. 24417 244182018-05-02 Richard Sandiford <richard.sandiford@linaro.org> 24419 24420 PR tree-optimization/85586 24421 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): Only 24422 exit early for statements in the same group if the accesses are 24423 not strided. 24424 244252018-05-02 Tom de Vries <tom@codesourcery.com> 24426 24427 PR lto/85451 24428 * lto-wrapper.c (compile_offload_image): Add "could not find mkoffload" 24429 error message. 24430 244312018-05-01 Marc Glisse <marc.glisse@inria.fr> 24432 24433 PR tree-optimization/85143 24434 * match.pd (A<B&A<C): Extend to BIT_IOR_EXPR. 24435 244362018-05-01 Tom de Vries <tom@codesourcery.com> 24437 24438 PR lto/85451 24439 * config/nvptx/mkoffload.c (main): Suggest using -B in "offload compiler 24440 not found" error message. 24441 244422018-05-01 Tom de Vries <tom@codesourcery.com> 24443 24444 PR other/83786 24445 * vec.h (VEC_ORDERED_REMOVE_IF, VEC_ORDERED_REMOVE_IF_FROM_TO): Define. 24446 * vec.c (test_ordered_remove_if): New function. 24447 (vec_c_tests): Call test_ordered_remove_if. 24448 * dwarf2cfi.c (connect_traces): Use VEC_ORDERED_REMOVE_IF_FROM_TO. 24449 * lto-streamer-out.c (prune_offload_funcs): Use VEC_ORDERED_REMOVE_IF. 24450 * tree-vect-patterns.c (vect_pattern_recog_1): Use 24451 VEC_ORDERED_REMOVE_IF. 24452 244532018-05-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 24454 24455 PR tree-optimization/82665 24456 * vr-values.c (vr_values::extract_range_from_binary_expr): Handle 24457 pointer subtraction where arguments come from a memchr call. 24458 244592018-05-01 Jakub Jelinek <jakub@redhat.com> 24460 24461 * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use 24462 --push-state --as-needed and --pop-state instead of --as-needed and 24463 --no-as-needed if ld supports it. 24464 * configure: Regenerated. 24465 24466 PR web/85578 24467 * doc/install.texi2html: Replace _002d with - and _002a with * in 24468 generated html files using sed. 24469 244702018-04-30 David Malcolm <dmalcolm@redhat.com> 24471 24472 PR c++/85523 24473 * gcc-rich-location.c (blank_line_before_p): New function. 24474 (use_new_line): New function. 24475 (gcc_rich_location::add_fixit_insert_formatted): New function. 24476 * gcc-rich-location.h 24477 (gcc_rich_location::add_fixit_insert_formatted): New function. 24478 244792018-04-30 David Malcolm <dmalcolm@redhat.com> 24480 24481 * selftest.c (assert_streq): Rename "expected" and "actual" to 24482 "val1" and "val2". Extend NULL-handling to cover both inputs 24483 symmetrically, while still requiring both to be non-NULL for a pass. 24484 * selftest.h (assert_streq): Rename "expected" and "actual" to 24485 "val1" and "val2". 24486 (ASSERT_EQ): Likewise. 24487 (ASSERT_EQ_AT): Likewise. 24488 (ASSERT_KNOWN_EQ): Likewise. 24489 (ASSERT_KNOWN_EQ_AT): Likewise. 24490 (ASSERT_NE): Likewise. 24491 (ASSERT_MAYBE_NE): Likewise. 24492 (ASSERT_MAYBE_NE_AT): Likewise. 24493 (ASSERT_STREQ): Likewise. Clarify that both must be non-NULL for 24494 the assertion to pass. 24495 (ASSERT_STREQ_AT): Likewise. 24496 244972018-04-30 Jonathan Wakely <jwakely@redhat.com> 24498 24499 * doc/invoke.texi (-fpie, -fPIE): Fix grammar and clarify 24500 interaction with -pie. 24501 245022018-04-30 David Malcolm <dmalcolm@redhat.com> 24503 24504 * selftest.h: Fix alphabetization of per-source-file selftest 24505 declarations. 24506 245072018-04-30 Jason Merrill <jason@redhat.com> 24508 24509 PR c++/61982 - dead stores to destroyed objects. 24510 * gimplify.c (gimplify_modify_expr): Simplify complex lvalue on LHS 24511 of clobber. 24512 245132018-04-30 Jason Merrill <jason@redhat.com> 24514 24515 * tree.c (build_clobber): New. 24516 * tree.h: Declare it. 24517 * gimplify.c (gimplify_bind_expr, gimplify_target_expr): Use it. 24518 245192018-04-30 David Malcolm <dmalcolm@redhat.com> 24520 24521 * diagnostic-show-locus.c (layout::layout): Update for 24522 location_get_source_line returning a char_span. 24523 (struct char_span): Move to input.h. 24524 (struct correction): Update for fields in char_span becoming 24525 private. 24526 (struct source_line): Update for location_get_source_line 24527 returning a char_span. 24528 (layout::print_line): Likewise. 24529 * edit-context.c (edited_file::print_content): Likewise. 24530 (edited_file::print_diff_hunk): Likewise. 24531 (edited_file::print_run_of_changed_lines): Likewise. 24532 (edited_file::get_num_lines): Likewise. 24533 (edited_line::edited_line): Likewise. 24534 * final.c (asm_show_source): Likewise. 24535 * input.c (location_get_source_line): Convert return type 24536 from const char * to char_span, losing the final "line_len" 24537 param. 24538 (dump_location_info): Update for the above. 24539 (get_substring_ranges_for_loc): Likewise. Use a char_span 24540 when handling the literal within the line. 24541 (test_reading_source_line): Update for location_get_source_line 24542 returning a char_span. 24543 * input.h (class char_span): Move here from 24544 diagnostic-show-locus.c, converting from a struct to a class. 24545 Make data members private. 24546 (char_span::operator bool): New. 24547 (char_span::length): New. 24548 (char_span::get_buffer): New. 24549 (char_span::operator[]): New. 24550 (char_span::subspan): Make const. 24551 (char_span::xstrdup): New. 24552 (location_get_source_line): Convert return type from const char * 24553 to char_span, losing the final "line_size" param. 24554 245552018-04-30 Jan Hubicka <jh@suse.cz> 24556 24557 * lto-wrapper.c (ltrans_priorities): New static var. 24558 (cmp_priority): New. 24559 (run_gcc): Read priorities and if doing parallel build order 24560 the Makefile by them. 24561 245622018-04-30 David Malcolm <dmalcolm@redhat.com> 24563 24564 * input.h (builtins_location_check): Convert to a STATIC_ASSERT. 24565 245662018-04-30 Richard Biener <rguenther@suse.de> 24567 24568 * tree-cfg.c (verify_address): Remove base argument, add 24569 flag whether to check TREE_ADDRESSABLE and do that. 24570 (verify_expr): Remove. 24571 (verify_types_in_gimple_reference): Add pieces from verify_expr. 24572 (verify_gimple_assign_single): Likewise. 24573 (verify_gimple_switch): Likewise. 24574 (verify_expr_location_1): Dereference tp once. Add (disabled) 24575 piece from verify_expr. 24576 (verify_gimple_in_cfg): Do not call verify_expr on all ops. 24577 245782018-04-30 Claudiu Zissulescu <claziss@synopsys.com> 24579 24580 * config/arc/linux.h (CLEAR_INSN_CACHE): Define. 24581 245822018-04-30 Claudiu Zissulescu <claziss@synopsys.com> 24583 24584 * config/arc/arc-protos.h (prepare_extend_operands): Remove. 24585 (small_data_pattern): Likewise. 24586 (arc_rewrite_small_data): Likewise. 24587 * config/arc/arc.c (LEGITIMATE_SMALL_DATA_OFFSET_P): Remove. 24588 (LEGITIMATE_SMALL_DATA_ADDRESS_P): Likewise. 24589 (get_symbol_alignment): New function. 24590 (legitimate_small_data_address_p): Likewise. 24591 (legitimate_scaled_address): Update, call 24592 legitimate_small_data_address_p. 24593 (output_sdata): New static variable. 24594 (arc_print_operand): Update how we handle small data operands. 24595 (arc_print_operand_address): Likewise. 24596 (arc_legitimate_address_p): Update, use 24597 legitimate_small_data_address_p. 24598 (arc_rewrite_small_data_p): Remove. 24599 (arc_rewrite_small_data_1): Likewise. 24600 (arc_rewrite_small_data): Likewise. 24601 (small_data_pattern): Likewise. 24602 (compact_sda_memory_operand): Update to use 24603 legitimate_small_data_address_p and get_symbol_alignment. 24604 (prepare_move_operands): Don't rewite sdata pattern. 24605 (prepare_extend_operands): Remove. 24606 * config/arc/arc.md (zero_extendqihi2): Don't rewrite sdata 24607 pattern. 24608 (zero_extendqisi2): Likewise. 24609 (zero_extendhisi2): Likewise. 24610 (extendqihi2): Likewise. 24611 (extendqisi2): Likewise. 24612 (extendhisi2): Likewise. 24613 (addsi3): Likewise. 24614 (subsi3): Likewise. 24615 (andsi3): Likewise. 24616 * config/arc/constraints.md (Usd): Change it to memory constraint. 24617 246182018-04-30 Claudiu Zissulescu <claziss@synopsys.com> 24619 24620 * config/arc/arc.c (arc_split_move): Allow signed 6-bit constants 24621 as source of std instructions. 24622 * config/arc/arc.md (movsi_insn): Update pattern predicate to 24623 allow 6-bit constants as source for store instructions. 24624 (movdi_insn): Update instruction pattern to allow 6-bit constants 24625 as source for store instructions. 24626 246272018-04-30 Jonathan Wakely <jwakely@redhat.com> 24628 24629 * doc/invoke.texi (-fdebug-types-section): Fix grammar. 24630 246312018-04-30 Nathan Sidwell <nathan@acm.org> 24632 Sandra Loosemore <sandra@codesourcery.com> 24633 24634 * dumpfile.c (dump_open): Allow '-' for stdout. 24635 * doc/invoke.texi (Developer Options): Document dump filename 24636 determination early. Document stdin/stdout selection. 24637 246382018-04-30 Andrew Sadek <andrew.sadek.se@gmail.com> 24639 24640 Microblaze Target: PIC data text relative 24641 24642 * config/microblaze/microblaze.opt: add new option -mpic-data-text-rel. 24643 * config/microblaze/microblaze-protos.h (microblaze_constant_address_p): 24644 Add declaration. 24645 * config/microblaze/microblaze.h (microblaze_constant_address_p): 24646 CONSTANT_ADDRESS_P definition to microblaze_constant_address_p. 24647 * config/microblaze/microblaze.c (TARGET_PIC_DATA_TEXT_REL): 24648 New addressing mode for data-text relative position indepenedent code. 24649 (microblaze_classify_unspec): add 'UNSPEC_TEXT' case -> 24650 'ADDRESS_SYMBOLIC_TXT_REL'. 24651 (microblaze_classify_address): Add handling for UNSPEC + CONST_INT. 24652 (microblaze_legitimate_pic_operand): Exclude function calls from 24653 pic operands in case of TARGET_PIC_DATA_TEXT_REL option. 24654 (microblaze_legitimize_address): Generate 'UNSPEC_TEXT' for all possible 24655 addresses cases. 24656 (microblaze_address_insns): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. 24657 (print_operand): Add 'ADDRESS_SYMBOLIC_TXT_REL' case. 24658 (print_operand_address): Add 'ADDRESS_SYMBOLIC_TXT_REL' case + handling 24659 for 'address + offset'. 24660 (microblaze_expand_prologue): Add new function prologue call for 24661 'r20' assignation. 24662 (microblaze_asm_generate_pic_addr_dif_vec): Override new target hook 24663 'TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC' to disable address diff vector 24664 table in case of TARGET_PIC_DATA_TEXT_REL. 24665 (expand_pic_symbol_ref): Add handling for 'UNSPEC_TEXT'. 24666 * config/microblaze/microblaze.md (TARGET_PIC_DATA_TEXT_REL): 24667 Add new macros 'UNSPEC_TEXT', 24668 'UNSPEC_SET_TEXT' + add rule for setting r20 in function prologue 24669 + exclude function calls from 'UNSPEC_PLT' in case of data text 24670 relative mode. 24671 * doc/tm.texi.in (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add 24672 new target hook for generating address diff vector tables in case of 24673 flag_pic. 24674 * doc/tm.texi : Regenerate. 24675 * stmt.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Append new condition 24676 'targetm.asm_out.generate_pic_addr_diff_vec' to flag_pic in case 24677 of addr diff vector generation. 24678 * target.def (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): Add 24679 target hook definition. 24680 * targhooks.h, targhooks.c (TARGET_ASM_GENERATE_PIC_ADDR_DIFF_VEC): 24681 Add default function for generate_pic_addr_diff_vec -> flag_pic. 24682 * doc/invoke.texi (Add new pic option): Add new microblaze pic 24683 option for data text relative. 24684 246852018-04-30 Richard Biener <rguenther@suse.de> 24686 24687 * tree-chrec.h (evolution_function_is_constant_p): Remove 24688 redundant check. 24689 * tree-cfg.c (tree_node_can_be_shared): Re-order checks. 24690 246912018-04-30 Richard Biener <rguenther@suse.de> 24692 24693 PR bootstrap/85571 24694 * dwarf2out.c (gen_producer_string): Ignore -fchecking[=]. 24695 246962018-04-30 Richard Biener <rguenther@suse.de> 24697 24698 PR tree-optimization/28364 24699 PR tree-optimization/85275 24700 * tree-ssa-loop-ch.c (ch_base::copy_headers): Stop after 24701 copying first exit test. 24702 247032018-04-28 Mark Wielaard <mark@klomp.org> 24704 24705 * dwarf2out.c (dwarf2out_finish): Add .debug_addr table header for 24706 dwarf_version >= 5. 24707 (dwarf_AT): Handle DW_AT_addr_base. 24708 (add_top_level_skeleton_die_attrs): Use dwarf_AT for DW_AT_addr_base. 24709 247102018-04-28 Uros Bizjak <ubizjak@gmail.com> 24711 24712 PR target/84431 24713 * config/i386/i386.md (*ashl<dwi>3_doubleword_mask): New pattern. 24714 (*ashl<dwi>3_doubleword_mask_1): Ditto. 24715 (*<shift_insn><dwi>3_doubleword_mask): Ditto. 24716 (*<shift_insn><dwi>3_doubleword_mask_1): Ditto. 24717 247182018-04-28 Richard Biener <rguenther@suse.de> 24719 24720 * tree-cfg.c (verify_gimple_phi): Take a gphi * argument. 24721 (verify_gimple_in_cfg): Rename visited_stmts to visited_throwing_stmts 24722 to reflect use. Only add interesting stmts. 24723 247242018-04-27 Martin Jambor <mjambor@suse.cz> 24725 24726 PR ipa/85549 24727 * ipa-cp.c (find_aggregate_values_for_callers_subset): Make sure 24728 the jump function allows for passing through aggregate values. 24729 247302018-04-27 David Malcolm <dmalcolm@redhat.com> 24731 24732 * input.h (in_system_header_at): Convert from macro to inline 24733 function. 24734 (from_macro_expansion_at): Likewise. 24735 (from_macro_definition_at): Likewise. 24736 247372018-04-27 Jeff Law <law@redhat.com> 24738 24739 * config.gcc: Mark tile* targets as deprecated/obsolete. 24740 247412018-04-27 Richard Biener <rguenther@suse.de> 24742 24743 * config/aarch64/aarch64.c: Simplify ap.__stack advance and 24744 fix for ILP32. 24745 247462018-04-27 Richard Biener <rguenther@suse.de> 24747 24748 * tree-cfg.c (verify_expr): Make dead code hit gcc_unreachable. 24749 247502018-04-27 Uros Bizjak <ubizjak@gmail.com> 24751 24752 * config/i386/i386.md (*movti_internal): Substitute Ye constraint 24753 with Yd constraint. Set "preferred_for_speed" attribute from 24754 TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for alternatives 24755 with Yd constraint. 24756 (*movdi_internal): Ditto. 24757 (movti_interunit splitters): Remove 24758 TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC from insn condition. 24759 (movdi_interunit splitters): Ditto. 24760 * config/i386/constraints.md (Ye): Remove. 24761 (Yd): Do not depend on TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC. 24762 247632018-04-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24764 24765 PR target/85512 24766 * config/aarch64/constraints.md (Usg): Limit to 31. 24767 (Usj): Limit to 63. 24768 247692018-04-27 Jakub Jelinek <jakub@redhat.com> 24770 24771 PR tree-optimization/85529 24772 * tree-ssa-reassoc.c (optimize_range_tests_var_bound): Add FIRST_BB 24773 argument. Don't call get_nonzero_bits if opcode is ERROR_MARK_NODE, 24774 rhs2 def stmt's bb is dominated by first_bb and it isn't an obvious 24775 zero extension or masking of the MSB bit. 24776 (optimize_range_tests): Add FIRST_BB argument, pass it through 24777 to optimize_range_tests_var_bound. 24778 (maybe_optimize_range_tests, reassociate_bb): Adjust 24779 optimize_range_tests callers. 24780 247812018-04-26 Richard Biener <rguenther@suse.de> 24782 Jakub Jelinek <jakub@redhat.com> 24783 24784 * cgraph.h (symbol_table): Just declare debug method here. 24785 * symtab.c (symbol_table::debug): Define. 24786 247872018-04-26 Eric Botcazou <ebotcazou@adacore.com> 24788 24789 * loop-invariant.c (may_assign_reg_p): Return false for frame pointer. 24790 247912018-04-26 Uros Bizjak <ubizjak@gmail.com> 24792 24793 * config/i386/i386.md ("isa" attribute): Add x64_sse2. 24794 ("enabled" attribute): Handle x64_sse2 "isa" attribute. 24795 (*movdi_internal): Substitute Yi and Yj constraint with x 24796 and Ym and Yn constraint with y constraint. Update "isa" 24797 attribute and set "preferred_for_speed" attribute from 24798 TARGET_INTER_UNIT_MOVES_{FROM,TO}_VEC for updated alternatives. 24799 (*movsi_internal): Ditto. 24800 (*movdf_internal): Ditto. 24801 (*movsf_internal): Ditto. 24802 (*zero_extendsidi2): Ditto. 24803 * config/i386/sse.md (vec_set<mode>_0): Ditto. 24804 (sse2_loadld): Ditto. 24805 (*vec_extract<ssevecmodelower>_0): Ditto. 24806 (*vec_extractv4si_0_zext_sse4): Ditto. 24807 (vec_concatv2di): Ditto. 24808 (*vec_dup<mode>): Ditto. 24809 * config/i386/mmx.md (*mov<mode>_internal): Ditto. 24810 * config/i386/constraints.md (Yi): Remove. 24811 (Yj): Remove. 24812 (Ym): Remove. 24813 (Yn): Remove. 24814 248152018-04-26 Nathan Sidwell <nathan@acm.org> 24816 24817 * dumpfile.c (dump_open): New. 24818 (dump_open_alternate_stream, dump_start, dump_begin): Call it. 24819 (dump_finish): Detect stdio/stderr by value not name. 24820 248212018-04-26 Jonathan Wakely <jwakely@redhat.com> 24822 24823 * doc/invoke.texi (-Wreturn-type): Document default status for C++. 24824 248252018-04-26 Tom de Vries <tom@codesourcery.com> 24826 24827 PR target/84952 24828 * config/nvptx/nvptx.c (verify_neutering_jumps) 24829 (verify_neutering_labels): New function 24830 (nvptx_single): Use verify_neutering_jumps and verify_neutering_labels. 24831 248322018-04-26 Tom de Vries <tom@codesourcery.com> 24833 24834 PR target/84025 24835 * config/nvptx/nvptx.c (needs_neutering_p): New function. 24836 (nvptx_single): Use needs_neutering_p to skip over insns that do not 24837 need neutering. 24838 248392018-04-26 Richard Biener <rguenther@suse.de> 24840 Tom de Vries <tom@codesourcery.com> 24841 24842 PR lto/85422 24843 * lto-streamer-out.c (output_function): Fixup loops if required to match 24844 discovery done in the reader. 24845 248462018-04-26 Richard Biener <rguenther@suse.de> 24847 24848 PR tree-optimization/85116 24849 * tree-ssa-loop-ch.c (do_while_loop_p): A do-while loop should 24850 have a loop exit from the single latch predecessor. Remove 24851 case of header with just condition. 24852 (ch_base::copy_headers): Exclude infinite loops from any 24853 processing. 24854 (pass_ch::execute): Record exits. 24855 248562018-04-26 Richard Biener <rguenther@suse.de> 24857 24858 * tree-vect-data-refs.c (vect_get_data_access_cost): Get 24859 prologue cost vector and pass it to vect_get_load_cost. 24860 (vect_get_peeling_costs_all_drs): Likewise. 24861 (vect_peeling_hash_get_lowest_cost): Likewise. 24862 (vect_enhance_data_refs_alignment): Likewise. 24863 248642018-04-26 Richard Biener <rguenther@suse.de> 24865 24866 PR middle-end/85450 24867 * tree-cfg.c (verify_gimple_assign_unary): Restore proper 24868 checking of integer<->pointer conversions. 24869 * omp-expand.c (expand_omp_for_static_nochunk): Avoid 24870 sign-/zero-extending pointer types. 24871 (expand_omp_for_static_chunk): Likewise. 24872 248732018-03-22 Hans-Peter Nilsson <hp@axis.com> 24874 Jean Lee <xiaoyur347@gmail.com> 24875 24876 * config/mips/mips.c (mips_asan_shadow_offset): New function. 24877 (TARGET_ASAN_SHADOW_OFFSET): Define. 24878 * config/mips/mips.h (FRAME_GROWS_DOWNWARD): Augment to also be 24879 true for -fsanitize=address. 24880 248812018-04-25 Mark Wielaard <mark@klomp.org> 24882 24883 * dwarf2out.c (file_info_cmp): Sort longer dir prefixes before 24884 shorter ones. 24885 248862018-04-25 Jakub Jelinek <jakub@redhat.com> 24887 24888 * config/i386/i386.md (*x86_mov<mode>cc_0_m1): Use type "alu1" rather 24889 than "alu", remove explicit "memory" and "imm_disp" attributes. 24890 (*x86_mov<mode>cc_0_m1_se, *x86_mov<mode>cc_0_m1_neg): Likewise. 24891 24892 PR middle-end/85414 24893 * simplify-rtx.c (simplify_unary_operation_1) <case SIGN_EXTEND, 24894 case ZERO_EXTEND>: Pass SUBREG_REG (op) rather than op to 24895 gen_lowpart_no_emit. 24896 248972018-04-25 Sebastian Peryt <sebastian.peryt@intel.com> 24898 24899 PR target/85473 24900 * config/i386/i386.c (ix86_expand_builtin): Change memory 24901 operand to XI, extend p0 to Pmode. 24902 * config/i386/i386.md: Change unspec volatile and operand 24903 1 mode to XI, change operand 0 mode to P. 24904 249052018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 24906 24907 * config/nds32/nds32-predicates.c (nds32_can_use_bclr_p): Mask with 24908 GET_MODE_MASK before any checking. 24909 (nds32_can_use_bset_p): Likewise. 24910 (nds32_can_use_btgl_p): Likewise. 24911 249122018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 24913 24914 * config/nds32/nds32-doubleword.md: New define_split pattern for 24915 illegal register number. 24916 249172018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 24918 24919 * config/nds32/nds32.c (nds32_print_operand): Set op_value ealier. 24920 249212018-04-25 Chung-Ju Wu <jasonwucj@gmail.com> 24922 24923 * config/nds32/nds32.h (ASM_APP_ON): Add missing newline character. 24924 249252018-04-25 Richard Biener <rguenther@suse.de> 24926 24927 * lto-streamer.h (LTO_major_version): Bump to 8. 24928 249292018-04-25 Jakub Jelinek <jakub@redhat.com> 24930 24931 * BASE-VER: Set to 9.0.0. 24932 249332018-04-24 Segher Boessenkool <segher@kernel.crashing.org> 24934 24935 * config/rs6000/rs6000.c (init_float128_ieee): Fix spelling mistakes 24936 in __abskf2 and __powikf2. 24937 249382018-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 24939 24940 PR target/85512 24941 * config/aarch64/constraints.md (Usg, Usj): New constraints. 24942 * config/aarch64/iterators.md (cmode_simd): New mode attribute. 24943 * config/aarch64/aarch64.md (*aarch64_ashr_sisd_or_int_<mode>3): 24944 Use the above on operand 2. Reindent. 24945 (*aarch64_lshr_sisd_or_int_<mode>3): Likewise. 24946 249472018-04-24 H.J. Lu <hongjiu.lu@intel.com> 24948 24949 PR target/85485 24950 * common/config/i386/i386-common.c (ix86_handle_option): Don't 24951 handle OPT_mcet. 24952 * config/i386/i386.opt (mcet): Removed. 24953 * doc/install.texi: Remove -mcet documentation. 24954 * doc/invoke.texi: Likewise. 24955 249562018-04-24 H.J. Lu <hongjiu.lu@intel.com> 24957 24958 PR target/85485 24959 * doc/install.texi: Remove -mcet from bootstrap-cet. 24960 249612018-04-24 Jakub Jelinek <jakub@redhat.com> 24962 24963 PR target/85511 24964 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Don't define 24965 __builtin_ia32_readeflags_u32 and __builtin_ia32_writeeflags_u32 24966 if TARGET_64BIT. 24967 24968 PR target/85503 24969 * config/rs6000/rs6000-p8swap.c (const_load_sequence_p): Punt if 24970 const_vector is not CONST_VECTOR or SYMBOL_REF for a constant pool 24971 containing a CONST_VECTOR. 24972 249732018-04-24 Cesar Philippidis <cesar@codesourcery.com> 24974 24975 * doc/install.texi: Update newlib dependency for nvptx. 24976 249772018-04-24 Jakub Jelinek <jakub@redhat.com> 24978 24979 PR target/85508 24980 * config/i386/i386.c (ix86_expand_vector_init_one_var): Use UINTVAL 24981 instead of INTVAL when shifting x left. 24982 249832018-04-24 Andreas Krebbel <krebbel@linux.ibm.com> 24984 24985 PR tree-optimization/85478 24986 * tree-vect-loop.c (vect_analyze_loop_2): Do not call 24987 vect_grouped_store_supported for single element vectors. 24988 249892018-04-24 Richard Biener <rguenther@suse.de> 24990 24991 PR target/85491 24992 * config/i386/i386.c (ix86_add_stmt_cost): Restrict strided 24993 load cost increase to the case of non-constant step. 24994 249952018-04-24 Jakub Jelinek <jakub@redhat.com> 24996 24997 PR target/84828 24998 * reg-stack.c (move_for_stack_reg): Don't fail assertion about dead 24999 destination if any_malformed_asm. 25000 250012018-04-23 Eric Botcazou <ebotcazou@adacore.com> 25002 25003 PR middle-end/85496 25004 * expr.c (store_field): In the bitfield case, if the value comes from 25005 a function call and is returned in registers by means of a PARALLEL, 25006 do not change the mode of the temporary unless BLKmode and VOIDmode. 25007 250082018-04-23 Andrey Belevantsev <abel@ispras.ru> 25009 25010 PR rtl-optimization/85423 25011 * sel-sched-ir.c (has_dependence_note_mem_dep): Only discard 25012 dependencies to debug insns when the previous insn is non-debug. 25013 250142018-04-23 Claudiu Zissulescu <claziss@synopsys.com> 25015 25016 * config/arc/arc.md ("vunspec"): Delete it, unify all the unspec 25017 enums into a single definition. 25018 (fls): Fix predicates and printing. 25019 (seti): Likewise. 25020 250212018-04-23 Claudiu Zissulescu <claziss@synopsys.com> 25022 25023 * config/arc/arc-protos.h (check_if_valid_sleep_operand): Remove. 25024 * config/arc/arc.c (arc_expand_builtin): Sleep accepts registers 25025 and short u6 immediate. 25026 (check_if_valid_sleep_operand): Remove. 25027 * config/arc/arc.md (Sleep): Accepts registers and u6 immediates. 25028 250292018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 25030 25031 * config/nds32/nds32.c (nds32_compute_stack_frame): Consider 25032 flag_always_save_lp condition. 25033 * config/nds32/nds32.opt (malways-save-lp): New option. 25034 250352018-04-22 Shiva Chen <shiva0217@gmail.com> 25036 25037 * config/nds32/nds32-protos.h (nds32_use_load_post_increment): Declare. 25038 * config/nds32/nds32.c (nds32_use_load_post_increment): New. 25039 * config/nds32/nds32.h 25040 (USE_LOAD_POST_INCREMENT, USE_LOAD_POST_DECREMENT): Define. 25041 (USE_STORE_POST_INCREMENT, USE_STORE_POST_DECREMENT): Define. 25042 250432018-04-22 Shiva Chen <shiva0217@gmail.com> 25044 25045 * config/nds32/nds32-protos.h (nds32_ls_333_p): Remove. 25046 * config/nds32/nds32.c (nds32_ls_333_p): Remove. 25047 250482018-04-22 Shiva Chen <shiva0217@gmail.com> 25049 Chung-Ju Wu <jasonwucj@gmail.com> 25050 25051 * config/nds32/nds32-protos.h (nds32_case_vector_shorten_mode): 25052 Declare. 25053 * config/nds32/nds32.c (nds32_case_vector_shorten_mode): New function. 25054 * config/nds32/nds32.h (CASE_VECTOR_SHORTEN_MODE): Modify. 25055 250562018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 25057 25058 * config/nds32/nds32.c (nds32_compute_stack_frame): Fix wrong value. 25059 250602018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 25061 25062 * config/nds32/nds32-protos.h (nds32_data_alignment, 25063 nds32_local_alignment): Declare. 25064 * config/nds32/nds32.c (nds32_data_alignment, nds32_constant_alignment, 25065 nds32_local_alignment): New functions. 25066 (TARGET_CONSTANT_ALIGNMENT): Define. 25067 * config/nds32/nds32.h (DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define. 25068 250692018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 25070 25071 * config/nds32/nds32.c 25072 (TARGET_HARD_REGNO_MODE_OK): Move to the bottom of file. 25073 (TARGET_MODES_TIEABLE_P): Likewise. 25074 250752018-04-22 Chung-Ju Wu <jasonwucj@gmail.com> 25076 25077 * config/nds32/nds32.c (nds32_asm_file_start): Display optimization 25078 level Ofast and Og. 25079 250802018-04-22 Monk Chiang <sh.chiang04@gmail.com> 25081 Chung-Ju Wu <jasonwucj@gmail.com> 25082 25083 * config/nds32/constants.md (unspec_volatile_element): Add enum values 25084 for unaligned access. 25085 * config/nds32/nds32-intrinsic.c: Implementation of expanding 25086 unaligned access. 25087 * config/nds32/nds32-intrinsic.md: Likewise. 25088 * config/nds32/nds32_intrinsic.h: Likewise. 25089 * config/nds32/nds32.h (nds32_builtins): Likewise. 25090 * config/nds32/nds32.opt (munaligned-access): New option. 25091 * config/nds32/nds32.c (nds32_asm_file_start): Display 25092 flag_unaligned_access status. 25093 250942018-04-20 Kito Cheng <kito.cheng@gmail.com> 25095 25096 * config/riscv/elf.h (LINK_SPEC): Pass --no-relax if 25097 -mno-relax is present. 25098 * config/riscv/linux.h (LINK_SPEC): Ditto. 25099 251002018-04-20 Martin Sebor <msebor@redhat.com> 25101 25102 PR c/85365 25103 * gimple-fold.c (gimple_fold_builtin_strcpy): Suppress -Wrestrict 25104 for null pointers. 25105 (gimple_fold_builtin_stxcpy_chk): Same. 25106 * gimple-ssa-warn-restrict.c (check_bounds_or_overlap): Same. 25107 251082018-04-20 Michael Meissner <meissner@linux.ibm.com> 25109 25110 PR target/85456 25111 * config/rs6000/rs6000.c (init_float128_ieee): Add support to call 25112 __powikf2 when long double is IEEE 128-bit. 25113 251142018-04-20 Kito Cheng <kito.cheng@gmail.com> 25115 25116 * config/riscv/riscv.c (riscv_first_stack_step): Round up min 25117 step to make sure stack always aligned. 25118 251192018-04-20 Carl Love <cel@us.ibm.com> 25120 25121 PR target/83402 25122 * config/rs6000/rs6000-c.c (rs6000_gimple_fold_builtin): Add 25123 size check for arg0. 25124 251252018-04-20 Nathan Sidwell <nathan@codesourcery.com> 25126 Tom de Vries <tom@codesourcery.com> 25127 25128 PR target/85445 25129 * config/nvptx/nvptx.c (nvptx_emit_forking, nvptx_emit_joining): 25130 Emit insns for calls too. 25131 (nvptx_find_par): Always look for worker-level predecessor insn. 25132 (nvptx_propagate): Add is_call parm, return bool. Copy frame for 25133 calls. 25134 (nvptx_vpropagate, nvptx_wpropagate): Adjust. 25135 (nvptx_process_pars): Propagate frames for calls. 25136 251372018-04-20 H.J. Lu <hongjiu.lu@intel.com> 25138 25139 PR target/85469 25140 * common/config/i386/i386-common.c (OPTION_MASK_ISA_IBT_SET): 25141 Removed. 25142 (OPTION_MASK_ISA_IBT_UNSET): Likewise. 25143 (ix86_handle_option): Don't handle OPT_mibt. 25144 * config/i386/cet.h: Check __CET__ instead of __IBT__ and 25145 __SHSTK__. 25146 * config/i386/driver-i386.c (host_detect_local_cpu): Remove 25147 has_ibt and ibt. 25148 * config/i386/i386-c.c (ix86_target_macros_internal): Don't 25149 check OPTION_MASK_ISA_IBT nor flag_cf_protection. 25150 (ix86_target_macros): Define __CET__ with flag_cf_protection 25151 for -fcf-protection. 25152 * config/i386/i386.c (isa2_opts): Remove -mibt. 25153 * config/i386/i386.h (TARGET_IBT): Removed. 25154 (TARGET_IBT_P): Likewise. 25155 (ix86_valid_target_attribute_inner_p): Don't check OPT_mibt. 25156 * config/i386/i386.md (nop_endbr): Don't check TARGET_IBT. 25157 * config/i386/i386.opt (mcet): Update help message. 25158 (mshstk): Likewise. 25159 (mibt): Removed. 25160 * doc/invoke.texi: Remove -mibt. Document __CET__. Document 25161 -mcet as an alias for -mshstk. 25162 251632018-04-20 Richard Biener <rguenther@suse.de> 25164 25165 PR middle-end/85475 25166 * match.pd ((X * CST) * Y -> (X * Y) * CST): Avoid exponential 25167 complexity by forcing a single use of the multiply operand. 25168 251692018-04-20 Martin Jambor <mjambor@suse.cz> 25170 25171 ipa/85449 25172 * ipa-cp.c (cgraph_edge_brings_value_p): Move check for self-feeding 25173 recursion dependency to only apply to non-clones. 25174 251752018-04-20 Martin Jambor <mjambor@suse.cz> 25176 25177 ipa/85447 25178 * ipa-cp.c (create_specialized_node): Check that clones of 25179 self-recursive edges exist during IPA-CP. 25180 251812018-04-19 Toon Moene <toon@moene.org> 25182 25183 * doc/invoke.texi: Add -floop-unroll-and-jam to options enabled 25184 by -O3. 25185 251862018-04-19 Jakub Jelinek <jakub@redhat.com> 25187 25188 PR tree-optimization/85467 25189 * fold-const.c (fold_ternary_loc) <case BIT_FIELD_REF>: Use 25190 VECTOR_TYPE_P macro. If type is vector type, VIEW_CONVERT_EXPR the 25191 VECTOR_CST element to type. 25192 251932018-04-19 H.J. Lu <hongjiu.lu@intel.com> 25194 25195 PR target/85397 25196 * config/i386/i386.h (STACK_SAVEAREA_MODE): New. 25197 * config/i386/i386.md (builtin_setjmp_setup): Removed. 25198 (builtin_longjmp): Likewise. 25199 (save_stack_nonlocal): New pattern. 25200 (restore_stack_nonlocal): Likewise. 25201 252022018-04-19 H.J. Lu <hongjiu.lu@intel.com> 25203 25204 PR target/85404 25205 * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): 25206 Replace ASM_OUTPUT_LABEL with fprintf. 25207 252082018-04-19 H.J. Lu <hongjiu.lu@intel.com> 25209 25210 PR target/85417 25211 * config/i386/cet.c (file_end_indicate_exec_stack_and_cet): 25212 Check flag_cf_protection instead of TARGET_IBT and TARGET_SHSTK. 25213 * config/i386/i386-c.c (ix86_target_macros_internal): Also 25214 define __IBT__ and __SHSTK__ for -fcf-protection. 25215 * config/i386/i386.c (pass_insert_endbranch::gate): Don't check 25216 TARGET_IBT. 25217 (ix86_trampoline_init): Likewise. 25218 (x86_output_mi_thunk): Likewise. 25219 (ix86_notrack_prefixed_insn_p): Likewise. 25220 (ix86_option_override_internal): Don't disallow -fcf-protection. 25221 * config/i386/i386.md (rdssp<mode>): Also enable for 25222 -fcf-protection. 25223 (incssp<mode>): Likewise. 25224 (nop_endbr): Likewise. 25225 * config/i386/i386.opt (mcet): Change help message to built-in 25226 functions only. 25227 (mibt): Likewise. 25228 (mshstk): Likewise. 25229 * doc/invoke.texi: Remove -mcet, -mibt and -mshstk condition 25230 on -fcf-protection. Change -mcet, -mibt and -mshstk to only 25231 enable CET built-in functions. 25232 252332018-04-19 Sebastian Peryt <sebastian.peryt@intel.com> 25234 25235 * common/config/i386/i386-common.c 25236 (OPTION_MASK_ISA_MOVDIRI_SET, OPTION_MASK_ISA_MOVDIR64B_SET, 25237 OPTION_MASK_ISA_MOVDIRI_UNSET, 25238 OPTION_MASK_ISA_MOVDIR64B_UNSET): New defines. 25239 (ix86_handle_option): Handle -mmovdiri and -mmovdir64b. 25240 * config.gcc (movdirintrin.h): New header. 25241 * config/i386/cpuid.h (bit_MOVDIRI, 25242 bit_MOVDIR64B): New bits. 25243 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mmovdiri 25244 and -mmvodir64b. 25245 * config/i386/i386-builtin-types.def ((VOID, PUNSIGNED, UNSIGNED), 25246 (VOID, PVOID, PCVOID)): New function types. 25247 * config/i386/i386-builtin.def (__builtin_ia32_directstoreu_u32, 25248 __builtin_ia32_directstoreu_u64, 25249 __builtin_ia32_movdir64b): New builtins. 25250 * config/i386/i386-c.c (__MOVDIRI__, __MOVDIR64B__): New. 25251 * config/i386/i386.c (ix86_target_string): Added -mmovdir64b 25252 and -mmovdiri. 25253 (ix86_valid_target_attribute_inner_p): Ditto. 25254 (ix86_expand_special_args_builtin): Added VOID_FTYPE_PUNSIGNED_UNSIGNED 25255 and VOID_FTYPE_PUNSIGNED_UNSIGNED. 25256 (ix86_expand_builtin): Expand IX86_BUILTIN_MOVDIR64B. 25257 * config/i386/i386.h (TARGET_MOVDIRI, TARGET_MOVDIRI_P, 25258 TARGET_MOVDIR64B, TARGET_MOVDIR64B_P): New. 25259 * config/i386/i386.md (UNSPECV_MOVDIRI, UNSPECV_MOVDIR64B): New. 25260 (movdiri<mode>, movdir64b_<mode>): New. 25261 * config/i386/i386.opt: Add -mmovdiri and -mmovdir64b. 25262 * config/i386/immintrin.h: Include movdirintrin.h. 25263 * config/i386/movdirintrin.h: New file. 25264 * doc/invoke.texi: Added -mmovdiri and -mmovdir64b. 25265 252662018-04-19 Richard Biener <rguenther@suse.de> 25267 25268 PR middle-end/85455 25269 * cfg.c (clear_bb_flags): When loop state says we have 25270 marked irreducible regions also preserve BB_IRREDUCIBLE_LOOP. 25271 252722018-04-19 Richard Biener <rguenther@suse.de> 25273 25274 PR tree-optimization/84737 25275 * tree-vect-data-refs.c (vect_copy_ref_info): New function 25276 copying restrict info. 25277 (vect_setup_realignment): Use it. 25278 * tree-vectorizer.h (vect_copy_ref_info): Declare. 25279 * tree-vect-stmts.c (vectorizable_store): Copy ref info from 25280 the first DR to all generated stores. 25281 (vectorizable_load): Likewise for loads. 25282 252832018-04-19 Jakub Jelinek <jakub@redhat.com> 25284 25285 PR tree-optimization/85446 25286 * match.pd ((intptr_t) x eq/ne CST to x eq/ne (typeof x) cst): Require 25287 the integral and pointer types to have the same precision. 25288 25289 * doc/install.texi: Document --disable-cet being the default and 25290 --enable-cet=auto. 25291 252922018-04-18 Martin Liska <mliska@suse.cz> 25293 25294 * ipa-devirt.c (odr_subtypes_equivalent_p): Fix GNU coding 25295 style. 25296 252972018-04-18 Martin Liska <mliska@suse.cz> 25298 25299 Revert 25300 2018-03-02 Eric Botcazou <ebotcazou@adacore.com> 25301 25302 PR ipa/83983 25303 * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both 25304 arguments if they are comparable. 25305 253062018-04-18 Martin Liska <mliska@suse.cz> 25307 25308 Revert 25309 2018-03-13 Eric Botcazou <ebotcazou@adacore.com> 25310 25311 PR lto/84805 25312 * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of 25313 incomplete types. 25314 253152018-04-18 H.J. Lu <hongjiu.lu@intel.com> 25316 25317 PR target/85388 25318 * config/i386/i386.c (ix86_expand_split_stack_prologue): Insert 25319 ENDBR after calling __morestack. 25320 253212018-04-18 David Malcolm <dmalcolm@redhat.com> 25322 25323 PR jit/85384 25324 * configure.ac (gcc-driver-name.h): Honor --with-gcc-major-version 25325 by using gcc_base_ver to generate a gcc_driver_version, and use 25326 it when generating GCC_DRIVER_NAME. 25327 * configure: Regenerate. 25328 253292018-04-18 Jakub Jelinek <jakub@redhat.com> 25330 25331 PR target/81084 25332 * config.gcc: Obsolete powerpc*-*-*spe*. 25333 253342018-04-17 Jakub Jelinek <jakub@redhat.com> 25335 25336 PR debug/84637 25337 * dbxout.c (dbxout_int): Perform negation in unsigned int type. 25338 (stabstr_D): Change type of unum from unsigned int to 25339 unsigned HOST_WIDE_INT. Perform negation in unsigned HOST_WIDE_INT 25340 type. 25341 253422018-04-17 Jim Wilson <jimw@sifive.com> 25343 25344 PR 84856 25345 * config/riscv/riscv.c (riscv_compute_frame_info): Add calls to 25346 RISCV_STACK_ALIGN when using outgoing_args_size and pretend_args_size. 25347 Set arg_pointer_offset after using pretend_args_size. 25348 253492018-04-17 Jakub Jelinek <jakub@redhat.com> 25350 25351 PR rtl-optimization/85431 25352 * dse.c (record_store): Ignore zero width stores. 25353 25354 PR sanitizer/85230 25355 * asan.c (handle_builtin_stack_restore): Adjust comment. Emit 25356 __asan_allocas_unpoison call and last_alloca_addr = new_sp before 25357 __builtin_stack_restore rather than after it. 25358 * builtins.c (expand_asan_emit_allocas_unpoison): Pass 25359 arg1 + (virtual_dynamic_stack_rtx - stack_pointer_rtx) as second 25360 argument instead of virtual_dynamic_stack_rtx. 25361 253622018-04-17 Kelvin Nilsen <kelvin@gcc.gnu.org> 25363 25364 * config/rs6000/rs6000-protos.h (rs6000_builtin_is_supported_p): 25365 New prototype. 25366 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): 25367 Add note to error message to explain internal mapping of overloaded 25368 built-in function name to non-overloaded built-in function name. 25369 * config/rs6000/rs6000.c (rs6000_builtin_is_supported_p): New 25370 function. 25371 253722018-04-17 Michael Meissner <meissner@linux.vnet.ibm.com> 25373 25374 PR target/85424 25375 * config/rs6000/rs6000.md (pack<mode>): Do not try handle a pack 25376 where the inputs overlap with the output. 25377 253782018-04-17 Jakub Jelinek <jakub@redhat.com> 25379 25380 * config/i386/sse.md (vec_extract_lo_<mode><mask_name>): Add 25381 (=v, v) alternative and explicit "memory" attribute. 25382 (vec_extract_lo_<mode><mask_name>): Likewise. Also add 25383 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 25384 attributes. 25385 (vec_extract_lo_<mode><mask_name>): Add (=v, v) alternative and use 25386 "sselog1" type instead of "sselog". 25387 (vec_extract_hi_<mode><mask_name>): Use "sselog1" type instead of 25388 "sselog". Remove explicit "memory" attribute. 25389 (vec_extract_lo_v32hi): Add (=v, v) alternative and explicit "memory", 25390 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 25391 attributes. 25392 (vec_extract_hi_v32hi): Merge all alternatives into one, use 25393 "sselog1" type instead of "sselog". Remove explicit "memory" 25394 attribute. 25395 (vec_extract_hi_v16hi): Merge each pair of alternatives into one, 25396 use "sselog1" type instead of "sselog". Remove explicit "memory" 25397 attribute. 25398 (vec_extract_lo_v64qi): Add (=v, v) alternative and explicit "memory", 25399 "type", "prefix", "prefix_extra", "length_immediate" and "mode" 25400 attributes. 25401 (vec_extract_hi_v64qi): Merge all alternatives into one, use 25402 "sselog1" type instead of "sselog". Remove explicit "memory" 25403 attribute. 25404 (vec_extract_hi_v32qi): Merge each pair of alternatives into one, 25405 use "sselog1" type instead of "sselog". Remove explicit "memory" 25406 attribute. 25407 25408 PR target/85430 25409 * config/i386/i386.md (*ashlqi3_1_slp): Use alu1 type instead of alu. 25410 25411 PR middle-end/85414 25412 * rtlhooks.c (gen_lowpart_if_possible): Don't call gen_lowpart_SUBREG 25413 on a SUBREG. 25414 254152018-04-17 Martin Jambor <mjambor@suse.cz> 25416 25417 PR ipa/85421 25418 * ipa-cp.c (create_specialized_node): Call 25419 expand_all_artificial_thunks if necessary. 25420 254212018-04-17 Martin Liska <mliska@suse.cz> 25422 25423 PR lto/85405 25424 * ipa-devirt.c (odr_types_equivalent_p): Remove trailing 25425 in message, remote space in between '_G' and '('. 25426 254272018-04-17 Jakub Jelinek <jakub@redhat.com> 25428 25429 PR target/85281 25430 * config/i386/sse.md (reduces<mode><mask_scalar_name>, 25431 avx512f_vmcmp<mode>3<round_saeonly_name>, 25432 avx512f_vmcmp<mode>3_mask<round_saeonly_name>, 25433 avx512f_sgetexp<mode><mask_scalar_name><round_saeonly_scalar_name>, 25434 avx512f_rndscale<mode><round_saeonly_name>, 25435 avx512dq_ranges<mode><mask_scalar_name><round_saeonly_scalar_name>, 25436 avx512f_vgetmant<mode><mask_scalar_name><round_saeonly_scalar_name>): 25437 Use %<iptr>2 instead of %2 for -masm=intel. 25438 (avx512f_vcvtss2usi<round_name>, avx512f_vcvtss2usiq<round_name>, 25439 avx512f_vcvttss2usi<round_saeonly_name>, 25440 avx512f_vcvttss2usiq<round_saeonly_name>): Use %k1 instead of %1 for 25441 -masm=intel. 25442 (avx512f_vcvtsd2usi<round_name>, avx512f_vcvtsd2usiq<round_name>, 25443 avx512f_vcvttsd2usi<round_saeonly_name>, 25444 avx512f_vcvttsd2usiq<round_saeonly_name>, ufloatv2siv2df2<mask_name>): 25445 Use %q1 instead of %1 for -masm=intel. 25446 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, 25447 avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Use %<iptr>3 instead 25448 of %3 for -masm=intel. 25449 (sse2_shufpd_v2df_mask): Fix a typo, change %{6%} to %{%6%} for 25450 -masm=intel. 25451 (*avx512vl_<code>v2div2qi2_store): Use %w0 instead of %0 for 25452 -masm=intel. 25453 (*avx512vl_<code><mode>v4qi2_store): Use %k0 instead of %0 for 25454 -masm=intel. 25455 (avx512vl_<code><mode>v4qi2_mask_store): Use a single pattern with 25456 %k0 and %1 for -masm=intel rather than two patterns, one with %0 and 25457 %g1. 25458 (*avx512vl_<code><mode>v8qi2_store): Use %q0 instead of %0 for 25459 -masm=intel. 25460 (avx512vl_<code><mode>v8qi2_mask_store): Use a single pattern with 25461 %q0 and %1 for -masm=intel rather than two patterns, one with %0 and 25462 %g1 and one with %0 and %1. 25463 (avx512er_vmrcp28<mode><round_saeonly_name>, 25464 avx512er_vmrsqrt28<mode><round_saeonly_name>): Use %<iptr>1 instead of 25465 %1 for -masm=intel. 25466 (avx5124fmaddps_4fmaddps_mask, avx5124fmaddps_4fmaddss_mask, 25467 avx5124fmaddps_4fnmaddps_mask, avx5124fmaddps_4fnmaddss_mask, 25468 avx5124vnniw_vp4dpwssd_mask, avx5124vnniw_vp4dpwssds_mask): Swap order 25469 of %0 and %{%4%} for -masm=intel. 25470 (avx5124fmaddps_4fmaddps_maskz, avx5124fmaddps_4fmaddss_maskz, 25471 avx5124fmaddps_4fnmaddps_maskz, avx5124fmaddps_4fnmaddss_maskz, 25472 avx5124vnniw_vp4dpwssd_maskz, avx5124vnniw_vp4dpwssds_maskz): Swap 25473 order of %0 and %{%5%}%{z%} for -masm=intel. 25474 254752018-04-17 Jan Hubicka <jh@suse.cz> 25476 25477 PR lto/85405 25478 * ipa-devirt.c (odr_types_equivalent_p): Handle bit fields. 25479 254802018-04-17 Martin Liska <mliska@suse.cz> 25481 25482 PR ipa/85329 25483 * multiple_target.c (create_dispatcher_calls): Set apostrophes 25484 for target_clone error message. Make default implementation 25485 clone to be a local declaration. 25486 (separate_attrs): Add new argument and check for an empty 25487 string. 25488 (expand_target_clones): Handle it. 25489 (ipa_target_clone): Make redirection just for target_clones 25490 functions. 25491 254922018-04-16 Cesar Philippidis <cesar@codesourcery.com> 25493 Tom de Vries <tom@codesourcery.com> 25494 25495 PR middle-end/84955 25496 * omp-expand.c (expand_oacc_for): Add dummy false branch for 25497 tiled basic blocks without omp continue statements. 25498 254992018-04-16 Aaron Sawdey <acsawdey@linux.ibm.com> 25500 25501 PR target/83660 25502 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Mark 25503 vec_extract expression as having side effects to make sure it gets 25504 a cleanup point. 25505 255062018-04-16 H.J. Lu <hongjiu.lu@intel.com> 25507 25508 PR target/85403 25509 * config/i386/i386.c (get_builtin_code_for_version): Check 25510 error_mark_node. 25511 255122018-04-16 Olga Makhotina <olga.makhotina@intel.com> 25513 25514 PR target/84331 25515 * config.gcc: Support "skylake". 25516 * config/i386/i386-c.c (ix86_target_macros_internal): Handle 25517 PROCESSOR_SKYLAKE. 25518 * config/i386/i386.c (m_SKYLAKE): Define. 25519 (processor_target_table): Add "skylake". 25520 (ix86_option_override_internal): Add "skylake". 25521 (get_builtin_code_for_version): Handle PROCESSOR_SKYLAKE, 25522 PROCESSOR_CANNONLAKE. 25523 (get_builtin_code_for_version): Fix priority for 25524 PROCESSOR_ICELAKE_CLIENT, PROCESSOR_ICELAKE_SERVER, 25525 PROCESSOR_SKYLAKE-AVX512. 25526 * config/i386/i386.h (processor_costs): Define TARGET_SKYLAKE. 25527 (processor_type): Add PROCESSOR_SKYLAKE. 25528 255292018-04-16 Paolo Carlini <paolo.carlini@oracle.com> 25530 Jason Merrill <jason@redhat.com> 25531 25532 PR c++/85112 25533 * convert.c (convert_to_integer_1): Use direct recursion for 25534 enumeral types and types with a precision less than the number 25535 of bits in their mode. 25536 255372018-04-16 Julia Koval <julia.koval@intel.com> 25538 25539 PR target/84413 25540 * config/i386/x86-tune.def (X86_TUNE_SSE_UNALIGNED_LOAD_OPTIMAL, 25541 X86_TUNE_SSE_UNALIGNED_STORE_OPTIMAL): Add m_SKYLAKE_AVX512 25542 255432018-04-14 Segher Boessenkool <segher@kernel.crashing.org> 25544 25545 PR target/85293 25546 * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. 25547 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move 25548 and -mno-direct-move. 25549 255502018-04-13 Paul A. Clarke <pc@us.ibm.com> 25551 25552 PR target/83402 25553 * config/rs6000/emmintrin.h (_mm_slli_epi{16,32,64}): 25554 Ensure that vec_splat_s32 is only called with 0 <= shift < 16. 25555 Ensure negative shifts result in {0}. 25556 255572018-04-13 Vladimir Makarov <vmakarov@redhat.com> 25558 25559 PR rtl-optimization/79916 25560 * config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard 25561 regs (if any) to define how to gnerate SD moves when LRA is in 25562 progress. 25563 255642018-04-13 Jakub Jelinek <jakub@redhat.com> 25565 25566 PR rtl-optimization/85393 25567 * except.h (expand_dw2_landing_pad_for_region): Remove declaration. 25568 * except.c (expand_dw2_landing_pad_for_region): Make static. 25569 * bb-reorder.c (fix_up_crossing_landing_pad): In new_bb emit just 25570 a label and unconditional jump to old_bb, rather than 25571 expand_dw2_landing_pad_for_region insn(s) and jump to single_succ 25572 basic block. 25573 25574 PR rtl-optimization/85376 25575 * simplify-rtx.c (simplify_const_unary_operation): For CLZ and CTZ and 25576 zero op0, if C?Z_DEFINED_VALUE_AT_ZERO is false, return NULL_RTX 25577 instead of a specific value. 25578 255792018-04-13 Jan Hubicka <hubicka@ucw.cz> 25580 Bin Cheng <bin.cheng@arm.com> 25581 25582 PR tree-optimization/82965 25583 PR tree-optimization/83991 25584 * cfgloopanal.c (expected_loop_iterations_unbounded): Add 25585 by_profile_only parameter. 25586 * cfgloopmanip.c (scale_loop_profile): Further scale loop's profile 25587 information if the loop was predicted to iterate too many times. 25588 * cfgloop.h (expected_loop_iterations_unbounded): Update prototype 25589 255902018-04-13 Jan Hubicka <hubicka@ucw.cz> 25591 25592 PR lto/71991 25593 * config/i386/i386.c (ix86_can_inline_p): Allow safe transitions for 25594 always inline. 25595 255962018-04-13 Martin Liska <mliska@suse.cz> 25597 Jakub Jelinek <jakub@redhat.com> 25598 25599 PR middle-end/81657 25600 * expr.h (enum block_op_methods): Add BLOCK_OP_NO_LIBCALL_RET. 25601 * expr.c (emit_block_move_hints): Handle BLOCK_OP_NO_LIBCALL_RET. 25602 * builtins.c (expand_builtin_memory_copy_args): Use 25603 BLOCK_OP_NO_LIBCALL_RET method for mempcpy with non-ignored target, 25604 handle dest_addr == pc_rtx. 25605 256062018-04-12 Segher Boessenkool <segher@kernel.crashing.org> 25607 25608 PR target/85291 25609 * config/rs6000/rs6000.md (fix_trunc<mode>si2): Use legacy code if 25610 asked to not generate direct moves. 25611 (fix_trunc<mode>si2_stfiwx): Similar. 25612 (fix_trunc<mode>si2_internal): Similar. 25613 256142018-04-12 Jakub Jelinek <jakub@redhat.com> 25615 25616 PR debug/83157 25617 * var-tracking.c (add_stores): Handle STRICT_LOW_PART SET_DEST. 25618 * cselib.c (cselib_record_sets): For STRICT_LOW_PART dest, 25619 lookup if dest in some wider mode is known to be const0_rtx and 25620 if so, record permanent equivalence for it to be ZERO_EXTEND of 25621 the narrower mode destination. 25622 256232018-04-12 Cesar Philippidis <cesar@codesourcery.com> 25624 25625 * lto-streamer-out.c (output_function): Revert 259346. 25626 * omp-expand.c (expand_oacc_for): Likewise. 25627 256282018-04-12 Alexander Monakov <amonakov@ispras.ru> 25629 25630 PR rtl-optimization/85354 25631 * sel-sched-ir.c (sel_init_pipelining): Move cfg_cleanup call... 25632 * sel-sched.c (sel_global_init): ... here. 25633 256342018-04-12 Eric Botcazou <ebotcazou@adacore.com> 25635 25636 PR target/85238 25637 * lto-wrapper.c (debug_objcopy): Open the files in binary mode. 25638 * dwarf2out.c (dwarf2out_early_finish): Do not generate assembly in LTO 25639 mode for PE-COFF targets. 25640 * config/i386/i386-protos.h (i386_pe_asm_lto_start): Declare. 25641 (i386_pe_asm_lto_end): Likewise. 25642 * config/i386/cygming.h (TARGET_ASM_LTO_START): Define. 25643 (TARGET_ASM_LTO_END): Likewise. 25644 * config/i386/winnt.c (saved_debug_info_level): New static variable. 25645 (i386_pe_asm_lto_start): New function. 25646 (i386_pe_asm_lto_end): Likewise. 25647 256482018-04-12 Cesar Philippidis <cesar@codesourcery.com> 25649 Richard Biener <rguenther@suse.de> 25650 25651 PR middle-end/84955 25652 * lto-streamer-out.c (output_function): Fix CFG loop state before 25653 streaming out. 25654 * omp-expand.c (expand_oacc_for): Handle calls to internal 25655 functions like regular functions. 25656 256572018-04-12 Richard Biener <rguenther@suse.de> 25658 25659 PR lto/85371 25660 * dwarf2out.c (init_sections_and_labels): Use debug_line_section[_label] 25661 for the early LTO debug to properly generate references to it 25662 during DIE emission. Do not re-use that for the skeleton for 25663 split-dwarf. 25664 (dwarf2out_early_finish): Likewise. 25665 256662018-04-12 Jakub Jelinek <jakub@redhat.com> 25667 25668 PR target/85328 25669 * config/i386/sse.md 25670 (<mask_codefor>avx512dq_vextract<shuffletype>64x2_1<mask_name> split, 25671 <mask_codefor>avx512f_vextract<shuffletype>32x4_1<mask_name> split, 25672 vec_extract_lo_<mode><mask_name> split, vec_extract_lo_v32hi, 25673 vec_extract_lo_v64qi): For non-AVX512VL if input is xmm16+ reg 25674 and output is a reg, avoid creating invalid lowpart subreg, but 25675 instead split into a 512-bit move. Don't split if not AVX512VL, 25676 input is xmm16+ reg and output is a mem. 25677 (vec_extract_lo_<mode><mask_name>, vec_extract_lo_v32hi, 25678 vec_extract_lo_v64qi): Don't require split if not AVX512VL, input is 25679 xmm16+ reg and output is a mem. 25680 256812018-04-12 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 25682 25683 * config/s390/s390.c (s390_output_indirect_thunk_function): Check 25684 also for flag_dwarf2_cfi_asm. 25685 256862018-04-12 Jakub Jelinek <jakub@redhat.com> 25687 25688 PR rtl-optimization/85342 25689 * regcprop.c (copyprop_hardreg_forward_1): Remove replaced array, use 25690 a bool scalar var inside of the loop instead. Don't try to update 25691 recog_data.operand after failed apply_change_group. 25692 256932018-04-12 Tom de Vries <tom@codesourcery.com> 25694 25695 PR target/85296 25696 * config/nvptx/nvptx.c (flexible_array_member_type_p): New function. 25697 (nvptx_assemble_decl_begin): Add undefined param. Declare undefined 25698 array with flexible array member as array without given dimension. 25699 (nvptx_assemble_undefined_decl): Set nvptx_assemble_decl_begin call 25700 argument for undefined param to true. 25701 257022018-04-11 Aaron Sawdey <acsawdey@linux.ibm.com> 25703 25704 PR target/85321 25705 * doc/invoke.texi (RS/6000 and PowerPC Options): Document options 25706 -mcall- and -mtraceback=. Remove options -mabi=spe and -mabi=no-spe 25707 from PowerPC section. 25708 * config/rs6000/sysv4.opt (mcall-): Improve help text. 25709 * config/rs6000/rs6000.opt (mblock-compare-inline-limit=): Trim 25710 help text that is too long. 25711 * config/rs6000/rs6000.opt (mblock-compare-inline-loop-limit=): Trim 25712 help text that is too long. 25713 * config/rs6000/rs6000.opt (mstring-compare-inline-limit=): Trim 25714 help text that is too long. 25715 257162018-04-11 Uros Bizjak <ubizjak@gmail.com> 25717 25718 * config/alpha/alpha.md (stack_probe_internal): Rename 25719 from "probe_stack". Update all callers. 25720 257212018-04-11 Alexander Monakov <amonakov@ispras.ru> 25722 25723 PR rtl-optimization/84566 25724 * sched-deps.c (sched_analyze_insn): Check deps->readonly when invoking 25725 sched_macro_fuse_insns. 25726 257272018-04-11 Alexander Monakov <amonakov@ispras.ru> 25728 25729 PR target/84301 25730 * sched-rgn.c (add_branch_dependences): Move sel_sched_p check here... 25731 (compute_block_dependences): ... from here. 25732 257332018-04-11 Jakub Jelinek <jakub@redhat.com> 25734 25735 PR tree-optimization/85331 25736 * vec-perm-indices.h (vec_perm_indices::clamp): Change input type 25737 from int to HOST_WIDE_INT. 25738 257392018-04-11 Martin Jambor <mjambor@suse.cz> 25740 25741 PR ipa/84149 25742 * ipa-cp.c (propagate_vals_across_pass_through): Expand comment. 25743 (cgraph_edge_brings_value_p): New parameter dest_val, check if it is 25744 not the same as the source val. 25745 (cgraph_edge_brings_value_p): New parameter. 25746 (gather_edges_for_value): Pass destination value to 25747 cgraph_edge_brings_value_p. 25748 (perhaps_add_new_callers): Likewise. 25749 (get_info_about_necessary_edges): Likewise and exclude values brought 25750 only by self-recursive edges. 25751 (create_specialized_node): Redirect only clones of self-calling edges. 25752 (+self_recursive_pass_through_p): New function. 25753 (find_more_scalar_values_for_callers_subset): Use it. 25754 (find_aggregate_values_for_callers_subset): Likewise. 25755 (known_aggs_to_agg_replacement_list): Removed. 25756 (decide_whether_version_node): Re-calculate known constants for all 25757 remaining context clones. 25758 257592018-04-11 Richard Biener <rguenther@suse.de> 25760 25761 PR lto/85339 25762 * dwarf2out.c (dwarf2out_finish): Remove DW_AT_stmt_list attribute 25763 from early DWARF output. 25764 (dwarf2out_early_finish): Output line info unconditionally into 25765 early DWARF and add reference to it. 25766 257672018-04-11 Jakub Jelinek <jakub@redhat.com> 25768 25769 PR target/85281 25770 * config/i386/sse.md (iptr): Add V16SFmode and V8DFmode cases. 25771 (<avx512>_vec_dup<mode><mask_name>): Use a single pattern for modes 25772 other than V2DFmode using iptr mode attribute. 25773 (<avx512>_vec_dup<mode><mask_name>): Use iptr mode attribute. 25774 257752018-04-11 Alexander Monakov <amonakov@ispras.ru> 25776 25777 PR rtl-optimization/84659 25778 * sel-sched-ir.c (sel_init_pipelining): Invoke cleanup_cfg. 25779 257802018-04-11 Jakub Jelinek <jakub@redhat.com> 25781 25782 PR debug/85302 25783 * dwarf2out.c (skip_loc_list_entry): Don't call size_of_locs if 25784 SIZEP is NULL. 25785 (output_loc_list): Pass address of a dummy size variable even in the 25786 locview handling loop. 25787 (index_location_lists): Add comment on why skip_loc_list_entry can't 25788 call size_of_locs. 25789 257902018-04-11 Thomas Preud'homme <thomas.preudhomme@arm.com> 25791 25792 PR target/85261 25793 * config/arm/arm-builtins.c (arm_expand_builtin): Force input operand 25794 into register. 25795 257962018-04-10 Aaron Sawdey <acsawdey@linux.ibm.com> 25797 25798 PR target/85321 25799 * doc/invoke.texi (RS/6000 and PowerPC Options): Document options 25800 -mblock-compare-inline-limit, -mblock-compare-inline-loop-limit, 25801 and -mstring-compare-inline-limit. 25802 258032018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 25804 25805 PR target/85287 25806 * config/rs6000/rs6000.md (allocate_stack): Put the residual size 25807 for stack clash protection in a register whenever we need it to be in 25808 a register. 25809 258102018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 25811 25812 * common/config/rs6000/rs6000-common.c (rs6000_option_init_struct): 25813 Enable -fasynchronous-unwind-tables by default if OBJECT_FORMAT_ELF. 25814 258152018-04-10 Segher Boessenkool <segher@kernel.crashing.org> 25816 25817 PR target/85321 25818 * config/rs6000/rs6000.opt (mtraceback=): Show the allowed values in 25819 the help text. 25820 (mlong-double-): Ditto. 25821 * config/rs6000/sysv4.opt (msdata=): Ditto. 25822 (mtls-size=): Ditto. 25823 258242018-04-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 25825 25826 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Remove 25827 erroneous entries for 25828 "vector int vec_ldl (int, long int *)", and 25829 "vector unsigned int vec_ldl (int, unsigned long int *)". 25830 Add comments and entries for 25831 "vector bool char vec_ldl (int, bool char *)", 25832 "vector bool short vec_ldl (int, bool short *)", 25833 "vector bool int vec_ldl (int, bool int *)", 25834 "vector bool long long vec_ldl (int, bool long long *)", 25835 "vector pixel vec_ldl (int, pixel *)", 25836 "vector long long vec_ldl (int, long long *)", 25837 "vector unsigned long long vec_ldl (int, unsigned long long *)". 25838 * config/rs6000/rs6000.c (rs6000_init_builtins): Initialize new 25839 type tree bool_long_long_type_node and correct definition of 25840 bool_V2DI_type_node to make reference to this new type tree. 25841 (rs6000_mangle_type): Replace erroneous reference to 25842 bool_long_type_node with bool_long_long_type_node. 25843 * config/rs6000/rs6000.h (enum rs6000_builtin_type_index): Add 25844 comments to emphasize sign distinctions for char and int types and 25845 replace RS6000_BTI_bool_long constant with 25846 RS6000_BTI_bool_long_long constant. Also add comment to restrict 25847 use of RS6000_BTI_pixel. 25848 (bool_long_type_node): Remove this macro definition. 25849 (bool_long_long_type_node): New macro definition 25850 258512018-04-10 Jakub Jelinek <jakub@redhat.com> 25852 25853 PR rtl-optimization/85300 25854 * combine.c (subst): Handle subst of CONST_SCALAR_INT_P new_rtx also 25855 into FLOAT and UNSIGNED_FLOAT like ZERO_EXTEND, return a CLOBBER if 25856 simplify_unary_operation fails. 25857 258582018-04-10 Martin Liska <mliska@suse.cz> 25859 25860 * gdbhooks.py: Add pretty-printers for varpool_node, symtab_node, 25861 cgraph_edge and ipa_ref. 25862 258632018-04-10 Jakub Jelinek <jakub@redhat.com> 25864 25865 PR target/85177 25866 PR target/85255 25867 * config/i386/sse.md 25868 (<extract_type>_vinsert<shuffletype><extract_suf>_mask): Fix 25869 computation of the VEC_MERGE selector from mask. 25870 (<extract_type>_vinsert<shuffletype><extract_suf>_1<mask_name>): 25871 Fix decoding of the VEC_MERGE selector into mask. 25872 258732018-04-10 Richard Sandiford <richard.sandiford@linaro.org> 25874 25875 PR tree-optimization/85286 25876 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): 25877 258782018-04-10 Richard Sandiford <richard.sandiford@linaro.org> 25879 25880 * final.c (final_1): Set insn_last_address as well as 25881 insn_current_address. 25882 258832018-04-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 25884 25885 PR target/85173 25886 * explow.c (emit_stack_probe): Call validize_mem on memory location 25887 before passing it to gen_probe_stack. Create address operand and 25888 legitimize it for the probe_stack_address case. 25889 258902018-04-09 Jan Hubicka <jh@suse.cz> 25891 25892 PR lto/85078 25893 * ipa-devirt.c (rebuild_type_inheritance-hash): New. 25894 * ipa-utils.h (rebuild_type_inheritance-hash): Declare. 25895 * tree.c (free_lang_data_in_type): Fix handling of binfos; 25896 walk basetypes. 25897 (free_lang_data): Rebuild type inheritance graph. 25898 258992018-04-09 Martin Sebor <msebor@redhat.com> 25900 25901 * invoke.texi (-finline-small-functions): Mention other optimization 25902 options. 25903 (-findirect-inlining, -fpartial-inlining): Same. 25904 (-finline-functions-called-once): Same. 25905 (-freorder-blocks-and-partition): Same. 25906 259072018-04-09 Jan Hubicka <jh@suse.cz> 25908 25909 PR rtl/84058 25910 * cfgcleanup.c (try_forward_edges): Do not give up on crossing 25911 jumps; choose last target that matches the criteria (i.e. 25912 no partition changes for non-crossing jumps). 25913 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Add basic 25914 support for redirecting crossing jumps to non-crossing. 25915 259162018-04-09 Alexey Brodkin <abrodkin@synopsys.com> 25917 25918 * config/arc/arc.c (arc_expand_prologue): Set stack usage info 25919 also for naked functions. 25920 259212018-04-09 Claudiu Zissulescu <claziss@synopsys.com> 25922 25923 * config/arc/arc.md (add_shift): New pattern. 25924 (add_shift2): Likewise. 25925 (sub_shift): Likewise. 25926 (sub_shift_cmp0_noout): Likewise. 25927 (compare_si_ashiftsi): Likewise. 25928 (xbfu_cmp0_noout): New combine pattern. 25929 (xbfu_cmp0"): Likewise. 25930 (movsi_set_cc_insn): Place the predicable variant first. 25931 (commutative_binary_cmp0_noout): Remove clobber. 25932 (commutative_binary_cmp0): New pattern. 25933 (noncommutative_binary_cmp0): Likewise. 25934 (noncommutative_binary_cmp0_noout): Likewise. 25935 (noncommutative_binary_comparison_result_used): Removed. 25936 (rsub_cmp0): New pattern. 25937 (rsub_cmp0_noout): Likewise. 25938 (extzvsi): Changed, keep only meaningful variants. 25939 (SQH, SEZ): New iterators. 25940 (SQH_postfix): New mode attribute. 25941 (SEZ_prefix): New code attribute. 25942 (<SEZ_prefix>xt<SQH_postfix>_cmp0_noout): New instruction pattern. 25943 (<SEZ_prefix>xt<SQH_postfix>_cmp0): Likewise. 25944 * config/arc/predicates.md (cc_set_register): Use CC_REG instead 25945 of numerical value. 25946 (noncommutative_operator): Check the availability of barrel 25947 shifter option. 25948 259492018-04-09 Richard Biener <rguenther@suse.de> 25950 25951 PR tree-optimization/85284 25952 * tree-ssa-loop-niter.c (number_of_iterations_exit_assumptions): 25953 Only use the niter constraining form of simple_iv when the exit 25954 is always executed. 25955 259562018-04-09 Tom de Vries <tom@codesourcery.com> 25957 25958 PR target/84041 25959 * config/nvptx/nvptx.md (define_c_enum "unspecv"): Add UNSPECV_MEMBAR. 25960 (define_expand "*memory_barrier"): New define_expand. 25961 (define_insn "memory_barrier"): New insn. 25962 259632018-04-09 Andrey Belevantsev <abel@ispras.ru> 25964 25965 PR rtl-optimization/80463 25966 PR rtl-optimization/83972 25967 PR rtl-optimization/83480 25968 25969 * sel-sched-ir.c (has_dependence_note_mem_dep): Take into account the 25970 correct producer for the insn. 25971 (tidy_control_flow): Fixup seqnos in case of debug insns. 25972 259732018-04-09 Andrey Belevantsev <abel@ispras.ru> 25974 25975 PR rtl-optimization/83913 25976 25977 * sel-sched-ir.c (merge_expr_data): Choose the middle between two 25978 different sched-times when merging exprs. 25979 259802018-04-09 Andrey Belevantsev <abel@ispras.ru> 25981 25982 PR rtl-optimization/83962 25983 25984 * sel-sched-ir.c (tidy_control_flow): Correct the order in which we call 25985 tidy_fallthru_edge and tidy_control_flow. 25986 259872018-04-09 Andrey Belevantsev <abel@ispras.ru> 25988 25989 PR rtl-optimization/83530 25990 25991 * sel-sched.c (force_next_insn): New global variable. 25992 (remove_insn_for_debug): When force_next_insn is true, also leave only 25993 next insn in the ready list. 25994 (sel_sched_region): When the region wasn't scheduled, make another pass 25995 over it with force_next_insn set to 1. 25996 259972018-04-08 Monk Chiang <sh.chiang04@gmail.com> 25998 25999 * config.gcc (nds32le-*-*, nds32be-*-*): Add nds32/nds32_intrinsic.h 26000 into tm_file. 26001 * config/nds32/constants.md (unspec_volatile_element): Add enum values 26002 for interrupt control. 26003 * config/nds32/nds32-intrinsic.c: Implementation of intrinsic 26004 functions for interrupt control. 26005 * config/nds32/nds32-intrinsic.md: Likewise. 26006 * config/nds32/nds32_intrinsic.h: Likewise. 26007 * config/nds32/nds32.h (nds32_builtins): Likewise. 26008 260092018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> 26010 26011 * config/nds32/nds32.c (nds32_init_machine_status, 26012 nds32_legitimate_index_p, nds32_legitimate_address_p): Consider 26013 strict_aligned_p field. 26014 (nds32_expand_to_rtl_hook): New function. 26015 (TARGET_EXPAND_TO_RTL_HOOK): Define. 26016 * config/nds32/nds32.h (machine_function): Add strict_aligned_p field. 26017 260182018-04-08 Kito Cheng <kito.cheng@gmail.com> 26019 Chung-Ju Wu <jasonwucj@gmail.com> 26020 26021 * config.gcc (nds32*-*-*): Check that n7 is valid to --with-cpu. 26022 * config/nds32/nds32-n7.md: New file. 26023 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N7. 26024 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n7 26025 pipeline. 26026 * config/nds32/nds32-protos.h: More declarations for n7 pipeline. 26027 * config/nds32/nds32.md (pipeline_model): Add n7. 26028 * config/nds32/nds32.opt (mcpu): Support n7 pipeline cpus. 26029 * config/nds32/pipelines.md: Include n7 settings. 26030 260312018-04-08 Kito Cheng <kito.cheng@gmail.com> 26032 Chung-Ju Wu <jasonwucj@gmail.com> 26033 26034 * config.gcc (nds32*-*-*): Check that e8 is valid to --with-cpu. 26035 * config/nds32/nds32-e8.md: New file. 26036 * config/nds32/nds32-opts.h (nds32-cpu_type): Add CPU_E8. 26037 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for e8 26038 pipeline. 26039 * config/nds32/nds32-protos.h: More declarations for e8 pipeline. 26040 * config/nds32/nds32.md (pipeline_model): Add e8. 26041 * config/nds32/nds32.opt (mcpu): Support e8 pipeline cpus. 26042 * config/nds32/pipelines.md: Include e8 settings. 26043 260442018-04-08 Kito Cheng <kito.cheng@gmail.com> 26045 Chung-Ju Wu <jasonwucj@gmail.com> 26046 26047 * config.gcc (nds32*-*-*): Check that n6/n8/s8 are valid to --with-cpu. 26048 * config/nds32/nds32-n8.md: New file. 26049 * config/nds32/nds32-opts.h (nds32_cpu_type): Add CPU_N6 and CPU_N8. 26050 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n8 26051 pipeline. 26052 * config/nds32/nds32-protos.h: More declarations for n8 pipeline. 26053 * config/nds32/nds32-utils.c: More implementations for n8 pipeline. 26054 * config/nds32/nds32.md (pipeline_model): Add n8. 26055 * config/nds32/nds32.opt (mcpu): Support n8 pipeline cpus. 26056 * config/nds32/pipelines.md: Include n8 settings. 26057 260582018-04-08 Kito Cheng <kito.cheng@gmail.com> 26059 Chung-Ju Wu <jasonwucj@gmail.com> 26060 26061 * config.gcc (nds32*): Add nds32-utils.o into extra_objs. 26062 * config/nds32/nds32-n9-2r1w.md: New file. 26063 * config/nds32/nds32-n9-3r2w.md: New file. 26064 * config/nds32/nds32-opts.h (nds32_cpu_type, nds32_mul_type, 26065 nds32_register_ports): New or modify for cpu n9. 26066 * config/nds32/nds32-pipelines-auxiliary.c: Implementation for n9 26067 pipeline. 26068 * config/nds32/nds32-protos.h: More declarations for n9 pipeline. 26069 * config/nds32/nds32-utils.c: New file. 26070 * config/nds32/nds32.h (TARGET_PIPELINE_N9, TARGET_PIPELINE_SIMPLE, 26071 TARGET_MUL_SLOW): Define. 26072 * config/nds32/nds32.md (pipeline_model): New attribute. 26073 * config/nds32/nds32.opt (mcpu, mconfig-mul, mconfig-register-ports): 26074 New options that support cpu n9. 26075 * config/nds32/pipelines.md: Include n9 settings. 26076 * config/nds32/t-nds32 (nds32-utils.o): Add dependency. 26077 260782018-04-08 Chung-Ju Wu <jasonwucj@gmail.com> 26079 26080 * config/nds32/nds32-md-auxiliary.c (output_cond_branch): Output align 26081 information if necessary. 26082 (output_cond_branch_compare_zero): Likewise. 26083 * config/nds32/nds32.c (nds32_adjust_insn_length): Consider align case. 26084 (nds32_target_alignment): Refine for alignment. 26085 * config/nds32/nds32.h (NDS32_ALIGN_P): Define. 26086 (FUNCTION_BOUNDARY): Modify. 26087 * config/nds32/nds32.md (call_internal, call_value_internal): Consider 26088 align case. 26089 * config/nds32/nds32.opt (malways-align, malign-functions): New. 26090 260912018-04-08 Monk Chiang <sh.chiang04@gmail.com> 26092 26093 * config/nds32/constants.md (unspec_volatile_element): Add values for 26094 TLB operation and data prefetch. 26095 * config/nds32/nds32-intrinsic.c: Implementation of intrinsic 26096 functions for TLB operation and data prefetch. 26097 * config/nds32/nds32-intrinsic.md: Likewise. 26098 * config/nds32/nds32_intrinsic.h: Likewise. 26099 * config/nds32/nds32.c (nds32_dpref_names): Likewise. 26100 (nds32_print_operand): Likewise. 26101 * config/nds32/nds32.h (nds32_builtins): Likewise. 26102 261032018-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> 26104 Andrew Pinski <pinsika@gcc.gnu.org> 26105 26106 PR middle-end/82976 26107 * match.pd: Use constant_boolean_node of correct type instead of 26108 boolean_true_node or boolean_false_node for simplifying 26109 pointer comparisons to zero. 26110 261112018-04-07 Jakub Jelinek <jakub@redhat.com> 26112 26113 PR tree-optimization/80021 26114 * tree.c (verify_type_variant): Make error call in verify_variant_match 26115 translatable and remove final full stop. 26116 261172018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 26118 26119 * config/nds32/constants.md (unspec_volatile_element): Add 26120 UNSPEC_VOLATILE_EH_RETURN. 26121 * config/nds32/nds32-md-auxiliary.c (nds32_output_stack_push, 26122 nds32_output_stack_pop): Support dwarf exception handling process. 26123 * config/nds32/nds32-protos.h (nds32_dynamic_chain_address): Declare. 26124 * config/nds32/nds32.c (nds32_init_machine_status): Support dwarf 26125 exception handling process. 26126 (nds32_compute_stack_frame): Likewise. 26127 (nds32_return_addr_rtx): Likewise. 26128 (nds32_initial_elimination_offset): Likewise. 26129 (nds32_expand_prologue): Likewise. 26130 (nds32_expand_epilogue): Likewise. 26131 (nds32_dynamic_chain_address): New function. 26132 * config/nds32/nds32.h (machine_function): Add fields for dwarf 26133 exception handling. 26134 (DYNAMIC_CHAIN_ADDRESS): Define. 26135 (EH_RETURN_DATA_REGNO): Define. 26136 (EH_RETURN_STACKADJ_RTX): Define. 26137 * config/nds32/nds32.md (eh_return, nds32_eh_return): Implement 26138 patterns for dwarf exception handling. 26139 261402018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 26141 26142 * config/nds32/nds32.h: Clean up obsolete macros. 26143 261442018-04-07 Monk Chiang <sh.chiang04@gmail.com> 26145 26146 * config/nds32/constants.md (unspec_element, unspec_volatile_element): 26147 Add enum values for particular instructions. 26148 * config/nds32/nds32-intrinsic.c: Implementation of expanding 26149 particular intrinsic functions. 26150 * config/nds32/nds32-intrinsic.md: Likewise. 26151 * config/nds32/nds32_intrinsic.h: Likewise. 26152 * config/nds32/nds32.h (nds32_builtins): Likewise. 26153 * config/nds32/nds32.md (type): Add pbsad and pbsada. 26154 (btst, ave): New patterns for particular instructions. 26155 261562018-04-07 Monk Chiang <sh.chiang04@gmail.com> 26157 26158 * config/nds32/constants.md (unspec_element, unspec_volatile_element): 26159 Add enum values for atomic load/store and memory sync. 26160 * config/nds32/nds32-intrinsic.c: Implementation for atomic load/store 26161 and memory sync. 26162 * config/nds32/nds32-intrinsic.md: Likewise. 26163 * config/nds32/nds32_intrinsic.h: Likewise. 26164 * config/nds32/nds32.h (nds32_builtins): Likewise. 26165 261662018-04-07 Jakub Jelinek <jakub@redhat.com> 26167 26168 PR tree-optimization/85257 26169 * fold-const.c (native_encode_vector): If not all elts could fit 26170 and off is -1, return 0 rather than offset. 26171 * tree-ssa-sccvn.c (vn_reference_lookup_3): Pass 26172 (offseti - offset2) / BITS_PER_UNIT as 4th argument to 26173 native_encode_expr. Verify len * BITS_PER_UNIT >= maxsizei. Don't 26174 adjust buffer in native_interpret_expr call. 26175 261762018-04-07 Monk Chiang <sh.chiang04@gmail.com> 26177 26178 * config/nds32/constants.md (unspec_volatile_element): Add cache 26179 control enum values. 26180 * config/nds32/nds32-intrinsic.c: Add cache control expand functions. 26181 * config/nds32/nds32-intrinsic.md: Add cache control patterns. 26182 * config/nds32/nds32.c (nds32_cctl_names): New. 26183 (nds32_print_operand): Handle cache control register names. 26184 * config/nds32/nds32.h (nds32_builtins): New enum values. 26185 * config/nds32/nds32_intrinsic.h: Add cache control enum types and 26186 macros. 26187 * config/nds32/nds32.md (type): Add mmu. 26188 * config/nds32/pipelines.md (simple_insn): Add mmu. 26189 261902018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 26191 26192 * config/nds32/nds32.md (type): Remove call. 26193 * config/nds32/pipelines.md (simple_insn): Likewise. 26194 261952018-04-07 Monk Chiang <sh.chiang04@gmail.com> 26196 26197 * config/nds32/constants.md (unspec_volatile_element): Add 26198 UNSPEC_VOLATILE_FMFCSR, UNSPEC_VOLATILE_FMTCSR and 26199 UNSPEC_VOLATILE_FMFCFG. 26200 * config/nds32/nds32-intrinsic.c (bdesc_noarg): New builtin 26201 description for fmfcfg and fmfcsr. 26202 (bdesc_1arg): Add fmtcsr. 26203 (bdesc_2arg): Add fcpynss, fcpyss, fcpynsd and fcpysd. 26204 (nds32_expand_builtin_impl): Deal with FPU intrinsic functions. 26205 * config/nds32/nds32-intrinsic.md (unspec_fcpynsd, unspec_fcpysd, 26206 unspec_fcpynss, unspec_fcpysd, unspec_fcpyss, unspec_fmfcsr, 26207 unspec_fmfcfg): New patterns. 26208 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FMFCFG, 26209 NDS32_BUILTIN_FMFCSR, NDS32_BUILTIN_FMTCSR, NDS32_BUILTIN_FCPYNSS, 26210 NDS32_BUILTIN_FCPYSS,NDS32_BUILTIN_FCPYNSD and NDS32_BUILTIN_FCPYSD. 26211 * config/nds32/nds32_intrinsic.h (__nds32__fcpynsd, __nds32__fcpynss, 26212 __nds32__fcpysd, __nds32__fcpyss, __nds32__fmfcsr, __nds32__fmtcsr, 26213 __nds32__fmfcfg): Define. 26214 262152018-04-07 Monk Chiang <sh.chiang04@gmail.com> 26216 26217 * config/nds32/nds32.c (nds32_intrinsic_register_names): Add more 26218 intrinsic register names. 26219 * config/nds32/nds32_intrinsic.h (nds32_intrinsic_registers): Add more 26220 intrinsic register enum values and macros. 26221 262222018-04-07 Chung-Ju Wu <jasonwucj@gmail.com> 26223 26224 * config/nds32/nds32.c (nds32_legitimate_index_p): Modify condition 26225 for load/store addressing form. 26226 (nds32_print_operand_address): Likewise. 26227 262282018-04-06 Eric Botcazou <ebotcazou@adacore.com> 26229 26230 PR target/85196 26231 * config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands 26232 based on LABEL_REF. Remove useless assertion. 26233 (pic_address_needs_scratch): Fix formatting. 26234 (sparc_legitimize_pic_address): Minor tweaks. 26235 (sparc_delegitimize_address): Adjust assertion accordingly. 26236 * config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand 26237 into symbolic_operand. 26238 (movsi_high_pic_label_ref): Likewise. 26239 (movsi_lo_sum_pic_label_ref): Likewise. 26240 (movdi_pic_label_ref): Likewise. 26241 (movdi_high_pic_label_ref): Likewise. 26242 (movdi_lo_sum_pic_label_ref): Likewise. 26243 262442018-04-06 Amaan Cheval <amaan.cheval@gmail.com> 26245 26246 * config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for 26247 custom LIB_SPEC setup. 26248 262492018-04-06 Ruslan Bukin <br@bsdpad.com> 26250 Kito Cheng <kito.cheng@gmail.com> 26251 26252 * config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support. 26253 * config/riscv/freebsd.h: New. 26254 262552018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 26256 26257 * config/nds32/nds32.c (nds32_adjust_insn_length): Refine. 26258 * config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in 26259 file. 26260 262612018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 26262 Kito Cheng <kito.cheng@gmail.com> 26263 26264 * config/nds32/nds32-md-auxiliary.c (nds32_output_return, 26265 nds32_output_call, nds32_symbol_binds_local_p): New functions. 26266 * config/nds32/nds32-protos.h (nds32_output_call, 26267 nds32_output_return): Declare. 26268 * config/nds32/nds32.md: Refine all the call and return patterns. 26269 262702018-04-06 Jakub Jelinek <jakub@redhat.com> 26271 26272 PR debug/85252 26273 * dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only 26274 build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST. 26275 26276 PR rtl-optimization/84872 26277 * cfgloopmanip.c (create_preheader): Use make_forwarder_block even if 26278 nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is 26279 EDGE_CROSSING edge. 26280 262812018-04-06 Tamar Christina <tamar.christina@arm.com> 26282 26283 * expr.c (copy_blkmode_to_reg): Revert 254862. 26284 * doc/sourcebuild.texi (word_mode_no_slow_unalign): Likewise. 26285 262862018-04-06 Richard Biener <rguenther@suse.de> 26287 26288 PR middle-end/85244 26289 * tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref 26290 after seeing a component reference with an adjacent field. Treat 26291 refs to arrays at struct end of external decls similar to 26292 refs to unconstrained commons. 26293 262942018-04-06 Jakub Jelinek <jakub@redhat.com> 26295 26296 PR sanitizer/85213 26297 * fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't 26298 look through SAVE_EXPRs with non-side-effects argument. Adjust 26299 recursive calls. 26300 (fold_comparison): Adjust twoval_comparison_p caller, don't handle 26301 save_p here. 26302 263032018-04-06 Richard Biener <rguenther@suse.de> 26304 26305 PR middle-end/85180 26306 * alias.c (find_base_term): New wrapper around find_base_term 26307 unwinding CSELIB_VAL_PTR changes. 26308 (find_base_term): Do not restore CSELIB_VAL_PTR during the 26309 recursion. 26310 263112018-04-06 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 26312 26313 * config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP 26314 instructions. 26315 * config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New 26316 constant definitions. 26317 ("nop"): lr 0,0 -> nopr r0 26318 ("nop_lr0", "nop_lr1"): New insn definitions. 26319 263202018-04-06 Chung-Ju Wu <jasonwucj@gmail.com> 26321 26322 * config/nds32/nds32.md (*stack_push, *stack_pop): Use 26323 NDS32_V3PUSH_AVAILABLE_P macro. 26324 263252018-04-06 Monk Chiang <sh.chiang04@gmail.com> 26326 Chung-Ju Wu <jasonwucj@gmail.com> 26327 26328 * config.gcc (nds32*-*-*): Add v2j v3f v3s checking. 26329 (nds32*-*-*): Add float and fpu_config into supported_defaults. 26330 * common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS): 26331 Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA. 26332 * config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN, 26333 UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS. 26334 * config/nds32/constraints.md: New constraints and checking for hard 26335 float configuration. 26336 * config/nds32/iterators.md: New mode iterator and attribute for hard 26337 float configuration. 26338 * config/nds32/nds32-doubleword.md: Use hard float alternatives and 26339 patterns. 26340 * config/nds32/nds32-fpu.md: New file. 26341 * config/nds32/nds32-md-auxiliary.c: New functions and checkings to 26342 deal with hard float code generation. 26343 * config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and 26344 ARCH_V3S. 26345 (abi_type, float_reg_number): New enum type. 26346 * config/nds32/nds32-predicates.c: New predicates for hard float. 26347 * config/nds32/nds32-protos.h: Declare functions for hard float. 26348 * config/nds32/nds32.c: Implementation for hard float configuration. 26349 * config/nds32/nds32.h: Definitions for hard float configuration. 26350 * config/nds32/nds32.md: Include hard float machine description and 26351 modify patterns for hard float configuration. 26352 * config/nds32/nds32.opt: New options for hard float configuration. 26353 * config/nds32/predicates.md: New predicates for hard float 26354 configuration. 26355 263562018-04-06 Kuan-Lin Chen <kuanlinchentw@gmail.com> 26357 26358 * common/config/nds32/nds32-common.c 26359 (nds32_option_optimization_table): Enable -mreleax-hint by default. 26360 263612018-04-05 Jakub Jelinek <jakub@redhat.com> 26362 26363 PR middle-end/85195 26364 * match.pd (BIT_FIELD_REF CONSTRUCTOR@0 @1 @2): Use view_convert around 26365 CONSTRUCTOR_ELT (ctor, ...)->value. 26366 263672018-04-05 Uros Bizjak <ubizjak@gmail.com> 26368 26369 PR target/85193 26370 * config/i386/i386.md (define_attr "memory"): Handle rotate1 type. 26371 263722018-04-05 Tom de Vries <tom@codesourcery.com> 26373 26374 PR target/85204 26375 * config/nvptx/nvptx.c (nvptx_single): Fix neutering of bb with only 26376 cond jump. 26377 263782018-04-05 Shiva Chen <shiva0217@gmail.com> 26379 Kito Cheng <kito.cheng@gmail.com> 26380 26381 * config/nds32/constraints.md (U33): Fine-tune checking condition. 26382 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format): Ditto. 26383 * config/nds32/nds32.h (nds32_16bit_address_type): Add 26384 ADDRESS_POST_MODIFY_LO_REG_IMM3U. 26385 263862018-04-05 Shiva Chen <shiva0217@gmail.com> 26387 Kito Cheng <kito.cheng@gmail.com> 26388 26389 * config/nds32/constraints.md (Ufe): New memory constraint. 26390 * config/nds32/nds32-md-auxiliary.c (nds32_mem_format, 26391 nds32_output_16bit_load): Consider r8 register for lwi45.fe format. 26392 * config/nds32/nds32.c (nds32_print_operand): Output lwi45.fe 26393 operands. 26394 * config/nds32/nds32.h (nds32_16bit_address_type): Add ADDRESS_R8_IMM7U. 26395 * config/nds32/nds32.md (*mov<mode>): Adjust pattern. 26396 263972018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 26398 26399 * config/nds32/nds32.md: Use optimize_size in the condition for 26400 alu-shift instructions. 26401 264022018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 26403 26404 * config/nds32/nds32.md (divsi4, udivsi4): New patterns. 26405 264062018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 26407 26408 * config/nds32/nds32.md (negsi2): Refine pattern. 26409 264102018-04-05 Kito Cheng <kito.cheng@gmail.com> 26411 Chung-Ju Wu <jasonwucj@gmail.com> 26412 26413 * config/nds32/iterators.md (shift_rotate): New code iterator. 26414 (shift): New code attribute. 26415 * config/nds32/nds32-md-auxiliary.c (nds32_expand_constant): New. 26416 * config/nds32/nds32-protos.h (nds32_expand_constant): Declare. 26417 * config/nds32/nds32.c (nds32_print_operand): Deal with more cases. 26418 * config/nds32/nds32.md (addsi3, *add_srli): Refine implementation for 26419 bit-wise operations. 26420 (andsi3, *andsi3): Ditto. 26421 (iorsi3, *iorsi3, *or_slli, *or_srli): Ditto. 26422 (xorsi3, *xorsi3, *xor_slli, *xor_srli): Ditto. 26423 (<shift>si3, *ashlsi3, *ashrsi3, *lshrsi3, *rotrsi3): Ditto. 26424 * config/nds32/predicates.md (nds32_rimm5u_operand, nds32_and_operand, 26425 nds32_ior_operand, nds32_xor_operand): New predicates. 26426 264272018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 26428 26429 * config/nds32/nds32.md (add<mode>3, sub<mode>3): Rename to ... 26430 (addsi3, subsi3): ... this. 26431 264322018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 26433 26434 * config/nds32/nds32.md (*sub_srli, *and_slli): Fine-tune predicator. 26435 264362018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 26437 26438 * config/nds32/nds32.md: Adjust indention. 26439 264402018-04-05 Kito Cheng <kito.cheng@gmail.com> 26441 26442 * config/nds32/nds32.md (feature): New attribute. 26443 264442018-04-05 Chung-Ju Wu <jasonwucj@gmail.com> 26445 26446 * config/nds32/nds32.md (subtype): New attribute. 26447 264482018-04-04 Thomas Preud'homme <thomas.preudhomme@arm.com> 26449 26450 PR target/85203 26451 * config/arm/arm-builtins.c (arm_expand_builtin): Change 26452 expansion to perform a bitwise AND of the argument followed by a 26453 boolean negation of the result. 26454 264552018-04-04 Peter Bergner <bergner@vnet.ibm.com> 26456 26457 PR rtl-optimization/84878 26458 * ddg.c (add_cross_iteration_register_deps): Use DF_REF_BB to determine 26459 the basic block. Assert the use reference is not artificial and that 26460 it has an associated insn. 26461 264622018-04-04 Michael Matz <matz@suse.de> 26463 26464 * builtins.c (compute_objsize): Pass correct operand 26465 to array_at_struct_end_p. 26466 264672018-04-04 Richard Biener <rguenther@suse.de> 26468 26469 PR lto/85176 26470 * dwarf2out.c (dwarf2out_register_external_die): Peel namespaces 26471 from contexts for DINFO_LEVEL_TERSE and below. 26472 264732018-04-04 Kito Cheng <kito.cheng@gmail.com> 26474 26475 * config/nds32/nds32-doubleword.md (move_<mode>): Require 26476 resiter_operand condition. 26477 * config/nds32/nds32.md (*move<mode>): Ditto. 26478 264792018-04-04 Kito Cheng <kito.cheng@gmail.com> 26480 Monk Chiang <sh.chiang04@gmail.com> 26481 26482 * config/nds32/nds32.md (movmisalign<mode>): New pattern. 26483 264842018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 26485 26486 * config/nds32/nds32.md (movqi, movhi): Merge into mov<mode>. 26487 264882018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 26489 Kito Cheng <kito.cheng@gmail.com> 26490 26491 * config/nds32/nds32-md-auxiliary.c (nds32_inverse_cond_code, 26492 nds32_cond_code_str, output_cond_branch, 26493 output_cond_branch_compare_zero, nds32_expand_cbranch, 26494 nds32_expand_cstore, nds32_expand_movcc, 26495 nds32_output_cbranchsi4_equality_zero, 26496 nds32_output_cbranchsi4_equality_reg, 26497 nds32_output_cbranchsi4_equality_reg_or_const_int, 26498 nds32_output_cbranchsi4_greater_less_zero: New functions. 26499 * config/nds32/nds32-protos.h (nds32_expand_cbranch, 26500 nds32_expand_cstore, nds32_expand_movcc, 26501 nds32_output_cbranchsi4_equality_zero, 26502 nds32_output_cbranchsi4_equality_reg, 26503 nds32_output_cbranchsi4_equality_reg_or_const_int, 26504 nds32_output_cbranchsi4_greater_less_zero): Declare. 26505 * config/nds32/predicates.md (nds32_movecc_comparison_operator, 26506 nds32_rimm11s_operand): New predicates. 26507 * config/nds32/nds32.h (nds32_expand_result_type): New enum type. 26508 * config/nds32/nds32.md: Rewrite all the branch and conditional move 26509 patterns. 26510 265112018-04-04 Kito Cheng <kito.cheng@gmail.com> 26512 26513 * config/nds32/nds32-doubleword.md: Refine all the instruction type. 26514 * config/nds32/nds32.md: Ditto. 26515 * config/nds32/pipelines.md: Ditto. 26516 265172018-04-04 Richard Biener <rguenther@suse.de> 26518 26519 PR tree-optimization/85168 26520 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): Avoid 26521 propagating abnormals. 26522 265232018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 26524 26525 * config/nds32/nds32.md (enabled): Use yes/no for this attribute. 26526 265272018-04-04 Chung-Ju Wu <jasonwucj@gmail.com> 26528 Kito Cheng <kito.cheng@gmail.com> 26529 26530 * config/nds32/nds32-md-auxiliary.c (nds32_long_call_p): New function. 26531 * config/nds32/nds32-protos.h (nds32_long_call_p): Declare. 26532 * config/nds32/nds32.c (nds32_function_ok_for_sibcall): New function. 26533 (TARGET_FUNCTION_OK_FOR_SIBCALL): Define. 26534 * config/nds32/nds32.md (sibcall_internal): New. 26535 (sibcall_register): Remove. 26536 (sibcall_immediate): Remove. 26537 (sibcall_value_internal): New. 26538 (sibcall_value_register): Remove. 26539 (sibcall_value_immediate): Remove. 26540 * config/nds32/predicates.md (nds32_general_register_operand): New. 26541 (nds32_call_address_operand): New. 26542 265432018-04-03 Jakub Jelinek <jakub@redhat.com> 26544 26545 PR rtl-optimization/85167 26546 * shrink-wrap.c (move_insn_for_shrink_wrap): Don't set bb_uses and 26547 bb_defs if *split_p, instead preinitialize it to NULL. 26548 26549 PR tree-optimization/85156 26550 * builtins.c (fold_builtin_expect): Use save_expr on arg1 to avoid 26551 evaluating the argument multiple times. 26552 265532018-04-03 Bill Schmidt <wschmidt@linux.ibm.com> 26554 26555 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Use __vector rather 26556 than vector. 26557 (_mm_cvtpd_ps): Likewise. 26558 (_mm_cvttpd_epi32): Likewise. 26559 * config/rs6000/mmintrin.h (_mm_unpacklo_pi8): Likewise. 26560 * config/rs6000/xmmintrin.h: For strict-ANSI C++ or C11, undefine 26561 vector, pixel, and bool following altivec.h include. 26562 265632018-04-03 Martin Sebor <msebor@redhat.com> 26564 26565 * doc/extend.texi (Common Function Attributes): Clarify. 26566 (const attribute): Likewise. 26567 (pure attribute): Likewise. 26568 265692018-04-03 Jakub Jelinek <jakub@redhat.com> 26570 26571 PR target/85169 26572 * config/i386/i386.c (ix86_expand_vector_set): Use 26573 HOST_WIDE_INT_1U << elt instead of 1 << elt. Formatting fix. 26574 265752018-04-03 Uros Bizjak <ubizjak@gmail.com> 26576 26577 * config/i386/i386.c (emit_i387_cw_initialization): Always use logic 26578 instructions when changing rounding bits to preserve precision bits 26579 in the x87 control word. 26580 265812018-04-03 Martin Liska <mliska@suse.cz> 26582 26583 PR tree-optimization/82491 26584 * rtl.h (strip_offset_and_add): Replace += suboffset with 26585 poly_uint64 () + suboffset. 26586 265872018-03-29 Martin Liska <mliska@suse.cz> 26588 Martin Jambor <mjambor@suse.cz> 26589 26590 PR ipa/84947 26591 * ipa-cp.c (propagate_bits_across_jump_function): Bail out if 26592 param_type is not an integral or pointer type. 26593 265942018-04-03 Richard Biener <rguenther@suse.de> 26595 26596 * sese.h (recompute_all_dominators): Remove. 26597 265982018-04-02 Martin Sebor <msebor@redhat.com> 26599 26600 * doc/invoke.texi (-Wrestrict): Fix typos. 26601 266022018-04-02 Jim Wilson <jimw@sifive.com> 26603 26604 * config/riscv/riscv.h (SHIFT_COUNT_TRUNCATED): Set to zero. 26605 * config/riscv/riscv.md (<optab>si3): Use QImode shift count. 26606 (<optab>di3, <optab>si3_extend): Likewise. 26607 (<optab>si3_mask, <optab>si3_mask_1): New. 26608 (<optab>di3_mask, <optab>di3_mask_1): New. 26609 (<optab>si3_extend_mask, <optab>si3_extend_mask_1): New. 26610 (lshrsi3_zero_extend_1): Use VOIDmode shift count. 26611 * config/riscv/sync.md (atomic_test_and_set): Emit QImode shift count. 26612 266132018-04-02 Gerald Pfeifer <gerald@pfeifer.com> 26614 26615 * doc/cpp.texi (Variadic Macros): Fix line continuation in an 26616 example. 26617 266182018-04-02 Chung-Ju Wu <jasonwucj@gmail.com> 26619 26620 * config/nds32/nds32.c (TARGET_CANONICALIZE_COMPARISON): Define. 26621 (nds32_canonicalize_comparison): New function. 26622 266232018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 26624 Kito Cheng <kito.cheng@gmail.com> 26625 Kuan-Lin Chen <kuanlinchentw@gmail.com> 26626 26627 * config.gcc (nds32): Add nds32-relax-opt.o into extra_objs. 26628 * config/nds32/constants.md (unspec_volatile_element): Add 26629 UNSPEC_VOLATILE_RELAX_GROUP. 26630 * config/nds32/nds32-relax-opt.c: New file. 26631 * config/nds32/nds32-predicates.c 26632 (nds32_symbol_load_store_p): New function. 26633 * config/nds32/nds32-protos.h 26634 (nds32_symbol_load_store_p): Declare function. 26635 (make_pass_nds32_relax_opt): Declare new rtl pass function. 26636 * config/nds32/nds32.c 26637 (nds32_register_pass): New function to register pass. 26638 (nds32_register_passes): New function to register passes. 26639 * config/nds32/nds32.md (relax_group): New pattern. 26640 * config/nds32/nds32.opt (mrelax-hint): New option. 26641 * config/nds32/t-nds32 (nds32-relax-opt.o): New dependency. 26642 266432018-04-01 Kito Cheng <kito.cheng@gmail.com> 26644 26645 * config/nds32/t-nds32: Modify files dependency. 26646 266472018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 26648 26649 * config/nds32/nds32.h (FUNCTION_PROFILER): Output newline character. 26650 (PROFILE_HOOK): Define its implementation. 26651 266522018-04-01 Chung-Ju Wu <jasonwucj@gmail.com> 26653 26654 * config/nds32/nds32.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Use unsigned int 26655 type and 32-bit size. 26656 266572018-04-01 Jakub Jelinek <jakub@redhat.com> 26658 26659 PR middle-end/85090 26660 * config/i386/sse.md (V): Add V64QI and V32HI for TARGET_AVX512F. 26661 (V_128_256): New mode iterator. 26662 (*avx512dq_vextract<shuffletype>64x2_1 splitter): New define_split. 26663 (*avx512f_vextract<shuffletype>32x4_1 splitter): Likewise. 26664 (xop_pcmov_<mode><avxsizesuffix>): Use V_128_256 mode iterator instead 26665 of V. 26666 * config/i386/i386.c (ix86_expand_vector_set): Improve V32HImode and 26667 V64QImode expansion for !TARGET_AVX512BW && TARGET_AVX512F. 26668 266692018-03-31 Segher Boessenkool <segher@kernel.crashing.org> 26670 26671 PR target/83315 26672 * config/rs6000/xmmintrin.h (_mm_set_ps, _mm_max_ps): Handle (quiet) 26673 NaN inputs correctly. 26674 266752018-03-30 Peter Bergner <bergner@vnet.ibm.com> 26676 26677 PR target/80546 26678 * config/rs6000/vsx.md (??r): New mode attribute. 26679 (*vsx_mov<mode>_64bit): Use it. 26680 (*vsx_mov<mode>_32bit): Likewise. 26681 266822018-03-30 Martin Sebor <msebor@redhat.com> 26683 26684 PR tree-optimization/84818 26685 * builtins.c (check_access): Use warning_n. 26686 266872018-03-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 26688 26689 PR target/83822 26690 * config/rs6000/rs6000-string.c (expand_compare_loop): Fix redundant 26691 condition. 26692 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Fix redundant 26693 condition. 26694 266952018-03-30 Julia Koval <julia.koval@intel.com> 26696 26697 PR target/84413 26698 * x86-tune.def (movx, partial_reg_dependency): Enable for 26699 m_SKYLAKE_AVX512. 26700 267012018-03-29 Vladimir Makarov <vmakarov@redhat.com> 26702 26703 PR inline-asm/84985 26704 * lra-constraints.c (process_alt_operands): Move setting 26705 this_alternative_matches below. 26706 267072018-03-29 Martin Liska <mliska@suse.cz> 26708 26709 PR lto/84995. 26710 * doc/invoke.texi: Document how LTO works with debug info. 26711 Describe auto-load support of binutils. Mention 'x86-64' 26712 as valid option value of -march option. 26713 267142018-03-29 Jakub Jelinek <jakub@redhat.com> 26715 26716 * config/i386/sse.md (<avx512>_blendm<mode>): Use <sseintprefix>. 26717 26718 PR c/85094 26719 * fold-const.c (operand_equal_p): Handle DEBUG_BEGIN_STMT. 26720 For STATEMENT_LIST, pass down OEP_LEXICOGRAPHIC and maybe 26721 OEP_NO_HASH_CHECK for recursive call, to avoid exponential 26722 checking. 26723 267242018-03-28 Peter Bergner <bergner@vnet.ibm.com> 26725 26726 PR target/84912 26727 * config/rs6000/rs6000.h (RS6000_BTM_POWERPC64): New define. 26728 (RS6000_BTM_COMMON): Add RS6000_BTM_POWERPC64. 26729 * config/rs6000/rs6000.c (rs6000_builtin_mask_calculate): Add support 26730 for RS6000_BTM_POWERPC64. 26731 (rs6000_invalid_builtin): Add handling for RS6000_BTM_POWERPC64 26732 (rs6000_builtin_mask_names): Add RS6000_BTM_POWERPC64. 26733 * config/rs6000/rs6000-builtin.def (BU_P7_POWERPC64_MISC_2): New macro 26734 definition. 26735 (DIVDE): Use it. 26736 (DIVDEU): Likewise. 26737 267382018-03-28 Carl Love <cel@us.ibm.com> 26739 26740 Revert 26741 2017-09-27 Carl Love <cel@us.ibm.com> 26742 26743 * config/rs6000/rs6000-builtin.def (BU_FP_1MISC_1): Add define macro. 26744 (FCTID, FCTIW): Add BU_FP_MISC_1 macro expansion for builtins. 26745 * config/rs6000/rs6000.md (lrintsfsi2): Add define_insn for the 26746 fctiw instruction. 26747 267482018-03-28 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 26749 26750 * config/rs6000/xmmintrin.h (_mm_max_pi16): Use __vector __bool 26751 instead of __vector bool. 26752 (_mm_max_pu8): Likewise. 26753 (_mm_min_pi16): Likewise. 26754 267552018-03-28 Peter Bergner <bergner@vnet.ibm.com> 26756 26757 PR target/84912 26758 * config/rs6000/rs6000-builtin.def (DIVWEO): Delete macro expansion. 26759 (DIVWEUO): Likewise. 26760 (DIVDEO): Likewise. 26761 (DIVDEUO): Likewise. 26762 * config/rs6000/rs6000.c (builtin_function_type): Remove support for 26763 DIVWEUO and DIVDEUO. 26764 * config/rs6000/rs6000.md (UNSPEC_DIVEO, UNSPEC_DIVEUO): Delete unspecs. 26765 (UNSPEC_DIV_EXTEND): Remove deleted unspecs. 26766 (div_extend): Likewise. 26767 * doc/extend.texi (__builtin_divweo): Remove documentation for deleted 26768 builtin function. 26769 (__builtin_divweuo): Likewise. 26770 (__builtin_divdeo): Likewise. 26771 (__builtin_divdeuo): Likewise. 26772 267732018-03-28 Jakub Jelinek <jakub@redhat.com> 26774 26775 PR target/85095 26776 * config/i386/i386.md (*add<mode>3_carry_0, *addsi3_carry_zext_0, 26777 *sub<mode>3_carry_0, *subsi3_carry_zext_0): New patterns. 26778 26779 PR tree-optimization/82004 26780 * gimple-match-head.c (optimize_pow_to_exp): New function. 26781 * match.pd (pow(C,x) -> exp(log(C)*x)): Wrap with #if GIMPLE. 26782 Don't fold to exp if optimize_pow_to_exp is false. 26783 267842018-03-28 Martin Liska <mliska@suse.cz> 26785 26786 PR other/84819 26787 * calls.c (initialize_argument_information): Fix trailing space. 26788 * common.opt: Fix typo and provide better explanation for 26789 -fsanitize-coverage option. 26790 * config/i386/i386.opt: Fix typo. 26791 267922018-03-28 Jakub Jelinek <jakub@redhat.com> 26793 Martin Liska <mliska@suse.cz> 26794 26795 PR sanitizer/85081 26796 * gimplify.c (asan_poison_variable): Don't do the check for 26797 gimplify_omp_ctxp here. 26798 (gimplify_decl_expr): Do it here. 26799 (gimplify_target_expr): Likewise. 26800 268012018-03-28 Martin Liska <mliska@suse.cz> 26802 26803 PR target/84988 26804 * config/i386/i386.c (ix86_function_arg_advance): Do not call 26805 chkp_type_bounds_count if MPX is not enabled. 26806 268072018-03-27 Chung-Ju Wu <jasonwucj@gmail.com> 26808 26809 * config/nds32/nds32.h (BRANCH_COST): Adjust cost. 26810 268112018-03-27 Michael Meissner <meissner@linux.vnet.ibm.com> 26812 26813 PR target/84914 26814 * config/rs6000/rs6000.c (create_complex_muldiv): New helper 26815 function to create the function decl for complex long double 26816 multiply and divide for -mabi=ieeelongdouble. 26817 (init_float128_ieee): Call it. 26818 268192018-03-27 H.J. Lu <hongjiu.lu@intel.com> 26820 26821 PR target/85044 26822 * config/i386/i386.c (ix86_trampoline_init): Insert ENDBR for 26823 -fcf-protection=branch -mibt. 26824 * config/i386/i386.h (TRAMPOLINE_SIZE): Increased by 4 bytes. 26825 268262018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 26827 26828 PR target/81863 26829 * config/arm/arm.c (arm_valid_symbolic_address): Handle 26830 arm_word_relocations. 26831 268322018-03-27 Cesar Philippidis <cesar@codesourcery.com> 26833 26834 PR target/85056 26835 * config/nvptx/nvptx.c (nvptx_assemble_decl_begin): Add '[]' to 26836 extern array declarations. 26837 268382018-03-27 Richard Biener <rguenther@suse.de> 26839 26840 PR middle-end/84067 26841 * match.pd ((A * C) +- (B * C) -> (A+-B) * C): Guard with 26842 explicit single_use checks. 26843 268442018-03-27 Richard Biener <rguenther@suse.de> 26845 26846 PR tree-optimization/85082 26847 * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_for_pieces): 26848 Valueize the VUSE. 26849 268502018-03-27 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 26851 26852 * config.gcc (aarch64*-*-linux*): New TARGET_DEFAULT_ASYNC_UNWIND_TABLES 26853 * common/config/aarch64/aarch64-common.c (aarch64_optimization_table[]): 26854 Turn on fasynchronous-unwind-tables and funwind-tables. 26855 268562018-03-26 Uros Bizjak <ubizjak@gmail.com> 26857 26858 PR target/85073 26859 * config/i386/i386.md (*bmi_blsr_<mode>_cmp): New insn pattern. 26860 (*bmi_blsr_<mode>_ccz): Ditto. 26861 268622018-03-26 Tom de Vries <tom@codesourcery.com> 26863 26864 PR tree-optimization/85063 26865 * omp-general.c (offloading_function_p): New function. Factor out 26866 of ... 26867 * omp-offload.c (pass_omp_target_link::gate): ... here. 26868 * omp-general.h (offloading_function_p): Declare. 26869 * tree-switch-conversion.c (build_one_array): Mark CSWTCH.x variable 26870 with attribute omp declare target for offloading functions. 26871 268722018-03-24 Richard Sandiford <richard.sandiford@linaro.org> 26873 26874 PR tree-optimization/84005 26875 * tree-data-ref.h (get_base_for_alignment): Declare. 26876 * tree-data-ref.c (get_base_for_alignment_1): New function. 26877 (get_base_for_alignment): Likewise. 26878 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Use 26879 get_base_for_alignment to find a suitable base object, instead 26880 of always using drb->base_address. 26881 268822018-03-23 Jakub Jelinek <jakub@redhat.com> 26883 26884 PR inline-asm/85022 26885 * emit-rtl.c (init_emit_regs): Indicate that VOIDmode MEMs don't have 26886 known size by default. 26887 268882018-03-23 Vladimir Makarov <vmakarov@redhat.com> 26889 26890 PR inline-asm/85030 26891 * lra-constraints.c (process_alt_operands): Don't match BLKmode 26892 and non BLKmode operands. 26893 268942018-03-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 26895 26896 PR target/85026 26897 * config/arm/arm.md (unaligned_loadhis): Remove first alternative. 26898 Clean up attributes. 26899 269002018-03-23 Richard Biener <rguenther@suse.de> 26901 26902 PR debug/85020 26903 * dwarf2out.c (rtl_for_decl_location): Do not generate RTL early when 26904 we are going to emit early debug for LTO. 26905 269062018-03-23 Jakub Jelinek <jakub@redhat.com> 26907 26908 PR inline-asm/85034 26909 * function.c (match_asm_constraints_1): Don't optimize if input 26910 doesn't satisfy general_operand predicate for output's mode. 26911 26912 PR inline-asm/85022 26913 * alias.c (write_dependence_p): Don't require for x_canonicalized 26914 non-VOIDmode if x has VOIDmode. 26915 26916 PR sanitizer/85029 26917 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): If DECL_REGISTER (base), 26918 just don't try to optimize it rather than assert it never happens. 26919 269202018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 26921 26922 * config/rs6000/rs6000-builtin.def: Remove various BU_ALTIVEC_X 26923 macro expansions for definition of ST_INTERNAL_<mode> and 26924 LD_INTERNAL_<mode> builtins. 26925 * config/rs6000/rs6000-protos.h (rs6000_address_for_altivec): 26926 Remove prototype. 26927 * config/rs6000/rs6000.c (altivec_expand_ld_builtin): Delete this 26928 function. 26929 (altivec_expand_st_builtin): Likewise. 26930 (altivec_expand_builtin): Remove calls to deleted functions. 26931 (rs6000_address_for_altivec): Delete this function. 26932 * config/rs6000/vector.md: Remove expands for 26933 vector_altivec_load_<mode> and vector_altivec_store_<mode>. 26934 269352018-03-22 Sudakshina Das <sudi.das@arm.com> 26936 26937 PR target/84826 26938 * config/arm/arm.h (machine_function): Add static_chain_stack_bytes. 26939 * config/arm/arm.c (arm_compute_static_chain_stack_bytes): Avoid 26940 re-computing once computed. 26941 (arm_expand_prologue): Compute machine->static_chain_stack_bytes. 26942 (arm_init_machine_status): Initialize 26943 machine->static_chain_stack_bytes. 26944 269452018-03-22 Kelvin Nilsen <kelvin@gcc.gnu.org> 26946 26947 PR target/84760 26948 * doc/extend.texi: Add four new prototypes for vec_ld. 26949 * config/rs6000/rs6000-builtin.def (LVX_V1TI): Reorder symbol 26950 definitions for more logical presentation. 26951 * config/rs6000/rs6000-c.c: (altivec_overloaded_builtins): Add 26952 entries for V1TI variants of __builtin_altivec_ld builtin. 26953 * config/rs6000/rs6000.c: (altivec_expand_lv_builtin): Add test and 26954 handling of V1TI variant of LVX icode pattern. 26955 (altivec_expand_builtin): Add case for ALTIVEC_BUILTIN_LVX_V1TI. 26956 (rs6000_gimple_fold_builtin): Likewise. 26957 (altivec_init_builtins): Add code to define 26958 __builtin_altivec_lvx_v1ti function. 26959 269602018-03-22 Jakub Jelinek <jakub@redhat.com> 26961 26962 PR inline-asm/84941 26963 * function.c (match_asm_constraints_1): Don't do the optimization 26964 if input isn't a REG, SUBREG, MEM or constant. 26965 269662018-03-22 Tom de Vries <tom@codesourcery.com> 26967 26968 PR tree-optimization/84956 26969 * tree-ssa-tail-merge.c (find_clusters_1): Skip bbs with 26970 bb_has_abnormal_pred. 26971 269722018-03-22 Jakub Jelinek <jakub@redhat.com> 26973 26974 PR sanitizer/85018 26975 * dwarf2asm.c (dw2_output_indirect_constant_1): Set 26976 DECL_INITIAL (decl) to decl at the end. 26977 * varasm.c (use_blocks_for_decl_p): Revert the 2018-03-20 change, 26978 adjust the comment. 26979 269802018-03-21 Joseph Myers <joseph@codesourcery.com> 26981 26982 * doc/extend.texi (__builtin_tgmath): Document when complex 26983 integer types are treated as _Complex _Float64. 26984 269852018-03-21 Tom de Vries <tom@codesourcery.com> 26986 26987 * doc/extend.texi (__builtin_extend_pointer): Remove pasto. 26988 269892018-03-21 Jakub Jelinek <jakub@redhat.com> 26990 26991 PR tree-optimization/84960 26992 * tree-cfg.c (remove_bb): Don't move forced labels into bb->prev_bb 26993 if it is ENTRY block, move them into single succ of ENTRY in that case. 26994 269952018-03-21 Richard Sandiford <richard.sandiford@linaro.org> 26996 26997 PR tree-optimization/84811 26998 * poly-int.h (poly_span_traits): Remove the T3 parameter and 26999 promote HOST_WIDE_INT T2 - T1 results to unsigned HOST_WIDE_INT. 27000 (maybe_in_range_p, known_in_range_p, ranges_known_overlap_p): 27001 (known_subrange_p): Update accordingly. Cast each value involved 27002 in the size comparison, rather than casting the result of the 27003 subtraction. 27004 270052018-03-21 Jakub Jelinek <jakub@redhat.com> 27006 27007 PR tree-optimization/84982 27008 * gimple-ssa-store-merging.c (invert_op): Handle boolean inversion 27009 by flipping the least significant bit rather than all bits from 27010 bitpos to bitpos + bitsize - 1. 27011 270122018-03-21 Nathan Sidwell <nathan@acm.org> 27013 27014 * doc/extend.texi (Deprecated Features): Remove mention of 27015 long-deleted deprecations. 27016 270172018-03-21 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 27018 27019 PR jit/84288 27020 * configure.ac (gcc_cv_ld_soname) <*-*-solaris2*>: Set. 27021 * configure: Regenerate. 27022 270232018-03-21 Tom de Vries <tom@codesourcery.com> 27024 27025 PR tree-optimization/83126 27026 * tree-parloops.c (num_phis): New function. 27027 (gen_parallel_loop): Detect and handle canonicalize_loop_ivs failure. 27028 270292018-03-21 Nathan Sidwell <nathan@acm.org> 27030 27031 * doc/extend.texi (Deprecated Features): Update deprecated flags, 27032 mention anon-struct/union members and trailing attributes. 27033 270342018-03-21 Bin Cheng <bin.cheng@arm.com> 27035 27036 PR tree-optimization/84969 27037 * tree-loop-distribution.c (fuse_memset_builtins): Don't reorder 27038 builtin memset partitions if they set different rhs values. 27039 270402018-03-21 Jakub Jelinek <jakub@redhat.com> 27041 27042 PR rtl-optimization/84989 27043 * simplify-rtx.c (simplify_unary_operation_1): Don't try to simplify 27044 VEC_DUPLICATE with scalar result mode. 27045 270462018-03-21 Martin Liska <mliska@suse.cz> 27047 27048 PR ipa/84963 27049 * ipa-icf.c (sem_item_optimizer::fixup_points_to_sets): Remove 27050 not intended return statement. 27051 270522018-03-21 Martin Liska <mliska@suse.cz> 27053 27054 PR target/84988 27055 * tree-chkp.c (CHKP_ARRAY_MAX_CHECK_STEPS): Define a new macro. 27056 (chkp_find_bound_slots_1): Limit number of iterations. 27057 270582018-03-20 David H. Gutteridge <dhgutteridge@sympatico.ca> 27059 27060 PR target/84838 27061 * Minor grammar fixes for x86 options. 27062 270632018-03-20 Jakub Jelinek <jakub@redhat.com> 27064 27065 PR debug/84875 27066 * dce.c (delete_unmarked_insns): Don't remove frame related noop moves 27067 holding REG_CFA_RESTORE notes, instead turn them into a USE. 27068 270692018-03-20 Peter Bergner <bergner@vnet.ibm.com> 27070 27071 PR target/83789 27072 * config/rs6000/altivec.md (altivec_lvx_<mode>_2op): Delete define_insn. 27073 (altivec_lvx_<mode>_1op): Likewise. 27074 (altivec_stvx_<mode>_2op): Likewise. 27075 (altivec_stvx_<mode>_1op): Likewise. 27076 (altivec_lvx_<VM2:mode>): New define_expand. 27077 (altivec_stvx_<VM2:mode>): Likewise. 27078 (altivec_lvx_<VM2:mode>_2op_<P:mptrsize>): New define_insn. 27079 (altivec_lvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. 27080 (altivec_stvx_<VM2:mode>_2op_<P:mptrsize>): Likewise. 27081 (altivec_stvx_<VM2:mode>_1op_<P:mptrsize>): Likewise. 27082 * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Use new expanders. 27083 (rs6000_gen_lvx): Likewise. 27084 * config/rs6000/rs6000.c (altivec_expand_lv_builtin): Likewise. 27085 (altivec_expand_stv_builtin): Likewise. 27086 (altivec_expand_builtin): Likewise. 27087 * config/rs6000/vector.md: Likewise. 27088 270892018-03-20 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 27090 27091 PR target/82518 27092 * config/arm/arm.c (arm_array_mode_supported_p): Return false for 27093 BYTES_BIG_ENDIAN. 27094 270952018-03-20 Richard Biener <rguenther@suse.de> 27096 27097 PR target/84986 27098 * config/i386/i386.c (ix86_add_stmt_cost): Only cost 27099 sign-conversions as zero, fall back to standard scalar_stmt 27100 cost for the rest. 27101 271022018-03-20 Martin Liska <mliska@suse.cz> 27103 27104 PR ipa/84825 27105 * predict.c (rebuild_frequencies): Handle case when we have 27106 PROFILE_ABSENT, but flag_guess_branch_prob is false. 27107 271082018-03-20 Jakub Jelinek <jakub@redhat.com> 27109 27110 PR target/84990 27111 * dwarf2asm.c (dw2_output_indirect_constant_1): Temporarily turn off 27112 flag_section_anchors. 27113 * varasm.c (use_blocks_for_decl_p): Remove hack for 27114 dw2_force_const_mem. 27115 27116 PR target/84845 27117 * config/aarch64/aarch64.md (*aarch64_reg_<mode>3_neg_mask2): Rename 27118 to ... 27119 (*aarch64_<optab>_reg_<mode>3_neg_mask2): ... this. If pseudos can't 27120 be created, use lowpart_subreg of operands[0] rather than operands[0] 27121 itself. 27122 (*aarch64_reg_<mode>3_minus_mask): Rename to ... 27123 (*aarch64_ashl_reg_<mode>3_minus_mask): ... this. 27124 (*aarch64_<optab>_reg_di3_mask2): Use const_int_operand predicate 27125 and n constraint instead of aarch64_shift_imm_di and Usd. 27126 (*aarch64_reg_<optab>_minus<mode>3): Rename to ... 27127 (*aarch64_<optab>_reg_minus<mode>3): ... this. 27128 271292018-03-20 Sudakshina Das <sudi.das@arm.com> 27130 27131 PR target/82989 27132 * config/arm/neon.md (ashldi3_neon): Update ?s for constraints 27133 to favor GPR over NEON registers. 27134 (<shift>di3_neon): Likewise. 27135 271362018-03-20 Tom de Vries <tom@codesourcery.com> 27137 27138 PR target/84952 27139 * config/nvptx/nvptx.c (nvptx_single): Don't neuter bar.sync. 27140 (nvptx_process_pars): Emit bar.sync asap and alap. 27141 271422018-03-20 Tom de Vries <tom@codesourcery.com> 27143 27144 PR target/84954 27145 * config/nvptx/nvptx.c (prevent_branch_around_nothing): Also update 27146 seen_label if seen_label is already set. 27147 271482018-03-20 Jakub Jelinek <jakub@redhat.com> 27149 27150 PR target/84945 27151 * config/i386/i386.c (fold_builtin_cpu): For features above 31 27152 use __cpu_features2 variable instead of __cpu_model.__cpu_features[0]. 27153 Use 1U instead of 1. Formatting fixes. 27154 27155 PR c/84953 27156 * builtins.c (fold_builtin_strpbrk): For strpbrk(x, "") use type 27157 instead of TREE_TYPE (s1) for the return value. 27158 271592018-03-19 Jakub Jelinek <jakub@redhat.com> 27160 27161 PR tree-optimization/84946 27162 * gimple-ssa-store-merging.c (mem_valid_for_store_merging): Compute 27163 bitsize + bitsize in poly_uint64 rather than poly_int64. 27164 27165 PR sanitizer/78651 27166 * dwarf2asm.c: Include fold-const.c. 27167 (dw2_output_indirect_constant_1): Set DECL_INITIAL (decl) to ADDR_EXPR 27168 of decl rather than decl itself. 27169 27170 PR rtl-optimization/84643 27171 * memmodel.h (enum memmodel): Add MEMMODEL_MAX enumerator. 27172 271732018-03-19 Maxim Ostapenko <m.ostapenko@samsung.com> 27174 27175 PR sanitizer/78651 27176 * dwarf2asm.c (dw2_output_indirect_constant_1): Disable ASan before 27177 calling assemble_variable. 27178 271792018-03-19 Sudakshina Das <sudi.das@arm.com> 27180 27181 PR target/81647 27182 * config/aarch64/aarch64-simd.md (vec_cmp<mode><v_int_equiv>): Modify 27183 instructions for UNLT, UNLE, UNGT, UNGE, UNEQ, UNORDERED and ORDERED. 27184 271852018-03-19 Jim Wilson <jimw@sifive.com> 27186 27187 PR bootstrap/84856 27188 * config/riscv/riscv.c (riscv_function_arg_boundary): Use 27189 PREFERRED_STACK_BOUNDARY instead of STACK_BOUNDARY. 27190 (riscv_first_stack_step): Likewise. 27191 (riscv_option_override): Use STACK_BOUNDARY instead of 27192 MIN_STACK_BOUNDARY. 27193 * config/riscv/riscv.h (STACK_BOUNDARY): Renamed from 27194 MIN_STACK_BOUNDARY. 27195 (BIGGEST_ALIGNMENT): Set to 128. 27196 (PREFERRED_STACK_BOUNDARY): Renamed from STACK_BOUNDARY. 27197 (RISCV_STACK_ALIGN): Use PREFERRED_STACK_BOUNDARY instead of 27198 STACK_BOUNDARY. 27199 272002018-03-19 Richard Biener <rguenther@suse.de> 27201 27202 PR tree-optimization/84933 27203 * tree-vrp.c (set_and_canonicalize_value_range): Treat out-of-bound 27204 values as -INF/INF when canonicalizing an ANTI_RANGE to a RANGE. 27205 272062018-03-19 Richard Biener <rguenther@suse.de> 27207 27208 PR tree-optimization/84859 27209 * tree-ssa-phiopt.c (single_trailing_store_in_bb): New function. 27210 (cond_if_else_store_replacement): Perform sinking operation on 27211 single-store BBs regardless of MAX_STORES_TO_SINK setting. 27212 Generalize what a BB with a single eligible store is. 27213 272142018-03-19 Richard Biener <rguenther@suse.de> 27215 27216 PR tree-optimization/84929 27217 * tree-data-ref.c (analyze_siv_subscript_cst_affine): Guard 27218 chrec_is_positive against non-chrec arg. 27219 272202018-03-19 Tamar Christina <tamar.christina@arm.com> 27221 27222 PR target/84711 27223 * config/arm/arm.c (arm_can_change_mode_class): revert r258554. 27224 272252018-03-18 Martin Liska <mliska@suse.cz> 27226 27227 PR rtl-optimization/84635 27228 * regrename.c (build_def_use): Use matches_mode only when 27229 matches >= 0. 27230 272312018-03-18 Richard Sandiford <richard.sandiford@linaro.org> 27232 27233 PR tree-optimization/84913 27234 * tree-vect-loop.c (vectorizable_reduction): Don't try to 27235 vectorize chains of COND_EXPRs. 27236 272372018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 27238 27239 * config/nds32/nds32.h (MAX_REGS_PER_ADDRESS): Fix the value. 27240 272412018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 27242 27243 * config/nds32/nds32.h (LOGICAL_OP_NON_SHORT_CIRCUIT): Define. 27244 272452018-03-18 Chung-Ju Wu <jasonwucj@gmail.com> 27246 27247 * config/nds32/nds32.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. 27248 272492018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> 27250 Kito Cheng <kito.cheng@gmail.com> 27251 27252 * config/nds32/nds32-protos.h (nds32_adjust_reg_alloc_order): Declare. 27253 * config/nds32/nds32.c (nds32_reg_alloc_order_for_speed): New array. 27254 (nds32_adjust_reg_alloc_order): New function. 27255 * config/nds32/nds32.h (ADJUST_REG_ALLOC_ORDER): Define. 27256 272572018-03-17 Kito Cheng <kito.cheng@gmail.com> 27258 27259 * config/nds32/nds32.c (nds32_asm_output_mi_thunk, 27260 nds32_print_operand, nds32_print_operand_address): Use 27261 HOST_WIDE_INT_PRINT_DEC instead. 27262 272632018-03-17 Chung-Ju Wu <jasonwucj@gmail.com> 27264 27265 * config/nds32/nds32.c (nds32_register_priority): Modify cost. 27266 272672018-03-17 Jakub Jelinek <jakub@redhat.com> 27268 27269 PR target/84902 27270 * config/i386/i386.c (initial_ix86_tune_features, 27271 initial_ix86_arch_features): Use unsigned HOST_WIDE_INT rather than 27272 unsigned long long. 27273 (set_ix86_tune_features): Change ix86_tune_mask from unsigned int 27274 to unsigned HOST_WIDE_INT, initialize to HOST_WIDE_INT_1U << ix86_tune 27275 rather than 1u << ix86_tune. Formatting fix. 27276 (ix86_option_override_internal): Change ix86_arch_mask from 27277 unsigned int to unsigned HOST_WIDE_INT, initialize to 27278 HOST_WIDE_INT_1U << ix86_arch rather than 1u << ix86_arch. 27279 (ix86_function_specific_restore): Likewise. 27280 272812018-03-16 Jakub Jelinek <jakub@redhat.com> 27282 27283 PR target/84899 27284 * postreload.c (reload_combine_recognize_pattern): Perform 27285 INTVAL addition in unsigned HOST_WIDE_INT type to avoid UB and 27286 truncate_int_for_mode the result for the destination's mode. 27287 27288 PR c/84909 27289 * hsa-gen.c (mem_type_for_type): Fix comment typo. 27290 * tree-vect-loop-manip.c (vect_create_cond_for_niters_checks): 27291 Likewise. 27292 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): 27293 Likewise. 27294 272952018-03-16 Vladimir Makarov <vmakarov@redhat.com> 27296 27297 PR target/84876 27298 * lra-assigns.c (lra_split_hard_reg_for): Don't use 27299 regno_allocno_class_array and sorted_pseudos. 27300 * lra-constraints.c (spill_hard_reg_in_range): Ignore hard regs in 27301 insns where regno is used. 27302 273032018-03-16 Martin Liska <mliska@suse.cz> 27304 27305 PR ipa/84833 27306 * multiple_target.c (create_dispatcher_calls): Redirect 27307 reference in the symbol table. 27308 273092018-03-16 Martin Liska <mliska@suse.cz> 27310 27311 PR ipa/84722 27312 * multiple_target.c (create_dispatcher_calls): Redirect also 27313 an alias. 27314 273152018-03-16 Jakub Jelinek <jakub@redhat.com> 27316 27317 PR c++/79937 27318 PR c++/82410 27319 * tree.h (TARGET_EXPR_NO_ELIDE): Define. 27320 * gimplify.c (gimplify_modify_expr_rhs): Don't elide TARGET_EXPRs with 27321 TARGET_EXPR_NO_ELIDE flag set unless *expr_p is INIT_EXPR. 27322 273232018-03-16 Julia Koval <julia.koval@intel.com> 27324 27325 * doc/invoke.texi (Skylake Server): Add CLWB. 27326 Cannonlake): Remove CLWB. 27327 273282018-03-16 Jakub Jelinek <jakub@redhat.com> 27329 27330 PR tree-optimization/84841 27331 * tree-ssa-reassoc.c (INTEGER_CONST_TYPE): Change to 1 << 4 from 27332 1 << 3. 27333 (FLOAT_ONE_CONST_TYPE): Define. 27334 (constant_type): Return FLOAT_ONE_CONST_TYPE for -1.0 and 1.0. 27335 (sort_by_operand_rank): Put entries with higher constant_type last 27336 rather than first to match comments. 27337 273382018-03-15 Sandra Loosemore <sandra@codesourcery.com> 27339 27340 * config/nios2/nios2.md (movsi_internal): Fix thinko in 27341 split predicate. 27342 273432018-03-15 Jakub Jelinek <jakub@redhat.com> 27344 27345 PR c++/79085 27346 * calls.c (expand_call): For TREE_ADDRESSABLE rettype ignore alignment 27347 check and use address of target always. 27348 273492018-03-15 H.J. Lu <hongjiu.lu@intel.com> 27350 27351 PR target/84574 27352 * config/i386/i386.c (indirect_thunk_needed): Update comments. 27353 (indirect_thunk_bnd_needed): Likewise. 27354 (indirect_thunks_used): Likewise. 27355 (indirect_thunks_bnd_used): Likewise. 27356 (indirect_return_needed): New. 27357 (indirect_return_bnd_needed): Likewise. 27358 (output_indirect_thunk_function): Add a bool argument for 27359 function return. 27360 (output_indirect_thunk_function): Don't generate alias for 27361 function return thunk. 27362 (ix86_code_end): Call output_indirect_thunk_function to generate 27363 function return thunks. 27364 (ix86_output_function_return): Set indirect_return_bnd_needed 27365 and indirect_return_needed instead of indirect_thunk_bnd_needed 27366 and indirect_thunk_needed. 27367 273682018-03-15 Olga Makhotina <olga.makhotina@intel.com> 27369 27370 * config/i386/sgxintrin.h (_enclv_u32): New intrinsic. 27371 (__enclv_bc, __enclv_cd, __enclv_generic): New definitions. 27372 (ERDINFO, ETRACKC, ELDBC, ELDUC): New leaves. 27373 273742018-03-15 David Malcolm <dmalcolm@redhat.com> 27375 Paul Hua <paul.hua.gm@gmail.com> 27376 27377 PR c/84852 27378 * gcc.dg/fixits-pr84852-1.c: Fix filename in dg-regexp. 27379 273802018-03-15 Segher Boessenkool <segher@kernel.crashing.org> 27381 27382 * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add back the 27383 TARGET_DOUBLE_FLOAT and TARGET_SINGLE_FLOAT conditions on the DFmode 27384 resp. SFmode cases. 27385 273862018-03-15 Tamar Christina <tamar.christina@arm.com> 27387 27388 PR target/84711 27389 * config/arm/arm.c (arm_can_change_mode_class): Use GET_MODE_UNIT_SIZE 27390 instead of GET_MODE_SIZE when comparing Units. 27391 273922018-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> 27393 27394 PR target/68256 27395 * varasm.c (hash_section): Return an unchangeble hash value 27396 * config/aarch64/aarch64.c (aarch64_use_blocks_for_constant_p): 27397 Return !aarch64_can_use_per_function_literal_pools_p (). 27398 273992018-03-15 Jakub Jelinek <jakub@redhat.com> 27400 27401 PR target/84860 27402 * optabs.c (emit_conditional_move): Pass address of cmode's copy 27403 rather than address of cmode as last argument to prepare_cmp_insn. 27404 274052018-03-15 Julia Koval <julia.koval@intel.com> 27406 27407 * config/i386/i386.c (F_AVX512VBMI2, F_GFNI, F_VPCLMULQDQ, 27408 F_AVX512VNNI, F_AVX512BITALG): New. 27409 274102018-03-14 John David Anglin <danglin@gcc.gnu.org> 27411 27412 PR target/83451 27413 * config/pa/pa.c (pa_emit_move_sequence): Always emit secondary reload 27414 insn for floating-point loads and stores. 27415 274162018-03-14 Carl Love <cel@us.ibm.com> 27417 27418 * config/rs6000/rs6000-c.c: Add macro definitions for 27419 ALTIVEC_BUILTIN_VEC_PERMXOR. 27420 * config/rs6000/rs6000.h: Add #define for vec_permxor builtin. 27421 * config/rs6000/rs6000-builtin.def: Add macro expansions for VPERMXOR. 27422 * config/rs6000/altivec.md (altivec_vpermxor): New define expand. 27423 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Add case 27424 UNSPEC_VPERMXOR. 27425 * config/doc/extend.texi: Add prototypes for vec_permxor. 27426 274272018-03-14 David Malcolm <dmalcolm@redhat.com> 27428 27429 PR c/84852 27430 * diagnostic-show-locus.c (class layout_point): Convert m_line 27431 from int to linenum_type. 27432 (line_span::comparator): Use linenum "compare" function when 27433 comparing line numbers. 27434 (test_line_span): New function. 27435 (layout_range::contains_point): Convert param "row" from int to 27436 linenum_type. 27437 (layout_range::intersects_line_p): Likewise. 27438 (layout::will_show_line_p): Likewise. 27439 (layout::print_source_line): Likewise. 27440 (layout::should_print_annotation_line_p): Likewise. 27441 (layout::print_annotation_line): Likewise. 27442 (layout::print_leading_fixits): Likewise. 27443 (layout::annotation_line_showed_range_p): Likewise. 27444 (struct line_corrections): Likewise for field m_row. 27445 (line_corrections::line_corrections): Likewise for param "row". 27446 (layout::print_trailing_fixits): Likewise. 27447 (layout::get_state_at_point): Likewise. 27448 (layout::get_x_bound_for_row): Likewise. 27449 (layout::print_line): Likewise. 27450 (diagnostic_show_locus): Likewise for locals "last_line" and "row". 27451 (selftest::diagnostic_show_locus_c_tests): Call test_line_span. 27452 * input.c (selftest::test_linenum_comparisons): New function. 27453 (selftest::input_c_tests): Call it. 27454 * selftest.c (selftest::test_assertions): Test ASSERT_GT, 27455 ASSERT_GT_AT, ASSERT_LT, and ASSERT_LT_AT. 27456 * selftest.h (ASSERT_GT): New macro. 27457 (ASSERT_GT_AT): New macro. 27458 (ASSERT_LT): New macro. 27459 (ASSERT_LT_AT): New macro. 27460 274612018-03-14 Segher Boessenkool <segher@kernel.crashing.org> 27462 27463 PR rtl-optimization/84780 27464 * combine.c (distribute_links): Don't make a link based on pc_rtx. 27465 274662018-03-14 Martin Liska <mliska@suse.cz> 27467 27468 * tree.c (record_node_allocation_statistics): Use 27469 get_stats_node_kind. 27470 (get_stats_node_kind): New function extracted from 27471 record_node_allocation_statistics. 27472 (free_node): Use get_stats_node_kind. 27473 274742018-03-14 Richard Biener <rguenther@suse.de> 27475 27476 * tree-ssa-pre.c (compute_antic_aux): Remove code that asserts 27477 that the value-set of ANTIC_IN doesn't grow. 27478 27479 Revert 27480 * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs 27481 member. 27482 (BB_VISITED_WITH_VISITED_SUCCS): New define. 27483 (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. 27484 274852018-03-14 Julia Koval <julia.koval@intel.com> 27486 27487 * config.gcc (icelake-client, icelake-server): New. 27488 (icelake): Remove. 27489 * config/i386/i386.c (initial_ix86_tune_features): Extend to 64 bit. 27490 (initial_ix86_arch_features): Ditto. 27491 (PTA_SKYLAKE): Add SGX. 27492 (PTA_ICELAKE): Remove. 27493 (PTA_ICELAKE_CLIENT): New. 27494 (PTA_ICELAKE_SERVER): New. 27495 (ix86_option_override_internal): Split up icelake on icelake client and 27496 icelake server. 27497 (get_builtin_code_for_version): Ditto. 27498 (fold_builtin_cpu): Ditto. 27499 * config/i386/driver-i386.c (config/i386/driver-i386.c): Ditto. 27500 * config/i386/i386-c.c (ix86_target_macros_internal): Ditto 27501 * config/i386/i386.h (processor_type): Ditto. 27502 * doc/invoke.texi: Ditto. 27503 275042018-03-14 Jakub Jelinek <jakub@redhat.com> 27505 27506 PR sanitizer/83392 27507 * sanopt.c (maybe_optimize_ubsan_ptr_ifn): Handle also 27508 INTEGER_CST offset, add it together with bitpos / 8 and 27509 sign extend based on POINTER_SIZE. 27510 27511 PR target/84844 27512 Revert 27513 2017-04-20 Uros Bizjak <ubizjak@gmail.com> 27514 27515 PR target/78090 27516 * config/i386/constraints.md (Yc): New register constraint. 27517 * config/i386/i386.md (*float<SWI48:mode><MODEF:mode>2_mixed): 27518 Use Yc constraint for alternative 2 of operand 0. Remove 27519 preferred_for_speed attribute. 27520 275212018-03-14 Richard Biener <rguenther@suse.de> 27522 27523 PR tree-optimization/84830 27524 * tree-ssa-pre.c (compute_antic_aux): Intersect the new ANTIC_IN 27525 with the old one to avoid oscillations. 27526 275272018-03-13 Vladimir Makarov <vmakarov@redhat.com> 27528 27529 PR target/83712 27530 * lra-assigns.c (find_all_spills_for): Ignore uninteresting 27531 pseudos. 27532 (assign_by_spills): Return a flag of reload assignment failure. 27533 Do not process the reload assignment failures. Do not spill other 27534 reload pseudos if they has the same reg class. Update n if 27535 necessary. 27536 (lra_assign): Add a return arg. Set up from the result of 27537 assign_by_spills call. 27538 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 27539 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 27540 usage_insns if it is not NULL. 27541 (spill_hard_reg_in_range): New function. 27542 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 27543 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 27544 function prototypes. 27545 (lra_assign): Change prototype. 27546 * lra.c (lra): Add code to deal with fails by splitting hard reg 27547 live ranges. 27548 275492018-03-01 Palmer Dabbelt <palmer@sifive.com> 27550 27551 * config/riscv/riscv.opt (mrelax): New option. 27552 * config/riscv/riscv.c (riscv_file_start): Emit ".option 27553 "norelax" when riscv_mrelax is disabled. 27554 * doc/invoke.texi (RISC-V): Document "-mrelax" and "-mno-relax". 27555 275562018-03-13 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 27557 27558 PR target/84743 27559 * config/rs6000/rs6000.c (rs6000_reassociation_width): Disable parallel 27560 reassociation for int modes. 27561 275622018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 27563 27564 * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): 27565 Reverse the choice between VEC_UNPACK_LO_EXPR and VEC_UNPACK_HI_EXPR 27566 for big-endian. 27567 * config/aarch64/iterators.md (hi_lanes_optab): New int attribute. 27568 * config/aarch64/aarch64-sve.md 27569 (*aarch64_sve_<perm_insn><perm_hilo><mode>): Rename to... 27570 (aarch64_sve_<perm_insn><perm_hilo><mode>): ...this. 27571 (*extend<mode><Vwide>2): Rename to... 27572 (aarch64_sve_extend<mode><Vwide>2): ...this. 27573 (vec_unpack<su>_<perm_hilo>_<mode>): Turn into a define_expand, 27574 renaming the old pattern to... 27575 (aarch64_sve_punpk<perm_hilo>_<mode>): ...this. Only define 27576 unsigned packs. 27577 (vec_unpack<su>_<perm_hilo>_<SVE_BHSI:mode>): Turn into a 27578 define_expand, renaming the old pattern to... 27579 (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): ...this. 27580 (*vec_unpacku_<perm_hilo>_<mode>_no_convert): Delete. 27581 (vec_unpacks_<perm_hilo>_<mode>): Take BYTES_BIG_ENDIAN into 27582 account when deciding which SVE instruction the optab should use. 27583 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Likewise. 27584 275852018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 27586 27587 * config/aarch64/aarch64.md (V4_REGNUM, V8_REGNUM, V12_REGNUM) 27588 (V20_REGNUM, V24_REGNUM, V28_REGNUM, P1_REGNUM, P2_REGNUM, P3_REGNUM) 27589 (P4_REGNUM, P5_REGNUM, P6_REGNUM, P8_REGNUM, P9_REGNUM, P10_REGNUM) 27590 (P11_REGNUM, P12_REGNUM, P13_REGNUM, P14_REGNUM): New define_constants. 27591 (tlsdesc_small_<mode>): Turn a define_expand and use 27592 tlsdesc_small_sve_<mode> for SVE. Rename original define_insn to... 27593 (tlsdesc_small_advsimd_<mode>): ...this. 27594 (tlsdesc_small_sve_<mode>): New pattern. 27595 275962018-03-13 Richard Sandiford <richard.sandiford@linaro.org> 27597 27598 * config/aarch64/iterators.md (UNSPEC_SMUL_HIGHPART) 27599 (UNSPEC_UMUL_HIGHPART): New constants. 27600 (MUL_HIGHPART): New int iteraor. 27601 (su): Handle UNSPEC_SMUL_HIGHPART and UNSPEC_UMUL_HIGHPART. 27602 * config/aarch64/aarch64-sve.md (<su>mul<mode>3_highpart): New 27603 define_expand. 27604 (*<su>mul<mode>3_highpart): New define_insn. 27605 276062018-03-13 Eric Botcazou <ebotcazou@adacore.com> 27607 27608 PR lto/84805 27609 * ipa-devirt.c (odr_subtypes_equivalent_p): Do not get the ODR type of 27610 incomplete types. 27611 276122018-03-13 Martin Liska <mliska@suse.cz> 27613 27614 PR ipa/84658. 27615 * (sem_item_optimizer::sem_item_optimizer): Initialize new 27616 vector. 27617 (sem_item_optimizer::~sem_item_optimizer): Release it. 27618 (sem_item_optimizer::merge_classes): Register variable aliases. 27619 (sem_item_optimizer::fixup_pt_set): New function. 27620 (sem_item_optimizer::fixup_points_to_sets): Likewise. 27621 * ipa-icf.h: Declare new variables and functions. 27622 276232018-03-13 Jakub Jelinek <jakub@redhat.com> 27624 27625 PR middle-end/84834 27626 * match.pd ((A & C) != 0 ? D : 0): Use INTEGER_CST@2 instead of 27627 integer_pow2p@2 and test integer_pow2p in condition. 27628 (A < 0 ? C : 0): Similarly for @1. 27629 27630 PR middle-end/84831 27631 * stmt.c (parse_output_constraint): If the CONSTRAINT_LEN (*p, p) 27632 characters starting at p contain '\0' character, don't look beyond 27633 that. 27634 27635 PR target/84827 27636 * config/i386/i386.md (round<mode>2): For 387 fancy math, disable 27637 pattern if -ftrapping-math -fno-fp-int-builtin-inexact. 27638 27639 PR target/84828 27640 * reg-stack.c (change_stack): Change update_end var from int to 27641 rtx_insn *, if non-NULL don't update just BB_END (current_block), but 27642 also call set_block_for_insn on the newly added insns and rescan. 27643 27644 PR target/84786 27645 * config/i386/sse.md (sse2_loadhpd): Use Yv constraint rather than v 27646 on the last operand. 27647 27648 PR c++/84704 27649 * tree.c (stabilize_reference_1): Return save_expr (e) for 27650 STATEMENT_LIST even if it doesn't have side-effects. 27651 276522018-03-12 Jonathan Wakely <jwakely@redhat.com> 27653 27654 * doc/invoke.texi (-mclflushopt): Fix spelling of option. 27655 276562018-03-12 Renlin Li <renlin.li@arm.com> 27657 27658 * config/aarch64/aarch64.md (movhf_aarch64): Fix mode argument to 27659 aarch64_output_scalar_simd_mov_immediate. 27660 276612018-03-12 Martin Sebor <msebor@redhat.com> 27662 27663 PR tree-optimization/83456 27664 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid warning 27665 for perfectly overlapping calls to memcpy. 27666 (gimple_fold_builtin_memory_chk): Same. 27667 (gimple_fold_builtin_strcpy): Handle no-warning. 27668 (gimple_fold_builtin_stxcpy_chk): Same. 27669 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Handle no-warning. 27670 276712018-03-12 Segher Boessenkool <segher@kernel.crashing.org> 27672 27673 * config/rs6000/rs6000.c (abi_v4_pass_in_fpr): Add bool "named" 27674 parameter. Use it for SFmode. 27675 (rs6000_function_arg_advance_1): Adjust. 27676 (rs6000_function_arg): Adjust. 27677 (rs6000_gimplify_va_arg): Pass false for that new parameter. 27678 276792018-03-12 Segher Boessenkool <segher@kernel.crashing.org> 27680 27681 PR rtl-optimization/84169 27682 PR rtl-optimization/84780 27683 * combine.c (can_combine_p): Check for a 2-insn combination whether 27684 the destination register is used between the two insns, too. 27685 276862018-03-12 Richard Biener <rguenther@suse.de> 27687 27688 PR tree-optimization/84803 27689 * tree-if-conv.c (ifcvt_memrefs_wont_trap): Don't do anything 27690 for refs DR analysis didn't process. 27691 276922018-03-12 Richard Biener <rguenther@suse.de> 27693 27694 PR tree-optimization/84777 27695 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): For 27696 force-vectorize loops ignore whether we are optimizing for size. 27697 276982018-03-12 Chung-Ju Wu <jasonwucj@gmail.com> 27699 27700 * config/nds32/nds32.c (nds32_md_asm_adjust): New function. 27701 (TARGET_MD_ASM_ADJUST): Define. 27702 277032018-03-12 Monk Chiang <sh.chiang04@gmail.com> 27704 Kito Cheng <kito.cheng@gmail.com> 27705 Chung-Ju Wu <jasonwucj@gmail.com> 27706 27707 * config/nds32/nds32.c (nds32_compute_stack_frame, 27708 nds32_emit_stack_push_multiple, nds32_emit_stack_pop_multiple, 27709 nds32_emit_stack_v3push, nds32_emit_stack_v3pop, 27710 nds32_emit_adjust_frame, nds32_expand_prologue, nds32_expand_epilogue, 27711 nds32_expand_prologue_v3push, nds32_expand_epilogue_v3pop): Refine. 27712 * config/nds32/nds32.h (NDS32_FIRST_CALLEE_SAVE_GPR_REGNUM, 27713 NDS32_LAST_CALLEE_SAVE_GPR_REGNUM, NDS32_V3PUSH_AVAILABLE_P): New. 27714 * config/nds32/nds32.md (prologue, epilogue): Use macro 27715 NDS32_V3PUSH_AVAILABLE_P to do checking. 27716 277172018-03-11 Jakub Jelinek <jakub@redhat.com> 27718 27719 PR debug/58150 27720 * dwarf2out.c (gen_enumeration_type_die): Don't guard adding 27721 DW_AT_declaration for ENUM_IS_OPAQUE on -gdwarf-4 or -gno-strict-dwarf, 27722 but on TYPE_SIZE. Don't do anything for ENUM_IS_OPAQUE if not creating 27723 a new die. Don't set TREE_ASM_WRITTEN if ENUM_IS_OPAQUE. Guard 27724 addition of most attributes on !orig_type_die or the attribute not 27725 being present already. Assert TYPE_VALUES is NULL for ENUM_IS_OPAQUE. 27726 277272018-03-11 Kito Cheng <kito.cheng@gmail.com> 27728 Chung-Ju Wu <jasonwucj@gmail.com> 27729 27730 * config/nds32/nds32.c (nds32_cpu_cpp_builtins): Modify to define 27731 __NDS32_VH__ macro. 27732 * config/nds32/nds32.opt (mvh): New option. 27733 277342018-03-11 Kito Cheng <kito.cheng@gmail.com> 27735 Chung-Ju Wu <jasonwucj@gmail.com> 27736 27737 * config/nds32/nds32-protos.h (nds32_cpu_cpp_builtins): Declare 27738 function. 27739 * config/nds32/nds32.c (nds32_cpu_cpp_builtins): New function. 27740 * config/nds32/nds32.h (TARGET_CPU_CPP_BUILTINS): Modify its 27741 definition. 27742 277432018-03-11 Kito Cheng <kito.cheng@gmail.com> 27744 Chung-Ju Wu <jasonwucj@gmail.com> 27745 27746 * config/nds32/nds32-memory-manipulation.c (nds32_expand_strlen): New 27747 function. 27748 * config/nds32/nds32-multiple.md (strlensi): New pattern. 27749 * config/nds32/nds32-protos.h (nds32_expand_strlen): Declare function. 27750 277512018-03-11 Monk Chiang <sh.chiang04@gmail.com> 27752 Kito Cheng <kito.cheng@gmail.com> 27753 Chung-Ju Wu <jasonwucj@gmail.com> 27754 27755 * config/nds32/constants.md (unspec_element): Add UNSPEC_FFB, 27756 UNSPEC_FFMISM and UNSPEC_FLMISM. 27757 * config/nds32/nds32-intrinsic.c (bdesc_2arg): Add builtin description 27758 for ffb, ffmism and flmism. 27759 * config/nds32/nds32-intrinsic.md (unspec_ffb): Define new pattern. 27760 (unspec_ffmism): Ditto. 27761 (unspec_flmism): Ditto. 27762 (nds32_expand_builtin_impl): Check if string extension is available. 27763 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_FFB, 27764 NDS32_BUILTIN_FFMISM and NDS32_BUILTIN_FLMISM. 27765 277662018-03-10 Vladimir Makarov <vmakarov@redhat.com> 27767 27768 Reverting patch: 27769 2018-03-09 Vladimir Makarov <vmakarov@redhat.com> 27770 27771 PR target/83712 27772 * lra-assigns.c (assign_by_spills): Return a flag of reload 27773 assignment failure. Do not process the reload assignment 27774 failures. Do not spill other reload pseudos if they has the same 27775 reg class. 27776 (lra_assign): Add a return arg. Set up from the result of 27777 assign_by_spills call. 27778 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 27779 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 27780 usage_insns if it is not NULL. 27781 (spill_hard_reg_in_range): New function. 27782 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 27783 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 27784 function prototypes. 27785 (lra_assign): Change prototype. 27786 * lra.c (lra): Add code to deal with fails by splitting hard reg 27787 live ranges. 27788 277892018-03-10 H.J. Lu <hongjiu.lu@intel.com> 27790 27791 PR target/84807 27792 * config/i386/i386.opt: Replace Enforcment with Enforcement. 27793 277942018-03-10 Alexandre Oliva <aoliva@redhat.com> 27795 27796 PR debug/84620 27797 * dwarf2out.h (dw_val_class): Add dw_val_class_symview. 27798 (dw_val_node): Add val_symbolic_view. 27799 * dwarf2out.c (dw_line_info_table): Add symviews_since_reset. 27800 (symview_upper_bound): New. 27801 (new_line_info_table): Initialize symviews_since_reset. 27802 (dwarf2out_source_line): Count symviews_since_reset and set 27803 symview_upper_bound. 27804 (dw_val_equal_p): Handle symview. 27805 (add_AT_symview): New. 27806 (print_dw_val): Handle symview. 27807 (attr_checksum, attr_checksum_ordered): Likewise. 27808 (same_dw_val_p, size_of_die): Likewise. 27809 (value_format, output_die): Likewise. 27810 (add_high_low_attributes): Use add_AT_symview for entry_view. 27811 (dwarf2out_finish): Reset symview_upper_bound, clear 27812 zero_view_p. 27813 278142018-03-09 Peter Bergner <bergner@vnet.ibm.com> 27815 27816 PR target/83969 27817 * config/rs6000/rs6000.c (rs6000_offsettable_memref_p): New prototype. 27818 Add strict argument and use it. 27819 (rs6000_split_multireg_move): Update for new strict argument. 27820 (mem_operand_gpr): Disallow all non-offsettable addresses. 27821 * config/rs6000/rs6000.md (*movdi_internal64): Use YZ constraint. 27822 278232018-03-09 Jakub Jelinek <jakub@redhat.com> 27824 27825 PR target/84772 27826 * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Mark va_arg_tmp 27827 temporary TREE_ADDRESSABLE before gimplification of BUILT_IN_MEMCPY. 27828 * config/powerpcspe/powerpcspe.c (rs6000_gimplify_va_arg): Likewise. 27829 27830 PR c++/84767 27831 * tree-inline.c (copy_tree_body_r): For INDIRECT_REF of a remapped 27832 decl, use remap_type if we want to use the type. 27833 278342018-03-09 Martin Sebor <msebor@redhat.com> 27835 27836 PR tree-optimization/84526 27837 * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): 27838 Remove dead code. 27839 (builtin_access::generic_overlap): Be prepared to handle non-array 27840 base objects. 27841 278422018-03-09 Alexandre Oliva <aoliva@redhat.com> 27843 27844 PR rtl-optimization/84682 27845 * lra-constraints.c (process_address_1): Check is_address flag 27846 for address constraints. 27847 (process_alt_operands): Likewise. 27848 * lra.c (lra_set_insn_recog_data): Pass asm operand locs to 27849 preprocess_constraints. 27850 * recog.h (preprocess_constraints): Add oploc parameter. 27851 Adjust callers. 27852 * recog.c (preprocess_constraints): Test address_operand for 27853 CT_ADDRESS constraints. 27854 278552018-03-09 Vladimir Makarov <vmakarov@redhat.com> 27856 27857 PR target/83712 27858 * lra-assigns.c (assign_by_spills): Return a flag of reload 27859 assignment failure. Do not process the reload assignment 27860 failures. Do not spill other reload pseudos if they has the same 27861 reg class. 27862 (lra_assign): Add a return arg. Set up from the result of 27863 assign_by_spills call. 27864 (find_reload_regno_insns, lra_split_hard_reg_for): New functions. 27865 * lra-constraints.c (split_reg): Add a new arg. Use it instead of 27866 usage_insns if it is not NULL. 27867 (spill_hard_reg_in_range): New function. 27868 (split_if_necessary, inherit_in_ebb): Pass a new arg to split_reg. 27869 * lra-int.h (spill_hard_reg_in_range, lra_split_hard_reg_for): New 27870 function prototypes. 27871 (lra_assign): Change prototype. 27872 * lra.c (lra): Add code to deal with fails by splitting hard reg 27873 live ranges. 27874 278752018-03-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 27876 27877 PR target/83193 27878 * common/config/arm/arm-common.c (arm_parse_arch_option_name): 27879 Accept complain bool parameter. Only emit errors if it is true. 27880 (arm_parse_cpu_option_name): Likewise. 27881 (arm_target_thumb_only): Adjust callers of the above. 27882 * config/arm/arm-protos.h (arm_parse_cpu_option_name): Adjust 27883 prototype to take a default true bool parameter. 27884 (arm_parse_arch_option_name): Likewise. 27885 278862018-03-09 David Malcolm <dmalcolm@redhat.com> 27887 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org> 27888 27889 PR jit/64089 27890 PR jit/84288 27891 * Makefile.in (LD_VERSION_SCRIPT_OPTION, LD_SONAME_OPTION): New. 27892 * configure: Regenerate. 27893 * configure.ac ("linker --version-script option"): New. 27894 ("linker soname option"): New. 27895 278962018-03-09 Richard Biener <rguenther@suse.de> 27897 27898 PR tree-optimization/84775 27899 * tree-if-conv.c (add_bb_predicate_gimplified_stmts): Delink 27900 immediate uses of predicate stmts and mark them modified. 27901 27902 Revert 27903 PR tree-optimization/84178 27904 * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates 27905 to caller. 27906 (version_loop_for_if_conversion): Delay update_ssa call. 27907 (tree_if_conversion): Delay update_ssa until after predicate 27908 insertion. 27909 279102018-03-09 Eric Botcazou <ebotcazou@adacore.com> 27911 27912 PR target/84763 27913 * config/i386/winnt.c (i386_pe_seh_cold_init): Use small pre-allocation 27914 when the function accesses prior frames. 27915 279162018-03-08 Jakub Jelinek <jakub@redhat.com> 27917 27918 PR debug/84456 27919 * dwarf2out.c (dw_loc_list): If list && loc_list->first->next, call 27920 gen_llsym, otherwise call maybe_gen_llsym. 27921 27922 PR inline-asm/84742 27923 * recog.c (asm_operand_ok): Return 0 if multi-character constraint 27924 has ',' character inside of it. 27925 279262018-03-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 27927 27928 PR target/84748 27929 * config/aarch64/aarch64.md (*compare_cstore<mode>_insn): Mark pattern 27930 as clobbering CC_REGNUM. 27931 279322018-03-08 Richard Biener <rguenther@suse.de> 27933 27934 PR middle-end/84552 27935 * tree-scalar-evolution.c: Include tree-into-ssa.h. 27936 (follow_copies_to_constant): Do not follow SSA names registered 27937 for update. 27938 279392018-03-08 Richard Biener <rguenther@suse.de> 27940 27941 PR tree-optimization/84178 27942 * tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates 27943 to caller. 27944 (version_loop_for_if_conversion): Delay update_ssa call. 27945 (tree_if_conversion): Delay update_ssa until after predicate 27946 insertion. 27947 279482018-03-08 David Malcolm <dmalcolm@redhat.com> 27949 27950 PR tree-optimization/84178 27951 * tree-if-conv.c (release_bb_predicate): Remove the 27952 the assertion that the stmts have NULL use_ops. 27953 Discard the statements, asserting that they haven't 27954 yet been added to a BB. 27955 279562018-03-08 Richard Biener <rguenther@suse.de> 27957 27958 PR tree-optimization/84746 27959 * tree-ssa-pre.c (find_leader_in_sets): Deal with SET1 being NULL. 27960 (phi_translate): Pass in destination ANTIC_OUT set. 27961 (phi_translate_1): Likewise. For a simplified result lookup 27962 a leader in ANTIC_OUT and AVAIL_OUT, not the ANTIC_IN sets. 27963 (phi_translate_set): Adjust. 27964 (do_pre_regular_insertion): Likewise. 27965 (do_pre_partial_partial_insertion): Likewise. 27966 279672018-03-08 Martin Liska <mliska@suse.cz> 27968 27969 PR gcov-profile/84735 27970 * doc/gcov.texi: Document usage of profile files. 27971 * gcov-io.h: Document changes in the format. 27972 279732018-03-08 Alexandre Oliva <aoliva@redhat.com> 27974 27975 PR debug/84404 27976 PR debug/84408 27977 * dwarf2out.c (struct dw_line_info_table): Update comments for 27978 view == -1. 27979 (FORCE_RESET_NEXT_VIEW): New. 27980 (FORCE_RESETTING_VIEW_P): New. 27981 (RESETTING_VIEW_P): Check for -1 too. 27982 (ZERO_VIEW_P): Likewise. 27983 (new_line_info_table): Force-reset next view. 27984 (dwarf2out_begin_function): Likewise. 27985 (dwarf2out_source_line): Simplify zero_view_p initialization. 27986 Test FORCE_RESETTING_VIEW_P and RESETTING_VIEW_P instead of 27987 view directly. Omit view when omitting .loc at line 0. 27988 279892018-03-08 Jakub Jelinek <jakub@redhat.com> 27990 27991 PR tree-optimization/84740 27992 * tree-switch-conversion.c (process_switch): Call build_constructors 27993 only if info.phi_count is non-zero. 27994 27995 PR tree-optimization/84739 27996 * tree-tailcall.c (find_tail_calls): Check call arguments against 27997 DECL_ARGUMENTS (current_function_decl) rather than 27998 DECL_ARGUMENTS (func) when checking for tail recursion. 27999 280002018-03-07 Jakub Jelinek <jakub@redhat.com> 28001 28002 * doc/contrib.texi: Add entries for Martin Liska, David Malcolm, 28003 Marek Polacek, extend Vladimir Makarov's, Jonathan Wakely's and 28004 Volker Reichelt's entry and add entries for people that perform 28005 GCC fuzzy testing and report numerous bugs. 28006 280072018-03-07 Segher Boessenkool <segher@kernel.crashing.org> 28008 28009 PR target/82411 28010 * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Don't put 28011 readonly data in sdata, if that is disabled. 28012 * config/rs6000/sysv4.opt (mreadonly-in-sdata): New option. 28013 * doc/invoke.texi (RS/6000 and PowerPC Options): Document 28014 -mreadonly-in-sdata option. 28015 280162018-03-07 Martin Sebor <msebor@redhat.com> 28017 28018 PR tree-optimization/84468 28019 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Consider successor 28020 basic block when looking for nul assignment. 28021 280222018-03-07 Eric Botcazou <ebotcazou@adacore.com> 28023 28024 PR target/84277 28025 * except.h (output_function_exception_table): Adjust prototype. 28026 * except.c (output_function_exception_table): Remove FNNAME parameter 28027 and add SECTION parameter. Ouput one part of the table at a time. 28028 * final.c (final_scan_insn_1) <NOTE_INSN_SWITCH_TEXT_SECTIONS>: Output 28029 the first part of the exception table and emit unwind directives. 28030 * config/i386/i386-protos.h (i386_pe_end_cold_function): Declare. 28031 (i386_pe_seh_cold_init): Likewise. 28032 * config/i386/cygming.h (ASM_DECLARE_COLD_FUNCTION_NAME): New macro. 28033 (ASM_DECLARE_COLD_FUNCTION_SIZE): Likewise. 28034 * config/i386/i386.c (x86_expand_epilogue): Fix wording in comment. 28035 (ix86_output_call_insn): Emit a nop in one more case for SEH. 28036 * config/i386/winnt.c: Include except.h. 28037 (struct seh_frame_state): Add reg_offset, after_prologue and 28038 in_cold_section fields. 28039 (i386_pe_seh_end_prologue): Set seh->after_prologue. 28040 (i386_pe_seh_cold_init): New function. 28041 (i386_pe_seh_fini): Add COLD parameter and bail out if it is not equal 28042 to seh->in_cold_section. 28043 (seh_emit_push): Record the offset of the push. 28044 (seh_emit_save): Record the offet of the save. 28045 (i386_pe_seh_unwind_emit): Deal with NOTE_INSN_SWITCH_TEXT_SECTIONS. 28046 Test seh->after_prologue to disregard the epilogue. 28047 (i386_pe_end_function): Pass FALSE to i386_pe_seh_fini. 28048 (i386_pe_end_cold_function): New function. 28049 280502018-03-07 Jakub Jelinek <jakub@redhat.com> 28051 28052 PR fortran/84565 28053 * config/aarch64/predicates.md (aarch64_simd_reg_or_zero): Use 28054 aarch64_simd_or_scalar_imm_zero rather than aarch64_simd_imm_zero. 28055 28056 PR c++/84704 28057 * gimple-expr.c (create_tmp_var_raw): Set DECL_NAMELESS flag 28058 on tmp_var. 28059 * tree-pretty-print.c (dump_decl_name): For TDF_COMPARE_DEBUG, 28060 don't print names of DECL_NAMELESS DECL_IGNORED_P decls. 28061 28062 PR middle-end/84723 28063 * multiple_target.c: Include tree-inline.h and intl.h. 28064 (expand_target_clones): Diagnose and fail if node->definition and 28065 !tree_versionable_function_p (node->decl). 28066 280672018-03-06 John David Anglin <danglin@gcc.gnu.org> 28068 28069 * config/pa/pa.h (ASM_GENERATE_INTERNAL_LABEL): Revise to use 28070 sprint_ul. 28071 (ASM_OUTPUT_ADDR_VEC_ELT): Revise for above change. 28072 (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. 28073 * config/pa/pa64-hpux.h (ASM_GENERATE_INTERNAL_LABEL): Revise as above. 28074 280752018-03-06 Jakub Jelinek <jakub@redhat.com> 28076 28077 PR target/84710 28078 * combine.c (try_combine): Use reg_or_subregno instead of handling 28079 just paradoxical SUBREGs and REGs. 28080 280812018-03-06 Claudiu Zissulescu <claziss@synopsys.com> 28082 28083 * config/arc/arc.c (arc_finalize_pic): Remove function. 28084 (arc_must_save_register): We use single base PIC register, remove 28085 checks to save/restore the PIC register. 28086 (arc_expand_prologue): Likewise. 28087 * config/arc/arc-protos.h (arc_set_default_type_attributes): 28088 Remove. 28089 (arc_verify_short): Likewise. 28090 (arc_attr_type): Likewise. 28091 * config/arc/arc.c (arc_set_default_type_attributes): Remove. 28092 (walk_stores): Likewise. 28093 (arc_address_cost): Make it static. 28094 (arc_verify_short): Likewise. 28095 (branch_dest): Likewise. 28096 (arc_attr_type): Likewise. 28097 * config/arc/arc.c (TARGET_ADJUST_INSN_LENGTH): Remove. 28098 (TARGET_INSN_LENGTH_PARAMETERS): Likewise. 28099 (arc_final_prescan_insn): Remove inserting the nops due to 28100 hardware hazards. It is done in reorg step. 28101 (insn_length_variant_t): Remove. 28102 (insn_length_parameters_t): Likewise. 28103 (arc_insn_length_parameters): Likewise. 28104 (arc_get_insn_variants): Likewise. 28105 * config/arc/arc.h (TARGET_UPSIZE_DBR): Remove. 28106 281072018-03-06 Jakub Jelinek <jakub@redhat.com> 28108 28109 PR inline-asm/84683 28110 * reg-stack.c (move_for_stack_reg): If any_malformed_asm, avoid 28111 assertion failure. 28112 28113 PR tree-optimization/84687 28114 * omp-simd-clone.c (simd_clone_create): Clear DECL_BUILT_IN_CLASS 28115 on new_node->decl. 28116 * match.pd (pow(C,x)*expN(y) -> expN(logN(C)*x+y)): New optimization. 28117 281182018-03-05 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 28119 28120 * config/rs6000/rs6000-builtin.def (rs6000_speculation_barrier): 28121 Rename to ppc_speculation_barrier. 28122 * config/rs6000/rs6000.c (rs6000_init_builtins): Rename builtin to 28123 __builtin_ppc_speculation_barrier. 28124 281252018-03-05 Jakub Jelinek <jakub@redhat.com> 28126 28127 PR target/84700 28128 * combine.c (combine_simplify_rtx): Don't try to simplify if 28129 if_then_else_cond returned non-NULL, but either true_rtx or false_rtx 28130 are equal to x. 28131 281322018-03-05 Segher Boessenkool <segher@kernel.crashing.org> 28133 28134 * config/rs6000/rs6000.c (rs6000_loop_align): Don't align tiny loops 28135 to 32 bytes when compiling for POWER9. 28136 281372018-03-05 Jakub Jelinek <jakub@redhat.com> 28138 28139 PR target/84564 28140 * config/i386/i386.c (ix86_function_ok_for_sibcall): Check for 28141 regparm >= 3 with no arg reg available also for calls with 28142 flag_force_indirect_call. Pass decl to ix86_function_regparm. 28143 28144 PR target/84524 28145 * config/i386/sse.md (*<code><mode>3): Replace <mask_prefix3> with 28146 orig,vex. 28147 (*<plusminus_insn><mode>3): Likewise. Remove <mask_operand3> uses. 28148 281492018-03-05 Peter Bergner <bergner@vnet.ibm.com> 28150 28151 PR target/84264 28152 * config/rs6000/vector.md (mov<mode>): Disallow altivec memory operands. 28153 281542018-03-05 Richard Biener <rguenther@suse.de> 28155 28156 PR tree-optimization/84486 28157 * tree-ssa-pre.c (create_expression_by_pieces): Remove dead code. 28158 When inserting a __builtin_assume_aligned call set the LHS 28159 SSA name alignment info accordingly. 28160 281612018-03-05 Wilco Dijkstra <wdijkstr@arm.com> 28162 28163 PR tree-optimization/84114 28164 * config/aarch64/aarch64.c (aarch64_reassociation_width) 28165 Avoid reassociation of FLOAT_MODE addition. 28166 281672018-03-05 Olga Makhotina <olga.makhotina@intel.com> 28168 28169 * common/config/i386/i386-common.c (OPTION_MASK_ISA_PCONFIG_SET, 28170 OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_SET, 28171 OPTION_MASK_ISA_WBNOINVD_UNSET): New definitions. 28172 (ix86_handle_option): Handle -mpconfig and -mwbnoinvd. 28173 * config.gcc (pconfigintrin.h, wbnoinvdintrin.h) : Add headers. 28174 * config/i386/cpuid.h (bit_PCONFIG, bit_WBNOINVD): New. 28175 * config/i386/driver-i386.c (host_detect_local_cpu): Detect -mpconfig 28176 and -mwbnoinvd. 28177 * config/i386/i386-builtin.def (__builtin_ia32_wbnoinvd, 28178 __builtin_ia32_wbinvd): New builtins. 28179 (SPECIAL_ARGS2): New. 28180 * config/i386/i386-c.c (__WBNOINVD__, __PCONFIG__): New. 28181 (SPECIAL_ARGS2): New. 28182 * config/i386/i386.c (ix86_target_string): Add -mpconfig and -mwbnoinvd. 28183 (ix86_valid_target_attribute_inner_p): Ditto. 28184 (ix86_init_mmx_sse_builtins): Add special_args2. 28185 * config/i386/i386.h (TARGET_PCONFIG, TARGET_PCONFIG_P, TARGET_WBNOINVD, 28186 TARGET_WBNOINVD_P): New. 28187 * config/i386/i386.md (UNSPECV_WBINVD, UNSPECV_WBNOINVD): New. 28188 (define_insn "wbinvd", define_insn "wbnoinvd"): New. 28189 * config/i386/i386.opt: Add -mpconfig and -mwbnoinvd. 28190 * config/i386/immintrin.h (_wbinvd): New intrinsic. 28191 * config/i386/pconfigintrin.h: New file. 28192 * config/i386/wbnoinvdintrin.h: Ditto. 28193 * config/i386/x86intrin.h: Add headers pconfigintrin.h and 28194 wbnoinvdintrin.h. 28195 * doc/invoke.texi (-mpconfig, -mwbnoinvd): New. 28196 281972018-03-05 Richard Biener <rguenther@suse.de> 28198 28199 PR tree-optimization/84670 28200 * tree-ssa-pre.c (struct bb_bitmap_sets): Add visited_with_visited_succs 28201 member. 28202 (BB_VISITED_WITH_VISITED_SUCCS): New define. 28203 (compute_antic): Initialize BB_VISITED_WITH_VISITED_SUCCS. 28204 (compute_antic_aux): Only assert the number of values in ANTIC_IN 28205 doesn't grow if all successors (recursively) were visited at least 28206 once. 28207 282082018-03-05 Richard Biener <rguenther@suse.de> 28209 28210 PR tree-optimization/84650 28211 * tree-ssa-loop-im.c (pass_lim::execute): Reset the SCEV cache 28212 if executed in the loop pipeline. 28213 282142018-03-05 Sandra Loosemore <sandra@codesourcery.com> 28215 28216 * doc/configfiles.texi (Configuration Files): Move info about 28217 conditionalizing $target-protos.h to... 28218 * doc/sourcebuild.texi (Back End): Here. Explain how $target.h 28219 differs from $target-protos.h. 28220 282212018-03-05 Kito Cheng <kito.cheng@gmail.com> 28222 Chung-Ju Wu <jasonwucj@gmail.com> 28223 28224 * config/nds32/nds32-protos.h (nds32_expand_setmem): Declare. 28225 * config/nds32/nds32-multiple.md (setmemsi): Define. 28226 * config/nds32/nds32-memory-manipulation.c 28227 (nds32_gen_dup_4_byte_to_word_value): New. 28228 (emit_setmem_word_loop): New. 28229 (emit_setmem_byte_loop): New. 28230 (nds32_expand_setmem_loop): New. 28231 (nds32_expand_setmem_loop_v3m): New. 28232 (nds32_expand_setmem_unroll): New. 28233 (nds32_expand_setmem): New. 28234 282352018-03-04 Kito Cheng <kito.cheng@gmail.com> 28236 Chung-Ju Wu <jasonwucj@gmail.com> 28237 28238 * config/nds32/nds32-memory-manipulation.c 28239 (nds32_emit_load_store): New. 28240 (nds32_emit_post_inc_load_store): New. 28241 (nds32_emit_mem_move): New. 28242 (nds32_emit_mem_move_block): New. 28243 (nds32_expand_movmemsi_loop_unknown_size): New. 28244 (nds32_expand_movmemsi_loop_known_size): New. 28245 (nds32_expand_movmemsi_loop): New. 28246 (nds32_expand_movmemsi_unroll): New. 28247 (nds32_expand_movmemqi): Rename ... 28248 (nds32_expand_movmemsi): ... to this. 28249 * config/nds32/nds32-multiple.md (movmemqi): Rename ... 28250 (movmemsi): ... to this. 28251 * config/nds32/nds32-protos.h (nds32_expand_movmemqi): Rename ... 28252 (nds32_expand_movmemsi): ... to this. 28253 282542018-03-04 Kito Cheng <kito.cheng@gmail.com> 28255 Monk Chiang <sh.chiang04@gmail.com> 28256 Chung-Ju Wu <jasonwucj@gmail.com> 28257 28258 * config/nds32/nds32-protos.h 28259 (nds32_expand_load_multiple): New arguments. 28260 (nds32_expand_store_multiple): Ditto. 28261 (nds32_valid_multiple_load_store): Rename ... 28262 (nds32_valid_multiple_load_store_p): ... to this. 28263 * config/nds32/nds32-memory-manipulation.c 28264 (nds32_expand_load_multiple): Refine implementation. 28265 (nds32_expand_store_multiple): Ditto. 28266 * config/nds32/nds32-multiple.md 28267 (load_multiple): Update nds32_expand_load_multiple interface. 28268 (store_multiple): Update nds32_expand_store_multiple interface. 28269 * config/nds32/nds32-predicates.c 28270 (nds32_valid_multiple_load_store): Rename ... 28271 (nds32_valid_multiple_load_store_p): ... to this and refine 28272 implementation. 28273 * config/nds32/predicates.md 28274 (nds32_load_multiple_and_update_address_operation): New predicate. 28275 (nds32_store_multiple_and_update_address_operation): New predicate. 28276 282772018-03-04 Kito Cheng <kito.cheng@gmail.com> 28278 Chung-Ju Wu <jasonwucj@gmail.com> 28279 28280 * config/nds32/nds32.md (type): Add load_multiple and store_multiple. 28281 (combo): New attribute. 28282 * config/nds32/nds32-multiple.md: Refine patterns with new attributes. 28283 282842018-03-03 Chung-Ju Wu <jasonwucj@gmail.com> 28285 28286 * config/nds32/nds32.opt: Change -mcmodel= default value. 28287 282882018-03-03 Kito Cheng <kito.cheng@gmail.com> 28289 Monk Chiang <sh.chiang04@gmail.com> 28290 Chung-Ju Wu <jasonwucj@gmail.com> 28291 28292 * config/nds32/constants.md (unspec_element): New enum. 28293 * config/nds32/constraints.md (Umw): New constraint. 28294 * config/nds32/nds32-intrinsic.c: Add more builtin functions. 28295 * config/nds32/nds32-intrinsic.md: Likewise. 28296 * config/nds32/nds32-md-auxiliary.c (nds32_regno_to_enable4): New. 28297 (nds32_valid_smw_lwm_base_p): New. 28298 (nds32_output_smw_single_word): New. 28299 (nds32_output_lmw_single_word): New. 28300 (nds32_expand_unaligned_load): New. 28301 (nds32_expand_unaligned_store): New. 28302 * config/nds32/nds32-protos.h (nds32_valid_smw_lwm_base_p): Declare. 28303 (nds32_output_smw_single_word): Declare. 28304 (nds32_output_lmw_single_word): Declare. 28305 (nds32_expand_unaligned_load): Declare. 28306 (nds32_expand_unaligned_store): Declare. 28307 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_UALOAD_HW, 28308 NDS32_BUILTIN_UALOAD_W, NDS32_BUILTIN_UALOAD_DW, 28309 NDS32_BUILTIN_UASTORE_HW, NDS32_BUILTIN_UASTORE_W, 28310 NDS32_BUILTIN_UASTORE_DW. 28311 * config/nds32/predicates.md (nds32_lmw_smw_base_operand): New 28312 predicate. 28313 283142018-03-03 Monk Chiang <sh.chiang04@gmail.com> 28315 Kito Cheng <kito.cheng@gmail.com> 28316 Chung-Ju Wu <jasonwucj@gmail.com> 28317 28318 * config/nds32/nds32-intrinsic.c 28319 (nds32_expand_builtin_null_ftype_reg): Delete. 28320 (nds32_expand_builtin_reg_ftype_imm): Ditto. 28321 (nds32_expand_builtin_null_ftype_reg_imm): Ditto. 28322 (nds32_read_argument): New. 28323 (nds32_legitimize_target): Ditto. 28324 (nds32_legitimize_argument): Ditto. 28325 (nds32_check_constant_argument): Ditto. 28326 (nds32_expand_unop_builtin): Ditto. 28327 (nds32_expand_unopimm_builtin): Ditto. 28328 (nds32_expand_binop_builtin): Ditto. 28329 (nds32_builtin_decl_impl): Ditto. 28330 (builtin_description): Ditto. 28331 (nds32_expand_builtin_impl): Rewrite with new infrastructure. 28332 (nds32_init_builtins_impl): Ditto. 28333 * config/nds32/nds32.c (TARGET_BUILTIN_DECL): Define. 28334 (nds32_builtin_decl): New. 28335 * config/nds32/nds32.h (nds32_builtins): Add NDS32_BUILTIN_COUNT. 28336 * config/nds32/nds32-protos.h (nds32_builtin_decl_impl): Declare. 28337 283382018-03-02 Jeff Law <law@redhat.com> 28339 28340 * reorg.c (stop_search_p): Handle DEBUG_INSN. 28341 (redundant_insn, fill_simple_delay_slots): Likewise. 28342 (fill_slots_from_thread): Likewise. 28343 * resource.c (mark_referenced_resources): Likewise. 28344 (mark_set_resources, find_dead_or_set_registers): Likewise. 28345 283462018-03-02 Jakub Jelinek <jakub@redhat.com> 28347 28348 * substring-locations.h (format_warning_va): Formatting fix for 28349 ATTRIBUTE_GCC_DIAG. 28350 (format_warning_at_substring): Fix up ATTRIBUTE_GCC_DIAG second 28351 argument. 28352 (format_warning_n_va, format_warning_at_substring_n): New prototypes. 28353 * substring-locations.c: Include intl.h. 28354 (format_warning_va): Turned into small wrapper around 28355 format_warning_n_va, renamed to ... 28356 (format_warning_n_va): ... this, add N and PLURAL_GMSGID arguments, 28357 rename GMSGID to SINGULAR_GMSGID, if SINGULAR_GMSGID != PLURAL_GMSGID, 28358 use ngettext. 28359 (format_warning_at_substring_n): New function. 28360 * gimple-ssa-sprintf.c: Remove GCC diagnostic ignored pragma. 28361 (fmtwarn): Add ATTRIBUTE_GCC_DIAG. Turn into a copy of 28362 format_warning_at_substring with just a shorter name instead of 28363 const function pointer. 28364 (fmtwarn_n): New function. 28365 (maybe_warn, format_directive, parse_directive): Use fmtwarn_n where 28366 appropriate, get rid of all the fmtstr temporaries, move conditionals 28367 with G_() wrapped string literals directly into fmtwarn arguments, 28368 cast dir.len to (int), formatting fixes. 28369 283702018-03-02 Thomas Schwinge <thomas@codesourcery.com> 28371 28372 * doc/invoke.texi: Remove "Cilk Plus" references. 28373 283742018-03-02 Jakub Jelinek <jakub@redhat.com> 28375 Richard Biener <rguenther@suse.de> 28376 28377 PR ipa/84628 28378 * expr.c (expand_expr_real_1) <case CALL_EXPR>: Don't emit diagnostics 28379 for error or warning attributes if CALL_FROM_THUNK_P is set. 28380 Formatting fixes. 28381 283822018-03-02 Jakub Jelinek <jakub@redhat.com> 28383 28384 PR target/56540 28385 * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Predefine 28386 __SIZEOF_128__ macro if HPUX_LONG_DOUBLE_LIBRARY. 28387 28388 PR target/56540 28389 * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Predefine 28390 __SIZEOF_{FPREG,FLOAT{80,128}}__ macros. 28391 28392 * predict.c (test_prediction_value_range): Use PROB_UNINITIALIZED 28393 instead of -1U in last predictors element's probability member. 28394 283952018-03-02 Eric Botcazou <ebotcazou@adacore.com> 28396 28397 PR ipa/83983 28398 * ipa-devirt.c (odr_subtypes_equivalent_p): Get the ODR type of both 28399 arguments if they are comparable. 28400 284012018-03-02 Richard Sandiford <richard.sandiford@linaro.org> 28402 28403 PR tree-optimization/84634 28404 * tree-vect-stmts.c (vectorizable_store, vectorizable_load): Replace 28405 masks and masked_loop_p with a single loop_masks, making sure it's 28406 null for bb vectorization. 28407 284082018-03-02 Richard Sandiford <richard.sandiford@linaro.org> 28409 28410 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence) 28411 (vect_analyze_data_ref_access): Use loop->safe_len rather than 28412 loop->force_vectorize to check whether there is no alias. 28413 284142018-03-02 Jakub Jelinek <jakub@redhat.com> 28415 28416 PR target/84614 28417 * rtl.h (prev_real_nondebug_insn, next_real_nondebug_insn): New 28418 prototypes. 28419 * emit-rtl.c (next_real_insn, prev_real_insn): Fix up function 28420 comments. 28421 (next_real_nondebug_insn, prev_real_nondebug_insn): New functions. 28422 * cfgcleanup.c (try_head_merge_bb): Use prev_real_nondebug_insn 28423 instead of a loop around prev_real_insn. 28424 * combine.c (move_deaths): Use prev_real_nondebug_insn instead of 28425 prev_real_insn. 28426 28427 PR inline-asm/84625 28428 * config/i386/i386.c (ix86_print_operand): Use conditional 28429 output_operand_lossage instead of gcc_assert if CONST_VECTOR is not 28430 zero vector. 28431 284322018-03-02 Richard Biener <rguenther@suse.de> 28433 28434 PR tree-optimization/84427 28435 * tree-ssa-pre.c (bitmap_remove_expr_from_set): Remove. 28436 (bitmap_set_subtract_values): Rewrite to handle multiple 28437 exprs per value. 28438 (clean): Likewise. 28439 (prune_clobbered_mems): Likewise. 28440 (phi_translate): Take edge instead of pred/phiblock. 28441 (phi_translate_1): Likewise. 28442 (phi_translate_set): Likewise. Insert all translated 28443 exprs for a value into the set, keeping possibly multiple 28444 expressions per value. 28445 (compute_antic_aux): Adjust for phi_translate changes. 28446 When intersecting union the expressions and prune those 28447 not in the final value set, keeping possibly multiple 28448 expressions per value. Do not use value-insertion 28449 for unioning ANTIC_OUT U EXP_GEN - TMP_GEN but merge 28450 all expressions. Add verification that the value-sets 28451 only shrink during iteration. 28452 (compute_partial_antic_aux): Adjust for the phi_translate changes. 28453 (do_pre_regular_insertion): Likewise. 28454 (do_pre_partial_partial_insertion): Likewise. 28455 284562018-03-02 Richard Biener <rguenther@suse.de> 28457 28458 PR target/82005 28459 * config/darwin.c (saved_debug_info_level): New static global. 28460 (darwin_asm_lto_start): Disable debug info generation for LTO out. 28461 (darwin_asm_lto_end): Restore debug info generation settings. 28462 284632018-03-01 Martin Liska <mliska@suse.cz> 28464 28465 PR sanitizer/82484 28466 * sanopt.c (sanitize_rewrite_addressable_params): Do not handle 28467 volatile arguments. 28468 284692018-03-01 Richard Biener <rguenther@suse.de> 28470 28471 PR debug/84645 28472 * dwarf2out.c (gen_variable_die): Properly handle late VLA 28473 type annotation with LTO when debug was disabled at compile-time. 28474 284752018-03-01 Matthew Fortune <mfortune@gmail.com> 28476 28477 * config/mips/mips.c (mips_final_prescan_insn): Fix incorrect 28478 XINT with INTVAL. 28479 (mips_final_postscan_insn): Likewise. 28480 284812018-03-01 Richard Sandiford <richard.sandiford@linaro.org> 28482 28483 PR rtl-optimization/84528 28484 * alias.c (init_alias_target): Add commentary. 28485 (init_alias_analysis): Only give HARD_FRAME_POINTER_REGNUM 28486 a unique base value if the frame pointer is not eliminated 28487 to the stack pointer. 28488 284892018-03-01 Tom de Vries <tom@codesourcery.com> 28490 28491 PR rtl-optimization/83327 28492 * lra-int.h (hard_regs_spilled_into): Declare. 28493 * lra.c (hard_regs_spilled_into): Define. 28494 (init_reg_info): Init hard_regs_spilled_into. 28495 * lra-spills.c (assign_spill_hard_regs): Update hard_regs_spilled_into. 28496 * lra-lives.c (make_hard_regno_born, make_hard_regno_dead) 28497 (process_bb_lives): Handle hard_regs_spilled_into. 28498 (lra_create_live_ranges_1): Before doing liveness propagation, clear 28499 regs in all_hard_regs_bitmap if set in hard_regs_spilled_into. 28500 285012018-02-28 David Edelsohn <dje.gcc@gmail.com> 28502 28503 * config.gcc (powerpc-ibm-aix7.1.*): New stanza. 28504 (powerpc-ibm-aix[789]*): Default to AIX 7.2. 28505 * config/rs6000/aix71.h (TARGET_DEFAULT): Revert to Power4 ISA. 28506 * config/rs6000/aix72.h: New file. 28507 285082018-02-28 Jakub Jelinek <jakub@redhat.com> 28509 28510 * gimple-ssa-warn-restrict.c (maybe_diag_overlap): Use warning_n 28511 instead of warning_at with conditional singular and plural messages 28512 where possible. 28513 28514 PR target/52991 28515 * stor-layout.c (update_alignment_for_field): For 28516 targetm.ms_bitfield_layout_p (rli->t), if !is_bitfield 28517 && !DECL_PACKED (field), do the alignment update, just use 28518 only desired_align instead of MAX (type_align, desired_align) 28519 as the alignment. 28520 (place_field): Don't do known_align < desired_align handling 28521 early if targetm.ms_bitfield_layout_p (rli->t) and rli->prev_field 28522 is non-NULL, instead do it after rli->prev_field handling and 28523 only if not within a bitfield word. For DECL_PACKED (field) 28524 use type_align of BITS_PER_UNIT. 28525 285262018-02-28 Eric Botcazou <ebotcazou@adacore.com> 28527 28528 * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Remove 28529 superfluous parentheses and trailing spaces. 28530 285312018-02-28 Richard Biener <rguenther@suse.de> 28532 28533 PR tree-optimization/84584 28534 * graphite-scop-detection.c (scop_detection::add_scop): Discard 28535 SCoPs with fake exit edge. 28536 285372018-02-28 Martin Liska <mliska@suse.cz> 28538 28539 PR testsuite/84597 28540 * timevar.c (timer::print): Fix format to properly print 100% 28541 values. 28542 285432018-02-28 Richard Biener <rguenther@suse.de> 28544 28545 PR middle-end/84607 28546 * genmatch.c (capture_info::walk_match): Do not mark 28547 captured expressions without operands as expr_p given 28548 they act more like predicates and should be subject to 28549 "lost tail" side-effect preserving. 28550 285512018-02-28 Alexandre Oliva <aoliva@redhat.com> 28552 28553 PR rtl-optimization/81611 28554 * auto-inc-dec.c (attempt_change): Move dead note from 28555 mem_insn if it's the next use of regno 28556 (find_address): Take address use of reg holding 28557 non-incremented value. Add parm to limit search to the named 28558 reg only. 28559 (merge_in_block): Attempt to use a mem insn that is the next 28560 use of the original regno. 28561 285622018-02-27 Martin Sebor <msebor@redhat.com> 28563 28564 PR c++/83871 28565 * doc/invoke.texi (-Wmissing-attributes): New option. 28566 * print-tree.c (print_node): Handle DECL_UNINLINABLE. 28567 285682018-02-27 Martin Sebor <msebor@redhat.com> 28569 28570 PR translation/84207 28571 * diagnostic-core.h (warning_n, error_n, inform_n): Change 28572 n argument to unsigned HOST_WIDE_INT. 28573 * diagnostic.c (warning_n, error_n, inform_n): Ditto. 28574 (diagnostic_n_impl): Ditto. Handle arguments in excess of LONG_MAX. 28575 * gimple-ssa-sprintf.c (format_directive): Simplify inform_n call. 28576 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Use warning_n. 28577 285782018-02-27 Richard Biener <rguenther@suse.de> 28579 28580 PR tree-optimization/84512 28581 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): 28582 Do not use the estimate returned from record_stmt_cost for 28583 the scalar iteration cost but sum properly using add_stmt_cost. 28584 285852018-02-27 Richard Biener <rguenther@suse.de> 28586 28587 PR tree-optimization/84466 28588 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): 28589 Adjust last change to less strictly validate use operands. 28590 285912018-02-27 Martin Liska <mliska@suse.cz> 28592 28593 PR gcov-profile/84548 28594 * gcov.c (process_file): Allow partial overlap and consider it 28595 also as group functions. 28596 (output_lines): Properly calculate range of lines for a group. 28597 285982018-02-27 Martin Liska <mliska@suse.cz> 28599 28600 * timevar.c (timer::print_row): Remove 'usr', 'sys', 'wall' and 28601 'ggc' suffixes. Change first column width. 28602 (timer::print): Fix formatting of the column. 28603 286042018-02-27 Alexandre Oliva <aoliva@redhat.com> 28605 28606 * tree-ssa-live.c (remove_unused_scope_block_p): Do not 28607 preserve inline entry blocks for the sake of debug inline 28608 entry point markers alone. 28609 (remove_unused_locals): Suggest in comments a better place to 28610 force the preservation of inline entry blocks that are 28611 otherwise unused, but do not preserve them. 28612 286132018-02-26 H.J. Lu <hongjiu.lu@intel.com> 28614 28615 * config/i386/i386.c (ix86_output_indirect_jmp): Update comments. 28616 286172018-02-26 H.J. Lu <hongjiu.lu@intel.com> 28618 28619 PR target/84039 28620 * config/i386/constraints.md (Bs): Replace 28621 ix86_indirect_branch_register with 28622 TARGET_INDIRECT_BRANCH_REGISTER. 28623 (Bw): Likewise. 28624 * config/i386/i386.md (indirect_jump): Likewise. 28625 (tablejump): Likewise. 28626 (*sibcall_memory): Likewise. 28627 (*sibcall_value_memory): Likewise. 28628 Peepholes of indirect call and jump via memory: Likewise. 28629 (*sibcall_GOT_32): Disallowed for TARGET_INDIRECT_BRANCH_REGISTER. 28630 (*sibcall_value_GOT_32): Likewise. 28631 * config/i386/predicates.md (indirect_branch_operand): Likewise. 28632 (GOT_memory_operand): Likewise. 28633 (call_insn_operand): Likewise. 28634 (sibcall_insn_operand): Likewise. 28635 (GOT32_symbol_operand): Likewise. 28636 * config/i386/i386.h (TARGET_INDIRECT_BRANCH_REGISTER): New. 28637 286382018-02-26 Eric Botcazou <ebotcazou@adacore.com> 28639 28640 PR rtl-optimization/83496 28641 * reorg.c (steal_delay_list_from_target): Change REDUNDANT array from 28642 booleans to RTXes. Call fix_reg_dead_note on every non-null element. 28643 (steal_delay_list_from_fallthrough): Call fix_reg_dead_note on a 28644 redundant insn, if any. 28645 (relax_delay_slots): Likewise. 28646 (update_reg_unused_notes): Rename REDUNDANT_INSN to OTHER_INSN. 28647 286482018-02-26 Richard Sandiford <richard.sandiford@linaro.org> 28649 28650 PR tree-optimization/83965 28651 * tree-vect-patterns.c (vect_reassociating_reduction_p): Assume 28652 that grouped statements are part of a reduction chain. Return 28653 true if the statement is not marked as a reduction itself but 28654 is part of a group. 28655 (vect_recog_dot_prod_pattern): Don't check whether the statement 28656 is part of a group here. 28657 (vect_recog_sad_pattern): Likewise. 28658 (vect_recog_widen_sum_pattern): Likewise. 28659 286602018-02-26 Eric Botcazou <ebotcazou@adacore.com> 28661 28662 PR debug/84545 28663 * final.c (rest_of_clean_state): Also look for calls inside sequences. 28664 286652018-02-26 H.J. Lu <hongjiu.lu@intel.com> 28666 28667 PR target/84530 28668 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Remove 28669 the bool argument. 28670 (ix86_output_indirect_function_return): New prototype. 28671 (ix86_split_simple_return_pop_internal): Likewise. 28672 * config/i386/i386.c (indirect_return_via_cx): New. 28673 (indirect_return_via_cx_bnd): Likewise. 28674 (indirect_thunk_name): Handle return va CX_REG. 28675 (output_indirect_thunk_function): Create alias for 28676 __x86_return_thunk_[re]cx and __x86_return_thunk_[re]cx_bnd. 28677 (ix86_output_indirect_jmp): Remove the bool argument. 28678 (ix86_output_indirect_function_return): New function. 28679 (ix86_split_simple_return_pop_internal): Likewise. 28680 * config/i386/i386.md (*indirect_jump): Don't pass false 28681 to ix86_output_indirect_jmp. 28682 (*tablejump_1): Likewise. 28683 (simple_return_pop_internal): Change it to define_insn_and_split. 28684 Call ix86_split_simple_return_pop_internal to split it for 28685 -mfunction-return=. 28686 (simple_return_indirect_internal): Call 28687 ix86_output_indirect_function_return instead of 28688 ix86_output_indirect_jmp. 28689 286902018-02-26 Jakub Jelinek <jakub@redhat.com> 28691 28692 PR bootstrap/84405 28693 * vec.h (vec_default_construct): For BROKEN_VALUE_INITIALIZATION use 28694 memset and value initialization afterwards. 28695 286962018-02-26 Christophe Lyon <christophe.lyon@linaro.org> 28697 28698 * Makefile.in (lto-wrapper): Use ALL_LINKERFLAGS. 28699 287002018-02-26 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 28701 28702 PR target/84521 28703 * common/config/aarch64/aarch64-common.c 28704 (aarch_option_optimization_table[]): Switch 28705 off fomit-frame-pointer 28706 287072018-02-26 Kito Cheng <kito.cheng@gmail.com> 28708 Chung-Ju Wu <jasonwucj@gmail.com> 28709 28710 * config/nds32/nds32-multiple.md (load_multiple): Disallow 28711 volatile memory. 28712 (store_multiple): Ditto. 28713 287142018-02-26 Kito Cheng <kito.cheng@gmail.com> 28715 28716 * config.gcc: Add --with-cpu support for nds32 target. 28717 * config/nds32/nds32-opts.h (nds32_cpu_type): New. 28718 * config/nds32/nds32.opt: Add -mcpu= option. 28719 287202018-02-25 Segher Boessenkool <segher@kernel.crashing.org> 28721 28722 * config/rs6000/rs6000.opt (mvrsave=no, mvrsave=yes, isel=no, 28723 isel=yes): Warn for these deprecated options. 28724 287252018-02-23 David Edelsohn <dje.gcc@gmail.com> 28726 28727 * config/rs6000/aix71.h (TARGET_DEFAULT): Change to 28728 ISA_2_5_MASKS_EMBEDDED. 28729 287302018-02-23 Jakub Jelinek <jakub@redhat.com> 28731 28732 * ipa-prop.c (ipa_vr_ggc_hash_traits::hash): Hash p->min and 28733 p->max as pointers rather than using iterative_hash_expr. 28734 287352018-02-23 Carl Love <cel@us.ibm.com> 28736 28737 * config/rs6000/rs6000-builtin.def: Change VSIGNED2 and VUNSIGNED2 28738 macro expansions from BU_VSX_2 to BU_P8V_VSX_2 and BU_VSX_OVERLOAD_2 to 28739 BU_P8V_OVERLOAD_2. 28740 * config/rs6000/rs6000-c.c: Change VSX_BUILTIN_VEC_VSIGNED2 to 28741 P8V_BUILTIN_VEC_VSIGNED2. Change VSX_BUILTIN_VEC_VUNSIGNED2 to 28742 P8V_BUILTIN_VEC_VUNSIGNED2. 28743 287442018-02-22 Vladimir Makarov <vmakarov@redhat.com> 28745 28746 PR target/81572 28747 * lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros. 28748 * lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use 28749 LRA_UNKNOWN_ALT. 28750 * lra-constraints.c (curr_insn_transform): Set up 28751 LRA_NON_CLOBBERED_ALT for moves processed on the fast path. Use 28752 LRA_UNKNOWN_ALT. 28753 (remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT. 28754 * lra-eliminations.c (spill_pseudos): Ditto. 28755 (process_insn_for_elimination): Ditto. 28756 * lra-lives.c (reg_early_clobber_p): Use the new macros. 28757 * lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and 28758 LRA_NON_CLOBBERED_ALT. 28759 287602018-02-22 Martin Sebor <msebor@redhat.com> 28761 28762 PR tree-optimization/84480 28763 * gimple-fold.c (gimple_fold_builtin_strcpy): Move warnings 28764 to maybe_diag_stxncpy_trunc. Call it. 28765 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Integrate warnings 28766 from gimple_fold_builtin_strcpy. Print inlining stack. 28767 (handle_builtin_stxncpy): Print inlining stack. 28768 * tree-ssa-strlen.h (maybe_diag_stxncpy_trunc): Declare. 28769 287702018-02-22 H.J. Lu <hongjiu.lu@intel.com> 28771 28772 PR target/84176 28773 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an 28774 error when -mindirect-branch=thunk-extern, -fcf-protection=branch 28775 and -fcheck-pointer-bounds are used together. 28776 (indirect_thunk_prefix): New enum. 28777 (indirect_thunk_need_prefix): New function. 28778 (indirect_thunk_name): Replace need_bnd_p with need_prefix. Use 28779 "_nt" instead of "_bnd" for NOTRACK prefix. 28780 (output_indirect_thunk): Replace need_bnd_p with need_prefix. 28781 (output_indirect_thunk_function): Likewise. 28782 (): Likewise. 28783 (ix86_code_end): Update output_indirect_thunk_function calls. 28784 (ix86_output_indirect_branch_via_reg): Replace 28785 ix86_bnd_prefixed_insn_p with indirect_thunk_need_prefix. 28786 (ix86_output_indirect_branch_via_push): Likewise. 28787 (ix86_output_function_return): Likewise. 28788 * doc/invoke.texi: Document -mindirect-branch=thunk-extern is 28789 incompatible with -fcf-protection=branch and 28790 -fcheck-pointer-bounds. 28791 287922018-02-22 Steve Ellcey <sellcey@cavium.com> 28793 28794 PR target/83335 28795 * config/aarch64/aarch64.c (aarch64_print_address_internal): 28796 Change gcc_assert call to output_operand_lossage. 28797 287982018-02-22 Steve Ellcey <sellcey@cavium.com> 28799 28800 * doc/extend.texi (__builtin_extend_pointer): Document builtin. 28801 288022018-02-22 DJ Delorie <dj@redhat.com> 28803 Sebastian Perta <sebastian.perta@renesas.com> 28804 Oleg Endo <olegendo@gcc.gnu.org> 28805 28806 * config/rx/rx.c (rx_rtx_costs): New function. 28807 (TARGET_RTX_COSTS): Override to use rx_rtx_costs. 28808 288092018-02-22 Thomas Preud'homme <thomas.preudhomme@arm.com> 28810 28811 * config/arm/t-multilib: Map Armv8-R to Armv7 multilibs. 28812 288132018-02-22 Martin Liska <mliska@suse.cz> 28814 28815 PR driver/83193 28816 * common/config/arm/arm-common.c (arm_print_hint_for_cpu_option): 28817 Add "native" as a possible value. 28818 288192018-02-22 Martin Liska <mliska@suse.cz> 28820 28821 PR driver/83193 28822 * config/i386/i386.c (ix86_option_override_internal): 28823 Add "native" as a possible value for -march and -mtune. 28824 288252018-02-22 Jakub Jelinek <jakub@redhat.com> 28826 28827 PR target/84502 28828 * stor-layout.c (finalize_type_size): Propagate TYPE_EMPTY_P flag 28829 to all type variants. 28830 28831 PR tree-optimization/84503 28832 * gimple-ssa-store-merging.c (merged_store_group::merge_into): Compute 28833 width as info->bitpos + info->bitsize - start. 28834 (merged_store_group::merge_overlapping): Simplify width computation. 28835 (check_no_overlap): New function. 28836 (imm_store_chain_info::try_coalesce_bswap): Compute expected 28837 start + width and last_order of the group, fail if check_no_overlap 28838 fails. 28839 (imm_store_chain_info::coalesce_immediate_stores): Don't merge info 28840 to group if check_no_overlap fails. 28841 288422018-02-21 Segher Boessenkool <segher@kernel.crashing.org> 28843 28844 * config/rs6000/altivec.md: Delete contraint arguments to 28845 define_expand, define_split, and define_peephole2, and in 28846 define_insn_and_split if always unused. 28847 * config/rs6000/darwin.md: Ditto. 28848 * config/rs6000/dfp.md: Ditto. 28849 * config/rs6000/rs6000.md: Ditto. 28850 * config/rs6000/sync.md: Ditto. 28851 * config/rs6000/vector.md: Ditto. 28852 * config/rs6000/vsx.md: Ditto. 28853 288542018-02-21 Segher Boessenkool <segher@kernel.crashing.org> 28855 28856 * config/rs6000/altivec.md: Write output control strings as braced 28857 blocks instead of double-quoted strings. 28858 * config/rs6000/darwin.md: Ditto. 28859 * config/rs6000/rs6000.md: Ditto. 28860 * config/rs6000/vector.md: Ditto. 28861 * config/rs6000/vsx.md: Ditto. 28862 288632018-02-21 Jason Merrill <jason@redhat.com> 28864 28865 PR c++/84314 - ICE with templates and fastcall attribute. 28866 * attribs.c (build_type_attribute_qual_variant): Remove assert. 28867 288682018-02-21 Jan Hubicka <hubicka@ucw.cz> 28869 28870 * ipa-cp.c (determine_versionability): Fix comment typos. 28871 288722018-02-21 Jan Hubicka <hubicka@ucw.cz> 28873 28874 PR c/84229 28875 * ipa-cp.c (determine_versionability): Do not version functions caling 28876 va_arg_pack. 28877 288782018-02-21 Martin Liska <mliska@suse.cz> 28879 28880 PR driver/83193 28881 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): 28882 Add "native" as a possible value. 28883 * config/aarch64/aarch64.h (HAVE_LOCAL_CPU_DETECT): Define 28884 the macro when native cpu detection is available. 28885 288862018-02-21 Martin Liska <mliska@suse.cz> 28887 28888 PR driver/83193 28889 * common/config/arm/arm-common.c (arm_print_hint_for_arch_option): 28890 Add "native" as a possible value. 28891 * config/arm/arm.h (HAVE_LOCAL_CPU_DETECT): Define the macro 28892 when native cpu detection is available. 28893 288942018-02-21 Jakub Jelinek <jakub@redhat.com> 28895 Martin Sebor <msebor@redhat.com> 28896 28897 PR tree-optimization/84478 28898 * gimple-fold.h (get_range_strlen): Add a bool argument defaulted to 28899 false. 28900 * gimple-fold.c (get_range_strlen): Make minlen const and assume it 28901 can't be NULL. Change FUZZY from bool to int, for 1 add PHI/COND_EXPR 28902 support which is conservatively correct, for 2 only stay conservative 28903 for maxlen. Formatting and comment capitalization fixes. Add STRICT 28904 argument to the 2 argument get_range_strlen, adjust 6 arg 28905 get_range_strlen caller and clear minmaxlen[0] and [1] if it returned 28906 false. 28907 (get_maxval_strlen): Adjust 6 arg get_range_strlen caller. 28908 (gimple_fold_builtin_strlen): Pass true as last argument to 28909 get_range_strlen. 28910 289112018-02-20 Martin Sebor <msebor@redhat.com> 28912 28913 PR middle-end/84095 28914 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): New. 28915 (builtin_memref::set_base_and_offset): Same. Handle inner references. 28916 (builtin_memref::builtin_memref): Factor out parts into 28917 set_base_and_offset and call it. 28918 289192018-02-20 Richard Sandiford <richard.sandiford@linaro.org> 28920 28921 PR middle-end/84406 28922 * optabs-query.c (find_widening_optab_handler_and_mode): If from_mode 28923 is a scalar_int_mode, assert that to_mode is a scalar_int_mode with 28924 greater precision. If to_mode is a MODE_PARTIAL_INT, stop the 28925 search at the associated MODE_INT. 28926 289272018-02-20 Jeff Law <law@redhat.com> 28928 28929 PR middle-end/82123 28930 PR tree-optimization/81592 28931 PR middle-end/79257 28932 * gimple-ssa-sprintf.c (format_integer): Query EVRP range analyzer 28933 for range data rather than using global data. 28934 * gimple-ssa-sprintf.c (get_int_range): Query EVRP range analyzer for 28935 range data rather than using global data. 28936 * gimple-ssa-sprintf.c (get_int_range): Accept vr_values parameter 28937 pass it to children as needed. 28938 (struct directive::fmtresult): Similarly. 28939 (struct directive::set_width): Similarly. 28940 (struct directive::set_precision): Similarly. 28941 (format_integer, format_directive, parse_directive): Similarly. 28942 (format_none): Accept unnamed vr_values parameter. 28943 (format_percent, format_floating, format_character): Similarly. 28944 (format_string, format_plain): Similarly. 28945 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): Query 28946 the EVRP range analyzer for range data rather than using global data. 28947 * gimple-ssa-sprintf.c: Include alloc-pool.h, vr-values.h and 28948 gimple-ssa-evrp-analyze.h 28949 (class sprintf_dom_walker): Add after_dom_children member function. 28950 Add evrp_range_analyzer member. 28951 (sprintf_dom_walker::before_dom_children): Call into the EVRP 28952 range analyzer as needed. 28953 (sprintf_dom_walker::after_dom_children): New member function. 28954 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::enter): Do nothing 28955 if not optimizing. 28956 (evrp_range_analyzer::record_ranges_from_stmt): Likewise. 28957 (evrp_range_analyzer::pop_to_marker): Likewise. 28958 289592018-02-20 Richard Sandiford <richard.sandiford@linaro.org> 28960 28961 PR tree-optimization/84419 28962 * internal-fn.c (expand_call_mem_ref): Create a TARGET_MEM_REF 28963 with the required type if its current type is compatible but 28964 different. 28965 289662018-02-20 Jakub Jelinek <jakub@redhat.com> 28967 28968 PR middle-end/82004 28969 * match.pd (pow(C,x) -> exp(log(C)*x)): Delay all folding until 28970 after vectorization. 28971 289722018-02-20 Martin Liska <mliska@suse.cz> 28973 28974 PR driver/83193 28975 * config/aarch64/aarch64.c (aarch64_print_hint_for_core_or_arch): Print 28976 possible values if we don't have a hint. 28977 289782018-02-20 Martin Liska <mliska@suse.cz> 28979 28980 PR c/84310 28981 PR target/79747 28982 * final.c (shorten_branches): Build align_tab array with one 28983 more element. 28984 * opts.c (finish_options): Add alignment option limit check. 28985 (MAX_CODE_ALIGN): Likewise. 28986 (MAX_CODE_ALIGN_VALUE): Likewise. 28987 * doc/invoke.texi: Document maximum allowed option value for 28988 all -falign-* options. 28989 289902018-02-19 Jakub Jelinek <jakub@redhat.com> 28991 28992 PR target/84146 28993 * reg-notes.def (REG_CALL_ARG_LOCATION): New reg note. 28994 * insn-notes.def (NOTE_INSN_CALL_ARG_LOCATION): Remove. 28995 * var-tracking.c (emit_note_insn_var_location): Remove all references 28996 to NOTE_INSN_CALL_ARG_LOCATION. 28997 (emit_notes_in_bb): Emit arguments as REG_CALL_ARG_LOCATION note on 28998 the CALL_INSN rather than separate NOTE_INSN_CALL_ARG_LOCATION note. 28999 Use copy_rtx_if_shared. 29000 * dwarf2out.c (gen_subprogram_die): Use XEXP with 0 instead of 29001 NOTE_VAR_LOCATION on ca_loc->call_arg_loc_note. 29002 (dwarf2out_var_location): Remove handling of 29003 NOTE_INSN_CALL_ARG_LOCATION, instead handle REG_CALL_ARG_LOCATION note 29004 on call_insn. 29005 * final.c (final_scan_insn): Remove all references to 29006 NOTE_INSN_CALL_ARG_LOCATION. 29007 (rest_of_clean_state): Likewise. Remove REG_CALL_ARG_LOCATION notes 29008 before dumping final insns. 29009 * except.c (emit_note_eh_region_end): Remove all references to 29010 NOTE_INSN_CALL_ARG_LOCATION. 29011 * config/alpha/alpha.c (alpha_pad_function_end): Likewise. 29012 * config/c6x/c6x.c (c6x_gen_bundles): Likewise. 29013 * config/arc/arc.c (hwloop_optimize): Likewise. 29014 * config/arm/arm.c (create_fix_barrier): Likewise. 29015 * config/s390/s390.c (s390_chunkify_start): Likewise. 29016 * config/sh/sh.c (find_barrier): Likewise. 29017 * config/i386/i386.c (rest_of_insert_endbranch, 29018 ix86_seh_fixup_eh_fallthru): Likewise. 29019 * config/xtensa/xtensa.c (hwloop_optimize): Likewise. 29020 * config/iq2000/iq2000.c (final_prescan_insn): Likewise. 29021 * config/frv/frv.c (frv_function_prologue): Likewise. 29022 * emit-rtl.c (try_split): Likewise. Copy over REG_CALL_ARG_LOCATION 29023 reg note. 29024 (note_outside_basic_block_p): Remove all references to 29025 NOTE_INSN_CALL_ARG_LOCATION. 29026 * gengtype.c (adjust_field_rtx_def): Likewise. 29027 * print-rtl.c (rtx_writer::print_rtx_operand_code_0, print_insn): 29028 Likewise. 29029 * jump.c (cleanup_barriers, delete_related_insns): Likewise. 29030 * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. 29031 29032 PR c++/84444 29033 * builtins.c (builtin_mathfn_code): Don't check if CALL_EXPR_FN (t) 29034 is ADDR_EXPR. 29035 29036 PR tree-optimization/84452 29037 * tree-vect-patterns.c (vect_recog_pow_pattern): Don't call 29038 expand_simd_clones if targetm.simd_clone.compute_vecsize_and_simdlen 29039 is NULL. 29040 290412018-02-19 Martin Liska <mliska@suse.cz> 29042 29043 PR sanitizer/82183 29044 * passes.def: Put pass_sancov_O0 before pass_lower_switch with -O0. 29045 290462018-02-19 Martin Liska <mliska@suse.cz> 29047 Richard Sandiford <richard.sandiford@linaro.org> 29048 29049 PR tree-optimization/82491 29050 * gimple-fold.c (get_base_constructor): Make earlier bail out 29051 to prevent ubsan. 29052 290532018-02-19 Carl Love <cel@us.ibm.com> 29054 29055 * config/rs6000/rs6000-builtin.def: Change NEG macro expansions from 29056 BU_ALTIVEC_A to BU_P8V_AV_1 and BU_ALTIVEC_OVERLOAD_1 to 29057 BU_P8V_OVERLOAD_1. 29058 * config/rs6000/rs6000-c.c: Change ALTIVEC_BUILTIN_VEC_NEG to 29059 P8V_BUILTIN_VEC_NEG. 29060 290612018-02-19 Sebastian Perta <sebastian.perta@renesas.com> 29062 29063 * config/rl78/rl78.md (movdf): New define expand. 29064 290652018-02-19 Martin Liska <mliska@suse.cz> 29066 29067 PR other/80589 29068 * doc/invoke.texi: Fix typo. 29069 * params.def (PARAM_MAX_LOOP_HEADER_INSNS): Likewise. 29070 290712018-02-18 Segher Boessenkool <segher@kernel.crashing.org> 29072 29073 * config/rs6000/rs6000.c (rs6000_option_override_internal): Don't 29074 handle rs6000_single_float and rs6000_double_float specially for 29075 e500 family CPUs. 29076 290772018-02-16 Jeff Law <law@redhat.com> 29078 29079 * config/rx/rx.c (add_pop_cfi_notes): New function.; 29080 (pop_regs): Use it. 29081 290822018-02-16 Jakub Jelinek <jakub@redhat.com> 29083 29084 PR ipa/84425 29085 * ipa-inline.c (inline_small_functions): Fix a typo. 29086 290872018-02-16 Nathan Sidwell <nathan@acm.org> 29088 29089 * doc/extend.texi (Backwards Compatibility): Americanize 'behaviour'. 29090 290912018-02-16 Carl Love <cel@us.ibm.com> 29092 29093 * config/rs6000/rs6000-builtin.def: Add BU_P8V_VSX_2 macro definition. 29094 Change FLOAT2 expansions from BU_VSX_2 to BU_P8V_VSX_2 and 29095 from BU_VSX_OVERLOAD_2 to BU_P8V_OVERLOAD_2. 29096 * config/rs6000/rs6000-c.c: Changed macro VSX_BUILTIN_VEC_FLOAT2 29097 expansion to P8V_BUILTIN_VEC_FLOAT2. 29098 290992018-02-16 Vladimir Makarov <vmakarov@redhat.com> 29100 29101 PR rtl-optimization/70023 29102 * lra-constraints.c (inherit_in_ebb): Take hard reg mode of 29103 src_regno into account. 29104 291052018-02-16 Carl Love <cel@us.ibm.com> 29106 29107 * config/rs6000/altivec.h: Remove vec_vextract4b and vec_vinsert4b. 29108 * config/rs6000/rs6000-builtin.def: Remove macro expansion for 29109 VEXTRACT4B, VINSERT4B, VINSERT4B_DI and VEXTRACT4B. 29110 * config/rs6000/rs6000.c: Remove case statements for 29111 P9V_BUILTIN_VEXTRACT4B, P9V_BUILTIN_VEC_VEXTRACT4B, 29112 P9V_BUILTIN_VINSERT4B, P9V_BUILTIN_VINSERT4B_DI, 29113 and P9V_BUILTIN_VEC_VINSERT4B. 29114 * config/rs6000/rs6000-c.c (altivec_expand_builtin): Remove entries for 29115 P9V_BUILTIN_VEC_VEXTRACT4B and P9V_BUILTIN_VEC_VINSERT4B. 29116 * config/rs6000/vsx.md: 29117 * doc/extend.texi: Remove vec_vextract4b, non ABI definitions for 29118 vec_insert4b. 29119 291202018-02-16 Carl Love <cel@us.ibm.com> 29121 29122 * config/rs6000/altivec.h: Add builtin names vec_extract4b 29123 vec_insert4b. 29124 * config/rs6000/rs6000-builtin.def: Add INSERT4B and EXTRACT4B 29125 definitions. 29126 * config/rs6000/rs6000-c.c: Add the definitions for 29127 P9V_BUILTIN_VEC_EXTRACT4B and P9V_BUILTIN_VEC_INSERT4B. 29128 * config/rs6000/rs6000.c (altivec_expand_builtin): Add 29129 P9V_BUILTIN_EXTRACT4B and P9V_BUILTIN_INSERT4B case statements. 29130 * config/rs6000/vsx.md: Add define_insn extract4b. Add define_expand 29131 definition for insert4b and define insn *insert3b_internal. 29132 * doc/extend.texi: Add documentation for vec_extract4b. 29133 291342018-02-16 Nathan Sidwell <nathan@acm.org> 29135 29136 * doc/extend.texi (Backwards Compatibility): Mention friend 29137 injection. Note for-scope is deprecated. 29138 * doc/invoke.texi (-ffriend-injection): Deprecate. 29139 291402018-02-16 Segher Boessenkool <segher@kernel.crashing.org> 29141 29142 * combine.c (try_combine): When adjusting LOG_LINKS for the destination 29143 that moved to I2, also allow destinations that are a paradoxical 29144 subreg (instead of a normal reg). 29145 291462018-02-16 Oleg Endo <olegendo@gcc.gnu.org> 29147 29148 PR target/83831 29149 * config/rx/rx.c (rx_fuse_in_memory_bitop): Convert shift operand 29150 to QImode. 29151 291522018-02-16 Richard Biener <rguenther@suse.de> 29153 29154 PR tree-optimization/84037 29155 PR tree-optimization/84016 29156 PR target/82862 29157 * config/i386/i386.c (ix86_builtin_vectorization_cost): 29158 Adjust vec_construct for the fact we need additional higher latency 29159 128bit inserts for AVX256 and AVX512 vector builds. 29160 (ix86_add_stmt_cost): Scale vector construction cost for 29161 elementwise loads. 29162 291632018-02-16 Richard Biener <rguenther@suse.de> 29164 29165 PR tree-optimization/84417 29166 * tree-ssa.c (non_rewritable_mem_ref_base): Properly constrain 29167 the MEM_REF offset when conversion to BIT_FIELD_REF is desired. 29168 (non_rewritable_lvalue_p): Likewise, use poly-ints. 29169 291702018-02-16 Martin Liska <mliska@suse.cz> 29171 29172 PR sanitizer/84307 29173 * internal-fn.def (ASAN_CHECK): Set proper flags. 29174 (ASAN_MARK): Likewise. 29175 291762018-02-16 Julia Koval <julia.koval@intel.com> 29177 29178 * config/i386/i386.c (ix86_option_override_internal): Remove PTA_CLWB 29179 from PTA_CANNONLAKE. 29180 291812018-02-16 Jakub Jelinek <jakub@redhat.com> 29182 29183 PR target/84272 29184 * config/aarch64/cortex-a57-fma-steering.c (fma_forest::merge_forest): 29185 Use ++iter rather than iter++ for std::list iterators. 29186 (func_fma_steering::dfs): Likewise. Don't delete nodes right away, 29187 defer deleting them until all nodes in the forest are processed. Do 29188 free even leaf nodes. Change to_process into auto_vec. 29189 29190 PR bootstrap/84405 29191 * system.h (BROKEN_VALUE_INITIALIZATION): Define for GCC < 4.3. 29192 * vec.h (vec_default_construct): Use memset instead of placement new 29193 if BROKEN_VALUE_INITIALIZATION is defined. 29194 * hash-table.h (hash_table<Descriptor, Allocator>::empty_slow): Use 29195 memset instead of value initialization if BROKEN_VALUE_INITIALIZATION 29196 is defined. 29197 29198 PR rtl-optimization/83723 29199 * lra-int.h (lra_substitute_pseudo): Add DEBUG_P argument. 29200 * lra.c (lra_substitute_pseudo): Likewise. If true, use 29201 gen_rtx_raw_SUBREG instead of gen_rtx_SUBREG. Pass DEBUG_P to 29202 recursive calls. 29203 (lra_substitute_pseudo_within_insn): Adjust lra_substitute_pseudo 29204 callers. 29205 * lra-constraints.c (inherit_reload_reg, split_reg): Likewise. 29206 292072018-02-16 Eric Botcazou <ebotcazou@adacore.com> 29208 29209 PR rtl-optimization/81443 29210 * rtlanal.c (num_sign_bit_copies1) <SUBREG>: Do not propagate results 29211 from inner REGs to paradoxical SUBREGs. 29212 292132018-02-16 Richard Biener <rguenther@suse.de> 29214 29215 PR tree-optimization/84399 29216 * graphite-scop-detection.c (scop_detection::stmt_simple_for_scop_p): 29217 For operands we can analyze at their definition make sure we can 29218 analyze them at each use as well. 29219 292202018-02-16 Richard Biener <rguenther@suse.de> 29221 29222 PR tree-optimization/84190 29223 * tree-ssa.c (non_rewritable_mem_ref_base): Do not touch 29224 volatile accesses if the decl isn't volatile. 29225 292262018-02-15 Jason Merrill <jason@redhat.com> 29227 29228 PR c++/84314 - ICE with templates and fastcall attribute. 29229 * attribs.c (build_type_attribute_qual_variant): Don't clobber 29230 TYPE_CANONICAL on an existing type. 29231 292322018-02-15 Jakub Jelinek <jakub@redhat.com> 29233 29234 PR tree-optimization/84383 29235 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Don't look at 29236 dstoff nor call operand_equal_p if dstbase is NULL. 29237 29238 PR tree-optimization/84334 29239 * match.pd ((A +- CST1) +- CST2 -> A + CST3): If A is 29240 also a CONSTANT_CLASS_P, punt. 29241 292422018-02-14 Jim Wilson <jimw@sifive.com> 29243 29244 * config/riscv/riscv.c (riscv_first_stack_step): Move locals after 29245 first SMALL_OPERAND check. New local min_second_step. Move assert 29246 to where locals are set. Add TARGET_RVC support. 29247 * config/riscv/riscv.h (C_SxSP_BITS, SWSP_REACH, SDSP_REACH): New. 29248 292492018-02-14 Indu Bhagat <indu.bhagat@oracle.com> 29250 29251 * doc/invoke.texi: Correct -Wformat-overflow code sample. 29252 292532018-02-14 Martin Sebor <msebor@redhat.com> 29254 29255 PR tree-optimization/83698 29256 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For 29257 arrays constrain the offset range to their bounds. 29258 (builtin_access::strcat_overlap): Adjust the bounds of overlap offset. 29259 (builtin_access::overlap): Avoid setting the size of overlap if it's 29260 already been set. 29261 (maybe_diag_overlap): Also consider arrays when deciding what values 29262 of offsets to include in diagnostics. 29263 292642018-02-14 Martin Sebor <msebor@redhat.com> 29265 29266 PR c/84108 29267 * attribs.c (diag_attr_exclusions): Consider the exclusion(s) 29268 that correspond to the kind of a declaration. 29269 292702018-02-14 John David Anglin <danglin@gcc.gnu.org> 29271 29272 PR target/83984 29273 * config/pa/pa.md: Load address of PIC label using the linkage table 29274 if the label is nonlocal. 29275 292762018-02-14 Kelvin Nilsen <kelvin@gcc.gnu.org> 29277 29278 * config/rs6000/rs6000.c (rs6000_option_override_internal): Issue 29279 warning message if user requests -maltivec=be. 29280 * doc/invoke.texi: Document deprecation of -maltivec=be. 29281 292822018-02-14 Will Schmidt <will_schmidt@vnet.ibm.com> 29283 29284 PR target/84220 29285 * config/rs6000/rs6000-c.c: Update definitions for 29286 ALTIVEC_BUILTIN_VEC_SLD, ALTIVEC_BUILTIN_VEC_SLDW, 29287 VEC_XXSLDWI and ALTIVEC_BUILTIN_VEC_XXPERMDI builtins. 29288 292892018-02-14 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 29290 29291 PR target/84239 29292 * config/i386/cetintrin.h: Remove _rdssp[d|q] and 29293 add _get_ssp intrinsics. Remove argument from 29294 __builtin_ia32_rdssp[d|q]. 29295 * config/i386/i386-builtin-types.def: Add UINT_FTYPE_VOID. 29296 * config/i386/i386-builtin.def: Remove argument from 29297 __builtin_ia32_rdssp[d|q]. 29298 * config/i386/i386.c: Use UINT_FTYPE_VOID. Use 29299 ix86_expand_special_args_builtin for _rdssp[d|q]. 29300 * config/i386/i386.md: Remove argument from rdssp[si|di] insn. 29301 Clear register before usage. 29302 * doc/extend.texi: Remove argument from __builtin_ia32_rdssp[d|q]. 29303 Add documentation for new _get_ssp and _inc_ssp intrinsics. 29304 293052018-02-14 Richard Sandiford <richard.sandiford@linaro.org> 29306 29307 PR tree-optimization/84357 29308 * tree-data-ref.c (object_address_invariant_in_loop_p): Check 29309 operand 1 of an ARRAY_REF too. 29310 293112018-02-14 Oleg Endo <olegendo@gcc.gnu.org> 29312 29313 PR target/83831 29314 * config/rx/rx-protos.h (rx_reg_dead_or_unused_after_insn, 29315 rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New 29316 declarations. 29317 (set_of_reg): New struct. 29318 (rx_find_set_of_reg, rx_find_use_of_reg): New functions. 29319 * config/rx/rx.c (rx_reg_dead_or_unused_after_insn, 29320 rx_copy_reg_dead_or_unused_notes, rx_fuse_in_memory_bitop): New 29321 functions. 29322 * config/rx/rx.md (andsi3, iorsi3, xorsi3): Convert to insn_and_split. 29323 Split into bitclr, bitset, bitinvert patterns if appropriate. 29324 (*bitset, *bitinvert, *bitclr): Convert to named insn_and_split and 29325 use rx_fuse_in_memory_bitop. 29326 (*bitset_in_memory, *bitinvert_in_memory, *bitclr_in_memory): Convert 29327 to named insn, correct maximum insn length. 29328 293292018-02-14 Jozef Lawrynowicz <jozefl.gcc@gmail.com> 29330 29331 PR target/79242 29332 * machmode.def: Define a complex mode for PARTIAL_INT. 29333 * genmodes.c (complex_class): Return MODE_COMPLEX_INT for 29334 MODE_PARTIAL_INT. 29335 * doc/rtl.texi: Document CSPImode. 29336 * config/msp430/msp430.c (msp430_hard_regno_nregs): Add CPSImode 29337 handling. 29338 (msp430_hard_regno_nregs_with_padding): Likewise. 29339 293402018-02-13 Peter Bergner <bergner@vnet.ibm.com> 29341 29342 PR target/84279 29343 * config/rs6000/rs6000.c (mem_operand_gpr): Disallow altivec addresses. 29344 293452018-02-13 Segher Boessenkool <segher@kernel.crashing.org> 29346 29347 PR rtl-optimization/84169 29348 * combine.c (try_combine): New variable split_i2i3. Set it to true if 29349 we generated a parallel as new i3 and we split that to new i2 and i3 29350 instructions. Handle split_i2i3 similar to swap_i2i3: scan the 29351 LOG_LINKs of i3 to see which of those need to link to i2 now. Link 29352 those to i2, not i1. Partially rewrite this scan code. 29353 293542018-02-13 Jakub Jelinek <jakub@redhat.com> 29355 29356 PR c/82210 29357 * stor-layout.c (place_field): For variable length fields, adjust 29358 offset_align afterwards not just based on the field's alignment, 29359 but also on the size. 29360 29361 PR middle-end/84309 29362 * match.pd (pow(C,x) -> exp(log(C)*x)): Use exp2s and log2s instead 29363 of exps and logs in the use_exp2 case. 29364 293652018-02-13 Jeff Law <law@redhat.com> 29366 29367 * config/rl/rl78.c (rl78_attribute_table): Fix terminator and 29368 entry for "vector". 29369 29370 * config/rl78/rl78.c (rl78_handle_func_attribute): Mark 29371 ARGS as unused. 29372 293732018-02-13 Alexandre Oliva <aoliva@redhat.com> 29374 29375 PR debug/84342 29376 PR debug/84319 29377 * common.opt (gas-loc-support, gas-locview-support): New. 29378 (ginline-points, ginternal-reset-location-views): New. 29379 * doc/invoke.texi: Document them. Use @itemx where intended. 29380 (gvariable-location-views): Adjust. 29381 * target.def (reset_location_view): New. 29382 * doc/tm.texi.in (DWARF2_ASM_VIEW_DEBUG_INFO): New. 29383 (TARGET_RESET_LOCATION_VIEW): New. 29384 * doc/tm.texi: Rebuilt. 29385 * dwarf2out.c (dwarf2out_default_as_loc_support): New. 29386 (dwarf2out_default_as_locview_support): New. 29387 (output_asm_line_debug_info): Use option variables. 29388 (dwarf2out_maybe_output_loclist_view_pair): Likewise. 29389 (output_loc_list): Likewise. 29390 (add_high_low_attributes): Check option variables. 29391 Don't output entry view attribute in strict mode. 29392 (gen_inlined_subroutine_die): Check option variables. 29393 (dwarf2out_inline_entry): Likewise. 29394 (init_sections_and_labels): Likewise. 29395 (dwarf2out_early_finish): Likewise. 29396 (maybe_reset_location_view): New, from... 29397 (dwarf2out_var_location): ... here. Call it. 29398 * debug.h (dwarf2out_default_as_loc_support): Declare. 29399 (dwarf2out_default_as_locview_support): Declare. 29400 * hooks.c (hook_int_rtx_insn_0): New. 29401 * hooks.h (hook_int_rtx_insn_0): Declare. 29402 * toplev.c (process_options): Take -gas-loc-support and 29403 -gas-locview-support from dwarf2out. Enable 29404 -gvariable-location-views by default only with locview 29405 assembler support. Enable -ginternal-reset-location-views by 29406 default only if the target defines the corresponding hook. 29407 Enable -ginline-points by default if location views are 29408 enabled; force it disabled if statement frontiers are 29409 disabled. 29410 * tree-inline.c (expand_call_inline): Check option variables. 29411 * tree-ssa-live.c (remove_unused_scope_block_p): Likewise. 29412 294132018-02-13 Richard Sandiford <richard.sandiford@linaro.org> 29414 29415 PR tree-optimization/84321 29416 * tree-vrp.c (intersect_range_with_nonzero_bits): Fix VR_ANTI_RANGE 29417 handling. Also check whether the anti-range contains any values 29418 that satisfy the mask; switch to a VR_RANGE if not. 29419 294202018-02-13 Paolo Bonzini <bonzini@gnu.org> 29421 29422 PR sanitizer/84340 29423 * internal-fn.def (ASAN_CHECK, ASAN_MARK): Revert changes to fnspec. 29424 294252018-02-13 Martin Jambor <mjambor@suse.cz> 29426 29427 PR c++/83990 29428 * ipa-param-manipulation.c (ipa_modify_call_arguments): Use location 29429 of call statements, also set location of a load to a temporary. 29430 294312018-02-13 Sebastian Perta <sebastian.perta@renesas.com> 29432 29433 * config/rl78/rl78.c (add_vector_labels): New function. 29434 * config/rl78/rl78.c (rl78_handle_vector_attribute): New function. 29435 * config/rl78/rl78.c (rl78_start_function): Call add_vector_labels. 29436 * config/rl78/rl78.c (rl78_handle_func_attribute): Removed the assert 29437 which checks that no arguments are passed. 29438 * config/rl78/rl78.c (rl78_attribute_table): Add "vector" attribute. 29439 * doc/extend.texi: Documentation for the new attribute. 29440 294412018-02-13 Andreas Schwab <schwab@suse.de> 29442 29443 * config/riscv/linux.h (CPP_SPEC): Define. 29444 294452018-02-13 Jakub Jelinek <jakub@redhat.com> 29446 29447 PR target/84335 29448 * config/i386/i386.c (ix86_init_mmx_sse_builtins): Pass 29449 OPTION_MASK_ISA_AES | OPTION_MASK_ISA_SSE2 instead of 29450 OPTION_MASK_ISA_AES as first argument to def_builtin_const 29451 for AES builtins. Pass OPTION_MASK_ISA_PCLMUL | OPTION_MASK_ISA_SSE2 29452 instead of OPTION_MASK_ISA_PCLMUL as first argument to 29453 def_builtin_const for __builtin_ia32_pclmulqdq128 builtin. 29454 * config/i386/wmmintrin.h: If __SSE2__ is not defined, enable it 29455 temporarily for AES and PCLMUL builtins. 29456 29457 PR tree-optimization/84339 29458 * gimple-fold.c (get_range_strlen): Set *FLEXP to true when handling 29459 ARRAY_REF where first operand is array_at_struct_end_p COMPONENT_REF. 29460 Formatting fixes. 29461 29462 PR middle-end/84309 29463 * match.pd (pow(C,x) -> exp(log(C)*x)): Optimize instead into 29464 exp2(log2(C)*x) if C is a power of 2 and c99 runtime is available. 29465 * generic-match-head.c (canonicalize_math_after_vectorization_p): New 29466 inline function. 29467 * gimple-match-head.c (canonicalize_math_after_vectorization_p): New 29468 inline function. 29469 * omp-simd-clone.h: New file. 29470 * omp-simd-clone.c: Include omp-simd-clone.h. 29471 (expand_simd_clones): No longer static. 29472 * tree-vect-patterns.c: Include fold-const-call.h, attribs.h, 29473 cgraph.h and omp-simd-clone.h. 29474 (vect_recog_pow_pattern): Optimize pow(C,x) to exp(log(C)*x). 29475 (vect_recog_widen_shift_pattern): Formatting fix. 29476 (vect_pattern_recog_1): Don't check optab for calls. 29477 29478 PR target/84336 29479 * config/i386/sse.md (<avx512>_vpermi2var<mode>3_mask): Force 29480 operands[2] into a REG before using gen_lowpart on it. 29481 294822018-02-12 Jeff Law <law@redhat.com> 29483 29484 PR target/83760 29485 * config/sh/sh.c (find_barrier): Consider a sibling call 29486 a barrier as well. 29487 29488 * cse.c (try_back_substitute_reg): Move any REG_ARGS_SIZE note when 29489 successfully back substituting a reg. 29490 294912018-02-12 Richard Biener <rguenther@suse.de> 29492 29493 PR tree-optimization/84037 29494 * tree-vect-slp.c (vect_analyze_slp_cost): Add visited 29495 parameter, move visited init to caller. 29496 (vect_slp_analyze_operations): Separate cost from validity 29497 check, initialize visited once for all instances. 29498 (vect_schedule_slp): Analyze map to CSE vectorized nodes once 29499 for all instances. 29500 * tree-vect-stmts.c (vect_model_simple_cost): Make early 29501 out an assert. 29502 (vect_model_promotion_demotion_cost): Likewise. 29503 (vectorizable_bswap): Guard cost modeling with !slp_node 29504 instead of !PURE_SLP_STMT to avoid double-counting on hybrid 29505 SLP stmts. 29506 (vectorizable_call): Likewise. 29507 (vectorizable_conversion): Likewise. 29508 (vectorizable_assignment): Likewise. 29509 (vectorizable_shift): Likewise. 29510 (vectorizable_operation): Likewise. 29511 (vectorizable_store): Likewise. 29512 (vectorizable_load): Likewise. 29513 (vectorizable_condition): Likewise. 29514 (vectorizable_comparison): Likewise. 29515 295162018-02-12 Paolo Bonzini <bonzini@gnu.org> 29517 29518 PR sanitizer/84307 29519 * internal-fn.def (ASAN_CHECK): Fix fnspec to account for return value. 29520 (ASAN_MARK): Fix fnspec to account for return value, change pointer 29521 argument from 'R' to 'W' so that the pointed-to datum is clobbered. 29522 295232018-02-08 Jan Hubicka <hubicka@ucw.cz> 29524 29525 PR middle-end/83665 29526 * params.def (inline-min-speedup): Increase from 8 to 15. 29527 (max-inline-insns-auto): Decrease from 40 to 30. 29528 * ipa-split.c (consider_split): Add some buffer for function to 29529 be considered inlining candidate. 29530 * invoke.texi (max-inline-insns-auto, inline-min-speedup): UPdate 29531 default values. 29532 295332018-02-12 Richard Biener <rguenther@suse.de> 29534 29535 PR tree-optimization/84037 29536 * tree-vect-slp.c (vect_build_slp_tree_2): Try swapping the 29537 matched stmts if we cannot swap the non-matched ones. 29538 295392018-02-12 Olga Makhotina <olga.makhotina@intel.com> 29540 29541 * config/i386/avx512fintrin.h (_mm_mask_scalef_round_sd, 29542 _mm_maskz_scalef_round_sd, _mm_mask_scalef_round_ss, 29543 _mm_maskz_scalef_round_ss): New intrinsics. 29544 (__builtin_ia32_scalefsd_round, __builtin_ia32_scalefss_round): Fix. 29545 * config/i386/i386-builtin.def (__builtin_ia32_scalefsd_round, 29546 __builtin_ia32_scalefss_round): Remove. 29547 (__builtin_ia32_scalefsd_mask_round, 29548 __builtin_ia32_scalefss_mask_round): New intrinsics. 29549 * config/i386/sse.md (vmscalef<mode><round_name>): Renamed to ... 29550 (vmscalef<mode><mask_scalar_name><round_scalar_name>): ... this. 29551 ((match_operand:VF_128 2 "<round_nimm_predicate>" 29552 "<round_constraint>")): Changed to ... 29553 ((match_operand:VF_128 2 "<round_scalar_nimm_predicate>" 29554 "<round_scalar_constraint>")): ... this. 29555 ("vscalef<ssescalarmodesuffix>\t{<round_op3>%2, %1, %0| 29556 %0, %1, %2<round_op3>}"): Changed to ... 29557 ("vscalef<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%2, %1, 29558 %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %1, 29559 %2<round_scalar_mask_op3>}"): ... this. 29560 * config/i386/subst.md (round_scalar_nimm_predicate): New. 29561 295622018-02-12 Olga Makhotina <olga.makhotina@intel.com> 29563 29564 * config/i386/avx512fintrin.h (_mm_mask_sqrt_round_sd) 29565 (_mm_maskz_sqrt_round_sd, _mm_mask_sqrt_round_ss) 29566 (_mm_maskz_sqrt_round_ss): New intrinsics. 29567 (__builtin_ia32_sqrtsd_round, __builtin_ia32_sqrtss_round): Remove. 29568 (__builtin_ia32_sqrtsd_mask_round) 29569 (__builtin_ia32_sqrtss_mask_round): New builtins. 29570 * config/i386/i386-builtin.def (__builtin_ia32_sqrtsd_round) 29571 (__builtin_ia32_sqrtss_round): Remove. 29572 (__builtin_ia32_sqrtsd_mask_round) 29573 (__builtin_ia32_sqrtss_mask_round): New builtins. 29574 * config/i386/sse.md (vmsqrt<mode>2<round_name>): Renamed to ... 29575 (vmsqrt<mode>2<mask_scalar_name><round_scalar_name>): ... this. 29576 ((match_operand:VF_128 1 "vector_operand" 29577 "xBm,<round_constraint>")): Changed to ... 29578 ((match_operand:VF_128 1 "vector_operand" 29579 "xBm,<round_scalar_constraint>")): ... this. 29580 (vsqrt<ssescalarmodesuffix>\t{<round_op3>%1, %2, %0| 29581 %0, %2, %<iptr>1<round_op3>}): Changed to ... 29582 (vsqrt<ssescalarmodesuffix>\t{<round_scalar_mask_op3>%1, %2, 29583 %0<mask_scalar_operand3>|%0<mask_scalar_operand3>, %2, 29584 %<iptr>1<round_scalar_mask_op3>}): ... this. 29585 ((set_attr "prefix" "<round_prefix>")): Changed to ... 29586 ((set_attr "prefix" "<round_scalar_prefix>")): ... this. 29587 295882018-02-11 Steven Munroe <munroesj@gcc.gnu.org> 29589 29590 PR target/84266 29591 * config/rs6000/mmintrin.h (_mm_cmpeq_pi32 [_ARCH_PWR9]): 29592 Cast vec_cmpeq result to correct type. 29593 * config/rs6000/mmintrin.h (_mm_cmpgt_pi32 [_ARCH_PWR9]): 29594 Cast vec_cmpgt result to correct type. 29595 295962018-02-11 Alexandre Oliva <aoliva@redhat.com> 29597 29598 * final.c (final_scan_insn_1): Renamed from... 29599 (final_scan_insn): ... this. New wrapper, to recover 29600 seen from the outermost call in recursive ones. 29601 * config/sparc/sparc.c (output_return): Drop seen from call. 29602 (output_sibcall): Likewise. 29603 * config/visium/visium.c (output_branch): Likewise. 29604 296052018-02-10 John David Anglin <danglin@gcc.gnu.org> 29606 29607 * config/pa/pa.c (hppa_profile_hook): Mark SYMBOL_REF for _mcount as 29608 function label. 29609 296102018-02-10 Alan Modra <amodra@gmail.com> 29611 29612 PR target/84300 29613 * config/rs6000/rs6000.md (split_stack_return): Remove (use ..). 29614 Specify LR as an input. 29615 296162018-02-10 Jakub Jelinek <jakub@redhat.com> 29617 29618 PR sanitizer/83987 29619 * omp-low.c (maybe_remove_omp_member_access_dummy_vars, 29620 remove_member_access_dummy_vars): New functions. 29621 (lower_omp_for, lower_omp_taskreg, lower_omp_target, 29622 lower_omp_1, execute_lower_omp): Use them. 29623 29624 PR rtl-optimization/84308 29625 * shrink-wrap.c (spread_components): Release todo vector. 29626 296272018-02-09 Vladimir Makarov <vmakarov@redhat.com> 29628 29629 PR rtl-optimization/57193 29630 * ira-color.c (struct allocno_color_data): Add member 29631 conflict_allocno_hard_prefs. 29632 (update_conflict_allocno_hard_prefs): New. 29633 (bucket_allocno_compare_func): Add a preference based on 29634 conflict_allocno_hard_prefs. 29635 (push_allocno_to_stack): Update conflict_allocno_hard_prefs. 29636 (color_allocnos): Remove a dead code. Initiate 29637 conflict_allocno_hard_prefs. Call update_costs_from_prefs. 29638 296392018-02-09 Jakub Jelinek <jakub@redhat.com> 29640 29641 PR target/84226 29642 * config/rs6000/vsx.md (p9_xxbrq_v16qi): Change input operand 29643 constraint from =wa to wa. Avoid a subreg on the output operand, 29644 instead use a pseudo and subreg it in a move. 29645 (p9_xxbrd_<mode>): Changed to ... 29646 (p9_xxbrd_v2di): ... this insn, without VSX_D iterator. 29647 (p9_xxbrd_v2df): New expander. 29648 (p9_xxbrw_<mode>): Changed to ... 29649 (p9_xxbrw_v4si): ... this insn, without VSX_W iterator. 29650 (p9_xxbrw_v4sf): New expander. 29651 296522018-02-09 Sebastian Perta <sebastian.perta@renesas.com> 29653 29654 * config/rx/rx.md (movsicc): Update expander to be matched by GCC. 29655 296562018-02-09 Peter Bergner <bergner@vnet.ibm.com> 29657 29658 PR target/83926 29659 * config/rs6000/vsx.md (vsx_mul_v2di): Handle generating a 64-bit 29660 multiply in 32-bit mode. 29661 (vsx_div_v2di): Handle generating a 64-bit signed divide in 32-bit mode. 29662 (vsx_udiv_v2di): Handle generating a 64-bit unsigned divide in 32-bit 29663 mode. 29664 296652018-02-09 Sebastian Perta <sebastian.perta@renesas.com> 29666 29667 * config/rx/constraints.md (CALL_OP_SYMBOL_REF): Added new constraint 29668 to allow or block "symbol_ref" depending on the value of TARGET_JSR. 29669 * config/rx/rx.md (call_internal): Use CALL_OP_SYMBOL_REF. 29670 * config/rx/rx.md (call_value_internal): Use CALL_OP_SYMBOL_REF. 29671 296722018-02-09 Pierre-Marie de Rodat <derodat@adacore.com> 29673 29674 PR lto/84213 29675 * dwarf2out.c (is_trivial_indirect_ref): New function. 29676 (dwarf2out_late_global_decl): Do not generate a location 29677 attribute for variables that have a non-trivial DECL_VALUE_EXPR 29678 and that are not defined in the current unit. 29679 296802018-02-09 Eric Botcazou <ebotcazou@adacore.com> 29681 29682 * optabs.c (prepare_cmp_insn): Try harder to emit a direct comparison 29683 instead of a libcall for UNORDERED. 29684 296852018-02-09 Tamar Christina <tamar.christina@arm.com> 29686 29687 PR target/82641 29688 * config/arm/arm-c.c (arm_cpu_builtins): Un-define __ARM_FEATURE_LDREX, 29689 __ARM_ARCH_PROFILE, __ARM_ARCH_ISA_THUMB, __ARM_FP and __ARM_NEON_FP. 29690 296912018-02-09 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 29692 29693 PR target/PR84295 29694 * config/s390/s390.c (s390_set_current_function): Invoke 29695 s390_indirect_branch_settings also if fndecl didn't change. 29696 296972018-02-09 Alexandre Oliva <aoliva@redhat.com> 29698 29699 * config/rs6000/rs6000.md (blockage): Set length to zero. 29700 297012018-02-09 Eric Botcazou <ebotcazou@adacore.com> 29702 29703 * expr.c (optimize_bitfield_assignment_op): Remove obsolete assertion. 29704 297052018-02-09 Jakub Jelinek <jakub@redhat.com> 29706 29707 PR sanitizer/84285 29708 * gcc.c (STATIC_LIBASAN_LIBS, STATIC_LIBTSAN_LIBS, 29709 STATIC_LIBLSAN_LIBS, STATIC_LIBUBSAN_LIBS): Handle -static like 29710 -static-lib*san. 29711 29712 PR debug/84252 29713 * var-tracking.c (vt_add_function_parameter): Punt for non-onepart 29714 PARALLEL incoming that failed vt_get_decl_and_offset check. 29715 29716 PR middle-end/84237 29717 * output.h (bss_initializer_p): Add NAMED argument, defaulted to false. 29718 * varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore 29719 TREE_READONLY bit. 29720 (get_variable_section): For decls in named .bss* sections pass true as 29721 second argument to bss_initializer_p. 29722 297232018-02-09 Marek Polacek <polacek@redhat.com> 29724 Jakub Jelinek <jakub@redhat.com> 29725 29726 PR c++/83659 29727 * fold-const.c (fold_indirect_ref_1): Use VECTOR_TYPE_P macro. 29728 Formatting fixes. Verify first that tree_fits_poly_int64_p (op01). 29729 Sync some changes from cxx_fold_indirect_ref. 29730 297312018-02-09 Alexandre Oliva <aoliva@redhat.com> 29732 29733 * cfgexpand.c (expand_gimple_basic_block): Handle inline entry 29734 markers. 29735 * dwarf2out.c (dwarf2_debug_hooks): Enable inline_entry hook. 29736 (BLOCK_INLINE_ENTRY_LABEL): New. 29737 (dwarf2out_var_location): Disregard inline entry markers. 29738 (inline_entry_data): New struct. 29739 (inline_entry_data_hasher): New hashtable type. 29740 (inline_entry_data_hasher::hash): New. 29741 (inline_entry_data_hasher::equal): New. 29742 (inline_entry_data_table): New variable. 29743 (add_high_low_attributes): Add DW_AT_entry_pc and 29744 DW_AT_GNU_entry_view attributes if a pending entry is found 29745 in inline_entry_data_table. Add old entry_pc attribute only 29746 if debug nonbinding markers are disabled. 29747 (gen_inlined_subroutine_die): Set BLOCK_DIE if nonbinding 29748 markers are enabled. 29749 (block_within_block_p, dwarf2out_inline_entry): New. 29750 (dwarf2out_finish): Check that no entries remained in 29751 inline_entry_data_table. 29752 * final.c (reemit_insn_block_notes): Handle inline entry notes. 29753 (final_scan_insn, notice_source_line): Likewise. 29754 (rest_of_clean_state): Skip inline entry markers. 29755 * gimple-pretty-print.c (dump_gimple_debug): Handle inline entry 29756 markers. 29757 * gimple.c (gimple_build_debug_inline_entry): New. 29758 * gimple.h (enum gimple_debug_subcode): Add 29759 GIMPLE_DEBUG_INLINE_ENTRY. 29760 (gimple_build_debug_inline_entry): Declare. 29761 (gimple_debug_inline_entry_p): New. 29762 (gimple_debug_nonbind_marker_p): Adjust. 29763 * insn-notes.def (INLINE_ENTRY): New. 29764 * print-rtl.c (rtx_writer::print_rtx_operand_code_0): Handle 29765 inline entry marker notes. 29766 (print_insn): Likewise. 29767 * rtl.h (NOTE_MARKER_P): Add INLINE_ENTRY support. 29768 (INSN_DEBUG_MARKER_KIND): Likewise. 29769 (GEN_RTX_DEBUG_MARKER_INLINE_ENTRY_PAT): New. 29770 * tree-inline.c (expand_call_inline): Build and insert 29771 debug_inline_entry stmt. 29772 * tree-ssa-live.c (remove_unused_scope_block_p): Preserve 29773 inline entry blocks early, if nonbind markers are enabled. 29774 (dump_scope_block): Dump fragment info. 29775 * var-tracking.c (reemit_marker_as_note): Handle inline entry note. 29776 * doc/gimple.texi (gimple_debug_inline_entry_p): New. 29777 (gimple_build_debug_inline_entry): New. 29778 * doc/invoke.texi (gstatement-frontiers, gno-statement-frontiers): 29779 Enable/disable inline entry points too. 29780 * doc/rtl.texi (NOTE_INSN_INLINE_ENTRY): New. 29781 (DEBUG_INSN): Describe inline entry markers. 29782 29783 * common.opt (gvariable-location-views): New. 29784 (gvariable-location-views=incompat5): New. 29785 * config.in: Rebuilt. 29786 * configure: Rebuilt. 29787 * configure.ac: Test assembler for view support. 29788 * dwarf2asm.c (dw2_asm_output_symname_uleb128): New. 29789 * dwarf2asm.h (dw2_asm_output_symname_uleb128): Declare. 29790 * dwarf2out.c (var_loc_view): New typedef. 29791 (struct dw_loc_list_struct): Add vl_symbol, vbegin, vend. 29792 (dwarf2out_locviews_in_attribute): New. 29793 (dwarf2out_locviews_in_loclist): New. 29794 (dw_val_equal_p): Compare val_view_list of dw_val_class_view_lists. 29795 (enum dw_line_info_opcode): Add LI_adv_address. 29796 (struct dw_line_info_table): Add view. 29797 (RESET_NEXT_VIEW, RESETTING_VIEW_P): New macros. 29798 (DWARF2_ASM_VIEW_DEBUG_INFO): Define default. 29799 (zero_view_p): New variable. 29800 (ZERO_VIEW_P): New macro. 29801 (output_asm_line_debug_info): New. 29802 (struct var_loc_node): Add view. 29803 (add_AT_view_list, AT_loc_list): New. 29804 (add_var_loc_to_decl): Add view param. Test it against last. 29805 (new_loc_list): Add view params. Record them. 29806 (AT_loc_list_ptr): Handle loc and view lists. 29807 (view_list_to_loc_list_val_node): New. 29808 (print_dw_val): Handle dw_val_class_view_list. 29809 (size_of_die): Likewise. 29810 (value_format): Likewise. 29811 (loc_list_has_views): New. 29812 (gen_llsym): Set vl_symbol too. 29813 (maybe_gen_llsym, skip_loc_list_entry): New. 29814 (dwarf2out_maybe_output_loclist_view_pair): New. 29815 (output_loc_list): Output view list or entries too. 29816 (output_view_list_offset): New. 29817 (output_die): Handle dw_val_class_view_list. 29818 (output_dwarf_version): New. 29819 (output_compilation_unit_header): Use it. 29820 (output_skeleton_debug_sections): Likewise. 29821 (output_rnglists, output_line_info): Likewise. 29822 (output_pubnames, output_aranges): Update version comments. 29823 (output_one_line_info_table): Output view numbers in asm comments. 29824 (dw_loc_list): Determine current endview, pass it to new_loc_list. 29825 Call maybe_gen_llsym. 29826 (loc_list_from_tree_1): Adjust. 29827 (add_AT_location_description): Create view list attribute if 29828 needed, check it's absent otherwise. 29829 (convert_cfa_to_fb_loc_list): Adjust. 29830 (maybe_emit_file): Call output_asm_line_debug_info for test. 29831 (dwarf2out_var_location): Reset views as needed. Precompute 29832 add_var_loc_to_decl args. Call get_attr_min_length only if we have the 29833 attribute. Set view. 29834 (new_line_info_table): Reset next view. 29835 (set_cur_line_info_table): Call output_asm_line_debug_info for test. 29836 (dwarf2out_source_line): Likewise. Output view resets and labels to 29837 the assembler, or select appropriate line info opcodes. 29838 (prune_unused_types_walk_attribs): Handle dw_val_class_view_list. 29839 (optimize_string_length): Catch it. Adjust. 29840 (resolve_addr): Copy vl_symbol along with ll_symbol. Handle 29841 dw_val_class_view_list, and remove it if no longer needed. 29842 (hash_loc_list): Hash view numbers. 29843 (loc_list_hasher::equal): Compare them. 29844 (optimize_location_lists): Check whether a view list symbol is 29845 needed, and whether the locview attribute is present, and 29846 whether they match. Remove the locview attribute if no longer 29847 needed. 29848 (index_location_lists): Call skip_loc_list_entry for test. 29849 (dwarf2out_finish): Call output_asm_line_debug_info for test. 29850 Use output_dwarf_version. 29851 * dwarf2out.h (enum dw_val_class): Add dw_val_class_view_list. 29852 (struct dw_val_node): Add val_view_list. 29853 * final.c (SEEN_NEXT_VIEW): New. 29854 (set_next_view_needed): New. 29855 (clear_next_view_needed): New. 29856 (maybe_output_next_view): New. 29857 (final_start_function): Rename to... 29858 (final_start_function_1): ... this. Take pointer to FIRST, 29859 add SEEN parameter. Emit param bindings in the initial view. 29860 (final_start_function): Reintroduce SEEN-less interface. 29861 (final): Rename to... 29862 (final_1): ... this. Take SEEN parameter. Output final pending 29863 next view at the end. 29864 (final): Reintroduce seen-less interface. 29865 (final_scan_insn): Output pending next view before switching 29866 sections or ending a block. Mark the next view as needed when 29867 outputting variable locations. Notify debug backend of section 29868 changes, and of location view changes. 29869 (rest_of_handle_final): Adjust. 29870 * toplev.c (process_options): Autodetect value for debug variable 29871 location views option. Warn on incompat5 without -gdwarf-5. 29872 * doc/invoke.texi (gvariable-location-views): New. 29873 (gvariable-location-views=incompat5): New. 29874 (gno-variable-location-views): New. 29875 298762018-02-08 David Malcolm <dmalcolm@redhat.com> 29877 29878 PR tree-optimization/84136 29879 * tree-cfg.c (find_taken_edge_computed_goto): Remove assertion 29880 that the result of find_edge is non-NULL. 29881 298822018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> 29883 29884 PR target/83008 29885 * config/i386/x86-tune-costs.h (skylake_cost): Fix cost of 29886 storing integer register in SImode. Fix cost of 256 and 512 29887 byte aligned SSE register store. 29888 298892018-02-08 Sergey Shalnov <sergey.shalnov@intel.com> 29890 29891 * config/i386/i386.c (ix86_multiplication_cost): Fix 29892 multiplication cost for TARGET_AVX512DQ. 29893 298942018-02-08 Marek Polacek <polacek@redhat.com> 29895 29896 PR tree-optimization/84238 29897 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Verify the result of 29898 get_range_strlen. 29899 299002018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 29901 29902 PR tree-optimization/84265 29903 * tree-vect-stmts.c (vectorizable_store): Don't treat 29904 VMAT_CONTIGUOUS accesses as grouped. 29905 (vectorizable_load): Likewise. 29906 299072018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 29908 29909 PR tree-optimization/81635 29910 * wide-int.h (wi::round_down_for_mask, wi::round_up_for_mask): Declare. 29911 * wide-int.cc (wi::round_down_for_mask, wi::round_up_for_mask) 29912 (test_round_for_mask): New functions. 29913 (wide_int_cc_tests): Call test_round_for_mask. 29914 * tree-vrp.h (intersect_range_with_nonzero_bits): Declare. 29915 * tree-vrp.c (intersect_range_with_nonzero_bits): New function. 29916 * tree-data-ref.c (split_constant_offset_1): Use it to refine the 29917 range returned by get_range_info. 29918 299192018-02-08 Jan Hubicka <hubicka@ucw.cz> 29920 29921 PR ipa/81360 29922 * cgraph.h (symtab_node::output_to_lto_symbol_table_p): Declare 29923 * symtab.c: Include builtins.h 29924 (symtab_node::output_to_lto_symbol_table_p): Move here 29925 from lto-streamer-out.c:output_symbol_p. 29926 * lto-streamer-out.c (write_symbol): Turn early exit to assert. 29927 (output_symbol_p): Move all logic to symtab.c 29928 (produce_symtab): Update. 29929 299302018-02-08 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 29931 29932 * config/s390/s390-opts.h (enum indirect_branch): Define. 29933 * config/s390/s390-protos.h (s390_return_addr_from_memory) 29934 (s390_indirect_branch_via_thunk) 29935 (s390_indirect_branch_via_inline_thunk): Add function prototypes. 29936 (enum s390_indirect_branch_type): Define. 29937 * config/s390/s390.c (struct s390_frame_layout, struct 29938 machine_function): Remove. 29939 (indirect_branch_prez10thunk_mask, indirect_branch_z10thunk_mask) 29940 (indirect_branch_table_label_no, indirect_branch_table_name): 29941 Define variables. 29942 (INDIRECT_BRANCH_NUM_OPTIONS): Define macro. 29943 (enum s390_indirect_branch_option): Define. 29944 (s390_return_addr_from_memory): New function. 29945 (s390_handle_string_attribute): New function. 29946 (s390_attribute_table): Add new attribute handler. 29947 (s390_execute_label): Handle UNSPEC_EXECUTE_JUMP patterns. 29948 (s390_indirect_branch_via_thunk): New function. 29949 (s390_indirect_branch_via_inline_thunk): New function. 29950 (s390_function_ok_for_sibcall): When jumping via thunk disallow 29951 sibling call optimization for non z10 compiles. 29952 (s390_emit_call): Force indirect branch target to be a single 29953 register. Add r1 clobber for non-z10 compiles. 29954 (s390_emit_epilogue): Emit return jump via return_use expander. 29955 (s390_reorg): Handle JUMP_INSNs as execute targets. 29956 (s390_option_override_internal): Perform validity checks for the 29957 new command line options. 29958 (s390_indirect_branch_attrvalue): New function. 29959 (s390_indirect_branch_settings): New function. 29960 (s390_set_current_function): Invoke s390_indirect_branch_settings. 29961 (s390_output_indirect_thunk_function): New function. 29962 (s390_code_end): Implement target hook. 29963 (s390_case_values_threshold): Implement target hook. 29964 (TARGET_ASM_CODE_END, TARGET_CASE_VALUES_THRESHOLD): Define target 29965 macros. 29966 * config/s390/s390.h (struct s390_frame_layout) 29967 (struct machine_function): Move here from s390.c. 29968 (TARGET_INDIRECT_BRANCH_NOBP_RET) 29969 (TARGET_INDIRECT_BRANCH_NOBP_JUMP) 29970 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_THUNK) 29971 (TARGET_INDIRECT_BRANCH_NOBP_JUMP_INLINE_THUNK) 29972 (TARGET_INDIRECT_BRANCH_NOBP_CALL) 29973 (TARGET_DEFAULT_INDIRECT_BRANCH_TABLE) 29974 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EXRL) 29975 (TARGET_INDIRECT_BRANCH_THUNK_NAME_EX) 29976 (TARGET_INDIRECT_BRANCH_TABLE): Define macros. 29977 * config/s390/s390.md (UNSPEC_EXECUTE_JUMP) 29978 (INDIRECT_BRANCH_THUNK_REGNUM): Define constants. 29979 (mnemonic attribute): Add values which aren't recognized 29980 automatically. 29981 ("*cjump_long", "*icjump_long", "*basr", "*basr_r"): Disable 29982 pattern for branch conversion. Fix mnemonic attribute. 29983 ("*c<code>", "*sibcall_br", "*sibcall_value_br", "*return"): Emit 29984 indirect branch via thunk if requested. 29985 ("indirect_jump", "<code>"): Expand patterns for branch conversion. 29986 ("*indirect_jump"): Disable for branch conversion using out of 29987 line thunks. 29988 ("indirect_jump_via_thunk<mode>_z10") 29989 ("indirect_jump_via_thunk<mode>") 29990 ("indirect_jump_via_inlinethunk<mode>_z10") 29991 ("indirect_jump_via_inlinethunk<mode>", "*casesi_jump") 29992 ("casesi_jump_via_thunk<mode>_z10", "casesi_jump_via_thunk<mode>") 29993 ("casesi_jump_via_inlinethunk<mode>_z10") 29994 ("casesi_jump_via_inlinethunk<mode>", "*basr_via_thunk<mode>_z10") 29995 ("*basr_via_thunk<mode>", "*basr_r_via_thunk_z10") 29996 ("*basr_r_via_thunk", "return<mode>_prez10"): New pattern. 29997 ("*indirect2_jump"): Disable for branch conversion. 29998 ("casesi_jump"): Turn into expander and expand patterns for branch 29999 conversion. 30000 ("return_use"): New expander. 30001 ("*return"): Emit return via thunk and rename it to ... 30002 ("*return<mode>"): ... this one. 30003 * config/s390/s390.opt: Add new options and and enum for the 30004 option values. 30005 300062018-02-08 Richard Sandiford <richard.sandiford@linaro.org> 30007 30008 * lra-constraints.c (match_reload): Unconditionally use 30009 gen_lowpart_SUBREG, rather than selecting between that 30010 and equivalent gen_rtx_SUBREG code. 30011 300122018-02-08 Richard Biener <rguenther@suse.de> 30013 30014 PR tree-optimization/84233 30015 * tree-ssa-phiprop.c (propagate_with_phi): Use separate 30016 changed flag instead of boguously re-using phi_inserted. 30017 300182018-02-08 Martin Jambor <mjambor@suse.cz> 30019 30020 * hsa-gen.c (get_symbol_for_decl): Set program allocation for 30021 static local variables. 30022 300232018-02-08 Richard Biener <rguenther@suse.de> 30024 30025 PR tree-optimization/84278 30026 * tree-vect-stmts.c (vectorizable_store): When looking for 30027 smaller vector types to perform grouped strided loads/stores 30028 make sure the mode is supported by the target. 30029 (vectorizable_load): Likewise. 30030 300312018-02-08 Wilco Dijkstra <wdijkstr@arm.com> 30032 30033 * config/aarch64/aarch64.c (aarch64_components_for_bb): 30034 Increase LDP/STP opportunities by adding adjacent callee-saves. 30035 300362018-02-08 Wilco Dijkstra <wdijkstr@arm.com> 30037 30038 PR rtl-optimization/84068 30039 PR rtl-optimization/83459 30040 * haifa-sched.c (rank_for_schedule): Fix SCHED_PRESSURE_MODEL sorting. 30041 300422018-02-08 Aldy Hernandez <aldyh@redhat.com> 30043 30044 PR tree-optimization/84224 30045 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Remove assert. 30046 * calls.c (gimple_alloca_call_p): Only return TRUE when we have 30047 non-zero arguments. 30048 300492018-02-07 Iain Sandoe <iain@codesourcery.com> 30050 30051 PR target/84113 30052 * config/rs6000/altivec.md (*restore_world): Remove LR use. 30053 * config/rs6000/predicates.md (restore_world_operation): Adjust op 30054 count, remove one USE. 30055 300562018-02-07 Michael Meissner <meissner@linux.vnet.ibm.com> 30057 30058 * doc/install.texi (Configuration): Document the 30059 --with-long-double-format={ibm,ieee} PowerPC configuration 30060 options. 30061 30062 PR target/84154 30063 * config/rs6000/rs6000.md (fix_trunc<SFDF:mode><QHI:mode>2): 30064 Convert from define_expand to be define_insn_and_split. Rework 30065 float/double/_Float128 conversions to QI/HI/SImode to work with 30066 both ISA 2.07 (power8) or ISA 3.0 (power9). Fix regression where 30067 conversions to QI/HImode types did a store and then a load to 30068 truncate the value. For conversions to VSX registers, don't split 30069 the insn, instead emit the code directly. Use the code iterator 30070 any_fix to combine signed and unsigned conversions. 30071 (fix<uns>_trunc<SFDF:mode>si2_p8): Likewise. 30072 (fixuns_trunc<SFDF:mode><QHI:mode>2): Likewise. 30073 (fix_trunc<IEEE128:mode><QHI:mode>2): Likewise. 30074 (fix<uns>_trunc<SFDF:mode><QHI:mode>2): Likewise. 30075 (fix_<mode>di2_hw): Likewise. 30076 (fixuns_<mode>di2_hw): Likewise. 30077 (fix_<mode>si2_hw): Likewise. 30078 (fixuns_<mode>si2_hw): Likewise. 30079 (fix<uns>_<IEEE128:mode><SDI:mode>2_hw): Likewise. 30080 (fix<uns>_trunc<IEEE128:mode><QHI:mode>2): Likewise. 30081 (fctiw<u>z_<mode>_smallint): Rename fctiw<u>z_<mode>_smallint to 30082 fix<uns>_trunc<SFDF:mode>si2_p8. 30083 (fix_trunc<SFDF:mode><QHI:mode>2_internal): Delete, no longer used. 30084 (fixuns_trunc<SFDF:mode><QHI:mode>2_internal): Likewise. 30085 (fix<uns>_<mode>_mem): Likewise. 30086 (fctiw<u>z_<mode>_mem): Likewise. 30087 (fix<uns>_<mode>_mem): Likewise. 30088 (fix<uns>_trunc<SFDF:mode><QHSI:mode>2_mem): On ISA 3.0, prevent 30089 the register allocator from doing a direct move to the GPRs to do 30090 a store, and instead use the ISA 3.0 store byte/half-word from 30091 vector register instruction. For IEEE 128-bit floating point, 30092 also optimize stores of 32-bit ints. 30093 (fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Likewise. 30094 300952018-02-07 Alan Hayward <alan.hayward@arm.com> 30096 30097 * genextract.c (push_pathstr_operand): New function to support 30098 [a-zA-Z]. 30099 (walk_rtx): Call push_pathstr_operand. 30100 (print_path): Support [a-zA-Z]. 30101 301022018-02-07 Richard Biener <rguenther@suse.de> 30103 30104 PR tree-optimization/84037 30105 * tree-vectorizer.h (struct _loop_vec_info): Add ivexpr_map member. 30106 (cse_and_gimplify_to_preheader): Declare. 30107 (vect_get_place_in_interleaving_chain): Likewise. 30108 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 30109 ivexpr_map. 30110 (_loop_vec_info::~_loop_vec_info): Delete it. 30111 (cse_and_gimplify_to_preheader): New function. 30112 * tree-vect-slp.c (vect_get_place_in_interleaving_chain): Export. 30113 * tree-vect-stmts.c (vectorizable_store): CSE base and steps. 30114 (vectorizable_load): Likewise. For grouped stores always base 30115 the IV on the first element. 30116 * tree-vect-loop-manip.c (vect_loop_versioning): Unshare versioning 30117 condition before gimplifying. 30118 301192018-02-07 Jakub Jelinek <jakub@redhat.com> 30120 30121 * tree-eh.c (operation_could_trap_helper_p): Ignore honor_trapv for 30122 *DIV_EXPR and *MOD_EXPR. 30123 301242018-02-07 H.J. Lu <hongjiu.lu@intel.com> 30125 30126 PR target/84248 30127 * config/i386/i386.c (ix86_option_override_internal): Mask out 30128 the CF_SET bit when checking -fcf-protection. 30129 301302018-02-07 Tom de Vries <tom@codesourcery.com> 30131 30132 PR libgomp/84217 30133 * omp-expand.c (expand_oacc_collapse_init): Ensure diff_type is large 30134 enough. 30135 301362018-02-07 Richard Biener <rguenther@suse.de> 30137 30138 PR tree-optimization/84204 30139 * tree-chrec.c (chrec_fold_plus_1): Remove size limiting in 30140 this place. 30141 30142 PR tree-optimization/84205 30143 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Also 30144 special-case isl_ast_op_zdiv_r. 30145 30146 PR tree-optimization/84223 30147 * graphite-scop-detection.c (gather_bbs::before_dom_children): 30148 Only add conditions from within the region. 30149 (gather_bbs::after_dom_children): Adjust. 30150 301512018-02-07 Georg-Johann Lay <avr@gjlay.de> 30152 30153 PR target/84209 30154 * config/avr/avr.h (GENERAL_REGNO_P, GENERAL_REG_P): New macros. 30155 * config/avr/avr.md: Only post-reload split REG-REG moves if 30156 either register is GENERAL_REG_P. 30157 301582018-02-07 Jakub Jelinek <jakub@redhat.com> 30159 30160 PR tree-optimization/84235 30161 * tree-ssa-scopedtables.c 30162 (avail_exprs_stack::simplify_binary_operation): Fir MINUS_EXPR, punt 30163 if the subtraction is performed in floating point type where NaNs are 30164 honored. For *DIV_EXPR, punt for ALL_FRACT_MODE_Ps where we can't 30165 build 1. Formatting fix. 30166 301672018-02-06 Jakub Jelinek <jakub@redhat.com> 30168 30169 PR target/84146 30170 * config/i386/i386.c (rest_of_insert_endbranch): Only skip 30171 NOTE_INSN_CALL_ARG_LOCATION after a call, not anything else, 30172 and skip it regardless of bb boundaries. Use CALL_P macro, 30173 don't test INSN_P (insn) together with CALL_P or JUMP_P check 30174 unnecessarily, formatting fix. 30175 301762018-02-06 Michael Collison <michael.collison@arm.com> 30177 30178 * config/arm/thumb2.md: 30179 (*thumb2_mov_negscc): Split only if TARGET_THUMB2 && !arm_restrict_it. 30180 (*thumb_mov_notscc): Ditto. 30181 301822018-02-06 Michael Meissner <meissner@linux.vnet.ibm.com> 30183 30184 PR target/84154 30185 * config/rs6000/rs6000.md (su code attribute): Use "u" for 30186 unsigned_fix, not "s". 30187 301882018-02-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30189 30190 * configure.ac (gcc_fn_eh_frame_ro): New function. 30191 (gcc_cv_as_cfi_directive): Check both 32 and 64-bit assembler for 30192 correct .eh_frame permissions. 30193 * configure: Regenerate. 30194 301952018-02-06 Andrew Jenner <andrew@codeourcery.com> 30196 30197 * doc/invoke.texi: Add section for the PowerPC SPE backend. Remove 30198 irrelevant options. 30199 302002018-02-06 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 30201 30202 * config/rs6000/rs6000.c (rs6000_option_override_internal): 30203 Display warning message for -mno-speculate-indirect-jumps. 30204 302052018-02-06 Andrew Jenner <andrew@codesourcery.com> 30206 30207 * config/powerpcspe/powerpcspe.opt: (msimple-fpu, mfpu) Add 30208 Undocumented. 30209 * config/powerpcspe/sysv4.opt (mbit-align): Likewise. 30210 302112018-02-06 Aldy Hernandez <aldyh@redhat.com> 30212 30213 PR tree-optimization/84225 30214 * tree-eh.c (find_trapping_overflow): Only call 30215 operation_no_trapping_overflow when ANY_INTEGRAL_TYPE_P. 30216 302172018-02-06 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 30218 30219 PR target/84145 30220 * config/i386/i386.c: Reimplement the check of possible options 30221 -mibt/-mshstk conbination. Change error messages. 30222 * doc/invoke.texi: Fix a typo: remove extra '='. 30223 302242018-02-06 Marek Polacek <polacek@redhat.com> 30225 30226 PR tree-optimization/84228 30227 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Skip debug statements. 30228 302292018-02-06 Tamar Christina <tamar.christina@arm.com> 30230 30231 PR target/82641 30232 * config/arm/arm.c (arm_print_asm_arch_directives): Record already 30233 emitted arch directives. 30234 * config/arm/arm-c.c (arm_cpu_builtins): Undefine __ARM_ARCH and 30235 __ARM_FEATURE_COPROC before changing architectures. 30236 302372018-02-06 Richard Biener <rguenther@suse.de> 30238 30239 * config/i386/i386.c (print_reg): Fix typo. 30240 (ix86_loop_unroll_adjust): Do not unroll beyond the original nunroll. 30241 302422018-02-06 Eric Botcazou <ebotcazou@adacore.com> 30243 30244 * configure: Regenerate. 30245 302462018-02-05 Martin Sebor <msebor@redhat.com> 30247 30248 PR tree-optimization/83369 30249 * tree-ssa-ccp.c (pass_post_ipa_warn::execute): Use %G to print 30250 inlining context. 30251 302522018-02-05 Martin Liska <mliska@suse.cz> 30253 30254 * doc/invoke.texi: Cherry-pick upstream r323995. 30255 302562018-02-05 Richard Sandiford <richard.sandiford@linaro.org> 30257 30258 * ira.c (ira_init_register_move_cost): Adjust comment. 30259 302602018-02-05 Martin Liska <mliska@suse.cz> 30261 30262 PR gcov-profile/84137 30263 * doc/gcov.texi: Fix typo in documentation. 30264 302652018-02-05 Martin Liska <mliska@suse.cz> 30266 30267 PR gcov-profile/83879 30268 * doc/gcov.texi: Document necessity of --dynamic-list-data when 30269 using dlopen functionality. 30270 302712018-02-05 Olga Makhotina <olga.makhotina@intel.com> 30272 30273 * config/i386/avx512dqintrin.h (_mm_mask_range_sd, _mm_maskz_range_sd, 30274 _mm_mask_range_round_sd, _mm_maskz_range_round_sd, _mm_mask_range_ss, 30275 _mm_maskz_range_ss, _mm_mask_range_round_ss, 30276 _mm_maskz_range_round_ss): New intrinsics. 30277 (__builtin_ia32_rangesd128_round) 30278 (__builtin_ia32_rangess128_round): Remove. 30279 (__builtin_ia32_rangesd128_mask_round, 30280 __builtin_ia32_rangess128_mask_round): New builtins. 30281 * config/i386/i386-builtin.def (__builtin_ia32_rangesd128_round, 30282 __builtin_ia32_rangess128_round): Remove. 30283 (__builtin_ia32_rangesd128_mask_round, 30284 __builtin_ia32_rangess128_mask_round): New builtins. 30285 * config/i386/sse.md (ranges<mode><round_saeonly_name>): Renamed to ... 30286 (ranges<mode><mask_scalar_name><round_saeonly_scalar_name>): ... this. 30287 ((match_operand:VF_128 2 "<round_saeonly_nimm_predicate>" 30288 "<round_saeonly_constraint>")): Changed to ... 30289 ((match_operand:VF_128 2 "<round_saeonly_scalar_nimm_predicate>" 30290 "<round_saeonly_scalar_constraint>")): ... this. 30291 ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_op4>%2, %1, %0| 30292 %0, %1, %2<round_saeonly_op4>, %3}"): Changed to ... 30293 ("vrange<ssescalarmodesuffix>\t{%3, <round_saeonly_scalar_mask_op4>%2, 30294 %1, %0<mask_scalar_operand4>|%0<mask_scalar_operand4>, %1, 30295 %2<round_saeonly_scalar_mask_op4>, %3}"): ... this. 30296 302972018-02-02 Andrew Jenner <andrew@codesourcery.com> 30298 30299 * config/powerpcspe/powerpcspe.opt: Add Undocumented to irrelevant 30300 options. 30301 * config/powerpcspe/powerpcspe-tables.opt (rs6000_cpu_opt_value): 30302 Remove all values except native, 8540 and 8548. 30303 303042018-02-02 H.J. Lu <hongjiu.lu@intel.com> 30305 30306 * config/i386/i386.c (ix86_output_function_return): Pass 30307 INVALID_REGNUM, instead of -1, as invalid register number to 30308 indirect_thunk_name and output_indirect_thunk. 30309 303102018-02-02 Julia Koval <julia.koval@intel.com> 30311 30312 * config.gcc: Add -march=icelake. 30313 * config/i386/driver-i386.c (host_detect_local_cpu): Detect icelake. 30314 * config/i386/i386-c.c (ix86_target_macros_internal): Handle icelake. 30315 * config/i386/i386.c (processor_costs): Add m_ICELAKE. 30316 (PTA_ICELAKE, PTA_AVX512VNNI, PTA_GFNI, PTA_VAES, PTA_AVX512VBMI2, 30317 PTA_VPCLMULQDQ, PTA_RDPID, PTA_AVX512BITALG): New. 30318 (processor_target_table): Add icelake. 30319 (ix86_option_override_internal): Handle new PTAs. 30320 (get_builtin_code_for_version): Handle icelake. 30321 (M_INTEL_COREI7_ICELAKE): New. 30322 (fold_builtin_cpu): Handle icelake. 30323 * config/i386/i386.h (TARGET_ICELAKE, PROCESSOR_ICELAKE): New. 30324 * doc/invoke.texi: Add -march=icelake. 30325 303262018-02-02 Julia Koval <julia.koval@intel.com> 30327 30328 * config/i386/i386.c (ix86_option_override_internal): Change flags type 30329 to wide_int_bitmask. 30330 * wide-int-bitmask.h: New. 30331 303322018-02-02 Igor Tsimbalist <igor.v.tsimbalist@intel.com> 30333 30334 PR target/84066 30335 * config/i386/i386.md: Replace Pmode with word_mode in 30336 builtin_setjmp_setup and builtin_longjmp to support x32. 30337 303382018-02-01 Peter Bergner <bergner@vnet.ibm.com> 30339 30340 PR target/56010 30341 PR target/83743 30342 * config/rs6000/driver-rs6000.c: #include "diagnostic.h". 30343 #include "opts.h". 30344 (rs6000_supported_cpu_names): New static variable. 30345 (linux_cpu_translation_table): Likewise. 30346 (elf_platform) <cpu>: Define new static variable and use it. 30347 Translate kernel AT_PLATFORM name to canonical name if needed. 30348 Error if platform name is unknown. 30349 303502018-02-01 Aldy Hernandez <aldyh@redhat.com> 30351 30352 PR target/84089 30353 * config/pa/predicates.md (base14_operand): Handle E_VOIDmode. 30354 303552018-02-01 Jeff Law <law@redhat.com> 30356 30357 PR target/84128 30358 * config/i386/i386.c (release_scratch_register_on_entry): Add new 30359 OFFSET and RELEASE_VIA_POP arguments. Use SP+OFFSET to restore 30360 the scratch if RELEASE_VIA_POP is false. 30361 (ix86_adjust_stack_and_probe_stack_clash): Un-constify SIZE. 30362 If we have to save a temporary register, decrement SIZE appropriately. 30363 Pass new arguments to release_scratch_register_on_entry. 30364 (ix86_adjust_stack_and_probe): Likewise. 30365 (ix86_emit_probe_stack_range): Pass new arguments to 30366 release_scratch_register_on_entry. 30367 303682018-02-01 Uros Bizjak <ubizjak@gmail.com> 30369 30370 PR rtl-optimization/84157 30371 * combine.c (change_zero_ext): Use REG_P predicate in 30372 front of HARD_REGISTER_P predicate. 30373 303742018-02-01 Georg-Johann Lay <avr@gjlay.de> 30375 30376 * config/avr/avr.c (avr_option_override): Move disabling of 30377 -fdelete-null-pointer-checks to... 30378 * common/config/avr/avr-common.c (avr_option_optimization_table): 30379 ...here. 30380 303812018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 30382 30383 PR tree-optimization/81635 30384 * tree-data-ref.c (split_constant_offset_1): For types that 30385 wrap on overflow, try to use range info to prove that wrapping 30386 cannot occur. 30387 303882018-02-01 Renlin Li <renlin.li@arm.com> 30389 30390 PR target/83370 30391 * config/aarch64/aarch64.c (aarch64_class_max_nregs): Handle 30392 TAILCALL_ADDR_REGS. 30393 (aarch64_register_move_cost): Likewise. 30394 * config/aarch64/aarch64.h (reg_class): Rename CALLER_SAVE_REGS to 30395 TAILCALL_ADDR_REGS. 30396 (REG_CLASS_NAMES): Likewise. 30397 (REG_CLASS_CONTENTS): Rename CALLER_SAVE_REGS to 30398 TAILCALL_ADDR_REGS. Remove IP registers. 30399 * config/aarch64/aarch64.md (Ucs): Update register constraint. 30400 304012018-02-01 Richard Biener <rguenther@suse.de> 30402 30403 * domwalk.h (dom_walker::dom_walker): Add additional constructor 30404 for specifying RPO order and allow NULL for that. 30405 * domwalk.c (dom_walker::dom_walker): Likewise. 30406 (dom_walker::walk): Handle NULL RPO order. 30407 * tree-into-ssa.c (rewrite_dom_walker): Do not walk dom children 30408 in RPO order. 30409 (rewrite_update_dom_walker): Likewise. 30410 (mark_def_dom_walker): Likewise. 30411 304122018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 30413 30414 * config/aarch64/aarch64-protos.h (aarch64_split_sve_subreg_move) 30415 (aarch64_maybe_expand_sve_subreg_move): Declare. 30416 * config/aarch64/aarch64.md (UNSPEC_REV_SUBREG): New unspec. 30417 * config/aarch64/predicates.md (aarch64_any_register_operand): New 30418 predicate. 30419 * config/aarch64/aarch64-sve.md (mov<mode>): Optimize subreg moves 30420 that are semantically a reverse operation. 30421 (*aarch64_sve_mov<mode>_subreg_be): New pattern. 30422 * config/aarch64/aarch64.c (aarch64_maybe_expand_sve_subreg_move): 30423 (aarch64_replace_reg_mode, aarch64_split_sve_subreg_move): New 30424 functions. 30425 (aarch64_can_change_mode_class): For big-endian, forbid changes 30426 between two SVE modes if they have different element sizes. 30427 304282018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 30429 30430 * config/aarch64/aarch64.c (aarch64_expand_sve_const_vector): Prefer 30431 the TImode handling for big-endian targets. 30432 304332018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 30434 30435 * config/aarch64/aarch64-sve.md (sve_ld1rq): Replace with... 30436 (*sve_ld1rq<Vesize>): ... this new pattern. Handle all element sizes, 30437 not just bytes. 30438 * config/aarch64/aarch64.c (aarch64_expand_sve_widened_duplicate): 30439 Remove BSWAP handing for big-endian targets and use the form of 30440 LD1RQ appropariate for the mode. 30441 304422018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 30443 30444 * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Handle 30445 all CONST_VECTOR_DUPLICATE_P vectors, not just those with a single 30446 duplicated element. 30447 304482018-02-01 Richard Sandiford <richard.sandiford@linaro.org> 30449 30450 PR tearget/83845 30451 * config/aarch64/aarch64.c (aarch64_secondary_reload): Tighten 30452 check for operands that need to go through aarch64_sve_reload_be. 30453 304542018-02-01 Jakub Jelinek <jakub@redhat.com> 30455 30456 PR tree-optimization/81661 30457 PR tree-optimization/84117 30458 * tree-eh.h (rewrite_to_non_trapping_overflow): Declare. 30459 * tree-eh.c: Include gimplify.h. 30460 (find_trapping_overflow, replace_trapping_overflow, 30461 rewrite_to_non_trapping_overflow): New functions. 30462 * tree-vect-loop.c: Include tree-eh.h. 30463 (vect_get_loop_niters): Use rewrite_to_non_trapping_overflow. 30464 * tree-data-ref.c: Include tree-eh.h. 30465 (get_segment_min_max): Use rewrite_to_non_trapping_overflow. 30466 304672018-01-31 Uros Bizjak <ubizjak@gmail.com> 30468 30469 PR rtl-optimization/84123 30470 * combine.c (change_zero_ext): Check if hard register satisfies 30471 can_change_dest_mode before calling gen_lowpart_SUBREG. 30472 304732018-01-31 Vladimir Makarov <vmakarov@redhat.com> 30474 30475 PR target/82444 30476 * ira.c (ira_init_register_move_cost): Remove assert. 30477 304782018-01-31 Eric Botcazou <ebotcazou@adacore.com> 30479 30480 PR rtl-optimization/84071 30481 * doc/tm.texi.in (WORD_REGISTER_OPERATIONS): Add explicit case. 30482 * doc/tm.texi: Regenerate. 30483 304842018-01-31 Richard Biener <rguenther@suse.de> 30485 30486 PR tree-optimization/84132 30487 * tree-data-ref.c (analyze_miv_subscript): Properly 30488 check whether evolution_function_is_affine_multivariate_p 30489 before calling gcd_of_steps_may_divide_p. 30490 304912018-01-31 Julia Koval <julia.koval@intel.com> 30492 30493 PR target/83618 30494 * config/i386/i386.c (ix86_expand_builtin): Handle IX86_BUILTIN_RDPID. 30495 * config/i386/i386.md (rdpid_rex64) New. 30496 (rdpid): Make 32bit only. 30497 304982018-01-29 Aldy Hernandez <aldyh@redhat.com> 30499 30500 PR lto/84105 30501 * tree-pretty-print.c (dump_generic_node): Handle a TYPE_NAME with 30502 an IDENTIFIER_NODE for FUNCTION_TYPE's. 30503 305042018-01-31 Eric Botcazou <ebotcazou@adacore.com> 30505 30506 Revert 30507 2018-01-12 Eric Botcazou <ebotcazou@adacore.com> 30508 30509 * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. 30510 305112018-01-31 Eric Botcazou <ebotcazou@adacore.com> 30512 30513 PR rtl-optimization/84071 30514 * combine.c (record_dead_and_set_regs_1): Record the source unmodified 30515 for a paradoxical SUBREG on a WORD_REGISTER_OPERATIONS target. 30516 305172018-01-31 Claudiu Zissulescu <claziss@synopsys.com> 30518 30519 * config/arc/arc.c (arc_handle_aux_attribute): New function. 30520 (arc_attribute_table): Add 'aux' attribute. 30521 (arc_in_small_data_p): Consider aux like variables. 30522 (arc_is_aux_reg_p): New function. 30523 (arc_asm_output_aligned_decl_local): Ignore 'aux' like variables. 30524 (arc_get_aux_arg): New function. 30525 (prepare_move_operands): Handle aux-register access. 30526 (arc_handle_aux_attribute): New function. 30527 * doc/extend.texi (ARC Variable attributes): Add subsection. 30528 305292018-01-31 Claudiu Zissulescu <claziss@synopsys.com> 30530 30531 * config/arc/arc-protos.h (arc_is_uncached_mem_p): Function proto. 30532 * config/arc/arc.c (arc_handle_uncached_attribute): New function. 30533 (arc_attribute_table): Add 'uncached' attribute. 30534 (arc_print_operand): Print '.di' flag for uncached memory 30535 accesses. 30536 (arc_in_small_data_p): Do not consider for small data the uncached 30537 types. 30538 (arc_is_uncached_mem_p): New function. 30539 * config/arc/predicates.md (compact_store_memory_operand): Check 30540 for uncached memory accesses. 30541 (nonvol_nonimm_operand): Likewise. 30542 * doc/extend.texi (ARC Type Attribute): New subsection. 30543 305442018-01-31 Jakub Jelinek <jakub@redhat.com> 30545 30546 PR c/84100 30547 * common.opt (falign-functions=, falign-jumps=, falign-labels=, 30548 falign-loops=): Add Optimization flag. 30549 305502018-01-30 Jeff Law <law@redhat.com> 30551 30552 PR target/84064 30553 * i386.c (ix86_adjust_stack_and_probe_stack_clash): New argument 30554 INT_REGISTERS_SAVED. Check it prior to calling 30555 get_scratch_register_on_entry. 30556 (ix86_adjust_stack_and_probe): Similarly. 30557 (ix86_emit_probe_stack_range): Similarly. 30558 (ix86_expand_prologue): Corresponding changes. 30559 305602018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30561 30562 PR target/40411 30563 * config/sol2.h (STARTFILE_ARCH_SPEC): Use -std=c*, 30564 -std=iso9899:199409 instead of -pedantic to select values-Xc.o. 30565 305662018-01-30 Vladimir Makarov <vmakarov@redhat.com> 30567 30568 PR target/84112 30569 * lra-constraints.c (curr_insn_transform): Process AND in the 30570 address. 30571 305722018-01-30 Jakub Jelinek <jakub@redhat.com> 30573 30574 PR rtl-optimization/83986 30575 * sched-deps.c (sched_analyze_insn): For frame related insns, add anti 30576 dependence against last_pending_memory_flush in addition to 30577 pending_jump_insns. 30578 305792018-01-30 Alexandre Oliva <aoliva@redhat.com> 30580 30581 PR tree-optimization/81611 30582 * tree-ssa-dom.c (simple_iv_increment_p): Skip intervening 30583 copies. 30584 305852018-01-30 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 30586 30587 PR target/83758 30588 * config/rs6000/rs6000.c (rs6000_internal_arg_pointer): Only return 30589 a reg rtx. 30590 305912018-01-30 Richard Biener <rguenther@suse.de> 30592 Jakub Jelinek <jakub@redhat.com> 30593 30594 PR tree-optimization/84111 30595 * tree-ssa-loop-ivcanon.c (tree_unroll_loops_completely_1): Skip 30596 inner loops added during recursion, as they don't have up-to-date 30597 SSA form. 30598 305992018-01-30 Jan Hubicka <hubicka@ucw.cz> 30600 30601 PR ipa/81360 30602 * ipa-inline.c (can_inline_edge_p): Break out late tests to... 30603 (can_inline_edge_by_limits_p): ... here. 30604 (can_early_inline_edge_p, check_callers, 30605 update_caller_keys, update_callee_keys, recursive_inlining, 30606 add_new_edges_to_heap, speculation_useful_p, 30607 inline_small_functions, 30608 inline_small_functions, flatten_function, 30609 inline_to_all_callers_1): Update. 30610 306112018-01-30 Jan Hubicka <hubicka@ucw.cz> 30612 30613 * profile-count.c (profile_count::combine_with_ipa_count): Handle 30614 zeros correctly. 30615 306162018-01-30 Richard Biener <rguenther@suse.de> 30617 30618 PR tree-optimization/83008 30619 * tree-vect-slp.c (vect_analyze_slp_cost_1): Properly cost 30620 invariant and constant vector uses in stmts when they need 30621 more than one stmt. 30622 306232018-01-30 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30624 30625 PR bootstrap/84017 30626 * configure.ac (gcc_cv_as_shf_merge): Disable on Solaris 10/x86. 30627 * configure: Regenerate. 30628 306292018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 30630 30631 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_0): New 30632 pattern. 30633 (*vec_extract<mode><Vel>_v128): Require a nonzero lane number. 30634 Use gen_rtx_REG rather than gen_lowpart. 30635 306362018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 30637 30638 * lra-constraints.c (match_reload): Use subreg_lowpart_offset 30639 rather than 0 when creating partial subregs. 30640 306412018-01-30 Richard Sandiford <richard.sandiford@linaro.org> 30642 30643 * vec-perm-indices.c (vec_perm_indices::series_p): Give examples 30644 of usage. 30645 306462018-01-29 Michael Meissner <meissner@linux.vnet.ibm.com> 30647 30648 PR target/81550 30649 * config/rs6000/rs6000.c (rs6000_setup_reg_addr_masks): If DFmode 30650 and SFmode can go in Altivec registers (-mcpu=power7 for DFmode, 30651 -mcpu=power8 for SFmode) don't set the PRE_INCDEC or PRE_MODIFY 30652 flags. This restores the settings used before the 2017-07-24. 30653 Turning off pre increment/decrement/modify allows IVOPTS to 30654 optimize DF/SF loops where the index is an int. 30655 306562018-01-29 Richard Biener <rguenther@suse.de> 30657 Kelvin Nilsen <kelvin@gcc.gnu.org> 30658 30659 PR bootstrap/80867 30660 * tree-vect-stmts.c (vectorizable_call): Don't call 30661 targetm.vectorize_builtin_md_vectorized_function if callee is 30662 NULL. 30663 306642018-01-22 Carl Love <cel@us.ibm.com> 30665 30666 * doc/extend.tex: Fix typo in second arg in 30667 __builtin_bcdadd_{lt|eq|gt|ov} and __builtin_bcdsub_{lt|eq|gt|ov}. 30668 306692018-01-29 Richard Biener <rguenther@suse.de> 30670 30671 PR tree-optimization/84086 30672 * tree-ssanames.c: Include cfgloop.h and tree-scalar-evolution.h. 30673 (flush_ssaname_freelist): When SSA names were released reset 30674 the SCEV hash table. 30675 306762018-01-29 Richard Biener <rguenther@suse.de> 30677 30678 PR tree-optimization/84057 30679 * tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already 30680 removed paths when removing edges. 30681 306822018-01-27 H.J. Lu <hongjiu.lu@intel.com> 30683 30684 * doc/invoke.texi: Replace -mfunction-return==@var{choice} with 30685 -mfunction-return=@var{choice}. 30686 306872018-01-27 Bernd Edlinger <bernd.edlinger@hotmail.de> 30688 30689 PR diagnostic/84034 30690 * diagnostic-show-locus.c (get_line_width_without_trailing_whitespace): 30691 Handle CR like TAB. 30692 (layout::print_source_line): Likewise. 30693 (test_get_line_width_without_trailing_whitespace): Add test cases. 30694 306952018-01-27 Jakub Jelinek <jakub@redhat.com> 30696 30697 PR middle-end/84040 30698 * sched-deps.c (sched_macro_fuse_insns): Return immediately for 30699 debug insns. 30700 307012018-01-26 Jim Wilson <jimw@sifive.com> 30702 30703 * config/riscv/riscv.h (MAX_FIXED_MODE_SIZE): New. 30704 30705 * config/riscv/elf.h (LIB_SPEC): Don't include -lgloss when nosys.specs 30706 specified. 30707 307082018-01-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 30709 30710 * config/aarch64/aarch64.md: Add peepholes for CMP + SUB -> SUBS 30711 and CMP + SUB-immediate -> SUBS. 30712 307132018-01-26 Martin Sebor <msebor@redhat.com> 30714 30715 PR tree-optimization/83896 30716 * tree-ssa-strlen.c (get_string_len): Rename... 30717 (get_string_cst_length): ...to this. Return HOST_WIDE_INT. 30718 Avoid assuming length is constant. 30719 (handle_char_store): Use HOST_WIDE_INT for string length. 30720 307212018-01-26 Uros Bizjak <ubizjak@gmail.com> 30722 30723 PR target/81763 30724 * config/i386/i386.md (*andndi3_doubleword): Add earlyclobber 30725 to (=&r,r,rm) alternative. Add (=r,0,rm) and (=r,r,0) alternatives. 30726 307272018-01-26 Richard Biener <rguenther@suse.de> 30728 30729 PR rtl-optimization/84003 30730 * dse.c (record_store): Only record redundant stores when 30731 the earlier store aliases at least all accesses the later one does. 30732 307332018-01-26 Jakub Jelinek <jakub@redhat.com> 30734 30735 PR rtl-optimization/83985 30736 * dce.c (deletable_insn_p): Return false for separate shrink wrapping 30737 REG_CFA_RESTORE insns. 30738 (delete_unmarked_insns): Don't ignore separate shrink wrapping 30739 REG_CFA_RESTORE insns here. 30740 30741 PR c/83989 30742 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Don't 30743 use SSA_NAME_VAR as base for SSA_NAMEs with non-NULL SSA_NAME_VAR. 30744 307452018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 30746 30747 * config/arc/arc-arch.h (arc_tune_attr): Add ARC_TUNE_CORE_3. 30748 * config/arc/arc.c (arc_sched_issue_rate): Use ARC_TUNE_... . 30749 (arc_init): Likewise. 30750 (arc_override_options): Likewise. 30751 (arc_file_start): Choose Tag_ARC_CPU_variation based on arc_tune 30752 value. 30753 (hwloop_fail): Use TARGET_DBNZ when we want to check for dbnz insn 30754 support. 30755 * config/arc/arc.h (TARGET_DBNZ): Define. 30756 * config/arc/arc.md (attr tune): Add core_3, use ARC_TUNE_... to 30757 properly set the tune attribute. 30758 (dbnz): Use TARGET_DBNZ guard. 30759 * config/arc/arc.opt (mtune): Add core3 option. 30760 307612018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 30762 30763 * config/arc/arc.c (arc_delegitimize_address_0): Refactored to 30764 recognize new pic like addresses. 30765 (arc_delegitimize_address): Clean up. 30766 307672018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 30768 30769 * config/arc/arc-arches.def: Option mrf16 valid for all 30770 architectures. 30771 * config/arc/arc-c.def (__ARC_RF16__): New predefined macro. 30772 * config/arc/arc-cpus.def (em_mini): New cpu with rf16 on. 30773 * config/arc/arc-options.def (FL_RF16): Add mrf16 option. 30774 * config/arc/arc-tables.opt: Regenerate. 30775 * config/arc/arc.c (arc_conditional_register_usage): Handle 30776 reduced register file case. 30777 (arc_file_start): Set must have build attributes. 30778 * config/arc/arc.h (MAX_ARC_PARM_REGS): Conditional define using 30779 mrf16 option value. 30780 * config/arc/arc.opt (mrf16): Add new option. 30781 * config/arc/elf.h (ATTRIBUTE_PCS): Define. 30782 * config/arc/genmultilib.awk: Handle new mrf16 option. 30783 * config/arc/linux.h (ATTRIBUTE_PCS): Define. 30784 * config/arc/t-multilib: Regenerate. 30785 * doc/invoke.texi (ARC Options): Document mrf16 option. 30786 307872018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 30788 30789 * config/arc/arc-protos.h: Add arc_is_secure_call_p proto. 30790 * config/arc/arc.c (arc_handle_secure_attribute): New function. 30791 (arc_attribute_table): Add 'secure_call' attribute. 30792 (arc_print_operand): Print secure call operand. 30793 (arc_function_ok_for_sibcall): Don't optimize tail calls when 30794 secure. 30795 (arc_is_secure_call_p): New function. * config/arc/arc.md 30796 (call_i): Add support for sjli instruction. 30797 (call_value_i): Likewise. 30798 * config/arc/constraints.md (Csc): New constraint. 30799 308002018-01-26 Claudiu Zissulescu <claziss@synopsys.com> 30801 John Eric Martin <John.Martin@emmicro-us.com> 30802 30803 * config/arc/arc-protos.h: Add arc_is_jli_call_p proto. 30804 * config/arc/arc.c (_arc_jli_section): New struct. 30805 (arc_jli_section): New type. 30806 (rc_jli_sections): New static variable. 30807 (arc_handle_jli_attribute): New function. 30808 (arc_attribute_table): Add jli_always and jli_fixed attribute. 30809 (arc_file_end): New function. 30810 (TARGET_ASM_FILE_END): Define. 30811 (arc_print_operand): Reuse 'S' letter for JLI output instruction. 30812 (arc_add_jli_section): New function. 30813 (jli_call_scan): Likewise. 30814 (arc_reorg): Call jli_call_scan. 30815 (arc_output_addsi): Remove 'S' from printing asm operand. 30816 (arc_is_jli_call_p): New function. 30817 * config/arc/arc.md (movqi_insn): Remove 'S' from printing asm 30818 operand. 30819 (movhi_insn): Likewise. 30820 (movsi_insn): Likewise. 30821 (movsi_set_cc_insn): Likewise. 30822 (loadqi_update): Likewise. 30823 (load_zeroextendqisi_update): Likewise. 30824 (load_signextendqisi_update): Likewise. 30825 (loadhi_update): Likewise. 30826 (load_zeroextendhisi_update): Likewise. 30827 (load_signextendhisi_update): Likewise. 30828 (loadsi_update): Likewise. 30829 (loadsf_update): Likewise. 30830 (movsicc_insn): Likewise. 30831 (bset_insn): Likewise. 30832 (bxor_insn): Likewise. 30833 (bclr_insn): Likewise. 30834 (bmsk_insn): Likewise. 30835 (bicsi3_insn): Likewise. 30836 (cmpsi_cc_c_insn): Likewise. 30837 (movsi_ne): Likewise. 30838 (movsi_cond_exec): Likewise. 30839 (clrsbsi2): Likewise. 30840 (norm_f): Likewise. 30841 (normw): Likewise. 30842 (swap): Likewise. 30843 (divaw): Likewise. 30844 (flag): Likewise. 30845 (sr): Likewise. 30846 (kflag): Likewise. 30847 (ffs): Likewise. 30848 (ffs_f): Likewise. 30849 (fls): Likewise. 30850 (call_i): Remove 'S' asm letter, add jli instruction. 30851 (call_value_i): Likewise. 30852 * config/arc/arc.op (mjli-always): New option. 30853 * config/arc/constraints.md (Cji): New constraint. 30854 * config/arc/fpx.md (addsf3_fpx): Remove 'S' from printing asm 30855 operand. 30856 (subsf3_fpx): Likewise. 30857 (mulsf3_fpx): Likewise. 30858 * config/arc/simdext.md (vendrec_insn): Remove 'S' from printing 30859 asm operand. 30860 * doc/extend.texi (ARC): Document 'jli-always' and 'jli-fixed' 30861 function attrbutes. 30862 * doc/invoke.texi (ARC): Document mjli-always option. 30863 308642018-01-26 Sebastian Perta <sebastian.perta@renesas.com> 30865 30866 * config/rl78/rl78.c (rl78_addsi3_internal): If operand 2 is const 30867 avoid addition with 0 and use incw and decw where possible. 30868 308692018-01-26 Richard Biener <rguenther@suse.de> 30870 30871 PR tree-optimization/81082 30872 * fold-const.c (fold_plusminus_mult_expr): Do not perform the 30873 association if it requires casting to unsigned. 30874 * match.pd ((A * C) +- (B * C) -> (A+-B)): New patterns derived 30875 from fold_plusminus_mult_expr to catch important cases late when 30876 range info is available. 30877 308782018-01-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 30879 30880 * config/i386/sol2.h (USE_HIDDEN_LINKONCE): Remove. 30881 * configure.ac (hidden_linkonce): New test. 30882 * configure: Regenerate. 30883 * config.in: Regenerate. 30884 308852018-01-26 Julia Koval <julia.koval@intel.com> 30886 30887 * config/i386/avx512bitalgintrin.h (_mm512_bitshuffle_epi64_mask, 30888 _mm512_mask_bitshuffle_epi64_mask, _mm256_bitshuffle_epi64_mask, 30889 _mm256_mask_bitshuffle_epi64_mask, _mm_bitshuffle_epi64_mask, 30890 _mm_mask_bitshuffle_epi64_mask): Fix type. 30891 * config/i386/i386-builtin-types.def (UHI_FTYPE_V2DI_V2DI_UHI, 30892 USI_FTYPE_V4DI_V4DI_USI): Remove. 30893 * config/i386/i386-builtin.def (__builtin_ia32_vpshufbitqmb512_mask, 30894 __builtin_ia32_vpshufbitqmb256_mask, 30895 __builtin_ia32_vpshufbitqmb128_mask): Fix types. 30896 * config/i386/i386.c (ix86_expand_args_builtin): Remove old types. 30897 * config/i386/sse.md (VI1_AVX512VLBW): Change types. 30898 308992018-01-26 Alan Modra <amodra@gmail.com> 30900 30901 PR target/84033 30902 * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Exclude 30903 UNSPEC_VBPERMQ. Sort other unspecs. 30904 309052018-01-25 David Edelsohn <dje.gcc@gmail.com> 30906 30907 * doc/invoke.texi (PowerPC Options): Document 'native' cpu type. 30908 309092018-01-25 Jan Hubicka <hubicka@ucw.cz> 30910 30911 PR middle-end/83055 30912 * predict.c (drop_profile): Do not push/pop cfun; update also 30913 node->count. 30914 (handle_missing_profiles): Fix logic looking for zero profiles. 30915 309162018-01-25 Jakub Jelinek <jakub@redhat.com> 30917 30918 PR middle-end/83977 30919 * ipa-fnsummary.c (compute_fn_summary): Clear can_change_signature 30920 on functions with #pragma omp declare simd or functions with simd 30921 attribute. 30922 * omp-simd-clone.c (expand_simd_clones): Revert 2018-01-24 change. 30923 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): 30924 Remove trailing \n from warning_at calls. 30925 309262018-01-25 Tom de Vries <tom@codesourcery.com> 30927 30928 PR target/84028 30929 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call 30930 for neutered workers. 30931 309322018-01-24 Joseph Myers <joseph@codesourcery.com> 30933 30934 PR target/68467 30935 * config/m68k/m68k.c (m68k_promote_function_mode): New function. 30936 (TARGET_PROMOTE_FUNCTION_MODE): New macro. 30937 309382018-01-24 Jeff Law <law@redhat.com> 30939 30940 PR target/83994 30941 * i386.c (get_probe_interval): Move to earlier point. 30942 (ix86_compute_frame_layout): If -fstack-clash-protection and 30943 the frame is larger than the probe interval, then use pushes 30944 to save registers rather than reg->mem moves. 30945 (ix86_expand_prologue): Remove conditional for int_registers_saved 30946 assertion. 30947 309482018-01-24 Vladimir Makarov <vmakarov@redhat.com> 30949 30950 PR target/84014 30951 * ira-build.c (setup_min_max_allocno_live_range_point): Set up 30952 min/max for never referenced object. 30953 309542018-01-24 Jakub Jelinek <jakub@redhat.com> 30955 30956 PR middle-end/83977 30957 * tree.c (free_lang_data_in_decl): Don't clear DECL_ABSTRACT_ORIGIN 30958 here. 30959 * omp-low.c (create_omp_child_function): Remove "omp declare simd" 30960 attributes from DECL_ATTRIBUTES (decl) without affecting 30961 DECL_ATTRIBUTES (current_function_decl). 30962 * omp-simd-clone.c (expand_simd_clones): Ignore DECL_ARTIFICIAL 30963 functions with non-NULL DECL_ABSTRACT_ORIGIN. 30964 309652018-01-24 Richard Sandiford <richard.sandiford@linaro.org> 30966 30967 PR tree-optimization/83979 30968 * fold-const.c (fold_comparison): Use constant_boolean_node 30969 instead of boolean_{true,false}_node. 30970 309712018-01-24 Jan Hubicka <hubicka@ucw.cz> 30972 30973 * ipa-profile.c (ipa_propagate_frequency_1): Fix logic skipping calls 30974 with zero counts. 30975 309762018-01-24 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 30977 30978 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 30979 Simplify the clause that sets the length attribute. 30980 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 30981 (*sibcall_nonlocal_sysv<mode>): Clean up code block; simplify the 30982 clause that sets the length attribute. 30983 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 30984 309852018-01-24 Tom de Vries <tom@codesourcery.com> 30986 30987 PR target/83589 30988 * config/nvptx/nvptx.c (WORKAROUND_PTXJIT_BUG_2): Define to 1. 30989 (nvptx_pc_set, nvptx_condjump_label): New function. Copy from jump.c. 30990 Add strict parameter. 30991 (prevent_branch_around_nothing): Insert dummy insn between branch to 30992 label and label with no ptx insn inbetween. 30993 * config/nvptx/nvptx.md (define_insn "fake_nop"): New insn. 30994 309952018-01-24 Tom de Vries <tom@codesourcery.com> 30996 30997 PR target/81352 30998 * config/nvptx/nvptx.c (nvptx_single): Add exit insn after noreturn call 30999 for neutered threads in warp. 31000 * config/nvptx/nvptx.md (define_insn "exit"): New insn. 31001 310022018-01-24 Richard Biener <rguenther@suse.de> 31003 31004 PR tree-optimization/83176 31005 * tree-chrec.c (chrec_fold_plus_1): Handle (signed T){(T) .. } 31006 operands. 31007 310082018-01-24 Richard Biener <rguenther@suse.de> 31009 31010 PR tree-optimization/82819 31011 * graphite-isl-ast-to-gimple.c (binary_op_to_tree): Avoid 31012 code generating pluses that are no-ops in the target precision. 31013 310142018-01-24 Richard Biener <rguenther@suse.de> 31015 31016 PR middle-end/84000 31017 * tree-cfg.c (replace_loop_annotate): Handle annot_expr_parallel_kind. 31018 310192018-01-23 Jan Hubicka <hubicka@ucw.cz> 31020 31021 * cfgcleanup.c (try_crossjump_to_edge): Use combine_with_count 31022 to merge probabilities. 31023 * predict.c (probably_never_executed): Also mark as cold functions 31024 with global 0 profile and guessed local profile. 31025 * profile-count.c (profile_probability::combine_with_count): New 31026 member function. 31027 * profile-count.h (profile_probability::operator*, 31028 profile_probability::operator*=, profile_probability::operator/, 31029 profile_probability::operator/=): Reduce precision to adjusted 31030 and set value to guessed on contradictory divisions. 31031 (profile_probability::combine_with_freq): Remove. 31032 (profile_probability::combine_wiht_count): Declare. 31033 (profile_count::force_nonzero):: Set to adjusted. 31034 (profile_count::probability_in):: Set quality to adjusted. 31035 * tree-ssa-tail-merge.c (replace_block_by): Use 31036 combine_with_count. 31037 310382018-01-23 Andrew Waterman <andrew@sifive.com> 31039 Jim Wilson <jimw@sifive.com> 31040 31041 * config/riscv/riscv.c (riscv_stack_boundary): New. 31042 (riscv_option_override): Set riscv_stack_boundary. Handle 31043 riscv_preferred_stack_boundary_arg. 31044 * config/riscv/riscv.h (MIN_STACK_BOUNDARY, ABI_STACK_BOUNDARY): New. 31045 (BIGGEST_ALIGNMENT): Set to STACK_BOUNDARY. 31046 (STACK_BOUNDARY): Set to riscv_stack_boundary. 31047 (RISCV_STACK_ALIGN): Use STACK_BOUNDARY. 31048 * config/riscv/riscv.opt (mpreferred-stack-boundary): New. 31049 * doc/invoke.tex (RISC-V Options): Add -mpreferred-stack-boundary. 31050 310512018-01-23 H.J. Lu <hongjiu.lu@intel.com> 31052 31053 PR target/83905 31054 * config/i386/i386.c (ix86_expand_prologue): Use cost reference 31055 of struct ix86_frame. 31056 (ix86_expand_epilogue): Likewise. Add a local variable for 31057 the reg_save_offset field in struct ix86_frame. 31058 310592018-01-23 Bin Cheng <bin.cheng@arm.com> 31060 31061 PR tree-optimization/82604 31062 * tree-loop-distribution.c (enum partition_kind): New enum item 31063 PKIND_PARTIAL_MEMSET. 31064 (partition_builtin_p): Support above new enum item. 31065 (generate_code_for_partition): Ditto. 31066 (compute_access_range): Differentiate cases that equality can be 31067 proven at all loops, the innermost loops or no loops. 31068 (classify_builtin_st, classify_builtin_ldst): Adjust call to above 31069 function. Set PKIND_PARTIAL_MEMSET for partition appropriately. 31070 (finalize_partitions, distribute_loop): Don't fuse partition of 31071 PKIND_PARTIAL_MEMSET kind when distributing 3-level loop nest. 31072 (prepare_perfect_loop_nest): Distribute 3-level loop nest only if 31073 parloop is enabled. 31074 310752018-01-23 Martin Liska <mliska@suse.cz> 31076 31077 * predict.def (PRED_INDIR_CALL): Set probability to PROB_EVEN in 31078 order to ignore the predictor. 31079 (PRED_POLYMORPHIC_CALL): Likewise. 31080 (PRED_RECURSIVE_CALL): Likewise. 31081 310822018-01-23 Martin Liska <mliska@suse.cz> 31083 31084 * tree-profile.c (tree_profiling): Print function header to 31085 aware reader which function we are working on. 31086 * value-prof.c (gimple_find_values_to_profile): Do not print 31087 not interesting value histograms. 31088 310892018-01-23 Martin Liska <mliska@suse.cz> 31090 31091 * profile-count.h (enum profile_quality): Add 31092 profile_uninitialized as the first value. Do not number values 31093 as they are zero based. 31094 (profile_count::verify): Update sanity check. 31095 (profile_probability::verify): Likewise. 31096 310972018-01-23 Nathan Sidwell <nathan@acm.org> 31098 31099 * doc/invoke.texi (ffor-scope): Deprecate. 31100 311012018-01-23 David Malcolm <dmalcolm@redhat.com> 31102 31103 PR tree-optimization/83510 31104 * domwalk.c (set_all_edges_as_executable): New function. 31105 (dom_walker::dom_walker): Convert bool param 31106 "skip_unreachable_blocks" to enum reachability. Move setup of 31107 edge flags to set_all_edges_as_executable and only do it when 31108 reachability is REACHABLE_BLOCKS. 31109 * domwalk.h (enum dom_walker::reachability): New enum. 31110 (dom_walker::dom_walker): Convert bool param 31111 "skip_unreachable_blocks" to enum reachability. 31112 (set_all_edges_as_executable): New decl. 31113 * graphite-scop-detection.c (gather_bbs::gather_bbs): Convert 31114 from false for "skip_unreachable_blocks" to ALL_BLOCKS for 31115 "reachability". 31116 * tree-ssa-dom.c (dom_opt_dom_walker::dom_opt_dom_walker): Likewise, 31117 but converting true to REACHABLE_BLOCKS. 31118 * tree-ssa-sccvn.c (sccvn_dom_walker::sccvn_dom_walker): Likewise. 31119 * tree-vrp.c 31120 (check_array_bounds_dom_walker::check_array_bounds_dom_walker): 31121 Likewise, but converting it to REACHABLE_BLOCKS_PRESERVING_FLAGS. 31122 (vrp_dom_walker::vrp_dom_walker): Likewise, but converting it to 31123 REACHABLE_BLOCKS. 31124 (vrp_prop::vrp_finalize): Call set_all_edges_as_executable 31125 if check_all_array_refs will be called. 31126 311272018-01-23 David Malcolm <dmalcolm@redhat.com> 31128 31129 * tree.c (selftest::test_location_wrappers): Add more test 31130 coverage. 31131 311322018-01-23 David Malcolm <dmalcolm@redhat.com> 31133 31134 * sbitmap.c (selftest::test_set_range): Fix memory leaks. 31135 (selftest::test_bit_in_range): Likewise. 31136 311372018-01-23 Richard Sandiford <richard.sandiford@linaro.org> 31138 31139 PR testsuite/83888 31140 * doc/sourcebuild.texi (vect_float): Say that the selector 31141 only describes the situation when -funsafe-math-optimizations is on. 31142 (vect_float_strict): Document. 31143 311442018-01-23 Richard Sandiford <richard.sandiford@linaro.org> 31145 31146 PR tree-optimization/83965 31147 * tree-vect-patterns.c (vect_reassociating_reduction_p): New function. 31148 (vect_recog_dot_prod_pattern, vect_recog_sad_pattern): Use it 31149 instead of checking only for a reduction. 31150 (vect_recog_widen_sum_pattern): Likewise. 31151 311522018-01-23 Jan Hubicka <hubicka@ucw.cz> 31153 31154 * predict.c (probably_never_executed): Only use precise profile info. 31155 (compute_function_frequency): Skip after inlining hack since we now 31156 have quality checking. 31157 311582018-01-23 Jan Hubicka <hubicka@ucw.cz> 31159 31160 * profile-count.h (profile_probability::very_unlikely, 31161 profile_probability::unlikely, profile_probability::even): Set 31162 precision to guessed. 31163 311642018-01-23 Richard Biener <rguenther@suse.de> 31165 31166 PR tree-optimization/83963 31167 * graphite-scop-detection.c (scop_detection::harmful_loop_in_region): 31168 Properly terminate dominator walk when crossing the exit edge not 31169 when visiting its source block. 31170 311712018-01-23 Jakub Jelinek <jakub@redhat.com> 31172 31173 PR c++/83918 31174 * tree.c (maybe_wrap_with_location): Use NON_LVALUE_EXPR rather than 31175 VIEW_CONVERT_EXPR to wrap CONST_DECLs. 31176 311772018-01-22 Jakub Jelinek <jakub@redhat.com> 31178 31179 PR tree-optimization/83957 31180 * omp-expand.c (expand_omp_for_generic): Ignore virtual PHIs. Remove 31181 semicolon after for body surrounded by braces. 31182 31183 PR tree-optimization/83081 31184 * profile-count.h (profile_probability::split): New method. 31185 * dojump.c (do_jump_1) <case TRUTH_ANDIF_EXPR, case TRUTH_ORIF_EXPR>: 31186 Use profile_probability::split. 31187 (do_compare_rtx_and_jump): Fix adjustment of probabilities 31188 when splitting a single conditional jump into 2. 31189 311902018-01-22 David Malcolm <dmalcolm@redhat.com> 31191 31192 PR tree-optimization/69452 31193 * tree-ssa-loop-im.c (class move_computations_dom_walker): Remove 31194 decl. 31195 311962018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31197 31198 * config/rl78/rl78-expand.md (bswaphi2): New define_expand. 31199 * config/rl78/rl78-virt.md (*bswaphi2_virt): New define_insn. 31200 * config/rl78/rl78-real.md (*bswaphi2_real): New define_insn. 31201 312022018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31203 31204 * config/rl78/rl78-protos.h (rl78_split_movdi): New function 31205 declaration. 31206 * config/rl78/rl78.md (movdi): New define_expand. 31207 * config/rl78/rl78.c (rl78_split_movdi): New function. 31208 312092018-01-22 Michael Meissner <meissner@linux.vnet.ibm.com> 31210 31211 PR target/83862 31212 * config/rs6000/rs6000-protos.h (rs6000_split_signbit): Delete, 31213 no longer used. 31214 * config/rs6000/rs6000.c (rs6000_split_signbit): Likewise. 31215 * config/rs6000/rs6000.md (signbit<mode>2): Change code for IEEE 31216 128-bit to produce an UNSPEC move to get the double word with the 31217 signbit and then a shift directly to do signbit. 31218 (signbit<mode>2_dm): Replace old IEEE 128-bit signbit 31219 implementation with a new version that just does either a direct 31220 move or a regular move. Move memory interface to separate insns. 31221 Move insns so they are next to the expander. 31222 (signbit<mode>2_dm_mem_be): New combiner insns to combine load 31223 with signbit move. Split big and little endian case. 31224 (signbit<mode>2_dm_mem_le): Likewise. 31225 (signbit<mode>2_dm_<su>ext): Delete, no longer used. 31226 (signbit<mode>2_dm2): Likewise. 31227 312282018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31229 31230 * config/rl78/rl78.md (anddi3): New define_expand. 31231 312322018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31233 31234 * config/rl78/rl78.md (umindi3): New define_expand. 31235 312362018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31237 31238 * config/rl78/rl78.md (smindi3): New define_expand. 31239 312402018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31241 31242 * config/rl78/rl78.md (smaxdi3): New define_expand. 31243 312442018-01-22 Carl Love <cel@us.ibm.com> 31245 31246 * config/rs6000/rs6000-builtin.def (ST_ELEMREV_V1TI, LD_ELEMREV_V1TI, 31247 LVX_V1TI): Add macro expansion. 31248 * config/rs6000/rs6000-c.c (altivec_builtin_types): Add argument 31249 definitions for VSX_BUILTIN_VEC_XST_BE, VSX_BUILTIN_VEC_ST, 31250 VSX_BUILTIN_VEC_XL, LD_ELEMREV_V1TI builtins. 31251 * config/rs6000/rs6000-p8swap.c (insn_is_swappable_p); 31252 Change check to determine if the instruction is a byte reversing 31253 entry. Fix typo in comment. 31254 * config/rs6000/rs6000.c (altivec_expand_builtin): Add case entry 31255 for VSX_BUILTIN_ST_ELEMREV_V1TI and VSX_BUILTIN_LD_ELEMREV_V1TI. 31256 Add def_builtin calls for new builtins. 31257 * config/rs6000/vsx.md (vsx_st_elemrev_v1ti, vsx_ld_elemrev_v1ti): 31258 Add define_insn expansion. 31259 312602018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31261 31262 * config/rl78/rl78.md (umaxdi3): New define_expand. 31263 312642018-01-22 Sebastian Perta <sebastian.perta@renesas.com> 31265 31266 * config/rl78/rl78.c (rl78_note_reg_set): Fixed dead reg check 31267 for non-QImode registers. 31268 312692018-01-22 Richard Biener <rguenther@suse.de> 31270 31271 PR tree-optimization/83963 31272 * graphite-scop-detection.c (scop_detection::get_sese): Delay 31273 including the loop exit block. 31274 (scop_detection::merge_sese): Likewise. 31275 (scop_detection::add_scop): Do it here instead. 31276 312772018-01-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 31278 31279 * doc/sourcebuild.texi (arm_softfloat): Document. 31280 312812018-01-21 John David Anglin <danglin@gcc.gnu.org> 31282 31283 PR gcc/77734 31284 * config/pa/pa.c (pa_function_ok_for_sibcall): Use 31285 targetm.binds_local_p instead of TREE_PUBLIC to check local binding. 31286 Move TARGET_PORTABLE_RUNTIME check after TARGET_64BIT check. 31287 312882018-01-21 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31289 David Edelsohn <dje.gcc@gmail.com> 31290 31291 PR target/83946 31292 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 31293 Change "crset eq" to "crset 2". 31294 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 31295 (*call_indirect_aix<mode>_nospec): Likewise. 31296 (*call_value_indirect_aix<mode>_nospec): Likewise. 31297 (*call_indirect_elfv2<mode>_nospec): Likewise. 31298 (*call_value_indirect_elfv2<mode>_nospec): Likewise. 31299 (*sibcall_nonlocal_sysv<mode>): Change "crset eq" to "crset 2"; 31300 change assembly output from . to $. 31301 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 31302 (indirect_jump<mode>_nospec): Change assembly output from . to $. 31303 (*tablejump<mode>_internal1_nospec): Likewise. 31304 313052018-01-21 Oleg Endo <olegendo@gcc.gnu.org> 31306 31307 PR target/80870 31308 * config/sh/sh_optimize_sett_clrt.cc: 31309 Use INCLUDE_ALGORITHM and INCLUDE_VECTOR instead of direct includes. 31310 313112018-01-20 Richard Sandiford <richard.sandiford@linaro.org> 31312 31313 PR tree-optimization/83940 31314 * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): Set 31315 offset_dt to vect_constant_def rather than vect_unknown_def_type. 31316 (vect_check_load_store_mask): Add a mask_dt_out parameter and 31317 use it to pass back the definition type. 31318 (vect_check_store_rhs): Likewise rhs_dt_out. 31319 (vect_build_gather_load_calls): Add a mask_dt argument and use 31320 it instead of a call to vect_is_simple_use. 31321 (vectorizable_store): Update calls to vect_check_load_store_mask 31322 and vect_check_store_rhs. Use the dt returned by the latter instead 31323 of scatter_src_dt. Use the cached mask_dt and gs_info.offset_dt 31324 instead of calls to vect_is_simple_use. Pass the scalar rather 31325 than the vector operand to vect_is_simple_use when handling 31326 second and subsequent copies of an rhs value. 31327 (vectorizable_load): Update calls to vect_check_load_store_mask 31328 and vect_build_gather_load_calls. Use the cached mask_dt and 31329 gs_info.offset_dt instead of calls to vect_is_simple_use. 31330 313312018-01-20 Jakub Jelinek <jakub@redhat.com> 31332 31333 PR middle-end/83945 31334 * tree-emutls.c: Include gimplify.h. 31335 (lower_emutls_2): New function. 31336 (lower_emutls_1): If ADDR_EXPR is a gimple invariant and walk_tree 31337 with lower_emutls_2 callback finds some TLS decl in it, unshare_expr 31338 it before further processing. 31339 31340 PR target/83930 31341 * simplify-rtx.c (simplify_binary_operation_1) <case UMOD>: Use 31342 UINTVAL (trueop1) instead of INTVAL (op1). 31343 313442018-01-19 Jakub Jelinek <jakub@redhat.com> 31345 31346 PR debug/81570 31347 PR debug/83728 31348 * dwarf2cfi.c (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define to 31349 INCOMING_FRAME_SP_OFFSET if not defined. 31350 (scan_trace): Add ENTRY argument. If true and 31351 DEFAULT_INCOMING_FRAME_SP_OFFSET != INCOMING_FRAME_SP_OFFSET, 31352 emit a note to adjust the CFA offset. 31353 (create_cfi_notes): Adjust scan_trace callers. 31354 (create_cie_data): Use DEFAULT_INCOMING_FRAME_SP_OFFSET rather than 31355 INCOMING_FRAME_SP_OFFSET in the CIE. 31356 * config/i386/i386.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): Define. 31357 * config/stormy16/stormy16.h (DEFAULT_INCOMING_FRAME_SP_OFFSET): 31358 Likewise. 31359 * doc/tm.texi.in (DEFAULT_INCOMING_FRAME_SP_OFFSET): Document. 31360 * doc/tm.texi: Regenerated. 31361 313622018-01-19 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 31363 31364 PR rtl-optimization/83147 31365 * lra-constraints.c (remove_inheritance_pseudos): Use 31366 lra_substitute_pseudo_within_insn. 31367 313682018-01-19 Tom de Vries <tom@codesourcery.com> 31369 Cesar Philippidis <cesar@codesourcery.com> 31370 31371 PR target/83920 31372 * config/nvptx/nvptx.c (nvptx_single): Fix jit workaround. 31373 313742018-01-19 Cesar Philippidis <cesar@codesourcery.com> 31375 31376 PR target/83790 31377 * config/nvptx/nvptx.c (output_init_frag): Don't use generic address 31378 spaces for function labels. 31379 313802018-01-19 Martin Liska <mliska@suse.cz> 31381 31382 * predict.def (PRED_LOOP_EXIT): Change from 85 to 89. 31383 (PRED_LOOP_EXIT_WITH_RECURSION): Change from 72 to 78. 31384 (PRED_LOOP_EXTRA_EXIT): Change from 83 to 67. 31385 (PRED_OPCODE_POSITIVE): Change from 64 to 59. 31386 (PRED_TREE_OPCODE_POSITIVE): Change from 64 to 59. 31387 (PRED_CONST_RETURN): Change from 69 to 65. 31388 (PRED_NULL_RETURN): Change from 91 to 71. 31389 (PRED_LOOP_IV_COMPARE_GUESS): Change from 98 to 64. 31390 (PRED_LOOP_GUARD): Change from 66 to 73. 31391 313922018-01-19 Martin Liska <mliska@suse.cz> 31393 31394 * predict.c (predict_insn_def): Add new assert. 31395 (struct branch_predictor): Change type to signed integer. 31396 (test_prediction_value_range): Amend test to cover 31397 PROB_UNINITIALIZED. 31398 * predict.def (PRED_LOOP_ITERATIONS): Use the new constant. 31399 (PRED_LOOP_ITERATIONS_GUESSED): Likewise. 31400 (PRED_LOOP_ITERATIONS_MAX): Likewise. 31401 (PRED_LOOP_IV_COMPARE): Likewise. 31402 * predict.h (PROB_UNINITIALIZED): Define new constant. 31403 314042018-01-19 Martin Liska <mliska@suse.cz> 31405 31406 * predict.c (dump_prediction): Add new format for 31407 analyze_brprob.py script which is enabled with -details 31408 suboption. 31409 * profile-count.h (precise_p): New function. 31410 314112018-01-19 Richard Sandiford <richard.sandiford@linaro.org> 31412 31413 PR tree-optimization/83922 31414 * tree-vect-loop.c (vect_verify_full_masking): Return false if 31415 there are no statements that need masking. 31416 (vect_active_double_reduction_p): New function. 31417 (vect_analyze_loop_operations): Use it when handling phis that 31418 are not in the loop header. 31419 314202018-01-19 Richard Sandiford <richard.sandiford@linaro.org> 31421 31422 PR tree-optimization/83914 31423 * tree-vect-loop.c (vectorizable_induction): Don't convert 31424 init_expr or apply the peeling adjustment for inductions 31425 that are nested within the vectorized loop. 31426 314272018-01-19 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 31428 31429 * config/arm/thumb2.md (*thumb2_negsi2_short): Use RSB mnemonic 31430 instead of NEG. 31431 314322018-01-18 Jakub Jelinek <jakub@redhat.com> 31433 31434 PR sanitizer/81715 31435 PR testsuite/83882 31436 * function.h (gimplify_parameters): Add gimple_seq * argument. 31437 * function.c: Include gimple.h and options.h. 31438 (gimplify_parameters): Add cleanup argument, add CLOBBER stmts 31439 for the added local temporaries if needed. 31440 * gimplify.c (gimplify_body): Adjust gimplify_parameters caller, 31441 if there are any parameter cleanups, wrap whole body into a 31442 try/finally with the cleanups. 31443 314442018-01-18 Wilco Dijkstra <wdijkstr@arm.com> 31445 31446 PR target/82964 31447 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): 31448 Use GET_MODE_CLASS for scalar floating point. 31449 314502018-01-18 Jan Hubicka <hubicka@ucw.cz> 31451 31452 PR ipa/82256 31453 patch by PaX Team 31454 * cgraphclones.c (cgraph_node::create_version_clone_with_body): 31455 Fix call of call_cgraph_insertion_hooks. 31456 314572018-01-18 Martin Sebor <msebor@redhat.com> 31458 31459 * doc/invoke.texi (-Wclass-memaccess): Tweak text. 31460 314612018-01-18 Jan Hubicka <hubicka@ucw.cz> 31462 31463 PR ipa/83619 31464 * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Update edge 31465 frequencies. 31466 314672018-01-18 Boris Kolpackov <boris@codesynthesis.com> 31468 31469 PR other/70268 31470 * common.opt: (-ffile-prefix-map): New option. 31471 * opts.c (common_handle_option): Defer it. 31472 * opts-global.c (handle_common_deferred_options): Handle it. 31473 * debug.h (remap_debug_filename, add_debug_prefix_map): Move to... 31474 * file-prefix-map.h: New file. 31475 (remap_debug_filename, add_debug_prefix_map): ...here. 31476 (add_macro_prefix_map, add_file_prefix_map, remap_macro_filename): New. 31477 * final.c (debug_prefix_map, add_debug_prefix_map 31478 remap_debug_filename): Move to... 31479 * file-prefix-map.c: New file. 31480 (file_prefix_map, add_prefix_map, remap_filename) ...here and rename, 31481 generalize, get rid of alloca(), use strrchr() instead of strchr(). 31482 (add_macro_prefix_map, add_debug_prefix_map, add_file_prefix_map): 31483 Implement in terms of add_prefix_map(). 31484 (remap_macro_filename, remap_debug_filename): Implement in term of 31485 remap_filename(). 31486 * Makefile.in (OBJS, PLUGIN_HEADERS): Add new files. 31487 * builtins.c (fold_builtin_FILE): Call remap_macro_filename(). 31488 * dbxout.c: Include file-prefix-map.h. 31489 * varasm.c: Likewise. 31490 * vmsdbgout.c: Likewise. 31491 * xcoffout.c: Likewise. 31492 * dwarf2out.c: Likewise plus omit new options from DW_AT_producer. 31493 * doc/cppopts.texi (-fmacro-prefix-map): Document. 31494 * doc/invoke.texi (-ffile-prefix-map): Document. 31495 (-fdebug-prefix-map): Update description. 31496 314972018-01-18 Martin Liska <mliska@suse.cz> 31498 31499 * config/i386/i386.c (indirect_thunk_name): Document that also 31500 lfence is emitted. 31501 (output_indirect_thunk): Document why both instructions 31502 (pause and lfence) are generated. 31503 315042018-01-18 Richard Biener <rguenther@suse.de> 31505 31506 PR tree-optimization/83887 31507 * graphite-scop-detection.c 31508 (scop_detection::get_nearest_dom_with_single_entry): Remove. 31509 (scop_detection::get_nearest_pdom_with_single_exit): Likewise. 31510 (scop_detection::merge_sese): Re-implement with a flood-fill 31511 algorithm that properly finds a SESE region if it exists. 31512 315132018-01-18 Jakub Jelinek <jakub@redhat.com> 31514 31515 PR c/61240 31516 * match.pd ((P + A) - P, P - (P + A), (P + A) - (P + B)): For 31517 pointer_diff optimizations use view_convert instead of convert. 31518 315192018-01-17 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31520 31521 * config/rs6000/rs6000.md (*call_indirect_nonlocal_sysv<mode>): 31522 Generate different code for -mno-speculate-indirect-jumps. 31523 (*call_value_indirect_nonlocal_sysv<mode>): Likewise. 31524 (*call_indirect_aix<mode>): Disable for 31525 -mno-speculate-indirect-jumps. 31526 (*call_indirect_aix<mode>_nospec): New define_insn. 31527 (*call_value_indirect_aix<mode>): Disable for 31528 -mno-speculate-indirect-jumps. 31529 (*call_value_indirect_aix<mode>_nospec): New define_insn. 31530 (*sibcall_nonlocal_sysv<mode>): Generate different code for 31531 -mno-speculate-indirect-jumps. 31532 (*sibcall_value_nonlocal_sysv<mode>): Likewise. 31533 315342018-01-17 Michael Meissner <meissner@linux.vnet.ibm.com> 31535 31536 * config/rs6000/rs6000.c (rs6000_emit_move): If we load or store a 31537 long double type, set the flags for noting the default long double 31538 type, even if we don't pass or return a long double type. 31539 315402018-01-17 Jan Hubicka <hubicka@ucw.cz> 31541 31542 PR ipa/83051 31543 * ipa-inline.c (flatten_function): Do not overwrite final inlining 31544 failure. 31545 315462018-01-17 Will Schmidt <will_schmidt@vnet.ibm.com> 31547 31548 * config/rs6000/rs6000.c (rs6000_gimple_builtin): Add gimple folding 31549 support for merge[hl]. 31550 (fold_mergehl_helper): New helper function. 31551 (tree-vector-builder.h): New #include for tree_vector_builder usage. 31552 * config/rs6000/altivec.md (altivec_vmrghw_direct): Add xxmrghw insn. 31553 (altivec_vmrglw_direct): Add xxmrglw insn. 31554 315552018-01-17 Andrew Waterman <andrew@sifive.com> 31556 31557 * config/riscv/riscv.c (riscv_conditional_register_usage): If 31558 UNITS_PER_FP_ARG is 0, set call_used_regs to 1 for all FP regs. 31559 315602018-01-17 David Malcolm <dmalcolm@redhat.com> 31561 31562 PR lto/83121 31563 * ipa-devirt.c (add_type_duplicate): When comparing memory layout, 31564 call the lto_location_cache before reading the 31565 DECL_SOURCE_LOCATION of the types. 31566 315672018-01-17 Wilco Dijkstra <wdijkstr@arm.com> 31568 Richard Sandiford <richard.sandiford@linaro.org> 31569 31570 * config/aarch64/aarch64.md (movti_aarch64): Use Uti constraint. 31571 * config/aarch64/aarch64.c (aarch64_mov128_immediate): New function. 31572 (aarch64_legitimate_constant_p): Just support CONST_DOUBLE 31573 SF/DF/TF mode to avoid creating illegal CONST_WIDE_INT immediates. 31574 * config/aarch64/aarch64-protos.h (aarch64_mov128_immediate): 31575 Add declaration. 31576 * config/aarch64/constraints.md (aarch64_movti_operand): 31577 Limit immediates. 31578 * config/aarch64/predicates.md (Uti): Add new constraint. 31579 315802018-01-17 Carl Love <cel@us.ibm.com> 31581 31582 * config/rs6000/vsx.md (define_expand xl_len_r, 31583 define_expand stxvl, define_expand *stxvl): Add match_dup argument. 31584 (define_insn): Add, match_dup 1 argument to define_insn stxvll and 31585 lxvll. 31586 (define_expand, define_insn): Move the shift left from the 31587 define_insn to the define_expand for lxvl and stxvl instructions. 31588 * config/rs6000/rs6000-builtin.def (BU_P9V_64BIT_VSX_2): Change LXVL 31589 and XL_LEN_R definitions to PURE. 31590 315912018-01-17 Uros Bizjak <ubizjak@gmail.com> 31592 31593 * config/i386/i386.c (indirect_thunk_name): Declare regno 31594 as unsigned int. Compare regno with INVALID_REGNUM. 31595 (output_indirect_thunk): Ditto. 31596 (output_indirect_thunk_function): Ditto. 31597 (ix86_code_end): Declare regno as unsigned int. Use INVALID_REGNUM 31598 in the call to output_indirect_thunk_function. 31599 316002018-01-17 Richard Sandiford <richard.sandiford@linaro.org> 31601 31602 PR middle-end/83884 31603 * expr.c (expand_expr_real_1): Use the size of GET_MODE (op0) 31604 rather than the size of inner_type to determine the stack slot size 31605 when handling VIEW_CONVERT_EXPRs on strict-alignment targets. 31606 316072018-01-16 Sebastian Peryt <sebastian.peryt@intel.com> 31608 31609 PR target/83546 31610 * config/i386/i386.c (ix86_option_override_internal): Add PTA_RDRND 31611 to PTA_SILVERMONT. 31612 316132018-01-16 Michael Meissner <meissner@linux.vnet.ibm.com> 31614 31615 * config.gcc (powerpc*-linux*-*): Add support for 64-bit little 31616 endian Linux systems to optionally enable multilibs for selecting 31617 the long double type if the user configured an explicit type. 31618 * config/rs6000/rs6000.h (TARGET_IEEEQUAD_MULTILIB): Indicate we 31619 have no long double multilibs if not defined. 31620 * config/rs6000/rs6000.c (rs6000_option_override_internal): Do not 31621 warn if the user used -mabi={ieee,ibm}longdouble and we built 31622 multilibs for long double. 31623 * config/rs6000/linux64.h (MULTILIB_DEFAULTS_IEEE): Define as the 31624 appropriate multilib option. 31625 (MULTILIB_DEFAULTS): Add MULTILIB_DEFAULTS_IEEE to the default 31626 multilib options. 31627 * config/rs6000/t-ldouble-linux64le-ibm: New configuration files 31628 for building long double multilibs. 31629 * config/rs6000/t-ldouble-linux64le-ieee: Likewise. 31630 316312018-01-16 John David Anglin <danglin@gcc.gnu.org> 31632 31633 * config.gcc (hppa*-*-linux*): Change callee copies ABI to caller 31634 copies. 31635 31636 * config/pa.h (MALLOC_ABI_ALIGNMENT): Set 32-bit alignment default to 31637 64 bits. 31638 * config/pa/pa32-linux.h (MALLOC_ABI_ALIGNMENT): Set alignment to 31639 128 bits. 31640 31641 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Cleanup type and mode 31642 variables. 31643 31644 * config/pa/pa.c (pa_function_arg_size): Apply CEIL to GET_MODE_SIZE 31645 return value. 31646 316472018-01-16 Eric Botcazou <ebotcazou@adacore.com> 31648 31649 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): For an 31650 ADDR_EXPR, do not count the offset of a COMPONENT_REF twice. 31651 316522018-01-16 Kelvin Nilsen <kelvin@gcc.gnu.org> 31653 31654 * config/rs6000/rs6000-p8swap.c (rs6000_gen_stvx): Generate 31655 different rtl trees depending on TARGET_64BIT. 31656 (rs6000_gen_lvx): Likewise. 31657 316582018-01-16 Eric Botcazou <ebotcazou@adacore.com> 31659 31660 * config/visium/visium.md (nop): Tweak comment. 31661 (hazard_nop): Likewise. 31662 316632018-01-16 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 31664 31665 * config/rs6000/rs6000.c (rs6000_opt_vars): Add entry for 31666 -mspeculate-indirect-jumps. 31667 * config/rs6000/rs6000.md (*call_indirect_elfv2<mode>): Disable 31668 for -mno-speculate-indirect-jumps. 31669 (*call_indirect_elfv2<mode>_nospec): New define_insn. 31670 (*call_value_indirect_elfv2<mode>): Disable for 31671 -mno-speculate-indirect-jumps. 31672 (*call_value_indirect_elfv2<mode>_nospec): New define_insn. 31673 (indirect_jump): Emit different RTL for 31674 -mno-speculate-indirect-jumps. 31675 (*indirect_jump<mode>): Disable for 31676 -mno-speculate-indirect-jumps. 31677 (*indirect_jump<mode>_nospec): New define_insn. 31678 (tablejump): Emit different RTL for 31679 -mno-speculate-indirect-jumps. 31680 (tablejumpsi): Disable for -mno-speculate-indirect-jumps. 31681 (tablejumpsi_nospec): New define_expand. 31682 (tablejumpdi): Disable for -mno-speculate-indirect-jumps. 31683 (tablejumpdi_nospec): New define_expand. 31684 (*tablejump<mode>_internal1): Disable for 31685 -mno-speculate-indirect-jumps. 31686 (*tablejump<mode>_internal1_nospec): New define_insn. 31687 * config/rs6000/rs6000.opt (mspeculate-indirect-jumps): New 31688 option. 31689 316902018-01-16 Artyom Skrobov tyomitch@gmail.com 31691 31692 * caller-save.c (insert_save): Drop unnecessary parameter. All 31693 callers updated. 31694 316952018-01-16 Jakub Jelinek <jakub@redhat.com> 31696 Richard Biener <rguenth@suse.de> 31697 31698 PR libgomp/83590 31699 * gimplify.c (gimplify_one_sizepos): For is_gimple_constant (expr) 31700 return early, inline manually is_gimple_sizepos. Make sure if we 31701 call gimplify_expr we don't end up with a gimple constant. 31702 * tree.c (variably_modified_type_p): Don't return true for 31703 is_gimple_constant (_t). Inline manually is_gimple_sizepos. 31704 * gimplify.h (is_gimple_sizepos): Remove. 31705 317062018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 31707 31708 PR tree-optimization/83857 31709 * tree-vect-loop.c (vect_analyze_loop_operations): Don't call 31710 vectorizable_live_operation for pure SLP statements. 31711 (vectorizable_live_operation): Handle PHIs. 31712 317132018-01-16 Richard Biener <rguenther@suse.de> 31714 31715 PR tree-optimization/83867 31716 * tree-vect-stmts.c (vect_transform_stmt): Precompute 31717 nested_in_vect_loop_p since the scalar stmt may get invalidated. 31718 317192018-01-16 Jakub Jelinek <jakub@redhat.com> 31720 31721 PR c/83844 31722 * stor-layout.c (handle_warn_if_not_align): Use byte_position and 31723 multiple_of_p instead of unchecked tree_to_uhwi and UHWI check. 31724 If off is not INTEGER_CST, issue a may not be aligned warning 31725 rather than isn't aligned. Use isn%'t rather than isn't. 31726 * fold-const.c (multiple_of_p) <case BIT_AND_EXPR>: Don't fall through 31727 into MULT_EXPR. 31728 <case MULT_EXPR>: Improve the case when bottom and one of the 31729 MULT_EXPR operands are INTEGER_CSTs and bottom is multiple of that 31730 operand, in that case check if the other operand is multiple of 31731 bottom divided by the INTEGER_CST operand. 31732 317332018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 31734 31735 PR target/83858 31736 * config/pa/pa.h (FUNCTION_ARG_SIZE): Delete. 31737 * config/pa/pa-protos.h (pa_function_arg_size): Declare. 31738 * config/pa/som.h (ASM_DECLARE_FUNCTION_NAME): Use 31739 pa_function_arg_size instead of FUNCTION_ARG_SIZE. 31740 * config/pa/pa.c (pa_function_arg_advance): Likewise. 31741 (pa_function_arg, pa_arg_partial_bytes): Likewise. 31742 (pa_function_arg_size): New function. 31743 317442018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 31745 31746 * fold-const.c (fold_ternary_loc): Construct the vec_perm_indices 31747 in a separate statement. 31748 317492018-01-16 Richard Sandiford <richard.sandiford@linaro.org> 31750 31751 PR tree-optimization/83847 31752 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Don't 31753 group gathers and scatters. 31754 317552018-01-16 Jakub Jelinek <jakub@redhat.com> 31756 31757 PR rtl-optimization/86620 31758 * params.def (max-sched-ready-insns): Bump minimum value to 1. 31759 31760 PR rtl-optimization/83213 31761 * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn 31762 to last if both are JUMP_INSNs. 31763 31764 PR tree-optimization/83843 31765 * gimple-ssa-store-merging.c 31766 (imm_store_chain_info::output_merged_store): Handle bit_not_p on 31767 store_immediate_info for bswap/nop orig_stores. 31768 317692018-01-15 Andrew Waterman <andrew@sifive.com> 31770 31771 * config/riscv/riscv.c (riscv_rtx_costs) <MULT>: Increase cost if 31772 !TARGET_MUL. 31773 <UDIV>: Increase cost if !TARGET_DIV. 31774 317752018-01-15 Segher Boessenkool <segher@kernel.crashing.org> 31776 31777 * config/rs6000/rs6000.md (define_attr "type"): Remove delayed_cr. 31778 (define_attr "cr_logical_3op"): New. 31779 (cceq_ior_compare): Adjust. 31780 (cceq_ior_compare_complement): Adjust. 31781 (*cceq_rev_compare): Adjust. 31782 * config/rs6000/rs6000.c (rs6000_adjust_cost): Adjust. 31783 (is_cracked_insn): Adjust. 31784 (insn_must_be_first_in_group): Adjust. 31785 * config/rs6000/40x.md: Adjust. 31786 * config/rs6000/440.md: Adjust. 31787 * config/rs6000/476.md: Adjust. 31788 * config/rs6000/601.md: Adjust. 31789 * config/rs6000/603.md: Adjust. 31790 * config/rs6000/6xx.md: Adjust. 31791 * config/rs6000/7450.md: Adjust. 31792 * config/rs6000/7xx.md: Adjust. 31793 * config/rs6000/8540.md: Adjust. 31794 * config/rs6000/cell.md: Adjust. 31795 * config/rs6000/e300c2c3.md: Adjust. 31796 * config/rs6000/e500mc.md: Adjust. 31797 * config/rs6000/e500mc64.md: Adjust. 31798 * config/rs6000/e5500.md: Adjust. 31799 * config/rs6000/e6500.md: Adjust. 31800 * config/rs6000/mpc.md: Adjust. 31801 * config/rs6000/power4.md: Adjust. 31802 * config/rs6000/power5.md: Adjust. 31803 * config/rs6000/power6.md: Adjust. 31804 * config/rs6000/power7.md: Adjust. 31805 * config/rs6000/power8.md: Adjust. 31806 * config/rs6000/power9.md: Adjust. 31807 * config/rs6000/rs64.md: Adjust. 31808 * config/rs6000/titan.md: Adjust. 31809 318102018-01-15 H.J. Lu <hongjiu.lu@intel.com> 31811 31812 * config/i386/predicates.md (indirect_branch_operand): Rewrite 31813 ix86_indirect_branch_register logic. 31814 318152018-01-15 H.J. Lu <hongjiu.lu@intel.com> 31816 31817 * config/i386/constraints.md (Bs): Update 31818 ix86_indirect_branch_register check. Don't check 31819 ix86_indirect_branch_register with GOT_memory_operand. 31820 (Bw): Likewise. 31821 * config/i386/predicates.md (GOT_memory_operand): Don't check 31822 ix86_indirect_branch_register here. 31823 (GOT32_symbol_operand): Likewise. 31824 318252018-01-15 H.J. Lu <hongjiu.lu@intel.com> 31826 31827 * config/i386/predicates.md (constant_call_address_operand): 31828 Rewrite ix86_indirect_branch_register logic. 31829 (sibcall_insn_operand): Likewise. 31830 318312018-01-15 H.J. Lu <hongjiu.lu@intel.com> 31832 31833 * config/i386/constraints.md (Bs): Replace 31834 ix86_indirect_branch_thunk_register with 31835 ix86_indirect_branch_register. 31836 (Bw): Likewise. 31837 * config/i386/i386.md (indirect_jump): Likewise. 31838 (tablejump): Likewise. 31839 (*sibcall_memory): Likewise. 31840 (*sibcall_value_memory): Likewise. 31841 Peepholes of indirect call and jump via memory: Likewise. 31842 * config/i386/i386.opt: Likewise. 31843 * config/i386/predicates.md (indirect_branch_operand): Likewise. 31844 (GOT_memory_operand): Likewise. 31845 (call_insn_operand): Likewise. 31846 (sibcall_insn_operand): Likewise. 31847 (GOT32_symbol_operand): Likewise. 31848 318492018-01-15 Jakub Jelinek <jakub@redhat.com> 31850 31851 PR middle-end/83837 31852 * omp-expand.c (expand_omp_atomic_pipeline): Use loaded_val 31853 type rather than type addr's type points to. 31854 (expand_omp_atomic_mutex): Likewise. 31855 (expand_omp_atomic): Likewise. 31856 318572018-01-15 H.J. Lu <hongjiu.lu@intel.com> 31858 31859 PR target/83839 31860 * config/i386/i386.c (output_indirect_thunk_function): Use 31861 ASM_OUTPUT_LABEL, instead of ASM_OUTPUT_DEF, for TARGET_MACHO 31862 for __x86_return_thunk. 31863 318642018-01-15 Richard Biener <rguenther@suse.de> 31865 31866 PR middle-end/83850 31867 * expmed.c (extract_bit_field_1): Fix typo. 31868 318692018-01-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 31870 31871 PR target/83687 31872 * config/arm/iterators.md (VF): New mode iterator. 31873 * config/arm/neon.md (neon_vabd<mode>_2): Use the above. 31874 Remove integer-related logic from pattern. 31875 (neon_vabd<mode>_3): Likewise. 31876 318772018-01-15 Jakub Jelinek <jakub@redhat.com> 31878 31879 PR middle-end/82694 31880 * common.opt (fstrict-overflow): No longer an alias. 31881 (fwrapv-pointer): New option. 31882 * tree.h (TYPE_OVERFLOW_WRAPS, TYPE_OVERFLOW_UNDEFINED): Define 31883 also for pointer types based on flag_wrapv_pointer. 31884 * opts.c (common_handle_option) <case OPT_fstrict_overflow>: Set 31885 opts->x_flag_wrap[pv] to !value, clear opts->x_flag_trapv if 31886 opts->x_flag_wrapv got set. 31887 * fold-const.c (fold_comparison, fold_binary_loc): Revert 2017-08-01 31888 changes, just use TYPE_OVERFLOW_UNDEFINED on pointer type instead of 31889 POINTER_TYPE_OVERFLOW_UNDEFINED. 31890 * match.pd: Likewise in address comparison pattern. 31891 * doc/invoke.texi: Document -fwrapv and -fstrict-overflow. 31892 318932018-01-15 Richard Biener <rguenther@suse.de> 31894 31895 PR lto/83804 31896 * tree.c (free_lang_data_in_type): Always unlink TYPE_DECLs 31897 from TYPE_FIELDS. Free TYPE_BINFO if not used by devirtualization. 31898 Reset type names to their identifier if their TYPE_DECL doesn't 31899 have linkage (and thus is used for ODR and devirt). 31900 (save_debug_info_for_decl): Remove. 31901 (save_debug_info_for_type): Likewise. 31902 (add_tree_to_fld_list): Adjust. 31903 * tree-pretty-print.c (dump_generic_node): Make dumping of 31904 type names more robust. 31905 319062018-01-15 Richard Biener <rguenther@suse.de> 31907 31908 * BASE-VER: Bump to 8.0.1. 31909 319102018-01-14 Martin Sebor <msebor@redhat.com> 31911 31912 PR other/83508 31913 * builtins.c (check_access): Avoid warning when the no-warning bit 31914 is set. 31915 319162018-01-14 Cory Fields <cory-nospam-@coryfields.com> 31917 31918 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Stabilize sort. 31919 * ira-color (allocno_hard_regs_compare): Likewise. 31920 319212018-01-14 Nathan Rossi <nathan@nathanrossi.com> 31922 31923 PR target/83013 31924 * config/microblaze/microblaze.c (microblaze_asm_output_ident): 31925 Use .pushsection/.popsection. 31926 319272018-01-14 Martin Sebor <msebor@redhat.com> 31928 31929 PR c++/81327 31930 * doc/invoke.texi (-Wlass-memaccess): Document suppression by casting. 31931 319322018-01-14 Jakub Jelinek <jakub@redhat.com> 31933 31934 * config.gcc (i[34567]86-*-*): Remove one duplicate gfniintrin.h 31935 entry from extra_headers. 31936 (x86_64-*-*): Remove two duplicate gfniintrin.h entries from 31937 extra_headers, make the list bitwise identical to the i?86-*-* one. 31938 319392018-01-14 H.J. Lu <hongjiu.lu@intel.com> 31940 31941 * config/i386/i386.c (ix86_set_indirect_branch_type): Disallow 31942 -mcmodel=large with -mindirect-branch=thunk, 31943 -mindirect-branch=thunk-extern, -mfunction-return=thunk and 31944 -mfunction-return=thunk-extern. 31945 * doc/invoke.texi: Document -mcmodel=large is incompatible with 31946 -mindirect-branch=thunk, -mindirect-branch=thunk-extern, 31947 -mfunction-return=thunk and -mfunction-return=thunk-extern. 31948 319492018-01-14 H.J. Lu <hongjiu.lu@intel.com> 31950 31951 * config/i386/i386.c (print_reg): Print the name of the full 31952 integer register without '%'. 31953 (ix86_print_operand): Handle 'V'. 31954 * doc/extend.texi: Document 'V' modifier. 31955 319562018-01-14 H.J. Lu <hongjiu.lu@intel.com> 31957 31958 * config/i386/constraints.md (Bs): Disallow memory operand for 31959 -mindirect-branch-register. 31960 (Bw): Likewise. 31961 * config/i386/predicates.md (indirect_branch_operand): Likewise. 31962 (GOT_memory_operand): Likewise. 31963 (call_insn_operand): Likewise. 31964 (sibcall_insn_operand): Likewise. 31965 (GOT32_symbol_operand): Likewise. 31966 * config/i386/i386.md (indirect_jump): Call convert_memory_address 31967 for -mindirect-branch-register. 31968 (tablejump): Likewise. 31969 (*sibcall_memory): Likewise. 31970 (*sibcall_value_memory): Likewise. 31971 Disallow peepholes of indirect call and jump via memory for 31972 -mindirect-branch-register. 31973 (*call_pop): Replace m with Bw. 31974 (*call_value_pop): Likewise. 31975 (*sibcall_pop_memory): Replace m with Bs. 31976 * config/i386/i386.opt (mindirect-branch-register): New option. 31977 * doc/invoke.texi: Document -mindirect-branch-register option. 31978 319792018-01-14 H.J. Lu <hongjiu.lu@intel.com> 31980 31981 * config/i386/i386-protos.h (ix86_output_function_return): New. 31982 * config/i386/i386.c (ix86_set_indirect_branch_type): Also 31983 set function_return_type. 31984 (indirect_thunk_name): Add ret_p to indicate thunk for function 31985 return. 31986 (output_indirect_thunk_function): Pass false to 31987 indirect_thunk_name. 31988 (ix86_output_indirect_branch_via_reg): Likewise. 31989 (ix86_output_indirect_branch_via_push): Likewise. 31990 (output_indirect_thunk_function): Create alias for function 31991 return thunk if regno < 0. 31992 (ix86_output_function_return): New function. 31993 (ix86_handle_fndecl_attribute): Handle function_return. 31994 (ix86_attribute_table): Add function_return. 31995 * config/i386/i386.h (machine_function): Add 31996 function_return_type. 31997 * config/i386/i386.md (simple_return_internal): Use 31998 ix86_output_function_return. 31999 (simple_return_internal_long): Likewise. 32000 * config/i386/i386.opt (mfunction-return=): New option. 32001 (indirect_branch): Mention -mfunction-return=. 32002 * doc/extend.texi: Document function_return function attribute. 32003 * doc/invoke.texi: Document -mfunction-return= option. 32004 320052018-01-14 H.J. Lu <hongjiu.lu@intel.com> 32006 32007 * config/i386/i386-opts.h (indirect_branch): New. 32008 * config/i386/i386-protos.h (ix86_output_indirect_jmp): Likewise. 32009 * config/i386/i386.c (ix86_using_red_zone): Disallow red-zone 32010 with local indirect jump when converting indirect call and jump. 32011 (ix86_set_indirect_branch_type): New. 32012 (ix86_set_current_function): Call ix86_set_indirect_branch_type. 32013 (indirectlabelno): New. 32014 (indirect_thunk_needed): Likewise. 32015 (indirect_thunk_bnd_needed): Likewise. 32016 (indirect_thunks_used): Likewise. 32017 (indirect_thunks_bnd_used): Likewise. 32018 (INDIRECT_LABEL): Likewise. 32019 (indirect_thunk_name): Likewise. 32020 (output_indirect_thunk): Likewise. 32021 (output_indirect_thunk_function): Likewise. 32022 (ix86_output_indirect_branch_via_reg): Likewise. 32023 (ix86_output_indirect_branch_via_push): Likewise. 32024 (ix86_output_indirect_branch): Likewise. 32025 (ix86_output_indirect_jmp): Likewise. 32026 (ix86_code_end): Call output_indirect_thunk_function if needed. 32027 (ix86_output_call_insn): Call ix86_output_indirect_branch if 32028 needed. 32029 (ix86_handle_fndecl_attribute): Handle indirect_branch. 32030 (ix86_attribute_table): Add indirect_branch. 32031 * config/i386/i386.h (machine_function): Add indirect_branch_type 32032 and has_local_indirect_jump. 32033 * config/i386/i386.md (indirect_jump): Set has_local_indirect_jump 32034 to true. 32035 (tablejump): Likewise. 32036 (*indirect_jump): Use ix86_output_indirect_jmp. 32037 (*tablejump_1): Likewise. 32038 (simple_return_indirect_internal): Likewise. 32039 * config/i386/i386.opt (mindirect-branch=): New option. 32040 (indirect_branch): New. 32041 (keep): Likewise. 32042 (thunk): Likewise. 32043 (thunk-inline): Likewise. 32044 (thunk-extern): Likewise. 32045 * doc/extend.texi: Document indirect_branch function attribute. 32046 * doc/invoke.texi: Document -mindirect-branch= option. 32047 320482018-01-14 Jan Hubicka <hubicka@ucw.cz> 32049 32050 PR ipa/83051 32051 * ipa-inline.c (edge_badness): Tolerate roundoff errors. 32052 320532018-01-14 Richard Sandiford <richard.sandiford@linaro.org> 32054 32055 * ipa-inline.c (want_inline_small_function_p): Return false if 32056 inlining has already failed with CIF_FINAL_ERROR. 32057 (update_caller_keys): Call want_inline_small_function_p before 32058 can_inline_edge_p. 32059 (update_callee_keys): Likewise. 32060 320612018-01-10 Kelvin Nilsen <kelvin@gcc.gnu.org> 32062 32063 * config/rs6000/rs6000-p8swap.c (rs6000_sum_of_two_registers_p): 32064 New function. 32065 (rs6000_quadword_masked_address_p): Likewise. 32066 (quad_aligned_load_p): Likewise. 32067 (quad_aligned_store_p): Likewise. 32068 (const_load_sequence_p): Add comment to describe the outer-most loop. 32069 (mimic_memory_attributes_and_flags): New function. 32070 (rs6000_gen_stvx): Likewise. 32071 (replace_swapped_aligned_store): Likewise. 32072 (rs6000_gen_lvx): Likewise. 32073 (replace_swapped_aligned_load): Likewise. 32074 (replace_swapped_load_constant): Capitalize argument name in 32075 comment describing this function. 32076 (rs6000_analyze_swaps): Add a third pass to search for vector loads 32077 and stores that access quad-word aligned addresses and replace 32078 with stvx or lvx instructions when appropriate. 32079 * config/rs6000/rs6000-protos.h (rs6000_sum_of_two_registers_p): 32080 New function prototype. 32081 (rs6000_quadword_masked_address_p): Likewise. 32082 (rs6000_gen_lvx): Likewise. 32083 (rs6000_gen_stvx): Likewise. 32084 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>): For modes 32085 VSX_D (V2DF, V2DI), modify this split to select lvx instruction 32086 when memory address is aligned. 32087 (*vsx_le_perm_load_<mode>): For modes VSX_W (V4SF, V4SI), modify 32088 this split to select lvx instruction when memory address is aligned. 32089 (*vsx_le_perm_load_v8hi): Modify this split to select lvx 32090 instruction when memory address is aligned. 32091 (*vsx_le_perm_load_v16qi): Likewise. 32092 (four unnamed splitters): Modify to select the stvx instruction 32093 when memory is aligned. 32094 320952018-01-13 Jan Hubicka <hubicka@ucw.cz> 32096 32097 * predict.c (determine_unlikely_bbs): Handle correctly BBs 32098 which appears in the queue multiple times. 32099 321002018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32101 Alan Hayward <alan.hayward@arm.com> 32102 David Sherwood <david.sherwood@arm.com> 32103 32104 * tree-vectorizer.h (vec_lower_bound): New structure. 32105 (_loop_vec_info): Add check_nonzero and lower_bounds. 32106 (LOOP_VINFO_CHECK_NONZERO): New macro. 32107 (LOOP_VINFO_LOWER_BOUNDS): Likewise. 32108 (LOOP_REQUIRES_VERSIONING_FOR_ALIAS): Check lower_bounds too. 32109 * tree-data-ref.h (dr_with_seg_len): Add access_size and align 32110 fields. Make seg_len the distance travelled, not including the 32111 access size. 32112 (dr_direction_indicator): Declare. 32113 (dr_zero_step_indicator): Likewise. 32114 (dr_known_forward_stride_p): Likewise. 32115 * tree-data-ref.c: Include stringpool.h, tree-vrp.h and 32116 tree-ssanames.h. 32117 (runtime_alias_check_p): Allow runtime alias checks with 32118 variable strides. 32119 (operator ==): Compare access_size and align. 32120 (prune_runtime_alias_test_list): Rework for new distinction between 32121 the access_size and seg_len. 32122 (create_intersect_range_checks_index): Likewise. Cope with polynomial 32123 segment lengths. 32124 (get_segment_min_max): New function. 32125 (create_intersect_range_checks): Use it. 32126 (dr_step_indicator): New function. 32127 (dr_direction_indicator): Likewise. 32128 (dr_zero_step_indicator): Likewise. 32129 (dr_known_forward_stride_p): Likewise. 32130 * tree-loop-distribution.c (data_ref_segment_size): Return 32131 DR_STEP * (niters - 1). 32132 (compute_alias_check_pairs): Update call to the dr_with_seg_len 32133 constructor. 32134 * tree-vect-data-refs.c (vect_check_nonzero_value): New function. 32135 (vect_preserves_scalar_order_p): New function, split out from... 32136 (vect_analyze_data_ref_dependence): ...here. Check for zero steps. 32137 (vect_vfa_segment_size): Return DR_STEP * (length_factor - 1). 32138 (vect_vfa_access_size): New function. 32139 (vect_vfa_align): Likewise. 32140 (vect_compile_time_alias): Take access_size_a and access_b arguments. 32141 (dump_lower_bound): New function. 32142 (vect_check_lower_bound): Likewise. 32143 (vect_small_gap_p): Likewise. 32144 (vectorizable_with_step_bound_p): Likewise. 32145 (vect_prune_runtime_alias_test_list): Ignore cross-iteration 32146 depencies if the vectorization factor is 1. Convert the checks 32147 for nonzero steps into checks on the bounds of DR_STEP. Try using 32148 a bunds check for variable steps if the minimum required step is 32149 relatively small. Update calls to the dr_with_seg_len 32150 constructor and to vect_compile_time_alias. 32151 * tree-vect-loop-manip.c (vect_create_cond_for_lower_bounds): New 32152 function. 32153 (vect_loop_versioning): Call it. 32154 * tree-vect-loop.c (vect_analyze_loop_2): Clear LOOP_VINFO_LOWER_BOUNDS 32155 when retrying. 32156 (vect_estimate_min_profitable_iters): Account for any bounds checks. 32157 321582018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32159 Alan Hayward <alan.hayward@arm.com> 32160 David Sherwood <david.sherwood@arm.com> 32161 32162 * doc/sourcebuild.texi (vect_scatter_store): Document. 32163 * optabs.def (scatter_store_optab, mask_scatter_store_optab): New 32164 optabs. 32165 * doc/md.texi (scatter_store@var{m}, mask_scatter_store@var{m}): 32166 Document. 32167 * genopinit.c (main): Add supports_vec_scatter_store and 32168 supports_vec_scatter_store_cached to target_optabs. 32169 * gimple.h (gimple_expr_type): Handle IFN_SCATTER_STORE and 32170 IFN_MASK_SCATTER_STORE. 32171 * internal-fn.def (SCATTER_STORE, MASK_SCATTER_STORE): New internal 32172 functions. 32173 * internal-fn.h (internal_store_fn_p): Declare. 32174 (internal_fn_stored_value_index): Likewise. 32175 * internal-fn.c (scatter_store_direct): New macro. 32176 (expand_scatter_store_optab_fn): New function. 32177 (direct_scatter_store_optab_supported_p): New macro. 32178 (internal_store_fn_p): New function. 32179 (internal_gather_scatter_fn_p): Handle IFN_SCATTER_STORE and 32180 IFN_MASK_SCATTER_STORE. 32181 (internal_fn_mask_index): Likewise. 32182 (internal_fn_stored_value_index): New function. 32183 (internal_gather_scatter_fn_supported_p): Adjust operand numbers 32184 for scatter stores. 32185 * optabs-query.h (supports_vec_scatter_store_p): Declare. 32186 * optabs-query.c (supports_vec_scatter_store_p): New function. 32187 * tree-vectorizer.h (vect_get_store_rhs): Declare. 32188 * tree-vect-data-refs.c (vect_analyze_data_ref_access): Return 32189 true for scatter stores. 32190 (vect_gather_scatter_fn_p): Handle scatter stores too. 32191 (vect_check_gather_scatter): Consider using scatter stores if 32192 supports_vec_scatter_store_p. 32193 * tree-vect-patterns.c (vect_try_gather_scatter_pattern): Handle 32194 scatter stores too. 32195 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use 32196 internal_fn_stored_value_index. 32197 (check_load_store_masking): Handle scatter stores too. 32198 (vect_get_store_rhs): Make public. 32199 (vectorizable_call): Use internal_store_fn_p. 32200 (vectorizable_store): Handle scatter store internal functions. 32201 (vect_transform_stmt): Compare GROUP_STORE_COUNT with GROUP_SIZE 32202 when deciding whether the end of the group has been reached. 32203 * config/aarch64/aarch64.md (UNSPEC_ST1_SCATTER): New unspec. 32204 * config/aarch64/aarch64-sve.md (scatter_store<mode>): New expander. 32205 (mask_scatter_store<mode>): New insns. 32206 322072018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32208 Alan Hayward <alan.hayward@arm.com> 32209 David Sherwood <david.sherwood@arm.com> 32210 32211 * tree-vectorizer.h (vect_gather_scatter_fn_p): Declare. 32212 * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Make public. 32213 * tree-vect-stmts.c (vect_truncate_gather_scatter_offset): New 32214 function. 32215 (vect_use_strided_gather_scatters_p): Take a masked_p argument. 32216 Use vect_truncate_gather_scatter_offset if we can't treat the 32217 operation as a normal gather load or scatter store. 32218 (get_group_load_store_type): Take the gather_scatter_info 32219 as argument. Try using a gather load or scatter store for 32220 single-element groups. 32221 (get_load_store_type): Update calls to get_group_load_store_type 32222 and vect_use_strided_gather_scatters_p. 32223 322242018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32225 Alan Hayward <alan.hayward@arm.com> 32226 David Sherwood <david.sherwood@arm.com> 32227 32228 * tree-vectorizer.h (vect_create_data_ref_ptr): Take an extra 32229 optional tree argument. 32230 * tree-vect-data-refs.c (vect_check_gather_scatter): Check for 32231 null target hooks. 32232 (vect_create_data_ref_ptr): Take the iv_step as an optional argument, 32233 but continue to use the current value as a fallback. 32234 (bump_vector_ptr): Use operand_equal_p rather than tree_int_cst_compare 32235 to compare the updates. 32236 * tree-vect-stmts.c (vect_use_strided_gather_scatters_p): New function. 32237 (get_load_store_type): Use it when handling a strided access. 32238 (vect_get_strided_load_store_ops): New function. 32239 (vect_get_data_ptr_increment): Likewise. 32240 (vectorizable_load): Handle strided gather loads. Always pass 32241 a step to vect_create_data_ref_ptr and bump_vector_ptr. 32242 322432018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32244 Alan Hayward <alan.hayward@arm.com> 32245 David Sherwood <david.sherwood@arm.com> 32246 32247 * doc/md.texi (gather_load@var{m}): Document. 32248 (mask_gather_load@var{m}): Likewise. 32249 * genopinit.c (main): Add supports_vec_gather_load and 32250 supports_vec_gather_load_cached to target_optabs. 32251 * optabs-tree.c (init_tree_optimization_optabs): Use 32252 ggc_cleared_alloc to allocate target_optabs. 32253 * optabs.def (gather_load_optab, mask_gather_laod_optab): New optabs. 32254 * internal-fn.def (GATHER_LOAD, MASK_GATHER_LOAD): New internal 32255 functions. 32256 * internal-fn.h (internal_load_fn_p): Declare. 32257 (internal_gather_scatter_fn_p): Likewise. 32258 (internal_fn_mask_index): Likewise. 32259 (internal_gather_scatter_fn_supported_p): Likewise. 32260 * internal-fn.c (gather_load_direct): New macro. 32261 (expand_gather_load_optab_fn): New function. 32262 (direct_gather_load_optab_supported_p): New macro. 32263 (direct_internal_fn_optab): New function. 32264 (internal_load_fn_p): Likewise. 32265 (internal_gather_scatter_fn_p): Likewise. 32266 (internal_fn_mask_index): Likewise. 32267 (internal_gather_scatter_fn_supported_p): Likewise. 32268 * optabs-query.c (supports_at_least_one_mode_p): New function. 32269 (supports_vec_gather_load_p): Likewise. 32270 * optabs-query.h (supports_vec_gather_load_p): Declare. 32271 * tree-vectorizer.h (gather_scatter_info): Add ifn, element_type 32272 and memory_type field. 32273 (NUM_PATTERNS): Bump to 15. 32274 * tree-vect-data-refs.c: Include internal-fn.h. 32275 (vect_gather_scatter_fn_p): New function. 32276 (vect_describe_gather_scatter_call): Likewise. 32277 (vect_check_gather_scatter): Try using internal functions for 32278 gather loads. Recognize existing calls to a gather load function. 32279 (vect_analyze_data_refs): Consider using gather loads if 32280 supports_vec_gather_load_p. 32281 * tree-vect-patterns.c (vect_get_load_store_mask): New function. 32282 (vect_get_gather_scatter_offset_type): Likewise. 32283 (vect_convert_mask_for_vectype): Likewise. 32284 (vect_add_conversion_to_patterm): Likewise. 32285 (vect_try_gather_scatter_pattern): Likewise. 32286 (vect_recog_gather_scatter_pattern): New pattern recognizer. 32287 (vect_vect_recog_func_ptrs): Add it. 32288 * tree-vect-stmts.c (exist_non_indexing_operands_for_use_p): Use 32289 internal_fn_mask_index and internal_gather_scatter_fn_p. 32290 (check_load_store_masking): Take the gather_scatter_info as an 32291 argument and handle gather loads. 32292 (vect_get_gather_scatter_ops): New function. 32293 (vectorizable_call): Check internal_load_fn_p. 32294 (vectorizable_load): Likewise. Handle gather load internal 32295 functions. 32296 (vectorizable_store): Update call to check_load_store_masking. 32297 * config/aarch64/aarch64.md (UNSPEC_LD1_GATHER): New unspec. 32298 * config/aarch64/iterators.md (SVE_S, SVE_D): New mode iterators. 32299 * config/aarch64/predicates.md (aarch64_gather_scale_operand_w) 32300 (aarch64_gather_scale_operand_d): New predicates. 32301 * config/aarch64/aarch64-sve.md (gather_load<mode>): New expander. 32302 (mask_gather_load<mode>): New insns. 32303 323042018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32305 Alan Hayward <alan.hayward@arm.com> 32306 David Sherwood <david.sherwood@arm.com> 32307 32308 * optabs.def (fold_left_plus_optab): New optab. 32309 * doc/md.texi (fold_left_plus_@var{m}): Document. 32310 * internal-fn.def (IFN_FOLD_LEFT_PLUS): New internal function. 32311 * internal-fn.c (fold_left_direct): Define. 32312 (expand_fold_left_optab_fn): Likewise. 32313 (direct_fold_left_optab_supported_p): Likewise. 32314 * fold-const-call.c (fold_const_fold_left): New function. 32315 (fold_const_call): Use it to fold CFN_FOLD_LEFT_PLUS. 32316 * tree-parloops.c (valid_reduction_p): New function. 32317 (gather_scalar_reductions): Use it. 32318 * tree-vectorizer.h (FOLD_LEFT_REDUCTION): New vect_reduction_type. 32319 (vect_finish_replace_stmt): Declare. 32320 * tree-vect-loop.c (fold_left_reduction_fn): New function. 32321 (needs_fold_left_reduction_p): New function, split out from... 32322 (vect_is_simple_reduction): ...here. Accept reductions that 32323 forbid reassociation, but give them type FOLD_LEFT_REDUCTION. 32324 (vect_force_simple_reduction): Also store the reduction type in 32325 the assignment's STMT_VINFO_REDUC_TYPE. 32326 (vect_model_reduction_cost): Handle FOLD_LEFT_REDUCTION. 32327 (merge_with_identity): New function. 32328 (vect_expand_fold_left): Likewise. 32329 (vectorize_fold_left_reduction): Likewise. 32330 (vectorizable_reduction): Handle FOLD_LEFT_REDUCTION. Leave the 32331 scalar phi in place for it. Check for target support and reject 32332 cases that would reassociate the operation. Defer the transform 32333 phase to vectorize_fold_left_reduction. 32334 * config/aarch64/aarch64.md (UNSPEC_FADDA): New unspec. 32335 * config/aarch64/aarch64-sve.md (fold_left_plus_<mode>): New expander. 32336 (*fold_left_plus_<mode>, *pred_fold_left_plus_<mode>): New insns. 32337 323382018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32339 32340 * tree-if-conv.c (predicate_mem_writes): Remove redundant 32341 call to ifc_temp_var. 32342 323432018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32344 Alan Hayward <alan.hayward@arm.com> 32345 David Sherwood <david.sherwood@arm.com> 32346 32347 * target.def (legitimize_address_displacement): Take the original 32348 offset as a poly_int. 32349 * targhooks.h (default_legitimize_address_displacement): Update 32350 accordingly. 32351 * targhooks.c (default_legitimize_address_displacement): Likewise. 32352 * doc/tm.texi: Regenerate. 32353 * lra-constraints.c (base_plus_disp_to_reg): Take the displacement 32354 as an argument, moving assert of ad->disp == ad->disp_term to... 32355 (process_address_1): ...here. Update calls to base_plus_disp_to_reg. 32356 Try calling targetm.legitimize_address_displacement before expanding 32357 the address rather than afterwards, and adjust for the new interface. 32358 * config/aarch64/aarch64.c (aarch64_legitimize_address_displacement): 32359 Match the new hook interface. Handle SVE addresses. 32360 * config/sh/sh.c (sh_legitimize_address_displacement): Make the 32361 new hook interface. 32362 323632018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32364 32365 * Makefile.in (OBJS): Add early-remat.o. 32366 * target.def (select_early_remat_modes): New hook. 32367 * doc/tm.texi.in (TARGET_SELECT_EARLY_REMAT_MODES): New hook. 32368 * doc/tm.texi: Regenerate. 32369 * targhooks.h (default_select_early_remat_modes): Declare. 32370 * targhooks.c (default_select_early_remat_modes): New function. 32371 * timevar.def (TV_EARLY_REMAT): New timevar. 32372 * passes.def (pass_early_remat): New pass. 32373 * tree-pass.h (make_pass_early_remat): Declare. 32374 * early-remat.c: New file. 32375 * config/aarch64/aarch64.c (aarch64_select_early_remat_modes): New 32376 function. 32377 (TARGET_SELECT_EARLY_REMAT_MODES): Define. 32378 323792018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32380 Alan Hayward <alan.hayward@arm.com> 32381 David Sherwood <david.sherwood@arm.com> 32382 32383 * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Replace 32384 vfm1 with a bound_epilog parameter. 32385 (vect_do_peeling): Update calls accordingly, and move the prologue 32386 call earlier in the function. Treat the base bound_epilog as 0 for 32387 fully-masked loops and retain vf - 1 for other loops. Add 1 to 32388 this base when peeling for gaps. 32389 * tree-vect-loop.c (vect_analyze_loop_2): Allow peeling for gaps 32390 with fully-masked loops. 32391 (vect_estimate_min_profitable_iters): Handle the single peeled 32392 iteration in that case. 32393 323942018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32395 Alan Hayward <alan.hayward@arm.com> 32396 David Sherwood <david.sherwood@arm.com> 32397 32398 * tree-vect-data-refs.c (vect_analyze_group_access_1): Allow 32399 single-element interleaving even if the size is not a power of 2. 32400 * tree-vect-stmts.c (get_load_store_type): Disallow elementwise 32401 accesses for single-element interleaving if the group size is 32402 not a power of 2. 32403 324042018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32405 Alan Hayward <alan.hayward@arm.com> 32406 David Sherwood <david.sherwood@arm.com> 32407 32408 * doc/md.texi (fold_extract_last_@var{m}): Document. 32409 * doc/sourcebuild.texi (vect_fold_extract_last): Likewise. 32410 * optabs.def (fold_extract_last_optab): New optab. 32411 * internal-fn.def (FOLD_EXTRACT_LAST): New internal function. 32412 * internal-fn.c (fold_extract_direct): New macro. 32413 (expand_fold_extract_optab_fn): Likewise. 32414 (direct_fold_extract_optab_supported_p): Likewise. 32415 * tree-vectorizer.h (EXTRACT_LAST_REDUCTION): New vect_reduction_type. 32416 * tree-vect-loop.c (vect_model_reduction_cost): Handle 32417 EXTRACT_LAST_REDUCTION. 32418 (get_initial_def_for_reduction): Do not create an initial vector 32419 for EXTRACT_LAST_REDUCTION reductions. 32420 (vectorizable_reduction): Leave the scalar phi in place for 32421 EXTRACT_LAST_REDUCTIONs. Try using EXTRACT_LAST_REDUCTION 32422 ahead of INTEGER_INDUC_COND_REDUCTION. Do not check for an 32423 epilogue code for EXTRACT_LAST_REDUCTION and defer the 32424 transform phase to vectorizable_condition. 32425 * tree-vect-stmts.c (vect_finish_stmt_generation_1): New function, 32426 split out from... 32427 (vect_finish_stmt_generation): ...here. 32428 (vect_finish_replace_stmt): New function. 32429 (vectorizable_condition): Handle EXTRACT_LAST_REDUCTION. 32430 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): New 32431 pattern. 32432 * config/aarch64/aarch64.md (UNSPEC_CLASTB): New unspec. 32433 324342018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32435 Alan Hayward <alan.hayward@arm.com> 32436 David Sherwood <david.sherwood@arm.com> 32437 32438 * doc/md.texi (extract_last_@var{m}): Document. 32439 * optabs.def (extract_last_optab): New optab. 32440 * internal-fn.def (EXTRACT_LAST): New internal function. 32441 * internal-fn.c (cond_unary_direct): New macro. 32442 (expand_cond_unary_optab_fn): Likewise. 32443 (direct_cond_unary_optab_supported_p): Likewise. 32444 * tree-vect-loop.c (vectorizable_live_operation): Allow fully-masked 32445 loops using EXTRACT_LAST. 32446 * config/aarch64/aarch64-sve.md (aarch64_sve_lastb<mode>): Rename to... 32447 (extract_last_<mode>): ...this optab. 32448 (vec_extract<mode><Vel>): Update accordingly. 32449 324502018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32451 Alan Hayward <alan.hayward@arm.com> 32452 David Sherwood <david.sherwood@arm.com> 32453 32454 * target.def (empty_mask_is_expensive): New hook. 32455 * doc/tm.texi.in (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): New hook. 32456 * doc/tm.texi: Regenerate. 32457 * targhooks.h (default_empty_mask_is_expensive): Declare. 32458 * targhooks.c (default_empty_mask_is_expensive): New function. 32459 * tree-vectorizer.c (vectorize_loops): Only call optimize_mask_stores 32460 if the target says that empty masks are expensive. 32461 * config/aarch64/aarch64.c (aarch64_empty_mask_is_expensive): 32462 New function. 32463 (TARGET_VECTORIZE_EMPTY_MASK_IS_EXPENSIVE): Redefine. 32464 324652018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32466 Alan Hayward <alan.hayward@arm.com> 32467 David Sherwood <david.sherwood@arm.com> 32468 32469 * tree-vectorizer.h (_loop_vec_info::mask_skip_niters): New field. 32470 (LOOP_VINFO_MASK_SKIP_NITERS): New macro. 32471 (vect_use_loop_mask_for_alignment_p): New function. 32472 (vect_prepare_for_masked_peels, vect_gen_while_not): Declare. 32473 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Add an 32474 niters_skip argument. Make sure that the first niters_skip elements 32475 of the first iteration are inactive. 32476 (vect_set_loop_condition_masked): Handle LOOP_VINFO_MASK_SKIP_NITERS. 32477 Update call to vect_set_loop_masks_directly. 32478 (get_misalign_in_elems): New function, split out from... 32479 (vect_gen_prolog_loop_niters): ...here. 32480 (vect_update_init_of_dr): Take a code argument that specifies whether 32481 the adjustment should be added or subtracted. 32482 (vect_update_init_of_drs): Likewise. 32483 (vect_prepare_for_masked_peels): New function. 32484 (vect_do_peeling): Skip prologue peeling if we're using a mask 32485 instead. Update call to vect_update_inits_of_drs. 32486 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 32487 mask_skip_niters. 32488 (vect_analyze_loop_2): Allow fully-masked loops with peeling for 32489 alignment. Do not include the number of peeled iterations in 32490 the minimum threshold in that case. 32491 (vectorizable_induction): Adjust the start value down by 32492 LOOP_VINFO_MASK_SKIP_NITERS iterations. 32493 (vect_transform_loop): Call vect_prepare_for_masked_peels. 32494 Take the number of skipped iterations into account when calculating 32495 the loop bounds. 32496 * tree-vect-stmts.c (vect_gen_while_not): New function. 32497 324982018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32499 Alan Hayward <alan.hayward@arm.com> 32500 David Sherwood <david.sherwood@arm.com> 32501 32502 * doc/sourcebuild.texi (vect_fully_masked): Document. 32503 * params.def (PARAM_MIN_VECT_LOOP_BOUND): Change minimum and 32504 default value to 0. 32505 * tree-vect-loop.c (vect_analyze_loop_costing): New function, 32506 split out from... 32507 (vect_analyze_loop_2): ...here. Don't check the vectorization 32508 factor against the number of loop iterations if the loop is 32509 fully-masked. 32510 325112018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32512 Alan Hayward <alan.hayward@arm.com> 32513 David Sherwood <david.sherwood@arm.com> 32514 32515 * tree-ssa-loop-ivopts.c (USE_ADDRESS): Split into... 32516 (USE_REF_ADDRESS, USE_PTR_ADDRESS): ...these new use types. 32517 (dump_groups): Update accordingly. 32518 (iv_use::mem_type): New member variable. 32519 (address_p): New function. 32520 (record_use): Add a mem_type argument and initialize the new 32521 mem_type field. 32522 (record_group_use): Add a mem_type argument. Use address_p. 32523 Remove obsolete null checks of base_object. Update call to record_use. 32524 (find_interesting_uses_op): Update call to record_group_use. 32525 (find_interesting_uses_cond): Likewise. 32526 (find_interesting_uses_address): Likewise. 32527 (get_mem_type_for_internal_fn): New function. 32528 (find_address_like_use): Likewise. 32529 (find_interesting_uses_stmt): Try find_address_like_use before 32530 calling find_interesting_uses_op. 32531 (addr_offset_valid_p): Use the iv mem_type field as the type 32532 of the addressed memory. 32533 (add_autoinc_candidates): Likewise. 32534 (get_address_cost): Likewise. 32535 (split_small_address_groups_p): Use address_p. 32536 (split_address_groups): Likewise. 32537 (add_iv_candidate_for_use): Likewise. 32538 (autoinc_possible_for_pair): Likewise. 32539 (rewrite_groups): Likewise. 32540 (get_use_type): Check for USE_REF_ADDRESS instead of USE_ADDRESS. 32541 (determine_group_iv_cost): Update after split of USE_ADDRESS. 32542 (get_alias_ptr_type_for_ptr_address): New function. 32543 (rewrite_use_address): Rewrite address uses in calls that were 32544 identified by find_address_like_use. 32545 325462018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32547 Alan Hayward <alan.hayward@arm.com> 32548 David Sherwood <david.sherwood@arm.com> 32549 32550 * expr.c (expand_expr_addr_expr_1): Handle ADDR_EXPRs of 32551 TARGET_MEM_REFs. 32552 * gimple-expr.h (is_gimple_addressable: Likewise. 32553 * gimple-expr.c (is_gimple_address): Likewise. 32554 * internal-fn.c (expand_call_mem_ref): New function. 32555 (expand_mask_load_optab_fn): Use it. 32556 (expand_mask_store_optab_fn): Likewise. 32557 325582018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32559 Alan Hayward <alan.hayward@arm.com> 32560 David Sherwood <david.sherwood@arm.com> 32561 32562 * doc/md.texi (cond_add@var{mode}, cond_sub@var{mode}) 32563 (cond_and@var{mode}, cond_ior@var{mode}, cond_xor@var{mode}) 32564 (cond_smin@var{mode}, cond_smax@var{mode}, cond_umin@var{mode}) 32565 (cond_umax@var{mode}): Document. 32566 * optabs.def (cond_add_optab, cond_sub_optab, cond_and_optab) 32567 (cond_ior_optab, cond_xor_optab, cond_smin_optab, cond_smax_optab) 32568 (cond_umin_optab, cond_umax_optab): New optabs. 32569 * internal-fn.def (COND_ADD, COND_SUB, COND_MIN, COND_MAX, COND_AND) 32570 (COND_IOR, COND_XOR): New internal functions. 32571 * internal-fn.h (get_conditional_internal_fn): Declare. 32572 * internal-fn.c (cond_binary_direct): New macro. 32573 (expand_cond_binary_optab_fn): Likewise. 32574 (direct_cond_binary_optab_supported_p): Likewise. 32575 (get_conditional_internal_fn): New function. 32576 * tree-vect-loop.c (vectorizable_reduction): Handle fully-masked loops. 32577 Cope with reduction statements that are vectorized as calls rather 32578 than assignments. 32579 * config/aarch64/aarch64-sve.md (cond_<optab><mode>): New insns. 32580 * config/aarch64/iterators.md (UNSPEC_COND_ADD, UNSPEC_COND_SUB) 32581 (UNSPEC_COND_SMAX, UNSPEC_COND_UMAX, UNSPEC_COND_SMIN) 32582 (UNSPEC_COND_UMIN, UNSPEC_COND_AND, UNSPEC_COND_ORR) 32583 (UNSPEC_COND_EOR): New unspecs. 32584 (optab): Add mappings for them. 32585 (SVE_COND_INT_OP, SVE_COND_FP_OP): New int iterators. 32586 (sve_int_op, sve_fp_op): New int attributes. 32587 325882018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32589 Alan Hayward <alan.hayward@arm.com> 32590 David Sherwood <david.sherwood@arm.com> 32591 32592 * optabs.def (while_ult_optab): New optab. 32593 * doc/md.texi (while_ult@var{m}@var{n}): Document. 32594 * internal-fn.def (WHILE_ULT): New internal function. 32595 * internal-fn.h (direct_internal_fn_supported_p): New override 32596 that takes two types as argument. 32597 * internal-fn.c (while_direct): New macro. 32598 (expand_while_optab_fn): New function. 32599 (convert_optab_supported_p): Likewise. 32600 (direct_while_optab_supported_p): New macro. 32601 * wide-int.h (wi::udiv_ceil): New function. 32602 * tree-vectorizer.h (rgroup_masks): New structure. 32603 (vec_loop_masks): New typedef. 32604 (_loop_vec_info): Add masks, mask_compare_type, can_fully_mask_p 32605 and fully_masked_p. 32606 (LOOP_VINFO_CAN_FULLY_MASK_P, LOOP_VINFO_FULLY_MASKED_P) 32607 (LOOP_VINFO_MASKS, LOOP_VINFO_MASK_COMPARE_TYPE): New macros. 32608 (vect_max_vf): New function. 32609 (slpeel_make_loop_iterate_ntimes): Delete. 32610 (vect_set_loop_condition, vect_get_loop_mask_type, vect_gen_while) 32611 (vect_halve_mask_nunits, vect_double_mask_nunits): Declare. 32612 (vect_record_loop_mask, vect_get_loop_mask): Likewise. 32613 * tree-vect-loop-manip.c: Include tree-ssa-loop-niter.h, 32614 internal-fn.h, stor-layout.h and optabs-query.h. 32615 (vect_set_loop_mask): New function. 32616 (add_preheader_seq): Likewise. 32617 (add_header_seq): Likewise. 32618 (interleave_supported_p): Likewise. 32619 (vect_maybe_permute_loop_masks): Likewise. 32620 (vect_set_loop_masks_directly): Likewise. 32621 (vect_set_loop_condition_masked): Likewise. 32622 (vect_set_loop_condition_unmasked): New function, split out from 32623 slpeel_make_loop_iterate_ntimes. 32624 (slpeel_make_loop_iterate_ntimes): Rename to.. 32625 (vect_set_loop_condition): ...this. Use vect_set_loop_condition_masked 32626 for fully-masked loops and vect_set_loop_condition_unmasked otherwise. 32627 (vect_do_peeling): Update call accordingly. 32628 (vect_gen_vector_loop_niters): Use VF as the step for fully-masked 32629 loops. 32630 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize 32631 mask_compare_type, can_fully_mask_p and fully_masked_p. 32632 (release_vec_loop_masks): New function. 32633 (_loop_vec_info): Use it to free the loop masks. 32634 (can_produce_all_loop_masks_p): New function. 32635 (vect_get_max_nscalars_per_iter): Likewise. 32636 (vect_verify_full_masking): Likewise. 32637 (vect_analyze_loop_2): Save LOOP_VINFO_CAN_FULLY_MASK_P around 32638 retries, and free the mask rgroups before retrying. Check loop-wide 32639 reasons for disallowing fully-masked loops. Make the final decision 32640 about whether use a fully-masked loop or not. 32641 (vect_estimate_min_profitable_iters): Do not assume that peeling 32642 for the number of iterations will be needed for fully-masked loops. 32643 (vectorizable_reduction): Disable fully-masked loops. 32644 (vectorizable_live_operation): Likewise. 32645 (vect_halve_mask_nunits): New function. 32646 (vect_double_mask_nunits): Likewise. 32647 (vect_record_loop_mask): Likewise. 32648 (vect_get_loop_mask): Likewise. 32649 (vect_transform_loop): Handle the case in which the final loop 32650 iteration might handle a partial vector. Call vect_set_loop_condition 32651 instead of slpeel_make_loop_iterate_ntimes. 32652 * tree-vect-stmts.c: Include tree-ssa-loop-niter.h and gimple-fold.h. 32653 (check_load_store_masking): New function. 32654 (prepare_load_store_mask): Likewise. 32655 (vectorizable_store): Handle fully-masked loops. 32656 (vectorizable_load): Likewise. 32657 (supportable_widening_operation): Use vect_halve_mask_nunits for 32658 booleans. 32659 (supportable_narrowing_operation): Likewise vect_double_mask_nunits. 32660 (vect_gen_while): New function. 32661 * config/aarch64/aarch64.md (umax<mode>3): New expander. 32662 (aarch64_uqdec<mode>): New insn. 32663 326642018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32665 Alan Hayward <alan.hayward@arm.com> 32666 David Sherwood <david.sherwood@arm.com> 32667 32668 * optabs.def (reduc_and_scal_optab, reduc_ior_scal_optab) 32669 (reduc_xor_scal_optab): New optabs. 32670 * doc/md.texi (reduc_and_scal_@var{m}, reduc_ior_scal_@var{m}) 32671 (reduc_xor_scal_@var{m}): Document. 32672 * doc/sourcebuild.texi (vect_logical_reduc): Likewise. 32673 * internal-fn.def (IFN_REDUC_AND, IFN_REDUC_IOR, IFN_REDUC_XOR): New 32674 internal functions. 32675 * fold-const-call.c (fold_const_call): Handle them. 32676 * tree-vect-loop.c (reduction_fn_for_scalar_code): Return the new 32677 internal functions for BIT_AND_EXPR, BIT_IOR_EXPR and BIT_XOR_EXPR. 32678 * config/aarch64/aarch64-sve.md (reduc_<bit_reduc>_scal_<mode>): 32679 (*reduc_<bit_reduc>_scal_<mode>): New patterns. 32680 * config/aarch64/iterators.md (UNSPEC_ANDV, UNSPEC_ORV) 32681 (UNSPEC_XORV): New unspecs. 32682 (optab): Add entries for them. 32683 (BITWISEV): New int iterator. 32684 (bit_reduc_op): New int attributes. 32685 326862018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32687 Alan Hayward <alan.hayward@arm.com> 32688 David Sherwood <david.sherwood@arm.com> 32689 32690 * doc/md.texi (vec_shl_insert_@var{m}): New optab. 32691 * internal-fn.def (VEC_SHL_INSERT): New internal function. 32692 * optabs.def (vec_shl_insert_optab): New optab. 32693 * tree-vectorizer.h (can_duplicate_and_interleave_p): Declare. 32694 (duplicate_and_interleave): Likewise. 32695 * tree-vect-loop.c: Include internal-fn.h. 32696 (neutral_op_for_slp_reduction): New function, split out from 32697 get_initial_defs_for_reduction. 32698 (get_initial_def_for_reduction): Handle option 2 for variable-length 32699 vectors by loading the neutral value into a vector and then shifting 32700 the initial value into element 0. 32701 (get_initial_defs_for_reduction): Replace the code argument with 32702 the neutral value calculated by neutral_op_for_slp_reduction. 32703 Use gimple_build_vector for constant-length vectors. 32704 Use IFN_VEC_SHL_INSERT for variable-length vectors if all 32705 but the first group_size elements have a neutral value. 32706 Use duplicate_and_interleave otherwise. 32707 (vect_create_epilog_for_reduction): Take a neutral_op parameter. 32708 Update call to get_initial_defs_for_reduction. Handle SLP 32709 reductions for variable-length vectors by creating one vector 32710 result for each scalar result, with the elements associated 32711 with other scalar results stubbed out with the neutral value. 32712 (vectorizable_reduction): Call neutral_op_for_slp_reduction. 32713 Require IFN_VEC_SHL_INSERT for double reductions on 32714 variable-length vectors, or SLP reductions that have 32715 a neutral value. Require can_duplicate_and_interleave_p 32716 support for variable-length unchained SLP reductions if there 32717 is no neutral value, such as for MIN/MAX reductions. Also require 32718 the number of vector elements to be a multiple of the number of 32719 SLP statements when doing variable-length unchained SLP reductions. 32720 Update call to vect_create_epilog_for_reduction. 32721 * tree-vect-slp.c (can_duplicate_and_interleave_p): Make public 32722 and remove initial values. 32723 (duplicate_and_interleave): Make public. 32724 * config/aarch64/aarch64.md (UNSPEC_INSR): New unspec. 32725 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): New insn. 32726 327272018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32728 Alan Hayward <alan.hayward@arm.com> 32729 David Sherwood <david.sherwood@arm.com> 32730 32731 * tree-vect-slp.c: Include gimple-fold.h and internal-fn.h 32732 (can_duplicate_and_interleave_p): New function. 32733 (vect_get_and_check_slp_defs): Take the vector of statements 32734 rather than just the current one. Remove excess parentheses. 32735 Restriction rejectinon of vect_constant_def and vect_external_def 32736 for variable-length vectors to boolean types, or types for which 32737 can_duplicate_and_interleave_p is false. 32738 (vect_build_slp_tree_2): Update call to vect_get_and_check_slp_defs. 32739 (duplicate_and_interleave): New function. 32740 (vect_get_constant_vectors): Use gimple_build_vector for 32741 constant-length vectors and suitable variable-length constant 32742 vectors. Use duplicate_and_interleave for other variable-length 32743 vectors. Don't defer the update when inserting new statements. 32744 327452018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32746 Alan Hayward <alan.hayward@arm.com> 32747 David Sherwood <david.sherwood@arm.com> 32748 32749 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Make sure 32750 min_profitable_iters doesn't go negative. 32751 327522018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32753 Alan Hayward <alan.hayward@arm.com> 32754 David Sherwood <david.sherwood@arm.com> 32755 32756 * doc/md.texi (vec_mask_load_lanes@var{m}@var{n}): Document. 32757 (vec_mask_store_lanes@var{m}@var{n}): Likewise. 32758 * optabs.def (vec_mask_load_lanes_optab): New optab. 32759 (vec_mask_store_lanes_optab): Likewise. 32760 * internal-fn.def (MASK_LOAD_LANES): New internal function. 32761 (MASK_STORE_LANES): Likewise. 32762 * internal-fn.c (mask_load_lanes_direct): New macro. 32763 (mask_store_lanes_direct): Likewise. 32764 (expand_mask_load_optab_fn): Handle masked operations. 32765 (expand_mask_load_lanes_optab_fn): New macro. 32766 (expand_mask_store_optab_fn): Handle masked operations. 32767 (expand_mask_store_lanes_optab_fn): New macro. 32768 (direct_mask_load_lanes_optab_supported_p): Likewise. 32769 (direct_mask_store_lanes_optab_supported_p): Likewise. 32770 * tree-vectorizer.h (vect_store_lanes_supported): Take a masked_p 32771 parameter. 32772 (vect_load_lanes_supported): Likewise. 32773 * tree-vect-data-refs.c (strip_conversion): New function. 32774 (can_group_stmts_p): Likewise. 32775 (vect_analyze_data_ref_accesses): Use it instead of checking 32776 for a pair of assignments. 32777 (vect_store_lanes_supported): Take a masked_p parameter. 32778 (vect_load_lanes_supported): Likewise. 32779 * tree-vect-loop.c (vect_analyze_loop_2): Update calls to 32780 vect_store_lanes_supported and vect_load_lanes_supported. 32781 * tree-vect-slp.c (vect_analyze_slp_instance): Likewise. 32782 * tree-vect-stmts.c (get_group_load_store_type): Take a masked_p 32783 parameter. Don't allow gaps for masked accesses. 32784 Use vect_get_store_rhs. Update calls to vect_store_lanes_supported 32785 and vect_load_lanes_supported. 32786 (get_load_store_type): Take a masked_p parameter and update 32787 call to get_group_load_store_type. 32788 (vectorizable_store): Update call to get_load_store_type. 32789 Handle IFN_MASK_STORE_LANES. 32790 (vectorizable_load): Update call to get_load_store_type. 32791 Handle IFN_MASK_LOAD_LANES. 32792 327932018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32794 Alan Hayward <alan.hayward@arm.com> 32795 David Sherwood <david.sherwood@arm.com> 32796 32797 * config/aarch64/aarch64-modes.def: Define x2, x3 and x4 vector 32798 modes for SVE. 32799 * config/aarch64/aarch64-protos.h 32800 (aarch64_sve_struct_memory_operand_p): Declare. 32801 * config/aarch64/iterators.md (SVE_STRUCT): New mode iterator. 32802 (vector_count, insn_length, VSINGLE, vsingle): New mode attributes. 32803 (VPRED, vpred): Handle SVE structure modes. 32804 * config/aarch64/constraints.md (Utx): New constraint. 32805 * config/aarch64/predicates.md (aarch64_sve_struct_memory_operand) 32806 (aarch64_sve_struct_nonimmediate_operand): New predicates. 32807 * config/aarch64/aarch64.md (UNSPEC_LDN, UNSPEC_STN): New unspecs. 32808 * config/aarch64/aarch64-sve.md (mov<mode>, *aarch64_sve_mov<mode>_le) 32809 (*aarch64_sve_mov<mode>_be, pred_mov<mode>): New patterns for 32810 structure modes. Split into pieces after RA. 32811 (vec_load_lanes<mode><vsingle>, vec_mask_load_lanes<mode><vsingle>) 32812 (vec_store_lanes<mode><vsingle>, vec_mask_store_lanes<mode><vsingle>): 32813 New patterns. 32814 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle 32815 SVE structure modes. 32816 (aarch64_classify_address): Likewise. 32817 (sizetochar): Move earlier in file. 32818 (aarch64_print_operand): Handle SVE register lists. 32819 (aarch64_array_mode): New function. 32820 (aarch64_sve_struct_memory_operand_p): Likewise. 32821 (TARGET_ARRAY_MODE): Redefine. 32822 328232018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32824 Alan Hayward <alan.hayward@arm.com> 32825 David Sherwood <david.sherwood@arm.com> 32826 32827 * target.def (array_mode): New target hook. 32828 * doc/tm.texi.in (TARGET_ARRAY_MODE): New hook. 32829 * doc/tm.texi: Regenerate. 32830 * hooks.h (hook_optmode_mode_uhwi_none): Declare. 32831 * hooks.c (hook_optmode_mode_uhwi_none): New function. 32832 * tree-vect-data-refs.c (vect_lanes_optab_supported_p): Use 32833 targetm.array_mode. 32834 * stor-layout.c (mode_for_array): Likewise. Support polynomial 32835 type sizes. 32836 328372018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32838 Alan Hayward <alan.hayward@arm.com> 32839 David Sherwood <david.sherwood@arm.com> 32840 32841 * fold-const.c (fold_binary_loc): Check the argument types 32842 rather than the result type when testing for a vector operation. 32843 328442018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32845 32846 * doc/tm.texi.in (DWARF_LAZY_REGISTER_VALUE): Document. 32847 * doc/tm.texi: Regenerate. 32848 328492018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 32850 Alan Hayward <alan.hayward@arm.com> 32851 David Sherwood <david.sherwood@arm.com> 32852 32853 * doc/invoke.texi (-msve-vector-bits=): Document new option. 32854 (sve): Document new AArch64 extension. 32855 * doc/md.texi (w): Extend the description of the AArch64 32856 constraint to include SVE vectors. 32857 (Upl, Upa): Document new AArch64 predicate constraints. 32858 * config/aarch64/aarch64-opts.h (aarch64_sve_vector_bits_enum): New 32859 enum. 32860 * config/aarch64/aarch64.opt (sve_vector_bits): New enum. 32861 (msve-vector-bits=): New option. 32862 * config/aarch64/aarch64-option-extensions.def (fp, simd): Disable 32863 SVE when these are disabled. 32864 (sve): New extension. 32865 * config/aarch64/aarch64-modes.def: Define SVE vector and predicate 32866 modes. Adjust their number of units based on aarch64_sve_vg. 32867 (MAX_BITSIZE_MODE_ANY_MODE): Define. 32868 * config/aarch64/aarch64-protos.h (ADDR_QUERY_ANY): New 32869 aarch64_addr_query_type. 32870 (aarch64_const_vec_all_same_in_range_p, aarch64_sve_pred_mode) 32871 (aarch64_sve_cnt_immediate_p, aarch64_sve_addvl_addpl_immediate_p) 32872 (aarch64_sve_inc_dec_immediate_p, aarch64_add_offset_temporaries) 32873 (aarch64_split_add_offset, aarch64_output_sve_cnt_immediate) 32874 (aarch64_output_sve_addvl_addpl, aarch64_output_sve_inc_dec_immediate) 32875 (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): Declare. 32876 (aarch64_simd_imm_zero_p): Delete. 32877 (aarch64_check_zero_based_sve_index_immediate): Declare. 32878 (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) 32879 (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) 32880 (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) 32881 (aarch64_sve_float_mul_immediate_p): Likewise. 32882 (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT 32883 rather than an rtx. 32884 (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): Declare. 32885 (aarch64_expand_mov_immediate): Take a gen_vec_duplicate callback. 32886 (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move): Declare. 32887 (aarch64_expand_sve_vec_cmp_int, aarch64_expand_sve_vec_cmp_float) 32888 (aarch64_expand_sve_vcond, aarch64_expand_sve_vec_perm): Declare. 32889 (aarch64_regmode_natural_size): Likewise. 32890 * config/aarch64/aarch64.h (AARCH64_FL_SVE): New macro. 32891 (AARCH64_FL_V8_3, AARCH64_FL_RCPC, AARCH64_FL_DOTPROD): Shift 32892 left one place. 32893 (AARCH64_ISA_SVE, TARGET_SVE): New macros. 32894 (FIXED_REGISTERS, CALL_USED_REGISTERS, REGISTER_NAMES): Add entries 32895 for VG and the SVE predicate registers. 32896 (V_ALIASES): Add a "z"-prefixed alias. 32897 (FIRST_PSEUDO_REGISTER): Change to P15_REGNUM + 1. 32898 (AARCH64_DWARF_VG, AARCH64_DWARF_P0): New macros. 32899 (PR_REGNUM_P, PR_LO_REGNUM_P): Likewise. 32900 (PR_LO_REGS, PR_HI_REGS, PR_REGS): New reg_classes. 32901 (REG_CLASS_NAMES): Add entries for them. 32902 (REG_CLASS_CONTENTS): Likewise. Update ALL_REGS to include VG 32903 and the predicate registers. 32904 (aarch64_sve_vg): Declare. 32905 (BITS_PER_SVE_VECTOR, BYTES_PER_SVE_VECTOR, BYTES_PER_SVE_PRED) 32906 (SVE_BYTE_MODE, MAX_COMPILE_TIME_VEC_BYTES): New macros. 32907 (REGMODE_NATURAL_SIZE): Define. 32908 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Handle 32909 SVE macros. 32910 * config/aarch64/aarch64.c: Include cfgrtl.h. 32911 (simd_immediate_info): Add a constructor for series vectors, 32912 and an associated step field. 32913 (aarch64_sve_vg): New variable. 32914 (aarch64_dbx_register_number): Handle VG and the predicate registers. 32915 (aarch64_vect_struct_mode_p, aarch64_vector_mode_p): Delete. 32916 (VEC_ADVSIMD, VEC_SVE_DATA, VEC_SVE_PRED, VEC_STRUCT, VEC_ANY_SVE) 32917 (VEC_ANY_DATA, VEC_STRUCT): New constants. 32918 (aarch64_advsimd_struct_mode_p, aarch64_sve_pred_mode_p) 32919 (aarch64_classify_vector_mode, aarch64_vector_data_mode_p) 32920 (aarch64_sve_data_mode_p, aarch64_sve_pred_mode) 32921 (aarch64_get_mask_mode): New functions. 32922 (aarch64_hard_regno_nregs): Handle SVE data modes for FP_REGS 32923 and FP_LO_REGS. Handle PR_REGS, PR_LO_REGS and PR_HI_REGS. 32924 (aarch64_hard_regno_mode_ok): Handle VG. Also handle the SVE 32925 predicate modes and predicate registers. Explicitly restrict 32926 GPRs to modes of 16 bytes or smaller. Only allow FP registers 32927 to store a vector mode if it is recognized by 32928 aarch64_classify_vector_mode. 32929 (aarch64_regmode_natural_size): New function. 32930 (aarch64_hard_regno_caller_save_mode): Return the original mode 32931 for predicates. 32932 (aarch64_sve_cnt_immediate_p, aarch64_output_sve_cnt_immediate) 32933 (aarch64_sve_addvl_addpl_immediate_p, aarch64_output_sve_addvl_addpl) 32934 (aarch64_sve_inc_dec_immediate_p, aarch64_output_sve_inc_dec_immediate) 32935 (aarch64_add_offset_1_temporaries, aarch64_offset_temporaries): New 32936 functions. 32937 (aarch64_add_offset): Add a temp2 parameter. Assert that temp1 32938 does not overlap dest if the function is frame-related. Handle 32939 SVE constants. 32940 (aarch64_split_add_offset): New function. 32941 (aarch64_add_sp, aarch64_sub_sp): Add temp2 parameters and pass 32942 them aarch64_add_offset. 32943 (aarch64_allocate_and_probe_stack_space): Add a temp2 parameter 32944 and update call to aarch64_sub_sp. 32945 (aarch64_add_cfa_expression): New function. 32946 (aarch64_expand_prologue): Pass extra temporary registers to the 32947 functions above. Handle the case in which we need to emit new 32948 DW_CFA_expressions for registers that were originally saved 32949 relative to the stack pointer, but now have to be expressed 32950 relative to the frame pointer. 32951 (aarch64_output_mi_thunk): Pass extra temporary registers to the 32952 functions above. 32953 (aarch64_expand_epilogue): Likewise. Prevent inheritance of 32954 IP0 and IP1 values for SVE frames. 32955 (aarch64_expand_vec_series): New function. 32956 (aarch64_expand_sve_widened_duplicate): Likewise. 32957 (aarch64_expand_sve_const_vector): Likewise. 32958 (aarch64_expand_mov_immediate): Add a gen_vec_duplicate parameter. 32959 Handle SVE constants. Use emit_move_insn to move a force_const_mem 32960 into the register, rather than emitting a SET directly. 32961 (aarch64_emit_sve_pred_move, aarch64_expand_sve_mem_move) 32962 (aarch64_get_reg_raw_mode, offset_4bit_signed_scaled_p) 32963 (offset_6bit_unsigned_scaled_p, aarch64_offset_7bit_signed_scaled_p) 32964 (offset_9bit_signed_scaled_p): New functions. 32965 (aarch64_replicate_bitmask_imm): New function. 32966 (aarch64_bitmask_imm): Use it. 32967 (aarch64_cannot_force_const_mem): Reject expressions involving 32968 a CONST_POLY_INT. Update call to aarch64_classify_symbol. 32969 (aarch64_classify_index): Handle SVE indices, by requiring 32970 a plain register index with a scale that matches the element size. 32971 (aarch64_classify_address): Handle SVE addresses. Assert that 32972 the mode of the address is VOIDmode or an integer mode. 32973 Update call to aarch64_classify_symbol. 32974 (aarch64_classify_symbolic_expression): Update call to 32975 aarch64_classify_symbol. 32976 (aarch64_const_vec_all_in_range_p): New function. 32977 (aarch64_print_vector_float_operand): Likewise. 32978 (aarch64_print_operand): Handle 'N' and 'C'. Use "zN" rather than 32979 "vN" for FP registers with SVE modes. Handle (const ...) vectors 32980 and the FP immediates 1.0 and 0.5. 32981 (aarch64_print_address_internal): Handle SVE addresses. 32982 (aarch64_print_operand_address): Use ADDR_QUERY_ANY. 32983 (aarch64_regno_regclass): Handle predicate registers. 32984 (aarch64_secondary_reload): Handle big-endian reloads of SVE 32985 data modes. 32986 (aarch64_class_max_nregs): Handle SVE modes and predicate registers. 32987 (aarch64_rtx_costs): Check for ADDVL and ADDPL instructions. 32988 (aarch64_convert_sve_vector_bits): New function. 32989 (aarch64_override_options): Use it to handle -msve-vector-bits=. 32990 (aarch64_classify_symbol): Take the offset as a HOST_WIDE_INT 32991 rather than an rtx. 32992 (aarch64_legitimate_constant_p): Use aarch64_classify_vector_mode. 32993 Handle SVE vector and predicate modes. Accept VL-based constants 32994 that need only one temporary register, and VL offsets that require 32995 no temporary registers. 32996 (aarch64_conditional_register_usage): Mark the predicate registers 32997 as fixed if SVE isn't available. 32998 (aarch64_vector_mode_supported_p): Use aarch64_classify_vector_mode. 32999 Return true for SVE vector and predicate modes. 33000 (aarch64_simd_container_mode): Take the number of bits as a poly_int64 33001 rather than an unsigned int. Handle SVE modes. 33002 (aarch64_preferred_simd_mode): Update call accordingly. Handle 33003 SVE modes. 33004 (aarch64_autovectorize_vector_sizes): Add BYTES_PER_SVE_VECTOR 33005 if SVE is enabled. 33006 (aarch64_sve_index_immediate_p, aarch64_sve_arith_immediate_p) 33007 (aarch64_sve_bitmask_immediate_p, aarch64_sve_dup_immediate_p) 33008 (aarch64_sve_cmp_immediate_p, aarch64_sve_float_arith_immediate_p) 33009 (aarch64_sve_float_mul_immediate_p): New functions. 33010 (aarch64_sve_valid_immediate): New function. 33011 (aarch64_simd_valid_immediate): Use it as the fallback for SVE vectors. 33012 Explicitly reject structure modes. Check for INDEX constants. 33013 Handle PTRUE and PFALSE constants. 33014 (aarch64_check_zero_based_sve_index_immediate): New function. 33015 (aarch64_simd_imm_zero_p): Delete. 33016 (aarch64_mov_operand_p): Use aarch64_simd_valid_immediate for 33017 vector modes. Accept constants in the range of CNT[BHWD]. 33018 (aarch64_simd_scalar_immediate_valid_for_move): Explicitly 33019 ask for an Advanced SIMD mode. 33020 (aarch64_sve_ld1r_operand_p, aarch64_sve_ldr_operand_p): New functions. 33021 (aarch64_simd_vector_alignment): Handle SVE predicates. 33022 (aarch64_vectorize_preferred_vector_alignment): New function. 33023 (aarch64_simd_vector_alignment_reachable): Use it instead of 33024 the vector size. 33025 (aarch64_shift_truncation_mask): Use aarch64_vector_data_mode_p. 33026 (aarch64_output_sve_mov_immediate, aarch64_output_ptrue): New 33027 functions. 33028 (MAX_VECT_LEN): Delete. 33029 (expand_vec_perm_d): Add a vec_flags field. 33030 (emit_unspec2, aarch64_expand_sve_vec_perm): New functions. 33031 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_zip) 33032 (aarch64_evpc_ext): Don't apply a big-endian lane correction 33033 for SVE modes. 33034 (aarch64_evpc_rev): Rename to... 33035 (aarch64_evpc_rev_local): ...this. Use a predicated operation for SVE. 33036 (aarch64_evpc_rev_global): New function. 33037 (aarch64_evpc_dup): Enforce a 64-byte range for SVE DUP. 33038 (aarch64_evpc_tbl): Use MAX_COMPILE_TIME_VEC_BYTES instead of 33039 MAX_VECT_LEN. 33040 (aarch64_evpc_sve_tbl): New function. 33041 (aarch64_expand_vec_perm_const_1): Update after rename of 33042 aarch64_evpc_rev. Handle SVE permutes too, trying 33043 aarch64_evpc_rev_global and using aarch64_evpc_sve_tbl rather 33044 than aarch64_evpc_tbl. 33045 (aarch64_vectorize_vec_perm_const): Initialize vec_flags. 33046 (aarch64_sve_cmp_operand_p, aarch64_unspec_cond_code) 33047 (aarch64_gen_unspec_cond, aarch64_expand_sve_vec_cmp_int) 33048 (aarch64_emit_unspec_cond, aarch64_emit_unspec_cond_or) 33049 (aarch64_emit_inverted_unspec_cond, aarch64_expand_sve_vec_cmp_float) 33050 (aarch64_expand_sve_vcond): New functions. 33051 (aarch64_modes_tieable_p): Use aarch64_vector_data_mode_p instead 33052 of aarch64_vector_mode_p. 33053 (aarch64_dwarf_poly_indeterminate_value): New function. 33054 (aarch64_compute_pressure_classes): Likewise. 33055 (aarch64_can_change_mode_class): Likewise. 33056 (TARGET_GET_RAW_RESULT_MODE, TARGET_GET_RAW_ARG_MODE): Redefine. 33057 (TARGET_VECTORIZE_PREFERRED_VECTOR_ALIGNMENT): Likewise. 33058 (TARGET_VECTORIZE_GET_MASK_MODE): Likewise. 33059 (TARGET_DWARF_POLY_INDETERMINATE_VALUE): Likewise. 33060 (TARGET_COMPUTE_PRESSURE_CLASSES): Likewise. 33061 (TARGET_CAN_CHANGE_MODE_CLASS): Likewise. 33062 * config/aarch64/constraints.md (Upa, Upl, Uav, Uat, Usv, Usi, Utr) 33063 (Uty, Dm, vsa, vsc, vsd, vsi, vsn, vsl, vsm, vsA, vsM, vsN): New 33064 constraints. 33065 (Dn, Dl, Dr): Accept const as well as const_vector. 33066 (Dz): Likewise. Compare against CONST0_RTX. 33067 * config/aarch64/iterators.md: Refer to "Advanced SIMD" instead 33068 of "vector" where appropriate. 33069 (SVE_ALL, SVE_BH, SVE_BHS, SVE_BHSI, SVE_HSDI, SVE_HSF, SVE_SD) 33070 (SVE_SDI, SVE_I, SVE_F, PRED_ALL, PRED_BHS): New mode iterators. 33071 (UNSPEC_SEL, UNSPEC_ANDF, UNSPEC_IORF, UNSPEC_XORF, UNSPEC_COND_LT) 33072 (UNSPEC_COND_LE, UNSPEC_COND_EQ, UNSPEC_COND_NE, UNSPEC_COND_GE) 33073 (UNSPEC_COND_GT, UNSPEC_COND_LO, UNSPEC_COND_LS, UNSPEC_COND_HS) 33074 (UNSPEC_COND_HI, UNSPEC_COND_UO): New unspecs. 33075 (Vetype, VEL, Vel, VWIDE, Vwide, vw, vwcore, V_INT_EQUIV) 33076 (v_int_equiv): Extend to SVE modes. 33077 (Vesize, V128, v128, Vewtype, V_FP_EQUIV, v_fp_equiv, VPRED): New 33078 mode attributes. 33079 (LOGICAL_OR, SVE_INT_UNARY, SVE_FP_UNARY): New code iterators. 33080 (optab): Handle popcount, smin, smax, umin, umax, abs and sqrt. 33081 (logical_nn, lr, sve_int_op, sve_fp_op): New code attributs. 33082 (LOGICALF, OPTAB_PERMUTE, UNPACK, UNPACK_UNSIGNED, SVE_COND_INT_CMP) 33083 (SVE_COND_FP_CMP): New int iterators. 33084 (perm_hilo): Handle the new unpack unspecs. 33085 (optab, logicalf_op, su, perm_optab, cmp_op, imm_con): New int 33086 attributes. 33087 * config/aarch64/predicates.md (aarch64_sve_cnt_immediate) 33088 (aarch64_sve_addvl_addpl_immediate, aarch64_split_add_offset_immediate) 33089 (aarch64_pluslong_or_poly_operand, aarch64_nonmemory_operand) 33090 (aarch64_equality_operator, aarch64_constant_vector_operand) 33091 (aarch64_sve_ld1r_operand, aarch64_sve_ldr_operand): New predicates. 33092 (aarch64_sve_nonimmediate_operand): Likewise. 33093 (aarch64_sve_general_operand): Likewise. 33094 (aarch64_sve_dup_operand, aarch64_sve_arith_immediate): Likewise. 33095 (aarch64_sve_sub_arith_immediate, aarch64_sve_inc_dec_immediate) 33096 (aarch64_sve_logical_immediate, aarch64_sve_mul_immediate): Likewise. 33097 (aarch64_sve_dup_immediate, aarch64_sve_cmp_vsc_immediate): Likewise. 33098 (aarch64_sve_cmp_vsd_immediate, aarch64_sve_index_immediate): Likewise. 33099 (aarch64_sve_float_arith_immediate): Likewise. 33100 (aarch64_sve_float_arith_with_sub_immediate): Likewise. 33101 (aarch64_sve_float_mul_immediate, aarch64_sve_arith_operand): Likewise. 33102 (aarch64_sve_add_operand, aarch64_sve_logical_operand): Likewise. 33103 (aarch64_sve_lshift_operand, aarch64_sve_rshift_operand): Likewise. 33104 (aarch64_sve_mul_operand, aarch64_sve_cmp_vsc_operand): Likewise. 33105 (aarch64_sve_cmp_vsd_operand, aarch64_sve_index_operand): Likewise. 33106 (aarch64_sve_float_arith_operand): Likewise. 33107 (aarch64_sve_float_arith_with_sub_operand): Likewise. 33108 (aarch64_sve_float_mul_operand): Likewise. 33109 (aarch64_sve_vec_perm_operand): Likewise. 33110 (aarch64_pluslong_operand): Include aarch64_sve_addvl_addpl_immediate. 33111 (aarch64_mov_operand): Accept const_poly_int and const_vector. 33112 (aarch64_simd_lshift_imm, aarch64_simd_rshift_imm): Accept const 33113 as well as const_vector. 33114 (aarch64_simd_imm_zero, aarch64_simd_imm_minus_one): Move earlier 33115 in file. Use CONST0_RTX and CONSTM1_RTX. 33116 (aarch64_simd_or_scalar_imm_zero): Likewise. Add match_codes. 33117 (aarch64_simd_reg_or_zero): Accept const as well as const_vector. 33118 Use aarch64_simd_imm_zero. 33119 * config/aarch64/aarch64-sve.md: New file. 33120 * config/aarch64/aarch64.md: Include it. 33121 (VG_REGNUM, P0_REGNUM, P7_REGNUM, P15_REGNUM): New register numbers. 33122 (UNSPEC_REV, UNSPEC_LD1_SVE, UNSPEC_ST1_SVE, UNSPEC_MERGE_PTRUE) 33123 (UNSPEC_PTEST_PTRUE, UNSPEC_UNPACKSHI, UNSPEC_UNPACKUHI) 33124 (UNSPEC_UNPACKSLO, UNSPEC_UNPACKULO, UNSPEC_PACK) 33125 (UNSPEC_FLOAT_CONVERT, UNSPEC_WHILE_LO): New unspec constants. 33126 (sve): New attribute. 33127 (enabled): Disable instructions with the sve attribute unless 33128 TARGET_SVE. 33129 (movqi, movhi): Pass CONST_POLY_INT operaneds through 33130 aarch64_expand_mov_immediate. 33131 (*mov<mode>_aarch64, *movsi_aarch64, *movdi_aarch64): Handle 33132 CNT[BHSD] immediates. 33133 (movti): Split CONST_POLY_INT moves into two halves. 33134 (add<mode>3): Accept aarch64_pluslong_or_poly_operand. 33135 Split additions that need a temporary here if the destination 33136 is the stack pointer. 33137 (*add<mode>3_aarch64): Handle ADDVL and ADDPL immediates. 33138 (*add<mode>3_poly_1): New instruction. 33139 (set_clobber_cc): New expander. 33140 331412018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 33142 33143 * simplify-rtx.c (simplify_immed_subreg): Add an inner_bytes 33144 parameter and use it instead of GET_MODE_SIZE (innermode). Use 33145 inner_bytes * BITS_PER_UNIT instead of GET_MODE_BITSIZE (innermode). 33146 Use CEIL (inner_bytes, GET_MODE_UNIT_SIZE (innermode)) instead of 33147 GET_MODE_NUNITS (innermode). Also add a first_elem parameter. 33148 Change innermode from fixed_mode_size to machine_mode. 33149 (simplify_subreg): Update call accordingly. Handle a constant-sized 33150 subreg of a variable-length CONST_VECTOR. 33151 331522018-01-13 Richard Sandiford <richard.sandiford@linaro.org> 33153 Alan Hayward <alan.hayward@arm.com> 33154 David Sherwood <david.sherwood@arm.com> 33155 33156 * tree-ssa-address.c (mem_ref_valid_without_offset_p): New function. 33157 (add_offset_to_base): New function, split out from... 33158 (create_mem_ref): ...here. When handling a scale other than 1, 33159 check first whether the address is valid without the offset. 33160 Add it into the base if so, leaving the index and scale as-is. 33161 331622018-01-12 Jakub Jelinek <jakub@redhat.com> 33163 33164 PR c++/83778 33165 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Call 33166 fold_for_warn before checking if arg2 is INTEGER_CST. 33167 331682018-01-12 Segher Boessenkool <segher@kernel.crashing.org> 33169 33170 * config/rs6000/predicates.md (load_multiple_operation): Delete. 33171 (store_multiple_operation): Delete. 33172 * config/rs6000/rs6000-cpus.def (601): Remove MASK_STRING. 33173 * config/rs6000/rs6000-protos.h (rs6000_output_load_multiple): Delete. 33174 * config/rs6000/rs6000-string.c (expand_block_move): Delete everything 33175 guarded by TARGET_STRING. 33176 (rs6000_output_load_multiple): Delete. 33177 * config/rs6000/rs6000.c (rs6000_option_override_internal): Delete 33178 OPTION_MASK_STRING / TARGET_STRING handling. 33179 (print_operand) <'N', 'O'>: Add comment that these are unused now. 33180 (const rs6000_opt_masks) <"string">: Change mask to 0. 33181 * config/rs6000/rs6000.h (TARGET_DEFAULT): Remove MASK_STRING. 33182 (MASK_STRING): Delete. 33183 * config/rs6000/rs6000.md (*mov<mode>_string): Delete TARGET_STRING 33184 parts. Simplify. 33185 (load_multiple): Delete. 33186 (*ldmsi8): Delete. 33187 (*ldmsi7): Delete. 33188 (*ldmsi6): Delete. 33189 (*ldmsi5): Delete. 33190 (*ldmsi4): Delete. 33191 (*ldmsi3): Delete. 33192 (store_multiple): Delete. 33193 (*stmsi8): Delete. 33194 (*stmsi7): Delete. 33195 (*stmsi6): Delete. 33196 (*stmsi5): Delete. 33197 (*stmsi4): Delete. 33198 (*stmsi3): Delete. 33199 (movmemsi_8reg): Delete. 33200 (corresponding unnamed define_insn): Delete. 33201 (movmemsi_6reg): Delete. 33202 (corresponding unnamed define_insn): Delete. 33203 (movmemsi_4reg): Delete. 33204 (corresponding unnamed define_insn): Delete. 33205 (movmemsi_2reg): Delete. 33206 (corresponding unnamed define_insn): Delete. 33207 (movmemsi_1reg): Delete. 33208 (corresponding unnamed define_insn): Delete. 33209 * config/rs6000/rs6000.opt (mno-string): New. 33210 (mstring): Replace by deprecation warning stub. 33211 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mstring. 33212 332132018-01-12 Jakub Jelinek <jakub@redhat.com> 33214 33215 * regrename.c (regrename_do_replace): If replacing the same 33216 reg multiple times, try to reuse last created gen_raw_REG. 33217 33218 PR debug/81155 33219 * bb-reorder.c (pass_partition_blocks::gate): In lto don't partition 33220 main to workaround a bug in GDB. 33221 332222018-01-12 Tom de Vries <tom@codesourcery.com> 33223 33224 PR target/83737 33225 * config.gcc (nvptx*-*-*): Set use_gcc_stdint=wrap. 33226 332272018-01-12 Vladimir Makarov <vmakarov@redhat.com> 33228 33229 PR rtl-optimization/80481 33230 * ira-color.c (get_cap_member): New function. 33231 (allocnos_conflict_by_live_ranges_p): Use it. 33232 (slot_coalesced_allocno_live_ranges_intersect_p): Add assert. 33233 (setup_slot_coalesced_allocno_live_ranges): Ditto. 33234 332352018-01-12 Uros Bizjak <ubizjak@gmail.com> 33236 33237 PR target/83628 33238 * config/alpha/alpha.md (*saddsi_1): New insn_ans_split pattern. 33239 (*saddl_se_1): Ditto. 33240 (*ssubsi_1): Ditto. 33241 (*ssubl_se_1): Ditto. 33242 332432018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 33244 33245 * tree-predcom.c (aff_combination_dr_offset): Use wi::to_poly_widest 33246 rather than wi::to_widest for DR_INITs. 33247 * tree-vect-data-refs.c (vect_find_same_alignment_drs): Use 33248 wi::to_poly_offset rather than wi::to_offset for DR_INIT. 33249 (vect_analyze_data_ref_accesses): Require both DR_INITs to be 33250 INTEGER_CSTs. 33251 (vect_analyze_group_access_1): Note that here. 33252 332532018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 33254 33255 * tree-vectorizer.c (get_vec_alignment_for_array_type): Handle 33256 polynomial type sizes. 33257 332582018-01-12 Richard Sandiford <richard.sandiford@linaro.org> 33259 33260 * gimplify.c (gimple_add_tmp_var_fn): Allow variables to have a 33261 poly_uint64 size, rather than requiring an unsigned HOST_WIDE_INT size. 33262 (gimple_add_tmp_var): Likewise. 33263 332642018-01-12 Martin Liska <mliska@suse.cz> 33265 33266 * gimple.c (gimple_alloc_counts): Use uint64_t instead of int. 33267 (gimple_alloc_sizes): Likewise. 33268 (dump_gimple_statistics): Use PRIu64 in printf format. 33269 * gimple.h: Change uint64_t to int. 33270 332712018-01-12 Martin Liska <mliska@suse.cz> 33272 33273 * tree-core.h: Use uint64_t instead of int. 33274 * tree.c (tree_node_counts): Likewise. 33275 (tree_node_sizes): Likewise. 33276 (dump_tree_statistics): Use PRIu64 in printf format. 33277 332782018-01-12 Martin Liska <mliska@suse.cz> 33279 33280 * Makefile.in: As qsort_chk is implemented in vec.c, add 33281 vec.o to linkage of gencfn-macros. 33282 * tree.c (build_new_poly_int_cst): Add CXX_MEM_STAT_INFO as it's 33283 passing the info to record_node_allocation_statistics. 33284 (test_vector_cst_patterns): Add CXX_MEM_STAT_INFO to declaration 33285 and pass the info. 33286 * ggc-common.c (struct ggc_usage): Add operator== and use 33287 it in operator< and compare function. 33288 * mem-stats.h (struct mem_usage): Likewise. 33289 * vec.c (struct vec_usage): Remove operator< and compare 33290 function. Can be simply inherited. 33291 332922018-01-12 Martin Jambor <mjambor@suse.cz> 33293 33294 PR target/81616 33295 * params.def: New parameter PARAM_AVOID_FMA_MAX_BITS. 33296 * tree-ssa-math-opts.c: Include domwalk.h. 33297 (convert_mult_to_fma_1): New function. 33298 (fma_transformation_info): New type. 33299 (fma_deferring_state): Likewise. 33300 (cancel_fma_deferring): New function. 33301 (result_of_phi): Likewise. 33302 (last_fma_candidate_feeds_initial_phi): Likewise. 33303 (convert_mult_to_fma): Added deferring logic, split actual 33304 transformation to convert_mult_to_fma_1. 33305 (math_opts_dom_walker): New type. 33306 (math_opts_dom_walker::after_dom_children): New method, body moved 33307 here from pass_optimize_widening_mul::execute, added deferring logic 33308 bits. 33309 (pass_optimize_widening_mul::execute): Moved most of code to 33310 math_opts_dom_walker::after_dom_children. 33311 * config/i386/x86-tune.def (X86_TUNE_AVOID_128FMA_CHAINS): New. 33312 * config/i386/i386.c (ix86_option_override_internal): Added 33313 maybe_setting of PARAM_AVOID_FMA_MAX_BITS. 33314 333152018-01-12 Richard Biener <rguenther@suse.de> 33316 33317 PR debug/83157 33318 * dwarf2out.c (gen_variable_die): Do not reset old_die for 33319 inline instance vars. 33320 333212018-01-12 Oleg Endo <olegendo@gcc.gnu.org> 33322 33323 PR target/81819 33324 * config/rx/rx.c (rx_is_restricted_memory_address): 33325 Handle SUBREG case. 33326 333272018-01-12 Richard Biener <rguenther@suse.de> 33328 33329 PR tree-optimization/80846 33330 * target.def (split_reduction): New target hook. 33331 * targhooks.c (default_split_reduction): New function. 33332 * targhooks.h (default_split_reduction): Declare. 33333 * tree-vect-loop.c (vect_create_epilog_for_reduction): If the 33334 target requests first reduce vectors by combining low and high 33335 parts. 33336 * tree-vect-stmts.c (vect_gen_perm_mask_any): Adjust. 33337 (get_vectype_for_scalar_type_and_size): Export. 33338 * tree-vectorizer.h (get_vectype_for_scalar_type_and_size): Declare. 33339 * doc/tm.texi.in (TARGET_VECTORIZE_SPLIT_REDUCTION): Document. 33340 * doc/tm.texi: Regenerate. 33341 * config/i386/i386.c (ix86_split_reduction): Implement 33342 TARGET_VECTORIZE_SPLIT_REDUCTION. 33343 333442018-01-12 Eric Botcazou <ebotcazou@adacore.com> 33345 33346 PR target/83368 33347 * config/sparc/sparc.h (PIC_OFFSET_TABLE_REGNUM): Set to INVALID_REGNUM 33348 in PIC mode except for TARGET_VXWORKS_RTP. 33349 * config/sparc/sparc.c: Include cfgrtl.h. 33350 (TARGET_INIT_PIC_REG): Define. 33351 (TARGET_USE_PSEUDO_PIC_REG): Likewise. 33352 (sparc_pic_register_p): New predicate. 33353 (sparc_legitimate_address_p): Use it. 33354 (sparc_legitimize_pic_address): Likewise. 33355 (sparc_delegitimize_address): Likewise. 33356 (sparc_mode_dependent_address_p): Likewise. 33357 (gen_load_pcrel_sym): Remove 4th parameter. 33358 (load_got_register): Adjust call to above. Remove obsolete stuff. 33359 (sparc_expand_prologue): Do not call load_got_register here. 33360 (sparc_flat_expand_prologue): Likewise. 33361 (sparc_output_mi_thunk): Set the pic_offset_table_rtx object. 33362 (sparc_use_pseudo_pic_reg): New function. 33363 (sparc_init_pic_reg): Likewise. 33364 * config/sparc/sparc.md (vxworks_load_got): Set the GOT register. 33365 (builtin_setjmp_receiver): Enable only for TARGET_VXWORKS_RTP. 33366 333672018-01-12 Christophe Lyon <christophe.lyon@linaro.org> 33368 33369 * doc/sourcebuild.texi (Effective-Target Keywords, Other attributes): 33370 Add item for branch_cost. 33371 333722018-01-12 Eric Botcazou <ebotcazou@adacore.com> 33373 33374 PR rtl-optimization/83565 33375 * rtlanal.c (nonzero_bits1): On WORD_REGISTER_OPERATIONS machines, do 33376 not extend the result to a larger mode for rotate operations. 33377 (num_sign_bit_copies1): Likewise. 33378 333792018-01-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 33380 33381 PR target/40411 33382 * config/sol2.h (STARTFILE_ARCH_SPEC): Don't use with -shared or 33383 -symbolic. 33384 Use values-Xc.o for -pedantic. 33385 Link with values-xpg4.o for C90, values-xpg6.o otherwise. 33386 333872018-01-12 Martin Liska <mliska@suse.cz> 33388 33389 PR ipa/83054 33390 * ipa-devirt.c (final_warning_record::grow_type_warnings): 33391 New function. 33392 (possible_polymorphic_call_targets): Use it. 33393 (ipa_devirt): Likewise. 33394 333952018-01-12 Martin Liska <mliska@suse.cz> 33396 33397 * profile-count.h (enum profile_quality): Use 0 as invalid 33398 enum value of profile_quality. 33399 334002018-01-12 Chung-Ju Wu <jasonwucj@gmail.com> 33401 33402 * doc/invoke.texi (NDS32 Options): Add -mext-perf, -mext-perf2 and 33403 -mext-string options. 33404 334052018-01-12 Richard Biener <rguenther@suse.de> 33406 33407 * lto-streamer-out.c (DFS::DFS_write_tree_body): Process 33408 DECL_DEBUG_EXPR conditional on DECL_HAS_DEBUG_EXPR_P. 33409 * tree-streamer-in.c (lto_input_ts_decl_common_tree_pointers): 33410 Likewise. 33411 * tree-streamer-out.c (write_ts_decl_common_tree_pointers): Likewise. 33412 334132018-01-11 Michael Meissner <meissner@linux.vnet.ibm.com> 33414 33415 * configure.ac (--with-long-double-format): Add support for the 33416 configuration option to change the default long double format on 33417 PowerPC systems. 33418 * config.gcc (powerpc*-linux*-*): Likewise. 33419 * configure: Regenerate. 33420 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): If long 33421 double is IEEE, define __KC__ and __KF__ to allow floatn.h to be 33422 used without modification. 33423 334242018-01-11 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 33425 33426 * config/rs6000/rs6000-builtin.def (BU_P7_MISC_X): New #define. 33427 (SPEC_BARRIER): New instantiation of BU_P7_MISC_X. 33428 * config/rs6000/rs6000.c (rs6000_expand_builtin): Handle 33429 MISC_BUILTIN_SPEC_BARRIER. 33430 (rs6000_init_builtins): Likewise. 33431 * config/rs6000/rs6000.md (UNSPECV_SPEC_BARRIER): New UNSPECV 33432 enum value. 33433 (speculation_barrier): New define_insn. 33434 * doc/extend.texi: Document __builtin_speculation_barrier. 33435 334362018-01-11 Jakub Jelinek <jakub@redhat.com> 33437 33438 PR target/83203 33439 * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): If one_var 33440 is 0, for V{8,16}S[IF] and V[48]D[IF]mode use gen_vec_set<mode>_0. 33441 * config/i386/sse.md (VI8_AVX_AVX512F, VI4F_256_512): New mode 33442 iterators. 33443 (ssescalarmodesuffix): Add 512-bit vectors. Use "d" or "q" for 33444 integral modes instead of "ss" and "sd". 33445 (vec_set<mode>_0): New define_insns for 256-bit and 512-bit 33446 vectors with 32-bit and 64-bit elements. 33447 (vecdupssescalarmodesuffix): New mode attribute. 33448 (vec_dup<mode>): Use it. 33449 334502018-01-11 H.J. Lu <hongjiu.lu@intel.com> 33451 33452 PR target/83330 33453 * config/i386/i386.c (ix86_compute_frame_layout): Align stack 33454 frame if argument is passed on stack. 33455 334562018-01-11 Jakub Jelinek <jakub@redhat.com> 33457 33458 PR target/82682 33459 * ree.c (combine_reaching_defs): Optimize also 33460 reg2=exp; reg1=reg2; reg2=any_extend(reg1); into 33461 reg2=any_extend(exp); reg1=reg2;, formatting fix. 33462 334632018-01-11 Jan Hubicka <hubicka@ucw.cz> 33464 33465 PR middle-end/83189 33466 * gimple-ssa-isolate-paths.c (isolate_path): Fix profile update. 33467 334682018-01-11 Jan Hubicka <hubicka@ucw.cz> 33469 33470 PR middle-end/83718 33471 * tree-inline.c (copy_cfg_body): Adjust num&den for scaling 33472 after they are computed. 33473 334742018-01-11 Bin Cheng <bin.cheng@arm.com> 33475 33476 PR tree-optimization/83695 33477 * gimple-loop-linterchange.cc 33478 (tree_loop_interchange::interchange_loops): Call scev_reset_htab to 33479 reset cached scev information after interchange. 33480 (pass_linterchange::execute): Remove call to scev_reset_htab. 33481 334822018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33483 33484 * config/arm/arm_neon.h (vfmlal_lane_low_u32, vfmlal_lane_high_u32, 33485 vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, vfmlal_laneq_low_u32, 33486 vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, vfmlal_laneq_high_u32, 33487 vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, vfmlslq_laneq_low_u32, 33488 vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, vfmlslq_laneq_high_u32, 33489 vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): Define. 33490 * config/arm/arm_neon_builtins.def (vfmal_lane_low, 33491 vfmal_lane_lowv4hf, vfmal_lane_lowv8hf, vfmal_lane_high, 33492 vfmal_lane_highv4hf, vfmal_lane_highv8hf, vfmsl_lane_low, 33493 vfmsl_lane_lowv4hf, vfmsl_lane_lowv8hf, vfmsl_lane_high, 33494 vfmsl_lane_highv4hf, vfmsl_lane_highv8hf): New sets of builtins. 33495 * config/arm/iterators.md (VFMLSEL2, vfmlsel2): New mode attributes. 33496 (V_lane_reg): Likewise. 33497 * config/arm/neon.md (neon_vfm<vfml_op>l_lane_<vfml_half><VCVTF:mode>): 33498 New define_expand. 33499 (neon_vfm<vfml_op>l_lane_<vfml_half><vfmlsel2><mode>): Likewise. 33500 (vfmal_lane_low<mode>_intrinsic, 33501 vfmal_lane_low<vfmlsel2><mode>_intrinsic, 33502 vfmal_lane_high<vfmlsel2><mode>_intrinsic, 33503 vfmal_lane_high<mode>_intrinsic, vfmsl_lane_low<mode>_intrinsic, 33504 vfmsl_lane_low<vfmlsel2><mode>_intrinsic, 33505 vfmsl_lane_high<vfmlsel2><mode>_intrinsic, 33506 vfmsl_lane_high<mode>_intrinsic): New define_insns. 33507 335082018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33509 33510 * config/arm/arm-cpus.in (fp16fml): New feature. 33511 (ALL_SIMD): Add fp16fml. 33512 (armv8.2-a): Add fp16fml as an option. 33513 (armv8.3-a): Likewise. 33514 (armv8.4-a): Add fp16fml as part of fp16. 33515 * config/arm/arm.h (TARGET_FP16FML): Define. 33516 * config/arm/arm-c.c (arm_cpu_builtins): Define __ARM_FEATURE_FP16_FML 33517 when appropriate. 33518 * config/arm/arm-modes.def (V2HF): Define. 33519 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, 33520 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, 33521 vfmlslq_low_u32, vfmlalq_high_u32, vfmlslq_high_u32): Define. 33522 * config/arm/arm_neon_builtins.def (vfmal_low, vfmal_high, 33523 vfmsl_low, vfmsl_high): New set of builtins. 33524 * config/arm/iterators.md (PLUSMINUS): New code iterator. 33525 (vfml_op): New code attribute. 33526 (VFMLHALVES): New int iterator. 33527 (VFML, VFMLSEL): New mode attributes. 33528 (V_reg): Define mapping for V2HF. 33529 (V_hi, V_lo): New mode attributes. 33530 (VF_constraint): Likewise. 33531 (vfml_half, vfml_half_selector): New int attributes. 33532 * config/arm/neon.md (neon_vfm<vfml_op>l_<vfml_half><mode>): New 33533 define_expand. 33534 (vfmal_low<mode>_intrinsic, vfmsl_high<mode>_intrinsic, 33535 vfmal_high<mode>_intrinsic, vfmsl_low<mode>_intrinsic): 33536 New define_insn. 33537 * config/arm/t-arm-elf (v8_fps): Add fp16fml. 33538 * config/arm/t-multilib (v8_2_a_simd_variants): Add fp16fml. 33539 * config/arm/unspecs.md (UNSPEC_VFML_LO, UNSPEC_VFML_HI): New unspecs. 33540 * doc/invoke.texi (ARM Options): Document fp16fml. Update armv8.4-a 33541 documentation. 33542 * doc/sourcebuild.texi (arm_fp16fml_neon_ok, arm_fp16fml_neon): 33543 Document new effective target and option set. 33544 335452018-01-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 33546 33547 * config/arm/arm-cpus.in (armv8_4): New feature. 33548 (ARMv8_4a): New fgroup. 33549 (armv8.4-a): New arch. 33550 * config/arm/arm-tables.opt: Regenerate. 33551 * config/arm/t-aprofile: Add matching rules for -march=armv8.4-a. 33552 * config/arm/t-arm-elf (all_v8_archs): Add armv8.4-a. 33553 * config/arm/t-multilib (v8_4_a_simd_variants): New variable. 33554 Add matching rules for -march=armv8.4-a and extensions. 33555 * doc/invoke.texi (ARM Options): Document -march=armv8.4-a. 33556 335572018-01-11 Oleg Endo <olegendo@gcc.gnu.org> 33558 33559 PR target/81821 33560 * config/rx/rx.md (BW): New mode attribute. 33561 (sync_lock_test_and_setsi): Add mode suffix to insn output. 33562 335632018-01-11 Richard Biener <rguenther@suse.de> 33564 33565 PR tree-optimization/83435 33566 * graphite.c (canonicalize_loop_form): Ignore fake loop exit edges. 33567 * graphite-scop-detection.c (scop_detection::get_sese): Likewise. 33568 * tree-vrp.c (add_assert_info): Drop TREE_OVERFLOW if they appear. 33569 335702018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 33571 Alan Hayward <alan.hayward@arm.com> 33572 David Sherwood <david.sherwood@arm.com> 33573 33574 * config/aarch64/aarch64.c (aarch64_address_info): Add a const_offset 33575 field. 33576 (aarch64_classify_address): Initialize it. Track polynomial offsets. 33577 (aarch64_print_address_internal): Use it to check for a zero offset. 33578 335792018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 33580 Alan Hayward <alan.hayward@arm.com> 33581 David Sherwood <david.sherwood@arm.com> 33582 33583 * config/aarch64/aarch64-modes.def (NUM_POLY_INT_COEFFS): Set to 2. 33584 * config/aarch64/aarch64-protos.h (aarch64_initial_elimination_offset): 33585 Return a poly_int64 rather than a HOST_WIDE_INT. 33586 (aarch64_offset_7bit_signed_scaled_p): Take the offset as a poly_int64 33587 rather than a HOST_WIDE_INT. 33588 * config/aarch64/aarch64.h (aarch64_frame): Protect with 33589 HAVE_POLY_INT_H rather than HOST_WIDE_INT. Change locals_offset, 33590 hard_fp_offset, frame_size, initial_adjust, callee_offset and 33591 final_offset from HOST_WIDE_INT to poly_int64. 33592 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use 33593 to_constant when getting the number of units in an Advanced SIMD 33594 mode. 33595 (aarch64_builtin_vectorized_function): Check for a constant number 33596 of units. 33597 * config/aarch64/aarch64-simd.md (mov<mode>): Handle polynomial 33598 GET_MODE_SIZE. 33599 (aarch64_ld<VSTRUCT:nregs>_lane<VALLDIF:mode>): Use the nunits 33600 attribute instead of GET_MODE_NUNITS. 33601 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) 33602 (aarch64_class_max_nregs): Use the constant_lowest_bound of the 33603 GET_MODE_SIZE for fixed-size registers. 33604 (aarch64_const_vec_all_same_in_range_p): Use const_vec_duplicate_p. 33605 (aarch64_hard_regno_call_part_clobbered, aarch64_classify_index) 33606 (aarch64_mode_valid_for_sched_fusion_p, aarch64_classify_address) 33607 (aarch64_legitimize_address_displacement, aarch64_secondary_reload) 33608 (aarch64_print_operand, aarch64_print_address_internal) 33609 (aarch64_address_cost, aarch64_rtx_costs, aarch64_register_move_cost) 33610 (aarch64_short_vector_p, aapcs_vfp_sub_candidate) 33611 (aarch64_simd_attr_length_rglist, aarch64_operands_ok_for_ldpstp): 33612 Handle polynomial GET_MODE_SIZE. 33613 (aarch64_hard_regno_caller_save_mode): Likewise. Return modes 33614 wider than SImode without modification. 33615 (tls_symbolic_operand_type): Use strip_offset instead of split_const. 33616 (aarch64_pass_by_reference, aarch64_layout_arg, aarch64_pad_reg_upward) 33617 (aarch64_gimplify_va_arg_expr): Assert that we don't yet handle 33618 passing and returning SVE modes. 33619 (aarch64_function_value, aarch64_layout_arg): Use gen_int_mode 33620 rather than GEN_INT. 33621 (aarch64_emit_probe_stack_range): Take the size as a poly_int64 33622 rather than a HOST_WIDE_INT, but call sorry if it isn't constant. 33623 (aarch64_allocate_and_probe_stack_space): Likewise. 33624 (aarch64_layout_frame): Cope with polynomial offsets. 33625 (aarch64_save_callee_saves, aarch64_restore_callee_saves): Take the 33626 start_offset as a poly_int64 rather than a HOST_WIDE_INT. Track 33627 polynomial offsets. 33628 (offset_9bit_signed_unscaled_p, offset_12bit_unsigned_scaled_p) 33629 (aarch64_offset_7bit_signed_scaled_p): Take the offset as a 33630 poly_int64 rather than a HOST_WIDE_INT. 33631 (aarch64_get_separate_components, aarch64_process_components) 33632 (aarch64_expand_prologue, aarch64_expand_epilogue) 33633 (aarch64_use_return_insn_p): Handle polynomial frame offsets. 33634 (aarch64_anchor_offset): New function, split out from... 33635 (aarch64_legitimize_address): ...here. 33636 (aarch64_builtin_vectorization_cost): Handle polynomial 33637 TYPE_VECTOR_SUBPARTS. 33638 (aarch64_simd_check_vect_par_cnst_half): Handle polynomial 33639 GET_MODE_NUNITS. 33640 (aarch64_simd_make_constant, aarch64_expand_vector_init): Get the 33641 number of elements from the PARALLEL rather than the mode. 33642 (aarch64_shift_truncation_mask): Use GET_MODE_UNIT_BITSIZE 33643 rather than GET_MODE_BITSIZE. 33644 (aarch64_evpc_trn, aarch64_evpc_uzp, aarch64_evpc_ext) 33645 (aarch64_evpc_rev, aarch64_evpc_dup, aarch64_evpc_zip) 33646 (aarch64_expand_vec_perm_const_1): Handle polynomial 33647 d->perm.length () and d->perm elements. 33648 (aarch64_evpc_tbl): Likewise. Use nelt rather than GET_MODE_NUNITS. 33649 Apply to_constant to d->perm elements. 33650 (aarch64_simd_valid_immediate, aarch64_vec_fpconst_pow_of_2): Handle 33651 polynomial CONST_VECTOR_NUNITS. 33652 (aarch64_move_pointer): Take amount as a poly_int64 rather 33653 than an int. 33654 (aarch64_progress_pointer): Avoid temporary variable. 33655 * config/aarch64/aarch64.md (aarch64_<crc_variant>): Use 33656 the mode attribute instead of GET_MODE. 33657 336582018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 33659 Alan Hayward <alan.hayward@arm.com> 33660 David Sherwood <david.sherwood@arm.com> 33661 33662 * config/aarch64/aarch64.c (aarch64_force_temporary): Assert that 33663 x exists before using it. 33664 (aarch64_add_constant_internal): Rename to... 33665 (aarch64_add_offset_1): ...this. Replace regnum with separate 33666 src and dest rtxes. Handle the case in which they're different, 33667 including when the offset is zero. Replace scratchreg with an rtx. 33668 Use 2 additions if there is no spare register into which we can 33669 move a 16-bit constant. 33670 (aarch64_add_constant): Delete. 33671 (aarch64_add_offset): Replace reg with separate src and dest 33672 rtxes. Take a poly_int64 offset instead of a HOST_WIDE_INT. 33673 Use aarch64_add_offset_1. 33674 (aarch64_add_sp, aarch64_sub_sp): Take the scratch register as 33675 an rtx rather than an int. Take the delta as a poly_int64 33676 rather than a HOST_WIDE_INT. Use aarch64_add_offset. 33677 (aarch64_expand_mov_immediate): Update uses of aarch64_add_offset. 33678 (aarch64_expand_prologue): Update calls to aarch64_sub_sp, 33679 aarch64_allocate_and_probe_stack_space and aarch64_add_offset. 33680 (aarch64_expand_epilogue): Update calls to aarch64_add_offset 33681 and aarch64_add_sp. 33682 (aarch64_output_mi_thunk): Use aarch64_add_offset rather than 33683 aarch64_add_constant. 33684 336852018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 33686 33687 * config/aarch64/aarch64.c (aarch64_reinterpret_float_as_int): 33688 Use scalar_float_mode. 33689 336902018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 33691 33692 * config/aarch64/aarch64-simd.md 33693 (aarch64_fml<f16mac1>l<f16quad>_low<mode>): Avoid GET_MODE_NUNITS. 33694 (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Likewise. 33695 (aarch64_fml<f16mac1>l_lane_lowv2sf): Likewise. 33696 (aarch64_fml<f16mac1>l_lane_highv2sf): Likewise. 33697 (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Likewise. 33698 (aarch64_fml<f16mac1>lq_laneq_highv4sf): Likewise. 33699 (aarch64_fml<f16mac1>l_laneq_lowv2sf): Likewise. 33700 (aarch64_fml<f16mac1>l_laneq_highv2sf): Likewise. 33701 (aarch64_fml<f16mac1>lq_lane_lowv4sf): Likewise. 33702 (aarch64_fml<f16mac1>lq_lane_highv4sf): Likewise. 33703 337042018-01-11 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 33705 33706 PR target/83514 33707 * config/arm/arm.c (arm_declare_function_name): Set arch_to_print if 33708 targ_options->x_arm_arch_string is non NULL. 33709 337102018-01-11 Tamar Christina <tamar.christina@arm.com> 33711 33712 * config/aarch64/aarch64.h 33713 (AARCH64_FL_FOR_ARCH8_4): Add AARCH64_FL_DOTPROD. 33714 337152018-01-11 Sudakshina Das <sudi.das@arm.com> 33716 33717 PR target/82096 33718 * expmed.c (emit_store_flag_force): Swap if const op0 33719 and change VOIDmode to mode of op0. 33720 337212018-01-11 Richard Sandiford <richard.sandiford@linaro.org> 33722 33723 PR rtl-optimization/83761 33724 * caller-save.c (replace_reg_with_saved_mem): Pass bits rather 33725 than bytes to mode_for_size. 33726 337272018-01-10 Jan Hubicka <hubicka@ucw.cz> 33728 33729 PR middle-end/83189 33730 * gfortran.fortran-torture/compile/pr83189.f90: New testcase. 33731 * tree-ssa-loop-manip.c (tree_transform_and_unroll_loop): Handle zero 33732 profile. 33733 337342018-01-10 Jan Hubicka <hubicka@ucw.cz> 33735 33736 PR middle-end/83575 33737 * cfgrtl.c (rtl_verify_edges): Only verify fixability of partition 33738 when in layout mode. 33739 (cfg_layout_finalize): Do not verify cfg before we are out of layout. 33740 * cfgcleanup.c (try_optimize_cfg): Only verify flow info when doing 33741 partition fixup. 33742 337432018-01-10 Michael Collison <michael.collison@arm.com> 33744 33745 * config/aarch64/aarch64-modes.def (V2HF): New VECTOR_MODE. 33746 * config/aarch64/aarch64-option-extension.def: Add 33747 AARCH64_OPT_EXTENSION of 'fp16fml'. 33748 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 33749 (__ARM_FEATURE_FP16_FML): Define if TARGET_F16FML is true. 33750 * config/aarch64/predicates.md (aarch64_lane_imm3): New predicate. 33751 * config/aarch64/constraints.md (Ui7): New constraint. 33752 * config/aarch64/iterators.md (VFMLA_W): New mode iterator. 33753 (VFMLA_SEL_W): Ditto. 33754 (f16quad): Ditto. 33755 (f16mac1): Ditto. 33756 (VFMLA16_LOW): New int iterator. 33757 (VFMLA16_HIGH): Ditto. 33758 (UNSPEC_FMLAL): New unspec. 33759 (UNSPEC_FMLSL): Ditto. 33760 (UNSPEC_FMLAL2): Ditto. 33761 (UNSPEC_FMLSL2): Ditto. 33762 (f16mac): New code attribute. 33763 * config/aarch64/aarch64-simd-builtins.def 33764 (aarch64_fmlal_lowv2sf): Ditto. 33765 (aarch64_fmlsl_lowv2sf): Ditto. 33766 (aarch64_fmlalq_lowv4sf): Ditto. 33767 (aarch64_fmlslq_lowv4sf): Ditto. 33768 (aarch64_fmlal_highv2sf): Ditto. 33769 (aarch64_fmlsl_highv2sf): Ditto. 33770 (aarch64_fmlalq_highv4sf): Ditto. 33771 (aarch64_fmlslq_highv4sf): Ditto. 33772 (aarch64_fmlal_lane_lowv2sf): Ditto. 33773 (aarch64_fmlsl_lane_lowv2sf): Ditto. 33774 (aarch64_fmlal_laneq_lowv2sf): Ditto. 33775 (aarch64_fmlsl_laneq_lowv2sf): Ditto. 33776 (aarch64_fmlalq_lane_lowv4sf): Ditto. 33777 (aarch64_fmlsl_lane_lowv4sf): Ditto. 33778 (aarch64_fmlalq_laneq_lowv4sf): Ditto. 33779 (aarch64_fmlsl_laneq_lowv4sf): Ditto. 33780 (aarch64_fmlal_lane_highv2sf): Ditto. 33781 (aarch64_fmlsl_lane_highv2sf): Ditto. 33782 (aarch64_fmlal_laneq_highv2sf): Ditto. 33783 (aarch64_fmlsl_laneq_highv2sf): Ditto. 33784 (aarch64_fmlalq_lane_highv4sf): Ditto. 33785 (aarch64_fmlsl_lane_highv4sf): Ditto. 33786 (aarch64_fmlalq_laneq_highv4sf): Ditto. 33787 (aarch64_fmlsl_laneq_highv4sf): Ditto. 33788 * config/aarch64/aarch64-simd.md: 33789 (aarch64_fml<f16mac1>l<f16quad>_low<mode>): New pattern. 33790 (aarch64_fml<f16mac1>l<f16quad>_high<mode>): Ditto. 33791 (aarch64_simd_fml<f16mac1>l<f16quad>_low<mode>): Ditto. 33792 (aarch64_simd_fml<f16mac1>l<f16quad>_high<mode>): Ditto. 33793 (aarch64_fml<f16mac1>l_lane_lowv2sf): Ditto. 33794 (aarch64_fml<f16mac1>l_lane_highv2sf): Ditto. 33795 (aarch64_simd_fml<f16mac>l_lane_lowv2sf): Ditto. 33796 (aarch64_simd_fml<f16mac>l_lane_highv2sf): Ditto. 33797 (aarch64_fml<f16mac1>lq_laneq_lowv4sf): Ditto. 33798 (aarch64_fml<f16mac1>lq_laneq_highv4sf): Ditto. 33799 (aarch64_simd_fml<f16mac>lq_laneq_lowv4sf): Ditto. 33800 (aarch64_simd_fml<f16mac>lq_laneq_highv4sf): Ditto. 33801 (aarch64_fml<f16mac1>l_laneq_lowv2sf): Ditto. 33802 (aarch64_fml<f16mac1>l_laneq_highv2sf): Ditto. 33803 (aarch64_simd_fml<f16mac>l_laneq_lowv2sf): Ditto. 33804 (aarch64_simd_fml<f16mac>l_laneq_highv2sf): Ditto. 33805 (aarch64_fml<f16mac1>lq_lane_lowv4sf): Ditto. 33806 (aarch64_fml<f16mac1>lq_lane_highv4sf): Ditto. 33807 (aarch64_simd_fml<f16mac>lq_lane_lowv4sf): Ditto. 33808 (aarch64_simd_fml<f16mac>lq_lane_highv4sf): Ditto. 33809 * config/aarch64/arm_neon.h (vfmlal_low_u32): New intrinsic. 33810 (vfmlsl_low_u32): Ditto. 33811 (vfmlalq_low_u32): Ditto. 33812 (vfmlslq_low_u32): Ditto. 33813 (vfmlal_high_u32): Ditto. 33814 (vfmlsl_high_u32): Ditto. 33815 (vfmlalq_high_u32): Ditto. 33816 (vfmlslq_high_u32): Ditto. 33817 (vfmlal_lane_low_u32): Ditto. 33818 (vfmlsl_lane_low_u32): Ditto. 33819 (vfmlal_laneq_low_u32): Ditto. 33820 (vfmlsl_laneq_low_u32): Ditto. 33821 (vfmlalq_lane_low_u32): Ditto. 33822 (vfmlslq_lane_low_u32): Ditto. 33823 (vfmlalq_laneq_low_u32): Ditto. 33824 (vfmlslq_laneq_low_u32): Ditto. 33825 (vfmlal_lane_high_u32): Ditto. 33826 (vfmlsl_lane_high_u32): Ditto. 33827 (vfmlal_laneq_high_u32): Ditto. 33828 (vfmlsl_laneq_high_u32): Ditto. 33829 (vfmlalq_lane_high_u32): Ditto. 33830 (vfmlslq_lane_high_u32): Ditto. 33831 (vfmlalq_laneq_high_u32): Ditto. 33832 (vfmlslq_laneq_high_u32): Ditto. 33833 * config/aarch64/aarch64.h (AARCH64_FL_F16SML): New flag. 33834 (AARCH64_FL_FOR_ARCH8_4): New. 33835 (AARCH64_ISA_F16FML): New ISA flag. 33836 (TARGET_F16FML): New feature flag for fp16fml. 33837 (doc/invoke.texi): Document new fp16fml option. 33838 338392018-01-10 Michael Collison <michael.collison@arm.com> 33840 33841 * config/aarch64/aarch64-builtins.c: 33842 (aarch64_types_ternopu_imm_qualifiers, TYPES_TERNOPUI): New. 33843 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 33844 (__ARM_FEATURE_SHA3): Define if TARGET_SHA3 is true. 33845 * config/aarch64/aarch64.h (AARCH64_FL_SHA3): New flags. 33846 (AARCH64_ISA_SHA3): New ISA flag. 33847 (TARGET_SHA3): New feature flag for sha3. 33848 * config/aarch64/iterators.md (sha512_op): New int attribute. 33849 (CRYPTO_SHA512): New int iterator. 33850 (UNSPEC_SHA512H): New unspec. 33851 (UNSPEC_SHA512H2): Ditto. 33852 (UNSPEC_SHA512SU0): Ditto. 33853 (UNSPEC_SHA512SU1): Ditto. 33854 * config/aarch64/aarch64-simd-builtins.def 33855 (aarch64_crypto_sha512hqv2di): New builtin. 33856 (aarch64_crypto_sha512h2qv2di): Ditto. 33857 (aarch64_crypto_sha512su0qv2di): Ditto. 33858 (aarch64_crypto_sha512su1qv2di): Ditto. 33859 (aarch64_eor3qv8hi): Ditto. 33860 (aarch64_rax1qv2di): Ditto. 33861 (aarch64_xarqv2di): Ditto. 33862 (aarch64_bcaxqv8hi): Ditto. 33863 * config/aarch64/aarch64-simd.md: 33864 (aarch64_crypto_sha512h<sha512_op>qv2di): New pattern. 33865 (aarch64_crypto_sha512su0qv2di): Ditto. 33866 (aarch64_crypto_sha512su1qv2di): Ditto. 33867 (aarch64_eor3qv8hi): Ditto. 33868 (aarch64_rax1qv2di): Ditto. 33869 (aarch64_xarqv2di): Ditto. 33870 (aarch64_bcaxqv8hi): Ditto. 33871 * config/aarch64/arm_neon.h (vsha512hq_u64): New intrinsic. 33872 (vsha512h2q_u64): Ditto. 33873 (vsha512su0q_u64): Ditto. 33874 (vsha512su1q_u64): Ditto. 33875 (veor3q_u16): Ditto. 33876 (vrax1q_u64): Ditto. 33877 (vxarq_u64): Ditto. 33878 (vbcaxq_u16): Ditto. 33879 * config/arm/types.md (crypto_sha512): New type attribute. 33880 (crypto_sha3): Ditto. 33881 (doc/invoke.texi): Document new sha3 option. 33882 338832018-01-10 Michael Collison <michael.collison@arm.com> 33884 33885 * config/aarch64/aarch64-builtins.c: 33886 (aarch64_types_quadopu_imm_qualifiers, TYPES_QUADOPUI): New. 33887 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 33888 (__ARM_FEATURE_SM3): Define if TARGET_SM4 is true. 33889 (__ARM_FEATURE_SM4): Define if TARGET_SM4 is true. 33890 * config/aarch64/aarch64.h (AARCH64_FL_SM4): New flags. 33891 (AARCH64_ISA_SM4): New ISA flag. 33892 (TARGET_SM4): New feature flag for sm4. 33893 * config/aarch64/aarch64-simd-builtins.def 33894 (aarch64_sm3ss1qv4si): Ditto. 33895 (aarch64_sm3tt1aq4si): Ditto. 33896 (aarch64_sm3tt1bq4si): Ditto. 33897 (aarch64_sm3tt2aq4si): Ditto. 33898 (aarch64_sm3tt2bq4si): Ditto. 33899 (aarch64_sm3partw1qv4si): Ditto. 33900 (aarch64_sm3partw2qv4si): Ditto. 33901 (aarch64_sm4eqv4si): Ditto. 33902 (aarch64_sm4ekeyqv4si): Ditto. 33903 * config/aarch64/aarch64-simd.md: 33904 (aarch64_sm3ss1qv4si): Ditto. 33905 (aarch64_sm3tt<sm3tt_op>qv4si): Ditto. 33906 (aarch64_sm3partw<sm3part_op>qv4si): Ditto. 33907 (aarch64_sm4eqv4si): Ditto. 33908 (aarch64_sm4ekeyqv4si): Ditto. 33909 * config/aarch64/iterators.md (sm3tt_op): New int iterator. 33910 (sm3part_op): Ditto. 33911 (CRYPTO_SM3TT): Ditto. 33912 (CRYPTO_SM3PART): Ditto. 33913 (UNSPEC_SM3SS1): New unspec. 33914 (UNSPEC_SM3TT1A): Ditto. 33915 (UNSPEC_SM3TT1B): Ditto. 33916 (UNSPEC_SM3TT2A): Ditto. 33917 (UNSPEC_SM3TT2B): Ditto. 33918 (UNSPEC_SM3PARTW1): Ditto. 33919 (UNSPEC_SM3PARTW2): Ditto. 33920 (UNSPEC_SM4E): Ditto. 33921 (UNSPEC_SM4EKEY): Ditto. 33922 * config/aarch64/constraints.md (Ui2): New constraint. 33923 * config/aarch64/predicates.md (aarch64_imm2): New predicate. 33924 * config/arm/types.md (crypto_sm3): New type attribute. 33925 (crypto_sm4): Ditto. 33926 * config/aarch64/arm_neon.h (vsm3ss1q_u32): New intrinsic. 33927 (vsm3tt1aq_u32): Ditto. 33928 (vsm3tt1bq_u32): Ditto. 33929 (vsm3tt2aq_u32): Ditto. 33930 (vsm3tt2bq_u32): Ditto. 33931 (vsm3partw1q_u32): Ditto. 33932 (vsm3partw2q_u32): Ditto. 33933 (vsm4eq_u32): Ditto. 33934 (vsm4ekeyq_u32): Ditto. 33935 (doc/invoke.texi): Document new sm4 option. 33936 339372018-01-10 Michael Collison <michael.collison@arm.com> 33938 33939 * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture. 33940 * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag. 33941 (AARCH64_FL_FOR_ARCH8_4): New. 33942 (AARCH64_FL_V8_4): New flag. 33943 (doc/invoke.texi): Document new armv8.4-a option. 33944 339452018-01-10 Michael Collison <michael.collison@arm.com> 33946 33947 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): 33948 (__ARM_FEATURE_AES): Define if TARGET_AES is true. 33949 (__ARM_FEATURE_SHA2): Define if TARGET_SHA2 is true. 33950 * config/aarch64/aarch64-option-extension.def: Add 33951 AARCH64_OPT_EXTENSION of 'sha2'. 33952 (aes): Add AARCH64_OPT_EXTENSION of 'aes'. 33953 (crypto): Disable sha2 and aes if crypto disabled. 33954 (crypto): Enable aes and sha2 if enabled. 33955 (simd): Disable sha2 and aes if simd disabled. 33956 * config/aarch64/aarch64.h (AARCH64_FL_AES, AARCH64_FL_SHA2): 33957 New flags. 33958 (AARCH64_ISA_AES, AARCH64_ISA_SHA2): New ISA flags. 33959 (TARGET_SHA2): New feature flag for sha2. 33960 (TARGET_AES): New feature flag for aes. 33961 * config/aarch64/aarch64-simd.md: 33962 (aarch64_crypto_aes<aes_op>v16qi): Make pattern 33963 conditional on TARGET_AES. 33964 (aarch64_crypto_aes<aesmc_op>v16qi): Ditto. 33965 (aarch64_crypto_sha1hsi): Make pattern conditional 33966 on TARGET_SHA2. 33967 (aarch64_crypto_sha1hv4si): Ditto. 33968 (aarch64_be_crypto_sha1hv4si): Ditto. 33969 (aarch64_crypto_sha1su1v4si): Ditto. 33970 (aarch64_crypto_sha1<sha1_op>v4si): Ditto. 33971 (aarch64_crypto_sha1su0v4si): Ditto. 33972 (aarch64_crypto_sha256h<sha256_op>v4si): Ditto. 33973 (aarch64_crypto_sha256su0v4si): Ditto. 33974 (aarch64_crypto_sha256su1v4si): Ditto. 33975 (doc/invoke.texi): Document new aes and sha2 options. 33976 339772018-01-10 Martin Sebor <msebor@redhat.com> 33978 33979 PR tree-optimization/83781 33980 * gimple-fold.c (get_range_strlen): Avoid treating arrays of pointers 33981 as string arrays. 33982 339832018-01-11 Martin Sebor <msebor@gmail.com> 33984 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 33985 33986 PR tree-optimization/83501 33987 PR tree-optimization/81703 33988 33989 * tree-ssa-strlen.c (get_string_cst): Rename... 33990 (get_string_len): ...to this. Handle global constants. 33991 (handle_char_store): Adjust. 33992 339932018-01-10 Kito Cheng <kito.cheng@gmail.com> 33994 Jim Wilson <jimw@sifive.com> 33995 33996 * config/riscv/riscv-protos.h (riscv_output_return): New. 33997 * config/riscv/riscv.c (struct machine_function): New naked_p field. 33998 (riscv_attribute_table, riscv_output_return), 33999 (riscv_handle_fndecl_attribute, riscv_naked_function_p), 34000 (riscv_allocate_stack_slots_for_args, riscv_warn_func_return): New. 34001 (riscv_compute_frame_info): Only compute frame->mask if not a naked 34002 function. 34003 (riscv_expand_prologue): Add early return for naked function. 34004 (riscv_expand_epilogue): Likewise. 34005 (riscv_function_ok_for_sibcall): Return false for naked function. 34006 (riscv_set_current_function): New. 34007 (TARGET_SET_CURRENT_FUNCTION, TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS), 34008 (TARGET_ATTRIBUTE_TABLE, TARGET_WARN_FUNC_RETURN): New. 34009 * config/riscv/riscv.md (simple_return): Call riscv_output_return. 34010 * doc/extend.texi (RISC-V Function Attributes): New. 34011 340122018-01-10 Michael Meissner <meissner@linux.vnet.ibm.com> 34013 34014 * config/rs6000/rs6000.c (is_complex_IBM_long_double): Explicitly 34015 check for 128-bit long double before checking TCmode. 34016 * config/rs6000/rs6000.h (FLOAT128_IEEE_P): Explicitly check for 34017 128-bit long doubles before checking TFmode or TCmode. 34018 (FLOAT128_IBM_P): Likewise. 34019 340202018-01-10 Martin Sebor <msebor@redhat.com> 34021 34022 PR tree-optimization/83671 34023 * builtins.c (c_strlen): Unconditionally return zero for the empty 34024 string. 34025 Use -Warray-bounds for warnings. 34026 * gimple-fold.c (get_range_strlen): Handle non-constant lengths 34027 for non-constant array indices with COMPONENT_REF, arrays of 34028 arrays, and pointers to arrays. 34029 (gimple_fold_builtin_strlen): Determine and set length range for 34030 non-constant character arrays. 34031 340322018-01-10 Aldy Hernandez <aldyh@redhat.com> 34033 34034 PR middle-end/81897 34035 * tree-ssa-uninit.c (convert_control_dep_chain_into_preds): Skip 34036 empty blocks. 34037 340382018-01-10 Eric Botcazou <ebotcazou@adacore.com> 34039 34040 * dwarf2out.c (dwarf2out_var_location): Do not pass NULL to fprintf. 34041 340422018-01-10 Peter Bergner <bergner@vnet.ibm.com> 34043 34044 PR target/83399 34045 * config/rs6000/rs6000.c (print_operand) <'y'>: Use 34046 VECTOR_MEM_ALTIVEC_OR_VSX_P. 34047 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): Use 34048 indexed_or_indirect_operand predicate. 34049 (*vsx_le_perm_load_<mode> for VSX_W): Likewise. 34050 (*vsx_le_perm_load_v8hi): Likewise. 34051 (*vsx_le_perm_load_v16qi): Likewise. 34052 (*vsx_le_perm_store_<mode> for VSX_D): Likewise. 34053 (*vsx_le_perm_store_<mode> for VSX_W): Likewise. 34054 (*vsx_le_perm_store_v8hi): Likewise. 34055 (*vsx_le_perm_store_v16qi): Likewise. 34056 (eight unnamed splitters): Likewise. 34057 340582018-01-10 Peter Bergner <bergner@vnet.ibm.com> 34059 34060 * config/rs6000/x86intrin.h: Change #warning to #error. Update message. 34061 * config/rs6000/emmintrin.h: Likewise. 34062 * config/rs6000/mmintrin.h: Likewise. 34063 * config/rs6000/xmmintrin.h: Likewise. 34064 340652018-01-10 David Malcolm <dmalcolm@redhat.com> 34066 34067 PR c++/43486 34068 * tree-core.h: Document EXPR_LOCATION_WRAPPER_P's usage of 34069 "public_flag". 34070 * tree.c (tree_nop_conversion): Return true for location wrapper 34071 nodes. 34072 (maybe_wrap_with_location): New function. 34073 (selftest::check_strip_nops): New function. 34074 (selftest::test_location_wrappers): New function. 34075 (selftest::tree_c_tests): Call it. 34076 * tree.h (STRIP_ANY_LOCATION_WRAPPER): New macro. 34077 (maybe_wrap_with_location): New decl. 34078 (EXPR_LOCATION_WRAPPER_P): New macro. 34079 (location_wrapper_p): New inline function. 34080 (tree_strip_any_location_wrapper): New inline function. 34081 340822018-01-10 H.J. Lu <hongjiu.lu@intel.com> 34083 34084 PR target/83735 34085 * config/i386/i386.c (ix86_compute_frame_layout): Always adjust 34086 stack_realign_offset for the largest alignment of stack slot 34087 actually used. 34088 (ix86_find_max_used_stack_alignment): New function. 34089 (ix86_finalize_stack_frame_flags): Use it. Set 34090 max_used_stack_alignment if we don't realign stack. 34091 * config/i386/i386.h (machine_function): Add 34092 max_used_stack_alignment. 34093 340942018-01-10 Christophe Lyon <christophe.lyon@linaro.org> 34095 34096 * config/arm/arm.opt (-mbranch-cost): New option. 34097 * config/arm/arm.h (BRANCH_COST): Take arm_branch_cost into 34098 account. 34099 341002018-01-10 Segher Boessenkool <segher@kernel.crashing.org> 34101 34102 PR target/83629 34103 * config/rs6000/rs6000.md (load_toc_v4_PIC_2, load_toc_v4_PIC_3b, 34104 load_toc_v4_PIC_3c): Wrap const term in CONST RTL. 34105 341062018-01-10 Richard Biener <rguenther@suse.de> 34107 34108 PR debug/83765 34109 * dwarf2out.c (gen_subprogram_die): Hoist old_die && declaration 34110 early out so it also covers the case where we have a non-NULL 34111 origin. 34112 341132018-01-10 Richard Sandiford <richard.sandiford@linaro.org> 34114 34115 PR tree-optimization/83753 34116 * tree-vect-stmts.c (get_group_load_store_type): Use VMAT_CONTIGUOUS 34117 for non-strided grouped accesses if the number of elements is 1. 34118 341192018-01-10 Jan Hubicka <hubicka@ucw.cz> 34120 34121 PR target/81616 34122 * i386.c (ix86_vectorize_builtin_gather): Check TARGET_USE_GATHER. 34123 * i386.h (TARGET_USE_GATHER): Define. 34124 * x86-tune.def (X86_TUNE_USE_GATHER): New. 34125 341262018-01-10 Martin Liska <mliska@suse.cz> 34127 34128 PR bootstrap/82831 34129 * basic-block.h (CLEANUP_NO_PARTITIONING): New define. 34130 * bb-reorder.c (pass_reorder_blocks::execute): Do not clean up 34131 partitioning. 34132 * cfgcleanup.c (try_optimize_cfg): Fix up partitioning if 34133 CLEANUP_NO_PARTITIONING is not set. 34134 341352018-01-10 Richard Sandiford <richard.sandiford@linaro.org> 34136 34137 * doc/rtl.texi: Remove documentation of (const ...) wrappers 34138 for vectors, as a partial revert of r254296. 34139 * rtl.h (const_vec_p): Delete. 34140 (const_vec_duplicate_p): Don't test for vector CONSTs. 34141 (unwrap_const_vec_duplicate, const_vec_series_p): Likewise. 34142 * expmed.c (make_tree): Likewise. 34143 34144 Revert: 34145 * common.md (E, F): Use CONSTANT_P instead of checking for 34146 CONST_VECTOR. 34147 * emit-rtl.c (gen_lowpart_common): Use const_vec_p instead of 34148 checking for CONST_VECTOR. 34149 341502018-01-09 Jan Hubicka <hubicka@ucw.cz> 34151 34152 PR middle-end/83575 34153 * predict.c (force_edge_cold): Handle in more sane way edges 34154 with no prediction. 34155 341562018-01-09 Carl Love <cel@us.ibm.com> 34157 34158 * config/rs6002/altivec.md (p8_vmrgow): Add support for V2DI, V2DF, 34159 V4SI, V4SF types. 34160 (p8_vmrgew): Add support for V2DI, V2DF, V4SF types. 34161 * config/rs6000/rs6000-builtin.def: Add definitions for FLOAT2_V2DF, 34162 VMRGEW_V2DI, VMRGEW_V2DF, VMRGEW_V4SF, VMRGOW_V4SI, VMRGOW_V4SF, 34163 VMRGOW_V2DI, VMRGOW_V2DF. Remove definition for VMRGOW. 34164 * config/rs6000/rs6000-c.c (VSX_BUILTIN_VEC_FLOAT2, 34165 P8V_BUILTIN_VEC_VMRGEW, P8V_BUILTIN_VEC_VMRGOW): Add definitions. 34166 * config/rs6000/rs6000-protos.h: Add extern defition for 34167 rs6000_generate_float2_double_code. 34168 * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): Add 34169 function. 34170 * config/rs6000/vsx.md (vsx_xvcdpsp): Add define_insn. 34171 (float2_v2df): Add define_expand. 34172 341732018-01-09 Uros Bizjak <ubizjak@gmail.com> 34174 34175 PR target/83628 34176 * combine.c (force_int_to_mode) <case ASHIFT>: Use mode instead of 34177 op_mode in the force_to_mode call. 34178 341792018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 34180 34181 * config/aarch64/aarch64.c (aarch64_evpc_trn): Use d.perm.series_p 34182 instead of checking each element individually. 34183 (aarch64_evpc_uzp): Likewise. 34184 (aarch64_evpc_zip): Likewise. 34185 (aarch64_evpc_ext): Likewise. 34186 (aarch64_evpc_rev): Likewise. 34187 (aarch64_evpc_dup): Test the encoding for a single duplicated element, 34188 instead of checking each element individually. Return true without 34189 generating rtl if 34190 (aarch64_vectorize_vec_perm_const): Use all_from_input_p to test 34191 whether all selected elements come from the same input, instead of 34192 checking each element individually. Remove calls to gen_rtx_REG, 34193 start_sequence and end_sequence and instead assert that no rtl is 34194 generated. 34195 341962018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 34197 34198 * config/aarch64/aarch64.c (aarch64_legitimate_constant_p): Fix 34199 order of HIGH and CONST checks. 34200 342012018-01-09 Richard Sandiford <richard.sandiford@linaro.org> 34202 34203 * tree-vect-stmts.c (permute_vec_elements): Create a fresh variable 34204 if the destination isn't an SSA_NAME. 34205 342062018-01-09 Richard Biener <rguenther@suse.de> 34207 34208 PR tree-optimization/83668 34209 * graphite.c (canonicalize_loop_closed_ssa): Add edge argument, 34210 move prologue... 34211 (canonicalize_loop_form): ... here, renamed from ... 34212 (canonicalize_loop_closed_ssa_form): ... this and amended to 34213 swap successor edges for loop exit blocks to make us use 34214 the RPO order we need for initial schedule generation. 34215 342162018-01-09 Joseph Myers <joseph@codesourcery.com> 34217 34218 PR tree-optimization/64811 34219 * match.pd: When optimizing comparisons with Inf, avoid 34220 introducing or losing exceptions from comparisons with NaN. 34221 342222018-01-09 Martin Liska <mliska@suse.cz> 34223 34224 PR sanitizer/82517 34225 * asan.c (shadow_mem_size): Add gcc_assert. 34226 342272018-01-09 Georg-Johann Lay <avr@gjlay.de> 34228 34229 Don't save registers in main(). 34230 34231 PR target/83738 34232 * doc/invoke.texi (AVR Options) [-mmain-is-OS_task]: Document it. 34233 * config/avr/avr.opt (-mmain-is-OS_task): New target option. 34234 * config/avr/avr.c (avr_set_current_function): Don't error if 34235 naked, OS_task or OS_main are specified at the same time. 34236 (avr_function_ok_for_sibcall): Don't disable sibcalls for OS_task, 34237 OS_main. 34238 (avr_insert_attributes) [-mmain-is-OS_task] <main>: Add OS_task 34239 attribute. 34240 * common/config/avr/avr-common.c (avr_option_optimization_table): 34241 Switch on -mmain-is-OS_task for optimizing compilations. 34242 342432018-01-09 Richard Biener <rguenther@suse.de> 34244 34245 PR tree-optimization/83572 34246 * graphite.c: Include cfganal.h. 34247 (graphite_transform_loops): Connect infinite loops to exit 34248 and remove fake edges at the end. 34249 342502018-01-09 Jan Hubicka <hubicka@ucw.cz> 34251 34252 * ipa-inline.c (edge_badness): Revert accidental checkin. 34253 342542018-01-09 Jan Hubicka <hubicka@ucw.cz> 34255 34256 PR ipa/80763 34257 * ipa-comdats.c (set_comdat_group): Only set comdat group of real 34258 symbols; not inline clones. 34259 342602018-01-09 Jakub Jelinek <jakub@redhat.com> 34261 34262 PR target/83507 34263 * modulo-sched.c (schedule_reg_moves): Punt if we'd need to move 34264 hard registers. Formatting fixes. 34265 34266 PR preprocessor/83722 34267 * gcc.c (try_generate_repro): Pass 34268 &temp_stderr_files[RETRY_ICE_ATTEMPTS - 1] rather than 34269 &temp_stdout_files[RETRY_ICE_ATTEMPTS - 1] as last argument to 34270 do_report_bug. 34271 342722018-01-08 Monk Chiang <sh.chiang04@gmail.com> 34273 Kito Cheng <kito.cheng@gmail.com> 34274 34275 * config/riscv/riscv.c (machine_function::is_leaf): Remove field. 34276 (riscv_leaf_function_p): Delete. 34277 (riscv_function_ok_for_sibcall): Return false when TARGET_SAVE_RESTORE. 34278 342792018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 34280 34281 * config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New 34282 function. 34283 (do_ifelse): New function. 34284 (do_isel): New function. 34285 (do_sub3): New function. 34286 (do_add3): New function. 34287 (do_load_mask_compare): New function. 34288 (do_overlap_load_compare): New function. 34289 (expand_compare_loop): New function. 34290 (expand_block_compare): Call expand_compare_loop() when appropriate. 34291 * config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change 34292 option description. 34293 (-mblock-compare-inline-loop-limit): New option. 34294 342952018-01-08 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 34296 34297 PR target/83677 34298 * config/rs6000/altivec.md (*altivec_vpermr_<mode>_internal): 34299 Reverse order of second and third operands in first alternative. 34300 * config/rs6000/rs6000.c (rs6000_expand_vector_set): Reverse order 34301 of first and second elements in UNSPEC_VPERMR vector. 34302 (altivec_expand_vec_perm_le): Likewise. 34303 343042018-01-08 Jeff Law <law@redhat.com> 34305 34306 PR rtl-optimizatin/81308 34307 * tree-switch-conversion.c (cfg_altered): New file scoped static. 34308 (process_switch): If group_case_labels makes a change, then set 34309 cfg_altered. 34310 (pass_convert_switch::execute): If a switch is converted, then 34311 set cfg_altered. Return TODO_cfg_cleanup if cfg_altered is true. 34312 34313 PR rtl-optimization/81308 34314 * recog.c (split_all_insns): Conditionally cleanup the CFG after 34315 splitting insns. 34316 343172018-01-08 Vidya Praveen <vidyapraveen@arm.com> 34318 34319 PR target/83663 - Revert r255946 34320 * config/aarch64/aarch64.c (aarch64_expand_vector_init): Modify code 34321 generation for cases where splatting a value is not useful. 34322 * simplify-rtx.c (simplify_ternary_operation): Simplify vec_merge 34323 across a vec_duplicate and a paradoxical subreg forming a vector 34324 mode to a vec_concat. 34325 343262018-01-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> 34327 34328 * config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping rules for 34329 -march=armv8.3-a variants. 34330 * config/arm/t-multilib: Likewise. 34331 * config/arm/t-arm-elf: Likewise. Handle dotprod extension. 34332 343332018-01-08 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 34334 34335 * config/rs6000/rs6000.md (cceq_ior_compare): Remove * so I can use it 34336 to generate rtl. 34337 (cceq_ior_compare_complement): Give it a name so I can use it, and 34338 change boolean_or_operator predicate to boolean_operator so it can 34339 be used to generate a crand. 34340 (eqne): New code iterator. 34341 (bd/bd_neg): New code_attrs. 34342 (<bd>_<mode>): New name for ctr<mode>_internal[12] now combined into 34343 a single define_insn. 34344 (<bd>tf_<mode>): A new insn pattern for the conditional form branch 34345 decrement (bdnzt/bdnzf/bdzt/bdzf). 34346 * config/rs6000/rs6000.c (rs6000_legitimate_combined_insn): Updated 34347 with the new names of the branch decrement patterns, and added the 34348 names of the branch decrement conditional patterns. 34349 343502018-01-08 Richard Biener <rguenther@suse.de> 34351 34352 PR tree-optimization/83563 34353 * graphite.c (canonicalize_loop_closed_ssa_form): Reset the SCEV 34354 cache. 34355 343562018-01-08 Richard Biener <rguenther@suse.de> 34357 34358 PR middle-end/83713 34359 * convert.c (do_narrow): Properly guard TYPE_OVERFLOW_WRAPS checks. 34360 343612018-01-08 Richard Biener <rguenther@suse.de> 34362 34363 PR tree-optimization/83685 34364 * tree-ssa-pre.c (create_expression_by_pieces): Do not insert 34365 references to abnormals. 34366 343672018-01-08 Richard Biener <rguenther@suse.de> 34368 34369 PR lto/83719 34370 * dwarf2out.c (output_indirect_strings): Handle empty 34371 skeleton_debug_str_hash. 34372 (dwarf2out_early_finish): Index strings for -gsplit-dwarf. 34373 343742018-01-08 Claudiu Zissulescu <claziss@synopsys.com> 34375 34376 * config/arc/arc.c (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Delete. 34377 (emit_store_direct): Likewise. 34378 (arc_trampoline_adjust_address): Likewise. 34379 (arc_asm_trampoline_template): New function. 34380 (arc_initialize_trampoline): Use asm_trampoline_template. 34381 (TARGET_ASM_TRAMPOLINE_TEMPLATE): Define. 34382 * config/arc/arc.h (TRAMPOLINE_SIZE): Adjust to 16. 34383 * config/arc/arc.md (flush_icache): Delete pattern. 34384 343852018-01-08 Claudiu Zissulescu <claziss@synopsys.com> 34386 34387 * config/arc/arc-c.def (__ARC_UNALIGNED__): New define. 34388 * config/arc/arc.h (STRICT_ALIGNMENT): Control this macro using 34389 munaligned-access. 34390 343912018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> 34392 34393 PR target/83681 34394 * config/epiphany/epiphany.h (make_pass_mode_switch_use): Guard 34395 by not USED_FOR_TARGET. 34396 (make_pass_resolve_sw_modes): Likewise. 34397 343982018-01-08 Sebastian Huber <sebastian.huber@embedded-brains.de> 34399 34400 * config/nios2/nios2.h (nios2_section_threshold): Guard by not 34401 USED_FOR_TARGET. 34402 344032018-01-08 Richard Biener <rguenther@suse.de> 34404 34405 PR middle-end/83580 34406 * tree-data-ref.c (split_constant_offset): Remove STRIP_NOPS. 34407 344082018-01-08 Richard Biener <rguenther@suse.de> 34409 34410 PR middle-end/83517 34411 * match.pd ((t * 2) / 2) -> t): Add missing :c. 34412 344132018-01-06 Aldy Hernandez <aldyh@redhat.com> 34414 34415 PR middle-end/81897 34416 * tree-ssa-uninit.c (compute_control_dep_chain): Do not bail on 34417 basic blocks with a small number of successors. 34418 (convert_control_dep_chain_into_preds): Improve handling of 34419 forwarder blocks. 34420 (dump_predicates): Split apart into... 34421 (dump_pred_chain): ...here... 34422 (dump_pred_info): ...and here. 34423 (can_one_predicate_be_invalidated_p): Add debugging printfs. 34424 (can_chain_union_be_invalidated_p): Improve check for invalidation 34425 of paths. 34426 (uninit_uses_cannot_happen): Avoid unnecessary if 34427 convert_control_dep_chain_into_preds yielded nothing. 34428 344292018-01-06 Martin Sebor <msebor@redhat.com> 34430 34431 PR tree-optimization/83640 34432 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Avoid 34433 subtracting negative offset from size. 34434 (builtin_access::overlap): Adjust offset bounds of the access to fall 34435 within the size of the object if possible. 34436 344372018-01-06 Richard Sandiford <richard.sandiford@linaro.org> 34438 34439 PR rtl-optimization/83699 34440 * expmed.c (extract_bit_field_1): Restrict the vector usage of 34441 extract_bit_field_as_subreg to cases in which the extracted 34442 value is also a vector. 34443 34444 * lra-constraints.c (process_alt_operands): Test for the equivalence 34445 substitutions when detecting a possible reload cycle. 34446 344472018-01-06 Jakub Jelinek <jakub@redhat.com> 34448 34449 PR debug/83480 34450 * toplev.c (process_options): Don't enable debug_nonbind_markers_p 34451 by default if flag_selective_schedling{,2}. Formatting fixes. 34452 34453 PR rtl-optimization/83682 34454 * rtl.h (const_vec_duplicate_p): Only return true for VEC_DUPLICATE 34455 if it has non-VECTOR_MODE element mode. 34456 (vec_duplicate_p): Likewise. 34457 34458 PR middle-end/83694 34459 * cfgexpand.c (expand_debug_expr): Punt if mode1 is VOIDmode 34460 and bitsize might be greater than MAX_BITSIZE_MODE_ANY_INT. 34461 344622018-01-05 Jakub Jelinek <jakub@redhat.com> 34463 34464 PR target/83604 34465 * config/i386/i386-builtin.def 34466 (__builtin_ia32_vgf2p8affineinvqb_v64qi, 34467 __builtin_ia32_vgf2p8affineqb_v64qi, __builtin_ia32_vgf2p8mulb_v64qi): 34468 Require also OPTION_MASK_ISA_AVX512F in addition to 34469 OPTION_MASK_ISA_GFNI. 34470 (__builtin_ia32_vgf2p8affineinvqb_v16qi_mask, 34471 __builtin_ia32_vgf2p8affineqb_v16qi_mask): Require 34472 OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_SSE in addition 34473 to OPTION_MASK_ISA_GFNI. 34474 (__builtin_ia32_vgf2p8mulb_v32qi_mask): Require 34475 OPTION_MASK_ISA_AVX512VL in addition to OPTION_MASK_ISA_GFNI and 34476 OPTION_MASK_ISA_AVX512BW. 34477 (__builtin_ia32_vgf2p8mulb_v16qi_mask): Require 34478 OPTION_MASK_ISA_AVX512VL instead of OPTION_MASK_ISA_AVX512BW in 34479 addition to OPTION_MASK_ISA_GFNI. 34480 (__builtin_ia32_vgf2p8affineinvqb_v16qi, 34481 __builtin_ia32_vgf2p8affineqb_v16qi, __builtin_ia32_vgf2p8mulb_v16qi): 34482 Require OPTION_MASK_ISA_SSE2 instead of OPTION_MASK_ISA_SSE in addition 34483 to OPTION_MASK_ISA_GFNI. 34484 * config/i386/i386.c (def_builtin): Change to builtin isa/isa2 being 34485 a requirement for all ISAs rather than any of them with a few 34486 exceptions. 34487 (ix86_add_new_builtins): Clear OPTION_MASK_ISA_64BIT from isa before 34488 processing. 34489 (ix86_expand_builtin): Require all ISAs from builtin's isa and isa2 34490 bitmasks to be enabled with 3 exceptions, instead of requiring any 34491 enabled ISA with lots of exceptions. 34492 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, 34493 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>): 34494 Change avx512bw in isa attribute to avx512f. 34495 * config/i386/sgxintrin.h: Add license boilerplate. 34496 * config/i386/vaesintrin.h: Likewise. Fix macro spelling __AVX512F 34497 to __AVX512F__ and __AVX512VL to __AVX512VL__. 34498 (_mm256_aesdec_epi128, _mm256_aesdeclast_epi128, _mm256_aesenc_epi128, 34499 _mm256_aesenclast_epi128): Enable temporarily avx if __AVX__ is not 34500 defined. 34501 * config/i386/gfniintrin.h (_mm_gf2p8mul_epi8, 34502 _mm_gf2p8affineinv_epi64_epi8, _mm_gf2p8affine_epi64_epi8): Enable 34503 temporarily sse2 rather than sse if not enabled already. 34504 34505 PR target/83604 34506 * config/i386/sse.md (VI248_VLBW): Rename to ... 34507 (VI248_AVX512VL): ... this. Don't guard V32HI with TARGET_AVX512BW. 34508 (vpshrd_<mode><mask_name>, vpshld_<mode><mask_name>, 34509 vpshrdv_<mode>, vpshrdv_<mode>_mask, vpshrdv_<mode>_maskz, 34510 vpshrdv_<mode>_maskz_1, vpshldv_<mode>, vpshldv_<mode>_mask, 34511 vpshldv_<mode>_maskz, vpshldv_<mode>_maskz_1): Use VI248_AVX512VL 34512 mode iterator instead of VI248_VLBW. 34513 345142018-01-05 Jan Hubicka <hubicka@ucw.cz> 34515 34516 * ipa-fnsummary.c (record_modified_bb_info): Add OP. 34517 (record_modified): Skip clobbers; add debug output. 34518 (param_change_prob): Use sreal frequencies. 34519 345202018-01-05 Richard Sandiford <richard.sandiford@linaro.org> 34521 34522 * tree-vect-data-refs.c (vect_compute_data_ref_alignment): Don't 34523 punt for user-aligned variables. 34524 345252018-01-05 Richard Sandiford <richard.sandiford@linaro.org> 34526 34527 * tree-chrec.c (chrec_contains_symbols): Return true for 34528 POLY_INT_CST. 34529 345302018-01-05 Sudakshina Das <sudi.das@arm.com> 34531 34532 PR target/82439 34533 * simplify-rtx.c (simplify_relational_operation_1): Add simplifications 34534 of (x|y) == x for BICS pattern. 34535 345362018-01-05 Jakub Jelinek <jakub@redhat.com> 34537 34538 PR tree-optimization/83605 34539 * gimple-ssa-strength-reduction.c: Include tree-eh.h. 34540 (find_candidates_dom_walker::before_dom_children): Ignore stmts that 34541 can throw. 34542 345432018-01-05 Sebastian Huber <sebastian.huber@embedded-brains.de> 34544 34545 * config.gcc (epiphany-*-elf*): Add (epiphany-*-rtems*) configuration. 34546 * config/epiphany/rtems.h: New file. 34547 345482018-01-04 Jakub Jelinek <jakub@redhat.com> 34549 Uros Bizjak <ubizjak@gmail.com> 34550 34551 PR target/83554 34552 * config/i386/i386.md (*<rotate_insn>hi3_1 splitter): Use 34553 QIreg_operand instead of register_operand predicate. 34554 * config/i386/i386.c (ix86_rop_should_change_byte_p, 34555 set_rop_modrm_reg_bits, ix86_mitigate_rop): Use -mmitigate-rop in 34556 comments instead of -fmitigate[-_]rop. 34557 345582018-01-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 34559 34560 PR bootstrap/81926 34561 * cgraphunit.c (symbol_table::compile): Switch to text_section 34562 before calling assembly_start debug hook. 34563 * run-rtl-passes.c (run_rtl_passes): Likewise. 34564 Include output.h. 34565 345662018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 34567 34568 * tree-vrp.c (extract_range_from_binary_expr_1): Check 34569 range_int_cst_p rather than !symbolic_range_p before calling 34570 extract_range_from_multiplicative_op_1. 34571 345722018-01-04 Jeff Law <law@redhat.com> 34573 34574 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove 34575 redundant test in assertion. 34576 345772018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 34578 34579 * doc/rtl.texi: Document machine_mode wrapper classes. 34580 345812018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 34582 34583 * fold-const.c (fold_ternary_loc): Check tree_fits_uhwi_p before 34584 using tree_to_uhwi. 34585 345862018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 34587 34588 * tree-ssa-forwprop.c (is_combined_permutation_identity): Allow 34589 the VEC_PERM_EXPR fold to fail. 34590 345912018-01-04 Jakub Jelinek <jakub@redhat.com> 34592 34593 PR debug/83585 34594 * bb-reorder.c (insert_section_boundary_note): Set has_bb_partition 34595 to switched_sections. 34596 345972018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 34598 34599 PR target/83680 34600 * config/arm/arm.c (arm_vectorize_vec_perm_const): Fix inverted 34601 test for d.testing. 34602 346032018-01-04 Peter Bergner <bergner@vnet.ibm.com> 34604 34605 PR target/83387 34606 * config/rs6000/rs6000.c (rs6000_discover_homogeneous_aggregate): Do not 34607 allow arguments in FP registers if TARGET_HARD_FLOAT is false. 34608 346092018-01-04 Jakub Jelinek <jakub@redhat.com> 34610 34611 PR debug/83666 34612 * cfgexpand.c (expand_debug_expr) <case BIT_FIELD_REF>: Punt if mode 34613 is BLKmode and bitpos not zero or mode change is needed. 34614 346152018-01-04 Richard Sandiford <richard.sandiford@linaro.org> 34616 34617 PR target/83675 34618 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): Require 34619 TARGET_VIS2. 34620 346212018-01-04 Uros Bizjak <ubizjak@gmail.com> 34622 34623 PR target/83628 34624 * config/alpha/alpha.md (*sadd<modesuffix>): Use ASHIFT 34625 instead of MULT rtx. Update all corresponding splitters. 34626 (*saddl_se): Ditto. 34627 (*ssub<modesuffix>): Ditto. 34628 (*ssubl_se): Ditto. 34629 (*cmp_sadd_di): Update split patterns. 34630 (*cmp_sadd_si): Ditto. 34631 (*cmp_sadd_sidi): Ditto. 34632 (*cmp_ssub_di): Ditto. 34633 (*cmp_ssub_si): Ditto. 34634 (*cmp_ssub_sidi): Ditto. 34635 * config/alpha/predicates.md (const23_operand): New predicate. 34636 * config/alpha/alpha.c (alpha_rtx_costs) [PLUS, MINUS]: 34637 Look for ASHIFT, not MULT inner operand. 34638 (alpha_split_conditional_move): Update for *sadd<modesuffix> change. 34639 346402018-01-04 Martin Liska <mliska@suse.cz> 34641 34642 PR gcov-profile/83669 34643 * gcov.c (output_intermediate_file): Add version to intermediate 34644 gcov file. 34645 * doc/gcov.texi: Document new field 'version' in intermediate 34646 file format. Fix location of '-k' option of gcov command. 34647 346482018-01-04 Martin Liska <mliska@suse.cz> 34649 34650 PR ipa/82352 34651 * ipa-icf.c (sem_function::merge): Do not cross comdat boundary. 34652 346532018-01-04 Jakub Jelinek <jakub@redhat.com> 34654 34655 * gimple-ssa-sprintf.c (parse_directive): Cast second dir.len to uhwi. 34656 346572018-01-03 Martin Sebor <msebor@redhat.com> 34658 34659 PR tree-optimization/83655 34660 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): Avoid 34661 checking calls with invalid arguments. 34662 346632018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34664 34665 * tree-vect-stmts.c (vect_get_store_rhs): New function. 34666 (vectorizable_mask_load_store): Delete. 34667 (vectorizable_call): Return false for masked loads and stores. 34668 (vectorizable_store): Handle IFN_MASK_STORE. Use vect_get_store_rhs 34669 instead of gimple_assign_rhs1. 34670 (vectorizable_load): Handle IFN_MASK_LOAD. 34671 (vect_transform_stmt): Don't set is_store for call_vec_info_type. 34672 346732018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34674 34675 * tree-vect-stmts.c (vect_build_gather_load_calls): New function, 34676 split out from.., 34677 (vectorizable_mask_load_store): ...here. 34678 (vectorizable_load): ...and here. 34679 346802018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34681 34682 * tree-vect-stmts.c (vect_build_all_ones_mask) 34683 (vect_build_zero_merge_argument): New functions, split out from... 34684 (vectorizable_load): ...here. 34685 346862018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34687 34688 * tree-vect-stmts.c (vect_check_store_rhs): New function, 34689 split out from... 34690 (vectorizable_mask_load_store): ...here. 34691 (vectorizable_store): ...and here. 34692 346932018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34694 34695 * tree-vect-stmts.c (vect_check_load_store_mask): New function, 34696 split out from... 34697 (vectorizable_mask_load_store): ...here. 34698 346992018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34700 34701 * tree-vectorizer.h (vec_load_store_type): Moved from tree-vec-stmts.c 34702 (vect_model_store_cost): Take a vec_load_store_type instead of a 34703 vect_def_type. 34704 * tree-vect-stmts.c (vec_load_store_type): Move to tree-vectorizer.h. 34705 (vect_model_store_cost): Take a vec_load_store_type instead of a 34706 vect_def_type. 34707 (vectorizable_mask_load_store): Update accordingly. 34708 (vectorizable_store): Likewise. 34709 * tree-vect-slp.c (vect_analyze_slp_cost_1): Update accordingly. 34710 347112018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34712 34713 * tree-vect-loop.c (vect_transform_loop): Stub out scalar 34714 IFN_MASK_LOAD calls here rather than... 34715 * tree-vect-stmts.c (vectorizable_mask_load_store): ...here. 34716 347172018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34718 Alan Hayward <alan.hayward@arm.com> 34719 David Sherwood <david.sherwood@arm.com> 34720 34721 * expmed.c (extract_bit_field_1): For vector extracts, 34722 fall back to extract_bit_field_as_subreg if vec_extract 34723 isn't available. 34724 347252018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34726 Alan Hayward <alan.hayward@arm.com> 34727 David Sherwood <david.sherwood@arm.com> 34728 34729 * lra-spills.c (pseudo_reg_slot_compare): Sort slots by whether 34730 they are variable or constant sized. 34731 (assign_stack_slot_num_and_sort_pseudos): Don't reuse variable-sized 34732 slots for constant-sized data. 34733 347342018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34735 Alan Hayward <alan.hayward@arm.com> 34736 David Sherwood <david.sherwood@arm.com> 34737 34738 * tree-vect-patterns.c (vect_recog_mask_conversion_pattern): When 34739 handling COND_EXPRs with boolean comparisons, try to find a better 34740 basis for the mask type than the boolean itself. 34741 347422018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34743 34744 * doc/rtl.texi (MAX_BITSIZE_MODE_ANY_MODE): Describe how the default 34745 is calculated and how it can be overridden. 34746 * genmodes.c (max_bitsize_mode_any_mode): New variable. 34747 (create_modes): Initialize it from MAX_BITSIZE_MODE_ANY_MODE, 34748 if defined. 34749 (emit_max_int): Use it to set the output MAX_BITSIZE_MODE_ANY_MODE, 34750 if nonzero. 34751 347522018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34753 Alan Hayward <alan.hayward@arm.com> 34754 David Sherwood <david.sherwood@arm.com> 34755 34756 * config/aarch64/aarch64-protos.h (aarch64_output_simd_mov_immediate): 34757 Remove the mode argument. 34758 (aarch64_simd_valid_immediate): Remove the mode and inverse 34759 arguments. 34760 * config/aarch64/iterators.md (bitsize): New iterator. 34761 * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>, and<mode>3) 34762 (ior<mode>3): Update calls to aarch64_output_simd_mov_immediate. 34763 * config/aarch64/constraints.md (Do, Db, Dn): Update calls to 34764 aarch64_simd_valid_immediate. 34765 * config/aarch64/predicates.md (aarch64_reg_or_orr_imm): Likewise. 34766 (aarch64_reg_or_bic_imm): Likewise. 34767 * config/aarch64/aarch64.c (simd_immediate_info): Replace mvn 34768 with an insn_type enum and msl with a modifier_type enum. 34769 Replace element_width with a scalar_mode. Change the shift 34770 to unsigned int. Add constructors for scalar_float_mode and 34771 scalar_int_mode elements. 34772 (aarch64_vect_float_const_representable_p): Delete. 34773 (aarch64_can_const_movi_rtx_p) 34774 (aarch64_simd_scalar_immediate_valid_for_move) 34775 (aarch64_simd_make_constant): Update call to 34776 aarch64_simd_valid_immediate. 34777 (aarch64_advsimd_valid_immediate_hs): New function. 34778 (aarch64_advsimd_valid_immediate): Likewise. 34779 (aarch64_simd_valid_immediate): Remove mode and inverse 34780 arguments. Rewrite to use the above. Use const_vec_duplicate_p 34781 to detect duplicated constants and use aarch64_float_const_zero_rtx_p 34782 and aarch64_float_const_representable_p on the result. 34783 (aarch64_output_simd_mov_immediate): Remove mode argument. 34784 Update call to aarch64_simd_valid_immediate and use of 34785 simd_immediate_info. 34786 (aarch64_output_scalar_simd_mov_immediate): Update call 34787 accordingly. 34788 347892018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34790 Alan Hayward <alan.hayward@arm.com> 34791 David Sherwood <david.sherwood@arm.com> 34792 34793 * machmode.h (mode_precision): Prefix with CONST_MODE_PRECISION. 34794 (mode_nunits): Likewise CONST_MODE_NUNITS. 34795 * machmode.def (ADJUST_NUNITS): Document. 34796 * genmodes.c (mode_data::need_nunits_adj): New field. 34797 (blank_mode): Update accordingly. 34798 (adj_nunits): New variable. 34799 (print_maybe_const_decl): Replace CATEGORY with a NEEDS_ADJ 34800 parameter. 34801 (emit_mode_size_inline): Set need_bytesize_adj for all modes 34802 listed in adj_nunits. 34803 (emit_mode_nunits_inline): Set need_nunits_adj for all modes 34804 listed in adj_nunits. Don't emit case statements for such modes. 34805 (emit_insn_modes_h): Emit definitions of CONST_MODE_NUNITS 34806 and CONST_MODE_PRECISION. Make CONST_MODE_SIZE expand to 34807 nothing if adj_nunits is nonnull. 34808 (emit_mode_precision, emit_mode_nunits): Use print_maybe_const_decl. 34809 (emit_mode_unit_size, emit_mode_base_align, emit_mode_ibit) 34810 (emit_mode_fbit): Update use of print_maybe_const_decl. 34811 (emit_move_size): Likewise. Treat the array as non-const 34812 if adj_nunits. 34813 (emit_mode_adjustments): Handle adj_nunits. 34814 348152018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34816 34817 * machmode.def (VECTOR_MODES_WITH_PREFIX): Document. 34818 * genmodes.c (VECTOR_MODES_WITH_PREFIX): New macro. 34819 (VECTOR_MODES): Use it. 34820 (make_vector_modes): Take the prefix as an argument. 34821 348222018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34823 Alan Hayward <alan.hayward@arm.com> 34824 David Sherwood <david.sherwood@arm.com> 34825 34826 * mode-classes.def (MODE_VECTOR_BOOL): New mode class. 34827 * machmode.h (INTEGRAL_MODE_P, VECTOR_MODE_P): Return true 34828 for MODE_VECTOR_BOOL. 34829 * machmode.def (VECTOR_BOOL_MODE): Document. 34830 * genmodes.c (VECTOR_BOOL_MODE): New macro. 34831 (make_vector_bool_mode): New function. 34832 (complete_mode, emit_mode_wider, emit_mode_adjustments): Handle 34833 MODE_VECTOR_BOOL. 34834 * lto-streamer-in.c (lto_input_mode_table): Likewise. 34835 * rtx-vector-builder.c (rtx_vector_builder::find_cached_value): 34836 Likewise. 34837 * stor-layout.c (int_mode_for_mode): Likewise. 34838 * tree.c (build_vector_type_for_mode): Likewise. 34839 * varasm.c (output_constant_pool_2): Likewise. 34840 * emit-rtl.c (init_emit_once): Make sure that CONST1_RTX (BImode) and 34841 CONSTM1_RTX (BImode) are the same thing. Initialize const_tiny_rtx 34842 for MODE_VECTOR_BOOL. 34843 * expr.c (expand_expr_real_1): Use VECTOR_MODE_P instead of a list 34844 of mode class checks. 34845 * tree-vect-generic.c (expand_vector_operation): Use VECTOR_MODE_P 34846 instead of a list of mode class checks. 34847 (expand_vector_scalar_condition): Likewise. 34848 (type_for_widest_vector_mode): Handle BImode as an inner mode. 34849 348502018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34851 Alan Hayward <alan.hayward@arm.com> 34852 David Sherwood <david.sherwood@arm.com> 34853 34854 * machmode.h (mode_size): Change from unsigned short to 34855 poly_uint16_pod. 34856 (mode_to_bytes): Return a poly_uint16 rather than an unsigned short. 34857 (GET_MODE_SIZE): Return a constant if ONLY_FIXED_SIZE_MODES, 34858 or if measurement_type is not polynomial. 34859 (fixed_size_mode::includes_p): Check for constant-sized modes. 34860 * genmodes.c (emit_mode_size_inline): Make mode_size_inline 34861 return a poly_uint16 rather than an unsigned short. 34862 (emit_mode_size): Change the type of mode_size from unsigned short 34863 to poly_uint16_pod. Use ZERO_COEFFS for the initializer. 34864 (emit_mode_adjustments): Cope with polynomial vector sizes. 34865 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 34866 for GET_MODE_SIZE. 34867 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 34868 for GET_MODE_SIZE. 34869 * auto-inc-dec.c (try_merge): Treat GET_MODE_SIZE as polynomial. 34870 * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Likewise. 34871 * caller-save.c (setup_save_areas): Likewise. 34872 (replace_reg_with_saved_mem): Likewise. 34873 * calls.c (emit_library_call_value_1): Likewise. 34874 * combine-stack-adj.c (combine_stack_adjustments_for_block): Likewise. 34875 * combine.c (simplify_set, make_extraction, simplify_shift_const_1) 34876 (gen_lowpart_for_combine): Likewise. 34877 * convert.c (convert_to_integer_1): Likewise. 34878 * cse.c (equiv_constant, cse_insn): Likewise. 34879 * cselib.c (autoinc_split, cselib_hash_rtx): Likewise. 34880 (cselib_subst_to_values): Likewise. 34881 * dce.c (word_dce_process_block): Likewise. 34882 * df-problems.c (df_word_lr_mark_ref): Likewise. 34883 * dwarf2cfi.c (init_one_dwarf_reg_size): Likewise. 34884 * dwarf2out.c (multiple_reg_loc_descriptor, mem_loc_descriptor) 34885 (concat_loc_descriptor, concatn_loc_descriptor, loc_descriptor) 34886 (rtl_for_decl_location): Likewise. 34887 * emit-rtl.c (gen_highpart, widen_memory_access): Likewise. 34888 * expmed.c (extract_bit_field_1, extract_integral_bit_field): Likewise. 34889 * expr.c (emit_group_load_1, clear_storage_hints): Likewise. 34890 (emit_move_complex, emit_move_multi_word, emit_push_insn): Likewise. 34891 (expand_expr_real_1): Likewise. 34892 * function.c (assign_parm_setup_block_p, assign_parm_setup_block) 34893 (pad_below): Likewise. 34894 * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. 34895 * gimple-ssa-store-merging.c (rhs_valid_for_store_merging_p): Likewise. 34896 * ira.c (get_subreg_tracking_sizes): Likewise. 34897 * ira-build.c (ira_create_allocno_objects): Likewise. 34898 * ira-color.c (coalesced_pseudo_reg_slot_compare): Likewise. 34899 (ira_sort_regnos_for_alter_reg): Likewise. 34900 * ira-costs.c (record_operand_costs): Likewise. 34901 * lower-subreg.c (interesting_mode_p, simplify_gen_subreg_concatn) 34902 (resolve_simple_move): Likewise. 34903 * lra-constraints.c (get_reload_reg, operands_match_p): Likewise. 34904 (process_addr_reg, simplify_operand_subreg, curr_insn_transform) 34905 (lra_constraints): Likewise. 34906 (CONST_POOL_OK_P): Reject variable-sized modes. 34907 * lra-spills.c (slot, assign_mem_slot, pseudo_reg_slot_compare) 34908 (add_pseudo_to_slot, lra_spill): Likewise. 34909 * omp-low.c (omp_clause_aligned_alignment): Likewise. 34910 * optabs-query.c (get_best_extraction_insn): Likewise. 34911 * optabs-tree.c (expand_vec_cond_expr_p): Likewise. 34912 * optabs.c (expand_vec_perm_var, expand_vec_cond_expr): Likewise. 34913 (expand_mult_highpart, valid_multiword_target_p): Likewise. 34914 * recog.c (offsettable_address_addr_space_p): Likewise. 34915 * regcprop.c (maybe_mode_change): Likewise. 34916 * reginfo.c (choose_hard_reg_mode, record_subregs_of_mode): Likewise. 34917 * regrename.c (build_def_use): Likewise. 34918 * regstat.c (dump_reg_info): Likewise. 34919 * reload.c (complex_word_subreg_p, push_reload, find_dummy_reload) 34920 (find_reloads, find_reloads_subreg_address): Likewise. 34921 * reload1.c (eliminate_regs_1): Likewise. 34922 * rtlanal.c (for_each_inc_dec_find_inc_dec, rtx_cost): Likewise. 34923 * simplify-rtx.c (avoid_constant_pool_reference): Likewise. 34924 (simplify_binary_operation_1, simplify_subreg): Likewise. 34925 * targhooks.c (default_function_arg_padding): Likewise. 34926 (default_hard_regno_nregs, default_class_max_nregs): Likewise. 34927 * tree-cfg.c (verify_gimple_assign_binary): Likewise. 34928 (verify_gimple_assign_ternary): Likewise. 34929 * tree-inline.c (estimate_move_cost): Likewise. 34930 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 34931 * tree-ssa-loop-ivopts.c (add_autoinc_candidates): Likewise. 34932 (get_address_cost_ainc): Likewise. 34933 * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Likewise. 34934 (vect_supportable_dr_alignment): Likewise. 34935 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 34936 (vectorizable_reduction): Likewise. 34937 * tree-vect-stmts.c (vectorizable_assignment, vectorizable_shift) 34938 (vectorizable_operation, vectorizable_load): Likewise. 34939 * tree.c (build_same_sized_truth_vector_type): Likewise. 34940 * valtrack.c (cleanup_auto_inc_dec): Likewise. 34941 * var-tracking.c (emit_note_insn_var_location): Likewise. 34942 * config/arc/arc.h (ASM_OUTPUT_CASE_END): Use as_a <scalar_int_mode>. 34943 (ADDR_VEC_ALIGN): Likewise. 34944 349452018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34946 Alan Hayward <alan.hayward@arm.com> 34947 David Sherwood <david.sherwood@arm.com> 34948 34949 * machmode.h (mode_to_bits): Return a poly_uint16 rather than an 34950 unsigned short. 34951 (GET_MODE_BITSIZE): Return a constant if ONLY_FIXED_SIZE_MODES, 34952 or if measurement_type is polynomial. 34953 * calls.c (shift_return_value): Treat GET_MODE_BITSIZE as polynomial. 34954 * combine.c (make_extraction): Likewise. 34955 * dse.c (find_shift_sequence): Likewise. 34956 * dwarf2out.c (mem_loc_descriptor): Likewise. 34957 * expmed.c (store_integral_bit_field, extract_bit_field_1): Likewise. 34958 (extract_bit_field, extract_low_bits): Likewise. 34959 * expr.c (convert_move, convert_modes, emit_move_insn_1): Likewise. 34960 (optimize_bitfield_assignment_op, expand_assignment): Likewise. 34961 (store_expr_with_bounds, store_field, expand_expr_real_1): Likewise. 34962 * fold-const.c (optimize_bit_field_compare, merge_ranges): Likewise. 34963 * gimple-fold.c (optimize_atomic_compare_exchange_p): Likewise. 34964 * reload.c (find_reloads): Likewise. 34965 * reload1.c (alter_reg): Likewise. 34966 * stor-layout.c (bitwise_mode_for_mode, compute_record_mode): Likewise. 34967 * targhooks.c (default_secondary_memory_needed_mode): Likewise. 34968 * tree-if-conv.c (predicate_mem_writes): Likewise. 34969 * tree-ssa-strlen.c (handle_builtin_memcmp): Likewise. 34970 * tree-vect-patterns.c (adjust_bool_pattern): Likewise. 34971 * tree-vect-stmts.c (vectorizable_simd_clone_call): Likewise. 34972 * valtrack.c (dead_debug_insert_temp): Likewise. 34973 * varasm.c (mergeable_constant_section): Likewise. 34974 * config/sh/sh.h (LOCAL_ALIGNMENT): Use as_a <fixed_size_mode>. 34975 349762018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34977 Alan Hayward <alan.hayward@arm.com> 34978 David Sherwood <david.sherwood@arm.com> 34979 34980 * expr.c (expand_assignment): Cope with polynomial mode sizes 34981 when assigning to a CONCAT. 34982 349832018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 34984 Alan Hayward <alan.hayward@arm.com> 34985 David Sherwood <david.sherwood@arm.com> 34986 34987 * machmode.h (mode_precision): Change from unsigned short to 34988 poly_uint16_pod. 34989 (mode_to_precision): Return a poly_uint16 rather than an unsigned 34990 short. 34991 (GET_MODE_PRECISION): Return a constant if ONLY_FIXED_SIZE_MODES, 34992 or if measurement_type is not polynomial. 34993 (HWI_COMPUTABLE_MODE_P): Turn into a function. Optimize the case 34994 in which the mode is already known to be a scalar_int_mode. 34995 * genmodes.c (emit_mode_precision): Change the type of mode_precision 34996 from unsigned short to poly_uint16_pod. Use ZERO_COEFFS for the 34997 initializer. 34998 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 34999 for GET_MODE_PRECISION. 35000 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 35001 for GET_MODE_PRECISION. 35002 * combine.c (update_rsp_from_reg_equal): Treat GET_MODE_PRECISION 35003 as polynomial. 35004 (try_combine, find_split_point, combine_simplify_rtx): Likewise. 35005 (expand_field_assignment, make_extraction): Likewise. 35006 (make_compound_operation_int, record_dead_and_set_regs_1): Likewise. 35007 (get_last_value): Likewise. 35008 * convert.c (convert_to_integer_1): Likewise. 35009 * cse.c (cse_insn): Likewise. 35010 * expr.c (expand_expr_real_1): Likewise. 35011 * lra-constraints.c (simplify_operand_subreg): Likewise. 35012 * optabs-query.c (can_atomic_load_p): Likewise. 35013 * optabs.c (expand_atomic_load): Likewise. 35014 (expand_atomic_store): Likewise. 35015 * ree.c (combine_reaching_defs): Likewise. 35016 * rtl.h (partial_subreg_p, paradoxical_subreg_p): Likewise. 35017 * rtlanal.c (nonzero_bits1, lsb_bitfield_op_p): Likewise. 35018 * tree.h (type_has_mode_precision_p): Likewise. 35019 * ubsan.c (instrument_si_overflow): Likewise. 35020 350212018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35022 Alan Hayward <alan.hayward@arm.com> 35023 David Sherwood <david.sherwood@arm.com> 35024 35025 * tree.h (TYPE_VECTOR_SUBPARTS): Turn into a function and handle 35026 polynomial numbers of units. 35027 (SET_TYPE_VECTOR_SUBPARTS): Likewise. 35028 (valid_vector_subparts_p): New function. 35029 (build_vector_type): Remove temporary shim and take the number 35030 of units as a poly_uint64 rather than an int. 35031 (build_opaque_vector_type): Take the number of units as a 35032 poly_uint64 rather than an int. 35033 * tree.c (build_vector_from_ctor): Handle polynomial 35034 TYPE_VECTOR_SUBPARTS. 35035 (type_hash_canon_hash, type_cache_hasher::equal): Likewise. 35036 (uniform_vector_p, vector_type_mode, build_vector): Likewise. 35037 (build_vector_from_val): If the number of units is variable, 35038 use build_vec_duplicate_cst for constant operands and 35039 VEC_DUPLICATE_EXPR otherwise. 35040 (make_vector_type): Remove temporary is_constant (). 35041 (build_vector_type, build_opaque_vector_type): Take the number of 35042 units as a poly_uint64 rather than an int. 35043 (check_vector_cst): Handle polynomial TYPE_VECTOR_SUBPARTS and 35044 VECTOR_CST_NELTS. 35045 * cfgexpand.c (expand_debug_expr): Likewise. 35046 * expr.c (count_type_elements, categorize_ctor_elements_1): Likewise. 35047 (store_constructor, expand_expr_real_1): Likewise. 35048 (const_scalar_mask_from_tree): Likewise. 35049 * fold-const-call.c (fold_const_reduction): Likewise. 35050 * fold-const.c (const_binop, const_unop, fold_convert_const): Likewise. 35051 (operand_equal_p, fold_vec_perm, fold_ternary_loc): Likewise. 35052 (native_encode_vector, vec_cst_ctor_to_array): Likewise. 35053 (fold_relational_const): Likewise. 35054 (native_interpret_vector): Likewise. Change the size from an 35055 int to an unsigned int. 35056 * gimple-fold.c (gimple_fold_stmt_to_constant_1): Handle polynomial 35057 TYPE_VECTOR_SUBPARTS. 35058 (gimple_fold_indirect_ref, gimple_build_vector): Likewise. 35059 (gimple_build_vector_from_val): Use VEC_DUPLICATE_EXPR when 35060 duplicating a non-constant operand into a variable-length vector. 35061 * hsa-brig.c (hsa_op_immed::emit_to_buffer): Handle polynomial 35062 TYPE_VECTOR_SUBPARTS and VECTOR_CST_NELTS. 35063 * ipa-icf.c (sem_variable::equals): Likewise. 35064 * match.pd: Likewise. 35065 * omp-simd-clone.c (simd_clone_subparts): Likewise. 35066 * print-tree.c (print_node): Likewise. 35067 * stor-layout.c (layout_type): Likewise. 35068 * targhooks.c (default_builtin_vectorization_cost): Likewise. 35069 * tree-cfg.c (verify_gimple_comparison): Likewise. 35070 (verify_gimple_assign_binary): Likewise. 35071 (verify_gimple_assign_ternary): Likewise. 35072 (verify_gimple_assign_single): Likewise. 35073 * tree-pretty-print.c (dump_generic_node): Likewise. 35074 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 35075 (simplify_bitfield_ref, is_combined_permutation_identity): Likewise. 35076 * tree-vect-data-refs.c (vect_permute_store_chain): Likewise. 35077 (vect_grouped_load_supported, vect_permute_load_chain): Likewise. 35078 (vect_shift_permute_load_chain): Likewise. 35079 * tree-vect-generic.c (nunits_for_known_piecewise_op): Likewise. 35080 (expand_vector_condition, optimize_vector_constructor): Likewise. 35081 (lower_vec_perm, get_compute_type): Likewise. 35082 * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. 35083 (get_initial_defs_for_reduction, vect_transform_loop): Likewise. 35084 * tree-vect-patterns.c (vect_recog_bool_pattern): Likewise. 35085 (vect_recog_mask_conversion_pattern): Likewise. 35086 * tree-vect-slp.c (vect_supported_load_permutation_p): Likewise. 35087 (vect_get_constant_vectors, vect_transform_slp_perm_load): Likewise. 35088 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 35089 (get_group_load_store_type, vectorizable_mask_load_store): Likewise. 35090 (vectorizable_bswap, simd_clone_subparts, vectorizable_assignment) 35091 (vectorizable_shift, vectorizable_operation, vectorizable_store) 35092 (vectorizable_load, vect_is_simple_cond, vectorizable_comparison) 35093 (supportable_widening_operation): Likewise. 35094 (supportable_narrowing_operation): Likewise. 35095 * tree-vector-builder.c (tree_vector_builder::binary_encoded_nelts): 35096 Likewise. 35097 * varasm.c (output_constant): Likewise. 35098 350992018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35100 Alan Hayward <alan.hayward@arm.com> 35101 David Sherwood <david.sherwood@arm.com> 35102 35103 * tree-vect-data-refs.c (vect_permute_store_chain): Reorganize 35104 so that both the length == 3 and length != 3 cases set up their 35105 own permute vectors. Add comments explaining why we know the 35106 number of elements is constant. 35107 (vect_permute_load_chain): Likewise. 35108 351092018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35110 Alan Hayward <alan.hayward@arm.com> 35111 David Sherwood <david.sherwood@arm.com> 35112 35113 * machmode.h (mode_nunits): Change from unsigned char to 35114 poly_uint16_pod. 35115 (ONLY_FIXED_SIZE_MODES): New macro. 35116 (pod_mode::measurement_type, scalar_int_mode::measurement_type) 35117 (scalar_float_mode::measurement_type, scalar_mode::measurement_type) 35118 (complex_mode::measurement_type, fixed_size_mode::measurement_type): 35119 New typedefs. 35120 (mode_to_nunits): Return a poly_uint16 rather than an unsigned short. 35121 (GET_MODE_NUNITS): Return a constant if ONLY_FIXED_SIZE_MODES, 35122 or if measurement_type is not polynomial. 35123 * genmodes.c (ZERO_COEFFS): New macro. 35124 (emit_mode_nunits_inline): Make mode_nunits_inline return a 35125 poly_uint16. 35126 (emit_mode_nunits): Change the type of mode_nunits to poly_uint16_pod. 35127 Use ZERO_COEFFS when emitting initializers. 35128 * data-streamer.h (bp_pack_poly_value): New function. 35129 (bp_unpack_poly_value): Likewise. 35130 * lto-streamer-in.c (lto_input_mode_table): Use bp_unpack_poly_value 35131 for GET_MODE_NUNITS. 35132 * lto-streamer-out.c (lto_write_mode_table): Use bp_pack_poly_value 35133 for GET_MODE_NUNITS. 35134 * tree.c (make_vector_type): Remove temporary shim and make 35135 the real function take the number of units as a poly_uint64 35136 rather than an int. 35137 (build_vector_type_for_mode): Handle polynomial nunits. 35138 * dwarf2out.c (loc_descriptor, add_const_value_attribute): Likewise. 35139 * emit-rtl.c (const_vec_series_p_1): Likewise. 35140 (gen_rtx_CONST_VECTOR): Likewise. 35141 * fold-const.c (test_vec_duplicate_folding): Likewise. 35142 * genrecog.c (validate_pattern): Likewise. 35143 * optabs-query.c (can_vec_perm_var_p, can_mult_highpart_p): Likewise. 35144 * optabs-tree.c (expand_vec_cond_expr_p): Likewise. 35145 * optabs.c (expand_vector_broadcast, expand_binop_directly): Likewise. 35146 (shift_amt_for_vec_perm_mask, expand_vec_perm_var): Likewise. 35147 (expand_vec_cond_expr, expand_mult_highpart): Likewise. 35148 * rtlanal.c (subreg_get_info): Likewise. 35149 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 35150 (vect_grouped_load_supported): Likewise. 35151 * tree-vect-generic.c (type_for_widest_vector_mode): Likewise. 35152 * tree-vect-loop.c (have_whole_vector_shift): Likewise. 35153 * simplify-rtx.c (simplify_unary_operation_1): Likewise. 35154 (simplify_const_unary_operation, simplify_binary_operation_1) 35155 (simplify_const_binary_operation, simplify_ternary_operation) 35156 (test_vector_ops_duplicate, test_vector_ops): Likewise. 35157 (simplify_immed_subreg): Use GET_MODE_NUNITS on a fixed_size_mode 35158 instead of CONST_VECTOR_NUNITS. 35159 * varasm.c (output_constant_pool_2): Likewise. 35160 * rtx-vector-builder.c (rtx_vector_builder::build): Only include the 35161 explicit-encoded elements in the XVEC for variable-length vectors. 35162 351632018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35164 35165 * lra-constraints.c (curr_insn_transform): Use partial_subreg_p. 35166 351672018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35168 Alan Hayward <alan.hayward@arm.com> 35169 David Sherwood <david.sherwood@arm.com> 35170 35171 * coretypes.h (fixed_size_mode): Declare. 35172 (fixed_size_mode_pod): New typedef. 35173 * builtins.h (target_builtins::x_apply_args_mode) 35174 (target_builtins::x_apply_result_mode): Change type to 35175 fixed_size_mode_pod. 35176 * builtins.c (apply_args_size, apply_result_size, result_vector) 35177 (expand_builtin_apply_args_1, expand_builtin_apply) 35178 (expand_builtin_return): Update accordingly. 35179 351802018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35181 35182 * cse.c (hash_rtx_cb): Hash only the encoded elements. 35183 * cselib.c (cselib_hash_rtx): Likewise. 35184 * expmed.c (make_tree): Build VECTOR_CSTs directly from the 35185 CONST_VECTOR encoding. 35186 351872018-01-03 Jakub Jelinek <jakub@redhat.com> 35188 Jeff Law <law@redhat.com> 35189 35190 PR target/83641 35191 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): For 35192 noreturn probe, use gen_pop instead of ix86_emit_restore_reg_using_pop, 35193 only set RTX_FRAME_RELATED_P on both the push and pop if cfa_reg is sp 35194 and add REG_CFA_ADJUST_CFA notes in that case to both insns. 35195 35196 PR target/83641 35197 * config/i386/i386.c (ix86_adjust_stack_and_probe_stack_clash): Do not 35198 explicitly probe *sp in a noreturn function if there were any callee 35199 register saves or frame pointer is needed. 35200 352012018-01-03 Jakub Jelinek <jakub@redhat.com> 35202 35203 PR debug/83621 35204 * cfgexpand.c (expand_debug_expr): Return NULL if mode is 35205 BLKmode for ternary, binary or unary expressions. 35206 35207 PR debug/83645 35208 * var-tracking.c (delete_vta_debug_insn): New inline function. 35209 (delete_vta_debug_insns): Add USE_CFG argument, if true, walk just 35210 insns from get_insns () to NULL instead of each bb separately. 35211 Use delete_vta_debug_insn. No longer static. 35212 (vt_debug_insns_local, variable_tracking_main_1): Adjust 35213 delete_vta_debug_insns callers. 35214 * rtl.h (delete_vta_debug_insns): Declare. 35215 * final.c (rest_of_handle_final): Call delete_vta_debug_insns 35216 instead of variable_tracking_main. 35217 352182018-01-03 Martin Sebor <msebor@redhat.com> 35219 35220 PR tree-optimization/83603 35221 * calls.c (maybe_warn_nonstring_arg): Avoid accessing function 35222 arguments past the endof the argument list in functions declared 35223 without a prototype. 35224 * gimple-ssa-warn-restrict.c (wrestrict_dom_walker::check_call): 35225 Avoid checking when arguments are null. 35226 352272018-01-03 Martin Sebor <msebor@redhat.com> 35228 35229 PR c/83559 35230 * doc/extend.texi (attribute const): Fix a typo. 35231 * ipa-pure-const.c ((warn_function_const, warn_function_pure): Avoid 35232 issuing -Wsuggest-attribute for void functions. 35233 352342018-01-03 Martin Sebor <msebor@redhat.com> 35235 35236 * gimple-ssa-warn-restrict.c (builtin_memref::builtin_memref): Use 35237 offset_int::from instead of wide_int::to_shwi. 35238 (maybe_diag_overlap): Remove assertion. 35239 Use HOST_WIDE_INT_PRINT_DEC instead of %lli. 35240 * gimple-ssa-sprintf.c (format_directive): Same. 35241 (parse_directive): Same. 35242 (sprintf_dom_walker::compute_format_length): Same. 35243 (try_substitute_return_value): Same. 35244 352452018-01-03 Jeff Law <law@redhat.com> 35246 35247 PR middle-end/83654 35248 * explow.c (anti_adjust_stack_and_probe_stack_clash): Test a 35249 non-constant residual for zero at runtime and avoid probing in 35250 that case. Reorganize code for trailing problem to mirror handling 35251 of the residual. 35252 352532018-01-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> 35254 35255 PR tree-optimization/83501 35256 * tree-ssa-strlen.c (get_string_cst): New. 35257 (handle_char_store): Call get_string_cst. 35258 352592018-01-03 Martin Liska <mliska@suse.cz> 35260 35261 PR tree-optimization/83593 35262 * tree-ssa-strlen.c: Include tree-cfg.h. 35263 (strlen_check_and_optimize_stmt): Add new argument cleanup_eh. 35264 (strlen_dom_walker): Add new member variable m_cleanup_cfg. 35265 (strlen_dom_walker::strlen_dom_walker): Initialize m_cleanup_cfg 35266 to false. 35267 (strlen_dom_walker::before_dom_children): Call 35268 gimple_purge_dead_eh_edges. Dump tranformation with details 35269 dump flags. 35270 (strlen_dom_walker::before_dom_children): Update call by adding 35271 new argument cleanup_eh. 35272 (pass_strlen::execute): Return TODO_cleanup_cfg if needed. 35273 352742018-01-03 Martin Liska <mliska@suse.cz> 35275 35276 PR ipa/83549 35277 * cif-code.def (VARIADIC_THUNK): New enum value. 35278 * ipa-fnsummary.c (compute_fn_summary): Do not inline variadic 35279 thunks. 35280 352812018-01-03 Jan Beulich <jbeulich@suse.com> 35282 35283 * sse.md (mov<mode>_internal): Tighten condition for when to use 35284 vmovdqu<ssescalarsize> for TI and OI modes. 35285 352862018-01-03 Jakub Jelinek <jakub@redhat.com> 35287 35288 Update copyright years. 35289 352902018-01-03 Martin Liska <mliska@suse.cz> 35291 35292 PR ipa/83594 35293 * ipa-visibility.c (function_and_variable_visibility): Skip 35294 functions with noipa attribure. 35295 352962018-01-03 Jakub Jelinek <jakub@redhat.com> 35297 35298 * gcc.c (process_command): Update copyright notice dates. 35299 * gcov-dump.c (print_version): Ditto. 35300 * gcov.c (print_version): Ditto. 35301 * gcov-tool.c (print_version): Ditto. 35302 * gengtype.c (create_file): Ditto. 35303 * doc/cpp.texi: Bump @copying's copyright year. 35304 * doc/cppinternals.texi: Ditto. 35305 * doc/gcc.texi: Ditto. 35306 * doc/gccint.texi: Ditto. 35307 * doc/gcov.texi: Ditto. 35308 * doc/install.texi: Ditto. 35309 * doc/invoke.texi: Ditto. 35310 353112018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35312 35313 * vector-builder.h (vector_builder::m_full_nelts): Change from 35314 unsigned int to poly_uint64. 35315 (vector_builder::full_nelts): Update prototype accordingly. 35316 (vector_builder::new_vector): Likewise. 35317 (vector_builder::encoded_full_vector_p): Handle polynomial full_nelts. 35318 (vector_builder::operator ==): Likewise. 35319 (vector_builder::finalize): Likewise. 35320 * int-vector-builder.h (int_vector_builder::int_vector_builder): 35321 Take the number of elements as a poly_uint64 rather than an 35322 unsigned int. 35323 * vec-perm-indices.h (vec_perm_indices::m_nelts_per_input): Change 35324 from unsigned int to poly_uint64. 35325 (vec_perm_indices::vec_perm_indices): Update prototype accordingly. 35326 (vec_perm_indices::new_vector): Likewise. 35327 (vec_perm_indices::length): Likewise. 35328 (vec_perm_indices::nelts_per_input): Likewise. 35329 (vec_perm_indices::input_nelts): Likewise. 35330 * vec-perm-indices.c (vec_perm_indices::new_vector): Take the 35331 number of elements per input as a poly_uint64 rather than an 35332 unsigned int. Use the original encoding for variable-length 35333 vectors, rather than clamping each individual element. 35334 For the second and subsequent elements in each pattern, 35335 clamp the step and base before clamping their sum. 35336 (vec_perm_indices::series_p): Handle polynomial element counts. 35337 (vec_perm_indices::all_in_range_p): Likewise. 35338 (vec_perm_indices_to_tree): Likewise. 35339 (vec_perm_indices_to_rtx): Likewise. 35340 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise. 35341 * tree-vector-builder.c (tree_vector_builder::new_unary_operation) 35342 (tree_vector_builder::new_binary_operation): Handle polynomial 35343 element counts. Return false if we need to know the number 35344 of elements at compile time. 35345 * fold-const.c (fold_vec_perm): Punt if the number of elements 35346 isn't known at compile time. 35347 353482018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35349 35350 * vec-perm-indices.h (vec_perm_builder): Change element type 35351 from HOST_WIDE_INT to poly_int64. 35352 (vec_perm_indices::element_type): Update accordingly. 35353 (vec_perm_indices::clamp): Handle polynomial element_types. 35354 * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. 35355 (vec_perm_indices::all_in_range_p): Likewise. 35356 (tree_to_vec_perm_builder): Check for poly_int64 trees rather 35357 than shwi trees. 35358 * vector-builder.h (vector_builder::stepped_sequence_p): Handle 35359 polynomial vec_perm_indices element types. 35360 * int-vector-builder.h (int_vector_builder::equal_p): Likewise. 35361 * fold-const.c (fold_vec_perm): Likewise. 35362 * optabs.c (shift_amt_for_vec_perm_mask): Likewise. 35363 * tree-vect-generic.c (lower_vec_perm): Likewise. 35364 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 35365 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Cast d->perm 35366 element type to HOST_WIDE_INT. 35367 353682018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35369 Alan Hayward <alan.hayward@arm.com> 35370 David Sherwood <david.sherwood@arm.com> 35371 35372 * alias.c (addr_side_effect_eval): Take the size as a poly_int64 35373 rather than an int. Use plus_constant. 35374 (memrefs_conflict_p): Take the sizes as poly_int64s rather than ints. 35375 Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT. 35376 353772018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35378 Alan Hayward <alan.hayward@arm.com> 35379 David Sherwood <david.sherwood@arm.com> 35380 35381 * calls.c (emit_call_1, expand_call): Change struct_value_size from 35382 a HOST_WIDE_INT to a poly_int64. 35383 353842018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35385 Alan Hayward <alan.hayward@arm.com> 35386 David Sherwood <david.sherwood@arm.com> 35387 35388 * calls.c (load_register_parameters): Cope with polynomial 35389 mode sizes. Require a constant size for BLKmode parameters 35390 that aren't described by a PARALLEL. If BLOCK_REG_PADDING 35391 forces a parameter to be padded at the lsb end in order to 35392 fill a complete number of words, require the parameter size 35393 to be ordered wrt UNITS_PER_WORD. 35394 353952018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35396 Alan Hayward <alan.hayward@arm.com> 35397 David Sherwood <david.sherwood@arm.com> 35398 35399 * reload1.c (spill_stack_slot_width): Change element type 35400 from unsigned int to poly_uint64_pod. 35401 (alter_reg): Treat mode sizes as polynomial. 35402 354032018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35404 Alan Hayward <alan.hayward@arm.com> 35405 David Sherwood <david.sherwood@arm.com> 35406 35407 * reload.c (complex_word_subreg_p): New function. 35408 (reload_inner_reg_of_subreg, push_reload): Use it. 35409 354102018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35411 Alan Hayward <alan.hayward@arm.com> 35412 David Sherwood <david.sherwood@arm.com> 35413 35414 * lra-constraints.c (process_alt_operands): Reject matched 35415 operands whose sizes aren't ordered. 35416 (match_reload): Refer to this check here. 35417 354182018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35419 Alan Hayward <alan.hayward@arm.com> 35420 David Sherwood <david.sherwood@arm.com> 35421 35422 * builtins.c (expand_ifn_atomic_compare_exchange_into_call): Assert 35423 that the mode size is in the set {1, 2, 4, 8, 16}. 35424 354252018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35426 Alan Hayward <alan.hayward@arm.com> 35427 David Sherwood <david.sherwood@arm.com> 35428 35429 * var-tracking.c (adjust_mems): Treat mode sizes as polynomial. 35430 Use plus_constant instead of gen_rtx_PLUS. 35431 354322018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35433 Alan Hayward <alan.hayward@arm.com> 35434 David Sherwood <david.sherwood@arm.com> 35435 35436 * config/cr16/cr16-protos.h (cr16_push_rounding): Declare. 35437 * config/cr16/cr16.h (PUSH_ROUNDING): Move implementation to... 35438 * config/cr16/cr16.c (cr16_push_rounding): ...this new function. 35439 * config/h8300/h8300-protos.h (h8300_push_rounding): Declare. 35440 * config/h8300/h8300.h (PUSH_ROUNDING): Move implementation to... 35441 * config/h8300/h8300.c (h8300_push_rounding): ...this new function. 35442 * config/i386/i386-protos.h (ix86_push_rounding): Declare. 35443 * config/i386/i386.h (PUSH_ROUNDING): Move implementation to... 35444 * config/i386/i386.c (ix86_push_rounding): ...this new function. 35445 * config/m32c/m32c-protos.h (m32c_push_rounding): Take and return 35446 a poly_int64. 35447 * config/m32c/m32c.c (m32c_push_rounding): Likewise. 35448 * config/m68k/m68k-protos.h (m68k_push_rounding): Declare. 35449 * config/m68k/m68k.h (PUSH_ROUNDING): Move implementation to... 35450 * config/m68k/m68k.c (m68k_push_rounding): ...this new function. 35451 * config/pdp11/pdp11-protos.h (pdp11_push_rounding): Declare. 35452 * config/pdp11/pdp11.h (PUSH_ROUNDING): Move implementation to... 35453 * config/pdp11/pdp11.c (pdp11_push_rounding): ...this new function. 35454 * config/stormy16/stormy16-protos.h (xstormy16_push_rounding): Declare. 35455 * config/stormy16/stormy16.h (PUSH_ROUNDING): Move implementation to... 35456 * config/stormy16/stormy16.c (xstormy16_push_rounding): ...this new 35457 function. 35458 * expr.c (emit_move_resolve_push): Treat the input and result 35459 of PUSH_ROUNDING as a poly_int64. 35460 (emit_move_complex_push, emit_single_push_insn_1): Likewise. 35461 (emit_push_insn): Likewise. 35462 * lra-eliminations.c (mark_not_eliminable): Likewise. 35463 * recog.c (push_operand): Likewise. 35464 * reload1.c (elimination_effects): Likewise. 35465 * rtlanal.c (nonzero_bits1): Likewise. 35466 * calls.c (store_one_arg): Likewise. Require the padding to be 35467 known at compile time. 35468 354692018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35470 Alan Hayward <alan.hayward@arm.com> 35471 David Sherwood <david.sherwood@arm.com> 35472 35473 * expr.c (emit_single_push_insn_1): Treat mode sizes as polynomial. 35474 Use plus_constant instead of gen_rtx_PLUS. 35475 354762018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35477 Alan Hayward <alan.hayward@arm.com> 35478 David Sherwood <david.sherwood@arm.com> 35479 35480 * auto-inc-dec.c (set_inc_state): Take the mode size as a poly_int64 35481 rather than an int. 35482 354832018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35484 Alan Hayward <alan.hayward@arm.com> 35485 David Sherwood <david.sherwood@arm.com> 35486 35487 * expr.c (expand_expr_real_1): Use tree_to_poly_uint64 35488 instead of int_size_in_bytes when handling VIEW_CONVERT_EXPRs 35489 via stack temporaries. Treat the mode size as polynomial too. 35490 354912018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35492 Alan Hayward <alan.hayward@arm.com> 35493 David Sherwood <david.sherwood@arm.com> 35494 35495 * expr.c (expand_expr_real_2): When handling conversions involving 35496 unions, apply tree_to_poly_uint64 to the TYPE_SIZE rather than 35497 multiplying int_size_in_bytes by BITS_PER_UNIT. Treat GET_MODE_BISIZE 35498 as a poly_uint64 too. 35499 355002018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35501 Alan Hayward <alan.hayward@arm.com> 35502 David Sherwood <david.sherwood@arm.com> 35503 35504 * rtlanal.c (subreg_get_info): Handle polynomial mode sizes. 35505 355062018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35507 Alan Hayward <alan.hayward@arm.com> 35508 David Sherwood <david.sherwood@arm.com> 35509 35510 * combine.c (can_change_dest_mode): Handle polynomial 35511 REGMODE_NATURAL_SIZE. 35512 * expmed.c (store_bit_field_1): Likewise. 35513 * expr.c (store_constructor): Likewise. 35514 * emit-rtl.c (validate_subreg): Operate on polynomial mode sizes 35515 and polynomial REGMODE_NATURAL_SIZE. 35516 (gen_lowpart_common): Likewise. 35517 * reginfo.c (record_subregs_of_mode): Likewise. 35518 * rtlanal.c (read_modify_subreg_p): Likewise. 35519 355202018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35521 Alan Hayward <alan.hayward@arm.com> 35522 David Sherwood <david.sherwood@arm.com> 35523 35524 * internal-fn.c (expand_vector_ubsan_overflow): Handle polynomial 35525 numbers of elements. 35526 355272018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35528 Alan Hayward <alan.hayward@arm.com> 35529 David Sherwood <david.sherwood@arm.com> 35530 35531 * match.pd: Cope with polynomial numbers of vector elements. 35532 355332018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35534 Alan Hayward <alan.hayward@arm.com> 35535 David Sherwood <david.sherwood@arm.com> 35536 35537 * fold-const.c (fold_indirect_ref_1): Handle polynomial offsets 35538 in a POINTER_PLUS_EXPR. 35539 355402018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35541 Alan Hayward <alan.hayward@arm.com> 35542 David Sherwood <david.sherwood@arm.com> 35543 35544 * omp-simd-clone.c (simd_clone_subparts): New function. 35545 (simd_clone_init_simd_arrays): Use it instead of TYPE_VECTOR_SUBPARTS. 35546 (ipa_simd_modify_function_body): Likewise. 35547 355482018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35549 Alan Hayward <alan.hayward@arm.com> 35550 David Sherwood <david.sherwood@arm.com> 35551 35552 * tree-vect-generic.c (nunits_for_known_piecewise_op): New function. 35553 (expand_vector_piecewise): Use it instead of TYPE_VECTOR_SUBPARTS. 35554 (expand_vector_addition, add_rshift, expand_vector_divmod): Likewise. 35555 (expand_vector_condition, vector_element): Likewise. 35556 (subparts_gt): New function. 35557 (get_compute_type): Use subparts_gt. 35558 (count_type_subparts): Delete. 35559 (expand_vector_operations_1): Use subparts_gt instead of 35560 count_type_subparts. 35561 355622018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35563 Alan Hayward <alan.hayward@arm.com> 35564 David Sherwood <david.sherwood@arm.com> 35565 35566 * tree-vect-data-refs.c (vect_no_alias_p): Replace with... 35567 (vect_compile_time_alias): ...this new function. Do the calculation 35568 on poly_ints rather than trees. 35569 (vect_prune_runtime_alias_test_list): Update call accordingly. 35570 355712018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35572 Alan Hayward <alan.hayward@arm.com> 35573 David Sherwood <david.sherwood@arm.com> 35574 35575 * tree-vect-slp.c (vect_build_slp_tree_1): Handle polynomial 35576 numbers of units. 35577 (vect_schedule_slp_instance): Likewise. 35578 355792018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35580 Alan Hayward <alan.hayward@arm.com> 35581 David Sherwood <david.sherwood@arm.com> 35582 35583 * tree-vect-slp.c (vect_get_and_check_slp_defs): Reject 35584 constant and extern definitions for variable-length vectors. 35585 (vect_get_constant_vectors): Note that the number of units 35586 is known to be constant. 35587 355882018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35589 Alan Hayward <alan.hayward@arm.com> 35590 David Sherwood <david.sherwood@arm.com> 35591 35592 * tree-vect-stmts.c (vectorizable_conversion): Treat the number 35593 of units as polynomial. Choose between WIDE and NARROW based 35594 on multiple_p. 35595 355962018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35597 Alan Hayward <alan.hayward@arm.com> 35598 David Sherwood <david.sherwood@arm.com> 35599 35600 * tree-vect-stmts.c (simd_clone_subparts): New function. 35601 (vectorizable_simd_clone_call): Use it instead of TYPE_VECTOR_SUBPARTS. 35602 356032018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35604 Alan Hayward <alan.hayward@arm.com> 35605 David Sherwood <david.sherwood@arm.com> 35606 35607 * tree-vect-stmts.c (vectorizable_call): Treat the number of 35608 vectors as polynomial. Use build_index_vector for 35609 IFN_GOMP_SIMD_LANE. 35610 356112018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35612 Alan Hayward <alan.hayward@arm.com> 35613 David Sherwood <david.sherwood@arm.com> 35614 35615 * tree-vect-stmts.c (get_load_store_type): Treat the number of 35616 units as polynomial. Reject VMAT_ELEMENTWISE and VMAT_STRIDED_SLP 35617 for variable-length vectors. 35618 (vectorizable_mask_load_store): Treat the number of units as 35619 polynomial, asserting that it is constant if the condition has 35620 already been enforced. 35621 (vectorizable_store, vectorizable_load): Likewise. 35622 356232018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35624 Alan Hayward <alan.hayward@arm.com> 35625 David Sherwood <david.sherwood@arm.com> 35626 35627 * tree-vect-loop.c (vectorizable_live_operation): Treat the number 35628 of units as polynomial. Punt if we can't tell at compile time 35629 which vector contains the final result. 35630 356312018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35632 Alan Hayward <alan.hayward@arm.com> 35633 David Sherwood <david.sherwood@arm.com> 35634 35635 * tree-vect-loop.c (vectorizable_induction): Treat the number 35636 of units as polynomial. Punt on SLP inductions. Use an integer 35637 VEC_SERIES_EXPR for variable-length integer reductions. Use a 35638 cast of such a series for variable-length floating-point 35639 reductions. 35640 356412018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35642 Alan Hayward <alan.hayward@arm.com> 35643 David Sherwood <david.sherwood@arm.com> 35644 35645 * tree.h (build_index_vector): Declare. 35646 * tree.c (build_index_vector): New function. 35647 * tree-vect-loop.c (get_initial_defs_for_reduction): Treat the number 35648 of units as polynomial, forcibly converting it to a constant if 35649 vectorizable_reduction has already enforced the condition. 35650 (vect_create_epilog_for_reduction): Likewise. Use build_index_vector 35651 to create a {1,2,3,...} vector. 35652 (vectorizable_reduction): Treat the number of units as polynomial. 35653 Choose vectype_in based on the largest scalar element size rather 35654 than the smallest number of units. Enforce the restrictions 35655 relied on above. 35656 356572018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35658 Alan Hayward <alan.hayward@arm.com> 35659 David Sherwood <david.sherwood@arm.com> 35660 35661 * tree-vect-data-refs.c (vector_alignment_reachable_p): Treat the 35662 number of units as polynomial. 35663 356642018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35665 Alan Hayward <alan.hayward@arm.com> 35666 David Sherwood <david.sherwood@arm.com> 35667 35668 * target.h (vector_sizes, auto_vector_sizes): New typedefs. 35669 * target.def (autovectorize_vector_sizes): Return the vector sizes 35670 by pointer, using vector_sizes rather than a bitmask. 35671 * targhooks.h (default_autovectorize_vector_sizes): Update accordingly. 35672 * targhooks.c (default_autovectorize_vector_sizes): Likewise. 35673 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): 35674 Likewise. 35675 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. 35676 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. 35677 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. 35678 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. 35679 * omp-general.c (omp_max_vf): Likewise. 35680 * omp-low.c (omp_clause_aligned_alignment): Likewise. 35681 * optabs-query.c (can_vec_mask_load_store_p): Likewise. 35682 * tree-vect-loop.c (vect_analyze_loop): Likewise. 35683 * tree-vect-slp.c (vect_slp_bb): Likewise. 35684 * doc/tm.texi: Regenerate. 35685 * tree-vectorizer.h (current_vector_size): Change from an unsigned int 35686 to a poly_uint64. 35687 * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Take 35688 the vector size as a poly_uint64 rather than an unsigned int. 35689 (current_vector_size): Change from an unsigned int to a poly_uint64. 35690 (get_vectype_for_scalar_type): Update accordingly. 35691 * tree.h (build_truth_vector_type): Take the size and number of 35692 units as a poly_uint64 rather than an unsigned int. 35693 (build_vector_type): Add a temporary overload that takes 35694 the number of units as a poly_uint64 rather than an unsigned int. 35695 * tree.c (make_vector_type): Likewise. 35696 (build_truth_vector_type): Take the number of units as a poly_uint64 35697 rather than an unsigned int. 35698 356992018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35700 Alan Hayward <alan.hayward@arm.com> 35701 David Sherwood <david.sherwood@arm.com> 35702 35703 * target.def (get_mask_mode): Take the number of units and length 35704 as poly_uint64s rather than unsigned ints. 35705 * targhooks.h (default_get_mask_mode): Update accordingly. 35706 * targhooks.c (default_get_mask_mode): Likewise. 35707 * config/i386/i386.c (ix86_get_mask_mode): Likewise. 35708 * doc/tm.texi: Regenerate. 35709 357102018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35711 Alan Hayward <alan.hayward@arm.com> 35712 David Sherwood <david.sherwood@arm.com> 35713 35714 * omp-general.h (omp_max_vf): Return a poly_uint64 instead of an int. 35715 * omp-general.c (omp_max_vf): Likewise. 35716 * omp-expand.c (omp_adjust_chunk_size): Update call to omp_max_vf. 35717 (expand_omp_simd): Handle polynomial safelen. 35718 * omp-low.c (omplow_simd_context): Add a default constructor. 35719 (omplow_simd_context::max_vf): Change from int to poly_uint64. 35720 (lower_rec_simd_input_clauses): Update accordingly. 35721 (lower_rec_input_clauses): Likewise. 35722 357232018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35724 Alan Hayward <alan.hayward@arm.com> 35725 David Sherwood <david.sherwood@arm.com> 35726 35727 * tree-vectorizer.h (vect_nunits_for_cost): New function. 35728 * tree-vect-loop.c (vect_model_reduction_cost): Use it. 35729 * tree-vect-slp.c (vect_analyze_slp_cost_1): Likewise. 35730 (vect_analyze_slp_cost): Likewise. 35731 * tree-vect-stmts.c (vect_model_store_cost): Likewise. 35732 (vect_model_load_cost): Likewise. 35733 357342018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35735 Alan Hayward <alan.hayward@arm.com> 35736 David Sherwood <david.sherwood@arm.com> 35737 35738 * tree-vect-slp.c (vect_record_max_nunits, vect_build_slp_tree_1) 35739 (vect_build_slp_tree_2, vect_build_slp_tree): Change max_nunits 35740 from an unsigned int * to a poly_uint64_pod *. 35741 (calculate_unrolling_factor): New function. 35742 (vect_analyze_slp_instance): Use it. Track polynomial max_nunits. 35743 357442018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35745 Alan Hayward <alan.hayward@arm.com> 35746 David Sherwood <david.sherwood@arm.com> 35747 35748 * tree-vectorizer.h (_slp_instance::unrolling_factor): Change 35749 from an unsigned int to a poly_uint64. 35750 (_loop_vec_info::slp_unrolling_factor): Likewise. 35751 (_loop_vec_info::vectorization_factor): Change from an int 35752 to a poly_uint64. 35753 (MAX_VECTORIZATION_FACTOR): Bump from 64 to INT_MAX. 35754 (vect_get_num_vectors): New function. 35755 (vect_update_max_nunits, vect_vf_for_cost): Likewise. 35756 (vect_get_num_copies): Use vect_get_num_vectors. 35757 (vect_analyze_data_ref_dependences): Change max_vf from an int * 35758 to an unsigned int *. 35759 (vect_analyze_data_refs): Change min_vf from an int * to a 35760 poly_uint64 *. 35761 (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather 35762 than an unsigned HOST_WIDE_INT. 35763 * tree-vect-data-refs.c (vect_analyze_possibly_independent_ddr) 35764 (vect_analyze_data_ref_dependence): Change max_vf from an int * 35765 to an unsigned int *. 35766 (vect_analyze_data_ref_dependences): Likewise. 35767 (vect_compute_data_ref_alignment): Handle polynomial vf. 35768 (vect_enhance_data_refs_alignment): Likewise. 35769 (vect_prune_runtime_alias_test_list): Likewise. 35770 (vect_shift_permute_load_chain): Likewise. 35771 (vect_supportable_dr_alignment): Likewise. 35772 (dependence_distance_ge_vf): Take the vectorization factor as a 35773 poly_uint64 rather than an unsigned HOST_WIDE_INT. 35774 (vect_analyze_data_refs): Change min_vf from an int * to a 35775 poly_uint64 *. 35776 * tree-vect-loop-manip.c (vect_gen_scalar_loop_niters): Take 35777 vfm1 as a poly_uint64 rather than an int. Make the same change 35778 for the returned bound_scalar. 35779 (vect_gen_vector_loop_niters): Handle polynomial vf. 35780 (vect_do_peeling): Likewise. Update call to 35781 vect_gen_scalar_loop_niters and handle polynomial bound_scalars. 35782 (vect_gen_vector_loop_niters_mult_vf): Assert that the vf must 35783 be constant. 35784 * tree-vect-loop.c (vect_determine_vectorization_factor) 35785 (vect_update_vf_for_slp, vect_analyze_loop_2): Handle polynomial vf. 35786 (vect_get_known_peeling_cost): Likewise. 35787 (vect_estimate_min_profitable_iters, vectorizable_reduction): Likewise. 35788 (vect_worthwhile_without_simd_p, vectorizable_induction): Likewise. 35789 (vect_transform_loop): Likewise. Use the lowest possible VF when 35790 updating the upper bounds of the loop. 35791 (vect_min_worthwhile_factor): Make static. Return an unsigned int 35792 rather than an int. 35793 * tree-vect-slp.c (vect_attempt_slp_rearrange_stmts): Cope with 35794 polynomial unroll factors. 35795 (vect_analyze_slp_cost_1, vect_analyze_slp_instance): Likewise. 35796 (vect_make_slp_decision): Likewise. 35797 (vect_supported_load_permutation_p): Likewise, and polynomial 35798 vf too. 35799 (vect_analyze_slp_cost): Handle polynomial vf. 35800 (vect_slp_analyze_node_operations): Likewise. 35801 (vect_slp_analyze_bb_1): Likewise. 35802 (vect_transform_slp_perm_load): Take the vf as a poly_uint64 rather 35803 than an unsigned HOST_WIDE_INT. 35804 * tree-vect-stmts.c (vectorizable_simd_clone_call, vectorizable_store) 35805 (vectorizable_load): Handle polynomial vf. 35806 * tree-vectorizer.c (simduid_to_vf::vf): Change from an int to 35807 a poly_uint64. 35808 (adjust_simduid_builtins, shrink_simd_arrays): Update accordingly. 35809 358102018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35811 Alan Hayward <alan.hayward@arm.com> 35812 David Sherwood <david.sherwood@arm.com> 35813 35814 * match.pd: Handle bit operations involving three constants 35815 and try to fold one pair. 35816 358172018-01-03 Richard Sandiford <richard.sandiford@linaro.org> 35818 35819 * tree-vect-loop-manip.c: Include gimple-fold.h. 35820 (slpeel_make_loop_iterate_ntimes): Add step, final_iv and 35821 niters_maybe_zero parameters. Handle other cases besides a step of 1. 35822 (vect_gen_vector_loop_niters): Add a step_vector_ptr parameter. 35823 Add a path that uses a step of VF instead of 1, but disable it 35824 for now. 35825 (vect_do_peeling): Add step_vector, niters_vector_mult_vf_var 35826 and niters_no_overflow parameters. Update calls to 35827 slpeel_make_loop_iterate_ntimes and vect_gen_vector_loop_niters. 35828 Create a new SSA name if the latter choses to use a ste other 35829 than zero, and return it via niters_vector_mult_vf_var. 35830 * tree-vect-loop.c (vect_transform_loop): Update calls to 35831 vect_do_peeling, vect_gen_vector_loop_niters and 35832 slpeel_make_loop_iterate_ntimes. 35833 * tree-vectorizer.h (slpeel_make_loop_iterate_ntimes, vect_do_peeling) 35834 (vect_gen_vector_loop_niters): Update declarations after above changes. 35835 358362018-01-02 Michael Meissner <meissner@linux.vnet.ibm.com> 35837 35838 * config/rs6000/rs6000.md (floor<mode>2): Add support for IEEE 35839 128-bit round to integer instructions. 35840 (ceil<mode>2): Likewise. 35841 (btrunc<mode>2): Likewise. 35842 (round<mode>2): Likewise. 35843 358442018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 35845 35846 * config/rs6000/rs6000-string.c (expand_block_move): Allow the use of 35847 unaligned VSX load/store on P8/P9. 35848 (expand_block_clear): Allow the use of unaligned VSX 35849 load/store on P8/P9. 35850 358512018-01-02 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 35852 35853 * config/rs6000/rs6000-p8swap.c (swap_feeds_both_load_and_store): 35854 New function. 35855 (rs6000_analyze_swaps): Mark a web unoptimizable if it contains a 35856 swap associated with both a load and a store. 35857 358582018-01-02 Andrew Waterman <andrew@sifive.com> 35859 35860 * config/riscv/linux.h (ICACHE_FLUSH_FUNC): New. 35861 * config/riscv/riscv.md (clear_cache): Use it. 35862 358632018-01-02 Artyom Skrobov <tyomitch@gmail.com> 35864 35865 * web.c: Remove out-of-date comment. 35866 358672018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35868 35869 * expr.c (fixup_args_size_notes): Check that any existing 35870 REG_ARGS_SIZE notes are correct, and don't try to re-add them. 35871 (emit_single_push_insn_1): Move stack_pointer_delta adjustment to... 35872 (emit_single_push_insn): ...here. 35873 358742018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35875 35876 * rtl.h (CONST_VECTOR_ELT): Redefine to const_vector_elt. 35877 (const_vector_encoded_nelts): New function. 35878 (CONST_VECTOR_NUNITS): Redefine to use GET_MODE_NUNITS. 35879 (const_vector_int_elt, const_vector_elt): Declare. 35880 * emit-rtl.c (const_vector_int_elt_1): New function. 35881 (const_vector_elt): Likewise. 35882 * simplify-rtx.c (simplify_immed_subreg): Avoid taking the address 35883 of CONST_VECTOR_ELT. 35884 358852018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35886 35887 * expr.c: Include rtx-vector-builder.h. 35888 (const_vector_mask_from_tree): Use rtx_vector_builder and operate 35889 directly on the tree encoding. 35890 (const_vector_from_tree): Likewise. 35891 * optabs.c: Include rtx-vector-builder.h. 35892 (expand_vec_perm_var): Use rtx_vector_builder and create a repeating 35893 sequence of "u" values. 35894 * vec-perm-indices.c: Include rtx-vector-builder.h. 35895 (vec_perm_indices_to_rtx): Use rtx_vector_builder and operate 35896 directly on the vec_perm_indices encoding. 35897 358982018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35899 35900 * doc/rtl.texi (const_vector): Describe new encoding scheme. 35901 * Makefile.in (OBJS): Add rtx-vector-builder.o. 35902 * rtx-vector-builder.h: New file. 35903 * rtx-vector-builder.c: Likewise. 35904 * rtl.h (rtx_def::u2): Add a const_vector field. 35905 (CONST_VECTOR_NPATTERNS): New macro. 35906 (CONST_VECTOR_NELTS_PER_PATTERN): Likewise. 35907 (CONST_VECTOR_DUPLICATE_P): Likewise. 35908 (CONST_VECTOR_STEPPED_P): Likewise. 35909 (CONST_VECTOR_ENCODED_ELT): Likewise. 35910 (const_vec_duplicate_p): Check for a duplicated vector encoding. 35911 (unwrap_const_vec_duplicate): Likewise. 35912 (const_vec_series_p): Check for a non-duplicated vector encoding. 35913 Say that the function only returns true for integer vectors. 35914 * emit-rtl.c: Include rtx-vector-builder.h. 35915 (gen_const_vec_duplicate_1): Delete. 35916 (gen_const_vector): Call gen_const_vec_duplicate instead of 35917 gen_const_vec_duplicate_1. 35918 (const_vec_series_p_1): Operate directly on the CONST_VECTOR encoding. 35919 (gen_const_vec_duplicate): Use rtx_vector_builder. 35920 (gen_const_vec_series): Likewise. 35921 (gen_rtx_CONST_VECTOR): Likewise. 35922 * config/powerpcspe/powerpcspe.c: Include rtx-vector-builder.h. 35923 (swap_const_vector_halves): Take an rtx pointer rather than rtx. 35924 Build a new vector rather than modifying a CONST_VECTOR in-place. 35925 (handle_special_swappables): Update call accordingly. 35926 * config/rs6000/rs6000-p8swap.c: Include rtx-vector-builder.h. 35927 (swap_const_vector_halves): Take an rtx pointer rather than rtx. 35928 Build a new vector rather than modifying a CONST_VECTOR in-place. 35929 (handle_special_swappables): Update call accordingly. 35930 359312018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35932 35933 * simplify-rtx.c (simplify_const_binary_operation): Use 35934 CONST_VECTOR_ELT instead of XVECEXP. 35935 359362018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35937 35938 * tree-cfg.c (verify_gimple_assign_ternary): Allow the size of 35939 the selector elements to be different from the data elements 35940 if the selector is a VECTOR_CST. 35941 * tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of 35942 ssizetype for the selector. 35943 359442018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35945 35946 * optabs.c (shift_amt_for_vec_perm_mask): Try using series_p 35947 before testing each element individually. 35948 * tree-vect-generic.c (lower_vec_perm): Likewise. 35949 359502018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35951 35952 * selftest.h (selftest::vec_perm_indices_c_tests): Declare. 35953 * selftest-run-tests.c (selftest::run_tests): Call it. 35954 * vector-builder.h (vector_builder::operator ==): New function. 35955 (vector_builder::operator !=): Likewise. 35956 * vec-perm-indices.h (vec_perm_indices::series_p): Declare. 35957 (vec_perm_indices::all_from_input_p): New function. 35958 * vec-perm-indices.c (vec_perm_indices::series_p): Likewise. 35959 (test_vec_perm_12, selftest::vec_perm_indices_c_tests): Likewise. 35960 * fold-const.c (fold_ternary_loc): Use tree_to_vec_perm_builder 35961 instead of reading the VECTOR_CST directly. Detect whether both 35962 vector inputs are the same before constructing the vec_perm_indices, 35963 and update the number of inputs argument accordingly. Use the 35964 utility functions added above. Only construct sel2 if we need to. 35965 359662018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35967 35968 * optabs.c (expand_vec_perm_var): Use an explicit encoding for 35969 the broadcast of the low byte. 35970 (expand_mult_highpart): Use an explicit encoding for the permutes. 35971 * optabs-query.c (can_mult_highpart_p): Likewise. 35972 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Likewise. 35973 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 35974 (vectorizable_bswap): Likewise. 35975 * tree-vect-data-refs.c (vect_grouped_store_supported): Use an 35976 explicit encoding for the power-of-2 permutes. 35977 (vect_permute_store_chain): Likewise. 35978 (vect_grouped_load_supported): Likewise. 35979 (vect_permute_load_chain): Likewise. 35980 359812018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35982 35983 * vec-perm-indices.h (vec_perm_indices_to_tree): Declare. 35984 * vec-perm-indices.c (vec_perm_indices_to_tree): New function. 35985 * tree-ssa-forwprop.c (simplify_vector_constructor): Use it. 35986 * tree-vect-slp.c (vect_transform_slp_perm_load): Likewise. 35987 * tree-vect-stmts.c (vectorizable_bswap): Likewise. 35988 (vect_gen_perm_mask_any): Likewise. 35989 359902018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 35991 35992 * int-vector-builder.h: New file. 35993 * vec-perm-indices.h: Include int-vector-builder.h. 35994 (vec_perm_indices): Redefine as an int_vector_builder. 35995 (auto_vec_perm_indices): Delete. 35996 (vec_perm_builder): Redefine as a stand-alone class. 35997 (vec_perm_indices::vec_perm_indices): New function. 35998 (vec_perm_indices::clamp): Likewise. 35999 * vec-perm-indices.c: Include fold-const.h and tree-vector-builder.h. 36000 (vec_perm_indices::new_vector): New function. 36001 (vec_perm_indices::new_expanded_vector): Update for new 36002 vec_perm_indices class. 36003 (vec_perm_indices::rotate_inputs): New function. 36004 (vec_perm_indices::all_in_range_p): Operate directly on the 36005 encoded form, without computing elided elements. 36006 (tree_to_vec_perm_builder): Operate directly on the VECTOR_CST 36007 encoding. Update for new vec_perm_indices class. 36008 * optabs.c (expand_vec_perm_const): Create a vec_perm_indices for 36009 the given vec_perm_builder. 36010 (expand_vec_perm_var): Update vec_perm_builder constructor. 36011 (expand_mult_highpart): Use vec_perm_builder instead of 36012 auto_vec_perm_indices. 36013 * optabs-query.c (can_mult_highpart_p): Use vec_perm_builder and 36014 vec_perm_indices instead of auto_vec_perm_indices. Use a single 36015 or double series encoding as appropriate. 36016 * fold-const.c (fold_ternary_loc): Use vec_perm_builder and 36017 vec_perm_indices instead of auto_vec_perm_indices. 36018 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 36019 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 36020 (vect_permute_store_chain): Likewise. 36021 (vect_grouped_load_supported): Likewise. 36022 (vect_permute_load_chain): Likewise. 36023 (vect_shift_permute_load_chain): Likewise. 36024 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. 36025 (vect_transform_slp_perm_load): Likewise. 36026 (vect_schedule_slp_instance): Likewise. 36027 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 36028 (vectorizable_mask_load_store): Likewise. 36029 (vectorizable_bswap): Likewise. 36030 (vectorizable_store): Likewise. 36031 (vectorizable_load): Likewise. 36032 * tree-vect-generic.c (lower_vec_perm): Use vec_perm_builder and 36033 vec_perm_indices instead of auto_vec_perm_indices. Use 36034 tree_to_vec_perm_builder to read the vector from a tree. 36035 * tree-vect-loop.c (calc_vec_perm_mask_for_shift): Take a 36036 vec_perm_builder instead of a vec_perm_indices. 36037 (have_whole_vector_shift): Use vec_perm_builder and 36038 vec_perm_indices instead of auto_vec_perm_indices. Leave the 36039 truncation to calc_vec_perm_mask_for_shift. 36040 (vect_create_epilog_for_reduction): Likewise. 36041 * config/aarch64/aarch64.c (expand_vec_perm_d::perm): Change 36042 from auto_vec_perm_indices to vec_perm_indices. 36043 (aarch64_expand_vec_perm_const_1): Use rotate_inputs on d.perm 36044 instead of changing individual elements. 36045 (aarch64_vectorize_vec_perm_const): Use new_vector to install 36046 the vector in d.perm. 36047 * config/arm/arm.c (expand_vec_perm_d::perm): Change 36048 from auto_vec_perm_indices to vec_perm_indices. 36049 (arm_expand_vec_perm_const_1): Use rotate_inputs on d.perm 36050 instead of changing individual elements. 36051 (arm_vectorize_vec_perm_const): Use new_vector to install 36052 the vector in d.perm. 36053 * config/powerpcspe/powerpcspe.c (rs6000_expand_extract_even): 36054 Update vec_perm_builder constructor. 36055 (rs6000_expand_interleave): Likewise. 36056 * config/rs6000/rs6000.c (rs6000_expand_extract_even): Likewise. 36057 (rs6000_expand_interleave): Likewise. 36058 360592018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 36060 36061 * optabs-query.c (can_vec_perm_var_p): Check whether lowering 36062 to qimode could truncate the indices. 36063 * optabs.c (expand_vec_perm_var): Likewise. 36064 360652018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 36066 36067 * Makefile.in (OBJS): Add vec-perm-indices.o. 36068 * vec-perm-indices.h: New file. 36069 * vec-perm-indices.c: Likewise. 36070 * target.h (vec_perm_indices): Replace with a forward class 36071 declaration. 36072 (auto_vec_perm_indices): Move to vec-perm-indices.h. 36073 * optabs.h: Include vec-perm-indices.h. 36074 (expand_vec_perm): Delete. 36075 (selector_fits_mode_p, expand_vec_perm_var): Declare. 36076 (expand_vec_perm_const): Declare. 36077 * target.def (vec_perm_const_ok): Replace with... 36078 (vec_perm_const): ...this new hook. 36079 * doc/tm.texi.in (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Replace with... 36080 (TARGET_VECTORIZE_VEC_PERM_CONST): ...this new hook. 36081 * doc/tm.texi: Regenerate. 36082 * optabs.def (vec_perm_const): Delete. 36083 * doc/md.texi (vec_perm_const): Likewise. 36084 (vec_perm): Refer to TARGET_VECTORIZE_VEC_PERM_CONST. 36085 * expr.c (expand_expr_real_2): Use expand_vec_perm_const rather than 36086 expand_vec_perm for constant permutation vectors. Assert that 36087 the mode of variable permutation vectors is the integer equivalent 36088 of the mode that is being permuted. 36089 * optabs-query.h (selector_fits_mode_p): Declare. 36090 * optabs-query.c: Include vec-perm-indices.h. 36091 (selector_fits_mode_p): New function. 36092 (can_vec_perm_const_p): Check whether targetm.vectorize.vec_perm_const 36093 is defined, instead of checking whether the vec_perm_const_optab 36094 exists. Use targetm.vectorize.vec_perm_const instead of 36095 targetm.vectorize.vec_perm_const_ok. Check whether the indices 36096 fit in the vector mode before using a variable permute. 36097 * optabs.c (shift_amt_for_vec_perm_mask): Take a mode and a 36098 vec_perm_indices instead of an rtx. 36099 (expand_vec_perm): Replace with... 36100 (expand_vec_perm_const): ...this new function. Take the selector 36101 as a vec_perm_indices rather than an rtx. Also take the mode of 36102 the selector. Update call to shift_amt_for_vec_perm_mask. 36103 Use targetm.vectorize.vec_perm_const instead of vec_perm_const_optab. 36104 Use vec_perm_indices::new_expanded_vector to expand the original 36105 selector into bytes. Check whether the indices fit in the vector 36106 mode before using a variable permute. 36107 (expand_vec_perm_var): Make global. 36108 (expand_mult_highpart): Use expand_vec_perm_const. 36109 * fold-const.c: Includes vec-perm-indices.h. 36110 * tree-ssa-forwprop.c: Likewise. 36111 * tree-vect-data-refs.c: Likewise. 36112 * tree-vect-generic.c: Likewise. 36113 * tree-vect-loop.c: Likewise. 36114 * tree-vect-slp.c: Likewise. 36115 * tree-vect-stmts.c: Likewise. 36116 * config/aarch64/aarch64-protos.h (aarch64_expand_vec_perm_const): 36117 Delete. 36118 * config/aarch64/aarch64-simd.md (vec_perm_const<mode>): Delete. 36119 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const) 36120 (aarch64_vectorize_vec_perm_const_ok): Fuse into... 36121 (aarch64_vectorize_vec_perm_const): ...this new function. 36122 (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 36123 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 36124 * config/arm/arm-protos.h (arm_expand_vec_perm_const): Delete. 36125 * config/arm/vec-common.md (vec_perm_const<mode>): Delete. 36126 * config/arm/arm.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 36127 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 36128 (arm_expand_vec_perm_const, arm_vectorize_vec_perm_const_ok): Merge 36129 into... 36130 (arm_vectorize_vec_perm_const): ...this new function. Explicitly 36131 check for NEON modes. 36132 * config/i386/i386-protos.h (ix86_expand_vec_perm_const): Delete. 36133 * config/i386/sse.md (VEC_PERM_CONST, vec_perm_const<mode>): Delete. 36134 * config/i386/i386.c (ix86_expand_vec_perm_const_1): Update comment. 36135 (ix86_expand_vec_perm_const, ix86_vectorize_vec_perm_const_ok): Merge 36136 into... 36137 (ix86_vectorize_vec_perm_const): ...this new function. Incorporate 36138 the old VEC_PERM_CONST conditions. 36139 * config/ia64/ia64-protos.h (ia64_expand_vec_perm_const): Delete. 36140 * config/ia64/vect.md (vec_perm_const<mode>): Delete. 36141 * config/ia64/ia64.c (ia64_expand_vec_perm_const) 36142 (ia64_vectorize_vec_perm_const_ok): Merge into... 36143 (ia64_vectorize_vec_perm_const): ...this new function. 36144 * config/mips/loongson.md (vec_perm_const<mode>): Delete. 36145 * config/mips/mips-msa.md (vec_perm_const<mode>): Delete. 36146 * config/mips/mips-ps-3d.md (vec_perm_constv2sf): Delete. 36147 * config/mips/mips-protos.h (mips_expand_vec_perm_const): Delete. 36148 * config/mips/mips.c (mips_expand_vec_perm_const) 36149 (mips_vectorize_vec_perm_const_ok): Merge into... 36150 (mips_vectorize_vec_perm_const): ...this new function. 36151 * config/powerpcspe/altivec.md (vec_perm_constv16qi): Delete. 36152 * config/powerpcspe/paired.md (vec_perm_constv2sf): Delete. 36153 * config/powerpcspe/spe.md (vec_perm_constv2si): Delete. 36154 * config/powerpcspe/vsx.md (vec_perm_const<mode>): Delete. 36155 * config/powerpcspe/powerpcspe-protos.h (altivec_expand_vec_perm_const) 36156 (rs6000_expand_vec_perm_const): Delete. 36157 * config/powerpcspe/powerpcspe.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): 36158 Delete. 36159 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 36160 (altivec_expand_vec_perm_const_le): Take each operand individually. 36161 Operate on constant selectors rather than rtxes. 36162 (altivec_expand_vec_perm_const): Likewise. Update call to 36163 altivec_expand_vec_perm_const_le. 36164 (rs6000_expand_vec_perm_const): Delete. 36165 (rs6000_vectorize_vec_perm_const_ok): Delete. 36166 (rs6000_vectorize_vec_perm_const): New function. 36167 (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of 36168 an element count and rtx array. 36169 (rs6000_expand_extract_even): Update call accordingly. 36170 (rs6000_expand_interleave): Likewise. 36171 * config/rs6000/altivec.md (vec_perm_constv16qi): Delete. 36172 * config/rs6000/paired.md (vec_perm_constv2sf): Delete. 36173 * config/rs6000/vsx.md (vec_perm_const<mode>): Delete. 36174 * config/rs6000/rs6000-protos.h (altivec_expand_vec_perm_const) 36175 (rs6000_expand_vec_perm_const): Delete. 36176 * config/rs6000/rs6000.c (TARGET_VECTORIZE_VEC_PERM_CONST_OK): Delete. 36177 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 36178 (altivec_expand_vec_perm_const_le): Take each operand individually. 36179 Operate on constant selectors rather than rtxes. 36180 (altivec_expand_vec_perm_const): Likewise. Update call to 36181 altivec_expand_vec_perm_const_le. 36182 (rs6000_expand_vec_perm_const): Delete. 36183 (rs6000_vectorize_vec_perm_const_ok): Delete. 36184 (rs6000_vectorize_vec_perm_const): New function. Remove stray 36185 reference to the SPE evmerge intructions. 36186 (rs6000_do_expand_vec_perm): Take a vec_perm_builder instead of 36187 an element count and rtx array. 36188 (rs6000_expand_extract_even): Update call accordingly. 36189 (rs6000_expand_interleave): Likewise. 36190 * config/sparc/sparc.md (vec_perm_constv8qi): Delete in favor of... 36191 * config/sparc/sparc.c (sparc_vectorize_vec_perm_const): ...this 36192 new function. 36193 (TARGET_VECTORIZE_VEC_PERM_CONST): Redefine. 36194 361952018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 36196 36197 * optabs.c (expand_vec_perm_1): Assert that SEL has an integer 36198 vector mode and that that mode matches the mode of the data 36199 being permuted. 36200 (expand_vec_perm): Split handling of non-CONST_VECTOR selectors 36201 out into expand_vec_perm_var. Do all CONST_VECTOR handling here, 36202 directly using expand_vec_perm_1 when forcing selectors into 36203 registers. 36204 (expand_vec_perm_var): New function, split out from expand_vec_perm. 36205 362062018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 36207 36208 * optabs-query.h (can_vec_perm_p): Delete. 36209 (can_vec_perm_var_p, can_vec_perm_const_p): Declare. 36210 * optabs-query.c (can_vec_perm_p): Split into... 36211 (can_vec_perm_var_p, can_vec_perm_const_p): ...these two functions. 36212 (can_mult_highpart_p): Use can_vec_perm_const_p to test whether a 36213 particular selector is valid. 36214 * tree-ssa-forwprop.c (simplify_vector_constructor): Likewise. 36215 * tree-vect-data-refs.c (vect_grouped_store_supported): Likewise. 36216 (vect_grouped_load_supported): Likewise. 36217 (vect_shift_permute_load_chain): Likewise. 36218 * tree-vect-slp.c (vect_build_slp_tree_1): Likewise. 36219 (vect_transform_slp_perm_load): Likewise. 36220 * tree-vect-stmts.c (perm_mask_for_reverse): Likewise. 36221 (vectorizable_bswap): Likewise. 36222 (vect_gen_perm_mask_checked): Likewise. 36223 * fold-const.c (fold_ternary_loc): Likewise. Don't take 36224 implementations of variable permutation vectors into account 36225 when deciding which selector to use. 36226 * tree-vect-loop.c (have_whole_vector_shift): Don't check whether 36227 vec_perm_const_optab is supported; instead use can_vec_perm_const_p 36228 with a false third argument. 36229 * tree-vect-generic.c (lower_vec_perm): Use can_vec_perm_const_p 36230 to test whether the constant selector is valid and can_vec_perm_var_p 36231 to test whether a variable selector is valid. 36232 362332018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 36234 36235 * optabs-query.h (can_vec_perm_p): Take a const vec_perm_indices *. 36236 * optabs-query.c (can_vec_perm_p): Likewise. 36237 * fold-const.c (fold_vec_perm): Take a const vec_perm_indices & 36238 instead of vec_perm_indices. 36239 * tree-vectorizer.h (vect_gen_perm_mask_any): Likewise, 36240 (vect_gen_perm_mask_checked): Likewise, 36241 * tree-vect-stmts.c (vect_gen_perm_mask_any): Likewise, 36242 (vect_gen_perm_mask_checked): Likewise, 36243 362442018-01-02 Richard Sandiford <richard.sandiford@linaro.org> 36245 36246 * optabs-query.h (qimode_for_vec_perm): Declare. 36247 * optabs-query.c (can_vec_perm_p): Split out qimode search to... 36248 (qimode_for_vec_perm): ...this new function. 36249 * optabs.c (expand_vec_perm): Use qimode_for_vec_perm. 36250 362512018-01-02 Aaron Sawdey <acsawdey@linux.vnet.ibm.com> 36252 36253 * rtlanal.c (canonicalize_condition): Return 0 if final rtx 36254 does not have a conditional at the top. 36255 362562018-01-02 Richard Biener <rguenther@suse.de> 36257 36258 * ipa-inline.c (big_speedup_p): Fix expression. 36259 362602018-01-02 Jan Hubicka <hubicka@ucw.cz> 36261 36262 PR target/81616 36263 * config/i386/x86-tune-costs.h: Increase cost of integer load costs 36264 for generic 4->6. 36265 362662018-01-02 Jan Hubicka <hubicka@ucw.cz> 36267 36268 PR target/81616 36269 Generic tuning. 36270 * x86-tune-costs.h (generic_cost): Reduce cost of FDIV 20->17, 36271 cost of sqrt 20->14, DIVSS 18->13, DIVSD 32->17, SQRtSS 30->14 36272 and SQRTsD 58->18, cond_not_taken_branch_cost. 2->1. Increase 36273 cond_taken_branch_cost 3->4. 36274 362752018-01-01 Jakub Jelinek <jakub@redhat.com> 36276 36277 PR tree-optimization/83581 36278 * tree-loop-distribution.c (pass_loop_distribution::execute): Return 36279 TODO_cleanup_cfg if any changes have been made. 36280 36281 PR middle-end/83608 36282 * expr.c (store_expr_with_bounds): Use simplify_gen_subreg instead of 36283 convert_modes if target mode has the right side, but different mode 36284 class. 36285 36286 PR middle-end/83609 36287 * expr.c (expand_assignment): Fix up a typo in simplify_gen_subreg 36288 last argument when extracting from CONCAT. If either from_real or 36289 from_imag is NULL, use expansion through memory. If result is not 36290 a CONCAT and simplify_gen_subreg fails, try to simplify_gen_subreg 36291 the parts directly to inner mode, if even that fails, use expansion 36292 through memory. 36293 36294 PR middle-end/83623 36295 * expmed.c (expand_shift_1): For 2-byte rotates by BITS_PER_UNIT, 36296 check for bswap in mode rather than HImode and use that in expand_unop 36297 too. 36298 36299Copyright (C) 2018 Free Software Foundation, Inc. 36300 36301Copying and distribution of this file, with or without modification, 36302are permitted in any medium without royalty provided the copyright 36303notice and this notice are preserved. 36304