1 2019-03-01 Jakub Jelinek <jakub@redhat.com>
4 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
5 early_lto_debug argument.
7 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
9 PR tree-optimization/89536
10 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
11 only whether bit #0 of the value is 0 instead of the entire value.
13 2019-02-28 Marek Polacek <polacek@redhat.com>
15 PR c++/87068 - missing diagnostic with fallthrough statement.
16 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
17 at the end of a seq, save its location to walk_stmt_info.
18 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
21 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
24 * tree.c (find_atomic_core_type): Move ahead in file.
25 (check_base_type): Correctly compare alignments of atomic types.
27 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
30 * config/i386/i386.c (get_builtin_code_for_version): Identify
31 Westmere from PCLMUL, instead of AES.
33 2019-02-28 Jakub Jelinek <jakub@redhat.com>
36 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
37 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
40 2019-02-28 Tamar Christina <tamar.christina@arm.com>
43 * config/aarch64/aarch64-option-extensions.def: Document it.
44 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
47 2019-02-28 Jakub Jelinek <jakub@redhat.com>
50 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
51 builtins if they don't have a single scalar floating point argument.
54 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
56 PR rtl-optimization/89490
57 * varasm.c (get_block_for_section): Bail out for mergeable sections.
58 (default_use_anchors_for_symbol_p, output_object_block): Assert the
59 block section is not mergeable.
61 2019-02-27 Jakub Jelinek <jakub@redhat.com>
64 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
65 old define_insn to ...
66 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
67 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
68 Rename old define_insn to ...
69 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
70 (thumb2_casesi_internal_pic): New define_expand. Rename old
72 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
73 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
74 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
76 2019-02-27 Richard Biener <rguenther@suse.de>
79 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
81 2019-02-27 Richard Biener <rguenther@suse.de>
83 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
86 2019-02-27 Richard Biener <rguenther@suse.de>
89 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
90 parameter, prefix section name with .gnu.debuglto_ if true.
91 (dwarf2out_finish): Pass false to output_comdat_type_unit.
92 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
94 2019-02-27 Richard Biener <rguenther@suse.de>
97 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
98 rather than on use_debug_types, doing what output_die does.
99 (value_format): Likewise.
101 2019-02-27 Martin Jambor <mjambor@suse.cz>
102 Martin Sebor <msebor@redhat.com>
104 * doc/invoke.texi (Warning Options): Reword description of
107 2019-02-27 Jakub Jelinek <jakub@redhat.com>
109 PR tree-optimization/89280
110 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
111 builtin_setjmp_setup_bb): New functions.
112 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
113 When visiting __builtin_setjmp_setup block, queue in special
114 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
115 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
116 from visited after the loop if they don't have any visited successor
119 2018-02-26 Steve Ellcey <sellcey@marvell.com>
121 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
123 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
125 2019-02-26 Jakub Jelinek <jakub@redhat.com>
128 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
129 with types other than sizetype/ssizetype.
131 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
133 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
134 (enum sparc_processor_type): ...this.
135 (enum sparc_code_model_type): New enumeration type.
136 (enum sparc_memory_model_type): Tweak comments.
137 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
139 (mcmodel): Use sparc_code_model enumeration and variable.
140 (sparc_code_model): New enumeration.
141 (mdebug): Add Undocumented marker.
142 * config/sparc/sparc.h (enum cmodel): Delete.
143 (sparc_cmodel): Likewise.
144 (TARGET_CM_MEDLOW): Adjust to above renaming.
145 (TARGET_CM_MEDMID): Likewise.
146 (TARGET_CM_MEDANY): Likewise.
147 (TARGET_CM_EMBMEDANY): Likewise.
148 * config/sparc/sparc.c (sparc_cmodel): Delete.
149 (sparc_option_override): Remove string/value mapping support for the
150 code model. Move code and memory model support to after the handling
151 of target flags. Do private machine setup last.
152 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
153 (sparc_legitimize_reload_address): Likewise.
154 (sparc_output_mi_thunk): Likewise.
155 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
157 2019-02-26 Jakub Jelinek <jakub@redhat.com>
159 PR tree-optimization/89500
160 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
161 (handle_builtin_strlen): Remove noncst_bound variable. Always
162 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
163 cst if the first cst bytes starting at x are known to be non-zero,
164 even if the string is not zero terminated. Don't try to modify
165 *si for strnlen. Update strlen_to_stridx only for strlen or if
166 we can prove strnlen returns the same value as strlen would.
168 2019-02-26 Martin Liska <mliska@suse.cz>
170 * alloc-pool.h (struct pool_usage): Remove extra
172 * bitmap.h (struct bitmap_usage): Likewise.
173 * ggc-common.c (struct ggc_usage): Likewise.
174 * mem-stats.h (struct mem_usage): Likewise.
175 (mem_alloc_description::dump): Print dash lines
176 here and repeat header at the end of a table report.
177 It's then more readable.
178 * tree-phinodes.c (phinodes_print_statistics): Make
179 horizontal alignment.
180 * tree-ssanames.c (ssanames_print_statistics): Likewise.
181 * vec.c (struct vec_usage): Remove extra print_dash_line.
182 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
184 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
186 * doc/extend.texi (__builtin_object_size):
187 Use @pxref instead of @xref inside parenthesis.
188 (__builtin_has_attribute): Add missing comma after @xref.
189 (__builtin_object_size): Ditto.
190 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
191 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
194 2019-02-26 Jeff Law <law@redhat.com>
196 PR rtl-optimization/87761
197 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
198 detect obviously dead insns and delete them.
200 2019-02-26 Richard Biener <rguenther@suse.de>
202 PR tree-optimization/89505
203 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
204 to handle restrict pointed-to vars with multiple subvars
207 2019-02-26 Richard Biener <rguenther@suse.de>
209 PR tree-optimization/89489
210 * tree-parloops.c (create_loop_fn): Copy over last_clique.
212 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
214 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
215 and move around comment.
216 <BIT_AND_EXPR>: Likewise.
217 <BIT_NOT_EXPR>: Add specific handling for boolean types.
219 2019-02-26 Jakub Jelinek <jakub@redhat.com>
222 * config/i386/i386.c (remove_partial_avx_dependency): Call
223 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
224 after changing possibly many instructions to use that pseudo. Fix up
225 insertion of v4sf_const0 setter at the start of bb.
227 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
230 * doc/extend.texi (Variadic Pointer Args): New section.
232 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
233 Martin Sebor <msebor@gmail.com>
235 * common.opt (Wattribute-alias): Likewise.
236 * doc/invoke.texi (Option Summary): List general form of
237 -Wattribute-alias=. List positive form of -Wmissing-attributes.
238 (-Wmissing-attributes): Invert entry, rewrite and correct default.
239 Add cross-references.
240 (-Wattribute-alias): Rewrite and correct default. Mention
241 considered attributes (same as for -Wmissing-attributes).
243 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
245 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
246 (_mm_cvtpd_ps): Likewise.
247 (_mm_cvttpd_epi32): Likewise.
250 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
251 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
254 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
256 2019-02-25 Tamar Christina <tamar.christina@arm.com>
259 * common/config/aarch64/aarch64-common.c
260 (struct aarch64_option_extension): Add is_synthetic.
261 (all_extensions): Use it.
262 (TARGET_OPTION_INIT_STRUCT): Define hook.
263 (struct gcc_targetm_common): Moved to end.
264 (all_extensions_by_on): New.
265 (opt_ext_cmp, typedef opt_ext): New.
266 (aarch64_option_init_struct): New.
267 (aarch64_contains_opt): New.
268 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
269 * config/aarch64/aarch64-option-extensions.def
270 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
271 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
272 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
273 Set is_synthetic to false.
274 (crypto): Set is_synthetic to true.
275 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
278 2019-02-25 Tamar Christina <tamar.christina@arm.com>
280 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
281 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
282 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
283 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
284 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
285 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
286 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
287 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
289 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
290 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
291 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
292 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
293 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
294 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
295 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
296 vfmlsl_laneq_high_f16): ... To this.
297 * config/arm/neon.md: Update comments.
299 2019-02-25 Tamar Christina <tamar.christina@arm.com>
301 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
302 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
303 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
304 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
305 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
306 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
307 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
308 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
310 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
311 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
312 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
313 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
314 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
315 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
316 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
317 vfmlslq_laneq_high_f16): ... To this.
319 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
321 PR rtl-optimization/86096
322 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
323 comparing mw_order values.
325 2019-02-25 Jakub Jelinek <jakub@redhat.com>
328 * config/arm/arm.md (*subsi3_carryin_const): Use
329 arm_neg_immediate_operand predicate instead of
330 arm_not_immediate_operand, "L" constraint instead of "K" and
331 print it using %n2 instead of %B2.
332 (*subsi3_carryin_const0): New define_insn.
333 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
334 instead of arm_not_operand and "I" constraint instead of "K" and
335 print it using %n3 instead of %B2. Instead of using match_dup 2 add
336 another match_operand and in the condition check that it is negation
338 (*subsi3_carryin_compare_const0): New define_ins.
339 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
340 *subsi3_carryin_const.
341 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
342 split into *subsi3_carryin_compare_const0 if the highpart is zero.
345 * config/arm.vfp.md (*negdf2_vfp): Use
346 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
347 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
349 2019-02-24 Jakub Jelinek <jakub@redhat.com>
351 PR rtl-optimization/89445
352 * simplify-rtx.c (simplify_ternary_operation): Don't use
353 simplify_merge_mask on operands that may trap.
354 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
355 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
356 second operand is CONST_VECTOR, check if any element could be zero.
357 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
358 their operands can trap.
360 2019-02-23 Martin Sebor <msebor@redhat.com>
362 * gimple-ssa-sprintf.c (target_strtol): Rename...
363 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
364 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
365 check for range error.
367 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
370 * opts-common.c (prune_options): Also prune joined switches
371 with Negative and RejectNegative.
372 * config/i386/i386.opt (march=): Add Negative(march=).
373 (mtune=): Add Negative(mtune=).
374 * doc/options.texi: Document Negative used together with Joined
377 2019-02-22 Martin Sebor <msebor@redhat.com>
379 * doc/extend.texi (Other Builtins): Add
380 __builtin_is_constant_evaluated.
382 2019-02-22 Richard Biener <rguenther@suse.de>
384 PR tree-optimization/87609
385 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
387 2019-02-22 Jeff Law <law@redhat.com>
389 PR rtl-optimization/87761
390 * config/mips/mips.md: Add new combiner pattern to recognize
391 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
393 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
396 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
397 destination register in peepholes generating patterns for ADDS/SUBS.
398 (add<mode>3_compare0,
399 *addsi3_compare0_uxtw, add<mode>3_compareC,
400 add<mode>3_compareV_imm, add<mode>3_compareV,
401 *adds_<optab><ALLX:mode>_<GPI:mode>,
402 *subs_<optab><ALLX:mode>_<GPI:mode>,
403 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
404 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
405 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
406 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
407 sub<mode>3_compare1): Allow stack pointer for source register.
408 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
410 2019-02-22 Martin Sebor <msebor@redhat.com>
412 PR tree-optimization/88993
413 PR tree-optimization/88853
414 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
416 (sprintf_dom_walker::call_info::is_string_func): New helper.
417 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
418 for formatted string functions.
419 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
421 2019-02-22 Martin Sebor <msebor@redhat.com>
424 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
425 unreachable subexpressions.
427 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
428 Hongtao Liu <hongtao.liu@intel.com>
429 Sunil K Pandey <sunil.k.pandey@intel.com>
432 * config/i386/i386-passes.def: Add
433 pass_remove_partial_avx_dependency.
434 * config/i386/i386-protos.h
435 (make_pass_remove_partial_avx_dependency): New.
436 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
438 (pass_data_remove_partial_avx_dependency): New.
439 (pass_remove_partial_avx_dependency): Likewise.
440 (make_pass_remove_partial_avx_dependency): Likewise.
441 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
442 (*extendsfdf2): Add avx_partial_xmm_update.
443 (truncdfsf2): Likewise.
444 (*float<SWI48:mode><MODEF:mode>2): Likewise.
445 (SF/DF conversion splitters): Disabled for TARGET_AVX.
447 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
450 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
453 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
456 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
457 (PTA_SKYLAKE): Add PTA_AES.
458 (PTA_GOLDMONT): Likewise.
460 2019-02-22 Sudakshina Das <sudi.das@arm.com>
462 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
463 instruction if enabled.
464 (aarch64_override_options): Remove reference to return address key.
466 2019-02-22 Richard Biener <rguenther@suse.de>
468 PR tree-optimization/89440
469 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
470 not necessary assert.
472 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
475 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
476 (oacc_replace_fn_attrib_attr): ... this new function.
477 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
478 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
480 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
482 * config/arm/arm-cpus.in (ares): Rename to...
483 (neoverse-n1): ... This. Add ares as alias.
484 * config/arm/arm-tables.opt: Regenerate.
485 * config/arm/arm-tune.md: Likewise.
486 * doc/invoke.txt (ARM Options): Document neoverse-n1.
488 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
490 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
491 * config/aarch64/aarch64-tune.md: Regenerate.
492 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
494 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
496 * config/aarch64/aarch64.c (ares_tunings): Rename to...
497 (neoversen1_tunings): ... This.
498 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
499 (neoverse-n1): New CPU.
500 * config/aarch64/aarch64-tune.md: Regenerate.
501 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
503 2019-02-22 Richard Biener <rguenther@suse.de>
506 * cfghooks.h (dependence_hash): New typedef.
507 (struct copy_bb_data): New type.
508 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
509 (duplicate_block): Likewise.
510 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
511 (copy_bbs): Create and pass down copy_bb_data.
512 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
513 (rtl_duplicate_bb): Likewise.
514 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
515 remap dependence info.
517 2019-02-22 Richard Biener <rguenther@suse.de>
519 PR tree-optimization/87609
520 * tree-core.h (tree_base): Document special clique values.
521 * tree-inline.c (remap_dependence_clique): Do not use the
522 special clique value of one.
523 (maybe_set_dependence_info): Use clique one.
524 (clear_dependence_clique): New callback.
525 (compute_dependence_clique): Clear clique one from all refs
526 before assigning it (again).
528 2019-02-21 Martin Sebor <msebor@redhat.com>
530 * doc/extend.texi (__clear_cache): Correct signature.
532 2019-02-21 Ian Lance Taylor <iant@golang.org>
535 * varasm.c (decode_addr_const): Call lookup_constant_def rather
536 than output_constant_def.
537 (add_constant_to_table): New static function.
538 (output_constant_def): Call add_constant_to_table.
539 (tree_output_constant_def): Likewise.
541 2019-02-21 Jakub Jelinek <jakub@redhat.com>
544 * builtins.c (fold_builtin_arith_overflow): If first two args are
545 INTEGER_CSTs, set intres and ovfres to constants rather than calls
548 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
551 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
552 error for -mindirect-branch/-mfunction-return with incompatible
555 2019-02-21 Jakub Jelinek <jakub@redhat.com>
558 * constraints.md (q): Remove.
559 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
562 2019-02-21 Martin Jambor <mjambor@suse.cz>
565 * omp-general.c (omp_extract_for_data): Removed a duplicate call
566 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
567 (omp_adjust_for_condition): ...here. Added necessary parameters.
568 * omp-general.h (omp_adjust_for_condition): Updated declaration.
569 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
570 proper values to new parameters of omp_adjust_for_condition.
572 2019-02-20 Jakub Jelinek <jakub@redhat.com>
575 * expr.c (expand_assignment): If result is a MEM, use change_address
576 instead of simplify_gen_subreg.
578 2019-02-20 Jakub Jelinek <jakub@redhat.com>
579 David Malcolm <dmalcolm@redhat.com>
582 * fold-const.c (decode_field_reference): Return NULL_TREE if
583 lang_hooks.types.type_for_size returns NULL. Check it before
584 overwriting *exp_. Use return NULL_TREE instead of return 0.
586 2019-02-20 Jakub Jelinek <jakub@redhat.com>
590 * toplev.c (do_compile): Double the emin/emax exponents to workaround
593 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
596 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
597 TARGET_SSE in addition to TARGET_SSE_MATH.
599 (ix86_excess_precision): Ditto.
600 (ix86_float_exceptions_rounding_supported_p): Ditto.
601 (use_rsqrt_p): Ditto.
602 * config/i386/sse.md (rsqrt<mode>2): Ditto.
604 2019-02-20 David Malcolm <dmalcolm@redhat.com>
607 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
608 linenum_arith_t when determining if two adjacent line spans are
609 close enough to merge.
610 (diagnostic_show_locus): Use linenum_arith_t when iterating over
611 lines within each line_span.
613 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
616 * lra-constraints.c(uses_hard_regs_p): Fix handling of
619 2019-02-20 Li Jia He <helijia@linux.ibm.com>
622 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
623 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
624 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
627 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
629 * config/gcn/gcn.c (print_operand): Fix typo.
631 2019-02-19 Richard Biener <rguenther@suse.de>
634 * toplev.c (do_compile): Initialize mpfr's exponent range
635 based on available float modes.
637 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
639 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
640 as long as the epilogue isn't completed.
642 2019-02-18 Martin Sebor <msebor@redhat.com>
644 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
645 __has_cpp_attribute, and __has_include.
647 2019-02-18 Martin Sebor <msebor@redhat.com>
649 * doc/invoke.texi (-Wreturn-type): Correct and expand.
651 2019-02-18 Martin Sebor <msebor@redhat.com>
654 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
656 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
658 2019-02-18 Richard Biener <rguenther@suse.de>
660 PR tree-optimization/89296
661 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
662 of no-warning flag to cases that might emit the bogus warning.
664 2019-02-18 Jakub Jelinek <jakub@redhat.com>
667 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
669 * config/arm/vfp.md (*movdi_vfp): Likewise.
670 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
671 "q" constraint for operands[0].
674 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
675 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
676 pattern in a temporary buffer.
677 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
681 * config/s390/s390.c (s390_indirect_branch_attrvalue,
682 s390_indirect_branch_settings): Define unconditionally.
683 (s390_set_current_function): Likewise, but guard the whole body except
684 the s390_indirect_branch_settings call with
685 #if S390_USE_TARGET_ATTRIBUTE.
686 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
688 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
689 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
690 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
691 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
692 HOST_WIDE_INT_1U instead of 1ULL.
693 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
694 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
695 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
696 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
698 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
701 2019-02-18 Martin Jambor <mjambor@suse.cz>
703 PR tree-optimization/89209
704 * tree-sra.c (create_access_replacement): New optional parameter
705 reg_tree. Use it as a type if non-NULL and access type is not of
707 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
708 to create_access_replacement.
709 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
710 Check lacc is non-NULL before attempting to re-create it on the RHS.
712 2019-02-18 Martin Liska <mliska@suse.cz>
715 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
717 (symbol_table::free_edge): Recycle m_summary_id.
718 * cgraph.h (get_summary_id): New.
719 (symbol_table::release_symbol): Set m_summary_id to -1
721 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
722 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
723 function_summary to fast_function_summary.
724 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
725 * ipa-pure-const.c (class funct_state_summary_t):
726 Switch from function_summary to fast_function_summary.
727 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
728 (class ipa_ref_opt_summary_t): Switch from function_summary
729 to fast_function_summary.
730 * symbol-summary.h (class function_summary_base): New class
731 that is created from base of former function_summary.
732 (function_summary_base::unregister_hooks): New.
733 (class function_summary): Inherit from function_summary_base.
734 (class call_summary_base): New class
735 that is created from base of former call_summary.
736 (class call_summary): Inherit from call_summary_base.
737 (struct is_same): New.
738 (class fast_function_summary): New summary class.
739 (class fast_call_summary): New summary class.
740 * vec.h (vec_safe_grow_cleared): New function.
742 2019-02-18 Martin Liska <mliska@suse.cz>
744 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
745 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
746 * doc/tm.texi: Document new target hook.
747 * doc/tm.texi.in: Likewise.
748 * target.def: Add new target macro.
749 * gcc.c (find_fortran_preinclude_file): Do not search multilib
752 2019-02-17 Alan Modra <amodra@gmail.com>
755 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
756 output reg on add insn.
757 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
759 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
762 * config/i386/sse.md (ssedoublemode): Remove V4HI.
763 (PMULHRSW): Likewise.
764 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
766 (ssse3_pmulhrswv4hi3): New expander.
768 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
770 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
771 MMX. Add isa attribute.
773 2019-02-16 Jakub Jelinek <jakub@redhat.com>
775 PR rtl-optimization/66152
776 * builtins.h (c_readstr): Declare.
777 * builtins.c (c_readstr): Remove forward declaration. Add
778 null_terminated_p argument, if false, read all bytes from the
779 string instead of stopping after '\0'.
780 * expr.c (string_cst_read_str): New function.
781 (store_expr): Use string_cst_read_str instead of
782 builtin_strncpy_read_str. Try to store by pieces the whole
783 exp_len first, and only if that fails, split it up into
784 store by pieces followed by clear_storage. Formatting fix.
786 * config/i386/i386.md (*movqi_internal): Remove static from
787 buf variable. Use output_asm_insn (buf, operands); return "";
788 instead of return buf;.
789 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
790 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
791 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
793 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
795 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
796 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
797 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
798 (CC1_SPEC): Likewise.
799 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
801 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
803 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
804 the base address on 64-bit strict-alignment platforms.
806 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
808 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
810 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
812 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
814 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
816 PR rtl-optimization/88308
817 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
818 on copied instruction.
820 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
822 * final.c (insn_current_reference_address): Replace test on JUMP_P
823 with test on jump_to_label_p.
824 * config/visium/visium-passes.def: New file.
825 * config/visium/t-visium (PASSES_EXTRA): Define.
826 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
827 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
828 (TRAMPOLINE_ALIGNMENT): Define.
829 * config/visium/visium.c (visium_option_override): Do not register
830 the machine-specific reorg pass here.
831 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
833 (output_branch): Adjust threshold for long branch instruction.
834 * config/visium/visium.md (cpu): Move around.
835 (length): Adjust for the GR6.
837 2019-02-15 Richard Biener <rguenther@suse.de>
838 Jakub Jelinek <jakub@redhat.com>
840 PR tree-optimization/89278
841 * tree-loop-distribution.c: Include tree-eh.h.
842 (generate_memset_builtin, generate_memcpy_builtin): Call
843 rewrite_to_non_trapping_overflow on builtin->size before passing it
844 to force_gimple_operand_gsi.
846 2019-02-15 Jakub Jelinek <jakub@redhat.com>
849 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
851 * opth-gen.awk: Likewise.
853 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
855 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
856 Enable MMX, SSE and SSE2 by default.
857 * config/i386/i386.c (ix86_option_override_internal): Do not
858 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
860 2019-02-14 Jakub Jelinek <jakub@redhat.com>
862 PR rtl-optimization/89354
863 * combine.c (make_extraction): Punt if extraction_mode is narrower
866 2019-02-14 Maya Rashish <coypu@sdf.org>
868 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
869 * config/netbsd-d.c: New file.
870 * config/t-netbsd: Add netbsd-d.o
872 2018-02-14 Steve Ellcey <sellcey@marvell.com>
874 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
875 affects_type_identity to true for aarch64_vector_pcs.
876 (aarch64_comp_type_attributes): New function.
877 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
879 2019-02-14 Tamar Christina <tamar.christina@arm.com>
882 * config/arm/iterators.md (ANY64): Add V4HF.
884 2019-02-14 Martin Liska <mliska@suse.cz>
886 PR rtl-optimization/89242
887 * dce.c (delete_unmarked_insns): Call free_dominance_info we
888 process a transformation.
890 2019-02-14 Jakub Jelinek <jakub@redhat.com>
892 PR tree-optimization/89314
893 * fold-const.c (fold_binary_loc): Cast strlen argument to
894 const char * before dereferencing it. Formatting fixes.
897 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
899 2019-02-13 Ian Lance Taylor <iant@golang.org>
901 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
902 and set current index for other optimizations.
904 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
906 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
907 nonimmediate_operand as operand 2 predicate.
908 (vec_set<VF2_512_256:mode>_0): Ditto.
909 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
910 (*vec_concatv2si): Remove alternative 2.
911 (*vec_concatv4si_0): Use vm constraint for alternative 0.
912 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
913 (vec_concatv2di): Split alternatives 4,5,6 to ...
914 (*vec_concatv2di_0) ... new pattern.
916 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
919 * config/arm/arm.c (ldm_stm_operation_p) Set
920 addr_reg_in_reglist correctly for first register.
921 (load_multiple_sequence): Remove dead base check.
922 (gen_ldm_seq): Correctly set write_back for Thumb-1.
924 2019-02-13 Tamar Christina <tamar.christina@arm.com>
927 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
928 Expose as @aarch64_pred_mov.
929 * config/aarch64/aarch64.c (aarch64_classify_address):
930 Use expand_insn which legitimizes operands.
932 2019-02-13 Martin Liska <mliska@suse.cz>
934 * builtins.h (expand_builtin_with_bounds): Remove declaration.
935 * calls.c (struct arg_data): Remove special_slot, pointer_arg
936 and pointer_offset fields.
937 (initialize_argument_information): Remove usage of dead
939 * cgraph.h (struct cgraph_thunk_info): Remove
940 add_pointer_bounds_args.
941 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
943 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
945 * config/i386/i386.c (ix86_function_arg_advance): Remove
947 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
948 (def_builtin): Remove usage of dead
950 (ix86_add_new_builtins): Likewise.
951 * ipa-fnsummary.c (compute_fn_summary): Likewise.
952 * ipa-icf.c (sem_function::equals_wpa): Likewise.
953 (sem_function::init): Likewise.
954 (sem_variable::merge): Likewise.
955 * ipa-visibility.c (function_and_variable_visibility): Likewise.
956 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
957 * lto-cgraph.c (lto_output_node): Likewise.
958 (lto_output_varpool_node): Likewise.
959 (input_node): Likewise.
960 (input_varpool_node): Likewise.
961 * lto-streamer-out.c (lto_output): Likewise.
962 * tree-inline.c (expand_call_inline): Remove usage of
964 * tree-inline.h (struct copy_body_data): Likewise.
965 * varpool.c (varpool_node::dump): Likewise.
967 2019-02-13 Jakub Jelinek <jakub@redhat.com>
970 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
971 into pt->vars_contains_escaped_heap instead of setting
972 pt->vars_contains_escaped_heap to it.
975 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
976 INTVAL (size), compare it to GET_MODE_MASK instead of
977 1 << GET_MODE_BITSIZE.
980 * config/i386/predicates.md (x86_64_immediate_operand): Allow
981 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
984 2019-02-13 Martin Liska <mliska@suse.cz>
987 * cfgrtl.c (remove_barriers_from_footer): New function.
988 (try_redirect_by_replacing_jump): Use it.
989 (cfg_layout_redirect_edge_and_branch): Likewise.
991 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
993 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
994 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
995 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
996 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
997 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
998 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
1000 * config/rs6000/rs6000.c (builtin_function_type)
1001 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
1002 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
1003 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
1004 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
1005 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
1007 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
1009 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
1010 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
1012 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
1015 * config/i386/i386.md (*movoi_internal_avx): Revert revision
1016 268678 and revision 268657.
1017 (*movti_internal): Likewise.
1019 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
1022 * config/s390/s390.c (s390_decompose_address): Update comment.
1023 (s390_check_qrst_address): Reject invalid address forms after
1026 2019-02-12 Martin Liska <mliska@suse.cz>
1029 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
1030 we need default values of funct_state for a function that
1033 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
1035 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
1036 the object to pick the size of stores on strict-alignment platforms.
1038 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
1039 (*movdi_insn_sp32): Likewise.
1040 (*movdi_insn_sp64): Likewise.
1042 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
1045 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
1046 types that needs constructiong.
1047 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
1049 2019-02-12 Richard Biener <rguenther@suse.de>
1051 PR tree-optimization/89253
1052 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
1055 2019-02-11 David Malcolm <dmalcolm@redhat.com>
1058 * input.c (selftest::test_line_offset_overflow): New selftest.
1059 (selftest::input_c_tests): Call it.
1061 2019-02-11 Martin Sebor <msebor@redhat.com>
1063 PR tree-optimization/88771
1064 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
1065 when -Wstringop-overflow is set.
1066 (builtin_memref::builtin_memref): Adjust excessive upper bound
1067 only when lower bound is not excessive.
1068 (maybe_diag_overlap): Detect and diagnose excessive bounds via
1069 -Wstringop-ovefflow.
1070 (maybe_diag_offset_bounds): Rename...
1071 (maybe_diag_access_bounds): ...to this.
1072 (check_bounds_or_overlap): Adjust for name change above.
1074 2019-02-11 Martin Sebor <msebor@redhat.com>
1077 * builtins.c (max_object_size): Move from here...
1078 * builtins.h (max_object_size): ...and here...
1079 * tree.c (max_object_size): ...to here...
1080 * tree.h (max_object_size): ...and here.
1082 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
1084 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
1085 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
1086 for correct semantics.
1088 2019-02-11 Alan Modra <amodra@gmail.com>
1090 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
1091 -mlongcall and -mpltseq.
1092 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
1093 (RS/6000 and PowerPC Options <-mpltseq>): Document.
1094 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
1095 * config/rs6000/sysv4.opt (mpltseq): New option.
1096 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
1097 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
1098 support is lacking. Don't allow -mpltseq with -mbss-plt.
1099 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
1100 -mpltseq given for ELFv1.
1101 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
1102 Only use UNSPEC_PLTSEQ for inline PLT calls.
1103 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
1104 use UNSPEC_PLTSEQ for inline PLT calls.
1105 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
1106 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
1107 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
1108 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1109 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1110 (pltseq_mtctr_<mode>): Likewise.
1112 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1114 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
1116 * configure: Regenerate.
1118 2019-02-11 Jakub Jelinek <jakub@redhat.com>
1121 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
1124 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
1126 * function.c (assign_parm_setup_block): Use the stored
1127 size, not the passed size, when allocating stack-space,
1128 also for a parameter with alignment larger than
1129 MAX_SUPPORTED_STACK_ALIGNMENT.
1131 2019-02-11 Martin Liska <mliska@suse.cz>
1134 * ipa-cp.c (build_toporder_info): Remove usage of a param.
1135 * ipa-inline.c (inline_small_functions): Likewise.
1136 * ipa-pure-const.c (propagate_pure_const): Likewise.
1137 (propagate_nothrow): Likewise.
1138 * ipa-reference.c (propagate): Likewise.
1139 * ipa-utils.c (struct searchc_env): Remove unused field.
1140 (searchc): Always search across AVAIL_INTERPOSABLE.
1141 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
1142 the only called IPA pure const can properly not propagate
1143 across interposable boundary.
1144 * ipa-utils.h (ipa_reduced_postorder): Remove param.
1146 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
1148 * config/nds32/nds32.md (call_internal, call_value_internal,
1149 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
1151 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
1153 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
1156 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
1158 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
1161 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1163 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
1165 2019-02-10 Jakub Jelinek <jakub@redhat.com>
1167 PR tree-optimization/89268
1168 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
1169 if preds is non-NULL.
1171 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1174 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
1177 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1179 * config/nds32/nds32.md (trap): New pattern.
1181 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1183 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
1186 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1188 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
1191 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1193 * ipa-visibility.c (localize_node): Also do not localize
1194 LDPR_PREVAILING_DEF_IRONLY_EXP.
1196 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1199 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
1200 instead of type_with_linkage.
1202 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1205 * params.def (uninlined-function-insns, uninlined-function-time,
1206 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
1207 bound so we don't get overflows.
1209 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
1211 * config/rs6000/rs6000-string.c (expand_compare_loop,
1212 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
1215 2019-02-09 Jakub Jelinek <jakub@redhat.com>
1218 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1219 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
1220 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
1222 2019-02-09 Alan Modra <amodra@gmail.com>
1225 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
1226 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
1229 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
1232 * lra-constraints.c (process_alt_operands): Don't increase reject
1233 for memory when offset memory is required.
1235 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
1237 * config/s390/vector.md: Implement vector copysign.
1239 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1241 * expr.c (expand_constructor): Correct indentations.
1243 2019-02-08 Richard Biener <rguenther@suse.de>
1245 PR tree-optimization/89247
1246 * tree-if-conv.c: Include tree-cfgcleanup.h.
1247 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
1248 (tree_if_conversion): Pass through predicate vector.
1249 (pass_if_conversion::execute): Do CFG cleanup and SSA update
1250 inline, see if any if-converted loops we refrece in
1251 LOOP_VECTORIZED calls vanished and fixup.
1252 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
1254 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
1256 * config/s390/constraints.md (jdd): New constraint.
1258 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1261 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
1262 upper 16 vector registers without TARGET_AVX512VL.
1263 (*movti_internal): Likewise.
1265 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1267 PR rtl-optimization/89234
1268 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
1269 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
1270 (copy_reg_eh_region_note_backward): Likewise.
1272 2019-02-08 Richard Biener <rguenther@suse.de>
1275 * tree-data-ref.c (initialize_matrix_A): Fail if constant
1277 (analyze_subscript_affine_affine): Handle failure from
1278 initialize_matrix_A.
1280 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1282 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
1285 2019-02-07 David Malcolm <dmalcolm@redhat.com>
1287 PR tree-optimization/86637
1288 PR tree-optimization/89235
1289 * tree-vect-loop.c (optimize_mask_stores): Add an
1290 auto_purge_vect_location sentinel to ensure that vect_location is
1293 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
1294 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
1295 to ensure that vect_location is purged on exit.
1296 (pass_slp_vectorize::execute): Likewise, replacing the manual
1298 * tree-vectorizer.h (class auto_purge_vect_location): New class.
1300 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1302 * config/aarch64/iterators.md (max_opp): New code_attr.
1303 (USMAX): New code iterator.
1304 * config/aarch64/predicates.md (aarch64_smin): New predicate.
1305 (aarch64_smax): Likewise.
1306 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
1307 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
1310 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
1313 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
1314 for TARGET_AVX512VL.
1315 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
1317 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
1319 * config/s390/s390-builtin-types.def: Add new types.
1320 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
1321 (s390_vec_xlw4): Make the memory operand into a const pointer.
1322 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
1324 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
1325 a new vector type with the alignment of the scalar memory operand.
1327 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
1328 Jakub Jelinek <jakub@redhat.com>
1331 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
1332 arm_count_ldrdstrd_insns): New declarations.
1333 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
1335 (valid_operands_ldrd_strd): New function.
1336 (arm_count_ldrdstrd_insns): New function.
1337 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
1338 sets instead of single DImode set and define new insns to match this.
1340 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1342 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
1343 Make it a C initializer.
1345 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1348 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
1350 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1352 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
1353 Use neon_dot<q> for type.
1354 (neon_<sup>dot_lane<vsi2qi>): Likewise.
1356 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1358 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
1359 Use neon_dot<q> for type.
1360 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
1361 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
1363 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
1365 PR rtl-optimization/89225
1366 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
1369 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
1371 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
1372 after restoring registers saved to allocate the frame on Windows.
1374 2019-02-06 Richard Biener <rguenther@suse.de>
1376 PR tree-optimization/89182
1377 * graphite.h (cached_scalar_evolution_in_region): Declare.
1378 * graphite.c (struct seir_cache_key): New.
1379 (struct sese_scev_hash): Likewise.
1380 (seir_cache): New global.
1381 (cached_scalar_evolution_in_region): New function.
1382 (graphite_transform_loops): Allocate and release seir_cache.
1383 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
1384 cached_scalar_evolution_in_region.
1385 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1387 (scop_detection::graphite_can_represent_expr: Use
1388 cached_scalar_evolution_in_region.
1389 (scop_detection::stmt_simple_for_scop_p): Likewise.
1390 (find_params_in_bb): Likewise.
1391 (gather_bbs::before_dom_children): Likewise.
1392 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
1393 (add_loop_constraints): Likewise.
1395 2019-02-06 Jakub Jelinek <jakub@redhat.com>
1398 * fold-const-call.c (fold_const_vec_convert): Pass true as last
1399 operand to new_unary_operation only if both element types are integral
1400 and it isn't a widening conversion. Return NULL_TREE if
1401 new_unary_operation failed.
1403 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
1406 * config/s390/s390.md: Remove load and test FP splitter.
1408 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1411 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
1412 expand_compare_loop, expand_block_compare_gpr,
1413 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
1414 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
1415 #include "profile-count.h" and "predict.h" for types and functions
1416 needed to work with REG_BR_PROB notes.
1418 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1421 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
1422 for the long branch case.
1424 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1427 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
1428 can throw, non-call exceptions are enabled and we can't delete
1429 dead exceptions or alter cfg. Set must_clean if
1430 delete_insn_and_edges returns true, don't set it blindly for calls.
1431 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
1433 PR rtl-optimization/89195
1434 * combine.c (make_extraction): For MEMs, don't extract bytes outside
1435 of the original MEM.
1437 2019-02-05 Martin Liska <mliska@suse.cz>
1439 PR gcov-profile/89000
1440 * gcov.c (function_summary): Remove argument.
1441 (file_summary): New function.
1442 (print_usage): Replace tabs with spaces.
1443 (generate_results): Use new function file_summary.
1445 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1448 * optabs.c (prepare_cmp_insn): Pass x and y to
1449 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
1451 2019-02-05 Richard Biener <rguenther@suse.de>
1454 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
1455 (struct bitmap_element): Drop chain_prev so we properly recurse on
1456 the prev member, supporting tree views.
1457 (struct bitmap_head): GTY skip the obstack member.
1459 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
1462 * doc/extend.texi (Vector Extensions): Add an example of using vector
1463 types together with x86 intrinsics.
1465 2019-02-04 Alan Modra <amodra@gmail.com>
1467 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
1468 str[] size to 160, and comment.
1470 2019-02-04 Alan Modra <amodra@gmail.com>
1472 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
1473 (rs6000_pltseq_template): Guard output of TLS markers with
1475 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
1476 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
1477 to use inline PLT sequences.
1478 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1479 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1480 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
1482 2019-02-04 Martin Liska <mliska@suse.cz>
1485 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
1486 out when ipa_fn_summaries does not contain entry for callee.
1488 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
1490 * config/sparc/sparc.h: Remove superfluous blank lines.
1491 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
1492 (got_register_rtx): ...this.
1493 (sparc_got): Adjust to above renaming.
1494 (sparc_tls_got): Likewise.
1495 (sparc_delegitimize_address): Likewise.
1496 (sparc_output_mi_thunk): Likewise.
1497 (sparc_init_pic_reg): Likewise.
1498 (save_local_or_in_reg_p): Fix test on the GOT register.
1499 (USE_HIDDEN_LINKONCE): Move around.
1500 (get_pc_thunk_name): Likewise.
1501 (gen_load_pcrel_sym): Likewise.
1502 (load_got_register): Likewise.
1504 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
1506 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
1507 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
1509 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1511 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
1514 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1516 * config.gcc (with_nds32_lib, glibc):
1517 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
1518 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
1519 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
1521 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
1524 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
1525 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
1526 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
1527 (*rcpsf2_sse): Ditto.
1528 (*rsqrtsf2_sse): Ditto.
1529 (sse4_1_round<mode<2): Ditto.
1531 2019-02-03 Richard Biener <rguenther@suse.de>
1534 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
1537 2019-02-02 Jakub Jelinek <jakub@redhat.com>
1540 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1541 Punt with warning on aggregate return or argument types. Ignore
1542 type/mode checking for uniform arguments.
1544 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
1546 * combine.c (try_combine): Do not print "Can't combine" messages unless
1547 printing failed combination attempts.
1549 2019-02-01 Martin Jambor <mjambor@suse.cz>
1552 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
1553 segment and global segment variables before making them static.
1555 2019-02-01 Martin Jambor <mjambor@suse.cz>
1557 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
1558 missed optimization dump with dump_enabled_p.
1560 2019-02-01 Richard Biener <rguenther@suse.de>
1563 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
1564 the instantiate cache.
1565 (instantiate_scev_binary): Elide second operand procesing
1566 if equal to the first.
1567 * tree-chrec.c (chrec_contains_symbols): Add visited set.
1568 (chrec_contains_undetermined): Likewise.
1569 (tree_contains_chrecs): Likewise.
1571 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
1573 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
1575 2019-02-01 Jakub Jelinek <jakub@redhat.com>
1577 PR tree-optimization/89143
1578 * wide-int-range.h (wide_int_range_absu): Declare.
1579 * wide-int-range.cc (wide_int_range_absu): New function.
1580 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
1582 PR tree-optimization/88107
1583 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
1584 instead of assertion that eh_region_outermost is non-NULL, if it
1585 is NULL, set *ALL to true and return NULL.
1586 (move_sese_region_to_fn): Adjust caller, if all is set, call
1587 duplicate_eh_regions with NULL region.
1589 2019-02-01 Richard Biener <rguenth@suse.de>
1591 PR rtl-optimization/88593
1592 * mode-switching.c (optimize_mode_switching): Free dominators before
1593 calling cleanup_cfg.
1595 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
1597 PR tree-optimization/88932
1598 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
1600 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1603 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
1604 bogus clang warning.
1606 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
1609 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
1610 alternative to avoid partial SSE register stall for TARGET_AVX.
1611 (truncdfsf2): Ditto.
1612 (sse4_1_round<mode>2): Ditto.
1614 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
1616 PR tree-optimization/89008
1617 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
1618 process anything of the form X * 0.
1620 2019-01-31 Richard Biener <rguenther@suse.de>
1622 PR tree-optimization/89135
1623 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
1624 with abnormal preds.
1626 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1629 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
1630 always_inline callees into no_sanitize_address callers.
1632 2019-01-31 Richard Biener <rguenther@suse.de>
1634 PR rtl-optimization/89115
1635 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
1637 2019-01-30 Martin Sebor <msebor@redhat.com>
1640 * doc/extend.texi (cast to a union): Correct and expand.
1642 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
1644 PR rtl-optimization/87246
1645 * lra-constraints.c (simplify_operand_subreg): Reload memory
1646 in subreg if the address became invalid.
1648 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
1651 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
1652 Disable for little-endian.
1654 2019-01-30 Richard Biener <rguenther@suse.de>
1656 PR rtl-optimization/89115
1657 * opts.c (default_options_optimization): Reduce
1658 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
1659 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
1662 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
1664 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
1665 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
1666 type of vector element when vec_extract is implemented by direct
1669 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
1671 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
1673 2019-01-30 Richard Biener <rguenther@suse.de>
1675 PR tree-optimization/89111
1676 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
1677 canonicalization to appropriately sized access types.
1679 2019-01-30 Jakub Jelinek <jakub@redhat.com>
1682 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
1683 for arguments to functions that are TU-local and shouldn't be
1684 referenced by assembly.
1686 2019-01-30 Ulrich Drepper <drepper@redhat.com>
1688 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
1691 2019-01-29 Martin Sebor <msebor@redhat.com>
1694 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
1696 2019-01-29 Jakub Jelinek <jakub@redhat.com>
1700 * omp-simd-clone.c (simd_clone_clauses_extract)
1701 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
1702 OMP_CLAUSE_ALIGNED_ALIGNMENT.
1704 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
1706 * config.gcc: Force .init_array for ARC.
1708 2019-01-29 Richard Biener <rguenther@suse.de>
1711 * dwarf2out.c (collect_skeleton_dies): New helper.
1712 (copy_decls_for_unworthy_types): Call it.
1713 (build_abbrev_table): Assert we do not try to replace
1714 DW_AT_signature refs with local refs.
1716 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1719 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
1720 for lastprivate/linear IV, push gimplify context around gimplify_assign
1721 and, if it needed any temporaries, pop it into a gimple bind around the
1724 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
1726 * common.opt (-Wattribute-alias): Remove "no-" from name.
1727 Make -Wattribute-alias command line option and
1728 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
1730 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1733 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
1734 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
1736 (bmi2): Add missing @opindex.
1737 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
1738 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
1739 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
1740 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
1741 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
1742 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
1743 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
1744 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
1745 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
1746 xsavec, xsaveopt and xsaves options.
1748 2019-01-28 Richard Biener <rguenther@suse.de>
1751 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
1754 2019-01-28 Richard Biener <rguenther@suse.de>
1756 PR tree-optimization/88739
1757 * tree-cfg.c (verify_types_in_gimple_reference): Verify
1758 BIT_FIELD_REFs only are applied to mode-precision operands
1759 when they are integral.
1760 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
1761 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
1762 BIT_FIELD_REFs of non-mode-precision integral operands.
1764 2019-01-27 Jakub Jelinek <jakub@redhat.com>
1767 * config/i386/sse.md
1768 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
1769 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
1770 first constants in pairs are multiples of 2. Formatting fixes.
1771 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
1772 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
1773 first constants in each quadruple are multiples of 4. Formatting fixes.
1775 2019-01-26 Martin Jambor <mjambor@suse.cz>
1778 * tree-inline.c: Include tree-cfgcleanup.h.
1779 (delete_unreachable_blocks_update_callgraph): Move...
1780 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
1781 ...here, make externally visible, make second argument bool, adjust
1783 * tree-cfgcleanup.c: Include cgraph.h.
1784 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
1786 * ipa-prop.c: Include tree-cfgcleanup.h.
1787 (ipcp_transform_function): Call
1788 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
1790 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
1792 PR rtl-optimization/88846
1793 * ira.c (process_set_for_memref_referenced_p): New.
1794 (memref_referenced_p): Add new param. Use
1795 process_set_for_memref_referenced_p. Add new switch cases.
1796 (memref_used_between_p): Pass new arg to memref_referenced_p.
1798 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
1801 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
1802 argument ABI_BREAK. Set to true if the calculated alignment has
1803 changed in gcc-9. Check bit-fields for their base type alignment.
1804 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
1805 (aarch64_function_arg_boundary): Likewise.
1806 (aarch64_gimplify_va_arg_expr): Likewise.
1808 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1811 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
1812 instead of accessing TREE_INT_CST_ELT directly.
1814 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
1816 * doc/sourcebuild.texi (Environment attributes): Add fenv and
1817 fenv_exceptions description.
1819 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
1821 PR rtl-optimization/87763
1822 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
1823 Allow SUBREG when matching CC_NZmode compare.
1825 2019-01-25 Richard Biener <rguenther@suse.de>
1827 PR tree-optimization/89049
1828 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
1829 Look at the pattern stmt to determine if the stmt is vectorized.
1831 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1833 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
1834 (pred_mov<mode>): Handle all-register forms using both a new
1835 alternative and a split.
1837 2019-01-25 Richard Biener <rguenther@suse.de>
1839 PR tree-optimization/86865
1840 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1841 Reject non-do-while loops.
1843 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
1845 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
1846 * config/rs6000/constraints.md (Q constraint): Use REG_P.
1847 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
1848 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1849 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
1850 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1851 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
1852 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
1853 vlogical_operand, gpc_reg_operand, int_reg_operand,
1854 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
1855 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
1856 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
1857 (save_world_operation, restore_world_operation, lmw_operation,
1858 stmw_operation): Use MEM_P and REG_P.
1859 (tie_operand): Use MEM_P.
1860 (vrsave_operation, crsave_operation): Use REG_P.
1861 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
1862 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
1863 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
1864 (call_operand): Use HARD_REGISTER_P.
1865 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
1867 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
1868 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
1869 quad_aligned_load_p, replace_swapped_aligned_store,
1870 recombine_lvx_pattern, replace_swapped_aligned_load,
1871 recombine_stvx_pattern): Use MEM_P.
1872 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
1873 Use MEM_P and SYMBOL_REF_P.
1874 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
1875 (insn_is_swappable_p): Use REG_P and MEM_P.
1876 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
1877 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
1879 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1881 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1883 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
1884 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
1885 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
1886 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
1888 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1889 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
1890 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
1891 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
1892 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
1893 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
1894 rs6000_split_logical_di): Use CONST_INT_P.
1895 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
1896 REG_P and SYMBOL_REF_P.
1897 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
1898 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
1899 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
1900 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
1901 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
1902 (small_data_operand, print_operand_address): Use CONST_INT_P and
1904 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
1905 (rs6000_init_hard_regno_mode_ok, direct_move_p):
1906 Use HARD_REGISTER_NUM_P.
1907 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
1908 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
1909 SUBREG_P and SYMBOL_REF_P.
1910 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
1911 and HARD_REGISTER_NUM_P.
1912 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
1914 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1915 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1917 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
1918 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
1919 find_addr_reg): Use REG_P.
1920 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
1921 (rs6000_emit_le_vsx_move): Use SUBREG_P.
1922 (offsettable_ok_by_alignment, constant_pool_expr_p,
1923 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
1924 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
1925 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
1926 rs6000_assemble_integer, create_TOC_reference,
1927 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
1928 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
1929 (rs6000_split_vec_extract_var): Use reg_or_subregno.
1930 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1931 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1932 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1933 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1934 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
1935 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
1936 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
1937 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
1938 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
1939 and cbranch<mode>4): Use CONST_INT_P.
1940 (multiple define_splits): Use REG_P and SUBREG_P.
1941 (define_expands call, call_value): Use MEM_P.
1942 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
1943 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
1944 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
1945 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
1946 and HARD_REGISTER_NUM_P.
1947 (multiple define_splits): Use HARD_REGISTER_NUM_P.
1949 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1951 PR rtl-optimization/88948
1952 * rtl.h (prepare_copy_insn): New prototype.
1953 * gcse.c (prepare_copy_insn): New function, split out from
1954 process_insert_insn.
1955 (process_insert_insn): Use prepare_copy_insn.
1956 * store-motion.c (replace_store_insn): Use prepare_copy_insn
1957 instead of gen_move_insn.
1959 2019-01-24 Jakub Jelinek <jakub@redhat.com>
1962 * config/i386/i386.c (ix86_pic_register_p): Return true for
1965 PR tree-optimization/88964
1966 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1967 punt if HONOR_SNANS (chrec).
1970 * tree-nested.c (convert_nonlocal_reference_stmt,
1971 convert_local_reference_stmt, convert_tramp_reference_stmt,
1972 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
1973 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
1976 PR tree-optimization/89027
1977 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
1978 for "omp simd array" variables.
1980 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
1983 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
1984 force the alignment of m_val.
1986 2019-01-24 Richard Biener <rguenther@suse.de>
1989 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
1990 When in "legacy" debug mode make sure to reset self-origins.
1992 2019-01-24 Martin Liska <mliska@suse.cz>
1994 PR gcov-profile/88994
1995 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
1996 result will be always smaller or equal to the original.
1997 * gcov.c (mangle_name): Fix else branch where we should
1998 also copy to PTR and shift the pointer.
2000 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
2002 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
2003 * vr-values.c (find_case_label_ranges): Fix a comment typo.
2005 2019-01-23 Bin Cheng <bin.cheng@arm.com>
2006 Steve Ellcey <sellcey@marvell.com>
2009 * recog.c (address_operand): Return false on wrong mode for address.
2010 (constrain_operands): Check for mode with 'p' constraint.
2012 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
2015 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
2016 Disparage MMX alternative.
2017 (sse2_cvtpd2pi): Ditto.
2018 (sse2_cvttpd2pi): Ditto.
2020 2019-01-23 David Malcolm <dmalcolm@redhat.com>
2023 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
2024 use-after-free of the result of
2025 aarch64_get_extension_string_for_isa_flags.
2027 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2030 * doc/extend.texi: Document break and continue behavior in
2031 statement expressions.
2033 2019-01-23 Richard Biener <rguenther@suse.de>
2035 PR tree-optimization/89008
2036 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
2037 not leave another stray operand.
2039 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2041 * BASE-VER: Bump to 9.0.1.
2043 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
2045 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
2046 thunk that returns by reference, use the type of the return object
2047 of the thunk instead of that of the alias to build the dereference.
2049 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
2051 * config/arc/atomic.md: Add operand to DMB instruction.
2053 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2055 PR tree-optimization/88964
2056 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
2057 build_zero_cst instead of build_int_cst. Return false for loop
2058 invariants which honor signed zeros.
2060 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
2062 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
2064 2019-01-22 Jakub Jelinek <jakub@redhat.com>
2067 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
2068 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
2069 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
2072 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
2073 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
2076 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
2077 Disable for little endian.
2079 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
2082 * config/arm/arm.c (arm_needs_double_word_align): Check
2083 DECL_BIT_FIELD_TYPE.
2085 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
2086 H.J. Lu <hongjiu.lu@intel.com>
2089 * config/i386/i386-builtin.def: Add mask2 to all builtin
2090 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
2092 * config/i386/i386.c (BDESC): Add mask2 to the definition.
2093 (BDESC_FIRST): Likewise.
2094 (define_builtin): Add an argument for mask2. Updated to handle
2095 both ix86_isa_flags and ix86_isa_flags2.
2096 (define_builtin_const): Likewise.
2097 (define_builtin_pure): Likewise.
2098 (define_builtin2): Deleted.
2099 (define_builtin_const2): Likewise.
2100 (builtin_description): Add a member, mask2.
2101 (bdesc_*): Add mask2 to builtin initializations.
2102 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
2103 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
2105 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
2107 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
2110 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
2113 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
2116 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
2117 alignment is dominated by a bitfield with 64-bit aligned base type.
2118 (arm_function_arg): Emit a warning if the alignment has changed since
2119 earlier GCC releases.
2120 (arm_function_arg_boundary): Likewise.
2121 (arm_setup_incoming_varargs): Likewise.
2123 2019-01-22 Richard Biener <rguenther@suse.de>
2125 PR tree-optimization/88862
2126 * graphite-scop-detection.c
2127 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
2129 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
2131 * doc/extend.tex (AMD GCN Function Attributes): New section.
2132 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
2133 * doc/invoke.texi (AMD GCN Options): New section.
2134 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
2136 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
2138 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
2139 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
2141 2019-01-22 Jakub Jelinek <jakub@redhat.com>
2143 PR tree-optimization/88044
2144 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
2145 is false in the first iteration, but !every_iteration, return false
2146 instead of true with niter->niter zero.
2148 PR rtl-optimization/88904
2149 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
2150 any nonequal registers before processing BB_END (b).
2153 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
2155 (expand_binop_directly, expand_doubleword_clz,
2156 expand_doubleword_popcount, expand_ctz, expand_ffs,
2157 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
2159 PR rtl-optimization/49429
2161 PR rtl-optimization/86334
2163 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
2164 addressable from here...
2165 (emit_block_op_via_libcall): ... to here.
2167 2019-01-22 Richard Biener <rguenther@suse.de>
2169 * tree-vect-loop.c (vect_analyze_loop_operations): Use
2170 auto_vec for cost vector to fix memleak.
2171 (vectorize_fold_left_reduction): Properly gather SLP defs.
2172 (vectorizable_comparison): Do not swap operands to properly
2175 2019-01-22 Alan Modra <amodra@gmail.com>
2178 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
2179 stays a reg. Allow a const_int.
2180 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
2181 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
2182 (IS_NOMARK_TLSGETADDR): Define.
2183 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
2184 (rs6000_output_tlsargs): New function.
2185 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
2186 __tls_get_addr call takes an arg.
2187 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
2188 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
2190 (call_value_nonlocal_sysv): ..or here, delete split.
2191 (tls_gdld_nomark): Delete.
2192 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
2193 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
2194 (call_value_nonlocal_sysv): Likewise.
2195 (call_value_nonlocal_sysv_secure): Likewise.
2196 (call_value_nonlocal_aix): Likewise.
2197 (call_value_indirect_aix): Likewise.
2198 (call_value_indirect_elfv2): Likewise.
2199 (call_value_local32, call_value_local64): Disable for no-mark tls.
2200 (call_value_local_aix): Likewise.
2202 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
2205 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
2206 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
2208 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
2210 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
2211 string contents as hash_map keys.
2213 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2216 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
2217 for rvalue context. Handle rvalues correctly. Use min_align_of_type
2218 instead of TYPE_ALIGN.
2219 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
2220 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
2221 pointer from TYPE_STUB_DECL.
2223 2019-01-21 Richard Biener <rguenther@suse.de>
2225 PR tree-optimization/88934
2226 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
2227 at the possibly non-constant operand.
2228 (vect_get_constant_vectors): Adjust.
2230 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
2233 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
2234 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
2235 instead of _X86INTRIN_H_INCLUDED.
2236 * onfig/i386/clwbintrin.h: Likewise.
2237 * config/i386/pkuintrin.h: Likewise.
2238 * config/i386/prfchwintrin.h: Likewise.
2239 * config/i386/rdseedintrin.h: Likewise.
2240 * config/i386/wbnoinvdintrin.h: Likewise.
2241 * config/i386/xsavecintrin.h: Likewise.
2242 * config/i386/xsavesintrin.h: Likewise.
2243 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
2244 * config/i386/xsaveintrin.h: Likewise.
2245 * config/i386/xsaveoptintrin.h: Likewise.
2246 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
2247 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
2248 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
2249 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
2250 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
2251 * config/i386/immintrin.h: Here.
2253 2019-01-20 Martin Jambor <mjambor@suse.cz>
2256 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
2257 with aa_walk_budget.
2258 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
2259 aa_walk_budget_p parameter.
2260 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
2261 walk. Updated all callers.
2262 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
2263 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
2265 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
2266 parameter info. Extract info from fbi. Pass fbi to recursive calls
2267 and to unmodified_parm.
2268 (phi_result_unknown_predicate): New parameter fbi, removed parameter
2269 info, updated call to will_be_nonconstant_expr_predicate.
2270 (param_change_prob): New parameter fbi, limit AA walking.
2271 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
2272 calls to various above functions.
2273 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
2274 parameter. Use it to limit AA walking.
2275 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
2277 (detect_type_change): New parameter fbi, pass it on to
2278 detect_type_change_from_memory_writes.
2279 (detect_type_change_ssa): Likewise.
2280 (aa_overwalked): Removed.
2281 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
2282 accordingly, adjust to the neew AA limiting scheme.
2283 (parm_ref_data_preserved_p): Likewise.
2284 (ipa_compute_jump_functions_for_edge): Adjust call to
2286 (ipa_analyze_call_uses): Likewise.
2287 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
2288 (ipa_analyze_node): Initialize aa_walk_budget.
2289 (ipcp_transform_function): Likewise.
2290 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
2291 to get_dynamic_type.
2293 2019-01-19 Jakub Jelinek <jakub@redhat.com>
2295 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
2296 outside of #if CHECKING_P code.
2298 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
2300 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
2301 New function, split out from...
2302 (loop_versioning::analyze_stride): ...here.
2303 (loop_versioning::find_per_loop_multiplication): Use gassign.
2304 (loop_versioning::analyze_term_using_scevs): Return a success code.
2305 (loop_versioning::analyze_arbitrary_term): New function.
2306 (loop_versioning::analyze_address_fragment): Use
2307 analyze_arbitrary_term if all else fails.
2309 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
2312 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
2315 2019-01-18 Richard Biener <rguenther@suse.de>
2317 PR tree-optimization/88903
2318 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
2319 scalar stmts a SLP shift amount is composed of when detecting
2322 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
2325 * config/arm/arm-cpus.in (mp): New feature.
2327 (fgroup ARMv7ve): Add mp and sec features.
2328 (arch armv7-a): Add options to allow mp and sec extensions.
2329 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
2330 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
2331 extenstions to the base architecture.
2332 (cpu cortex-a8): Add sec extension to the base architecture.
2333 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
2334 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
2335 variants down to the base v7-a varaint.
2336 * config/arm/t-multilib (v7_a_arch_variants): New variable.
2337 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
2338 of permitted extensions for -march=armv7-a and for
2339 -mcpu=generic-armv7-a.
2341 2019-01-18 Martin Liska <mliska@suse.cz>
2343 * params.def: Fix comment.
2344 * tree-profile.c (gimple_init_gcov_profiler): Bump function
2346 (gimple_gen_ic_func_profiler): Likewise.
2348 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2350 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
2351 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
2352 and put in error checks for stack protector guard options.
2353 (aarch64_stack_protect_guard): New.
2354 (TARGET_STACK_PROTECT_GUARD): Define.
2355 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
2356 (reg_stack_protect_address<mode>): New.
2357 (stack_protect_set): Adjust for SSP_GLOBAL.
2358 (stack_protect_test): Likewise.
2359 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
2360 (-mstack-protector-guard): Likewise.
2361 (-mstack-protector-guard-offset): Likewise.
2363 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2365 PR tree-optimization/86214
2366 * tree-inline.h (struct copy_body_data): Add
2367 add_clobbers_to_eh_landing_pads member.
2368 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
2369 (copy_edges_for_bb): Call it if EH edge destination is <
2370 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
2371 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
2372 if flag_stack_reuse != SR_NONE and clear it afterwards.
2374 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
2377 * doc/install.texi (with-multilib-list): Document for aarch64.
2379 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2382 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
2383 (("..."))) with ("...").
2385 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
2387 * doc/extend.texi (Built-in Functions for Memory Model Aware
2388 Atomic Operations): Document atomic fetch and nand.
2390 2019-01-18 Martin Liska <mliska@suse.cz>
2391 Richard Biener <rguenther@suse.de>
2394 * cgraph.h (create_version_clone_with_body): Add new argument
2396 * cgraphclones.c (cgraph_node::create_version_clone): Add
2397 DECL_ATTRIBUTES to a newly created decl. And call
2398 valid_attribute_p so that proper cl_target_optimization_node
2399 is set for the newly created declaration.
2400 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
2402 (expand_target_clones): Do not call valid_attribute_p, it must
2404 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
2407 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2410 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
2411 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
2412 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
2414 2019-01-17 Martin Sebor <msebor@redhat.com>
2417 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
2418 Handle anti-ranges the same as no range at all.
2420 2018-01-17 Steve Ellcey <sellcey@cavium.com>
2422 * config/aarch64/aarch64.c (cgraph.h): New include.
2423 (intl.h): New include.
2424 (supported_simd_type): New function.
2425 (currently_supported_simd_type): Ditto.
2426 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
2427 (aarch64_simd_clone_adjust): Ditto.
2428 (aarch64_simd_clone_usable): Ditto.
2429 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
2430 (TARGET_SIMD_CLONE_ADJUST): Ditto.
2431 (TARGET_SIMD_CLONE_USABLE): Ditto.
2432 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
2433 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
2436 2019-01-17 Martin Sebor <msebor@redhat.com>
2438 PR tree-optimization/88800
2439 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
2440 NO_WARNING bit here. Avoid folding out-of-bounds calls.
2441 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
2442 redundant argument. Add new argument and issue diagnostics under
2443 its control. Detect out-of-bounds access even with warnings
2445 (check_bounds_or_overlap): Change return type. Add argument.
2446 (wrestrict_dom_walker::check_call): Adjust.
2447 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
2448 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
2449 check_bounds_or_overlap's return value.
2450 (handle_builtin_stxncpy): Same.
2451 (handle_builtin_strcat): Same.
2453 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2454 Kwok Cheung Yeung <kcy@codesourcery.com>
2455 Julian Brown <julian@codesourcery.com>
2456 Tom de Vries <tom@codesourcery.com>
2458 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
2460 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2462 * doc/sourcebuild.texi: Document dg-require-effective-target
2463 llvm_binutils and offload_gcn.
2465 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2466 Kwok Cheung Yeung <kcy@codesourcery.com>
2467 Julian Brown <julian@codesourcery.com>
2468 Tom de Vries <tom@codesourcery.com>
2470 * doc/sourcebuild.texi: Document dg-required-effective-target
2473 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2474 Kwok Cheung Yeung <kcy@codesourcery.com>
2475 Julian Brown <julian@codesourcery.com>
2476 Tom de Vries <tom@codesourcery.com>
2477 Jan Hubicka <hubicka@ucw.cz>
2478 Martin Jambor <mjambor@suse.cz>
2480 * config.gcc: Add amdgcn*-*-amdhsa configuration.
2481 * configure.ac: Check for dlopen.
2482 * configure: Regenerate.
2484 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2485 Kwok Cheung Yeung <kcy@codesourcery.com>
2486 Julian Brown <julian@codesourcery.com>
2487 Tom de Vries <tom@codesourcery.com>
2488 Jan Hubicka <hubicka@ucw.cz>
2489 Martin Jambor <mjambor@suse.cz>
2491 * common/config/gcn/gcn-common.c: New file.
2492 * config/gcn/driver-gcn.c: New file.
2493 * config/gcn/gcn-builtins.def: New file.
2494 * config/gcn/gcn-hsa.h: New file.
2495 * config/gcn/gcn-modes.def: New file.
2496 * config/gcn/gcn-opts.h: New file.
2497 * config/gcn/gcn-passes.def: New file.
2498 * config/gcn/gcn-protos.h: New file.
2499 * config/gcn/gcn-run.c: New file.
2500 * config/gcn/gcn-tree.c: New file.
2501 * config/gcn/gcn.c: New file.
2502 * config/gcn/gcn.h: New file.
2503 * config/gcn/gcn.opt: New file.
2504 * config/gcn/t-gcn-hsa: New file.
2506 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2507 Kwok Cheung Yeung <kcy@codesourcery.com>
2508 Julian Brown <julian@codesourcery.com>
2509 Tom de Vries <tom@codesourcery.com>
2510 Jan Hubicka <hubicka@ucw.cz>
2511 Martin Jambor <mjambor@suse.cz>
2513 * config/gcn/constraints.md: New file.
2514 * config/gcn/gcn-valu.md: New file.
2515 * config/gcn/gcn.md: New file.
2516 * config/gcn/predicates.md: New file.
2518 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
2520 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
2521 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
2522 (stmt_uses_0_or_null_in_undefined_way): Likewise.
2523 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
2525 2019-01-17 Tamar Christina <tamar.christina@arm.com>
2528 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
2529 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
2530 it and document registers.
2532 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2534 * config/aarch64/aarch64.c (ares_tunings): Define.
2535 * config/aarch64/aarch64-cores.def (ares): Use the above.
2537 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2541 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
2543 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
2544 (_mm512_fixupimm_round_pd): Update parameters and builtin.
2545 (_mm512_maskz_fixupimm_round_pd): Ditto.
2546 (_mm512_fixupimm_round_ps): Ditto.
2547 (_mm512_maskz_fixupimm_round_ps): Ditto.
2548 (_mm_fixupimm_round_sd): Ditto.
2549 (_mm_maskz_fixupimm_round_sd): Ditto.
2550 (_mm_fixupimm_round_ss): Ditto.
2551 (_mm_maskz_fixupimm_round_ss): Ditto.
2552 (_mm512_fixupimm_pd): Ditto.
2553 (_mm512_maskz_fixupimm_pd): Ditto.
2554 (_mm512_fixupimm_ps): Ditto.
2555 (_mm512_maskz_fixupimm_ps): Ditto.
2556 (_mm_fixupimm_sd): Ditto.
2557 (_mm_maskz_fixupimm_sd): Ditto.
2558 (_mm_fixupimm_ss): Ditto.
2559 (_mm_maskz_fixupimm_ss): Ditto.
2560 (_mm512_mask_fixupimm_round_pd): Update builtin.
2561 (_mm512_mask_fixupimm_round_ps): Ditto.
2562 (_mm_mask_fixupimm_round_sd): Ditto.
2563 (_mm_mask_fixupimm_round_ss): Ditto.
2564 (_mm512_mask_fixupimm_pd): Ditto.
2565 (_mm512_mask_fixupimm_ps): Ditto.
2566 (_mm_mask_fixupimm_sd): Ditto.
2567 (_mm_mask_fixupimm_ss): Ditto.
2568 * config/i386/avx512vlintrin.h:
2569 (_mm256_fixupimm_pd): Update parameters and builtin.
2570 (_mm256_maskz_fixupimm_pd): Ditto.
2571 (_mm256_fixupimm_ps): Ditto.
2572 (_mm256_maskz_fixupimm_ps): Ditto.
2573 (_mm_fixupimm_pd): Ditto.
2574 (_mm_maskz_fixupimm_pd): Ditto.
2575 (_mm_fixupimm_ps): Ditto.
2576 (_mm_maskz_fixupimm_ps): Ditto.
2577 (_mm256_mask_fixupimm_pd): Update builtin.
2578 (_mm256_mask_fixupimm_ps): Ditto.
2579 (_mm_mask_fixupimm_pd): Ditto.
2580 (_mm_mask_fixupimm_ps): Ditto.
2581 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
2582 * config/i386/i386-builtin.def: Update builtin definitions.
2583 * config/i386/i386.c: Handle new builtin types and remove useless ones.
2584 * config/i386/sse.md: Update VFIXUPIMM* patterns.
2585 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2586 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2587 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
2588 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2589 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2590 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
2591 * config/i386/subst.md:
2592 (round_saeonly_sd_mask_operand4): Add new subst_attr.
2593 (round_saeonly_sd_mask_op4): Ditto.
2594 (round_saeonly_expand_operand5): Ditto.
2595 (round_saeonly_expand): Update.
2597 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2601 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
2603 * config/i386/sse.md: Combine VFIXUPIMM* patterns
2604 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2605 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2606 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
2607 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2608 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2609 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
2611 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2615 2018-12-15 Jakub Jelinek <jakub@redhat.com>
2618 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
2619 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
2620 instead of UNSPEC_FIXUPIMM.
2622 2019-01-17 Richard Biener <rguenther@suse.de>
2625 * dwarf2out.c (want_pubnames): Never generate pubnames sections
2626 and friends for the LTO part of debug info.
2628 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2630 PR tree-optimization/86214
2631 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
2634 PR rtl-optimization/88870
2635 * dce.c (deletable_insn_p): Never delete const/pure calls that can
2636 throw if we can't alter the cfg or delete dead exceptions.
2637 (mark_insn): Don't call find_call_stack_args for such calls.
2639 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
2641 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
2642 prototypes for vec_st.
2643 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
2644 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
2645 mainly on signed/unsigned long long and double.
2647 2019-01-16 David Malcolm <dmalcolm@redhat.com>
2650 * combine.c (delete_noop_moves): Convert to "bool" return,
2651 returning true if any edges are eliminated.
2652 (combine_instructions): Also return true if delete_noop_moves
2655 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2657 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
2658 correct max nunits for endian swap.
2659 (aarch64_expand_fcmla_builtin): Correct subreg code.
2660 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2661 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
2664 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
2666 * config/alpha/alpha.c (alpha_gimplify_va_arg):
2667 Handle split indirect COMPLEX_TYPE arguments.
2669 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
2672 * config/aarch64/aarch64-modes.def: Add comment about how the carry
2673 bit is set by add and compare.
2674 (CC_ADC): New CC_MODE.
2675 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
2676 to cache the code and mode of X. Adjust the shape of a CC_Cmode
2677 comparison. Add detection for CC_ADCmode.
2678 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
2680 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
2681 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
2682 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
2683 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
2684 to eliminate the need for zero-extending the operands.
2685 (add<mode>3_compareC_imm): Delete. Merge into ...
2686 (add<mode>3_compareC): ... this. Restructure the comparison to
2687 eliminate the need for zero-extending the operands.
2688 (add<mode>3_carryin): Use LTU for the overflow detection.
2689 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
2690 Reexpress comparison for overflow.
2691 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
2692 (add<mode>3_carryinC): Likewise.
2693 (add<mode>3_carryinV): Use LTU for carry between partials.
2694 * config/aarch64/predicates.md (aarch64_carry_operation): Update
2695 handling of CC_Cmode and add CC_ADCmode.
2696 (aarch64_borrow_operation): Likewise.
2698 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2700 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
2701 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
2702 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
2703 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
2705 2019-01-16 Martin Liska <mliska@suse.cz>
2707 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
2709 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
2711 * gcc.c (add_sysrooted_hdrs_prefix): New function.
2712 (path_prefix_reset): Move up in the source file.
2713 (find_fortran_preinclude_file): Make complex search for the
2714 fortran header files.
2716 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
2718 * godump.c (go_output_typedef): When outputting a typedef, refer
2719 to the underlying type by its name and not its structure.
2721 2019-01-15 David Malcolm <dmalcolm@redhat.com>
2724 * tree.c (build_function_type): Assert that arg_types is not
2727 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
2730 * doc/extend.texi: Document that listing the stack pointer in the
2731 clobber list of an asm is a deprecated feature.
2732 * common.opt (Wdeprecated): Moved from c-family/c.opt.
2733 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
2734 warning instead of an error for clobbers of the stack pointer.
2735 Add a note explaining why.
2737 2019-01-15 Richard Biener <rguenther@suse.de>
2740 * dwarf2out.c (gen_member_die): Do not generate inheritance
2743 2019-01-15 Richard Biener <rguenther@suse.de>
2745 PR tree-optimization/88855
2746 * tree-if-conv.c (combine_blocks): Collect
2747 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
2749 2019-01-15 Tom de Vries <tdevries@suse.de>
2752 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
2753 lhs == NULL_TREE for gang-level reduction.
2755 2019-01-15 Richard Biener <rguenther@suse.de>
2756 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2759 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
2760 return true if SSA_NAME is already marked in visited bitmap.
2761 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
2763 2019-01-15 Jakub Jelinek <jakub@redhat.com>
2765 PR tree-optimization/88775
2766 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
2767 equal == 0 equality pointer comparisons some more if compared in
2768 integral types and either one points to an automatic var and the
2769 other to a global, or we can prove at least one points to the middle
2770 or both point to start or both point to end.
2772 2019-01-14 Andi Kleen <ak@linux.intel.com>
2774 * Makefile.in: Lower autofdo sampling rate by 10x.
2775 * Makefile.tpl: Dito.
2777 2019-01-14 Tom Honermann <tom@honermann.net>
2779 * defaults.h: Define CHAR8_TYPE.
2781 2019-01-14 Martin Sebor <msebor@redhat.com>
2784 * doc/extend.texi (Darwin Format Checks): Clarify.
2786 2019-01-14 Richard Biener <rguenther@suse.de>
2788 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
2789 whether we are in (simplify ...) or (match ...) context.
2791 2019-01-14 Jakub Jelinek <jakub@redhat.com>
2793 PR rtl-optimization/88796
2794 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
2795 * cfgexpand.c (stack_protect_prologue): Initialize
2796 crtl->stack_protect_guard_decl.
2797 * function.c (stack_protect_epilogue): Use it instead of calling
2798 targetm.stack_protect_guard again.
2799 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
2800 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
2801 crtl->stack_protect_guard_decl.
2802 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
2803 on the returned MEM_EXPR.
2805 2019-01-12 Tom de Vries <tdevries@suse.de>
2807 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
2808 vector length using -fopenacc-dim.
2810 2019-01-12 Tom de Vries <tdevries@suse.de>
2812 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
2813 lengths into account.
2815 2019-01-12 Svante Signell <svante.signell@gmail.com>
2817 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
2818 (TARGET_CAN_SPLIT_STACK): Define.
2819 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2821 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2823 * params.def (inline-unit-growth): Set to 40.
2825 2019-01-12 Jakub Jelinek <jakub@redhat.com>
2827 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
2829 2019-01-12 Tom de Vries <tdevries@suse.de>
2831 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
2832 region calling vector-partitionable routine, set default_vector_length
2835 2019-01-12 Tom de Vries <tdevries@suse.de>
2837 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
2838 variable default_vector_length.
2840 2019-01-12 Tom de Vries <tdevries@suse.de>
2843 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
2844 from oacc_default_dims, as oacc_validate_dims would do it, and apply
2847 2019-01-12 Tom de Vries <tdevries@suse.de>
2849 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
2850 (nvptx_goacc_validate_dims): Add used parameter.
2851 * doc/tm.texi: Regenerate.
2852 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
2853 argument to call to targetm.goacc.validate_dims.
2854 (default_goacc_validate_dims): Add used
2856 * target.def (validate_dims): Add used parameter in DEFHOOK.
2857 * targhooks.h (default_goacc_validate_dims): Add used parameter.
2859 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2863 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2865 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
2866 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
2867 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
2868 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
2870 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
2872 PR rtl-optimization/87305
2874 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2875 for little endian pseudos used as paradoxical subreg.
2877 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2879 PR tree-optimization/88693
2880 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
2881 for STRING_CSTs that don't contain any NUL characters in the first
2882 TREE_STRING_LENGTH bytes.
2884 2019-01-11 Alan Modra <amodra@gmail.com>
2888 * genattrtab.c (min_fn): Don't translate values.
2889 (min_attr_value): Return INT_MAX when the value can't be calculated.
2890 Return minimum among any values that can be calculated.
2891 (max_attr_value): Adjust.
2893 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2895 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2897 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2899 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2900 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
2901 (aarch64_return_call_with_max_clobbers): New function.
2902 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
2903 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
2905 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
2906 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
2907 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
2908 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
2909 * cselib.c (cselib_process_insn): Add argument to
2910 targetm.hard_regno_call_part_clobbered call.
2911 * ira-conflicts.c (ira_build_conflicts): Ditto.
2912 * ira-costs.c (ira_tune_allocno_costs): Ditto.
2913 * lra-constraints.c (inherit_reload_reg): Ditto.
2914 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
2915 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
2916 argument. Call targetm.return_call_with_max_clobbers.
2917 Add argument to targetm.hard_regno_call_part_clobbered call.
2918 (calls_have_same_clobbers_p): New function.
2919 (process_bb_lives): Add call_insn and last_call_insn variables.
2920 Pass call_insn to check_pseudos_live_through_calls.
2921 Modify if stmt to check targetm.return_call_with_max_clobbers.
2922 Update setting of flush variable.
2923 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
2925 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
2926 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
2927 targetm.hard_regno_call_part_clobbered call.
2928 * reginfo.c (choose_hard_reg_mode): Ditto.
2929 * regrename.c (check_new_reg_p): Ditto.
2930 * reload.c (find_equiv_reg): Ditto.
2931 * reload1.c (emit_reload_insns): Ditto.
2932 * sched-deps.c (deps_analyze_insn): Ditto.
2933 * sel-sched.c (init_regs_for_mode): Ditto.
2934 (mark_unavailable_hard_regs): Ditto.
2935 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
2936 * target.def (hard_regno_call_part_clobbered): Add insn argument.
2937 (return_call_with_max_clobbers): New target function.
2938 * doc/tm.texi: Regenerate.
2939 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
2940 * hooks.c (hook_bool_uint_mode_false): Change to
2941 hook_bool_insn_uint_mode_false.
2942 * hooks.h (hook_bool_uint_mode_false): Ditto.
2944 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2946 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2947 (aarch64_remove_extra_call_preserved_regs): New function.
2948 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
2949 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
2950 * doc/tm.texi: Regenerate.
2951 * final.c (get_call_reg_set_usage): Call new hook.
2952 * target.def (remove_extra_call_preserved_regs): New hook.
2953 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
2954 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
2956 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2959 * passes.c (finish_optimization_passes): Call print_combine_total_stats
2960 inside of pass_combine_1 dump rather than pass_profile_1.
2962 2019-01-11 Tom de Vries <tdevries@suse.de>
2964 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
2965 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
2966 (PTX_NUM_PER_WORKER_BARRIERS): Define.
2967 (nvptx_apply_dim_limits): Prevent vector_length 64 and
2970 2019-01-11 Tom de Vries <tdevries@suse.de>
2972 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2974 2019-01-11 Jan Beulich <jbeulich@suse.com>
2976 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
2977 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
2978 sse2_cvtsi2sd): Add {l}.
2979 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
2982 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2985 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
2987 (*float<floatunssuffix>v2div2sf2): New define_insn.
2988 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
2989 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
2990 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
2991 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
2992 match_operands with "const0_operand" "C".
2994 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2996 * config/aarch64/aarch64-builtins.c
2997 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
2998 (aarch64_init_simd_builtins): ...Here
3000 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
3002 PR rtl-optimization/87305
3004 (setup_live_pseudos_and_spill_after_risky_transforms): Check
3005 allocation for big endian pseudos used as paradoxical subregs and
3006 spill them if it is wrong.
3007 * lra-constraints.c (lra_constraints): Add a comment.
3009 2019-01-10 Richard Biener <rguenther@suse.de>
3011 PR tree-optimization/88792
3012 * tree-ssa-pre.c (get_representative_for): Do not return a
3015 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3019 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
3020 (assign_parm_setup_block): Do the argument slot realignment here
3023 2019-01-10 Stefan Agner <stefan@agner.ch>
3026 * config/arm/arm.c (arm_option_override_internal): Force
3027 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
3029 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3032 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
3035 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3037 * config/arm/arm-builtins.c
3038 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
3039 (MAC_LANE_PAIR_QUALIFIERS): New.
3040 (arm_expand_builtin_args): Use it.
3041 (arm_expand_builtin_1): Likewise.
3042 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
3043 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
3044 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
3045 * config/arm/arm_neon.h:
3046 (vcadd_rot90_f16): New.
3047 (vcaddq_rot90_f16): New.
3048 (vcadd_rot270_f16): New.
3049 (vcaddq_rot270_f16): New.
3052 (vcmla_lane_f16): New.
3053 (vcmla_laneq_f16): New.
3054 (vcmlaq_lane_f16): New.
3055 (vcmlaq_laneq_f16): New.
3056 (vcmla_rot90_f16): New.
3057 (vcmlaq_rot90_f16): New.
3058 (vcmla_rot90_lane_f16): New.
3059 (vcmla_rot90_laneq_f16): New.
3060 (vcmlaq_rot90_lane_f16): New.
3061 (vcmlaq_rot90_laneq_f16): New.
3062 (vcmla_rot180_f16): New.
3063 (vcmlaq_rot180_f16): New.
3064 (vcmla_rot180_lane_f16): New.
3065 (vcmla_rot180_laneq_f16): New.
3066 (vcmlaq_rot180_lane_f16): New.
3067 (vcmlaq_rot180_laneq_f16): New.
3068 (vcmla_rot270_f16): New.
3069 (vcmlaq_rot270_f16): New.
3070 (vcmla_rot270_lane_f16): New.
3071 (vcmla_rot270_laneq_f16): New.
3072 (vcmlaq_rot270_lane_f16): New.
3073 (vcmlaq_rot270_laneq_f16): New.
3074 (vcadd_rot90_f32): New.
3075 (vcaddq_rot90_f32): New.
3076 (vcadd_rot270_f32): New.
3077 (vcaddq_rot270_f32): New.
3080 (vcmla_lane_f32): New.
3081 (vcmla_laneq_f32): New.
3082 (vcmlaq_lane_f32): New.
3083 (vcmlaq_laneq_f32): New.
3084 (vcmla_rot90_f32): New.
3085 (vcmlaq_rot90_f32): New.
3086 (vcmla_rot90_lane_f32): New.
3087 (vcmla_rot90_laneq_f32): New.
3088 (vcmlaq_rot90_lane_f32): New.
3089 (vcmlaq_rot90_laneq_f32): New.
3090 (vcmla_rot180_f32): New.
3091 (vcmlaq_rot180_f32): New.
3092 (vcmla_rot180_lane_f32): New.
3093 (vcmla_rot180_laneq_f32): New.
3094 (vcmlaq_rot180_lane_f32): New.
3095 (vcmlaq_rot180_laneq_f32): New.
3096 (vcmla_rot270_f32): New.
3097 (vcmlaq_rot270_f32): New.
3098 (vcmla_rot270_lane_f32): New.
3099 (vcmla_rot270_laneq_f32): New.
3100 (vcmlaq_rot270_lane_f32): New.
3101 (vcmlaq_rot270_laneq_f32): New.
3102 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
3103 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
3104 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
3105 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
3106 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
3107 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
3108 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
3109 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
3110 (arm_option_reconfigure_globals): Use them.
3111 * config/arm/iterators.md (VDF, VQ_HSF): New.
3112 (VCADD, VCMLA): New.
3113 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
3114 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
3115 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
3116 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
3118 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3120 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
3121 (emit-rtl.h): Include.
3122 (TYPES_QUADOP_LANE_PAIR): New.
3123 (aarch64_simd_expand_args): Use it.
3124 (aarch64_simd_expand_builtin): Likewise.
3125 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
3126 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
3127 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
3128 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
3129 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
3130 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
3131 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
3132 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
3133 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
3134 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
3135 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
3136 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
3137 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
3138 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
3139 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
3140 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
3141 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
3142 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
3143 aarch64_fcmla<rot><mode>): New.
3144 * config/aarch64/arm_neon.h:
3145 (vcadd_rot90_f16): New.
3146 (vcaddq_rot90_f16): New.
3147 (vcadd_rot270_f16): New.
3148 (vcaddq_rot270_f16): New.
3151 (vcmla_lane_f16): New.
3152 (vcmla_laneq_f16): New.
3153 (vcmlaq_lane_f16): New.
3154 (vcmlaq_rot90_lane_f16): New.
3155 (vcmla_rot90_laneq_f16): New.
3156 (vcmla_rot90_lane_f16): New.
3157 (vcmlaq_rot90_f16): New.
3158 (vcmla_rot90_f16): New.
3159 (vcmlaq_laneq_f16): New.
3160 (vcmla_rot180_laneq_f16): New.
3161 (vcmla_rot180_lane_f16): New.
3162 (vcmlaq_rot180_f16): New.
3163 (vcmla_rot180_f16): New.
3164 (vcmlaq_rot90_laneq_f16): New.
3165 (vcmlaq_rot270_laneq_f16): New.
3166 (vcmlaq_rot270_lane_f16): New.
3167 (vcmla_rot270_laneq_f16): New.
3168 (vcmlaq_rot270_f16): New.
3169 (vcmla_rot270_f16): New.
3170 (vcmlaq_rot180_laneq_f16): New.
3171 (vcmlaq_rot180_lane_f16): New.
3172 (vcmla_rot270_lane_f16): New.
3173 (vcadd_rot90_f32): New.
3174 (vcaddq_rot90_f32): New.
3175 (vcaddq_rot90_f64): New.
3176 (vcadd_rot270_f32): New.
3177 (vcaddq_rot270_f32): New.
3178 (vcaddq_rot270_f64): New.
3182 (vcmla_lane_f32): New.
3183 (vcmla_laneq_f32): New.
3184 (vcmlaq_lane_f32): New.
3185 (vcmlaq_laneq_f32): New.
3186 (vcmla_rot90_f32): New.
3187 (vcmlaq_rot90_f32): New.
3188 (vcmlaq_rot90_f64): New.
3189 (vcmla_rot90_lane_f32): New.
3190 (vcmla_rot90_laneq_f32): New.
3191 (vcmlaq_rot90_lane_f32): New.
3192 (vcmlaq_rot90_laneq_f32): New.
3193 (vcmla_rot180_f32): New.
3194 (vcmlaq_rot180_f32): New.
3195 (vcmlaq_rot180_f64): New.
3196 (vcmla_rot180_lane_f32): New.
3197 (vcmla_rot180_laneq_f32): New.
3198 (vcmlaq_rot180_lane_f32): New.
3199 (vcmlaq_rot180_laneq_f32): New.
3200 (vcmla_rot270_f32): New.
3201 (vcmlaq_rot270_f32): New.
3202 (vcmlaq_rot270_f64): New.
3203 (vcmla_rot270_lane_f32): New.
3204 (vcmla_rot270_laneq_f32): New.
3205 (vcmlaq_rot270_lane_f32): New.
3206 (vcmlaq_rot270_laneq_f32): New.
3207 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
3208 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
3209 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
3210 (FCADD, FCMLA): New.
3212 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
3214 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3218 * config/pa/pa.c: Change "can not" to "cannot".
3219 * gimple-ssa-evrp-analyze.c: Likewise.
3220 * ipa-icf.c: Likewise.
3221 * ipa-polymorphic-call.c: Likewise.
3222 * ipa-pure-const.c: Likewise.
3223 * lra-constraints.c: Likewise.
3224 * lra-remat.c: Likewise.
3225 * reload1.c: Likewise.
3226 * reorg.c: Likewise.
3227 * tree-ssa-uninit.c: Likewise.
3229 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3233 * Makefile.in: Mechanically replace "can not" with "cannot".
3234 * alias.c: Likewise.
3235 * builtins.c: Likewise.
3236 * calls.c: Likewise.
3237 * cgraph.c: Likewise.
3238 * cgraph.h: Likewise.
3239 * cgraphclones.c: Likewise.
3240 * cgraphunit.c: Likewise.
3241 * combine-stack-adj.c: Likewise.
3242 * combine.c: Likewise.
3243 * common/config/i386/i386-common.c: Likewise.
3244 * config/aarch64/aarch64.c: Likewise.
3245 * config/alpha/sync.md: Likewise.
3246 * config/arc/arc.c: Likewise.
3247 * config/arc/predicates.md: Likewise.
3248 * config/arm/arm-c.c: Likewise.
3249 * config/arm/arm.c: Likewise.
3250 * config/arm/arm.h: Likewise.
3251 * config/arm/arm.md: Likewise.
3252 * config/arm/cortex-r4f.md: Likewise.
3253 * config/csky/csky.c: Likewise.
3254 * config/csky/csky.h: Likewise.
3255 * config/darwin-f.c: Likewise.
3256 * config/epiphany/epiphany.md: Likewise.
3257 * config/i386/i386.c: Likewise.
3258 * config/i386/sol2.h: Likewise.
3259 * config/m68k/m68k.c: Likewise.
3260 * config/mcore/mcore.h: Likewise.
3261 * config/microblaze/microblaze.md: Likewise.
3262 * config/mips/20kc.md: Likewise.
3263 * config/mips/sb1.md: Likewise.
3264 * config/nds32/nds32.c: Likewise.
3265 * config/nds32/predicates.md: Likewise.
3266 * config/pa/pa.c: Likewise.
3267 * config/rs6000/e300c2c3.md: Likewise.
3268 * config/rs6000/rs6000.c: Likewise.
3269 * config/s390/s390.h: Likewise.
3270 * config/sh/sh.c: Likewise.
3271 * config/sh/sh.md: Likewise.
3272 * config/spu/vmx2spu.h: Likewise.
3273 * cprop.c: Likewise.
3274 * dbxout.c: Likewise.
3275 * df-scan.c: Likewise.
3276 * doc/cfg.texi: Likewise.
3277 * doc/extend.texi: Likewise.
3278 * doc/fragments.texi: Likewise.
3279 * doc/gty.texi: Likewise.
3280 * doc/invoke.texi: Likewise.
3281 * doc/lto.texi: Likewise.
3282 * doc/md.texi: Likewise.
3283 * doc/objc.texi: Likewise.
3284 * doc/rtl.texi: Likewise.
3285 * doc/tm.texi: Likewise.
3287 * emit-rtl.c: Likewise.
3288 * emit-rtl.h: Likewise.
3289 * except.c: Likewise.
3290 * expmed.c: Likewise.
3292 * fold-const.c: Likewise.
3293 * genautomata.c: Likewise.
3294 * gimple-fold.c: Likewise.
3295 * hard-reg-set.h: Likewise.
3296 * ifcvt.c: Likewise.
3297 * ipa-comdats.c: Likewise.
3298 * ipa-cp.c: Likewise.
3299 * ipa-devirt.c: Likewise.
3300 * ipa-fnsummary.c: Likewise.
3301 * ipa-icf.c: Likewise.
3302 * ipa-inline-transform.c: Likewise.
3303 * ipa-inline.c: Likewise.
3304 * ipa-polymorphic-call.c: Likewise.
3305 * ipa-profile.c: Likewise.
3306 * ipa-prop.c: Likewise.
3307 * ipa-pure-const.c: Likewise.
3308 * ipa-reference.c: Likewise.
3309 * ipa-split.c: Likewise.
3310 * ipa-visibility.c: Likewise.
3312 * ira-build.c: Likewise.
3313 * ira-color.c: Likewise.
3314 * ira-conflicts.c: Likewise.
3315 * ira-costs.c: Likewise.
3316 * ira-int.h: Likewise.
3317 * ira-lives.c: Likewise.
3320 * loop-invariant.c: Likewise.
3321 * loop-unroll.c: Likewise.
3322 * lower-subreg.c: Likewise.
3323 * lra-assigns.c: Likewise.
3324 * lra-constraints.c: Likewise.
3325 * lra-eliminations.c: Likewise.
3326 * lra-lives.c: Likewise.
3327 * lra-remat.c: Likewise.
3328 * lra-spills.c: Likewise.
3330 * lto-cgraph.c: Likewise.
3331 * lto-streamer-out.c: Likewise.
3332 * postreload-gcse.c: Likewise.
3333 * predict.c: Likewise.
3334 * profile-count.h: Likewise.
3335 * profile.c: Likewise.
3336 * recog.c: Likewise.
3338 * reload.c: Likewise.
3339 * reload1.c: Likewise.
3340 * reorg.c: Likewise.
3341 * resource.c: Likewise.
3342 * rtl.def: Likewise.
3344 * rtlanal.c: Likewise.
3345 * sched-deps.c: Likewise.
3346 * sched-ebb.c: Likewise.
3347 * sched-rgn.c: Likewise.
3348 * sel-sched-ir.c: Likewise.
3349 * sel-sched.c: Likewise.
3350 * shrink-wrap.c: Likewise.
3351 * simplify-rtx.c: Likewise.
3352 * symtab.c: Likewise.
3353 * target.def: Likewise.
3354 * toplev.c: Likewise.
3355 * tree-call-cdce.c: Likewise.
3356 * tree-cfg.c: Likewise.
3357 * tree-complex.c: Likewise.
3358 * tree-core.h: Likewise.
3359 * tree-eh.c: Likewise.
3360 * tree-inline.c: Likewise.
3361 * tree-loop-distribution.c: Likewise.
3362 * tree-nrv.c: Likewise.
3363 * tree-profile.c: Likewise.
3364 * tree-sra.c: Likewise.
3365 * tree-ssa-alias.c: Likewise.
3366 * tree-ssa-dce.c: Likewise.
3367 * tree-ssa-dom.c: Likewise.
3368 * tree-ssa-forwprop.c: Likewise.
3369 * tree-ssa-loop-im.c: Likewise.
3370 * tree-ssa-loop-ivcanon.c: Likewise.
3371 * tree-ssa-loop-ivopts.c: Likewise.
3372 * tree-ssa-loop-niter.c: Likewise.
3373 * tree-ssa-phionlycprop.c: Likewise.
3374 * tree-ssa-phiopt.c: Likewise.
3375 * tree-ssa-propagate.c: Likewise.
3376 * tree-ssa-threadedge.c: Likewise.
3377 * tree-ssa-threadupdate.c: Likewise.
3378 * tree-ssa-uninit.c: Likewise.
3379 * tree-ssanames.c: Likewise.
3380 * tree-streamer-out.c: Likewise.
3383 * vr-values.c: Likewise.
3385 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
3387 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
3388 (ix86_split_xorsign): Ditto.
3389 * config/i386/i386.c (ix86_expand_xorsign): New function.
3390 (ix86_split_xorsign): Ditto.
3391 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
3392 (xorsign<mode>3): New expander.
3393 (xorsign<mode>3_1): New insn_and_split pattern.
3394 * config/i386/sse.md (xorsign<mode>3): New expander.
3396 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3398 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
3399 (*tablejump_sp64): Likewise.
3400 (*tablejump<P:mode>): ...this.
3401 (*call_address_sp32): Merge into...
3402 (*call_address_sp64): Likewise.
3403 (*call_address<P:mode>): ...this.
3404 (*call_symbolic_sp32): Merge into...
3405 (*call_symbolic_sp64): Likewise.
3406 (*call_symbolic<P:mode>): ...this.
3407 (call_value): Remove constraint and add predicate.
3408 (*call_value_address_sp32): Merge into...
3409 (*call_value_address_sp64): Likewise.
3410 (*call_value_address<P:mode>): ...this.
3411 (*call_value_symbolic_sp32): Merge into...
3412 (*call_value_symbolic_sp64): Likewise.
3413 (*call_value_symbolic<P:mode>): ...this.
3414 (*sibcall_symbolic_sp32): Merge into...
3415 (*sibcall_symbolic_sp64): Likewise.
3416 (*sibcall_symbolic<P:mode>): ...this.
3417 (sibcall_value): Remove constraint and add predicate.
3418 (*sibcall_value_symbolic_sp32): Merge into...
3419 (*sibcall_value_symbolic_sp64): Likewise.
3420 (*sibcall_value_symbolic<P:mode>): ...this.
3421 (window_save): Minor tweak.
3422 (*branch_sp32): Merge into...
3423 (*branch_sp64): Likewise.
3424 (*branch<P:mode>): ...this.
3426 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3427 James Clarke <jrtc27@jrtc27.com>
3430 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
3431 consistently in TLS address generation and adjust code to the renaming
3432 of patterns. Mark calls to __tls_get_addr as const.
3433 * config/sparc/sparc.md (tgd_hi22): Turn into...
3434 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
3435 (tgd_lo10): Turn into...
3436 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
3437 (tgd_add32): Merge into...
3438 (tgd_add64): Likewise.
3439 (tgd_add<P:mode>): ...this and use Pmode throughout.
3440 (tldm_hi22): Turn into...
3441 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
3442 (tldm_lo10): Turn into...
3443 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
3444 (tldm_add32): Merge into...
3445 (tldm_add64): Likewise.
3446 (tldm_add<P:mode>): ...this and use Pmode throughout.
3447 (tldm_call32): Merge into...
3448 (tldm_call64): Likewise.
3449 (tldm_call<P:mode>): ...this and use Pmode throughout.
3450 (tldo_hix22): Turn into...
3451 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
3452 (tldo_lox10): Turn into...
3453 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
3454 (tldo_add32): Merge into...
3455 (tldo_add64): Likewise.
3456 (tldo_add<P:mode>): ...this and use Pmode throughout.
3457 (tie_hi22): Turn into...
3458 (tie_hi22<P:mode>): ...this and use Pmode throughout.
3459 (tie_lo10): Turn into...
3460 (tie_lo10<P:mode>): ...this and use Pmode throughout.
3461 (tie_ld64): Use DImode throughout.
3462 (tie_add32): Merge into...
3463 (tie_add64): Likewise.
3464 (tie_add<P:mode>): ...this and use Pmode throughout.
3465 (tle_hix22_sp32): Merge into...
3466 (tle_hix22_sp64): Likewise.
3467 (tle_hix22<P:mode>): ...this and use Pmode throughout.
3468 (tle_lox22_sp32): Merge into...
3469 (tle_lox22_sp64): Likewise.
3470 (tle_lox22<P:mode>): ...this and use Pmode throughout.
3471 (*tldo_ldub_sp32): Merge into...
3472 (*tldo_ldub_sp64): Likewise.
3473 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
3474 (*tldo_ldub1_sp32): Merge into...
3475 (*tldo_ldub1_sp64): Likewise.
3476 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
3477 (*tldo_ldub2_sp32): Merge into...
3478 (*tldo_ldub2_sp64): Likewise.
3479 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
3480 (*tldo_ldsb1_sp32): Merge into...
3481 (*tldo_ldsb1_sp64): Likewise.
3482 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
3483 (*tldo_ldsb2_sp32): Merge into...
3484 (*tldo_ldsb2_sp64): Likewise.
3485 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
3486 (*tldo_ldub3_sp64): Use DImode throughout.
3487 (*tldo_ldsb3_sp64): Likewise.
3488 (*tldo_lduh_sp32): Merge into...
3489 (*tldo_lduh_sp64): Likewise.
3490 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
3491 (*tldo_lduh1_sp32): Merge into...
3492 (*tldo_lduh1_sp64): Likewise.
3493 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
3494 (*tldo_ldsh1_sp32): Merge into...
3495 (*tldo_ldsh1_sp64): Likewise.
3496 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
3497 (*tldo_lduh2_sp64): Use DImode throughout.
3498 (*tldo_ldsh2_sp64): Likewise.
3499 (*tldo_lduw_sp32): Merge into...
3500 (*tldo_lduw_sp64): Likewise.
3501 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
3502 (*tldo_lduw1_sp64): Use DImode throughout.
3503 (*tldo_ldsw1_sp64): Likewise.
3504 (*tldo_ldx_sp64): Likewise.
3505 (*tldo_stb_sp32): Merge into...
3506 (*tldo_stb_sp64): Likewise.
3507 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
3508 (*tldo_sth_sp32): Merge into...
3509 (*tldo_sth_sp64): Likewise.
3510 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
3511 (*tldo_stw_sp32): Merge into...
3512 (*tldo_stw_sp64): Likewise.
3513 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
3514 (*tldo_stx_sp64): Use DImode throughout.
3516 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3518 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
3519 check configure option to set BTI and Return Address Signing.
3520 * configure.ac: Add --enable-standard-branch-protection and
3521 --disable-standard-branch-protection.
3522 * configure: Regenerated.
3523 * doc/install.texi: Document the same.
3525 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3526 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3528 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
3529 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
3530 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
3532 * config/aarch64/aarch64-bti-insert.c: New file.
3533 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
3535 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
3537 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
3538 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
3539 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
3540 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
3542 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3544 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
3545 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
3546 Disable bti for -mbranch-protection=none.
3547 (aarch64_handle_standard_branch_protection): Enable bti for
3548 -mbranch-protection=standard.
3549 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
3550 -mbranch-protection.
3551 (aarch64_bti_enabled): Check if bti is enabled.
3552 * config/aarch64/aarch64.opt: Declare target variable.
3553 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
3555 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3557 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
3558 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
3559 (aarch64_expand_epilogue): Likewise.
3560 (aarch64_output_mi_thunk): Likewise
3561 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
3562 TAILCALL_ADDR_REGS to x16 and x17.
3563 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
3565 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3567 * config/aarch64/aarch64-option-extensions.def: Define
3568 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
3569 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
3570 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
3571 (AARCH64_FL_PREDRES): New.
3572 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
3573 AARCH64_FL_PREDRES by default.
3574 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
3576 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3578 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
3580 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
3581 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
3582 * doc/invoke.texi: Document ARMv8.5-A.
3584 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3586 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
3587 (xorsign<mode>3): Likewise.
3589 2019-01-09 Jelinek <jakub@redhat.com>
3592 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
3593 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
3595 PR rtl-optimization/88331
3596 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
3597 not currently_expanding_to_rtl.
3599 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3601 * doc/invoke.texi (-Os): Remove trailing spaces.
3602 (-finline-functions): Remove reference to -O2.
3604 2019-01-08 Jakub Jelinek <jakub@redhat.com>
3606 PR rtl-optimization/79593
3607 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
3609 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
3610 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
3612 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
3615 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
3619 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
3620 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
3622 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
3625 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
3626 ix86_avx_u128_mode_entry.
3628 2019-01-08 Martin Liska <mliska@suse.cz>
3630 PR tree-optimization/88753
3631 * tree-switch-conversion.c (switch_conversion::build_one_array):
3632 Come up with local variable constructor. Convert first to
3633 type of constructor values.
3635 2019-01-08 Richard Biener <rguenther@suse.de>
3637 PR tree-optimization/86554
3638 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
3639 rpo_avail): Move earlier.
3640 (visit_nary_op): When value-numbering to expressions
3641 with different overflow behavior make sure there's an
3642 available expression on the path.
3644 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
3646 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
3647 aarch64_parse_branch_protection,
3648 struct aarch64_branch_protect_type,
3649 aarch64_handle_no_branch_protection,
3650 aarch64_handle_standard_branch_protection,
3651 aarch64_validate_mbranch_protection,
3652 aarch64_handle_pac_ret_protection,
3653 aarch64_handle_attr_branch_protection,
3654 accepted_branch_protection_string,
3655 aarch64_pac_ret_subtypes,
3656 aarch64_branch_protect_types,
3657 aarch64_handle_pac_ret_leaf): Define.
3658 (aarch64_override_options_after_change_1, aarch64_override_options):
3659 Add check for accepted_branch_protection_string.
3660 (aarch64_option_save): Save accepted_branch_protection_string.
3661 (aarch64_option_restore): Save accepted_branch_protection_string.
3662 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
3663 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
3664 msign-return-address.
3665 * doc/invoke.texi: Add mbranch-protection.
3667 2019-01-08 Alan Modra <amodra@gmail.com>
3670 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
3671 Delete "unknownp" parameter. Adjust callers. Handle
3672 CONST_INT, PLUS, MINUS, and MULT.
3673 (attr_value_aligned): Renamed from or_attr_value.
3674 (min_attr_value): Return INT_MIN for unhandled rtl case..
3675 (min_fn): ..and translate to INT_MAX here.
3676 (write_length_unit_log): Modify to cope without "unknown".
3677 (write_attr_value): Handle IF_THEN_ELSE.
3679 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3681 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
3682 optimization for masked stores.
3684 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3687 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
3688 output vector directly to duplicate_and_interleave instead of
3689 going through a temporary. Postpone insertion of ctor_seq to
3690 the end of the loop.
3692 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
3695 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
3696 unsigned_p. Handle signed and unsigned overflow correction as
3698 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
3700 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
3702 (add<mode>3_compareV_imm): Make this callable for expanding.
3703 (subv<GPI:mode>4): Use register_operand for operand 1. Use
3704 aarch64_plus_operand for operand 2.
3705 (subv<GPI:mode>_insn): New insn pattern.
3706 (subv<GPI:mode>_imm): Likewise.
3707 (negv<GPI:mode>3): New expand pattern.
3708 (negv<GPI:mode>_insn): New insn pattern.
3709 (negv<GPI:mode>_cmp_only): Likewise.
3710 (cmpv<GPI:mode>_insn): Likewise.
3711 (subvti4): Use register_operand for operand 1. Update call to
3712 aarch64_expand_subvti.
3713 (usubvti4): Likewise.
3714 (negvti3): New expand pattern.
3715 (negdi_carryout): New insn pattern.
3716 (negvdi_carryinV): New insn pattern.
3717 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
3718 version the named version.
3719 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
3721 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
3723 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
3725 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
3726 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
3727 (sub<mode>3_carryinCV): Delete.
3728 (sub<GPI:mode>3_carryinV): New expand pattern.
3729 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
3731 2019-01-07 Richard Biener <rguenther@suse.de>
3733 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
3734 of tree_operand_hash.
3736 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3738 PR tree-optimization/88598
3739 * tree.h (single_nonzero_element): Declare.
3740 * tree.c (single_nonzero_element): New function.
3741 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
3742 if I is the only nonzero element of CST.
3744 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3746 PR tree-optimization/88598
3747 * tree.h (initializer_each_zero_or_onep): Declare.
3748 * tree.c (initializer_each_zero_or_onep): New function.
3749 (signed_or_unsigned_type_for): Handle float types too.
3750 (unsigned_type_for, signed_type_for): Update comments accordingly.
3751 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
3752 x & { 0 or -1, 0 or -1, ... }.
3754 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
3756 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
3757 with x86_64-pc-linux-gnu.
3759 2019-01-07 Tom de Vries <tdevries@suse.de>
3762 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
3764 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
3767 2019-01-07 Jakub Jelinek <jakub@redhat.com>
3769 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
3770 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
3771 TARGET_AVX512F as condition.
3774 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
3775 const_not_ok_for_debug_p target hook.
3776 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
3777 on UNSPEC and subexpressions thereof if all subexpressions of the
3778 UNSPEC are CONSTANT_P.
3780 PR tree-optimization/88676
3781 * tree-ssa-phiopt.c (two_value_replacement): New function.
3782 (tree_ssa_phiopt_worker): Call it.
3785 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
3786 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
3789 * tree-vect-generic.c: Include insn-config.h and recog.h.
3790 (expand_vector_piecewise): Add defaulted ret_type argument,
3791 if non-NULL, use that in preference to type for the result type.
3792 (expand_vector_parallel): Formatting fix.
3793 (do_vec_conversion, do_vec_narrowing_conversion,
3794 expand_vector_conversion): New functions.
3795 (expand_vector_operations_1): Call expand_vector_conversion
3796 for VEC_CONVERT ifn calls.
3797 * internal-fn.def (VEC_CONVERT): New internal function.
3798 * internal-fn.c (expand_VEC_CONVERT): New function.
3799 * fold-const-call.c (fold_const_vec_convert): New function.
3800 (fold_const_call): Use it for CFN_VEC_CONVERT.
3801 * doc/extend.texi (__builtin_convertvector): Document.
3803 2019-01-07 Tom de Vries <tdevries@suse.de>
3805 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
3806 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
3807 vector_red_partition, vector_red_sym): New global variables.
3808 (nvptx_option_override): Initialize vector_red_sym.
3809 (nvptx_declare_function_name): Restore red_partition register.
3810 (nvptx_file_end): Emit code to declare the vector reduction variables.
3811 (nvptx_output_red_partition): New function.
3812 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
3813 large vector reductions.
3814 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
3815 (nvptx_init_builtins): Add VECTOR_ADDR.
3816 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
3817 Handle nvptx_expand_shared_addr.
3818 (nvptx_get_shared_red_addr): Add vector argument and handle large
3820 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
3822 (nvptx_goacc_reduction_init): Likewise.
3823 (nvptx_goacc_reduction_fini): Likewise.
3824 (nvptx_goacc_reduction_teardown): Likewise.
3825 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
3826 init,fini,teardown}.
3827 (nvptx_init_axis_predicate): Initialize vector_red_partition.
3828 (nvptx_set_current_function): Init vector_red_partition.
3829 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
3830 (nvptx_red_partition): New insn.
3831 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
3833 2019-01-07 Tom de Vries <tdevries@suse.de>
3836 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
3839 2019-01-07 Tom de Vries <tdevries@suse.de>
3841 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
3842 (nvptx_option_override): Init oacc_bcast_partition.
3843 (nvptx_init_oacc_workers): New function.
3844 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
3845 (nvptx_needs_shared_bcast): New function.
3846 (nvptx_find_par): Generalize to enable vectors to use shared-memory
3848 (nvptx_shared_propagate): Initialize vector bcast partition and
3849 synchronization state.
3850 (nvptx_single): Generalize to enable vectors to use shared-memory
3852 (nvptx_process_pars): Likewise.
3853 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
3854 * config/nvptx/nvptx.h (struct machine_function): Add
3855 bcast_partition and sync_bar members.
3857 2019-01-07 Tom de Vries <tdevries@suse.de>
3859 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
3860 (nvptx_apply_dim_limits): New function.
3861 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
3864 2019-01-07 Tom de Vries <tdevries@suse.de>
3866 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3867 as late as possible.
3869 2019-01-07 Tom de Vries <tdevries@suse.de>
3871 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
3872 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
3873 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
3874 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
3875 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
3877 2019-01-07 Tom de Vries <tdevries@suse.de>
3879 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3881 2019-01-07 Tom de Vries <tdevries@suse.de>
3883 * omp-offload.c (oacc_get_min_dim): New function.
3884 * omp-offload.h (oacc_get_min_dim): Declare.
3886 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
3889 * config/i386/i386.c (function_value_ms_64): Return small sturct in
3890 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
3892 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3896 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
3898 * ipa-inline.c (edge_badness): Use inlined_time instead of
3899 inline_summaries->get.
3901 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3903 * opts.c (enable_fdo_optimizations): Enable
3904 version-loops-for-strides, loop-interchange, unrol-and-jam
3905 and tree-loop-distribution.
3906 * invoke.texi: Document newly enabled options.
3908 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3910 * doc/invoke.texi (max-inline-insns-small): New parameters.
3911 * ipa-inline.c (want_early_inline_function_p): simplify.
3912 (want_inline_small_function_p): Fix pasto from previous patch;
3913 use max-inline-insns-small bound.
3914 * params.def (max-inline-insns-small): New param.
3915 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
3916 variables correctly.
3918 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3920 * doc/invoke.texi: Document max-inline-insns-size,
3921 uninlined-function-insns, uninlined-function-time,
3922 uninlined-thunk-insns and uninlined-thunk-time.
3923 * params.def: Add max-inline-insns-size,
3924 uninlined-function-insns, uninlined-function-time,
3925 uninlined-thunk-insns and uninlined-thunk-time.
3926 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
3928 * ipa-inline.c (can_inline_edge_by_limits_p,
3929 want_inline_small_function_p): Use new parameters.
3931 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3933 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3935 2019-01-05 Jakub Jelinek <jakub@redhat.com>
3939 * expr.c (expand_assignment): For calls returning VLA structures
3940 if to_rtx is not a MEM, force it into a stack temporary.
3943 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3944 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3945 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3946 subexpressions of both operands.
3947 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3948 subrtxes are CONSTANT_P.
3949 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
3952 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
3954 * params.def (hot-bb-count-ws-permille): Set to 990.
3956 2019-01-04 Martin Sebor <msebor@redhat.com>
3959 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3962 2019-01-04 Martin Sebor <msebor@redhat.com>
3965 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3967 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3969 * gdbinit.in: Turn off pagination for the skip commands, restore
3970 it to previous state afterwards.
3972 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3975 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3976 of GET_MODE (opN) as modes of the libcall arguments.
3978 2019-01-04 Jan Beulich <jbeulich@suse.com>
3980 * config/i386/sse.md
3981 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
3982 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
3983 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3984 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3985 avx512f_vmcmp<mode>3<round_saeonly_name>,
3986 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
3987 avx512f_maskcmp<mode>3,
3988 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3989 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3990 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3991 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3992 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3993 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3994 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3995 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3996 <avx512>_testm<mode>3<mask_scalar_merge_name>,
3997 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
3998 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
3999 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
4000 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
4001 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
4002 avx512cd_maskb_vec_dup<mode>,
4003 avx512cd_maskw_vec_dup<mode>,
4004 avx512dq_fpclass<mode><mask_scalar_merge_name>,
4005 avx512dq_vmfpclass<mode>,
4006 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
4009 2019-01-03 Martin Sebor <msebor@redhat.com>
4011 PR tree-optimization/88659
4012 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
4014 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
4016 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
4017 unaligned vsx and avoid lxvd2x/stxvd2x.
4018 (gen_lvx_v4si_move): New function.
4020 2019-01-03 Tom de Vries <tdevries@suse.de>
4022 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
4023 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
4025 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
4027 2019-01-03 Tom de Vries <tdevries@suse.de>
4029 * config/nvptx/nvptx.c (struct offload_attrs): New.
4030 (populate_offload_attrs): New function. Factor mask extraction out of
4031 nvptx_reorg. Add extraction of dimensions.
4032 (nvptx_reorg): Use populate_offload_attrs.
4034 2019-01-03 Tom de Vries <tdevries@suse.de>
4036 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
4037 cases for oacc_min_dims_p and routine_p. Add asserts for
4038 oacc_default_dims_p and offload_region_p.
4040 2019-01-03 Tom de Vries <tdevries@suse.de>
4042 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
4044 (nvptx_goacc_validate_dims): ... here.
4046 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
4048 PR tree-optimization/85574
4049 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
4051 (struct ssa_equip_hash_traits): Declare.
4052 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
4054 2019-01-03 Jakub Jelinek <jakub@redhat.com>
4057 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
4058 change it to qualified_type.
4060 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
4062 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
4063 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
4065 2019-01-02 Martin Sebor <msebor@redhat.com>
4066 Jeff Law <law@redhat.com>
4068 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
4069 (get_range_strlen_tree): Update appropriately.
4071 * gimple-fold.h (get_range_strlen): Drop unused last argument.
4073 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
4074 rather than set_range_info.
4075 * tree-ssa-strlen.c (set_strlen_range): Extracted from
4076 maybe_set_strlen_range. Handle potentially boundary crossing
4077 cases more conservatively.
4078 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
4079 Call set_strlen_range.
4080 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
4083 * gimple-fold.c (get_range_strlen): Update prototype to no longer
4084 need the flexp argument.
4085 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
4086 from calls to get_range_strlen. Update comments. Just update
4087 VAL for an unterminated const char array and let the reset of the
4088 code handle it normally. No longer try to set *flexp. Adjust
4090 (get_range_strlen): Update for the new get_range_strlen API.
4091 (get_maxval_strlen): Similarly.
4092 (gimple_fold_builtin_strlen): Handle update meaning of return value
4093 from get_range_strlen.
4094 * gimple-ssa-sprintf.c (get_string_length): Update for the new
4095 get_range_strlen API.
4097 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
4100 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
4101 false at WPA time when body was removed.
4103 2019-01-02 Martin Liska <mliska@suse.cz>
4105 PR tree-optimization/88650
4106 * predict.c (set_even_probabilities): Calculate probability
4107 remainer only when really used.
4109 2019-01-02 Richard Biener <rguenther@suse.de>
4112 * tree-data-ref.c (analyze_subscript_affine_affine): Use
4113 widest_ints when mangling max_stmt_execution results.
4115 2019-01-02 Richard Biener <rguenther@suse.de>
4117 PR tree-optimization/88621
4118 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
4119 bitfields when canoncalizing.
4121 2019-01-02 Richard Biener <rguenther@suse.de>
4124 * config/i386/x86-tune-costs.h (intel_cost): Adjust
4125 cost of cheap SSE instruction.
4127 2019-01-02 Richard Biener <rguenther@suse.de>
4130 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
4131 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
4133 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
4134 set after UIDs before splitting them.
4136 2019-01-01 Martin Sebor <msebor@redhat.com>
4137 Jeff Law <law@redhat.com>
4139 * gimple-fold.c (get_range_strlen_tree): Record if the computed
4140 length is optimistic. If it is, then arrange to compute the
4141 conservative length as well.
4143 * gimple-fold.h (get_range_strlen): Update prototype.
4144 * builtins.c (check_access): Update call to get_range_strlen to use
4145 c_strlen_data pointer. Change various variable accesses to instead
4146 pull data from the c_strlen_data structure.
4147 (check_strncat_sizes, expand_builtin_strncat): Likewise.
4148 * calls.c (maybe_warn_nonstring_arg): Likewise.
4149 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
4150 minimum length if maximum lengh is unknown.
4151 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
4152 that used c_strlen, it's no longer needed. Restructure slightly.
4153 (format_string): Set unlikely range appropriately.
4154 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
4156 (get_range_strlen): Accept c_strlen_data pointer for external
4157 call sites as well. Pass through to call to internal get_range_strlen.
4158 Adjust minlen, maxlen and maxbound as needed.
4159 (get_maxval_strlen): Update comments.
4160 (gimple_fold_builtin_strlen): Update call to get_range_strlen
4161 to use c_strlen_data pointer. Change variable accesses to instead
4162 use c_strlen_data data members.
4164 * gimple-fold.c (get_range_strlen): Update prototype.
4165 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
4166 local variables. Use pdata to return information to caller.
4167 Update calls to get_range_strlen. Update pdata->maxbound.
4168 (get_range_strlen -- static version): Similarly.
4169 (get_range_strlen -- extern version): Update for internal
4170 get_range_strlen API change. Convert to external data format.
4171 (get_maxval_strlen): Similarly.
4173 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
4175 * coverage.c (get_coverage_counts): Use current_function_decl.
4176 * profile.c (read_thunk_profile): New function.
4177 (branch_prob): Add THUNK parameter.
4178 * tree-profile.c (tree_profiling): Handle thunks.
4179 * value-prof.c (init_node_map): Handle thunks.
4180 * value-prof.h (branch_prob): Upate prototype.
4181 (read_thunk_profile): Declare.
4183 2019-01-01 Jakub Jelinek <jakub@redhat.com>
4185 Update copyright years.
4187 * gcc.c (process_command): Update copyright notice dates.
4188 * gcov-dump.c (print_version): Ditto.
4189 * gcov.c (print_version): Ditto.
4190 * gcov-tool.c (print_version): Ditto.
4191 * gengtype.c (create_file): Ditto.
4192 * doc/cpp.texi: Bump @copying's copyright year.
4193 * doc/cppinternals.texi: Ditto.
4194 * doc/gcc.texi: Ditto.
4195 * doc/gccint.texi: Ditto.
4196 * doc/gcov.texi: Ditto.
4197 * doc/install.texi: Ditto.
4198 * doc/invoke.texi: Ditto.
4200 Copyright (C) 2019 Free Software Foundation, Inc.
4202 Copying and distribution of this file, with or without modification,
4203 are permitted in any medium without royalty provided the copyright
4204 notice and this notice are preserved.