1 2019-02-26 Martin Liska <mliska@suse.cz>
3 * alloc-pool.h (struct pool_usage): Remove extra
5 * bitmap.h (struct bitmap_usage): Likewise.
6 * ggc-common.c (struct ggc_usage): Likewise.
7 * mem-stats.h (struct mem_usage): Likewise.
8 (mem_alloc_description::dump): Print dash lines
9 here and repeat header at the end of a table report.
10 It's then more readable.
11 * tree-phinodes.c (phinodes_print_statistics): Make
13 * tree-ssanames.c (ssanames_print_statistics): Likewise.
14 * vec.c (struct vec_usage): Remove extra print_dash_line.
15 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
17 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
19 * doc/extend.texi (__builtin_object_size):
20 Use @pxref instead of @xref inside parenthesis.
21 (__builtin_has_attribute): Add missing comma after @xref.
22 (__builtin_object_size): Ditto.
23 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
24 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
27 2019-02-26 Jeff Law <law@redhat.com>
29 PR rtl-optimization/87761
30 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
31 detect obviously dead insns and delete them.
33 2019-02-26 Richard Biener <rguenther@suse.de>
35 PR tree-optimization/89505
36 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
37 to handle restrict pointed-to vars with multiple subvars
40 2019-02-26 Richard Biener <rguenther@suse.de>
42 PR tree-optimization/89489
43 * tree-parloops.c (create_loop_fn): Copy over last_clique.
45 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
47 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
48 and move around comment.
49 <BIT_AND_EXPR>: Likewise.
50 <BIT_NOT_EXPR>: Add specific handling for boolean types.
52 2019-02-26 Jakub Jelinek <jakub@redhat.com>
55 * config/i386/i386.c (remove_partial_avx_dependency): Call
56 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
57 after changing possibly many instructions to use that pseudo. Fix up
58 insertion of v4sf_const0 setter at the start of bb.
60 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
63 * doc/extend.texi (Variadic Pointer Args): New section.
65 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
66 Martin Sebor <msebor@gmail.com>
68 * common.opt (Wattribute-alias): Likewise.
69 * doc/invoke.texi (Option Summary): List general form of
70 -Wattribute-alias=. List positive form of -Wmissing-attributes.
71 (-Wmissing-attributes): Invert entry, rewrite and correct default.
73 (-Wattribute-alias): Rewrite and correct default. Mention
74 considered attributes (same as for -Wmissing-attributes).
76 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
78 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
79 (_mm_cvtpd_ps): Likewise.
80 (_mm_cvttpd_epi32): Likewise.
83 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
84 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
87 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
89 2019-02-25 Tamar Christina <tamar.christina@arm.com>
92 * common/config/aarch64/aarch64-common.c
93 (struct aarch64_option_extension): Add is_synthetic.
94 (all_extensions): Use it.
95 (TARGET_OPTION_INIT_STRUCT): Define hook.
96 (struct gcc_targetm_common): Moved to end.
97 (all_extensions_by_on): New.
98 (opt_ext_cmp, typedef opt_ext): New.
99 (aarch64_option_init_struct): New.
100 (aarch64_contains_opt): New.
101 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
102 * config/aarch64/aarch64-option-extensions.def
103 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
104 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
105 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
106 Set is_synthetic to false.
107 (crypto): Set is_synthetic to true.
108 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
111 2019-02-25 Tamar Christina <tamar.christina@arm.com>
113 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
114 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
115 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
116 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
117 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
118 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
119 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
120 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
122 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
123 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
124 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
125 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
126 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
127 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
128 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
129 vfmlsl_laneq_high_f16): ... To this.
130 * config/arm/neon.md: Update comments.
132 2019-02-25 Tamar Christina <tamar.christina@arm.com>
134 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
135 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
136 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
137 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
138 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
139 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
140 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
141 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
143 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
144 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
145 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
146 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
147 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
148 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
149 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
150 vfmlslq_laneq_high_f16): ... To this.
152 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
154 PR rtl-optimization/86096
155 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
156 comparing mw_order values.
158 2019-02-25 Jakub Jelinek <jakub@redhat.com>
161 * config/arm/arm.md (*subsi3_carryin_const): Use
162 arm_neg_immediate_operand predicate instead of
163 arm_not_immediate_operand, "L" constraint instead of "K" and
164 print it using %n2 instead of %B2.
165 (*subsi3_carryin_const0): New define_insn.
166 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
167 instead of arm_not_operand and "I" constraint instead of "K" and
168 print it using %n3 instead of %B2. Instead of using match_dup 2 add
169 another match_operand and in the condition check that it is negation
171 (*subsi3_carryin_compare_const0): New define_ins.
172 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
173 *subsi3_carryin_const.
174 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
175 split into *subsi3_carryin_compare_const0 if the highpart is zero.
178 * config/arm.vfp.md (*negdf2_vfp): Use
179 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
180 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
182 2019-02-24 Jakub Jelinek <jakub@redhat.com>
184 PR rtl-optimization/89445
185 * simplify-rtx.c (simplify_ternary_operation): Don't use
186 simplify_merge_mask on operands that may trap.
187 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
188 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
189 second operand is CONST_VECTOR, check if any element could be zero.
190 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
191 their operands can trap.
193 2019-02-23 Martin Sebor <msebor@redhat.com>
195 * gimple-ssa-sprintf.c (target_strtol): Rename...
196 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
197 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
198 check for range error.
200 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
203 * opts-common.c (prune_options): Also prune joined switches
204 with Negative and RejectNegative.
205 * config/i386/i386.opt (march=): Add Negative(march=).
206 (mtune=): Add Negative(mtune=).
207 * doc/options.texi: Document Negative used together with Joined
210 2019-02-22 Martin Sebor <msebor@redhat.com>
212 * doc/extend.texi (Other Builtins): Add
213 __builtin_is_constant_evaluated.
215 2019-02-22 Richard Biener <rguenther@suse.de>
217 PR tree-optimization/87609
218 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
220 2019-02-22 Jeff Law <law@redhat.com>
222 PR rtl-optimization/87761
223 * config/mips/mips.md: Add new combiner pattern to recognize
224 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
226 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
229 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
230 destination register in peepholes generating patterns for ADDS/SUBS.
231 (add<mode>3_compare0,
232 *addsi3_compare0_uxtw, add<mode>3_compareC,
233 add<mode>3_compareV_imm, add<mode>3_compareV,
234 *adds_<optab><ALLX:mode>_<GPI:mode>,
235 *subs_<optab><ALLX:mode>_<GPI:mode>,
236 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
237 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
238 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
239 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
240 sub<mode>3_compare1): Allow stack pointer for source register.
241 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
243 2019-02-22 Martin Sebor <msebor@redhat.com>
245 PR tree-optimization/88993
246 PR tree-optimization/88853
247 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
249 (sprintf_dom_walker::call_info::is_string_func): New helper.
250 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
251 for formatted string functions.
252 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
254 2019-02-22 Martin Sebor <msebor@redhat.com>
257 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
258 unreachable subexpressions.
260 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
261 Hongtao Liu <hongtao.liu@intel.com>
262 Sunil K Pandey <sunil.k.pandey@intel.com>
265 * config/i386/i386-passes.def: Add
266 pass_remove_partial_avx_dependency.
267 * config/i386/i386-protos.h
268 (make_pass_remove_partial_avx_dependency): New.
269 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
271 (pass_data_remove_partial_avx_dependency): New.
272 (pass_remove_partial_avx_dependency): Likewise.
273 (make_pass_remove_partial_avx_dependency): Likewise.
274 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
275 (*extendsfdf2): Add avx_partial_xmm_update.
276 (truncdfsf2): Likewise.
277 (*float<SWI48:mode><MODEF:mode>2): Likewise.
278 (SF/DF conversion splitters): Disabled for TARGET_AVX.
280 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
283 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
286 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
289 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
290 (PTA_SKYLAKE): Add PTA_AES.
291 (PTA_GOLDMONT): Likewise.
293 2019-02-22 Sudakshina Das <sudi.das@arm.com>
295 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
296 instruction if enabled.
297 (aarch64_override_options): Remove reference to return address key.
299 2019-02-22 Richard Biener <rguenther@suse.de>
301 PR tree-optimization/89440
302 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
303 not necessary assert.
305 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
308 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
309 (oacc_replace_fn_attrib_attr): ... this new function.
310 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
311 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
313 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
315 * config/arm/arm-cpus.in (ares): Rename to...
316 (neoverse-n1): ... This. Add ares as alias.
317 * config/arm/arm-tables.opt: Regenerate.
318 * config/arm/arm-tune.md: Likewise.
319 * doc/invoke.txt (ARM Options): Document neoverse-n1.
321 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
323 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
324 * config/aarch64/aarch64-tune.md: Regenerate.
325 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
327 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
329 * config/aarch64/aarch64.c (ares_tunings): Rename to...
330 (neoversen1_tunings): ... This.
331 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
332 (neoverse-n1): New CPU.
333 * config/aarch64/aarch64-tune.md: Regenerate.
334 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
336 2019-02-22 Richard Biener <rguenther@suse.de>
339 * cfghooks.h (dependence_hash): New typedef.
340 (struct copy_bb_data): New type.
341 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
342 (duplicate_block): Likewise.
343 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
344 (copy_bbs): Create and pass down copy_bb_data.
345 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
346 (rtl_duplicate_bb): Likewise.
347 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
348 remap dependence info.
350 2019-02-22 Richard Biener <rguenther@suse.de>
352 PR tree-optimization/87609
353 * tree-core.h (tree_base): Document special clique values.
354 * tree-inline.c (remap_dependence_clique): Do not use the
355 special clique value of one.
356 (maybe_set_dependence_info): Use clique one.
357 (clear_dependence_clique): New callback.
358 (compute_dependence_clique): Clear clique one from all refs
359 before assigning it (again).
361 2019-02-21 Martin Sebor <msebor@redhat.com>
363 * doc/extend.texi (__clear_cache): Correct signature.
365 2019-02-21 Ian Lance Taylor <iant@golang.org>
368 * varasm.c (decode_addr_const): Call lookup_constant_def rather
369 than output_constant_def.
370 (add_constant_to_table): New static function.
371 (output_constant_def): Call add_constant_to_table.
372 (tree_output_constant_def): Likewise.
374 2019-02-21 Jakub Jelinek <jakub@redhat.com>
377 * builtins.c (fold_builtin_arith_overflow): If first two args are
378 INTEGER_CSTs, set intres and ovfres to constants rather than calls
381 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
384 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
385 error for -mindirect-branch/-mfunction-return with incompatible
388 2019-02-21 Jakub Jelinek <jakub@redhat.com>
391 * constraints.md (q): Remove.
392 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
395 2019-02-21 Martin Jambor <mjambor@suse.cz>
398 * omp-general.c (omp_extract_for_data): Removed a duplicate call
399 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
400 (omp_adjust_for_condition): ...here. Added necessary parameters.
401 * omp-general.h (omp_adjust_for_condition): Updated declaration.
402 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
403 proper values to new parameters of omp_adjust_for_condition.
405 2019-02-20 Jakub Jelinek <jakub@redhat.com>
408 * expr.c (expand_assignment): If result is a MEM, use change_address
409 instead of simplify_gen_subreg.
411 2019-02-20 Jakub Jelinek <jakub@redhat.com>
412 David Malcolm <dmalcolm@redhat.com>
415 * fold-const.c (decode_field_reference): Return NULL_TREE if
416 lang_hooks.types.type_for_size returns NULL. Check it before
417 overwriting *exp_. Use return NULL_TREE instead of return 0.
419 2019-02-20 Jakub Jelinek <jakub@redhat.com>
423 * toplev.c (do_compile): Double the emin/emax exponents to workaround
426 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
429 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
430 TARGET_SSE in addition to TARGET_SSE_MATH.
432 (ix86_excess_precision): Ditto.
433 (ix86_float_exceptions_rounding_supported_p): Ditto.
434 (use_rsqrt_p): Ditto.
435 * config/i386/sse.md (rsqrt<mode>2): Ditto.
437 2019-02-20 David Malcolm <dmalcolm@redhat.com>
440 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
441 linenum_arith_t when determining if two adjacent line spans are
442 close enough to merge.
443 (diagnostic_show_locus): Use linenum_arith_t when iterating over
444 lines within each line_span.
446 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
449 * lra-constraints.c(uses_hard_regs_p): Fix handling of
452 2019-02-20 Li Jia He <helijia@linux.ibm.com>
455 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
456 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
457 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
460 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
462 * config/gcn/gcn.c (print_operand): Fix typo.
464 2019-02-19 Richard Biener <rguenther@suse.de>
467 * toplev.c (do_compile): Initialize mpfr's exponent range
468 based on available float modes.
470 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
472 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
473 as long as the epilogue isn't completed.
475 2019-02-18 Martin Sebor <msebor@redhat.com>
477 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
478 __has_cpp_attribute, and __has_include.
480 2019-02-18 Martin Sebor <msebor@redhat.com>
482 * doc/invoke.texi (-Wreturn-type): Correct and expand.
484 2019-02-18 Martin Sebor <msebor@redhat.com>
487 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
489 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
491 2019-02-18 Richard Biener <rguenther@suse.de>
493 PR tree-optimization/89296
494 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
495 of no-warning flag to cases that might emit the bogus warning.
497 2019-02-18 Jakub Jelinek <jakub@redhat.com>
500 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
502 * config/arm/vfp.md (*movdi_vfp): Likewise.
503 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
504 "q" constraint for operands[0].
507 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
508 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
509 pattern in a temporary buffer.
510 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
514 * config/s390/s390.c (s390_indirect_branch_attrvalue,
515 s390_indirect_branch_settings): Define unconditionally.
516 (s390_set_current_function): Likewise, but guard the whole body except
517 the s390_indirect_branch_settings call with
518 #if S390_USE_TARGET_ATTRIBUTE.
519 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
521 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
522 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
523 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
524 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
525 HOST_WIDE_INT_1U instead of 1ULL.
526 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
527 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
528 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
529 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
531 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
534 2019-02-18 Martin Jambor <mjambor@suse.cz>
536 PR tree-optimization/89209
537 * tree-sra.c (create_access_replacement): New optional parameter
538 reg_tree. Use it as a type if non-NULL and access type is not of
540 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
541 to create_access_replacement.
542 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
543 Check lacc is non-NULL before attempting to re-create it on the RHS.
545 2019-02-18 Martin Liska <mliska@suse.cz>
548 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
550 (symbol_table::free_edge): Recycle m_summary_id.
551 * cgraph.h (get_summary_id): New.
552 (symbol_table::release_symbol): Set m_summary_id to -1
554 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
555 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
556 function_summary to fast_function_summary.
557 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
558 * ipa-pure-const.c (class funct_state_summary_t):
559 Switch from function_summary to fast_function_summary.
560 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
561 (class ipa_ref_opt_summary_t): Switch from function_summary
562 to fast_function_summary.
563 * symbol-summary.h (class function_summary_base): New class
564 that is created from base of former function_summary.
565 (function_summary_base::unregister_hooks): New.
566 (class function_summary): Inherit from function_summary_base.
567 (class call_summary_base): New class
568 that is created from base of former call_summary.
569 (class call_summary): Inherit from call_summary_base.
570 (struct is_same): New.
571 (class fast_function_summary): New summary class.
572 (class fast_call_summary): New summary class.
573 * vec.h (vec_safe_grow_cleared): New function.
575 2019-02-18 Martin Liska <mliska@suse.cz>
577 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
578 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
579 * doc/tm.texi: Document new target hook.
580 * doc/tm.texi.in: Likewise.
581 * target.def: Add new target macro.
582 * gcc.c (find_fortran_preinclude_file): Do not search multilib
585 2019-02-17 Alan Modra <amodra@gmail.com>
588 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
589 output reg on add insn.
590 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
592 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
595 * config/i386/sse.md (ssedoublemode): Remove V4HI.
596 (PMULHRSW): Likewise.
597 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
599 (ssse3_pmulhrswv4hi3): New expander.
601 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
603 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
604 MMX. Add isa attribute.
606 2019-02-16 Jakub Jelinek <jakub@redhat.com>
608 PR rtl-optimization/66152
609 * builtins.h (c_readstr): Declare.
610 * builtins.c (c_readstr): Remove forward declaration. Add
611 null_terminated_p argument, if false, read all bytes from the
612 string instead of stopping after '\0'.
613 * expr.c (string_cst_read_str): New function.
614 (store_expr): Use string_cst_read_str instead of
615 builtin_strncpy_read_str. Try to store by pieces the whole
616 exp_len first, and only if that fails, split it up into
617 store by pieces followed by clear_storage. Formatting fix.
619 * config/i386/i386.md (*movqi_internal): Remove static from
620 buf variable. Use output_asm_insn (buf, operands); return "";
621 instead of return buf;.
622 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
623 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
624 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
626 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
628 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
629 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
630 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
631 (CC1_SPEC): Likewise.
632 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
634 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
636 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
637 the base address on 64-bit strict-alignment platforms.
639 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
641 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
643 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
645 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
647 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
649 PR rtl-optimization/88308
650 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
651 on copied instruction.
653 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
655 * final.c (insn_current_reference_address): Replace test on JUMP_P
656 with test on jump_to_label_p.
657 * config/visium/visium-passes.def: New file.
658 * config/visium/t-visium (PASSES_EXTRA): Define.
659 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
660 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
661 (TRAMPOLINE_ALIGNMENT): Define.
662 * config/visium/visium.c (visium_option_override): Do not register
663 the machine-specific reorg pass here.
664 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
666 (output_branch): Adjust threshold for long branch instruction.
667 * config/visium/visium.md (cpu): Move around.
668 (length): Adjust for the GR6.
670 2019-02-15 Richard Biener <rguenther@suse.de>
671 Jakub Jelinek <jakub@redhat.com>
673 PR tree-optimization/89278
674 * tree-loop-distribution.c: Include tree-eh.h.
675 (generate_memset_builtin, generate_memcpy_builtin): Call
676 rewrite_to_non_trapping_overflow on builtin->size before passing it
677 to force_gimple_operand_gsi.
679 2019-02-15 Jakub Jelinek <jakub@redhat.com>
682 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
684 * opth-gen.awk: Likewise.
686 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
688 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
689 Enable MMX, SSE and SSE2 by default.
690 * config/i386/i386.c (ix86_option_override_internal): Do not
691 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
693 2019-02-14 Jakub Jelinek <jakub@redhat.com>
695 PR rtl-optimization/89354
696 * combine.c (make_extraction): Punt if extraction_mode is narrower
699 2019-02-14 Maya Rashish <coypu@sdf.org>
701 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
702 * config/netbsd-d.c: New file.
703 * config/t-netbsd: Add netbsd-d.o
705 2018-02-14 Steve Ellcey <sellcey@marvell.com>
707 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
708 affects_type_identity to true for aarch64_vector_pcs.
709 (aarch64_comp_type_attributes): New function.
710 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
712 2019-02-14 Tamar Christina <tamar.christina@arm.com>
715 * config/arm/iterators.md (ANY64): Add V4HF.
717 2019-02-14 Martin Liska <mliska@suse.cz>
719 PR rtl-optimization/89242
720 * dce.c (delete_unmarked_insns): Call free_dominance_info we
721 process a transformation.
723 2019-02-14 Jakub Jelinek <jakub@redhat.com>
725 PR tree-optimization/89314
726 * fold-const.c (fold_binary_loc): Cast strlen argument to
727 const char * before dereferencing it. Formatting fixes.
730 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
732 2019-02-13 Ian Lance Taylor <iant@golang.org>
734 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
735 and set current index for other optimizations.
737 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
739 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
740 nonimmediate_operand as operand 2 predicate.
741 (vec_set<VF2_512_256:mode>_0): Ditto.
742 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
743 (*vec_concatv2si): Remove alternative 2.
744 (*vec_concatv4si_0): Use vm constraint for alternative 0.
745 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
746 (vec_concatv2di): Split alternatives 4,5,6 to ...
747 (*vec_concatv2di_0) ... new pattern.
749 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
752 * config/arm/arm.c (ldm_stm_operation_p) Set
753 addr_reg_in_reglist correctly for first register.
754 (load_multiple_sequence): Remove dead base check.
755 (gen_ldm_seq): Correctly set write_back for Thumb-1.
757 2019-02-13 Tamar Christina <tamar.christina@arm.com>
760 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
761 Expose as @aarch64_pred_mov.
762 * config/aarch64/aarch64.c (aarch64_classify_address):
763 Use expand_insn which legitimizes operands.
765 2019-02-13 Martin Liska <mliska@suse.cz>
767 * builtins.h (expand_builtin_with_bounds): Remove declaration.
768 * calls.c (struct arg_data): Remove special_slot, pointer_arg
769 and pointer_offset fields.
770 (initialize_argument_information): Remove usage of dead
772 * cgraph.h (struct cgraph_thunk_info): Remove
773 add_pointer_bounds_args.
774 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
776 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
778 * config/i386/i386.c (ix86_function_arg_advance): Remove
780 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
781 (def_builtin): Remove usage of dead
783 (ix86_add_new_builtins): Likewise.
784 * ipa-fnsummary.c (compute_fn_summary): Likewise.
785 * ipa-icf.c (sem_function::equals_wpa): Likewise.
786 (sem_function::init): Likewise.
787 (sem_variable::merge): Likewise.
788 * ipa-visibility.c (function_and_variable_visibility): Likewise.
789 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
790 * lto-cgraph.c (lto_output_node): Likewise.
791 (lto_output_varpool_node): Likewise.
792 (input_node): Likewise.
793 (input_varpool_node): Likewise.
794 * lto-streamer-out.c (lto_output): Likewise.
795 * tree-inline.c (expand_call_inline): Remove usage of
797 * tree-inline.h (struct copy_body_data): Likewise.
798 * varpool.c (varpool_node::dump): Likewise.
800 2019-02-13 Jakub Jelinek <jakub@redhat.com>
803 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
804 into pt->vars_contains_escaped_heap instead of setting
805 pt->vars_contains_escaped_heap to it.
808 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
809 INTVAL (size), compare it to GET_MODE_MASK instead of
810 1 << GET_MODE_BITSIZE.
813 * config/i386/predicates.md (x86_64_immediate_operand): Allow
814 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
817 2019-02-13 Martin Liska <mliska@suse.cz>
820 * cfgrtl.c (remove_barriers_from_footer): New function.
821 (try_redirect_by_replacing_jump): Use it.
822 (cfg_layout_redirect_edge_and_branch): Likewise.
824 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
826 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
827 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
828 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
829 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
830 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
831 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
833 * config/rs6000/rs6000.c (builtin_function_type)
834 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
835 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
836 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
837 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
838 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
840 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
842 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
843 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
845 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
848 * config/i386/i386.md (*movoi_internal_avx): Revert revision
849 268678 and revision 268657.
850 (*movti_internal): Likewise.
852 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
855 * config/s390/s390.c (s390_decompose_address): Update comment.
856 (s390_check_qrst_address): Reject invalid address forms after
859 2019-02-12 Martin Liska <mliska@suse.cz>
862 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
863 we need default values of funct_state for a function that
866 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
868 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
869 the object to pick the size of stores on strict-alignment platforms.
871 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
872 (*movdi_insn_sp32): Likewise.
873 (*movdi_insn_sp64): Likewise.
875 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
878 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
879 types that needs constructiong.
880 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
882 2019-02-12 Richard Biener <rguenther@suse.de>
884 PR tree-optimization/89253
885 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
888 2019-02-11 David Malcolm <dmalcolm@redhat.com>
891 * input.c (selftest::test_line_offset_overflow): New selftest.
892 (selftest::input_c_tests): Call it.
894 2019-02-11 Martin Sebor <msebor@redhat.com>
896 PR tree-optimization/88771
897 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
898 when -Wstringop-overflow is set.
899 (builtin_memref::builtin_memref): Adjust excessive upper bound
900 only when lower bound is not excessive.
901 (maybe_diag_overlap): Detect and diagnose excessive bounds via
903 (maybe_diag_offset_bounds): Rename...
904 (maybe_diag_access_bounds): ...to this.
905 (check_bounds_or_overlap): Adjust for name change above.
907 2019-02-11 Martin Sebor <msebor@redhat.com>
910 * builtins.c (max_object_size): Move from here...
911 * builtins.h (max_object_size): ...and here...
912 * tree.c (max_object_size): ...to here...
913 * tree.h (max_object_size): ...and here.
915 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
917 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
918 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
919 for correct semantics.
921 2019-02-11 Alan Modra <amodra@gmail.com>
923 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
924 -mlongcall and -mpltseq.
925 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
926 (RS/6000 and PowerPC Options <-mpltseq>): Document.
927 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
928 * config/rs6000/sysv4.opt (mpltseq): New option.
929 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
930 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
931 support is lacking. Don't allow -mpltseq with -mbss-plt.
932 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
933 -mpltseq given for ELFv1.
934 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
935 Only use UNSPEC_PLTSEQ for inline PLT calls.
936 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
937 use UNSPEC_PLTSEQ for inline PLT calls.
938 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
939 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
940 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
941 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
942 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
943 (pltseq_mtctr_<mode>): Likewise.
945 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
947 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
949 * configure: Regenerate.
951 2019-02-11 Jakub Jelinek <jakub@redhat.com>
954 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
957 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
959 * function.c (assign_parm_setup_block): Use the stored
960 size, not the passed size, when allocating stack-space,
961 also for a parameter with alignment larger than
962 MAX_SUPPORTED_STACK_ALIGNMENT.
964 2019-02-11 Martin Liska <mliska@suse.cz>
967 * ipa-cp.c (build_toporder_info): Remove usage of a param.
968 * ipa-inline.c (inline_small_functions): Likewise.
969 * ipa-pure-const.c (propagate_pure_const): Likewise.
970 (propagate_nothrow): Likewise.
971 * ipa-reference.c (propagate): Likewise.
972 * ipa-utils.c (struct searchc_env): Remove unused field.
973 (searchc): Always search across AVAIL_INTERPOSABLE.
974 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
975 the only called IPA pure const can properly not propagate
976 across interposable boundary.
977 * ipa-utils.h (ipa_reduced_postorder): Remove param.
979 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
981 * config/nds32/nds32.md (call_internal, call_value_internal,
982 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
984 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
986 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
989 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
991 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
994 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
996 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
998 2019-02-10 Jakub Jelinek <jakub@redhat.com>
1000 PR tree-optimization/89268
1001 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
1002 if preds is non-NULL.
1004 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1007 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
1010 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1012 * config/nds32/nds32.md (trap): New pattern.
1014 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1016 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
1019 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1021 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
1024 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1026 * ipa-visibility.c (localize_node): Also do not localize
1027 LDPR_PREVAILING_DEF_IRONLY_EXP.
1029 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1032 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
1033 instead of type_with_linkage.
1035 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1038 * params.def (uninlined-function-insns, uninlined-function-time,
1039 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
1040 bound so we don't get overflows.
1042 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
1044 * config/rs6000/rs6000-string.c (expand_compare_loop,
1045 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
1048 2019-02-09 Jakub Jelinek <jakub@redhat.com>
1051 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1052 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
1053 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
1055 2019-02-09 Alan Modra <amodra@gmail.com>
1058 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
1059 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
1062 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
1065 * lra-constraints.c (process_alt_operands): Don't increase reject
1066 for memory when offset memory is required.
1068 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
1070 * config/s390/vector.md: Implement vector copysign.
1072 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1074 * expr.c (expand_constructor): Correct indentations.
1076 2019-02-08 Richard Biener <rguenther@suse.de>
1078 PR tree-optimization/89247
1079 * tree-if-conv.c: Include tree-cfgcleanup.h.
1080 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
1081 (tree_if_conversion): Pass through predicate vector.
1082 (pass_if_conversion::execute): Do CFG cleanup and SSA update
1083 inline, see if any if-converted loops we refrece in
1084 LOOP_VECTORIZED calls vanished and fixup.
1085 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
1087 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
1089 * config/s390/constraints.md (jdd): New constraint.
1091 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1094 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
1095 upper 16 vector registers without TARGET_AVX512VL.
1096 (*movti_internal): Likewise.
1098 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1100 PR rtl-optimization/89234
1101 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
1102 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
1103 (copy_reg_eh_region_note_backward): Likewise.
1105 2019-02-08 Richard Biener <rguenther@suse.de>
1108 * tree-data-ref.c (initialize_matrix_A): Fail if constant
1110 (analyze_subscript_affine_affine): Handle failure from
1111 initialize_matrix_A.
1113 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1115 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
1118 2019-02-07 David Malcolm <dmalcolm@redhat.com>
1120 PR tree-optimization/86637
1121 PR tree-optimization/89235
1122 * tree-vect-loop.c (optimize_mask_stores): Add an
1123 auto_purge_vect_location sentinel to ensure that vect_location is
1126 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
1127 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
1128 to ensure that vect_location is purged on exit.
1129 (pass_slp_vectorize::execute): Likewise, replacing the manual
1131 * tree-vectorizer.h (class auto_purge_vect_location): New class.
1133 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1135 * config/aarch64/iterators.md (max_opp): New code_attr.
1136 (USMAX): New code iterator.
1137 * config/aarch64/predicates.md (aarch64_smin): New predicate.
1138 (aarch64_smax): Likewise.
1139 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
1140 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
1143 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
1146 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
1147 for TARGET_AVX512VL.
1148 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
1150 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
1152 * config/s390/s390-builtin-types.def: Add new types.
1153 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
1154 (s390_vec_xlw4): Make the memory operand into a const pointer.
1155 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
1157 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
1158 a new vector type with the alignment of the scalar memory operand.
1160 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
1161 Jakub Jelinek <jakub@redhat.com>
1164 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
1165 arm_count_ldrdstrd_insns): New declarations.
1166 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
1168 (valid_operands_ldrd_strd): New function.
1169 (arm_count_ldrdstrd_insns): New function.
1170 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
1171 sets instead of single DImode set and define new insns to match this.
1173 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1175 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
1176 Make it a C initializer.
1178 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1181 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
1183 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1185 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
1186 Use neon_dot<q> for type.
1187 (neon_<sup>dot_lane<vsi2qi>): Likewise.
1189 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1191 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
1192 Use neon_dot<q> for type.
1193 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
1194 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
1196 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
1198 PR rtl-optimization/89225
1199 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
1202 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
1204 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
1205 after restoring registers saved to allocate the frame on Windows.
1207 2019-02-06 Richard Biener <rguenther@suse.de>
1209 PR tree-optimization/89182
1210 * graphite.h (cached_scalar_evolution_in_region): Declare.
1211 * graphite.c (struct seir_cache_key): New.
1212 (struct sese_scev_hash): Likewise.
1213 (seir_cache): New global.
1214 (cached_scalar_evolution_in_region): New function.
1215 (graphite_transform_loops): Allocate and release seir_cache.
1216 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
1217 cached_scalar_evolution_in_region.
1218 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1220 (scop_detection::graphite_can_represent_expr: Use
1221 cached_scalar_evolution_in_region.
1222 (scop_detection::stmt_simple_for_scop_p): Likewise.
1223 (find_params_in_bb): Likewise.
1224 (gather_bbs::before_dom_children): Likewise.
1225 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
1226 (add_loop_constraints): Likewise.
1228 2019-02-06 Jakub Jelinek <jakub@redhat.com>
1231 * fold-const-call.c (fold_const_vec_convert): Pass true as last
1232 operand to new_unary_operation only if both element types are integral
1233 and it isn't a widening conversion. Return NULL_TREE if
1234 new_unary_operation failed.
1236 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
1239 * config/s390/s390.md: Remove load and test FP splitter.
1241 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1244 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
1245 expand_compare_loop, expand_block_compare_gpr,
1246 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
1247 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
1248 #include "profile-count.h" and "predict.h" for types and functions
1249 needed to work with REG_BR_PROB notes.
1251 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1254 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
1255 for the long branch case.
1257 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1260 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
1261 can throw, non-call exceptions are enabled and we can't delete
1262 dead exceptions or alter cfg. Set must_clean if
1263 delete_insn_and_edges returns true, don't set it blindly for calls.
1264 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
1266 PR rtl-optimization/89195
1267 * combine.c (make_extraction): For MEMs, don't extract bytes outside
1268 of the original MEM.
1270 2019-02-05 Martin Liska <mliska@suse.cz>
1272 PR gcov-profile/89000
1273 * gcov.c (function_summary): Remove argument.
1274 (file_summary): New function.
1275 (print_usage): Replace tabs with spaces.
1276 (generate_results): Use new function file_summary.
1278 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1281 * optabs.c (prepare_cmp_insn): Pass x and y to
1282 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
1284 2019-02-05 Richard Biener <rguenther@suse.de>
1287 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
1288 (struct bitmap_element): Drop chain_prev so we properly recurse on
1289 the prev member, supporting tree views.
1290 (struct bitmap_head): GTY skip the obstack member.
1292 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
1295 * doc/extend.texi (Vector Extensions): Add an example of using vector
1296 types together with x86 intrinsics.
1298 2019-02-04 Alan Modra <amodra@gmail.com>
1300 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
1301 str[] size to 160, and comment.
1303 2019-02-04 Alan Modra <amodra@gmail.com>
1305 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
1306 (rs6000_pltseq_template): Guard output of TLS markers with
1308 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
1309 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
1310 to use inline PLT sequences.
1311 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1312 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1313 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
1315 2019-02-04 Martin Liska <mliska@suse.cz>
1318 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
1319 out when ipa_fn_summaries does not contain entry for callee.
1321 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
1323 * config/sparc/sparc.h: Remove superfluous blank lines.
1324 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
1325 (got_register_rtx): ...this.
1326 (sparc_got): Adjust to above renaming.
1327 (sparc_tls_got): Likewise.
1328 (sparc_delegitimize_address): Likewise.
1329 (sparc_output_mi_thunk): Likewise.
1330 (sparc_init_pic_reg): Likewise.
1331 (save_local_or_in_reg_p): Fix test on the GOT register.
1332 (USE_HIDDEN_LINKONCE): Move around.
1333 (get_pc_thunk_name): Likewise.
1334 (gen_load_pcrel_sym): Likewise.
1335 (load_got_register): Likewise.
1337 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
1339 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
1340 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
1342 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1344 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
1347 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1349 * config.gcc (with_nds32_lib, glibc):
1350 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
1351 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
1352 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
1354 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
1357 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
1358 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
1359 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
1360 (*rcpsf2_sse): Ditto.
1361 (*rsqrtsf2_sse): Ditto.
1362 (sse4_1_round<mode<2): Ditto.
1364 2019-02-03 Richard Biener <rguenther@suse.de>
1367 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
1370 2019-02-02 Jakub Jelinek <jakub@redhat.com>
1373 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1374 Punt with warning on aggregate return or argument types. Ignore
1375 type/mode checking for uniform arguments.
1377 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
1379 * combine.c (try_combine): Do not print "Can't combine" messages unless
1380 printing failed combination attempts.
1382 2019-02-01 Martin Jambor <mjambor@suse.cz>
1385 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
1386 segment and global segment variables before making them static.
1388 2019-02-01 Martin Jambor <mjambor@suse.cz>
1390 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
1391 missed optimization dump with dump_enabled_p.
1393 2019-02-01 Richard Biener <rguenther@suse.de>
1396 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
1397 the instantiate cache.
1398 (instantiate_scev_binary): Elide second operand procesing
1399 if equal to the first.
1400 * tree-chrec.c (chrec_contains_symbols): Add visited set.
1401 (chrec_contains_undetermined): Likewise.
1402 (tree_contains_chrecs): Likewise.
1404 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
1406 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
1408 2019-02-01 Jakub Jelinek <jakub@redhat.com>
1410 PR tree-optimization/89143
1411 * wide-int-range.h (wide_int_range_absu): Declare.
1412 * wide-int-range.cc (wide_int_range_absu): New function.
1413 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
1415 PR tree-optimization/88107
1416 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
1417 instead of assertion that eh_region_outermost is non-NULL, if it
1418 is NULL, set *ALL to true and return NULL.
1419 (move_sese_region_to_fn): Adjust caller, if all is set, call
1420 duplicate_eh_regions with NULL region.
1422 2019-02-01 Richard Biener <rguenth@suse.de>
1424 PR rtl-optimization/88593
1425 * mode-switching.c (optimize_mode_switching): Free dominators before
1426 calling cleanup_cfg.
1428 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
1430 PR tree-optimization/88932
1431 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
1433 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1436 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
1437 bogus clang warning.
1439 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
1442 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
1443 alternative to avoid partial SSE register stall for TARGET_AVX.
1444 (truncdfsf2): Ditto.
1445 (sse4_1_round<mode>2): Ditto.
1447 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
1449 PR tree-optimization/89008
1450 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
1451 process anything of the form X * 0.
1453 2019-01-31 Richard Biener <rguenther@suse.de>
1455 PR tree-optimization/89135
1456 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
1457 with abnormal preds.
1459 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1462 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
1463 always_inline callees into no_sanitize_address callers.
1465 2019-01-31 Richard Biener <rguenther@suse.de>
1467 PR rtl-optimization/89115
1468 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
1470 2019-01-30 Martin Sebor <msebor@redhat.com>
1473 * doc/extend.texi (cast to a union): Correct and expand.
1475 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
1477 PR rtl-optimization/87246
1478 * lra-constraints.c (simplify_operand_subreg): Reload memory
1479 in subreg if the address became invalid.
1481 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
1484 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
1485 Disable for little-endian.
1487 2019-01-30 Richard Biener <rguenther@suse.de>
1489 PR rtl-optimization/89115
1490 * opts.c (default_options_optimization): Reduce
1491 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
1492 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
1495 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
1497 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
1498 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
1499 type of vector element when vec_extract is implemented by direct
1502 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
1504 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
1506 2019-01-30 Richard Biener <rguenther@suse.de>
1508 PR tree-optimization/89111
1509 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
1510 canonicalization to appropriately sized access types.
1512 2019-01-30 Jakub Jelinek <jakub@redhat.com>
1515 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
1516 for arguments to functions that are TU-local and shouldn't be
1517 referenced by assembly.
1519 2019-01-30 Ulrich Drepper <drepper@redhat.com>
1521 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
1524 2019-01-29 Martin Sebor <msebor@redhat.com>
1527 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
1529 2019-01-29 Jakub Jelinek <jakub@redhat.com>
1533 * omp-simd-clone.c (simd_clone_clauses_extract)
1534 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
1535 OMP_CLAUSE_ALIGNED_ALIGNMENT.
1537 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
1539 * config.gcc: Force .init_array for ARC.
1541 2019-01-29 Richard Biener <rguenther@suse.de>
1544 * dwarf2out.c (collect_skeleton_dies): New helper.
1545 (copy_decls_for_unworthy_types): Call it.
1546 (build_abbrev_table): Assert we do not try to replace
1547 DW_AT_signature refs with local refs.
1549 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1552 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
1553 for lastprivate/linear IV, push gimplify context around gimplify_assign
1554 and, if it needed any temporaries, pop it into a gimple bind around the
1557 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
1559 * common.opt (-Wattribute-alias): Remove "no-" from name.
1560 Make -Wattribute-alias command line option and
1561 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
1563 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1566 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
1567 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
1569 (bmi2): Add missing @opindex.
1570 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
1571 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
1572 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
1573 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
1574 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
1575 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
1576 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
1577 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
1578 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
1579 xsavec, xsaveopt and xsaves options.
1581 2019-01-28 Richard Biener <rguenther@suse.de>
1584 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
1587 2019-01-28 Richard Biener <rguenther@suse.de>
1589 PR tree-optimization/88739
1590 * tree-cfg.c (verify_types_in_gimple_reference): Verify
1591 BIT_FIELD_REFs only are applied to mode-precision operands
1592 when they are integral.
1593 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
1594 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
1595 BIT_FIELD_REFs of non-mode-precision integral operands.
1597 2019-01-27 Jakub Jelinek <jakub@redhat.com>
1600 * config/i386/sse.md
1601 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
1602 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
1603 first constants in pairs are multiples of 2. Formatting fixes.
1604 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
1605 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
1606 first constants in each quadruple are multiples of 4. Formatting fixes.
1608 2019-01-26 Martin Jambor <mjambor@suse.cz>
1611 * tree-inline.c: Include tree-cfgcleanup.h.
1612 (delete_unreachable_blocks_update_callgraph): Move...
1613 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
1614 ...here, make externally visible, make second argument bool, adjust
1616 * tree-cfgcleanup.c: Include cgraph.h.
1617 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
1619 * ipa-prop.c: Include tree-cfgcleanup.h.
1620 (ipcp_transform_function): Call
1621 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
1623 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
1625 PR rtl-optimization/88846
1626 * ira.c (process_set_for_memref_referenced_p): New.
1627 (memref_referenced_p): Add new param. Use
1628 process_set_for_memref_referenced_p. Add new switch cases.
1629 (memref_used_between_p): Pass new arg to memref_referenced_p.
1631 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
1634 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
1635 argument ABI_BREAK. Set to true if the calculated alignment has
1636 changed in gcc-9. Check bit-fields for their base type alignment.
1637 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
1638 (aarch64_function_arg_boundary): Likewise.
1639 (aarch64_gimplify_va_arg_expr): Likewise.
1641 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1644 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
1645 instead of accessing TREE_INT_CST_ELT directly.
1647 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
1649 * doc/sourcebuild.texi (Environment attributes): Add fenv and
1650 fenv_exceptions description.
1652 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
1654 PR rtl-optimization/87763
1655 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
1656 Allow SUBREG when matching CC_NZmode compare.
1658 2019-01-25 Richard Biener <rguenther@suse.de>
1660 PR tree-optimization/89049
1661 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
1662 Look at the pattern stmt to determine if the stmt is vectorized.
1664 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1666 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
1667 (pred_mov<mode>): Handle all-register forms using both a new
1668 alternative and a split.
1670 2019-01-25 Richard Biener <rguenther@suse.de>
1672 PR tree-optimization/86865
1673 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1674 Reject non-do-while loops.
1676 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
1678 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
1679 * config/rs6000/constraints.md (Q constraint): Use REG_P.
1680 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
1681 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1682 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
1683 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1684 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
1685 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
1686 vlogical_operand, gpc_reg_operand, int_reg_operand,
1687 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
1688 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
1689 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
1690 (save_world_operation, restore_world_operation, lmw_operation,
1691 stmw_operation): Use MEM_P and REG_P.
1692 (tie_operand): Use MEM_P.
1693 (vrsave_operation, crsave_operation): Use REG_P.
1694 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
1695 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
1696 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
1697 (call_operand): Use HARD_REGISTER_P.
1698 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
1700 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
1701 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
1702 quad_aligned_load_p, replace_swapped_aligned_store,
1703 recombine_lvx_pattern, replace_swapped_aligned_load,
1704 recombine_stvx_pattern): Use MEM_P.
1705 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
1706 Use MEM_P and SYMBOL_REF_P.
1707 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
1708 (insn_is_swappable_p): Use REG_P and MEM_P.
1709 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
1710 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
1712 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1714 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1716 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
1717 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
1718 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
1719 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
1721 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1722 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
1723 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
1724 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
1725 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
1726 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
1727 rs6000_split_logical_di): Use CONST_INT_P.
1728 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
1729 REG_P and SYMBOL_REF_P.
1730 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
1731 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
1732 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
1733 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
1734 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
1735 (small_data_operand, print_operand_address): Use CONST_INT_P and
1737 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
1738 (rs6000_init_hard_regno_mode_ok, direct_move_p):
1739 Use HARD_REGISTER_NUM_P.
1740 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
1741 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
1742 SUBREG_P and SYMBOL_REF_P.
1743 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
1744 and HARD_REGISTER_NUM_P.
1745 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
1747 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1748 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1750 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
1751 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
1752 find_addr_reg): Use REG_P.
1753 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
1754 (rs6000_emit_le_vsx_move): Use SUBREG_P.
1755 (offsettable_ok_by_alignment, constant_pool_expr_p,
1756 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
1757 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
1758 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
1759 rs6000_assemble_integer, create_TOC_reference,
1760 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
1761 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
1762 (rs6000_split_vec_extract_var): Use reg_or_subregno.
1763 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1764 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1765 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1766 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1767 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
1768 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
1769 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
1770 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
1771 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
1772 and cbranch<mode>4): Use CONST_INT_P.
1773 (multiple define_splits): Use REG_P and SUBREG_P.
1774 (define_expands call, call_value): Use MEM_P.
1775 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
1776 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
1777 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
1778 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
1779 and HARD_REGISTER_NUM_P.
1780 (multiple define_splits): Use HARD_REGISTER_NUM_P.
1782 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1784 PR rtl-optimization/88948
1785 * rtl.h (prepare_copy_insn): New prototype.
1786 * gcse.c (prepare_copy_insn): New function, split out from
1787 process_insert_insn.
1788 (process_insert_insn): Use prepare_copy_insn.
1789 * store-motion.c (replace_store_insn): Use prepare_copy_insn
1790 instead of gen_move_insn.
1792 2019-01-24 Jakub Jelinek <jakub@redhat.com>
1795 * config/i386/i386.c (ix86_pic_register_p): Return true for
1798 PR tree-optimization/88964
1799 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1800 punt if HONOR_SNANS (chrec).
1803 * tree-nested.c (convert_nonlocal_reference_stmt,
1804 convert_local_reference_stmt, convert_tramp_reference_stmt,
1805 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
1806 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
1809 PR tree-optimization/89027
1810 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
1811 for "omp simd array" variables.
1813 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
1816 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
1817 force the alignment of m_val.
1819 2019-01-24 Richard Biener <rguenther@suse.de>
1822 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
1823 When in "legacy" debug mode make sure to reset self-origins.
1825 2019-01-24 Martin Liska <mliska@suse.cz>
1827 PR gcov-profile/88994
1828 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
1829 result will be always smaller or equal to the original.
1830 * gcov.c (mangle_name): Fix else branch where we should
1831 also copy to PTR and shift the pointer.
1833 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
1835 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
1836 * vr-values.c (find_case_label_ranges): Fix a comment typo.
1838 2019-01-23 Bin Cheng <bin.cheng@arm.com>
1839 Steve Ellcey <sellcey@marvell.com>
1842 * recog.c (address_operand): Return false on wrong mode for address.
1843 (constrain_operands): Check for mode with 'p' constraint.
1845 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
1848 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
1849 Disparage MMX alternative.
1850 (sse2_cvtpd2pi): Ditto.
1851 (sse2_cvttpd2pi): Ditto.
1853 2019-01-23 David Malcolm <dmalcolm@redhat.com>
1856 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
1857 use-after-free of the result of
1858 aarch64_get_extension_string_for_isa_flags.
1860 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1863 * doc/extend.texi: Document break and continue behavior in
1864 statement expressions.
1866 2019-01-23 Richard Biener <rguenther@suse.de>
1868 PR tree-optimization/89008
1869 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
1870 not leave another stray operand.
1872 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1874 * BASE-VER: Bump to 9.0.1.
1876 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
1878 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
1879 thunk that returns by reference, use the type of the return object
1880 of the thunk instead of that of the alias to build the dereference.
1882 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
1884 * config/arc/atomic.md: Add operand to DMB instruction.
1886 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1888 PR tree-optimization/88964
1889 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
1890 build_zero_cst instead of build_int_cst. Return false for loop
1891 invariants which honor signed zeros.
1893 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
1895 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
1897 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1900 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
1901 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
1902 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
1905 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
1906 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
1909 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
1910 Disable for little endian.
1912 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1915 * config/arm/arm.c (arm_needs_double_word_align): Check
1916 DECL_BIT_FIELD_TYPE.
1918 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
1919 H.J. Lu <hongjiu.lu@intel.com>
1922 * config/i386/i386-builtin.def: Add mask2 to all builtin
1923 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
1925 * config/i386/i386.c (BDESC): Add mask2 to the definition.
1926 (BDESC_FIRST): Likewise.
1927 (define_builtin): Add an argument for mask2. Updated to handle
1928 both ix86_isa_flags and ix86_isa_flags2.
1929 (define_builtin_const): Likewise.
1930 (define_builtin_pure): Likewise.
1931 (define_builtin2): Deleted.
1932 (define_builtin_const2): Likewise.
1933 (builtin_description): Add a member, mask2.
1934 (bdesc_*): Add mask2 to builtin initializations.
1935 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
1936 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
1938 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
1940 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
1943 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
1946 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1949 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
1950 alignment is dominated by a bitfield with 64-bit aligned base type.
1951 (arm_function_arg): Emit a warning if the alignment has changed since
1952 earlier GCC releases.
1953 (arm_function_arg_boundary): Likewise.
1954 (arm_setup_incoming_varargs): Likewise.
1956 2019-01-22 Richard Biener <rguenther@suse.de>
1958 PR tree-optimization/88862
1959 * graphite-scop-detection.c
1960 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
1962 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
1964 * doc/extend.tex (AMD GCN Function Attributes): New section.
1965 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
1966 * doc/invoke.texi (AMD GCN Options): New section.
1967 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
1969 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
1971 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
1972 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
1974 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1976 PR tree-optimization/88044
1977 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
1978 is false in the first iteration, but !every_iteration, return false
1979 instead of true with niter->niter zero.
1981 PR rtl-optimization/88904
1982 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
1983 any nonequal registers before processing BB_END (b).
1986 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
1988 (expand_binop_directly, expand_doubleword_clz,
1989 expand_doubleword_popcount, expand_ctz, expand_ffs,
1990 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
1992 PR rtl-optimization/49429
1994 PR rtl-optimization/86334
1996 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
1997 addressable from here...
1998 (emit_block_op_via_libcall): ... to here.
2000 2019-01-22 Richard Biener <rguenther@suse.de>
2002 * tree-vect-loop.c (vect_analyze_loop_operations): Use
2003 auto_vec for cost vector to fix memleak.
2004 (vectorize_fold_left_reduction): Properly gather SLP defs.
2005 (vectorizable_comparison): Do not swap operands to properly
2008 2019-01-22 Alan Modra <amodra@gmail.com>
2011 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
2012 stays a reg. Allow a const_int.
2013 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
2014 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
2015 (IS_NOMARK_TLSGETADDR): Define.
2016 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
2017 (rs6000_output_tlsargs): New function.
2018 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
2019 __tls_get_addr call takes an arg.
2020 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
2021 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
2023 (call_value_nonlocal_sysv): ..or here, delete split.
2024 (tls_gdld_nomark): Delete.
2025 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
2026 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
2027 (call_value_nonlocal_sysv): Likewise.
2028 (call_value_nonlocal_sysv_secure): Likewise.
2029 (call_value_nonlocal_aix): Likewise.
2030 (call_value_indirect_aix): Likewise.
2031 (call_value_indirect_elfv2): Likewise.
2032 (call_value_local32, call_value_local64): Disable for no-mark tls.
2033 (call_value_local_aix): Likewise.
2035 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
2038 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
2039 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
2041 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
2043 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
2044 string contents as hash_map keys.
2046 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2049 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
2050 for rvalue context. Handle rvalues correctly. Use min_align_of_type
2051 instead of TYPE_ALIGN.
2052 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
2053 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
2054 pointer from TYPE_STUB_DECL.
2056 2019-01-21 Richard Biener <rguenther@suse.de>
2058 PR tree-optimization/88934
2059 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
2060 at the possibly non-constant operand.
2061 (vect_get_constant_vectors): Adjust.
2063 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
2066 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
2067 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
2068 instead of _X86INTRIN_H_INCLUDED.
2069 * onfig/i386/clwbintrin.h: Likewise.
2070 * config/i386/pkuintrin.h: Likewise.
2071 * config/i386/prfchwintrin.h: Likewise.
2072 * config/i386/rdseedintrin.h: Likewise.
2073 * config/i386/wbnoinvdintrin.h: Likewise.
2074 * config/i386/xsavecintrin.h: Likewise.
2075 * config/i386/xsavesintrin.h: Likewise.
2076 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
2077 * config/i386/xsaveintrin.h: Likewise.
2078 * config/i386/xsaveoptintrin.h: Likewise.
2079 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
2080 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
2081 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
2082 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
2083 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
2084 * config/i386/immintrin.h: Here.
2086 2019-01-20 Martin Jambor <mjambor@suse.cz>
2089 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
2090 with aa_walk_budget.
2091 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
2092 aa_walk_budget_p parameter.
2093 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
2094 walk. Updated all callers.
2095 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
2096 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
2098 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
2099 parameter info. Extract info from fbi. Pass fbi to recursive calls
2100 and to unmodified_parm.
2101 (phi_result_unknown_predicate): New parameter fbi, removed parameter
2102 info, updated call to will_be_nonconstant_expr_predicate.
2103 (param_change_prob): New parameter fbi, limit AA walking.
2104 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
2105 calls to various above functions.
2106 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
2107 parameter. Use it to limit AA walking.
2108 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
2110 (detect_type_change): New parameter fbi, pass it on to
2111 detect_type_change_from_memory_writes.
2112 (detect_type_change_ssa): Likewise.
2113 (aa_overwalked): Removed.
2114 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
2115 accordingly, adjust to the neew AA limiting scheme.
2116 (parm_ref_data_preserved_p): Likewise.
2117 (ipa_compute_jump_functions_for_edge): Adjust call to
2119 (ipa_analyze_call_uses): Likewise.
2120 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
2121 (ipa_analyze_node): Initialize aa_walk_budget.
2122 (ipcp_transform_function): Likewise.
2123 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
2124 to get_dynamic_type.
2126 2019-01-19 Jakub Jelinek <jakub@redhat.com>
2128 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
2129 outside of #if CHECKING_P code.
2131 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
2133 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
2134 New function, split out from...
2135 (loop_versioning::analyze_stride): ...here.
2136 (loop_versioning::find_per_loop_multiplication): Use gassign.
2137 (loop_versioning::analyze_term_using_scevs): Return a success code.
2138 (loop_versioning::analyze_arbitrary_term): New function.
2139 (loop_versioning::analyze_address_fragment): Use
2140 analyze_arbitrary_term if all else fails.
2142 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
2145 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
2148 2019-01-18 Richard Biener <rguenther@suse.de>
2150 PR tree-optimization/88903
2151 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
2152 scalar stmts a SLP shift amount is composed of when detecting
2155 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
2158 * config/arm/arm-cpus.in (mp): New feature.
2160 (fgroup ARMv7ve): Add mp and sec features.
2161 (arch armv7-a): Add options to allow mp and sec extensions.
2162 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
2163 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
2164 extenstions to the base architecture.
2165 (cpu cortex-a8): Add sec extension to the base architecture.
2166 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
2167 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
2168 variants down to the base v7-a varaint.
2169 * config/arm/t-multilib (v7_a_arch_variants): New variable.
2170 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
2171 of permitted extensions for -march=armv7-a and for
2172 -mcpu=generic-armv7-a.
2174 2019-01-18 Martin Liska <mliska@suse.cz>
2176 * params.def: Fix comment.
2177 * tree-profile.c (gimple_init_gcov_profiler): Bump function
2179 (gimple_gen_ic_func_profiler): Likewise.
2181 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2183 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
2184 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
2185 and put in error checks for stack protector guard options.
2186 (aarch64_stack_protect_guard): New.
2187 (TARGET_STACK_PROTECT_GUARD): Define.
2188 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
2189 (reg_stack_protect_address<mode>): New.
2190 (stack_protect_set): Adjust for SSP_GLOBAL.
2191 (stack_protect_test): Likewise.
2192 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
2193 (-mstack-protector-guard): Likewise.
2194 (-mstack-protector-guard-offset): Likewise.
2196 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2198 PR tree-optimization/86214
2199 * tree-inline.h (struct copy_body_data): Add
2200 add_clobbers_to_eh_landing_pads member.
2201 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
2202 (copy_edges_for_bb): Call it if EH edge destination is <
2203 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
2204 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
2205 if flag_stack_reuse != SR_NONE and clear it afterwards.
2207 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
2210 * doc/install.texi (with-multilib-list): Document for aarch64.
2212 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2215 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
2216 (("..."))) with ("...").
2218 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
2220 * doc/extend.texi (Built-in Functions for Memory Model Aware
2221 Atomic Operations): Document atomic fetch and nand.
2223 2019-01-18 Martin Liska <mliska@suse.cz>
2224 Richard Biener <rguenther@suse.de>
2227 * cgraph.h (create_version_clone_with_body): Add new argument
2229 * cgraphclones.c (cgraph_node::create_version_clone): Add
2230 DECL_ATTRIBUTES to a newly created decl. And call
2231 valid_attribute_p so that proper cl_target_optimization_node
2232 is set for the newly created declaration.
2233 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
2235 (expand_target_clones): Do not call valid_attribute_p, it must
2237 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
2240 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2243 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
2244 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
2245 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
2247 2019-01-17 Martin Sebor <msebor@redhat.com>
2250 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
2251 Handle anti-ranges the same as no range at all.
2253 2018-01-17 Steve Ellcey <sellcey@cavium.com>
2255 * config/aarch64/aarch64.c (cgraph.h): New include.
2256 (intl.h): New include.
2257 (supported_simd_type): New function.
2258 (currently_supported_simd_type): Ditto.
2259 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
2260 (aarch64_simd_clone_adjust): Ditto.
2261 (aarch64_simd_clone_usable): Ditto.
2262 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
2263 (TARGET_SIMD_CLONE_ADJUST): Ditto.
2264 (TARGET_SIMD_CLONE_USABLE): Ditto.
2265 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
2266 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
2269 2019-01-17 Martin Sebor <msebor@redhat.com>
2271 PR tree-optimization/88800
2272 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
2273 NO_WARNING bit here. Avoid folding out-of-bounds calls.
2274 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
2275 redundant argument. Add new argument and issue diagnostics under
2276 its control. Detect out-of-bounds access even with warnings
2278 (check_bounds_or_overlap): Change return type. Add argument.
2279 (wrestrict_dom_walker::check_call): Adjust.
2280 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
2281 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
2282 check_bounds_or_overlap's return value.
2283 (handle_builtin_stxncpy): Same.
2284 (handle_builtin_strcat): Same.
2286 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2287 Kwok Cheung Yeung <kcy@codesourcery.com>
2288 Julian Brown <julian@codesourcery.com>
2289 Tom de Vries <tom@codesourcery.com>
2291 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
2293 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2295 * doc/sourcebuild.texi: Document dg-require-effective-target
2296 llvm_binutils and offload_gcn.
2298 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2299 Kwok Cheung Yeung <kcy@codesourcery.com>
2300 Julian Brown <julian@codesourcery.com>
2301 Tom de Vries <tom@codesourcery.com>
2303 * doc/sourcebuild.texi: Document dg-required-effective-target
2306 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2307 Kwok Cheung Yeung <kcy@codesourcery.com>
2308 Julian Brown <julian@codesourcery.com>
2309 Tom de Vries <tom@codesourcery.com>
2310 Jan Hubicka <hubicka@ucw.cz>
2311 Martin Jambor <mjambor@suse.cz>
2313 * config.gcc: Add amdgcn*-*-amdhsa configuration.
2314 * configure.ac: Check for dlopen.
2315 * configure: Regenerate.
2317 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2318 Kwok Cheung Yeung <kcy@codesourcery.com>
2319 Julian Brown <julian@codesourcery.com>
2320 Tom de Vries <tom@codesourcery.com>
2321 Jan Hubicka <hubicka@ucw.cz>
2322 Martin Jambor <mjambor@suse.cz>
2324 * common/config/gcn/gcn-common.c: New file.
2325 * config/gcn/driver-gcn.c: New file.
2326 * config/gcn/gcn-builtins.def: New file.
2327 * config/gcn/gcn-hsa.h: New file.
2328 * config/gcn/gcn-modes.def: New file.
2329 * config/gcn/gcn-opts.h: New file.
2330 * config/gcn/gcn-passes.def: New file.
2331 * config/gcn/gcn-protos.h: New file.
2332 * config/gcn/gcn-run.c: New file.
2333 * config/gcn/gcn-tree.c: New file.
2334 * config/gcn/gcn.c: New file.
2335 * config/gcn/gcn.h: New file.
2336 * config/gcn/gcn.opt: New file.
2337 * config/gcn/t-gcn-hsa: New file.
2339 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2340 Kwok Cheung Yeung <kcy@codesourcery.com>
2341 Julian Brown <julian@codesourcery.com>
2342 Tom de Vries <tom@codesourcery.com>
2343 Jan Hubicka <hubicka@ucw.cz>
2344 Martin Jambor <mjambor@suse.cz>
2346 * config/gcn/constraints.md: New file.
2347 * config/gcn/gcn-valu.md: New file.
2348 * config/gcn/gcn.md: New file.
2349 * config/gcn/predicates.md: New file.
2351 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
2353 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
2354 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
2355 (stmt_uses_0_or_null_in_undefined_way): Likewise.
2356 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
2358 2019-01-17 Tamar Christina <tamar.christina@arm.com>
2361 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
2362 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
2363 it and document registers.
2365 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2367 * config/aarch64/aarch64.c (ares_tunings): Define.
2368 * config/aarch64/aarch64-cores.def (ares): Use the above.
2370 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2374 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
2376 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
2377 (_mm512_fixupimm_round_pd): Update parameters and builtin.
2378 (_mm512_maskz_fixupimm_round_pd): Ditto.
2379 (_mm512_fixupimm_round_ps): Ditto.
2380 (_mm512_maskz_fixupimm_round_ps): Ditto.
2381 (_mm_fixupimm_round_sd): Ditto.
2382 (_mm_maskz_fixupimm_round_sd): Ditto.
2383 (_mm_fixupimm_round_ss): Ditto.
2384 (_mm_maskz_fixupimm_round_ss): Ditto.
2385 (_mm512_fixupimm_pd): Ditto.
2386 (_mm512_maskz_fixupimm_pd): Ditto.
2387 (_mm512_fixupimm_ps): Ditto.
2388 (_mm512_maskz_fixupimm_ps): Ditto.
2389 (_mm_fixupimm_sd): Ditto.
2390 (_mm_maskz_fixupimm_sd): Ditto.
2391 (_mm_fixupimm_ss): Ditto.
2392 (_mm_maskz_fixupimm_ss): Ditto.
2393 (_mm512_mask_fixupimm_round_pd): Update builtin.
2394 (_mm512_mask_fixupimm_round_ps): Ditto.
2395 (_mm_mask_fixupimm_round_sd): Ditto.
2396 (_mm_mask_fixupimm_round_ss): Ditto.
2397 (_mm512_mask_fixupimm_pd): Ditto.
2398 (_mm512_mask_fixupimm_ps): Ditto.
2399 (_mm_mask_fixupimm_sd): Ditto.
2400 (_mm_mask_fixupimm_ss): Ditto.
2401 * config/i386/avx512vlintrin.h:
2402 (_mm256_fixupimm_pd): Update parameters and builtin.
2403 (_mm256_maskz_fixupimm_pd): Ditto.
2404 (_mm256_fixupimm_ps): Ditto.
2405 (_mm256_maskz_fixupimm_ps): Ditto.
2406 (_mm_fixupimm_pd): Ditto.
2407 (_mm_maskz_fixupimm_pd): Ditto.
2408 (_mm_fixupimm_ps): Ditto.
2409 (_mm_maskz_fixupimm_ps): Ditto.
2410 (_mm256_mask_fixupimm_pd): Update builtin.
2411 (_mm256_mask_fixupimm_ps): Ditto.
2412 (_mm_mask_fixupimm_pd): Ditto.
2413 (_mm_mask_fixupimm_ps): Ditto.
2414 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
2415 * config/i386/i386-builtin.def: Update builtin definitions.
2416 * config/i386/i386.c: Handle new builtin types and remove useless ones.
2417 * config/i386/sse.md: Update VFIXUPIMM* patterns.
2418 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2419 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2420 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
2421 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2422 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2423 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
2424 * config/i386/subst.md:
2425 (round_saeonly_sd_mask_operand4): Add new subst_attr.
2426 (round_saeonly_sd_mask_op4): Ditto.
2427 (round_saeonly_expand_operand5): Ditto.
2428 (round_saeonly_expand): Update.
2430 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2434 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
2436 * config/i386/sse.md: Combine VFIXUPIMM* patterns
2437 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2438 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2439 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
2440 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2441 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2442 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
2444 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2448 2018-12-15 Jakub Jelinek <jakub@redhat.com>
2451 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
2452 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
2453 instead of UNSPEC_FIXUPIMM.
2455 2019-01-17 Richard Biener <rguenther@suse.de>
2458 * dwarf2out.c (want_pubnames): Never generate pubnames sections
2459 and friends for the LTO part of debug info.
2461 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2463 PR tree-optimization/86214
2464 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
2467 PR rtl-optimization/88870
2468 * dce.c (deletable_insn_p): Never delete const/pure calls that can
2469 throw if we can't alter the cfg or delete dead exceptions.
2470 (mark_insn): Don't call find_call_stack_args for such calls.
2472 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
2474 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
2475 prototypes for vec_st.
2476 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
2477 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
2478 mainly on signed/unsigned long long and double.
2480 2019-01-16 David Malcolm <dmalcolm@redhat.com>
2483 * combine.c (delete_noop_moves): Convert to "bool" return,
2484 returning true if any edges are eliminated.
2485 (combine_instructions): Also return true if delete_noop_moves
2488 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2490 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
2491 correct max nunits for endian swap.
2492 (aarch64_expand_fcmla_builtin): Correct subreg code.
2493 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2494 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
2497 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
2499 * config/alpha/alpha.c (alpha_gimplify_va_arg):
2500 Handle split indirect COMPLEX_TYPE arguments.
2502 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
2505 * config/aarch64/aarch64-modes.def: Add comment about how the carry
2506 bit is set by add and compare.
2507 (CC_ADC): New CC_MODE.
2508 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
2509 to cache the code and mode of X. Adjust the shape of a CC_Cmode
2510 comparison. Add detection for CC_ADCmode.
2511 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
2513 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
2514 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
2515 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
2516 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
2517 to eliminate the need for zero-extending the operands.
2518 (add<mode>3_compareC_imm): Delete. Merge into ...
2519 (add<mode>3_compareC): ... this. Restructure the comparison to
2520 eliminate the need for zero-extending the operands.
2521 (add<mode>3_carryin): Use LTU for the overflow detection.
2522 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
2523 Reexpress comparison for overflow.
2524 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
2525 (add<mode>3_carryinC): Likewise.
2526 (add<mode>3_carryinV): Use LTU for carry between partials.
2527 * config/aarch64/predicates.md (aarch64_carry_operation): Update
2528 handling of CC_Cmode and add CC_ADCmode.
2529 (aarch64_borrow_operation): Likewise.
2531 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2533 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
2534 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
2535 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
2536 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
2538 2019-01-16 Martin Liska <mliska@suse.cz>
2540 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
2542 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
2544 * gcc.c (add_sysrooted_hdrs_prefix): New function.
2545 (path_prefix_reset): Move up in the source file.
2546 (find_fortran_preinclude_file): Make complex search for the
2547 fortran header files.
2549 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
2551 * godump.c (go_output_typedef): When outputting a typedef, refer
2552 to the underlying type by its name and not its structure.
2554 2019-01-15 David Malcolm <dmalcolm@redhat.com>
2557 * tree.c (build_function_type): Assert that arg_types is not
2560 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
2563 * doc/extend.texi: Document that listing the stack pointer in the
2564 clobber list of an asm is a deprecated feature.
2565 * common.opt (Wdeprecated): Moved from c-family/c.opt.
2566 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
2567 warning instead of an error for clobbers of the stack pointer.
2568 Add a note explaining why.
2570 2019-01-15 Richard Biener <rguenther@suse.de>
2573 * dwarf2out.c (gen_member_die): Do not generate inheritance
2576 2019-01-15 Richard Biener <rguenther@suse.de>
2578 PR tree-optimization/88855
2579 * tree-if-conv.c (combine_blocks): Collect
2580 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
2582 2019-01-15 Tom de Vries <tdevries@suse.de>
2585 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
2586 lhs == NULL_TREE for gang-level reduction.
2588 2019-01-15 Richard Biener <rguenther@suse.de>
2589 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2592 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
2593 return true if SSA_NAME is already marked in visited bitmap.
2594 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
2596 2019-01-15 Jakub Jelinek <jakub@redhat.com>
2598 PR tree-optimization/88775
2599 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
2600 equal == 0 equality pointer comparisons some more if compared in
2601 integral types and either one points to an automatic var and the
2602 other to a global, or we can prove at least one points to the middle
2603 or both point to start or both point to end.
2605 2019-01-14 Andi Kleen <ak@linux.intel.com>
2607 * Makefile.in: Lower autofdo sampling rate by 10x.
2608 * Makefile.tpl: Dito.
2610 2019-01-14 Tom Honermann <tom@honermann.net>
2612 * defaults.h: Define CHAR8_TYPE.
2614 2019-01-14 Martin Sebor <msebor@redhat.com>
2617 * doc/extend.texi (Darwin Format Checks): Clarify.
2619 2019-01-14 Richard Biener <rguenther@suse.de>
2621 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
2622 whether we are in (simplify ...) or (match ...) context.
2624 2019-01-14 Jakub Jelinek <jakub@redhat.com>
2626 PR rtl-optimization/88796
2627 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
2628 * cfgexpand.c (stack_protect_prologue): Initialize
2629 crtl->stack_protect_guard_decl.
2630 * function.c (stack_protect_epilogue): Use it instead of calling
2631 targetm.stack_protect_guard again.
2632 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
2633 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
2634 crtl->stack_protect_guard_decl.
2635 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
2636 on the returned MEM_EXPR.
2638 2019-01-12 Tom de Vries <tdevries@suse.de>
2640 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
2641 vector length using -fopenacc-dim.
2643 2019-01-12 Tom de Vries <tdevries@suse.de>
2645 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
2646 lengths into account.
2648 2019-01-12 Svante Signell <svante.signell@gmail.com>
2650 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
2651 (TARGET_CAN_SPLIT_STACK): Define.
2652 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2654 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2656 * params.def (inline-unit-growth): Set to 40.
2658 2019-01-12 Jakub Jelinek <jakub@redhat.com>
2660 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
2662 2019-01-12 Tom de Vries <tdevries@suse.de>
2664 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
2665 region calling vector-partitionable routine, set default_vector_length
2668 2019-01-12 Tom de Vries <tdevries@suse.de>
2670 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
2671 variable default_vector_length.
2673 2019-01-12 Tom de Vries <tdevries@suse.de>
2676 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
2677 from oacc_default_dims, as oacc_validate_dims would do it, and apply
2680 2019-01-12 Tom de Vries <tdevries@suse.de>
2682 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
2683 (nvptx_goacc_validate_dims): Add used parameter.
2684 * doc/tm.texi: Regenerate.
2685 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
2686 argument to call to targetm.goacc.validate_dims.
2687 (default_goacc_validate_dims): Add used
2689 * target.def (validate_dims): Add used parameter in DEFHOOK.
2690 * targhooks.h (default_goacc_validate_dims): Add used parameter.
2692 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2696 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2698 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
2699 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
2700 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
2701 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
2703 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
2705 PR rtl-optimization/87305
2707 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2708 for little endian pseudos used as paradoxical subreg.
2710 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2712 PR tree-optimization/88693
2713 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
2714 for STRING_CSTs that don't contain any NUL characters in the first
2715 TREE_STRING_LENGTH bytes.
2717 2019-01-11 Alan Modra <amodra@gmail.com>
2721 * genattrtab.c (min_fn): Don't translate values.
2722 (min_attr_value): Return INT_MAX when the value can't be calculated.
2723 Return minimum among any values that can be calculated.
2724 (max_attr_value): Adjust.
2726 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2728 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2730 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2732 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2733 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
2734 (aarch64_return_call_with_max_clobbers): New function.
2735 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
2736 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
2738 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
2739 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
2740 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
2741 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
2742 * cselib.c (cselib_process_insn): Add argument to
2743 targetm.hard_regno_call_part_clobbered call.
2744 * ira-conflicts.c (ira_build_conflicts): Ditto.
2745 * ira-costs.c (ira_tune_allocno_costs): Ditto.
2746 * lra-constraints.c (inherit_reload_reg): Ditto.
2747 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
2748 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
2749 argument. Call targetm.return_call_with_max_clobbers.
2750 Add argument to targetm.hard_regno_call_part_clobbered call.
2751 (calls_have_same_clobbers_p): New function.
2752 (process_bb_lives): Add call_insn and last_call_insn variables.
2753 Pass call_insn to check_pseudos_live_through_calls.
2754 Modify if stmt to check targetm.return_call_with_max_clobbers.
2755 Update setting of flush variable.
2756 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
2758 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
2759 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
2760 targetm.hard_regno_call_part_clobbered call.
2761 * reginfo.c (choose_hard_reg_mode): Ditto.
2762 * regrename.c (check_new_reg_p): Ditto.
2763 * reload.c (find_equiv_reg): Ditto.
2764 * reload1.c (emit_reload_insns): Ditto.
2765 * sched-deps.c (deps_analyze_insn): Ditto.
2766 * sel-sched.c (init_regs_for_mode): Ditto.
2767 (mark_unavailable_hard_regs): Ditto.
2768 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
2769 * target.def (hard_regno_call_part_clobbered): Add insn argument.
2770 (return_call_with_max_clobbers): New target function.
2771 * doc/tm.texi: Regenerate.
2772 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
2773 * hooks.c (hook_bool_uint_mode_false): Change to
2774 hook_bool_insn_uint_mode_false.
2775 * hooks.h (hook_bool_uint_mode_false): Ditto.
2777 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2779 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2780 (aarch64_remove_extra_call_preserved_regs): New function.
2781 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
2782 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
2783 * doc/tm.texi: Regenerate.
2784 * final.c (get_call_reg_set_usage): Call new hook.
2785 * target.def (remove_extra_call_preserved_regs): New hook.
2786 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
2787 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
2789 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2792 * passes.c (finish_optimization_passes): Call print_combine_total_stats
2793 inside of pass_combine_1 dump rather than pass_profile_1.
2795 2019-01-11 Tom de Vries <tdevries@suse.de>
2797 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
2798 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
2799 (PTX_NUM_PER_WORKER_BARRIERS): Define.
2800 (nvptx_apply_dim_limits): Prevent vector_length 64 and
2803 2019-01-11 Tom de Vries <tdevries@suse.de>
2805 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2807 2019-01-11 Jan Beulich <jbeulich@suse.com>
2809 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
2810 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
2811 sse2_cvtsi2sd): Add {l}.
2812 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
2815 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2818 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
2820 (*float<floatunssuffix>v2div2sf2): New define_insn.
2821 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
2822 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
2823 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
2824 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
2825 match_operands with "const0_operand" "C".
2827 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2829 * config/aarch64/aarch64-builtins.c
2830 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
2831 (aarch64_init_simd_builtins): ...Here
2833 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
2835 PR rtl-optimization/87305
2837 (setup_live_pseudos_and_spill_after_risky_transforms): Check
2838 allocation for big endian pseudos used as paradoxical subregs and
2839 spill them if it is wrong.
2840 * lra-constraints.c (lra_constraints): Add a comment.
2842 2019-01-10 Richard Biener <rguenther@suse.de>
2844 PR tree-optimization/88792
2845 * tree-ssa-pre.c (get_representative_for): Do not return a
2848 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2852 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
2853 (assign_parm_setup_block): Do the argument slot realignment here
2856 2019-01-10 Stefan Agner <stefan@agner.ch>
2859 * config/arm/arm.c (arm_option_override_internal): Force
2860 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
2862 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2865 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
2868 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2870 * config/arm/arm-builtins.c
2871 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
2872 (MAC_LANE_PAIR_QUALIFIERS): New.
2873 (arm_expand_builtin_args): Use it.
2874 (arm_expand_builtin_1): Likewise.
2875 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
2876 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
2877 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
2878 * config/arm/arm_neon.h:
2879 (vcadd_rot90_f16): New.
2880 (vcaddq_rot90_f16): New.
2881 (vcadd_rot270_f16): New.
2882 (vcaddq_rot270_f16): New.
2885 (vcmla_lane_f16): New.
2886 (vcmla_laneq_f16): New.
2887 (vcmlaq_lane_f16): New.
2888 (vcmlaq_laneq_f16): New.
2889 (vcmla_rot90_f16): New.
2890 (vcmlaq_rot90_f16): New.
2891 (vcmla_rot90_lane_f16): New.
2892 (vcmla_rot90_laneq_f16): New.
2893 (vcmlaq_rot90_lane_f16): New.
2894 (vcmlaq_rot90_laneq_f16): New.
2895 (vcmla_rot180_f16): New.
2896 (vcmlaq_rot180_f16): New.
2897 (vcmla_rot180_lane_f16): New.
2898 (vcmla_rot180_laneq_f16): New.
2899 (vcmlaq_rot180_lane_f16): New.
2900 (vcmlaq_rot180_laneq_f16): New.
2901 (vcmla_rot270_f16): New.
2902 (vcmlaq_rot270_f16): New.
2903 (vcmla_rot270_lane_f16): New.
2904 (vcmla_rot270_laneq_f16): New.
2905 (vcmlaq_rot270_lane_f16): New.
2906 (vcmlaq_rot270_laneq_f16): New.
2907 (vcadd_rot90_f32): New.
2908 (vcaddq_rot90_f32): New.
2909 (vcadd_rot270_f32): New.
2910 (vcaddq_rot270_f32): New.
2913 (vcmla_lane_f32): New.
2914 (vcmla_laneq_f32): New.
2915 (vcmlaq_lane_f32): New.
2916 (vcmlaq_laneq_f32): New.
2917 (vcmla_rot90_f32): New.
2918 (vcmlaq_rot90_f32): New.
2919 (vcmla_rot90_lane_f32): New.
2920 (vcmla_rot90_laneq_f32): New.
2921 (vcmlaq_rot90_lane_f32): New.
2922 (vcmlaq_rot90_laneq_f32): New.
2923 (vcmla_rot180_f32): New.
2924 (vcmlaq_rot180_f32): New.
2925 (vcmla_rot180_lane_f32): New.
2926 (vcmla_rot180_laneq_f32): New.
2927 (vcmlaq_rot180_lane_f32): New.
2928 (vcmlaq_rot180_laneq_f32): New.
2929 (vcmla_rot270_f32): New.
2930 (vcmlaq_rot270_f32): New.
2931 (vcmla_rot270_lane_f32): New.
2932 (vcmla_rot270_laneq_f32): New.
2933 (vcmlaq_rot270_lane_f32): New.
2934 (vcmlaq_rot270_laneq_f32): New.
2935 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
2936 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
2937 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
2938 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
2939 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
2940 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
2941 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
2942 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
2943 (arm_option_reconfigure_globals): Use them.
2944 * config/arm/iterators.md (VDF, VQ_HSF): New.
2945 (VCADD, VCMLA): New.
2946 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
2947 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
2948 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
2949 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
2951 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2953 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
2954 (emit-rtl.h): Include.
2955 (TYPES_QUADOP_LANE_PAIR): New.
2956 (aarch64_simd_expand_args): Use it.
2957 (aarch64_simd_expand_builtin): Likewise.
2958 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
2959 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
2960 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
2961 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
2962 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
2963 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
2964 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
2965 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
2966 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
2967 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
2968 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
2969 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
2970 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
2971 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
2972 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
2973 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
2974 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2975 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
2976 aarch64_fcmla<rot><mode>): New.
2977 * config/aarch64/arm_neon.h:
2978 (vcadd_rot90_f16): New.
2979 (vcaddq_rot90_f16): New.
2980 (vcadd_rot270_f16): New.
2981 (vcaddq_rot270_f16): New.
2984 (vcmla_lane_f16): New.
2985 (vcmla_laneq_f16): New.
2986 (vcmlaq_lane_f16): New.
2987 (vcmlaq_rot90_lane_f16): New.
2988 (vcmla_rot90_laneq_f16): New.
2989 (vcmla_rot90_lane_f16): New.
2990 (vcmlaq_rot90_f16): New.
2991 (vcmla_rot90_f16): New.
2992 (vcmlaq_laneq_f16): New.
2993 (vcmla_rot180_laneq_f16): New.
2994 (vcmla_rot180_lane_f16): New.
2995 (vcmlaq_rot180_f16): New.
2996 (vcmla_rot180_f16): New.
2997 (vcmlaq_rot90_laneq_f16): New.
2998 (vcmlaq_rot270_laneq_f16): New.
2999 (vcmlaq_rot270_lane_f16): New.
3000 (vcmla_rot270_laneq_f16): New.
3001 (vcmlaq_rot270_f16): New.
3002 (vcmla_rot270_f16): New.
3003 (vcmlaq_rot180_laneq_f16): New.
3004 (vcmlaq_rot180_lane_f16): New.
3005 (vcmla_rot270_lane_f16): New.
3006 (vcadd_rot90_f32): New.
3007 (vcaddq_rot90_f32): New.
3008 (vcaddq_rot90_f64): New.
3009 (vcadd_rot270_f32): New.
3010 (vcaddq_rot270_f32): New.
3011 (vcaddq_rot270_f64): New.
3015 (vcmla_lane_f32): New.
3016 (vcmla_laneq_f32): New.
3017 (vcmlaq_lane_f32): New.
3018 (vcmlaq_laneq_f32): New.
3019 (vcmla_rot90_f32): New.
3020 (vcmlaq_rot90_f32): New.
3021 (vcmlaq_rot90_f64): New.
3022 (vcmla_rot90_lane_f32): New.
3023 (vcmla_rot90_laneq_f32): New.
3024 (vcmlaq_rot90_lane_f32): New.
3025 (vcmlaq_rot90_laneq_f32): New.
3026 (vcmla_rot180_f32): New.
3027 (vcmlaq_rot180_f32): New.
3028 (vcmlaq_rot180_f64): New.
3029 (vcmla_rot180_lane_f32): New.
3030 (vcmla_rot180_laneq_f32): New.
3031 (vcmlaq_rot180_lane_f32): New.
3032 (vcmlaq_rot180_laneq_f32): New.
3033 (vcmla_rot270_f32): New.
3034 (vcmlaq_rot270_f32): New.
3035 (vcmlaq_rot270_f64): New.
3036 (vcmla_rot270_lane_f32): New.
3037 (vcmla_rot270_laneq_f32): New.
3038 (vcmlaq_rot270_lane_f32): New.
3039 (vcmlaq_rot270_laneq_f32): New.
3040 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
3041 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
3042 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
3043 (FCADD, FCMLA): New.
3045 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
3047 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3051 * config/pa/pa.c: Change "can not" to "cannot".
3052 * gimple-ssa-evrp-analyze.c: Likewise.
3053 * ipa-icf.c: Likewise.
3054 * ipa-polymorphic-call.c: Likewise.
3055 * ipa-pure-const.c: Likewise.
3056 * lra-constraints.c: Likewise.
3057 * lra-remat.c: Likewise.
3058 * reload1.c: Likewise.
3059 * reorg.c: Likewise.
3060 * tree-ssa-uninit.c: Likewise.
3062 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3066 * Makefile.in: Mechanically replace "can not" with "cannot".
3067 * alias.c: Likewise.
3068 * builtins.c: Likewise.
3069 * calls.c: Likewise.
3070 * cgraph.c: Likewise.
3071 * cgraph.h: Likewise.
3072 * cgraphclones.c: Likewise.
3073 * cgraphunit.c: Likewise.
3074 * combine-stack-adj.c: Likewise.
3075 * combine.c: Likewise.
3076 * common/config/i386/i386-common.c: Likewise.
3077 * config/aarch64/aarch64.c: Likewise.
3078 * config/alpha/sync.md: Likewise.
3079 * config/arc/arc.c: Likewise.
3080 * config/arc/predicates.md: Likewise.
3081 * config/arm/arm-c.c: Likewise.
3082 * config/arm/arm.c: Likewise.
3083 * config/arm/arm.h: Likewise.
3084 * config/arm/arm.md: Likewise.
3085 * config/arm/cortex-r4f.md: Likewise.
3086 * config/csky/csky.c: Likewise.
3087 * config/csky/csky.h: Likewise.
3088 * config/darwin-f.c: Likewise.
3089 * config/epiphany/epiphany.md: Likewise.
3090 * config/i386/i386.c: Likewise.
3091 * config/i386/sol2.h: Likewise.
3092 * config/m68k/m68k.c: Likewise.
3093 * config/mcore/mcore.h: Likewise.
3094 * config/microblaze/microblaze.md: Likewise.
3095 * config/mips/20kc.md: Likewise.
3096 * config/mips/sb1.md: Likewise.
3097 * config/nds32/nds32.c: Likewise.
3098 * config/nds32/predicates.md: Likewise.
3099 * config/pa/pa.c: Likewise.
3100 * config/rs6000/e300c2c3.md: Likewise.
3101 * config/rs6000/rs6000.c: Likewise.
3102 * config/s390/s390.h: Likewise.
3103 * config/sh/sh.c: Likewise.
3104 * config/sh/sh.md: Likewise.
3105 * config/spu/vmx2spu.h: Likewise.
3106 * cprop.c: Likewise.
3107 * dbxout.c: Likewise.
3108 * df-scan.c: Likewise.
3109 * doc/cfg.texi: Likewise.
3110 * doc/extend.texi: Likewise.
3111 * doc/fragments.texi: Likewise.
3112 * doc/gty.texi: Likewise.
3113 * doc/invoke.texi: Likewise.
3114 * doc/lto.texi: Likewise.
3115 * doc/md.texi: Likewise.
3116 * doc/objc.texi: Likewise.
3117 * doc/rtl.texi: Likewise.
3118 * doc/tm.texi: Likewise.
3120 * emit-rtl.c: Likewise.
3121 * emit-rtl.h: Likewise.
3122 * except.c: Likewise.
3123 * expmed.c: Likewise.
3125 * fold-const.c: Likewise.
3126 * genautomata.c: Likewise.
3127 * gimple-fold.c: Likewise.
3128 * hard-reg-set.h: Likewise.
3129 * ifcvt.c: Likewise.
3130 * ipa-comdats.c: Likewise.
3131 * ipa-cp.c: Likewise.
3132 * ipa-devirt.c: Likewise.
3133 * ipa-fnsummary.c: Likewise.
3134 * ipa-icf.c: Likewise.
3135 * ipa-inline-transform.c: Likewise.
3136 * ipa-inline.c: Likewise.
3137 * ipa-polymorphic-call.c: Likewise.
3138 * ipa-profile.c: Likewise.
3139 * ipa-prop.c: Likewise.
3140 * ipa-pure-const.c: Likewise.
3141 * ipa-reference.c: Likewise.
3142 * ipa-split.c: Likewise.
3143 * ipa-visibility.c: Likewise.
3145 * ira-build.c: Likewise.
3146 * ira-color.c: Likewise.
3147 * ira-conflicts.c: Likewise.
3148 * ira-costs.c: Likewise.
3149 * ira-int.h: Likewise.
3150 * ira-lives.c: Likewise.
3153 * loop-invariant.c: Likewise.
3154 * loop-unroll.c: Likewise.
3155 * lower-subreg.c: Likewise.
3156 * lra-assigns.c: Likewise.
3157 * lra-constraints.c: Likewise.
3158 * lra-eliminations.c: Likewise.
3159 * lra-lives.c: Likewise.
3160 * lra-remat.c: Likewise.
3161 * lra-spills.c: Likewise.
3163 * lto-cgraph.c: Likewise.
3164 * lto-streamer-out.c: Likewise.
3165 * postreload-gcse.c: Likewise.
3166 * predict.c: Likewise.
3167 * profile-count.h: Likewise.
3168 * profile.c: Likewise.
3169 * recog.c: Likewise.
3171 * reload.c: Likewise.
3172 * reload1.c: Likewise.
3173 * reorg.c: Likewise.
3174 * resource.c: Likewise.
3175 * rtl.def: Likewise.
3177 * rtlanal.c: Likewise.
3178 * sched-deps.c: Likewise.
3179 * sched-ebb.c: Likewise.
3180 * sched-rgn.c: Likewise.
3181 * sel-sched-ir.c: Likewise.
3182 * sel-sched.c: Likewise.
3183 * shrink-wrap.c: Likewise.
3184 * simplify-rtx.c: Likewise.
3185 * symtab.c: Likewise.
3186 * target.def: Likewise.
3187 * toplev.c: Likewise.
3188 * tree-call-cdce.c: Likewise.
3189 * tree-cfg.c: Likewise.
3190 * tree-complex.c: Likewise.
3191 * tree-core.h: Likewise.
3192 * tree-eh.c: Likewise.
3193 * tree-inline.c: Likewise.
3194 * tree-loop-distribution.c: Likewise.
3195 * tree-nrv.c: Likewise.
3196 * tree-profile.c: Likewise.
3197 * tree-sra.c: Likewise.
3198 * tree-ssa-alias.c: Likewise.
3199 * tree-ssa-dce.c: Likewise.
3200 * tree-ssa-dom.c: Likewise.
3201 * tree-ssa-forwprop.c: Likewise.
3202 * tree-ssa-loop-im.c: Likewise.
3203 * tree-ssa-loop-ivcanon.c: Likewise.
3204 * tree-ssa-loop-ivopts.c: Likewise.
3205 * tree-ssa-loop-niter.c: Likewise.
3206 * tree-ssa-phionlycprop.c: Likewise.
3207 * tree-ssa-phiopt.c: Likewise.
3208 * tree-ssa-propagate.c: Likewise.
3209 * tree-ssa-threadedge.c: Likewise.
3210 * tree-ssa-threadupdate.c: Likewise.
3211 * tree-ssa-uninit.c: Likewise.
3212 * tree-ssanames.c: Likewise.
3213 * tree-streamer-out.c: Likewise.
3216 * vr-values.c: Likewise.
3218 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
3220 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
3221 (ix86_split_xorsign): Ditto.
3222 * config/i386/i386.c (ix86_expand_xorsign): New function.
3223 (ix86_split_xorsign): Ditto.
3224 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
3225 (xorsign<mode>3): New expander.
3226 (xorsign<mode>3_1): New insn_and_split pattern.
3227 * config/i386/sse.md (xorsign<mode>3): New expander.
3229 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3231 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
3232 (*tablejump_sp64): Likewise.
3233 (*tablejump<P:mode>): ...this.
3234 (*call_address_sp32): Merge into...
3235 (*call_address_sp64): Likewise.
3236 (*call_address<P:mode>): ...this.
3237 (*call_symbolic_sp32): Merge into...
3238 (*call_symbolic_sp64): Likewise.
3239 (*call_symbolic<P:mode>): ...this.
3240 (call_value): Remove constraint and add predicate.
3241 (*call_value_address_sp32): Merge into...
3242 (*call_value_address_sp64): Likewise.
3243 (*call_value_address<P:mode>): ...this.
3244 (*call_value_symbolic_sp32): Merge into...
3245 (*call_value_symbolic_sp64): Likewise.
3246 (*call_value_symbolic<P:mode>): ...this.
3247 (*sibcall_symbolic_sp32): Merge into...
3248 (*sibcall_symbolic_sp64): Likewise.
3249 (*sibcall_symbolic<P:mode>): ...this.
3250 (sibcall_value): Remove constraint and add predicate.
3251 (*sibcall_value_symbolic_sp32): Merge into...
3252 (*sibcall_value_symbolic_sp64): Likewise.
3253 (*sibcall_value_symbolic<P:mode>): ...this.
3254 (window_save): Minor tweak.
3255 (*branch_sp32): Merge into...
3256 (*branch_sp64): Likewise.
3257 (*branch<P:mode>): ...this.
3259 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3260 James Clarke <jrtc27@jrtc27.com>
3263 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
3264 consistently in TLS address generation and adjust code to the renaming
3265 of patterns. Mark calls to __tls_get_addr as const.
3266 * config/sparc/sparc.md (tgd_hi22): Turn into...
3267 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
3268 (tgd_lo10): Turn into...
3269 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
3270 (tgd_add32): Merge into...
3271 (tgd_add64): Likewise.
3272 (tgd_add<P:mode>): ...this and use Pmode throughout.
3273 (tldm_hi22): Turn into...
3274 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
3275 (tldm_lo10): Turn into...
3276 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
3277 (tldm_add32): Merge into...
3278 (tldm_add64): Likewise.
3279 (tldm_add<P:mode>): ...this and use Pmode throughout.
3280 (tldm_call32): Merge into...
3281 (tldm_call64): Likewise.
3282 (tldm_call<P:mode>): ...this and use Pmode throughout.
3283 (tldo_hix22): Turn into...
3284 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
3285 (tldo_lox10): Turn into...
3286 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
3287 (tldo_add32): Merge into...
3288 (tldo_add64): Likewise.
3289 (tldo_add<P:mode>): ...this and use Pmode throughout.
3290 (tie_hi22): Turn into...
3291 (tie_hi22<P:mode>): ...this and use Pmode throughout.
3292 (tie_lo10): Turn into...
3293 (tie_lo10<P:mode>): ...this and use Pmode throughout.
3294 (tie_ld64): Use DImode throughout.
3295 (tie_add32): Merge into...
3296 (tie_add64): Likewise.
3297 (tie_add<P:mode>): ...this and use Pmode throughout.
3298 (tle_hix22_sp32): Merge into...
3299 (tle_hix22_sp64): Likewise.
3300 (tle_hix22<P:mode>): ...this and use Pmode throughout.
3301 (tle_lox22_sp32): Merge into...
3302 (tle_lox22_sp64): Likewise.
3303 (tle_lox22<P:mode>): ...this and use Pmode throughout.
3304 (*tldo_ldub_sp32): Merge into...
3305 (*tldo_ldub_sp64): Likewise.
3306 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
3307 (*tldo_ldub1_sp32): Merge into...
3308 (*tldo_ldub1_sp64): Likewise.
3309 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
3310 (*tldo_ldub2_sp32): Merge into...
3311 (*tldo_ldub2_sp64): Likewise.
3312 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
3313 (*tldo_ldsb1_sp32): Merge into...
3314 (*tldo_ldsb1_sp64): Likewise.
3315 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
3316 (*tldo_ldsb2_sp32): Merge into...
3317 (*tldo_ldsb2_sp64): Likewise.
3318 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
3319 (*tldo_ldub3_sp64): Use DImode throughout.
3320 (*tldo_ldsb3_sp64): Likewise.
3321 (*tldo_lduh_sp32): Merge into...
3322 (*tldo_lduh_sp64): Likewise.
3323 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
3324 (*tldo_lduh1_sp32): Merge into...
3325 (*tldo_lduh1_sp64): Likewise.
3326 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
3327 (*tldo_ldsh1_sp32): Merge into...
3328 (*tldo_ldsh1_sp64): Likewise.
3329 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
3330 (*tldo_lduh2_sp64): Use DImode throughout.
3331 (*tldo_ldsh2_sp64): Likewise.
3332 (*tldo_lduw_sp32): Merge into...
3333 (*tldo_lduw_sp64): Likewise.
3334 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
3335 (*tldo_lduw1_sp64): Use DImode throughout.
3336 (*tldo_ldsw1_sp64): Likewise.
3337 (*tldo_ldx_sp64): Likewise.
3338 (*tldo_stb_sp32): Merge into...
3339 (*tldo_stb_sp64): Likewise.
3340 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
3341 (*tldo_sth_sp32): Merge into...
3342 (*tldo_sth_sp64): Likewise.
3343 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
3344 (*tldo_stw_sp32): Merge into...
3345 (*tldo_stw_sp64): Likewise.
3346 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
3347 (*tldo_stx_sp64): Use DImode throughout.
3349 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3351 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
3352 check configure option to set BTI and Return Address Signing.
3353 * configure.ac: Add --enable-standard-branch-protection and
3354 --disable-standard-branch-protection.
3355 * configure: Regenerated.
3356 * doc/install.texi: Document the same.
3358 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3359 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3361 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
3362 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
3363 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
3365 * config/aarch64/aarch64-bti-insert.c: New file.
3366 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
3368 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
3370 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
3371 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
3372 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
3373 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
3375 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3377 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
3378 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
3379 Disable bti for -mbranch-protection=none.
3380 (aarch64_handle_standard_branch_protection): Enable bti for
3381 -mbranch-protection=standard.
3382 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
3383 -mbranch-protection.
3384 (aarch64_bti_enabled): Check if bti is enabled.
3385 * config/aarch64/aarch64.opt: Declare target variable.
3386 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
3388 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3390 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
3391 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
3392 (aarch64_expand_epilogue): Likewise.
3393 (aarch64_output_mi_thunk): Likewise
3394 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
3395 TAILCALL_ADDR_REGS to x16 and x17.
3396 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
3398 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3400 * config/aarch64/aarch64-option-extensions.def: Define
3401 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
3402 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
3403 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
3404 (AARCH64_FL_PREDRES): New.
3405 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
3406 AARCH64_FL_PREDRES by default.
3407 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
3409 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3411 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
3413 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
3414 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
3415 * doc/invoke.texi: Document ARMv8.5-A.
3417 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3419 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
3420 (xorsign<mode>3): Likewise.
3422 2019-01-09 Jelinek <jakub@redhat.com>
3425 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
3426 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
3428 PR rtl-optimization/88331
3429 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
3430 not currently_expanding_to_rtl.
3432 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3434 * doc/invoke.texi (-Os): Remove trailing spaces.
3435 (-finline-functions): Remove reference to -O2.
3437 2019-01-08 Jakub Jelinek <jakub@redhat.com>
3439 PR rtl-optimization/79593
3440 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
3442 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
3443 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
3445 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
3448 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
3452 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
3453 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
3455 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
3458 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
3459 ix86_avx_u128_mode_entry.
3461 2019-01-08 Martin Liska <mliska@suse.cz>
3463 PR tree-optimization/88753
3464 * tree-switch-conversion.c (switch_conversion::build_one_array):
3465 Come up with local variable constructor. Convert first to
3466 type of constructor values.
3468 2019-01-08 Richard Biener <rguenther@suse.de>
3470 PR tree-optimization/86554
3471 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
3472 rpo_avail): Move earlier.
3473 (visit_nary_op): When value-numbering to expressions
3474 with different overflow behavior make sure there's an
3475 available expression on the path.
3477 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
3479 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
3480 aarch64_parse_branch_protection,
3481 struct aarch64_branch_protect_type,
3482 aarch64_handle_no_branch_protection,
3483 aarch64_handle_standard_branch_protection,
3484 aarch64_validate_mbranch_protection,
3485 aarch64_handle_pac_ret_protection,
3486 aarch64_handle_attr_branch_protection,
3487 accepted_branch_protection_string,
3488 aarch64_pac_ret_subtypes,
3489 aarch64_branch_protect_types,
3490 aarch64_handle_pac_ret_leaf): Define.
3491 (aarch64_override_options_after_change_1, aarch64_override_options):
3492 Add check for accepted_branch_protection_string.
3493 (aarch64_option_save): Save accepted_branch_protection_string.
3494 (aarch64_option_restore): Save accepted_branch_protection_string.
3495 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
3496 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
3497 msign-return-address.
3498 * doc/invoke.texi: Add mbranch-protection.
3500 2019-01-08 Alan Modra <amodra@gmail.com>
3503 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
3504 Delete "unknownp" parameter. Adjust callers. Handle
3505 CONST_INT, PLUS, MINUS, and MULT.
3506 (attr_value_aligned): Renamed from or_attr_value.
3507 (min_attr_value): Return INT_MIN for unhandled rtl case..
3508 (min_fn): ..and translate to INT_MAX here.
3509 (write_length_unit_log): Modify to cope without "unknown".
3510 (write_attr_value): Handle IF_THEN_ELSE.
3512 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3514 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
3515 optimization for masked stores.
3517 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3520 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
3521 output vector directly to duplicate_and_interleave instead of
3522 going through a temporary. Postpone insertion of ctor_seq to
3523 the end of the loop.
3525 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
3528 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
3529 unsigned_p. Handle signed and unsigned overflow correction as
3531 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
3533 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
3535 (add<mode>3_compareV_imm): Make this callable for expanding.
3536 (subv<GPI:mode>4): Use register_operand for operand 1. Use
3537 aarch64_plus_operand for operand 2.
3538 (subv<GPI:mode>_insn): New insn pattern.
3539 (subv<GPI:mode>_imm): Likewise.
3540 (negv<GPI:mode>3): New expand pattern.
3541 (negv<GPI:mode>_insn): New insn pattern.
3542 (negv<GPI:mode>_cmp_only): Likewise.
3543 (cmpv<GPI:mode>_insn): Likewise.
3544 (subvti4): Use register_operand for operand 1. Update call to
3545 aarch64_expand_subvti.
3546 (usubvti4): Likewise.
3547 (negvti3): New expand pattern.
3548 (negdi_carryout): New insn pattern.
3549 (negvdi_carryinV): New insn pattern.
3550 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
3551 version the named version.
3552 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
3554 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
3556 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
3558 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
3559 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
3560 (sub<mode>3_carryinCV): Delete.
3561 (sub<GPI:mode>3_carryinV): New expand pattern.
3562 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
3564 2019-01-07 Richard Biener <rguenther@suse.de>
3566 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
3567 of tree_operand_hash.
3569 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3571 PR tree-optimization/88598
3572 * tree.h (single_nonzero_element): Declare.
3573 * tree.c (single_nonzero_element): New function.
3574 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
3575 if I is the only nonzero element of CST.
3577 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3579 PR tree-optimization/88598
3580 * tree.h (initializer_each_zero_or_onep): Declare.
3581 * tree.c (initializer_each_zero_or_onep): New function.
3582 (signed_or_unsigned_type_for): Handle float types too.
3583 (unsigned_type_for, signed_type_for): Update comments accordingly.
3584 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
3585 x & { 0 or -1, 0 or -1, ... }.
3587 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
3589 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
3590 with x86_64-pc-linux-gnu.
3592 2019-01-07 Tom de Vries <tdevries@suse.de>
3595 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
3597 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
3600 2019-01-07 Jakub Jelinek <jakub@redhat.com>
3602 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
3603 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
3604 TARGET_AVX512F as condition.
3607 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
3608 const_not_ok_for_debug_p target hook.
3609 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
3610 on UNSPEC and subexpressions thereof if all subexpressions of the
3611 UNSPEC are CONSTANT_P.
3613 PR tree-optimization/88676
3614 * tree-ssa-phiopt.c (two_value_replacement): New function.
3615 (tree_ssa_phiopt_worker): Call it.
3618 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
3619 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
3622 * tree-vect-generic.c: Include insn-config.h and recog.h.
3623 (expand_vector_piecewise): Add defaulted ret_type argument,
3624 if non-NULL, use that in preference to type for the result type.
3625 (expand_vector_parallel): Formatting fix.
3626 (do_vec_conversion, do_vec_narrowing_conversion,
3627 expand_vector_conversion): New functions.
3628 (expand_vector_operations_1): Call expand_vector_conversion
3629 for VEC_CONVERT ifn calls.
3630 * internal-fn.def (VEC_CONVERT): New internal function.
3631 * internal-fn.c (expand_VEC_CONVERT): New function.
3632 * fold-const-call.c (fold_const_vec_convert): New function.
3633 (fold_const_call): Use it for CFN_VEC_CONVERT.
3634 * doc/extend.texi (__builtin_convertvector): Document.
3636 2019-01-07 Tom de Vries <tdevries@suse.de>
3638 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
3639 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
3640 vector_red_partition, vector_red_sym): New global variables.
3641 (nvptx_option_override): Initialize vector_red_sym.
3642 (nvptx_declare_function_name): Restore red_partition register.
3643 (nvptx_file_end): Emit code to declare the vector reduction variables.
3644 (nvptx_output_red_partition): New function.
3645 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
3646 large vector reductions.
3647 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
3648 (nvptx_init_builtins): Add VECTOR_ADDR.
3649 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
3650 Handle nvptx_expand_shared_addr.
3651 (nvptx_get_shared_red_addr): Add vector argument and handle large
3653 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
3655 (nvptx_goacc_reduction_init): Likewise.
3656 (nvptx_goacc_reduction_fini): Likewise.
3657 (nvptx_goacc_reduction_teardown): Likewise.
3658 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
3659 init,fini,teardown}.
3660 (nvptx_init_axis_predicate): Initialize vector_red_partition.
3661 (nvptx_set_current_function): Init vector_red_partition.
3662 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
3663 (nvptx_red_partition): New insn.
3664 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
3666 2019-01-07 Tom de Vries <tdevries@suse.de>
3669 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
3672 2019-01-07 Tom de Vries <tdevries@suse.de>
3674 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
3675 (nvptx_option_override): Init oacc_bcast_partition.
3676 (nvptx_init_oacc_workers): New function.
3677 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
3678 (nvptx_needs_shared_bcast): New function.
3679 (nvptx_find_par): Generalize to enable vectors to use shared-memory
3681 (nvptx_shared_propagate): Initialize vector bcast partition and
3682 synchronization state.
3683 (nvptx_single): Generalize to enable vectors to use shared-memory
3685 (nvptx_process_pars): Likewise.
3686 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
3687 * config/nvptx/nvptx.h (struct machine_function): Add
3688 bcast_partition and sync_bar members.
3690 2019-01-07 Tom de Vries <tdevries@suse.de>
3692 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
3693 (nvptx_apply_dim_limits): New function.
3694 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
3697 2019-01-07 Tom de Vries <tdevries@suse.de>
3699 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3700 as late as possible.
3702 2019-01-07 Tom de Vries <tdevries@suse.de>
3704 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
3705 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
3706 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
3707 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
3708 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
3710 2019-01-07 Tom de Vries <tdevries@suse.de>
3712 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3714 2019-01-07 Tom de Vries <tdevries@suse.de>
3716 * omp-offload.c (oacc_get_min_dim): New function.
3717 * omp-offload.h (oacc_get_min_dim): Declare.
3719 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
3722 * config/i386/i386.c (function_value_ms_64): Return small sturct in
3723 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
3725 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3729 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
3731 * ipa-inline.c (edge_badness): Use inlined_time instead of
3732 inline_summaries->get.
3734 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3736 * opts.c (enable_fdo_optimizations): Enable
3737 version-loops-for-strides, loop-interchange, unrol-and-jam
3738 and tree-loop-distribution.
3739 * invoke.texi: Document newly enabled options.
3741 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3743 * doc/invoke.texi (max-inline-insns-small): New parameters.
3744 * ipa-inline.c (want_early_inline_function_p): simplify.
3745 (want_inline_small_function_p): Fix pasto from previous patch;
3746 use max-inline-insns-small bound.
3747 * params.def (max-inline-insns-small): New param.
3748 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
3749 variables correctly.
3751 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3753 * doc/invoke.texi: Document max-inline-insns-size,
3754 uninlined-function-insns, uninlined-function-time,
3755 uninlined-thunk-insns and uninlined-thunk-time.
3756 * params.def: Add max-inline-insns-size,
3757 uninlined-function-insns, uninlined-function-time,
3758 uninlined-thunk-insns and uninlined-thunk-time.
3759 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
3761 * ipa-inline.c (can_inline_edge_by_limits_p,
3762 want_inline_small_function_p): Use new parameters.
3764 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3766 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3768 2019-01-05 Jakub Jelinek <jakub@redhat.com>
3772 * expr.c (expand_assignment): For calls returning VLA structures
3773 if to_rtx is not a MEM, force it into a stack temporary.
3776 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3777 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3778 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3779 subexpressions of both operands.
3780 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3781 subrtxes are CONSTANT_P.
3782 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
3785 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
3787 * params.def (hot-bb-count-ws-permille): Set to 990.
3789 2019-01-04 Martin Sebor <msebor@redhat.com>
3792 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3795 2019-01-04 Martin Sebor <msebor@redhat.com>
3798 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3800 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3802 * gdbinit.in: Turn off pagination for the skip commands, restore
3803 it to previous state afterwards.
3805 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3808 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3809 of GET_MODE (opN) as modes of the libcall arguments.
3811 2019-01-04 Jan Beulich <jbeulich@suse.com>
3813 * config/i386/sse.md
3814 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
3815 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
3816 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3817 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3818 avx512f_vmcmp<mode>3<round_saeonly_name>,
3819 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
3820 avx512f_maskcmp<mode>3,
3821 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3822 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3823 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3824 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3825 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3826 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3827 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3828 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3829 <avx512>_testm<mode>3<mask_scalar_merge_name>,
3830 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
3831 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
3832 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
3833 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
3834 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
3835 avx512cd_maskb_vec_dup<mode>,
3836 avx512cd_maskw_vec_dup<mode>,
3837 avx512dq_fpclass<mode><mask_scalar_merge_name>,
3838 avx512dq_vmfpclass<mode>,
3839 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
3842 2019-01-03 Martin Sebor <msebor@redhat.com>
3844 PR tree-optimization/88659
3845 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
3847 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
3849 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
3850 unaligned vsx and avoid lxvd2x/stxvd2x.
3851 (gen_lvx_v4si_move): New function.
3853 2019-01-03 Tom de Vries <tdevries@suse.de>
3855 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
3856 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
3858 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
3860 2019-01-03 Tom de Vries <tdevries@suse.de>
3862 * config/nvptx/nvptx.c (struct offload_attrs): New.
3863 (populate_offload_attrs): New function. Factor mask extraction out of
3864 nvptx_reorg. Add extraction of dimensions.
3865 (nvptx_reorg): Use populate_offload_attrs.
3867 2019-01-03 Tom de Vries <tdevries@suse.de>
3869 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
3870 cases for oacc_min_dims_p and routine_p. Add asserts for
3871 oacc_default_dims_p and offload_region_p.
3873 2019-01-03 Tom de Vries <tdevries@suse.de>
3875 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
3877 (nvptx_goacc_validate_dims): ... here.
3879 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3881 PR tree-optimization/85574
3882 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
3884 (struct ssa_equip_hash_traits): Declare.
3885 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
3887 2019-01-03 Jakub Jelinek <jakub@redhat.com>
3890 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
3891 change it to qualified_type.
3893 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3895 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
3896 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
3898 2019-01-02 Martin Sebor <msebor@redhat.com>
3899 Jeff Law <law@redhat.com>
3901 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
3902 (get_range_strlen_tree): Update appropriately.
3904 * gimple-fold.h (get_range_strlen): Drop unused last argument.
3906 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
3907 rather than set_range_info.
3908 * tree-ssa-strlen.c (set_strlen_range): Extracted from
3909 maybe_set_strlen_range. Handle potentially boundary crossing
3910 cases more conservatively.
3911 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
3912 Call set_strlen_range.
3913 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
3916 * gimple-fold.c (get_range_strlen): Update prototype to no longer
3917 need the flexp argument.
3918 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
3919 from calls to get_range_strlen. Update comments. Just update
3920 VAL for an unterminated const char array and let the reset of the
3921 code handle it normally. No longer try to set *flexp. Adjust
3923 (get_range_strlen): Update for the new get_range_strlen API.
3924 (get_maxval_strlen): Similarly.
3925 (gimple_fold_builtin_strlen): Handle update meaning of return value
3926 from get_range_strlen.
3927 * gimple-ssa-sprintf.c (get_string_length): Update for the new
3928 get_range_strlen API.
3930 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
3933 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
3934 false at WPA time when body was removed.
3936 2019-01-02 Martin Liska <mliska@suse.cz>
3938 PR tree-optimization/88650
3939 * predict.c (set_even_probabilities): Calculate probability
3940 remainer only when really used.
3942 2019-01-02 Richard Biener <rguenther@suse.de>
3945 * tree-data-ref.c (analyze_subscript_affine_affine): Use
3946 widest_ints when mangling max_stmt_execution results.
3948 2019-01-02 Richard Biener <rguenther@suse.de>
3950 PR tree-optimization/88621
3951 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
3952 bitfields when canoncalizing.
3954 2019-01-02 Richard Biener <rguenther@suse.de>
3957 * config/i386/x86-tune-costs.h (intel_cost): Adjust
3958 cost of cheap SSE instruction.
3960 2019-01-02 Richard Biener <rguenther@suse.de>
3963 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
3964 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
3966 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
3967 set after UIDs before splitting them.
3969 2019-01-01 Martin Sebor <msebor@redhat.com>
3970 Jeff Law <law@redhat.com>
3972 * gimple-fold.c (get_range_strlen_tree): Record if the computed
3973 length is optimistic. If it is, then arrange to compute the
3974 conservative length as well.
3976 * gimple-fold.h (get_range_strlen): Update prototype.
3977 * builtins.c (check_access): Update call to get_range_strlen to use
3978 c_strlen_data pointer. Change various variable accesses to instead
3979 pull data from the c_strlen_data structure.
3980 (check_strncat_sizes, expand_builtin_strncat): Likewise.
3981 * calls.c (maybe_warn_nonstring_arg): Likewise.
3982 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
3983 minimum length if maximum lengh is unknown.
3984 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
3985 that used c_strlen, it's no longer needed. Restructure slightly.
3986 (format_string): Set unlikely range appropriately.
3987 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
3989 (get_range_strlen): Accept c_strlen_data pointer for external
3990 call sites as well. Pass through to call to internal get_range_strlen.
3991 Adjust minlen, maxlen and maxbound as needed.
3992 (get_maxval_strlen): Update comments.
3993 (gimple_fold_builtin_strlen): Update call to get_range_strlen
3994 to use c_strlen_data pointer. Change variable accesses to instead
3995 use c_strlen_data data members.
3997 * gimple-fold.c (get_range_strlen): Update prototype.
3998 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
3999 local variables. Use pdata to return information to caller.
4000 Update calls to get_range_strlen. Update pdata->maxbound.
4001 (get_range_strlen -- static version): Similarly.
4002 (get_range_strlen -- extern version): Update for internal
4003 get_range_strlen API change. Convert to external data format.
4004 (get_maxval_strlen): Similarly.
4006 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
4008 * coverage.c (get_coverage_counts): Use current_function_decl.
4009 * profile.c (read_thunk_profile): New function.
4010 (branch_prob): Add THUNK parameter.
4011 * tree-profile.c (tree_profiling): Handle thunks.
4012 * value-prof.c (init_node_map): Handle thunks.
4013 * value-prof.h (branch_prob): Upate prototype.
4014 (read_thunk_profile): Declare.
4016 2019-01-01 Jakub Jelinek <jakub@redhat.com>
4018 Update copyright years.
4020 * gcc.c (process_command): Update copyright notice dates.
4021 * gcov-dump.c (print_version): Ditto.
4022 * gcov.c (print_version): Ditto.
4023 * gcov-tool.c (print_version): Ditto.
4024 * gengtype.c (create_file): Ditto.
4025 * doc/cpp.texi: Bump @copying's copyright year.
4026 * doc/cppinternals.texi: Ditto.
4027 * doc/gcc.texi: Ditto.
4028 * doc/gccint.texi: Ditto.
4029 * doc/gcov.texi: Ditto.
4030 * doc/install.texi: Ditto.
4031 * doc/invoke.texi: Ditto.
4033 Copyright (C) 2019 Free Software Foundation, Inc.
4035 Copying and distribution of this file, with or without modification,
4036 are permitted in any medium without royalty provided the copyright
4037 notice and this notice are preserved.