1 2019-03-01 Jakub Jelinek <jakub@redhat.com>
4 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
7 2019-03-01 Richard Biener <rguenther@suse.de>
10 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
11 argument, defaulted to zero.
12 * passes.c (execute_function_todo): Pass down SSA update flags
14 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
15 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
17 (cleanup_tree_cfg): Get and pass down SSA update flags.
19 2019-03-01 Jakub Jelinek <jakub@redhat.com>
22 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
23 early_lto_debug argument.
25 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
27 PR tree-optimization/89536
28 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
29 only whether bit #0 of the value is 0 instead of the entire value.
31 2019-02-28 Marek Polacek <polacek@redhat.com>
33 PR c++/87068 - missing diagnostic with fallthrough statement.
34 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
35 at the end of a seq, save its location to walk_stmt_info.
36 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
39 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
42 * tree.c (find_atomic_core_type): Move ahead in file.
43 (check_base_type): Correctly compare alignments of atomic types.
45 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
48 * config/i386/i386.c (get_builtin_code_for_version): Identify
49 Westmere from PCLMUL, instead of AES.
51 2019-02-28 Jakub Jelinek <jakub@redhat.com>
54 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
55 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
58 2019-02-28 Tamar Christina <tamar.christina@arm.com>
61 * config/aarch64/aarch64-option-extensions.def: Document it.
62 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
65 2019-02-28 Jakub Jelinek <jakub@redhat.com>
68 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
69 builtins if they don't have a single scalar floating point argument.
72 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
74 PR rtl-optimization/89490
75 * varasm.c (get_block_for_section): Bail out for mergeable sections.
76 (default_use_anchors_for_symbol_p, output_object_block): Assert the
77 block section is not mergeable.
79 2019-02-27 Jakub Jelinek <jakub@redhat.com>
82 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
83 old define_insn to ...
84 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
85 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
86 Rename old define_insn to ...
87 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
88 (thumb2_casesi_internal_pic): New define_expand. Rename old
90 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
91 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
92 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
94 2019-02-27 Richard Biener <rguenther@suse.de>
97 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
99 2019-02-27 Richard Biener <rguenther@suse.de>
101 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
104 2019-02-27 Richard Biener <rguenther@suse.de>
107 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
108 parameter, prefix section name with .gnu.debuglto_ if true.
109 (dwarf2out_finish): Pass false to output_comdat_type_unit.
110 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
112 2019-02-27 Richard Biener <rguenther@suse.de>
115 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
116 rather than on use_debug_types, doing what output_die does.
117 (value_format): Likewise.
119 2019-02-27 Martin Jambor <mjambor@suse.cz>
120 Martin Sebor <msebor@redhat.com>
122 * doc/invoke.texi (Warning Options): Reword description of
125 2019-02-27 Jakub Jelinek <jakub@redhat.com>
127 PR tree-optimization/89280
128 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
129 builtin_setjmp_setup_bb): New functions.
130 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
131 When visiting __builtin_setjmp_setup block, queue in special
132 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
133 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
134 from visited after the loop if they don't have any visited successor
137 2018-02-26 Steve Ellcey <sellcey@marvell.com>
139 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
141 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
143 2019-02-26 Jakub Jelinek <jakub@redhat.com>
146 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
147 with types other than sizetype/ssizetype.
149 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
151 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
152 (enum sparc_processor_type): ...this.
153 (enum sparc_code_model_type): New enumeration type.
154 (enum sparc_memory_model_type): Tweak comments.
155 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
157 (mcmodel): Use sparc_code_model enumeration and variable.
158 (sparc_code_model): New enumeration.
159 (mdebug): Add Undocumented marker.
160 * config/sparc/sparc.h (enum cmodel): Delete.
161 (sparc_cmodel): Likewise.
162 (TARGET_CM_MEDLOW): Adjust to above renaming.
163 (TARGET_CM_MEDMID): Likewise.
164 (TARGET_CM_MEDANY): Likewise.
165 (TARGET_CM_EMBMEDANY): Likewise.
166 * config/sparc/sparc.c (sparc_cmodel): Delete.
167 (sparc_option_override): Remove string/value mapping support for the
168 code model. Move code and memory model support to after the handling
169 of target flags. Do private machine setup last.
170 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
171 (sparc_legitimize_reload_address): Likewise.
172 (sparc_output_mi_thunk): Likewise.
173 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
175 2019-02-26 Jakub Jelinek <jakub@redhat.com>
177 PR tree-optimization/89500
178 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
179 (handle_builtin_strlen): Remove noncst_bound variable. Always
180 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
181 cst if the first cst bytes starting at x are known to be non-zero,
182 even if the string is not zero terminated. Don't try to modify
183 *si for strnlen. Update strlen_to_stridx only for strlen or if
184 we can prove strnlen returns the same value as strlen would.
186 2019-02-26 Martin Liska <mliska@suse.cz>
188 * alloc-pool.h (struct pool_usage): Remove extra
190 * bitmap.h (struct bitmap_usage): Likewise.
191 * ggc-common.c (struct ggc_usage): Likewise.
192 * mem-stats.h (struct mem_usage): Likewise.
193 (mem_alloc_description::dump): Print dash lines
194 here and repeat header at the end of a table report.
195 It's then more readable.
196 * tree-phinodes.c (phinodes_print_statistics): Make
197 horizontal alignment.
198 * tree-ssanames.c (ssanames_print_statistics): Likewise.
199 * vec.c (struct vec_usage): Remove extra print_dash_line.
200 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
202 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
204 * doc/extend.texi (__builtin_object_size):
205 Use @pxref instead of @xref inside parenthesis.
206 (__builtin_has_attribute): Add missing comma after @xref.
207 (__builtin_object_size): Ditto.
208 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
209 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
212 2019-02-26 Jeff Law <law@redhat.com>
214 PR rtl-optimization/87761
215 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
216 detect obviously dead insns and delete them.
218 2019-02-26 Richard Biener <rguenther@suse.de>
220 PR tree-optimization/89505
221 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
222 to handle restrict pointed-to vars with multiple subvars
225 2019-02-26 Richard Biener <rguenther@suse.de>
227 PR tree-optimization/89489
228 * tree-parloops.c (create_loop_fn): Copy over last_clique.
230 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
232 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
233 and move around comment.
234 <BIT_AND_EXPR>: Likewise.
235 <BIT_NOT_EXPR>: Add specific handling for boolean types.
237 2019-02-26 Jakub Jelinek <jakub@redhat.com>
240 * config/i386/i386.c (remove_partial_avx_dependency): Call
241 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
242 after changing possibly many instructions to use that pseudo. Fix up
243 insertion of v4sf_const0 setter at the start of bb.
245 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
248 * doc/extend.texi (Variadic Pointer Args): New section.
250 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
251 Martin Sebor <msebor@gmail.com>
253 * common.opt (Wattribute-alias): Likewise.
254 * doc/invoke.texi (Option Summary): List general form of
255 -Wattribute-alias=. List positive form of -Wmissing-attributes.
256 (-Wmissing-attributes): Invert entry, rewrite and correct default.
257 Add cross-references.
258 (-Wattribute-alias): Rewrite and correct default. Mention
259 considered attributes (same as for -Wmissing-attributes).
261 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
263 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
264 (_mm_cvtpd_ps): Likewise.
265 (_mm_cvttpd_epi32): Likewise.
268 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
269 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
272 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
274 2019-02-25 Tamar Christina <tamar.christina@arm.com>
277 * common/config/aarch64/aarch64-common.c
278 (struct aarch64_option_extension): Add is_synthetic.
279 (all_extensions): Use it.
280 (TARGET_OPTION_INIT_STRUCT): Define hook.
281 (struct gcc_targetm_common): Moved to end.
282 (all_extensions_by_on): New.
283 (opt_ext_cmp, typedef opt_ext): New.
284 (aarch64_option_init_struct): New.
285 (aarch64_contains_opt): New.
286 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
287 * config/aarch64/aarch64-option-extensions.def
288 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
289 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
290 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
291 Set is_synthetic to false.
292 (crypto): Set is_synthetic to true.
293 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
296 2019-02-25 Tamar Christina <tamar.christina@arm.com>
298 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
299 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
300 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
301 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
302 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
303 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
304 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
305 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
307 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
308 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
309 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
310 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
311 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
312 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
313 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
314 vfmlsl_laneq_high_f16): ... To this.
315 * config/arm/neon.md: Update comments.
317 2019-02-25 Tamar Christina <tamar.christina@arm.com>
319 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
320 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
321 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
322 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
323 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
324 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
325 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
326 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
328 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
329 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
330 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
331 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
332 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
333 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
334 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
335 vfmlslq_laneq_high_f16): ... To this.
337 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
339 PR rtl-optimization/86096
340 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
341 comparing mw_order values.
343 2019-02-25 Jakub Jelinek <jakub@redhat.com>
346 * config/arm/arm.md (*subsi3_carryin_const): Use
347 arm_neg_immediate_operand predicate instead of
348 arm_not_immediate_operand, "L" constraint instead of "K" and
349 print it using %n2 instead of %B2.
350 (*subsi3_carryin_const0): New define_insn.
351 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
352 instead of arm_not_operand and "I" constraint instead of "K" and
353 print it using %n3 instead of %B2. Instead of using match_dup 2 add
354 another match_operand and in the condition check that it is negation
356 (*subsi3_carryin_compare_const0): New define_ins.
357 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
358 *subsi3_carryin_const.
359 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
360 split into *subsi3_carryin_compare_const0 if the highpart is zero.
363 * config/arm.vfp.md (*negdf2_vfp): Use
364 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
365 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
367 2019-02-24 Jakub Jelinek <jakub@redhat.com>
369 PR rtl-optimization/89445
370 * simplify-rtx.c (simplify_ternary_operation): Don't use
371 simplify_merge_mask on operands that may trap.
372 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
373 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
374 second operand is CONST_VECTOR, check if any element could be zero.
375 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
376 their operands can trap.
378 2019-02-23 Martin Sebor <msebor@redhat.com>
380 * gimple-ssa-sprintf.c (target_strtol): Rename...
381 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
382 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
383 check for range error.
385 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
388 * opts-common.c (prune_options): Also prune joined switches
389 with Negative and RejectNegative.
390 * config/i386/i386.opt (march=): Add Negative(march=).
391 (mtune=): Add Negative(mtune=).
392 * doc/options.texi: Document Negative used together with Joined
395 2019-02-22 Martin Sebor <msebor@redhat.com>
397 * doc/extend.texi (Other Builtins): Add
398 __builtin_is_constant_evaluated.
400 2019-02-22 Richard Biener <rguenther@suse.de>
402 PR tree-optimization/87609
403 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
405 2019-02-22 Jeff Law <law@redhat.com>
407 PR rtl-optimization/87761
408 * config/mips/mips.md: Add new combiner pattern to recognize
409 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
411 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
414 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
415 destination register in peepholes generating patterns for ADDS/SUBS.
416 (add<mode>3_compare0,
417 *addsi3_compare0_uxtw, add<mode>3_compareC,
418 add<mode>3_compareV_imm, add<mode>3_compareV,
419 *adds_<optab><ALLX:mode>_<GPI:mode>,
420 *subs_<optab><ALLX:mode>_<GPI:mode>,
421 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
422 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
423 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
424 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
425 sub<mode>3_compare1): Allow stack pointer for source register.
426 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
428 2019-02-22 Martin Sebor <msebor@redhat.com>
430 PR tree-optimization/88993
431 PR tree-optimization/88853
432 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
434 (sprintf_dom_walker::call_info::is_string_func): New helper.
435 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
436 for formatted string functions.
437 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
439 2019-02-22 Martin Sebor <msebor@redhat.com>
442 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
443 unreachable subexpressions.
445 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
446 Hongtao Liu <hongtao.liu@intel.com>
447 Sunil K Pandey <sunil.k.pandey@intel.com>
450 * config/i386/i386-passes.def: Add
451 pass_remove_partial_avx_dependency.
452 * config/i386/i386-protos.h
453 (make_pass_remove_partial_avx_dependency): New.
454 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
456 (pass_data_remove_partial_avx_dependency): New.
457 (pass_remove_partial_avx_dependency): Likewise.
458 (make_pass_remove_partial_avx_dependency): Likewise.
459 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
460 (*extendsfdf2): Add avx_partial_xmm_update.
461 (truncdfsf2): Likewise.
462 (*float<SWI48:mode><MODEF:mode>2): Likewise.
463 (SF/DF conversion splitters): Disabled for TARGET_AVX.
465 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
468 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
471 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
474 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
475 (PTA_SKYLAKE): Add PTA_AES.
476 (PTA_GOLDMONT): Likewise.
478 2019-02-22 Sudakshina Das <sudi.das@arm.com>
480 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
481 instruction if enabled.
482 (aarch64_override_options): Remove reference to return address key.
484 2019-02-22 Richard Biener <rguenther@suse.de>
486 PR tree-optimization/89440
487 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
488 not necessary assert.
490 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
493 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
494 (oacc_replace_fn_attrib_attr): ... this new function.
495 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
496 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
498 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
500 * config/arm/arm-cpus.in (ares): Rename to...
501 (neoverse-n1): ... This. Add ares as alias.
502 * config/arm/arm-tables.opt: Regenerate.
503 * config/arm/arm-tune.md: Likewise.
504 * doc/invoke.txt (ARM Options): Document neoverse-n1.
506 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
508 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
509 * config/aarch64/aarch64-tune.md: Regenerate.
510 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
512 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
514 * config/aarch64/aarch64.c (ares_tunings): Rename to...
515 (neoversen1_tunings): ... This.
516 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
517 (neoverse-n1): New CPU.
518 * config/aarch64/aarch64-tune.md: Regenerate.
519 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
521 2019-02-22 Richard Biener <rguenther@suse.de>
524 * cfghooks.h (dependence_hash): New typedef.
525 (struct copy_bb_data): New type.
526 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
527 (duplicate_block): Likewise.
528 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
529 (copy_bbs): Create and pass down copy_bb_data.
530 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
531 (rtl_duplicate_bb): Likewise.
532 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
533 remap dependence info.
535 2019-02-22 Richard Biener <rguenther@suse.de>
537 PR tree-optimization/87609
538 * tree-core.h (tree_base): Document special clique values.
539 * tree-inline.c (remap_dependence_clique): Do not use the
540 special clique value of one.
541 (maybe_set_dependence_info): Use clique one.
542 (clear_dependence_clique): New callback.
543 (compute_dependence_clique): Clear clique one from all refs
544 before assigning it (again).
546 2019-02-21 Martin Sebor <msebor@redhat.com>
548 * doc/extend.texi (__clear_cache): Correct signature.
550 2019-02-21 Ian Lance Taylor <iant@golang.org>
553 * varasm.c (decode_addr_const): Call lookup_constant_def rather
554 than output_constant_def.
555 (add_constant_to_table): New static function.
556 (output_constant_def): Call add_constant_to_table.
557 (tree_output_constant_def): Likewise.
559 2019-02-21 Jakub Jelinek <jakub@redhat.com>
562 * builtins.c (fold_builtin_arith_overflow): If first two args are
563 INTEGER_CSTs, set intres and ovfres to constants rather than calls
566 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
569 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
570 error for -mindirect-branch/-mfunction-return with incompatible
573 2019-02-21 Jakub Jelinek <jakub@redhat.com>
576 * constraints.md (q): Remove.
577 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
580 2019-02-21 Martin Jambor <mjambor@suse.cz>
583 * omp-general.c (omp_extract_for_data): Removed a duplicate call
584 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
585 (omp_adjust_for_condition): ...here. Added necessary parameters.
586 * omp-general.h (omp_adjust_for_condition): Updated declaration.
587 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
588 proper values to new parameters of omp_adjust_for_condition.
590 2019-02-20 Jakub Jelinek <jakub@redhat.com>
593 * expr.c (expand_assignment): If result is a MEM, use change_address
594 instead of simplify_gen_subreg.
596 2019-02-20 Jakub Jelinek <jakub@redhat.com>
597 David Malcolm <dmalcolm@redhat.com>
600 * fold-const.c (decode_field_reference): Return NULL_TREE if
601 lang_hooks.types.type_for_size returns NULL. Check it before
602 overwriting *exp_. Use return NULL_TREE instead of return 0.
604 2019-02-20 Jakub Jelinek <jakub@redhat.com>
608 * toplev.c (do_compile): Double the emin/emax exponents to workaround
611 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
614 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
615 TARGET_SSE in addition to TARGET_SSE_MATH.
617 (ix86_excess_precision): Ditto.
618 (ix86_float_exceptions_rounding_supported_p): Ditto.
619 (use_rsqrt_p): Ditto.
620 * config/i386/sse.md (rsqrt<mode>2): Ditto.
622 2019-02-20 David Malcolm <dmalcolm@redhat.com>
625 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
626 linenum_arith_t when determining if two adjacent line spans are
627 close enough to merge.
628 (diagnostic_show_locus): Use linenum_arith_t when iterating over
629 lines within each line_span.
631 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
634 * lra-constraints.c(uses_hard_regs_p): Fix handling of
637 2019-02-20 Li Jia He <helijia@linux.ibm.com>
640 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
641 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
642 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
645 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
647 * config/gcn/gcn.c (print_operand): Fix typo.
649 2019-02-19 Richard Biener <rguenther@suse.de>
652 * toplev.c (do_compile): Initialize mpfr's exponent range
653 based on available float modes.
655 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
657 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
658 as long as the epilogue isn't completed.
660 2019-02-18 Martin Sebor <msebor@redhat.com>
662 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
663 __has_cpp_attribute, and __has_include.
665 2019-02-18 Martin Sebor <msebor@redhat.com>
667 * doc/invoke.texi (-Wreturn-type): Correct and expand.
669 2019-02-18 Martin Sebor <msebor@redhat.com>
672 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
674 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
676 2019-02-18 Richard Biener <rguenther@suse.de>
678 PR tree-optimization/89296
679 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
680 of no-warning flag to cases that might emit the bogus warning.
682 2019-02-18 Jakub Jelinek <jakub@redhat.com>
685 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
687 * config/arm/vfp.md (*movdi_vfp): Likewise.
688 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
689 "q" constraint for operands[0].
692 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
693 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
694 pattern in a temporary buffer.
695 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
699 * config/s390/s390.c (s390_indirect_branch_attrvalue,
700 s390_indirect_branch_settings): Define unconditionally.
701 (s390_set_current_function): Likewise, but guard the whole body except
702 the s390_indirect_branch_settings call with
703 #if S390_USE_TARGET_ATTRIBUTE.
704 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
706 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
707 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
708 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
709 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
710 HOST_WIDE_INT_1U instead of 1ULL.
711 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
712 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
713 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
714 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
716 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
719 2019-02-18 Martin Jambor <mjambor@suse.cz>
721 PR tree-optimization/89209
722 * tree-sra.c (create_access_replacement): New optional parameter
723 reg_tree. Use it as a type if non-NULL and access type is not of
725 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
726 to create_access_replacement.
727 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
728 Check lacc is non-NULL before attempting to re-create it on the RHS.
730 2019-02-18 Martin Liska <mliska@suse.cz>
733 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
735 (symbol_table::free_edge): Recycle m_summary_id.
736 * cgraph.h (get_summary_id): New.
737 (symbol_table::release_symbol): Set m_summary_id to -1
739 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
740 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
741 function_summary to fast_function_summary.
742 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
743 * ipa-pure-const.c (class funct_state_summary_t):
744 Switch from function_summary to fast_function_summary.
745 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
746 (class ipa_ref_opt_summary_t): Switch from function_summary
747 to fast_function_summary.
748 * symbol-summary.h (class function_summary_base): New class
749 that is created from base of former function_summary.
750 (function_summary_base::unregister_hooks): New.
751 (class function_summary): Inherit from function_summary_base.
752 (class call_summary_base): New class
753 that is created from base of former call_summary.
754 (class call_summary): Inherit from call_summary_base.
755 (struct is_same): New.
756 (class fast_function_summary): New summary class.
757 (class fast_call_summary): New summary class.
758 * vec.h (vec_safe_grow_cleared): New function.
760 2019-02-18 Martin Liska <mliska@suse.cz>
762 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
763 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
764 * doc/tm.texi: Document new target hook.
765 * doc/tm.texi.in: Likewise.
766 * target.def: Add new target macro.
767 * gcc.c (find_fortran_preinclude_file): Do not search multilib
770 2019-02-17 Alan Modra <amodra@gmail.com>
773 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
774 output reg on add insn.
775 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
777 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
780 * config/i386/sse.md (ssedoublemode): Remove V4HI.
781 (PMULHRSW): Likewise.
782 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
784 (ssse3_pmulhrswv4hi3): New expander.
786 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
788 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
789 MMX. Add isa attribute.
791 2019-02-16 Jakub Jelinek <jakub@redhat.com>
793 PR rtl-optimization/66152
794 * builtins.h (c_readstr): Declare.
795 * builtins.c (c_readstr): Remove forward declaration. Add
796 null_terminated_p argument, if false, read all bytes from the
797 string instead of stopping after '\0'.
798 * expr.c (string_cst_read_str): New function.
799 (store_expr): Use string_cst_read_str instead of
800 builtin_strncpy_read_str. Try to store by pieces the whole
801 exp_len first, and only if that fails, split it up into
802 store by pieces followed by clear_storage. Formatting fix.
804 * config/i386/i386.md (*movqi_internal): Remove static from
805 buf variable. Use output_asm_insn (buf, operands); return "";
806 instead of return buf;.
807 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
808 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
809 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
811 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
813 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
814 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
815 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
816 (CC1_SPEC): Likewise.
817 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
819 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
821 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
822 the base address on 64-bit strict-alignment platforms.
824 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
826 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
828 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
830 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
832 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
834 PR rtl-optimization/88308
835 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
836 on copied instruction.
838 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
840 * final.c (insn_current_reference_address): Replace test on JUMP_P
841 with test on jump_to_label_p.
842 * config/visium/visium-passes.def: New file.
843 * config/visium/t-visium (PASSES_EXTRA): Define.
844 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
845 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
846 (TRAMPOLINE_ALIGNMENT): Define.
847 * config/visium/visium.c (visium_option_override): Do not register
848 the machine-specific reorg pass here.
849 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
851 (output_branch): Adjust threshold for long branch instruction.
852 * config/visium/visium.md (cpu): Move around.
853 (length): Adjust for the GR6.
855 2019-02-15 Richard Biener <rguenther@suse.de>
856 Jakub Jelinek <jakub@redhat.com>
858 PR tree-optimization/89278
859 * tree-loop-distribution.c: Include tree-eh.h.
860 (generate_memset_builtin, generate_memcpy_builtin): Call
861 rewrite_to_non_trapping_overflow on builtin->size before passing it
862 to force_gimple_operand_gsi.
864 2019-02-15 Jakub Jelinek <jakub@redhat.com>
867 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
869 * opth-gen.awk: Likewise.
871 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
873 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
874 Enable MMX, SSE and SSE2 by default.
875 * config/i386/i386.c (ix86_option_override_internal): Do not
876 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
878 2019-02-14 Jakub Jelinek <jakub@redhat.com>
880 PR rtl-optimization/89354
881 * combine.c (make_extraction): Punt if extraction_mode is narrower
884 2019-02-14 Maya Rashish <coypu@sdf.org>
886 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
887 * config/netbsd-d.c: New file.
888 * config/t-netbsd: Add netbsd-d.o
890 2018-02-14 Steve Ellcey <sellcey@marvell.com>
892 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
893 affects_type_identity to true for aarch64_vector_pcs.
894 (aarch64_comp_type_attributes): New function.
895 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
897 2019-02-14 Tamar Christina <tamar.christina@arm.com>
900 * config/arm/iterators.md (ANY64): Add V4HF.
902 2019-02-14 Martin Liska <mliska@suse.cz>
904 PR rtl-optimization/89242
905 * dce.c (delete_unmarked_insns): Call free_dominance_info we
906 process a transformation.
908 2019-02-14 Jakub Jelinek <jakub@redhat.com>
910 PR tree-optimization/89314
911 * fold-const.c (fold_binary_loc): Cast strlen argument to
912 const char * before dereferencing it. Formatting fixes.
915 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
917 2019-02-13 Ian Lance Taylor <iant@golang.org>
919 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
920 and set current index for other optimizations.
922 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
924 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
925 nonimmediate_operand as operand 2 predicate.
926 (vec_set<VF2_512_256:mode>_0): Ditto.
927 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
928 (*vec_concatv2si): Remove alternative 2.
929 (*vec_concatv4si_0): Use vm constraint for alternative 0.
930 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
931 (vec_concatv2di): Split alternatives 4,5,6 to ...
932 (*vec_concatv2di_0) ... new pattern.
934 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
937 * config/arm/arm.c (ldm_stm_operation_p) Set
938 addr_reg_in_reglist correctly for first register.
939 (load_multiple_sequence): Remove dead base check.
940 (gen_ldm_seq): Correctly set write_back for Thumb-1.
942 2019-02-13 Tamar Christina <tamar.christina@arm.com>
945 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
946 Expose as @aarch64_pred_mov.
947 * config/aarch64/aarch64.c (aarch64_classify_address):
948 Use expand_insn which legitimizes operands.
950 2019-02-13 Martin Liska <mliska@suse.cz>
952 * builtins.h (expand_builtin_with_bounds): Remove declaration.
953 * calls.c (struct arg_data): Remove special_slot, pointer_arg
954 and pointer_offset fields.
955 (initialize_argument_information): Remove usage of dead
957 * cgraph.h (struct cgraph_thunk_info): Remove
958 add_pointer_bounds_args.
959 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
961 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
963 * config/i386/i386.c (ix86_function_arg_advance): Remove
965 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
966 (def_builtin): Remove usage of dead
968 (ix86_add_new_builtins): Likewise.
969 * ipa-fnsummary.c (compute_fn_summary): Likewise.
970 * ipa-icf.c (sem_function::equals_wpa): Likewise.
971 (sem_function::init): Likewise.
972 (sem_variable::merge): Likewise.
973 * ipa-visibility.c (function_and_variable_visibility): Likewise.
974 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
975 * lto-cgraph.c (lto_output_node): Likewise.
976 (lto_output_varpool_node): Likewise.
977 (input_node): Likewise.
978 (input_varpool_node): Likewise.
979 * lto-streamer-out.c (lto_output): Likewise.
980 * tree-inline.c (expand_call_inline): Remove usage of
982 * tree-inline.h (struct copy_body_data): Likewise.
983 * varpool.c (varpool_node::dump): Likewise.
985 2019-02-13 Jakub Jelinek <jakub@redhat.com>
988 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
989 into pt->vars_contains_escaped_heap instead of setting
990 pt->vars_contains_escaped_heap to it.
993 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
994 INTVAL (size), compare it to GET_MODE_MASK instead of
995 1 << GET_MODE_BITSIZE.
998 * config/i386/predicates.md (x86_64_immediate_operand): Allow
999 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
1002 2019-02-13 Martin Liska <mliska@suse.cz>
1005 * cfgrtl.c (remove_barriers_from_footer): New function.
1006 (try_redirect_by_replacing_jump): Use it.
1007 (cfg_layout_redirect_edge_and_branch): Likewise.
1009 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
1011 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
1012 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
1013 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
1014 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
1015 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
1016 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
1018 * config/rs6000/rs6000.c (builtin_function_type)
1019 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
1020 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
1021 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
1022 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
1023 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
1025 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
1027 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
1028 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
1030 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
1033 * config/i386/i386.md (*movoi_internal_avx): Revert revision
1034 268678 and revision 268657.
1035 (*movti_internal): Likewise.
1037 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
1040 * config/s390/s390.c (s390_decompose_address): Update comment.
1041 (s390_check_qrst_address): Reject invalid address forms after
1044 2019-02-12 Martin Liska <mliska@suse.cz>
1047 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
1048 we need default values of funct_state for a function that
1051 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
1053 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
1054 the object to pick the size of stores on strict-alignment platforms.
1056 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
1057 (*movdi_insn_sp32): Likewise.
1058 (*movdi_insn_sp64): Likewise.
1060 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
1063 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
1064 types that needs constructiong.
1065 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
1067 2019-02-12 Richard Biener <rguenther@suse.de>
1069 PR tree-optimization/89253
1070 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
1073 2019-02-11 David Malcolm <dmalcolm@redhat.com>
1076 * input.c (selftest::test_line_offset_overflow): New selftest.
1077 (selftest::input_c_tests): Call it.
1079 2019-02-11 Martin Sebor <msebor@redhat.com>
1081 PR tree-optimization/88771
1082 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
1083 when -Wstringop-overflow is set.
1084 (builtin_memref::builtin_memref): Adjust excessive upper bound
1085 only when lower bound is not excessive.
1086 (maybe_diag_overlap): Detect and diagnose excessive bounds via
1087 -Wstringop-ovefflow.
1088 (maybe_diag_offset_bounds): Rename...
1089 (maybe_diag_access_bounds): ...to this.
1090 (check_bounds_or_overlap): Adjust for name change above.
1092 2019-02-11 Martin Sebor <msebor@redhat.com>
1095 * builtins.c (max_object_size): Move from here...
1096 * builtins.h (max_object_size): ...and here...
1097 * tree.c (max_object_size): ...to here...
1098 * tree.h (max_object_size): ...and here.
1100 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
1102 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
1103 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
1104 for correct semantics.
1106 2019-02-11 Alan Modra <amodra@gmail.com>
1108 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
1109 -mlongcall and -mpltseq.
1110 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
1111 (RS/6000 and PowerPC Options <-mpltseq>): Document.
1112 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
1113 * config/rs6000/sysv4.opt (mpltseq): New option.
1114 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
1115 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
1116 support is lacking. Don't allow -mpltseq with -mbss-plt.
1117 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
1118 -mpltseq given for ELFv1.
1119 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
1120 Only use UNSPEC_PLTSEQ for inline PLT calls.
1121 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
1122 use UNSPEC_PLTSEQ for inline PLT calls.
1123 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
1124 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
1125 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
1126 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1127 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1128 (pltseq_mtctr_<mode>): Likewise.
1130 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1132 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
1134 * configure: Regenerate.
1136 2019-02-11 Jakub Jelinek <jakub@redhat.com>
1139 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
1142 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
1144 * function.c (assign_parm_setup_block): Use the stored
1145 size, not the passed size, when allocating stack-space,
1146 also for a parameter with alignment larger than
1147 MAX_SUPPORTED_STACK_ALIGNMENT.
1149 2019-02-11 Martin Liska <mliska@suse.cz>
1152 * ipa-cp.c (build_toporder_info): Remove usage of a param.
1153 * ipa-inline.c (inline_small_functions): Likewise.
1154 * ipa-pure-const.c (propagate_pure_const): Likewise.
1155 (propagate_nothrow): Likewise.
1156 * ipa-reference.c (propagate): Likewise.
1157 * ipa-utils.c (struct searchc_env): Remove unused field.
1158 (searchc): Always search across AVAIL_INTERPOSABLE.
1159 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
1160 the only called IPA pure const can properly not propagate
1161 across interposable boundary.
1162 * ipa-utils.h (ipa_reduced_postorder): Remove param.
1164 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
1166 * config/nds32/nds32.md (call_internal, call_value_internal,
1167 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
1169 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
1171 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
1174 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
1176 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
1179 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1181 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
1183 2019-02-10 Jakub Jelinek <jakub@redhat.com>
1185 PR tree-optimization/89268
1186 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
1187 if preds is non-NULL.
1189 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1192 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
1195 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1197 * config/nds32/nds32.md (trap): New pattern.
1199 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1201 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
1204 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1206 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
1209 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1211 * ipa-visibility.c (localize_node): Also do not localize
1212 LDPR_PREVAILING_DEF_IRONLY_EXP.
1214 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1217 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
1218 instead of type_with_linkage.
1220 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1223 * params.def (uninlined-function-insns, uninlined-function-time,
1224 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
1225 bound so we don't get overflows.
1227 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
1229 * config/rs6000/rs6000-string.c (expand_compare_loop,
1230 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
1233 2019-02-09 Jakub Jelinek <jakub@redhat.com>
1236 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1237 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
1238 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
1240 2019-02-09 Alan Modra <amodra@gmail.com>
1243 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
1244 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
1247 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
1250 * lra-constraints.c (process_alt_operands): Don't increase reject
1251 for memory when offset memory is required.
1253 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
1255 * config/s390/vector.md: Implement vector copysign.
1257 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1259 * expr.c (expand_constructor): Correct indentations.
1261 2019-02-08 Richard Biener <rguenther@suse.de>
1263 PR tree-optimization/89247
1264 * tree-if-conv.c: Include tree-cfgcleanup.h.
1265 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
1266 (tree_if_conversion): Pass through predicate vector.
1267 (pass_if_conversion::execute): Do CFG cleanup and SSA update
1268 inline, see if any if-converted loops we refrece in
1269 LOOP_VECTORIZED calls vanished and fixup.
1270 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
1272 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
1274 * config/s390/constraints.md (jdd): New constraint.
1276 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1279 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
1280 upper 16 vector registers without TARGET_AVX512VL.
1281 (*movti_internal): Likewise.
1283 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1285 PR rtl-optimization/89234
1286 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
1287 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
1288 (copy_reg_eh_region_note_backward): Likewise.
1290 2019-02-08 Richard Biener <rguenther@suse.de>
1293 * tree-data-ref.c (initialize_matrix_A): Fail if constant
1295 (analyze_subscript_affine_affine): Handle failure from
1296 initialize_matrix_A.
1298 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1300 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
1303 2019-02-07 David Malcolm <dmalcolm@redhat.com>
1305 PR tree-optimization/86637
1306 PR tree-optimization/89235
1307 * tree-vect-loop.c (optimize_mask_stores): Add an
1308 auto_purge_vect_location sentinel to ensure that vect_location is
1311 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
1312 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
1313 to ensure that vect_location is purged on exit.
1314 (pass_slp_vectorize::execute): Likewise, replacing the manual
1316 * tree-vectorizer.h (class auto_purge_vect_location): New class.
1318 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1320 * config/aarch64/iterators.md (max_opp): New code_attr.
1321 (USMAX): New code iterator.
1322 * config/aarch64/predicates.md (aarch64_smin): New predicate.
1323 (aarch64_smax): Likewise.
1324 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
1325 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
1328 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
1331 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
1332 for TARGET_AVX512VL.
1333 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
1335 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
1337 * config/s390/s390-builtin-types.def: Add new types.
1338 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
1339 (s390_vec_xlw4): Make the memory operand into a const pointer.
1340 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
1342 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
1343 a new vector type with the alignment of the scalar memory operand.
1345 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
1346 Jakub Jelinek <jakub@redhat.com>
1349 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
1350 arm_count_ldrdstrd_insns): New declarations.
1351 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
1353 (valid_operands_ldrd_strd): New function.
1354 (arm_count_ldrdstrd_insns): New function.
1355 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
1356 sets instead of single DImode set and define new insns to match this.
1358 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1360 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
1361 Make it a C initializer.
1363 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1366 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
1368 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1370 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
1371 Use neon_dot<q> for type.
1372 (neon_<sup>dot_lane<vsi2qi>): Likewise.
1374 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1376 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
1377 Use neon_dot<q> for type.
1378 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
1379 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
1381 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
1383 PR rtl-optimization/89225
1384 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
1387 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
1389 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
1390 after restoring registers saved to allocate the frame on Windows.
1392 2019-02-06 Richard Biener <rguenther@suse.de>
1394 PR tree-optimization/89182
1395 * graphite.h (cached_scalar_evolution_in_region): Declare.
1396 * graphite.c (struct seir_cache_key): New.
1397 (struct sese_scev_hash): Likewise.
1398 (seir_cache): New global.
1399 (cached_scalar_evolution_in_region): New function.
1400 (graphite_transform_loops): Allocate and release seir_cache.
1401 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
1402 cached_scalar_evolution_in_region.
1403 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1405 (scop_detection::graphite_can_represent_expr: Use
1406 cached_scalar_evolution_in_region.
1407 (scop_detection::stmt_simple_for_scop_p): Likewise.
1408 (find_params_in_bb): Likewise.
1409 (gather_bbs::before_dom_children): Likewise.
1410 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
1411 (add_loop_constraints): Likewise.
1413 2019-02-06 Jakub Jelinek <jakub@redhat.com>
1416 * fold-const-call.c (fold_const_vec_convert): Pass true as last
1417 operand to new_unary_operation only if both element types are integral
1418 and it isn't a widening conversion. Return NULL_TREE if
1419 new_unary_operation failed.
1421 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
1424 * config/s390/s390.md: Remove load and test FP splitter.
1426 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1429 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
1430 expand_compare_loop, expand_block_compare_gpr,
1431 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
1432 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
1433 #include "profile-count.h" and "predict.h" for types and functions
1434 needed to work with REG_BR_PROB notes.
1436 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1439 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
1440 for the long branch case.
1442 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1445 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
1446 can throw, non-call exceptions are enabled and we can't delete
1447 dead exceptions or alter cfg. Set must_clean if
1448 delete_insn_and_edges returns true, don't set it blindly for calls.
1449 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
1451 PR rtl-optimization/89195
1452 * combine.c (make_extraction): For MEMs, don't extract bytes outside
1453 of the original MEM.
1455 2019-02-05 Martin Liska <mliska@suse.cz>
1457 PR gcov-profile/89000
1458 * gcov.c (function_summary): Remove argument.
1459 (file_summary): New function.
1460 (print_usage): Replace tabs with spaces.
1461 (generate_results): Use new function file_summary.
1463 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1466 * optabs.c (prepare_cmp_insn): Pass x and y to
1467 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
1469 2019-02-05 Richard Biener <rguenther@suse.de>
1472 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
1473 (struct bitmap_element): Drop chain_prev so we properly recurse on
1474 the prev member, supporting tree views.
1475 (struct bitmap_head): GTY skip the obstack member.
1477 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
1480 * doc/extend.texi (Vector Extensions): Add an example of using vector
1481 types together with x86 intrinsics.
1483 2019-02-04 Alan Modra <amodra@gmail.com>
1485 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
1486 str[] size to 160, and comment.
1488 2019-02-04 Alan Modra <amodra@gmail.com>
1490 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
1491 (rs6000_pltseq_template): Guard output of TLS markers with
1493 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
1494 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
1495 to use inline PLT sequences.
1496 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1497 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1498 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
1500 2019-02-04 Martin Liska <mliska@suse.cz>
1503 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
1504 out when ipa_fn_summaries does not contain entry for callee.
1506 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
1508 * config/sparc/sparc.h: Remove superfluous blank lines.
1509 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
1510 (got_register_rtx): ...this.
1511 (sparc_got): Adjust to above renaming.
1512 (sparc_tls_got): Likewise.
1513 (sparc_delegitimize_address): Likewise.
1514 (sparc_output_mi_thunk): Likewise.
1515 (sparc_init_pic_reg): Likewise.
1516 (save_local_or_in_reg_p): Fix test on the GOT register.
1517 (USE_HIDDEN_LINKONCE): Move around.
1518 (get_pc_thunk_name): Likewise.
1519 (gen_load_pcrel_sym): Likewise.
1520 (load_got_register): Likewise.
1522 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
1524 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
1525 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
1527 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1529 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
1532 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1534 * config.gcc (with_nds32_lib, glibc):
1535 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
1536 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
1537 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
1539 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
1542 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
1543 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
1544 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
1545 (*rcpsf2_sse): Ditto.
1546 (*rsqrtsf2_sse): Ditto.
1547 (sse4_1_round<mode<2): Ditto.
1549 2019-02-03 Richard Biener <rguenther@suse.de>
1552 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
1555 2019-02-02 Jakub Jelinek <jakub@redhat.com>
1558 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1559 Punt with warning on aggregate return or argument types. Ignore
1560 type/mode checking for uniform arguments.
1562 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
1564 * combine.c (try_combine): Do not print "Can't combine" messages unless
1565 printing failed combination attempts.
1567 2019-02-01 Martin Jambor <mjambor@suse.cz>
1570 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
1571 segment and global segment variables before making them static.
1573 2019-02-01 Martin Jambor <mjambor@suse.cz>
1575 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
1576 missed optimization dump with dump_enabled_p.
1578 2019-02-01 Richard Biener <rguenther@suse.de>
1581 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
1582 the instantiate cache.
1583 (instantiate_scev_binary): Elide second operand procesing
1584 if equal to the first.
1585 * tree-chrec.c (chrec_contains_symbols): Add visited set.
1586 (chrec_contains_undetermined): Likewise.
1587 (tree_contains_chrecs): Likewise.
1589 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
1591 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
1593 2019-02-01 Jakub Jelinek <jakub@redhat.com>
1595 PR tree-optimization/89143
1596 * wide-int-range.h (wide_int_range_absu): Declare.
1597 * wide-int-range.cc (wide_int_range_absu): New function.
1598 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
1600 PR tree-optimization/88107
1601 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
1602 instead of assertion that eh_region_outermost is non-NULL, if it
1603 is NULL, set *ALL to true and return NULL.
1604 (move_sese_region_to_fn): Adjust caller, if all is set, call
1605 duplicate_eh_regions with NULL region.
1607 2019-02-01 Richard Biener <rguenth@suse.de>
1609 PR rtl-optimization/88593
1610 * mode-switching.c (optimize_mode_switching): Free dominators before
1611 calling cleanup_cfg.
1613 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
1615 PR tree-optimization/88932
1616 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
1618 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1621 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
1622 bogus clang warning.
1624 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
1627 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
1628 alternative to avoid partial SSE register stall for TARGET_AVX.
1629 (truncdfsf2): Ditto.
1630 (sse4_1_round<mode>2): Ditto.
1632 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
1634 PR tree-optimization/89008
1635 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
1636 process anything of the form X * 0.
1638 2019-01-31 Richard Biener <rguenther@suse.de>
1640 PR tree-optimization/89135
1641 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
1642 with abnormal preds.
1644 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1647 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
1648 always_inline callees into no_sanitize_address callers.
1650 2019-01-31 Richard Biener <rguenther@suse.de>
1652 PR rtl-optimization/89115
1653 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
1655 2019-01-30 Martin Sebor <msebor@redhat.com>
1658 * doc/extend.texi (cast to a union): Correct and expand.
1660 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
1662 PR rtl-optimization/87246
1663 * lra-constraints.c (simplify_operand_subreg): Reload memory
1664 in subreg if the address became invalid.
1666 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
1669 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
1670 Disable for little-endian.
1672 2019-01-30 Richard Biener <rguenther@suse.de>
1674 PR rtl-optimization/89115
1675 * opts.c (default_options_optimization): Reduce
1676 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
1677 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
1680 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
1682 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
1683 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
1684 type of vector element when vec_extract is implemented by direct
1687 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
1689 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
1691 2019-01-30 Richard Biener <rguenther@suse.de>
1693 PR tree-optimization/89111
1694 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
1695 canonicalization to appropriately sized access types.
1697 2019-01-30 Jakub Jelinek <jakub@redhat.com>
1700 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
1701 for arguments to functions that are TU-local and shouldn't be
1702 referenced by assembly.
1704 2019-01-30 Ulrich Drepper <drepper@redhat.com>
1706 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
1709 2019-01-29 Martin Sebor <msebor@redhat.com>
1712 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
1714 2019-01-29 Jakub Jelinek <jakub@redhat.com>
1718 * omp-simd-clone.c (simd_clone_clauses_extract)
1719 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
1720 OMP_CLAUSE_ALIGNED_ALIGNMENT.
1722 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
1724 * config.gcc: Force .init_array for ARC.
1726 2019-01-29 Richard Biener <rguenther@suse.de>
1729 * dwarf2out.c (collect_skeleton_dies): New helper.
1730 (copy_decls_for_unworthy_types): Call it.
1731 (build_abbrev_table): Assert we do not try to replace
1732 DW_AT_signature refs with local refs.
1734 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1737 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
1738 for lastprivate/linear IV, push gimplify context around gimplify_assign
1739 and, if it needed any temporaries, pop it into a gimple bind around the
1742 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
1744 * common.opt (-Wattribute-alias): Remove "no-" from name.
1745 Make -Wattribute-alias command line option and
1746 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
1748 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1751 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
1752 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
1754 (bmi2): Add missing @opindex.
1755 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
1756 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
1757 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
1758 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
1759 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
1760 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
1761 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
1762 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
1763 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
1764 xsavec, xsaveopt and xsaves options.
1766 2019-01-28 Richard Biener <rguenther@suse.de>
1769 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
1772 2019-01-28 Richard Biener <rguenther@suse.de>
1774 PR tree-optimization/88739
1775 * tree-cfg.c (verify_types_in_gimple_reference): Verify
1776 BIT_FIELD_REFs only are applied to mode-precision operands
1777 when they are integral.
1778 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
1779 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
1780 BIT_FIELD_REFs of non-mode-precision integral operands.
1782 2019-01-27 Jakub Jelinek <jakub@redhat.com>
1785 * config/i386/sse.md
1786 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
1787 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
1788 first constants in pairs are multiples of 2. Formatting fixes.
1789 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
1790 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
1791 first constants in each quadruple are multiples of 4. Formatting fixes.
1793 2019-01-26 Martin Jambor <mjambor@suse.cz>
1796 * tree-inline.c: Include tree-cfgcleanup.h.
1797 (delete_unreachable_blocks_update_callgraph): Move...
1798 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
1799 ...here, make externally visible, make second argument bool, adjust
1801 * tree-cfgcleanup.c: Include cgraph.h.
1802 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
1804 * ipa-prop.c: Include tree-cfgcleanup.h.
1805 (ipcp_transform_function): Call
1806 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
1808 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
1810 PR rtl-optimization/88846
1811 * ira.c (process_set_for_memref_referenced_p): New.
1812 (memref_referenced_p): Add new param. Use
1813 process_set_for_memref_referenced_p. Add new switch cases.
1814 (memref_used_between_p): Pass new arg to memref_referenced_p.
1816 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
1819 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
1820 argument ABI_BREAK. Set to true if the calculated alignment has
1821 changed in gcc-9. Check bit-fields for their base type alignment.
1822 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
1823 (aarch64_function_arg_boundary): Likewise.
1824 (aarch64_gimplify_va_arg_expr): Likewise.
1826 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1829 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
1830 instead of accessing TREE_INT_CST_ELT directly.
1832 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
1834 * doc/sourcebuild.texi (Environment attributes): Add fenv and
1835 fenv_exceptions description.
1837 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
1839 PR rtl-optimization/87763
1840 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
1841 Allow SUBREG when matching CC_NZmode compare.
1843 2019-01-25 Richard Biener <rguenther@suse.de>
1845 PR tree-optimization/89049
1846 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
1847 Look at the pattern stmt to determine if the stmt is vectorized.
1849 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1851 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
1852 (pred_mov<mode>): Handle all-register forms using both a new
1853 alternative and a split.
1855 2019-01-25 Richard Biener <rguenther@suse.de>
1857 PR tree-optimization/86865
1858 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1859 Reject non-do-while loops.
1861 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
1863 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
1864 * config/rs6000/constraints.md (Q constraint): Use REG_P.
1865 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
1866 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1867 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
1868 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1869 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
1870 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
1871 vlogical_operand, gpc_reg_operand, int_reg_operand,
1872 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
1873 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
1874 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
1875 (save_world_operation, restore_world_operation, lmw_operation,
1876 stmw_operation): Use MEM_P and REG_P.
1877 (tie_operand): Use MEM_P.
1878 (vrsave_operation, crsave_operation): Use REG_P.
1879 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
1880 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
1881 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
1882 (call_operand): Use HARD_REGISTER_P.
1883 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
1885 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
1886 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
1887 quad_aligned_load_p, replace_swapped_aligned_store,
1888 recombine_lvx_pattern, replace_swapped_aligned_load,
1889 recombine_stvx_pattern): Use MEM_P.
1890 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
1891 Use MEM_P and SYMBOL_REF_P.
1892 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
1893 (insn_is_swappable_p): Use REG_P and MEM_P.
1894 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
1895 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
1897 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1899 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1901 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
1902 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
1903 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
1904 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
1906 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1907 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
1908 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
1909 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
1910 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
1911 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
1912 rs6000_split_logical_di): Use CONST_INT_P.
1913 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
1914 REG_P and SYMBOL_REF_P.
1915 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
1916 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
1917 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
1918 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
1919 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
1920 (small_data_operand, print_operand_address): Use CONST_INT_P and
1922 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
1923 (rs6000_init_hard_regno_mode_ok, direct_move_p):
1924 Use HARD_REGISTER_NUM_P.
1925 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
1926 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
1927 SUBREG_P and SYMBOL_REF_P.
1928 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
1929 and HARD_REGISTER_NUM_P.
1930 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
1932 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1933 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1935 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
1936 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
1937 find_addr_reg): Use REG_P.
1938 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
1939 (rs6000_emit_le_vsx_move): Use SUBREG_P.
1940 (offsettable_ok_by_alignment, constant_pool_expr_p,
1941 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
1942 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
1943 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
1944 rs6000_assemble_integer, create_TOC_reference,
1945 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
1946 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
1947 (rs6000_split_vec_extract_var): Use reg_or_subregno.
1948 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1949 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1950 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1951 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1952 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
1953 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
1954 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
1955 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
1956 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
1957 and cbranch<mode>4): Use CONST_INT_P.
1958 (multiple define_splits): Use REG_P and SUBREG_P.
1959 (define_expands call, call_value): Use MEM_P.
1960 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
1961 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
1962 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
1963 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
1964 and HARD_REGISTER_NUM_P.
1965 (multiple define_splits): Use HARD_REGISTER_NUM_P.
1967 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1969 PR rtl-optimization/88948
1970 * rtl.h (prepare_copy_insn): New prototype.
1971 * gcse.c (prepare_copy_insn): New function, split out from
1972 process_insert_insn.
1973 (process_insert_insn): Use prepare_copy_insn.
1974 * store-motion.c (replace_store_insn): Use prepare_copy_insn
1975 instead of gen_move_insn.
1977 2019-01-24 Jakub Jelinek <jakub@redhat.com>
1980 * config/i386/i386.c (ix86_pic_register_p): Return true for
1983 PR tree-optimization/88964
1984 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1985 punt if HONOR_SNANS (chrec).
1988 * tree-nested.c (convert_nonlocal_reference_stmt,
1989 convert_local_reference_stmt, convert_tramp_reference_stmt,
1990 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
1991 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
1994 PR tree-optimization/89027
1995 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
1996 for "omp simd array" variables.
1998 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
2001 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
2002 force the alignment of m_val.
2004 2019-01-24 Richard Biener <rguenther@suse.de>
2007 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
2008 When in "legacy" debug mode make sure to reset self-origins.
2010 2019-01-24 Martin Liska <mliska@suse.cz>
2012 PR gcov-profile/88994
2013 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
2014 result will be always smaller or equal to the original.
2015 * gcov.c (mangle_name): Fix else branch where we should
2016 also copy to PTR and shift the pointer.
2018 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
2020 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
2021 * vr-values.c (find_case_label_ranges): Fix a comment typo.
2023 2019-01-23 Bin Cheng <bin.cheng@arm.com>
2024 Steve Ellcey <sellcey@marvell.com>
2027 * recog.c (address_operand): Return false on wrong mode for address.
2028 (constrain_operands): Check for mode with 'p' constraint.
2030 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
2033 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
2034 Disparage MMX alternative.
2035 (sse2_cvtpd2pi): Ditto.
2036 (sse2_cvttpd2pi): Ditto.
2038 2019-01-23 David Malcolm <dmalcolm@redhat.com>
2041 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
2042 use-after-free of the result of
2043 aarch64_get_extension_string_for_isa_flags.
2045 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2048 * doc/extend.texi: Document break and continue behavior in
2049 statement expressions.
2051 2019-01-23 Richard Biener <rguenther@suse.de>
2053 PR tree-optimization/89008
2054 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
2055 not leave another stray operand.
2057 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2059 * BASE-VER: Bump to 9.0.1.
2061 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
2063 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
2064 thunk that returns by reference, use the type of the return object
2065 of the thunk instead of that of the alias to build the dereference.
2067 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
2069 * config/arc/atomic.md: Add operand to DMB instruction.
2071 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2073 PR tree-optimization/88964
2074 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
2075 build_zero_cst instead of build_int_cst. Return false for loop
2076 invariants which honor signed zeros.
2078 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
2080 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
2082 2019-01-22 Jakub Jelinek <jakub@redhat.com>
2085 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
2086 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
2087 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
2090 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
2091 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
2094 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
2095 Disable for little endian.
2097 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
2100 * config/arm/arm.c (arm_needs_double_word_align): Check
2101 DECL_BIT_FIELD_TYPE.
2103 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
2104 H.J. Lu <hongjiu.lu@intel.com>
2107 * config/i386/i386-builtin.def: Add mask2 to all builtin
2108 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
2110 * config/i386/i386.c (BDESC): Add mask2 to the definition.
2111 (BDESC_FIRST): Likewise.
2112 (define_builtin): Add an argument for mask2. Updated to handle
2113 both ix86_isa_flags and ix86_isa_flags2.
2114 (define_builtin_const): Likewise.
2115 (define_builtin_pure): Likewise.
2116 (define_builtin2): Deleted.
2117 (define_builtin_const2): Likewise.
2118 (builtin_description): Add a member, mask2.
2119 (bdesc_*): Add mask2 to builtin initializations.
2120 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
2121 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
2123 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
2125 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
2128 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
2131 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
2134 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
2135 alignment is dominated by a bitfield with 64-bit aligned base type.
2136 (arm_function_arg): Emit a warning if the alignment has changed since
2137 earlier GCC releases.
2138 (arm_function_arg_boundary): Likewise.
2139 (arm_setup_incoming_varargs): Likewise.
2141 2019-01-22 Richard Biener <rguenther@suse.de>
2143 PR tree-optimization/88862
2144 * graphite-scop-detection.c
2145 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
2147 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
2149 * doc/extend.tex (AMD GCN Function Attributes): New section.
2150 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
2151 * doc/invoke.texi (AMD GCN Options): New section.
2152 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
2154 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
2156 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
2157 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
2159 2019-01-22 Jakub Jelinek <jakub@redhat.com>
2161 PR tree-optimization/88044
2162 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
2163 is false in the first iteration, but !every_iteration, return false
2164 instead of true with niter->niter zero.
2166 PR rtl-optimization/88904
2167 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
2168 any nonequal registers before processing BB_END (b).
2171 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
2173 (expand_binop_directly, expand_doubleword_clz,
2174 expand_doubleword_popcount, expand_ctz, expand_ffs,
2175 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
2177 PR rtl-optimization/49429
2179 PR rtl-optimization/86334
2181 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
2182 addressable from here...
2183 (emit_block_op_via_libcall): ... to here.
2185 2019-01-22 Richard Biener <rguenther@suse.de>
2187 * tree-vect-loop.c (vect_analyze_loop_operations): Use
2188 auto_vec for cost vector to fix memleak.
2189 (vectorize_fold_left_reduction): Properly gather SLP defs.
2190 (vectorizable_comparison): Do not swap operands to properly
2193 2019-01-22 Alan Modra <amodra@gmail.com>
2196 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
2197 stays a reg. Allow a const_int.
2198 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
2199 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
2200 (IS_NOMARK_TLSGETADDR): Define.
2201 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
2202 (rs6000_output_tlsargs): New function.
2203 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
2204 __tls_get_addr call takes an arg.
2205 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
2206 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
2208 (call_value_nonlocal_sysv): ..or here, delete split.
2209 (tls_gdld_nomark): Delete.
2210 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
2211 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
2212 (call_value_nonlocal_sysv): Likewise.
2213 (call_value_nonlocal_sysv_secure): Likewise.
2214 (call_value_nonlocal_aix): Likewise.
2215 (call_value_indirect_aix): Likewise.
2216 (call_value_indirect_elfv2): Likewise.
2217 (call_value_local32, call_value_local64): Disable for no-mark tls.
2218 (call_value_local_aix): Likewise.
2220 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
2223 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
2224 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
2226 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
2228 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
2229 string contents as hash_map keys.
2231 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2234 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
2235 for rvalue context. Handle rvalues correctly. Use min_align_of_type
2236 instead of TYPE_ALIGN.
2237 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
2238 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
2239 pointer from TYPE_STUB_DECL.
2241 2019-01-21 Richard Biener <rguenther@suse.de>
2243 PR tree-optimization/88934
2244 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
2245 at the possibly non-constant operand.
2246 (vect_get_constant_vectors): Adjust.
2248 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
2251 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
2252 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
2253 instead of _X86INTRIN_H_INCLUDED.
2254 * onfig/i386/clwbintrin.h: Likewise.
2255 * config/i386/pkuintrin.h: Likewise.
2256 * config/i386/prfchwintrin.h: Likewise.
2257 * config/i386/rdseedintrin.h: Likewise.
2258 * config/i386/wbnoinvdintrin.h: Likewise.
2259 * config/i386/xsavecintrin.h: Likewise.
2260 * config/i386/xsavesintrin.h: Likewise.
2261 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
2262 * config/i386/xsaveintrin.h: Likewise.
2263 * config/i386/xsaveoptintrin.h: Likewise.
2264 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
2265 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
2266 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
2267 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
2268 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
2269 * config/i386/immintrin.h: Here.
2271 2019-01-20 Martin Jambor <mjambor@suse.cz>
2274 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
2275 with aa_walk_budget.
2276 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
2277 aa_walk_budget_p parameter.
2278 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
2279 walk. Updated all callers.
2280 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
2281 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
2283 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
2284 parameter info. Extract info from fbi. Pass fbi to recursive calls
2285 and to unmodified_parm.
2286 (phi_result_unknown_predicate): New parameter fbi, removed parameter
2287 info, updated call to will_be_nonconstant_expr_predicate.
2288 (param_change_prob): New parameter fbi, limit AA walking.
2289 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
2290 calls to various above functions.
2291 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
2292 parameter. Use it to limit AA walking.
2293 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
2295 (detect_type_change): New parameter fbi, pass it on to
2296 detect_type_change_from_memory_writes.
2297 (detect_type_change_ssa): Likewise.
2298 (aa_overwalked): Removed.
2299 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
2300 accordingly, adjust to the neew AA limiting scheme.
2301 (parm_ref_data_preserved_p): Likewise.
2302 (ipa_compute_jump_functions_for_edge): Adjust call to
2304 (ipa_analyze_call_uses): Likewise.
2305 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
2306 (ipa_analyze_node): Initialize aa_walk_budget.
2307 (ipcp_transform_function): Likewise.
2308 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
2309 to get_dynamic_type.
2311 2019-01-19 Jakub Jelinek <jakub@redhat.com>
2313 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
2314 outside of #if CHECKING_P code.
2316 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
2318 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
2319 New function, split out from...
2320 (loop_versioning::analyze_stride): ...here.
2321 (loop_versioning::find_per_loop_multiplication): Use gassign.
2322 (loop_versioning::analyze_term_using_scevs): Return a success code.
2323 (loop_versioning::analyze_arbitrary_term): New function.
2324 (loop_versioning::analyze_address_fragment): Use
2325 analyze_arbitrary_term if all else fails.
2327 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
2330 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
2333 2019-01-18 Richard Biener <rguenther@suse.de>
2335 PR tree-optimization/88903
2336 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
2337 scalar stmts a SLP shift amount is composed of when detecting
2340 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
2343 * config/arm/arm-cpus.in (mp): New feature.
2345 (fgroup ARMv7ve): Add mp and sec features.
2346 (arch armv7-a): Add options to allow mp and sec extensions.
2347 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
2348 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
2349 extenstions to the base architecture.
2350 (cpu cortex-a8): Add sec extension to the base architecture.
2351 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
2352 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
2353 variants down to the base v7-a varaint.
2354 * config/arm/t-multilib (v7_a_arch_variants): New variable.
2355 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
2356 of permitted extensions for -march=armv7-a and for
2357 -mcpu=generic-armv7-a.
2359 2019-01-18 Martin Liska <mliska@suse.cz>
2361 * params.def: Fix comment.
2362 * tree-profile.c (gimple_init_gcov_profiler): Bump function
2364 (gimple_gen_ic_func_profiler): Likewise.
2366 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2368 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
2369 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
2370 and put in error checks for stack protector guard options.
2371 (aarch64_stack_protect_guard): New.
2372 (TARGET_STACK_PROTECT_GUARD): Define.
2373 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
2374 (reg_stack_protect_address<mode>): New.
2375 (stack_protect_set): Adjust for SSP_GLOBAL.
2376 (stack_protect_test): Likewise.
2377 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
2378 (-mstack-protector-guard): Likewise.
2379 (-mstack-protector-guard-offset): Likewise.
2381 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2383 PR tree-optimization/86214
2384 * tree-inline.h (struct copy_body_data): Add
2385 add_clobbers_to_eh_landing_pads member.
2386 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
2387 (copy_edges_for_bb): Call it if EH edge destination is <
2388 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
2389 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
2390 if flag_stack_reuse != SR_NONE and clear it afterwards.
2392 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
2395 * doc/install.texi (with-multilib-list): Document for aarch64.
2397 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2400 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
2401 (("..."))) with ("...").
2403 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
2405 * doc/extend.texi (Built-in Functions for Memory Model Aware
2406 Atomic Operations): Document atomic fetch and nand.
2408 2019-01-18 Martin Liska <mliska@suse.cz>
2409 Richard Biener <rguenther@suse.de>
2412 * cgraph.h (create_version_clone_with_body): Add new argument
2414 * cgraphclones.c (cgraph_node::create_version_clone): Add
2415 DECL_ATTRIBUTES to a newly created decl. And call
2416 valid_attribute_p so that proper cl_target_optimization_node
2417 is set for the newly created declaration.
2418 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
2420 (expand_target_clones): Do not call valid_attribute_p, it must
2422 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
2425 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2428 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
2429 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
2430 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
2432 2019-01-17 Martin Sebor <msebor@redhat.com>
2435 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
2436 Handle anti-ranges the same as no range at all.
2438 2018-01-17 Steve Ellcey <sellcey@cavium.com>
2440 * config/aarch64/aarch64.c (cgraph.h): New include.
2441 (intl.h): New include.
2442 (supported_simd_type): New function.
2443 (currently_supported_simd_type): Ditto.
2444 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
2445 (aarch64_simd_clone_adjust): Ditto.
2446 (aarch64_simd_clone_usable): Ditto.
2447 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
2448 (TARGET_SIMD_CLONE_ADJUST): Ditto.
2449 (TARGET_SIMD_CLONE_USABLE): Ditto.
2450 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
2451 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
2454 2019-01-17 Martin Sebor <msebor@redhat.com>
2456 PR tree-optimization/88800
2457 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
2458 NO_WARNING bit here. Avoid folding out-of-bounds calls.
2459 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
2460 redundant argument. Add new argument and issue diagnostics under
2461 its control. Detect out-of-bounds access even with warnings
2463 (check_bounds_or_overlap): Change return type. Add argument.
2464 (wrestrict_dom_walker::check_call): Adjust.
2465 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
2466 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
2467 check_bounds_or_overlap's return value.
2468 (handle_builtin_stxncpy): Same.
2469 (handle_builtin_strcat): Same.
2471 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2472 Kwok Cheung Yeung <kcy@codesourcery.com>
2473 Julian Brown <julian@codesourcery.com>
2474 Tom de Vries <tom@codesourcery.com>
2476 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
2478 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2480 * doc/sourcebuild.texi: Document dg-require-effective-target
2481 llvm_binutils and offload_gcn.
2483 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2484 Kwok Cheung Yeung <kcy@codesourcery.com>
2485 Julian Brown <julian@codesourcery.com>
2486 Tom de Vries <tom@codesourcery.com>
2488 * doc/sourcebuild.texi: Document dg-required-effective-target
2491 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2492 Kwok Cheung Yeung <kcy@codesourcery.com>
2493 Julian Brown <julian@codesourcery.com>
2494 Tom de Vries <tom@codesourcery.com>
2495 Jan Hubicka <hubicka@ucw.cz>
2496 Martin Jambor <mjambor@suse.cz>
2498 * config.gcc: Add amdgcn*-*-amdhsa configuration.
2499 * configure.ac: Check for dlopen.
2500 * configure: Regenerate.
2502 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2503 Kwok Cheung Yeung <kcy@codesourcery.com>
2504 Julian Brown <julian@codesourcery.com>
2505 Tom de Vries <tom@codesourcery.com>
2506 Jan Hubicka <hubicka@ucw.cz>
2507 Martin Jambor <mjambor@suse.cz>
2509 * common/config/gcn/gcn-common.c: New file.
2510 * config/gcn/driver-gcn.c: New file.
2511 * config/gcn/gcn-builtins.def: New file.
2512 * config/gcn/gcn-hsa.h: New file.
2513 * config/gcn/gcn-modes.def: New file.
2514 * config/gcn/gcn-opts.h: New file.
2515 * config/gcn/gcn-passes.def: New file.
2516 * config/gcn/gcn-protos.h: New file.
2517 * config/gcn/gcn-run.c: New file.
2518 * config/gcn/gcn-tree.c: New file.
2519 * config/gcn/gcn.c: New file.
2520 * config/gcn/gcn.h: New file.
2521 * config/gcn/gcn.opt: New file.
2522 * config/gcn/t-gcn-hsa: New file.
2524 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2525 Kwok Cheung Yeung <kcy@codesourcery.com>
2526 Julian Brown <julian@codesourcery.com>
2527 Tom de Vries <tom@codesourcery.com>
2528 Jan Hubicka <hubicka@ucw.cz>
2529 Martin Jambor <mjambor@suse.cz>
2531 * config/gcn/constraints.md: New file.
2532 * config/gcn/gcn-valu.md: New file.
2533 * config/gcn/gcn.md: New file.
2534 * config/gcn/predicates.md: New file.
2536 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
2538 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
2539 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
2540 (stmt_uses_0_or_null_in_undefined_way): Likewise.
2541 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
2543 2019-01-17 Tamar Christina <tamar.christina@arm.com>
2546 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
2547 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
2548 it and document registers.
2550 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2552 * config/aarch64/aarch64.c (ares_tunings): Define.
2553 * config/aarch64/aarch64-cores.def (ares): Use the above.
2555 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2559 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
2561 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
2562 (_mm512_fixupimm_round_pd): Update parameters and builtin.
2563 (_mm512_maskz_fixupimm_round_pd): Ditto.
2564 (_mm512_fixupimm_round_ps): Ditto.
2565 (_mm512_maskz_fixupimm_round_ps): Ditto.
2566 (_mm_fixupimm_round_sd): Ditto.
2567 (_mm_maskz_fixupimm_round_sd): Ditto.
2568 (_mm_fixupimm_round_ss): Ditto.
2569 (_mm_maskz_fixupimm_round_ss): Ditto.
2570 (_mm512_fixupimm_pd): Ditto.
2571 (_mm512_maskz_fixupimm_pd): Ditto.
2572 (_mm512_fixupimm_ps): Ditto.
2573 (_mm512_maskz_fixupimm_ps): Ditto.
2574 (_mm_fixupimm_sd): Ditto.
2575 (_mm_maskz_fixupimm_sd): Ditto.
2576 (_mm_fixupimm_ss): Ditto.
2577 (_mm_maskz_fixupimm_ss): Ditto.
2578 (_mm512_mask_fixupimm_round_pd): Update builtin.
2579 (_mm512_mask_fixupimm_round_ps): Ditto.
2580 (_mm_mask_fixupimm_round_sd): Ditto.
2581 (_mm_mask_fixupimm_round_ss): Ditto.
2582 (_mm512_mask_fixupimm_pd): Ditto.
2583 (_mm512_mask_fixupimm_ps): Ditto.
2584 (_mm_mask_fixupimm_sd): Ditto.
2585 (_mm_mask_fixupimm_ss): Ditto.
2586 * config/i386/avx512vlintrin.h:
2587 (_mm256_fixupimm_pd): Update parameters and builtin.
2588 (_mm256_maskz_fixupimm_pd): Ditto.
2589 (_mm256_fixupimm_ps): Ditto.
2590 (_mm256_maskz_fixupimm_ps): Ditto.
2591 (_mm_fixupimm_pd): Ditto.
2592 (_mm_maskz_fixupimm_pd): Ditto.
2593 (_mm_fixupimm_ps): Ditto.
2594 (_mm_maskz_fixupimm_ps): Ditto.
2595 (_mm256_mask_fixupimm_pd): Update builtin.
2596 (_mm256_mask_fixupimm_ps): Ditto.
2597 (_mm_mask_fixupimm_pd): Ditto.
2598 (_mm_mask_fixupimm_ps): Ditto.
2599 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
2600 * config/i386/i386-builtin.def: Update builtin definitions.
2601 * config/i386/i386.c: Handle new builtin types and remove useless ones.
2602 * config/i386/sse.md: Update VFIXUPIMM* patterns.
2603 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2604 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2605 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
2606 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2607 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2608 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
2609 * config/i386/subst.md:
2610 (round_saeonly_sd_mask_operand4): Add new subst_attr.
2611 (round_saeonly_sd_mask_op4): Ditto.
2612 (round_saeonly_expand_operand5): Ditto.
2613 (round_saeonly_expand): Update.
2615 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2619 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
2621 * config/i386/sse.md: Combine VFIXUPIMM* patterns
2622 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2623 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2624 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
2625 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2626 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2627 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
2629 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2633 2018-12-15 Jakub Jelinek <jakub@redhat.com>
2636 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
2637 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
2638 instead of UNSPEC_FIXUPIMM.
2640 2019-01-17 Richard Biener <rguenther@suse.de>
2643 * dwarf2out.c (want_pubnames): Never generate pubnames sections
2644 and friends for the LTO part of debug info.
2646 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2648 PR tree-optimization/86214
2649 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
2652 PR rtl-optimization/88870
2653 * dce.c (deletable_insn_p): Never delete const/pure calls that can
2654 throw if we can't alter the cfg or delete dead exceptions.
2655 (mark_insn): Don't call find_call_stack_args for such calls.
2657 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
2659 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
2660 prototypes for vec_st.
2661 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
2662 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
2663 mainly on signed/unsigned long long and double.
2665 2019-01-16 David Malcolm <dmalcolm@redhat.com>
2668 * combine.c (delete_noop_moves): Convert to "bool" return,
2669 returning true if any edges are eliminated.
2670 (combine_instructions): Also return true if delete_noop_moves
2673 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2675 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
2676 correct max nunits for endian swap.
2677 (aarch64_expand_fcmla_builtin): Correct subreg code.
2678 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2679 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
2682 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
2684 * config/alpha/alpha.c (alpha_gimplify_va_arg):
2685 Handle split indirect COMPLEX_TYPE arguments.
2687 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
2690 * config/aarch64/aarch64-modes.def: Add comment about how the carry
2691 bit is set by add and compare.
2692 (CC_ADC): New CC_MODE.
2693 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
2694 to cache the code and mode of X. Adjust the shape of a CC_Cmode
2695 comparison. Add detection for CC_ADCmode.
2696 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
2698 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
2699 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
2700 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
2701 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
2702 to eliminate the need for zero-extending the operands.
2703 (add<mode>3_compareC_imm): Delete. Merge into ...
2704 (add<mode>3_compareC): ... this. Restructure the comparison to
2705 eliminate the need for zero-extending the operands.
2706 (add<mode>3_carryin): Use LTU for the overflow detection.
2707 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
2708 Reexpress comparison for overflow.
2709 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
2710 (add<mode>3_carryinC): Likewise.
2711 (add<mode>3_carryinV): Use LTU for carry between partials.
2712 * config/aarch64/predicates.md (aarch64_carry_operation): Update
2713 handling of CC_Cmode and add CC_ADCmode.
2714 (aarch64_borrow_operation): Likewise.
2716 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2718 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
2719 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
2720 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
2721 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
2723 2019-01-16 Martin Liska <mliska@suse.cz>
2725 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
2727 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
2729 * gcc.c (add_sysrooted_hdrs_prefix): New function.
2730 (path_prefix_reset): Move up in the source file.
2731 (find_fortran_preinclude_file): Make complex search for the
2732 fortran header files.
2734 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
2736 * godump.c (go_output_typedef): When outputting a typedef, refer
2737 to the underlying type by its name and not its structure.
2739 2019-01-15 David Malcolm <dmalcolm@redhat.com>
2742 * tree.c (build_function_type): Assert that arg_types is not
2745 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
2748 * doc/extend.texi: Document that listing the stack pointer in the
2749 clobber list of an asm is a deprecated feature.
2750 * common.opt (Wdeprecated): Moved from c-family/c.opt.
2751 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
2752 warning instead of an error for clobbers of the stack pointer.
2753 Add a note explaining why.
2755 2019-01-15 Richard Biener <rguenther@suse.de>
2758 * dwarf2out.c (gen_member_die): Do not generate inheritance
2761 2019-01-15 Richard Biener <rguenther@suse.de>
2763 PR tree-optimization/88855
2764 * tree-if-conv.c (combine_blocks): Collect
2765 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
2767 2019-01-15 Tom de Vries <tdevries@suse.de>
2770 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
2771 lhs == NULL_TREE for gang-level reduction.
2773 2019-01-15 Richard Biener <rguenther@suse.de>
2774 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2777 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
2778 return true if SSA_NAME is already marked in visited bitmap.
2779 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
2781 2019-01-15 Jakub Jelinek <jakub@redhat.com>
2783 PR tree-optimization/88775
2784 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
2785 equal == 0 equality pointer comparisons some more if compared in
2786 integral types and either one points to an automatic var and the
2787 other to a global, or we can prove at least one points to the middle
2788 or both point to start or both point to end.
2790 2019-01-14 Andi Kleen <ak@linux.intel.com>
2792 * Makefile.in: Lower autofdo sampling rate by 10x.
2793 * Makefile.tpl: Dito.
2795 2019-01-14 Tom Honermann <tom@honermann.net>
2797 * defaults.h: Define CHAR8_TYPE.
2799 2019-01-14 Martin Sebor <msebor@redhat.com>
2802 * doc/extend.texi (Darwin Format Checks): Clarify.
2804 2019-01-14 Richard Biener <rguenther@suse.de>
2806 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
2807 whether we are in (simplify ...) or (match ...) context.
2809 2019-01-14 Jakub Jelinek <jakub@redhat.com>
2811 PR rtl-optimization/88796
2812 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
2813 * cfgexpand.c (stack_protect_prologue): Initialize
2814 crtl->stack_protect_guard_decl.
2815 * function.c (stack_protect_epilogue): Use it instead of calling
2816 targetm.stack_protect_guard again.
2817 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
2818 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
2819 crtl->stack_protect_guard_decl.
2820 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
2821 on the returned MEM_EXPR.
2823 2019-01-12 Tom de Vries <tdevries@suse.de>
2825 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
2826 vector length using -fopenacc-dim.
2828 2019-01-12 Tom de Vries <tdevries@suse.de>
2830 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
2831 lengths into account.
2833 2019-01-12 Svante Signell <svante.signell@gmail.com>
2835 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
2836 (TARGET_CAN_SPLIT_STACK): Define.
2837 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2839 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2841 * params.def (inline-unit-growth): Set to 40.
2843 2019-01-12 Jakub Jelinek <jakub@redhat.com>
2845 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
2847 2019-01-12 Tom de Vries <tdevries@suse.de>
2849 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
2850 region calling vector-partitionable routine, set default_vector_length
2853 2019-01-12 Tom de Vries <tdevries@suse.de>
2855 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
2856 variable default_vector_length.
2858 2019-01-12 Tom de Vries <tdevries@suse.de>
2861 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
2862 from oacc_default_dims, as oacc_validate_dims would do it, and apply
2865 2019-01-12 Tom de Vries <tdevries@suse.de>
2867 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
2868 (nvptx_goacc_validate_dims): Add used parameter.
2869 * doc/tm.texi: Regenerate.
2870 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
2871 argument to call to targetm.goacc.validate_dims.
2872 (default_goacc_validate_dims): Add used
2874 * target.def (validate_dims): Add used parameter in DEFHOOK.
2875 * targhooks.h (default_goacc_validate_dims): Add used parameter.
2877 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2881 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2883 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
2884 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
2885 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
2886 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
2888 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
2890 PR rtl-optimization/87305
2892 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2893 for little endian pseudos used as paradoxical subreg.
2895 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2897 PR tree-optimization/88693
2898 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
2899 for STRING_CSTs that don't contain any NUL characters in the first
2900 TREE_STRING_LENGTH bytes.
2902 2019-01-11 Alan Modra <amodra@gmail.com>
2906 * genattrtab.c (min_fn): Don't translate values.
2907 (min_attr_value): Return INT_MAX when the value can't be calculated.
2908 Return minimum among any values that can be calculated.
2909 (max_attr_value): Adjust.
2911 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2913 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2915 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2917 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2918 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
2919 (aarch64_return_call_with_max_clobbers): New function.
2920 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
2921 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
2923 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
2924 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
2925 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
2926 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
2927 * cselib.c (cselib_process_insn): Add argument to
2928 targetm.hard_regno_call_part_clobbered call.
2929 * ira-conflicts.c (ira_build_conflicts): Ditto.
2930 * ira-costs.c (ira_tune_allocno_costs): Ditto.
2931 * lra-constraints.c (inherit_reload_reg): Ditto.
2932 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
2933 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
2934 argument. Call targetm.return_call_with_max_clobbers.
2935 Add argument to targetm.hard_regno_call_part_clobbered call.
2936 (calls_have_same_clobbers_p): New function.
2937 (process_bb_lives): Add call_insn and last_call_insn variables.
2938 Pass call_insn to check_pseudos_live_through_calls.
2939 Modify if stmt to check targetm.return_call_with_max_clobbers.
2940 Update setting of flush variable.
2941 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
2943 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
2944 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
2945 targetm.hard_regno_call_part_clobbered call.
2946 * reginfo.c (choose_hard_reg_mode): Ditto.
2947 * regrename.c (check_new_reg_p): Ditto.
2948 * reload.c (find_equiv_reg): Ditto.
2949 * reload1.c (emit_reload_insns): Ditto.
2950 * sched-deps.c (deps_analyze_insn): Ditto.
2951 * sel-sched.c (init_regs_for_mode): Ditto.
2952 (mark_unavailable_hard_regs): Ditto.
2953 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
2954 * target.def (hard_regno_call_part_clobbered): Add insn argument.
2955 (return_call_with_max_clobbers): New target function.
2956 * doc/tm.texi: Regenerate.
2957 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
2958 * hooks.c (hook_bool_uint_mode_false): Change to
2959 hook_bool_insn_uint_mode_false.
2960 * hooks.h (hook_bool_uint_mode_false): Ditto.
2962 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2964 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2965 (aarch64_remove_extra_call_preserved_regs): New function.
2966 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
2967 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
2968 * doc/tm.texi: Regenerate.
2969 * final.c (get_call_reg_set_usage): Call new hook.
2970 * target.def (remove_extra_call_preserved_regs): New hook.
2971 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
2972 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
2974 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2977 * passes.c (finish_optimization_passes): Call print_combine_total_stats
2978 inside of pass_combine_1 dump rather than pass_profile_1.
2980 2019-01-11 Tom de Vries <tdevries@suse.de>
2982 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
2983 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
2984 (PTX_NUM_PER_WORKER_BARRIERS): Define.
2985 (nvptx_apply_dim_limits): Prevent vector_length 64 and
2988 2019-01-11 Tom de Vries <tdevries@suse.de>
2990 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2992 2019-01-11 Jan Beulich <jbeulich@suse.com>
2994 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
2995 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
2996 sse2_cvtsi2sd): Add {l}.
2997 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
3000 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3003 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
3005 (*float<floatunssuffix>v2div2sf2): New define_insn.
3006 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
3007 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
3008 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
3009 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
3010 match_operands with "const0_operand" "C".
3012 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3014 * config/aarch64/aarch64-builtins.c
3015 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
3016 (aarch64_init_simd_builtins): ...Here
3018 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
3020 PR rtl-optimization/87305
3022 (setup_live_pseudos_and_spill_after_risky_transforms): Check
3023 allocation for big endian pseudos used as paradoxical subregs and
3024 spill them if it is wrong.
3025 * lra-constraints.c (lra_constraints): Add a comment.
3027 2019-01-10 Richard Biener <rguenther@suse.de>
3029 PR tree-optimization/88792
3030 * tree-ssa-pre.c (get_representative_for): Do not return a
3033 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3037 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
3038 (assign_parm_setup_block): Do the argument slot realignment here
3041 2019-01-10 Stefan Agner <stefan@agner.ch>
3044 * config/arm/arm.c (arm_option_override_internal): Force
3045 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
3047 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3050 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
3053 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3055 * config/arm/arm-builtins.c
3056 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
3057 (MAC_LANE_PAIR_QUALIFIERS): New.
3058 (arm_expand_builtin_args): Use it.
3059 (arm_expand_builtin_1): Likewise.
3060 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
3061 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
3062 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
3063 * config/arm/arm_neon.h:
3064 (vcadd_rot90_f16): New.
3065 (vcaddq_rot90_f16): New.
3066 (vcadd_rot270_f16): New.
3067 (vcaddq_rot270_f16): New.
3070 (vcmla_lane_f16): New.
3071 (vcmla_laneq_f16): New.
3072 (vcmlaq_lane_f16): New.
3073 (vcmlaq_laneq_f16): New.
3074 (vcmla_rot90_f16): New.
3075 (vcmlaq_rot90_f16): New.
3076 (vcmla_rot90_lane_f16): New.
3077 (vcmla_rot90_laneq_f16): New.
3078 (vcmlaq_rot90_lane_f16): New.
3079 (vcmlaq_rot90_laneq_f16): New.
3080 (vcmla_rot180_f16): New.
3081 (vcmlaq_rot180_f16): New.
3082 (vcmla_rot180_lane_f16): New.
3083 (vcmla_rot180_laneq_f16): New.
3084 (vcmlaq_rot180_lane_f16): New.
3085 (vcmlaq_rot180_laneq_f16): New.
3086 (vcmla_rot270_f16): New.
3087 (vcmlaq_rot270_f16): New.
3088 (vcmla_rot270_lane_f16): New.
3089 (vcmla_rot270_laneq_f16): New.
3090 (vcmlaq_rot270_lane_f16): New.
3091 (vcmlaq_rot270_laneq_f16): New.
3092 (vcadd_rot90_f32): New.
3093 (vcaddq_rot90_f32): New.
3094 (vcadd_rot270_f32): New.
3095 (vcaddq_rot270_f32): New.
3098 (vcmla_lane_f32): New.
3099 (vcmla_laneq_f32): New.
3100 (vcmlaq_lane_f32): New.
3101 (vcmlaq_laneq_f32): New.
3102 (vcmla_rot90_f32): New.
3103 (vcmlaq_rot90_f32): New.
3104 (vcmla_rot90_lane_f32): New.
3105 (vcmla_rot90_laneq_f32): New.
3106 (vcmlaq_rot90_lane_f32): New.
3107 (vcmlaq_rot90_laneq_f32): New.
3108 (vcmla_rot180_f32): New.
3109 (vcmlaq_rot180_f32): New.
3110 (vcmla_rot180_lane_f32): New.
3111 (vcmla_rot180_laneq_f32): New.
3112 (vcmlaq_rot180_lane_f32): New.
3113 (vcmlaq_rot180_laneq_f32): New.
3114 (vcmla_rot270_f32): New.
3115 (vcmlaq_rot270_f32): New.
3116 (vcmla_rot270_lane_f32): New.
3117 (vcmla_rot270_laneq_f32): New.
3118 (vcmlaq_rot270_lane_f32): New.
3119 (vcmlaq_rot270_laneq_f32): New.
3120 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
3121 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
3122 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
3123 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
3124 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
3125 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
3126 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
3127 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
3128 (arm_option_reconfigure_globals): Use them.
3129 * config/arm/iterators.md (VDF, VQ_HSF): New.
3130 (VCADD, VCMLA): New.
3131 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
3132 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
3133 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
3134 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
3136 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3138 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
3139 (emit-rtl.h): Include.
3140 (TYPES_QUADOP_LANE_PAIR): New.
3141 (aarch64_simd_expand_args): Use it.
3142 (aarch64_simd_expand_builtin): Likewise.
3143 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
3144 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
3145 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
3146 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
3147 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
3148 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
3149 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
3150 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
3151 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
3152 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
3153 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
3154 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
3155 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
3156 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
3157 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
3158 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
3159 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
3160 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
3161 aarch64_fcmla<rot><mode>): New.
3162 * config/aarch64/arm_neon.h:
3163 (vcadd_rot90_f16): New.
3164 (vcaddq_rot90_f16): New.
3165 (vcadd_rot270_f16): New.
3166 (vcaddq_rot270_f16): New.
3169 (vcmla_lane_f16): New.
3170 (vcmla_laneq_f16): New.
3171 (vcmlaq_lane_f16): New.
3172 (vcmlaq_rot90_lane_f16): New.
3173 (vcmla_rot90_laneq_f16): New.
3174 (vcmla_rot90_lane_f16): New.
3175 (vcmlaq_rot90_f16): New.
3176 (vcmla_rot90_f16): New.
3177 (vcmlaq_laneq_f16): New.
3178 (vcmla_rot180_laneq_f16): New.
3179 (vcmla_rot180_lane_f16): New.
3180 (vcmlaq_rot180_f16): New.
3181 (vcmla_rot180_f16): New.
3182 (vcmlaq_rot90_laneq_f16): New.
3183 (vcmlaq_rot270_laneq_f16): New.
3184 (vcmlaq_rot270_lane_f16): New.
3185 (vcmla_rot270_laneq_f16): New.
3186 (vcmlaq_rot270_f16): New.
3187 (vcmla_rot270_f16): New.
3188 (vcmlaq_rot180_laneq_f16): New.
3189 (vcmlaq_rot180_lane_f16): New.
3190 (vcmla_rot270_lane_f16): New.
3191 (vcadd_rot90_f32): New.
3192 (vcaddq_rot90_f32): New.
3193 (vcaddq_rot90_f64): New.
3194 (vcadd_rot270_f32): New.
3195 (vcaddq_rot270_f32): New.
3196 (vcaddq_rot270_f64): New.
3200 (vcmla_lane_f32): New.
3201 (vcmla_laneq_f32): New.
3202 (vcmlaq_lane_f32): New.
3203 (vcmlaq_laneq_f32): New.
3204 (vcmla_rot90_f32): New.
3205 (vcmlaq_rot90_f32): New.
3206 (vcmlaq_rot90_f64): New.
3207 (vcmla_rot90_lane_f32): New.
3208 (vcmla_rot90_laneq_f32): New.
3209 (vcmlaq_rot90_lane_f32): New.
3210 (vcmlaq_rot90_laneq_f32): New.
3211 (vcmla_rot180_f32): New.
3212 (vcmlaq_rot180_f32): New.
3213 (vcmlaq_rot180_f64): New.
3214 (vcmla_rot180_lane_f32): New.
3215 (vcmla_rot180_laneq_f32): New.
3216 (vcmlaq_rot180_lane_f32): New.
3217 (vcmlaq_rot180_laneq_f32): New.
3218 (vcmla_rot270_f32): New.
3219 (vcmlaq_rot270_f32): New.
3220 (vcmlaq_rot270_f64): New.
3221 (vcmla_rot270_lane_f32): New.
3222 (vcmla_rot270_laneq_f32): New.
3223 (vcmlaq_rot270_lane_f32): New.
3224 (vcmlaq_rot270_laneq_f32): New.
3225 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
3226 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
3227 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
3228 (FCADD, FCMLA): New.
3230 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
3232 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3236 * config/pa/pa.c: Change "can not" to "cannot".
3237 * gimple-ssa-evrp-analyze.c: Likewise.
3238 * ipa-icf.c: Likewise.
3239 * ipa-polymorphic-call.c: Likewise.
3240 * ipa-pure-const.c: Likewise.
3241 * lra-constraints.c: Likewise.
3242 * lra-remat.c: Likewise.
3243 * reload1.c: Likewise.
3244 * reorg.c: Likewise.
3245 * tree-ssa-uninit.c: Likewise.
3247 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3251 * Makefile.in: Mechanically replace "can not" with "cannot".
3252 * alias.c: Likewise.
3253 * builtins.c: Likewise.
3254 * calls.c: Likewise.
3255 * cgraph.c: Likewise.
3256 * cgraph.h: Likewise.
3257 * cgraphclones.c: Likewise.
3258 * cgraphunit.c: Likewise.
3259 * combine-stack-adj.c: Likewise.
3260 * combine.c: Likewise.
3261 * common/config/i386/i386-common.c: Likewise.
3262 * config/aarch64/aarch64.c: Likewise.
3263 * config/alpha/sync.md: Likewise.
3264 * config/arc/arc.c: Likewise.
3265 * config/arc/predicates.md: Likewise.
3266 * config/arm/arm-c.c: Likewise.
3267 * config/arm/arm.c: Likewise.
3268 * config/arm/arm.h: Likewise.
3269 * config/arm/arm.md: Likewise.
3270 * config/arm/cortex-r4f.md: Likewise.
3271 * config/csky/csky.c: Likewise.
3272 * config/csky/csky.h: Likewise.
3273 * config/darwin-f.c: Likewise.
3274 * config/epiphany/epiphany.md: Likewise.
3275 * config/i386/i386.c: Likewise.
3276 * config/i386/sol2.h: Likewise.
3277 * config/m68k/m68k.c: Likewise.
3278 * config/mcore/mcore.h: Likewise.
3279 * config/microblaze/microblaze.md: Likewise.
3280 * config/mips/20kc.md: Likewise.
3281 * config/mips/sb1.md: Likewise.
3282 * config/nds32/nds32.c: Likewise.
3283 * config/nds32/predicates.md: Likewise.
3284 * config/pa/pa.c: Likewise.
3285 * config/rs6000/e300c2c3.md: Likewise.
3286 * config/rs6000/rs6000.c: Likewise.
3287 * config/s390/s390.h: Likewise.
3288 * config/sh/sh.c: Likewise.
3289 * config/sh/sh.md: Likewise.
3290 * config/spu/vmx2spu.h: Likewise.
3291 * cprop.c: Likewise.
3292 * dbxout.c: Likewise.
3293 * df-scan.c: Likewise.
3294 * doc/cfg.texi: Likewise.
3295 * doc/extend.texi: Likewise.
3296 * doc/fragments.texi: Likewise.
3297 * doc/gty.texi: Likewise.
3298 * doc/invoke.texi: Likewise.
3299 * doc/lto.texi: Likewise.
3300 * doc/md.texi: Likewise.
3301 * doc/objc.texi: Likewise.
3302 * doc/rtl.texi: Likewise.
3303 * doc/tm.texi: Likewise.
3305 * emit-rtl.c: Likewise.
3306 * emit-rtl.h: Likewise.
3307 * except.c: Likewise.
3308 * expmed.c: Likewise.
3310 * fold-const.c: Likewise.
3311 * genautomata.c: Likewise.
3312 * gimple-fold.c: Likewise.
3313 * hard-reg-set.h: Likewise.
3314 * ifcvt.c: Likewise.
3315 * ipa-comdats.c: Likewise.
3316 * ipa-cp.c: Likewise.
3317 * ipa-devirt.c: Likewise.
3318 * ipa-fnsummary.c: Likewise.
3319 * ipa-icf.c: Likewise.
3320 * ipa-inline-transform.c: Likewise.
3321 * ipa-inline.c: Likewise.
3322 * ipa-polymorphic-call.c: Likewise.
3323 * ipa-profile.c: Likewise.
3324 * ipa-prop.c: Likewise.
3325 * ipa-pure-const.c: Likewise.
3326 * ipa-reference.c: Likewise.
3327 * ipa-split.c: Likewise.
3328 * ipa-visibility.c: Likewise.
3330 * ira-build.c: Likewise.
3331 * ira-color.c: Likewise.
3332 * ira-conflicts.c: Likewise.
3333 * ira-costs.c: Likewise.
3334 * ira-int.h: Likewise.
3335 * ira-lives.c: Likewise.
3338 * loop-invariant.c: Likewise.
3339 * loop-unroll.c: Likewise.
3340 * lower-subreg.c: Likewise.
3341 * lra-assigns.c: Likewise.
3342 * lra-constraints.c: Likewise.
3343 * lra-eliminations.c: Likewise.
3344 * lra-lives.c: Likewise.
3345 * lra-remat.c: Likewise.
3346 * lra-spills.c: Likewise.
3348 * lto-cgraph.c: Likewise.
3349 * lto-streamer-out.c: Likewise.
3350 * postreload-gcse.c: Likewise.
3351 * predict.c: Likewise.
3352 * profile-count.h: Likewise.
3353 * profile.c: Likewise.
3354 * recog.c: Likewise.
3356 * reload.c: Likewise.
3357 * reload1.c: Likewise.
3358 * reorg.c: Likewise.
3359 * resource.c: Likewise.
3360 * rtl.def: Likewise.
3362 * rtlanal.c: Likewise.
3363 * sched-deps.c: Likewise.
3364 * sched-ebb.c: Likewise.
3365 * sched-rgn.c: Likewise.
3366 * sel-sched-ir.c: Likewise.
3367 * sel-sched.c: Likewise.
3368 * shrink-wrap.c: Likewise.
3369 * simplify-rtx.c: Likewise.
3370 * symtab.c: Likewise.
3371 * target.def: Likewise.
3372 * toplev.c: Likewise.
3373 * tree-call-cdce.c: Likewise.
3374 * tree-cfg.c: Likewise.
3375 * tree-complex.c: Likewise.
3376 * tree-core.h: Likewise.
3377 * tree-eh.c: Likewise.
3378 * tree-inline.c: Likewise.
3379 * tree-loop-distribution.c: Likewise.
3380 * tree-nrv.c: Likewise.
3381 * tree-profile.c: Likewise.
3382 * tree-sra.c: Likewise.
3383 * tree-ssa-alias.c: Likewise.
3384 * tree-ssa-dce.c: Likewise.
3385 * tree-ssa-dom.c: Likewise.
3386 * tree-ssa-forwprop.c: Likewise.
3387 * tree-ssa-loop-im.c: Likewise.
3388 * tree-ssa-loop-ivcanon.c: Likewise.
3389 * tree-ssa-loop-ivopts.c: Likewise.
3390 * tree-ssa-loop-niter.c: Likewise.
3391 * tree-ssa-phionlycprop.c: Likewise.
3392 * tree-ssa-phiopt.c: Likewise.
3393 * tree-ssa-propagate.c: Likewise.
3394 * tree-ssa-threadedge.c: Likewise.
3395 * tree-ssa-threadupdate.c: Likewise.
3396 * tree-ssa-uninit.c: Likewise.
3397 * tree-ssanames.c: Likewise.
3398 * tree-streamer-out.c: Likewise.
3401 * vr-values.c: Likewise.
3403 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
3405 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
3406 (ix86_split_xorsign): Ditto.
3407 * config/i386/i386.c (ix86_expand_xorsign): New function.
3408 (ix86_split_xorsign): Ditto.
3409 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
3410 (xorsign<mode>3): New expander.
3411 (xorsign<mode>3_1): New insn_and_split pattern.
3412 * config/i386/sse.md (xorsign<mode>3): New expander.
3414 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3416 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
3417 (*tablejump_sp64): Likewise.
3418 (*tablejump<P:mode>): ...this.
3419 (*call_address_sp32): Merge into...
3420 (*call_address_sp64): Likewise.
3421 (*call_address<P:mode>): ...this.
3422 (*call_symbolic_sp32): Merge into...
3423 (*call_symbolic_sp64): Likewise.
3424 (*call_symbolic<P:mode>): ...this.
3425 (call_value): Remove constraint and add predicate.
3426 (*call_value_address_sp32): Merge into...
3427 (*call_value_address_sp64): Likewise.
3428 (*call_value_address<P:mode>): ...this.
3429 (*call_value_symbolic_sp32): Merge into...
3430 (*call_value_symbolic_sp64): Likewise.
3431 (*call_value_symbolic<P:mode>): ...this.
3432 (*sibcall_symbolic_sp32): Merge into...
3433 (*sibcall_symbolic_sp64): Likewise.
3434 (*sibcall_symbolic<P:mode>): ...this.
3435 (sibcall_value): Remove constraint and add predicate.
3436 (*sibcall_value_symbolic_sp32): Merge into...
3437 (*sibcall_value_symbolic_sp64): Likewise.
3438 (*sibcall_value_symbolic<P:mode>): ...this.
3439 (window_save): Minor tweak.
3440 (*branch_sp32): Merge into...
3441 (*branch_sp64): Likewise.
3442 (*branch<P:mode>): ...this.
3444 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3445 James Clarke <jrtc27@jrtc27.com>
3448 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
3449 consistently in TLS address generation and adjust code to the renaming
3450 of patterns. Mark calls to __tls_get_addr as const.
3451 * config/sparc/sparc.md (tgd_hi22): Turn into...
3452 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
3453 (tgd_lo10): Turn into...
3454 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
3455 (tgd_add32): Merge into...
3456 (tgd_add64): Likewise.
3457 (tgd_add<P:mode>): ...this and use Pmode throughout.
3458 (tldm_hi22): Turn into...
3459 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
3460 (tldm_lo10): Turn into...
3461 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
3462 (tldm_add32): Merge into...
3463 (tldm_add64): Likewise.
3464 (tldm_add<P:mode>): ...this and use Pmode throughout.
3465 (tldm_call32): Merge into...
3466 (tldm_call64): Likewise.
3467 (tldm_call<P:mode>): ...this and use Pmode throughout.
3468 (tldo_hix22): Turn into...
3469 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
3470 (tldo_lox10): Turn into...
3471 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
3472 (tldo_add32): Merge into...
3473 (tldo_add64): Likewise.
3474 (tldo_add<P:mode>): ...this and use Pmode throughout.
3475 (tie_hi22): Turn into...
3476 (tie_hi22<P:mode>): ...this and use Pmode throughout.
3477 (tie_lo10): Turn into...
3478 (tie_lo10<P:mode>): ...this and use Pmode throughout.
3479 (tie_ld64): Use DImode throughout.
3480 (tie_add32): Merge into...
3481 (tie_add64): Likewise.
3482 (tie_add<P:mode>): ...this and use Pmode throughout.
3483 (tle_hix22_sp32): Merge into...
3484 (tle_hix22_sp64): Likewise.
3485 (tle_hix22<P:mode>): ...this and use Pmode throughout.
3486 (tle_lox22_sp32): Merge into...
3487 (tle_lox22_sp64): Likewise.
3488 (tle_lox22<P:mode>): ...this and use Pmode throughout.
3489 (*tldo_ldub_sp32): Merge into...
3490 (*tldo_ldub_sp64): Likewise.
3491 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
3492 (*tldo_ldub1_sp32): Merge into...
3493 (*tldo_ldub1_sp64): Likewise.
3494 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
3495 (*tldo_ldub2_sp32): Merge into...
3496 (*tldo_ldub2_sp64): Likewise.
3497 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
3498 (*tldo_ldsb1_sp32): Merge into...
3499 (*tldo_ldsb1_sp64): Likewise.
3500 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
3501 (*tldo_ldsb2_sp32): Merge into...
3502 (*tldo_ldsb2_sp64): Likewise.
3503 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
3504 (*tldo_ldub3_sp64): Use DImode throughout.
3505 (*tldo_ldsb3_sp64): Likewise.
3506 (*tldo_lduh_sp32): Merge into...
3507 (*tldo_lduh_sp64): Likewise.
3508 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
3509 (*tldo_lduh1_sp32): Merge into...
3510 (*tldo_lduh1_sp64): Likewise.
3511 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
3512 (*tldo_ldsh1_sp32): Merge into...
3513 (*tldo_ldsh1_sp64): Likewise.
3514 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
3515 (*tldo_lduh2_sp64): Use DImode throughout.
3516 (*tldo_ldsh2_sp64): Likewise.
3517 (*tldo_lduw_sp32): Merge into...
3518 (*tldo_lduw_sp64): Likewise.
3519 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
3520 (*tldo_lduw1_sp64): Use DImode throughout.
3521 (*tldo_ldsw1_sp64): Likewise.
3522 (*tldo_ldx_sp64): Likewise.
3523 (*tldo_stb_sp32): Merge into...
3524 (*tldo_stb_sp64): Likewise.
3525 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
3526 (*tldo_sth_sp32): Merge into...
3527 (*tldo_sth_sp64): Likewise.
3528 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
3529 (*tldo_stw_sp32): Merge into...
3530 (*tldo_stw_sp64): Likewise.
3531 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
3532 (*tldo_stx_sp64): Use DImode throughout.
3534 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3536 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
3537 check configure option to set BTI and Return Address Signing.
3538 * configure.ac: Add --enable-standard-branch-protection and
3539 --disable-standard-branch-protection.
3540 * configure: Regenerated.
3541 * doc/install.texi: Document the same.
3543 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3544 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3546 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
3547 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
3548 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
3550 * config/aarch64/aarch64-bti-insert.c: New file.
3551 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
3553 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
3555 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
3556 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
3557 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
3558 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
3560 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3562 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
3563 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
3564 Disable bti for -mbranch-protection=none.
3565 (aarch64_handle_standard_branch_protection): Enable bti for
3566 -mbranch-protection=standard.
3567 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
3568 -mbranch-protection.
3569 (aarch64_bti_enabled): Check if bti is enabled.
3570 * config/aarch64/aarch64.opt: Declare target variable.
3571 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
3573 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3575 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
3576 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
3577 (aarch64_expand_epilogue): Likewise.
3578 (aarch64_output_mi_thunk): Likewise
3579 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
3580 TAILCALL_ADDR_REGS to x16 and x17.
3581 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
3583 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3585 * config/aarch64/aarch64-option-extensions.def: Define
3586 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
3587 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
3588 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
3589 (AARCH64_FL_PREDRES): New.
3590 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
3591 AARCH64_FL_PREDRES by default.
3592 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
3594 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3596 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
3598 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
3599 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
3600 * doc/invoke.texi: Document ARMv8.5-A.
3602 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3604 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
3605 (xorsign<mode>3): Likewise.
3607 2019-01-09 Jelinek <jakub@redhat.com>
3610 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
3611 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
3613 PR rtl-optimization/88331
3614 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
3615 not currently_expanding_to_rtl.
3617 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3619 * doc/invoke.texi (-Os): Remove trailing spaces.
3620 (-finline-functions): Remove reference to -O2.
3622 2019-01-08 Jakub Jelinek <jakub@redhat.com>
3624 PR rtl-optimization/79593
3625 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
3627 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
3628 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
3630 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
3633 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
3637 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
3638 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
3640 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
3643 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
3644 ix86_avx_u128_mode_entry.
3646 2019-01-08 Martin Liska <mliska@suse.cz>
3648 PR tree-optimization/88753
3649 * tree-switch-conversion.c (switch_conversion::build_one_array):
3650 Come up with local variable constructor. Convert first to
3651 type of constructor values.
3653 2019-01-08 Richard Biener <rguenther@suse.de>
3655 PR tree-optimization/86554
3656 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
3657 rpo_avail): Move earlier.
3658 (visit_nary_op): When value-numbering to expressions
3659 with different overflow behavior make sure there's an
3660 available expression on the path.
3662 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
3664 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
3665 aarch64_parse_branch_protection,
3666 struct aarch64_branch_protect_type,
3667 aarch64_handle_no_branch_protection,
3668 aarch64_handle_standard_branch_protection,
3669 aarch64_validate_mbranch_protection,
3670 aarch64_handle_pac_ret_protection,
3671 aarch64_handle_attr_branch_protection,
3672 accepted_branch_protection_string,
3673 aarch64_pac_ret_subtypes,
3674 aarch64_branch_protect_types,
3675 aarch64_handle_pac_ret_leaf): Define.
3676 (aarch64_override_options_after_change_1, aarch64_override_options):
3677 Add check for accepted_branch_protection_string.
3678 (aarch64_option_save): Save accepted_branch_protection_string.
3679 (aarch64_option_restore): Save accepted_branch_protection_string.
3680 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
3681 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
3682 msign-return-address.
3683 * doc/invoke.texi: Add mbranch-protection.
3685 2019-01-08 Alan Modra <amodra@gmail.com>
3688 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
3689 Delete "unknownp" parameter. Adjust callers. Handle
3690 CONST_INT, PLUS, MINUS, and MULT.
3691 (attr_value_aligned): Renamed from or_attr_value.
3692 (min_attr_value): Return INT_MIN for unhandled rtl case..
3693 (min_fn): ..and translate to INT_MAX here.
3694 (write_length_unit_log): Modify to cope without "unknown".
3695 (write_attr_value): Handle IF_THEN_ELSE.
3697 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3699 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
3700 optimization for masked stores.
3702 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3705 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
3706 output vector directly to duplicate_and_interleave instead of
3707 going through a temporary. Postpone insertion of ctor_seq to
3708 the end of the loop.
3710 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
3713 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
3714 unsigned_p. Handle signed and unsigned overflow correction as
3716 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
3718 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
3720 (add<mode>3_compareV_imm): Make this callable for expanding.
3721 (subv<GPI:mode>4): Use register_operand for operand 1. Use
3722 aarch64_plus_operand for operand 2.
3723 (subv<GPI:mode>_insn): New insn pattern.
3724 (subv<GPI:mode>_imm): Likewise.
3725 (negv<GPI:mode>3): New expand pattern.
3726 (negv<GPI:mode>_insn): New insn pattern.
3727 (negv<GPI:mode>_cmp_only): Likewise.
3728 (cmpv<GPI:mode>_insn): Likewise.
3729 (subvti4): Use register_operand for operand 1. Update call to
3730 aarch64_expand_subvti.
3731 (usubvti4): Likewise.
3732 (negvti3): New expand pattern.
3733 (negdi_carryout): New insn pattern.
3734 (negvdi_carryinV): New insn pattern.
3735 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
3736 version the named version.
3737 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
3739 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
3741 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
3743 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
3744 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
3745 (sub<mode>3_carryinCV): Delete.
3746 (sub<GPI:mode>3_carryinV): New expand pattern.
3747 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
3749 2019-01-07 Richard Biener <rguenther@suse.de>
3751 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
3752 of tree_operand_hash.
3754 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3756 PR tree-optimization/88598
3757 * tree.h (single_nonzero_element): Declare.
3758 * tree.c (single_nonzero_element): New function.
3759 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
3760 if I is the only nonzero element of CST.
3762 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3764 PR tree-optimization/88598
3765 * tree.h (initializer_each_zero_or_onep): Declare.
3766 * tree.c (initializer_each_zero_or_onep): New function.
3767 (signed_or_unsigned_type_for): Handle float types too.
3768 (unsigned_type_for, signed_type_for): Update comments accordingly.
3769 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
3770 x & { 0 or -1, 0 or -1, ... }.
3772 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
3774 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
3775 with x86_64-pc-linux-gnu.
3777 2019-01-07 Tom de Vries <tdevries@suse.de>
3780 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
3782 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
3785 2019-01-07 Jakub Jelinek <jakub@redhat.com>
3787 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
3788 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
3789 TARGET_AVX512F as condition.
3792 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
3793 const_not_ok_for_debug_p target hook.
3794 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
3795 on UNSPEC and subexpressions thereof if all subexpressions of the
3796 UNSPEC are CONSTANT_P.
3798 PR tree-optimization/88676
3799 * tree-ssa-phiopt.c (two_value_replacement): New function.
3800 (tree_ssa_phiopt_worker): Call it.
3803 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
3804 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
3807 * tree-vect-generic.c: Include insn-config.h and recog.h.
3808 (expand_vector_piecewise): Add defaulted ret_type argument,
3809 if non-NULL, use that in preference to type for the result type.
3810 (expand_vector_parallel): Formatting fix.
3811 (do_vec_conversion, do_vec_narrowing_conversion,
3812 expand_vector_conversion): New functions.
3813 (expand_vector_operations_1): Call expand_vector_conversion
3814 for VEC_CONVERT ifn calls.
3815 * internal-fn.def (VEC_CONVERT): New internal function.
3816 * internal-fn.c (expand_VEC_CONVERT): New function.
3817 * fold-const-call.c (fold_const_vec_convert): New function.
3818 (fold_const_call): Use it for CFN_VEC_CONVERT.
3819 * doc/extend.texi (__builtin_convertvector): Document.
3821 2019-01-07 Tom de Vries <tdevries@suse.de>
3823 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
3824 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
3825 vector_red_partition, vector_red_sym): New global variables.
3826 (nvptx_option_override): Initialize vector_red_sym.
3827 (nvptx_declare_function_name): Restore red_partition register.
3828 (nvptx_file_end): Emit code to declare the vector reduction variables.
3829 (nvptx_output_red_partition): New function.
3830 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
3831 large vector reductions.
3832 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
3833 (nvptx_init_builtins): Add VECTOR_ADDR.
3834 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
3835 Handle nvptx_expand_shared_addr.
3836 (nvptx_get_shared_red_addr): Add vector argument and handle large
3838 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
3840 (nvptx_goacc_reduction_init): Likewise.
3841 (nvptx_goacc_reduction_fini): Likewise.
3842 (nvptx_goacc_reduction_teardown): Likewise.
3843 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
3844 init,fini,teardown}.
3845 (nvptx_init_axis_predicate): Initialize vector_red_partition.
3846 (nvptx_set_current_function): Init vector_red_partition.
3847 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
3848 (nvptx_red_partition): New insn.
3849 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
3851 2019-01-07 Tom de Vries <tdevries@suse.de>
3854 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
3857 2019-01-07 Tom de Vries <tdevries@suse.de>
3859 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
3860 (nvptx_option_override): Init oacc_bcast_partition.
3861 (nvptx_init_oacc_workers): New function.
3862 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
3863 (nvptx_needs_shared_bcast): New function.
3864 (nvptx_find_par): Generalize to enable vectors to use shared-memory
3866 (nvptx_shared_propagate): Initialize vector bcast partition and
3867 synchronization state.
3868 (nvptx_single): Generalize to enable vectors to use shared-memory
3870 (nvptx_process_pars): Likewise.
3871 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
3872 * config/nvptx/nvptx.h (struct machine_function): Add
3873 bcast_partition and sync_bar members.
3875 2019-01-07 Tom de Vries <tdevries@suse.de>
3877 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
3878 (nvptx_apply_dim_limits): New function.
3879 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
3882 2019-01-07 Tom de Vries <tdevries@suse.de>
3884 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3885 as late as possible.
3887 2019-01-07 Tom de Vries <tdevries@suse.de>
3889 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
3890 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
3891 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
3892 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
3893 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
3895 2019-01-07 Tom de Vries <tdevries@suse.de>
3897 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3899 2019-01-07 Tom de Vries <tdevries@suse.de>
3901 * omp-offload.c (oacc_get_min_dim): New function.
3902 * omp-offload.h (oacc_get_min_dim): Declare.
3904 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
3907 * config/i386/i386.c (function_value_ms_64): Return small sturct in
3908 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
3910 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3914 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
3916 * ipa-inline.c (edge_badness): Use inlined_time instead of
3917 inline_summaries->get.
3919 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3921 * opts.c (enable_fdo_optimizations): Enable
3922 version-loops-for-strides, loop-interchange, unrol-and-jam
3923 and tree-loop-distribution.
3924 * invoke.texi: Document newly enabled options.
3926 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3928 * doc/invoke.texi (max-inline-insns-small): New parameters.
3929 * ipa-inline.c (want_early_inline_function_p): simplify.
3930 (want_inline_small_function_p): Fix pasto from previous patch;
3931 use max-inline-insns-small bound.
3932 * params.def (max-inline-insns-small): New param.
3933 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
3934 variables correctly.
3936 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3938 * doc/invoke.texi: Document max-inline-insns-size,
3939 uninlined-function-insns, uninlined-function-time,
3940 uninlined-thunk-insns and uninlined-thunk-time.
3941 * params.def: Add max-inline-insns-size,
3942 uninlined-function-insns, uninlined-function-time,
3943 uninlined-thunk-insns and uninlined-thunk-time.
3944 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
3946 * ipa-inline.c (can_inline_edge_by_limits_p,
3947 want_inline_small_function_p): Use new parameters.
3949 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3951 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3953 2019-01-05 Jakub Jelinek <jakub@redhat.com>
3957 * expr.c (expand_assignment): For calls returning VLA structures
3958 if to_rtx is not a MEM, force it into a stack temporary.
3961 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3962 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3963 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3964 subexpressions of both operands.
3965 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3966 subrtxes are CONSTANT_P.
3967 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
3970 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
3972 * params.def (hot-bb-count-ws-permille): Set to 990.
3974 2019-01-04 Martin Sebor <msebor@redhat.com>
3977 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3980 2019-01-04 Martin Sebor <msebor@redhat.com>
3983 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3985 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3987 * gdbinit.in: Turn off pagination for the skip commands, restore
3988 it to previous state afterwards.
3990 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3993 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3994 of GET_MODE (opN) as modes of the libcall arguments.
3996 2019-01-04 Jan Beulich <jbeulich@suse.com>
3998 * config/i386/sse.md
3999 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
4000 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
4001 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
4002 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
4003 avx512f_vmcmp<mode>3<round_saeonly_name>,
4004 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
4005 avx512f_maskcmp<mode>3,
4006 <avx512>_cvt<ssemodesuffix>2mask<mode>,
4007 <avx512>_cvt<ssemodesuffix>2mask<mode>,
4008 *<avx512>_cvtmask2<ssemodesuffix><mode>,
4009 *<avx512>_cvtmask2<ssemodesuffix><mode>,
4010 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
4011 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
4012 <avx512>_gt<mode>3<mask_scalar_merge_name>,
4013 <avx512>_gt<mode>3<mask_scalar_merge_name>,
4014 <avx512>_testm<mode>3<mask_scalar_merge_name>,
4015 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
4016 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
4017 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
4018 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
4019 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
4020 avx512cd_maskb_vec_dup<mode>,
4021 avx512cd_maskw_vec_dup<mode>,
4022 avx512dq_fpclass<mode><mask_scalar_merge_name>,
4023 avx512dq_vmfpclass<mode>,
4024 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
4027 2019-01-03 Martin Sebor <msebor@redhat.com>
4029 PR tree-optimization/88659
4030 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
4032 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
4034 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
4035 unaligned vsx and avoid lxvd2x/stxvd2x.
4036 (gen_lvx_v4si_move): New function.
4038 2019-01-03 Tom de Vries <tdevries@suse.de>
4040 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
4041 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
4043 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
4045 2019-01-03 Tom de Vries <tdevries@suse.de>
4047 * config/nvptx/nvptx.c (struct offload_attrs): New.
4048 (populate_offload_attrs): New function. Factor mask extraction out of
4049 nvptx_reorg. Add extraction of dimensions.
4050 (nvptx_reorg): Use populate_offload_attrs.
4052 2019-01-03 Tom de Vries <tdevries@suse.de>
4054 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
4055 cases for oacc_min_dims_p and routine_p. Add asserts for
4056 oacc_default_dims_p and offload_region_p.
4058 2019-01-03 Tom de Vries <tdevries@suse.de>
4060 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
4062 (nvptx_goacc_validate_dims): ... here.
4064 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
4066 PR tree-optimization/85574
4067 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
4069 (struct ssa_equip_hash_traits): Declare.
4070 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
4072 2019-01-03 Jakub Jelinek <jakub@redhat.com>
4075 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
4076 change it to qualified_type.
4078 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
4080 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
4081 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
4083 2019-01-02 Martin Sebor <msebor@redhat.com>
4084 Jeff Law <law@redhat.com>
4086 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
4087 (get_range_strlen_tree): Update appropriately.
4089 * gimple-fold.h (get_range_strlen): Drop unused last argument.
4091 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
4092 rather than set_range_info.
4093 * tree-ssa-strlen.c (set_strlen_range): Extracted from
4094 maybe_set_strlen_range. Handle potentially boundary crossing
4095 cases more conservatively.
4096 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
4097 Call set_strlen_range.
4098 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
4101 * gimple-fold.c (get_range_strlen): Update prototype to no longer
4102 need the flexp argument.
4103 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
4104 from calls to get_range_strlen. Update comments. Just update
4105 VAL for an unterminated const char array and let the reset of the
4106 code handle it normally. No longer try to set *flexp. Adjust
4108 (get_range_strlen): Update for the new get_range_strlen API.
4109 (get_maxval_strlen): Similarly.
4110 (gimple_fold_builtin_strlen): Handle update meaning of return value
4111 from get_range_strlen.
4112 * gimple-ssa-sprintf.c (get_string_length): Update for the new
4113 get_range_strlen API.
4115 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
4118 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
4119 false at WPA time when body was removed.
4121 2019-01-02 Martin Liska <mliska@suse.cz>
4123 PR tree-optimization/88650
4124 * predict.c (set_even_probabilities): Calculate probability
4125 remainer only when really used.
4127 2019-01-02 Richard Biener <rguenther@suse.de>
4130 * tree-data-ref.c (analyze_subscript_affine_affine): Use
4131 widest_ints when mangling max_stmt_execution results.
4133 2019-01-02 Richard Biener <rguenther@suse.de>
4135 PR tree-optimization/88621
4136 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
4137 bitfields when canoncalizing.
4139 2019-01-02 Richard Biener <rguenther@suse.de>
4142 * config/i386/x86-tune-costs.h (intel_cost): Adjust
4143 cost of cheap SSE instruction.
4145 2019-01-02 Richard Biener <rguenther@suse.de>
4148 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
4149 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
4151 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
4152 set after UIDs before splitting them.
4154 2019-01-01 Martin Sebor <msebor@redhat.com>
4155 Jeff Law <law@redhat.com>
4157 * gimple-fold.c (get_range_strlen_tree): Record if the computed
4158 length is optimistic. If it is, then arrange to compute the
4159 conservative length as well.
4161 * gimple-fold.h (get_range_strlen): Update prototype.
4162 * builtins.c (check_access): Update call to get_range_strlen to use
4163 c_strlen_data pointer. Change various variable accesses to instead
4164 pull data from the c_strlen_data structure.
4165 (check_strncat_sizes, expand_builtin_strncat): Likewise.
4166 * calls.c (maybe_warn_nonstring_arg): Likewise.
4167 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
4168 minimum length if maximum lengh is unknown.
4169 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
4170 that used c_strlen, it's no longer needed. Restructure slightly.
4171 (format_string): Set unlikely range appropriately.
4172 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
4174 (get_range_strlen): Accept c_strlen_data pointer for external
4175 call sites as well. Pass through to call to internal get_range_strlen.
4176 Adjust minlen, maxlen and maxbound as needed.
4177 (get_maxval_strlen): Update comments.
4178 (gimple_fold_builtin_strlen): Update call to get_range_strlen
4179 to use c_strlen_data pointer. Change variable accesses to instead
4180 use c_strlen_data data members.
4182 * gimple-fold.c (get_range_strlen): Update prototype.
4183 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
4184 local variables. Use pdata to return information to caller.
4185 Update calls to get_range_strlen. Update pdata->maxbound.
4186 (get_range_strlen -- static version): Similarly.
4187 (get_range_strlen -- extern version): Update for internal
4188 get_range_strlen API change. Convert to external data format.
4189 (get_maxval_strlen): Similarly.
4191 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
4193 * coverage.c (get_coverage_counts): Use current_function_decl.
4194 * profile.c (read_thunk_profile): New function.
4195 (branch_prob): Add THUNK parameter.
4196 * tree-profile.c (tree_profiling): Handle thunks.
4197 * value-prof.c (init_node_map): Handle thunks.
4198 * value-prof.h (branch_prob): Upate prototype.
4199 (read_thunk_profile): Declare.
4201 2019-01-01 Jakub Jelinek <jakub@redhat.com>
4203 Update copyright years.
4205 * gcc.c (process_command): Update copyright notice dates.
4206 * gcov-dump.c (print_version): Ditto.
4207 * gcov.c (print_version): Ditto.
4208 * gcov-tool.c (print_version): Ditto.
4209 * gengtype.c (create_file): Ditto.
4210 * doc/cpp.texi: Bump @copying's copyright year.
4211 * doc/cppinternals.texi: Ditto.
4212 * doc/gcc.texi: Ditto.
4213 * doc/gccint.texi: Ditto.
4214 * doc/gcov.texi: Ditto.
4215 * doc/install.texi: Ditto.
4216 * doc/invoke.texi: Ditto.
4218 Copyright (C) 2019 Free Software Foundation, Inc.
4220 Copying and distribution of this file, with or without modification,
4221 are permitted in any medium without royalty provided the copyright
4222 notice and this notice are preserved.