8c07ccfc4a7600320d31e07e3bb2f5fcfb078553
[gcc.git] / gcc / ChangeLog
1 2019-02-26 Martin Liska <mliska@suse.cz>
2
3 * alloc-pool.h (struct pool_usage): Remove extra
4 print_dash_line.
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
12 horizontal alignment.
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.
16
17 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
18
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
25 in the list.
26
27 2019-02-26 Jeff Law <law@redhat.com>
28
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.
32
33 2019-02-26 Richard Biener <rguenther@suse.de>
34
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
38 correctly.
39
40 2019-02-26 Richard Biener <rguenther@suse.de>
41
42 PR tree-optimization/89489
43 * tree-parloops.c (create_loop_fn): Copy over last_clique.
44
45 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
46
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.
51
52 2019-02-26 Jakub Jelinek <jakub@redhat.com>
53
54 PR target/89474
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.
59
60 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
61
62 PR c/80409
63 * doc/extend.texi (Variadic Pointer Args): New section.
64
65 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
66 Martin Sebor <msebor@gmail.com>
67
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.
72 Add cross-references.
73 (-Wattribute-alias): Rewrite and correct default. Mention
74 considered attributes (same as for -Wmissing-attributes).
75
76 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
77
78 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
79 (_mm_cvtpd_ps): Likewise.
80 (_mm_cvttpd_epi32): Likewise.
81
82 PR target/89338
83 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
84 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
85
86 PR target/89339
87 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
88
89 2019-02-25 Tamar Christina <tamar.christina@arm.com>
90
91 PR target/88530
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
109 SYNTHETIC.
110
111 2019-02-25 Tamar Christina <tamar.christina@arm.com>
112
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):
121 Rename ...
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.
131
132 2019-02-25 Tamar Christina <tamar.christina@arm.com>
133
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):
142 Rename ...
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.
151
152 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
153
154 PR rtl-optimization/86096
155 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
156 comparing mw_order values.
157
158 2019-02-25 Jakub Jelinek <jakub@redhat.com>
159
160 PR target/89434
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
170 of operands[2].
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.
176
177 PR target/89438
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.
181
182 2019-02-24 Jakub Jelinek <jakub@redhat.com>
183
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.
192
193 2019-02-23 Martin Sebor <msebor@redhat.com>
194
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.
199
200 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
201
202 PR driver/69471
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
208 and RejectNegative.
209
210 2019-02-22 Martin Sebor <msebor@redhat.com>
211
212 * doc/extend.texi (Other Builtins): Add
213 __builtin_is_constant_evaluated.
214
215 2019-02-22 Richard Biener <rguenther@suse.de>
216
217 PR tree-optimization/87609
218 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
219
220 2019-02-22 Jeff Law <law@redhat.com>
221
222 PR rtl-optimization/87761
223 * config/mips/mips.md: Add new combiner pattern to recognize
224 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
225
226 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
227
228 PR target/89324
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.
242
243 2019-02-22 Martin Sebor <msebor@redhat.com>
244
245 PR tree-optimization/88993
246 PR tree-optimization/88853
247 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
248 New helper.
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.
253
254 2019-02-22 Martin Sebor <msebor@redhat.com>
255
256 PR c/89425
257 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
258 unreachable subexpressions.
259
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>
263
264 PR target/87007
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):
270 New function.
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.
279
280 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
281
282 PR middle-end/85598
283 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
284 analysis for pass.
285
286 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
287
288 PR target/89444
289 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
290 (PTA_SKYLAKE): Add PTA_AES.
291 (PTA_GOLDMONT): Likewise.
292
293 2019-02-22 Sudakshina Das <sudi.das@arm.com>
294
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.
298
299 2019-02-22 Richard Biener <rguenther@suse.de>
300
301 PR tree-optimization/89440
302 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
303 not necessary assert.
304
305 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
306
307 PR fortran/72741
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.
312
313 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
314
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.
320
321 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
322
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.
326
327 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
328
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.
335
336 2019-02-22 Richard Biener <rguenther@suse.de>
337
338 PR middle-end/87609
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.
349
350 2019-02-22 Richard Biener <rguenther@suse.de>
351
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).
360
361 2019-02-21 Martin Sebor <msebor@redhat.com>
362
363 * doc/extend.texi (__clear_cache): Correct signature.
364
365 2019-02-21 Ian Lance Taylor <iant@golang.org>
366
367 PR go/89170
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.
373
374 2019-02-21 Jakub Jelinek <jakub@redhat.com>
375
376 PR c++/89285
377 * builtins.c (fold_builtin_arith_overflow): If first two args are
378 INTEGER_CSTs, set intres and ovfres to constants rather than calls
379 to ifn.
380
381 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
382
383 PR target/87412
384 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
385 error for -mindirect-branch/-mfunction-return with incompatible
386 -fcf-protection.
387
388 2019-02-21 Jakub Jelinek <jakub@redhat.com>
389
390 PR bootstrap/88714
391 * constraints.md (q): Remove.
392 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
393 instead of q.
394
395 2019-02-21 Martin Jambor <mjambor@suse.cz>
396
397 PR hsa/89302
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.
404
405 2019-02-20 Jakub Jelinek <jakub@redhat.com>
406
407 PR middle-end/89412
408 * expr.c (expand_assignment): If result is a MEM, use change_address
409 instead of simplify_gen_subreg.
410
411 2019-02-20 Jakub Jelinek <jakub@redhat.com>
412 David Malcolm <dmalcolm@redhat.com>
413
414 PR middle-end/89091
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.
418
419 2019-02-20 Jakub Jelinek <jakub@redhat.com>
420
421 PR middle-end/88074
422 PR middle-end/89415
423 * toplev.c (do_compile): Double the emin/emax exponents to workaround
424 buggy mpc_norm.
425
426 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
427
428 PR target/89397
429 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
430 TARGET_SSE in addition to TARGET_SSE_MATH.
431
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.
436
437 2019-02-20 David Malcolm <dmalcolm@redhat.com>
438
439 PR c/89410
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.
445
446 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
447
448 PR target/86487
449 * lra-constraints.c(uses_hard_regs_p): Fix handling of
450 paradoxical SUBREGS.
451
452 2019-02-20 Li Jia He <helijia@linux.ibm.com>
453
454 PR target/88100
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
458 range checking it.
459
460 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
461
462 * config/gcn/gcn.c (print_operand): Fix typo.
463
464 2019-02-19 Richard Biener <rguenther@suse.de>
465
466 PR middle-end/88074
467 * toplev.c (do_compile): Initialize mpfr's exponent range
468 based on available float modes.
469
470 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
471
472 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
473 as long as the epilogue isn't completed.
474
475 2019-02-18 Martin Sebor <msebor@redhat.com>
476
477 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
478 __has_cpp_attribute, and __has_include.
479
480 2019-02-18 Martin Sebor <msebor@redhat.com>
481
482 * doc/invoke.texi (-Wreturn-type): Correct and expand.
483
484 2019-02-18 Martin Sebor <msebor@redhat.com>
485
486 PR middle-end/89294
487 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
488 expression.
489 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
490
491 2019-02-18 Richard Biener <rguenther@suse.de>
492
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.
496
497 2019-02-18 Jakub Jelinek <jakub@redhat.com>
498
499 PR bootstrap/88714
500 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
501 "q" constraint.
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].
505
506 PR target/89369
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
511 than 64-operands[2].
512
513 PR target/89361
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.
520
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
530 instead of 1UL.
531 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
532 instead of 1ul.
533
534 2019-02-18 Martin Jambor <mjambor@suse.cz>
535
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
539 a register type.
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.
544
545 2019-02-18 Martin Liska <mliska@suse.cz>
546
547 PR ipa/89306
548 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
549 by default.
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
553 by default.
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.
574
575 2019-02-18 Martin Liska <mliska@suse.cz>
576
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
583 suffixes.
584
585 2019-02-17 Alan Modra <amodra@gmail.com>
586
587 PR target/89271
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.
591
592 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
593
594 PR target/89372
595 * config/i386/sse.md (ssedoublemode): Remove V4HI.
596 (PMULHRSW): Likewise.
597 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
598 TARGET_AVX2.
599 (ssse3_pmulhrswv4hi3): New expander.
600
601 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
602
603 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
604 MMX. Add isa attribute.
605
606 2019-02-16 Jakub Jelinek <jakub@redhat.com>
607
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.
618
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.
625
626 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
627
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.
633
634 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
635
636 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
637 the base address on 64-bit strict-alignment platforms.
638
639 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
640
641 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
642
643 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
644
645 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
646
647 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
648
649 PR rtl-optimization/88308
650 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
651 on copied instruction.
652
653 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
654
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
665 for the GR6.
666 (output_branch): Adjust threshold for long branch instruction.
667 * config/visium/visium.md (cpu): Move around.
668 (length): Adjust for the GR6.
669
670 2019-02-15 Richard Biener <rguenther@suse.de>
671 Jakub Jelinek <jakub@redhat.com>
672
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.
678
679 2019-02-15 Jakub Jelinek <jakub@redhat.com>
680
681 PR other/89342
682 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
683 optimize_debug.
684 * opth-gen.awk: Likewise.
685
686 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
687
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.
692
693 2019-02-14 Jakub Jelinek <jakub@redhat.com>
694
695 PR rtl-optimization/89354
696 * combine.c (make_extraction): Punt if extraction_mode is narrower
697 than len bits.
698
699 2019-02-14 Maya Rashish <coypu@sdf.org>
700
701 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
702 * config/netbsd-d.c: New file.
703 * config/t-netbsd: Add netbsd-d.o
704
705 2018-02-14 Steve Ellcey <sellcey@marvell.com>
706
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.
711
712 2019-02-14 Tamar Christina <tamar.christina@arm.com>
713
714 PR target/88850
715 * config/arm/iterators.md (ANY64): Add V4HF.
716
717 2019-02-14 Martin Liska <mliska@suse.cz>
718
719 PR rtl-optimization/89242
720 * dce.c (delete_unmarked_insns): Call free_dominance_info we
721 process a transformation.
722
723 2019-02-14 Jakub Jelinek <jakub@redhat.com>
724
725 PR tree-optimization/89314
726 * fold-const.c (fold_binary_loc): Cast strlen argument to
727 const char * before dereferencing it. Formatting fixes.
728
729 PR middle-end/89284
730 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
731
732 2019-02-13 Ian Lance Taylor <iant@golang.org>
733
734 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
735 and set current index for other optimizations.
736
737 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
738
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.
748
749 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
750
751 PR target/89190
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.
756
757 2019-02-13 Tamar Christina <tamar.christina@arm.com>
758
759 PR target/88847
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.
764
765 2019-02-13 Martin Liska <mliska@suse.cz>
766
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
771 fields.
772 * cgraph.h (struct cgraph_thunk_info): Remove
773 add_pointer_bounds_args.
774 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
775 fields.
776 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
777 fields.
778 * config/i386/i386.c (ix86_function_arg_advance): Remove
779 unrelated comment.
780 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
781 (def_builtin): Remove usage of dead
782 fields.
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
796 assign_stmts.
797 * tree-inline.h (struct copy_body_data): Likewise.
798 * varpool.c (varpool_node::dump): Likewise.
799
800 2019-02-13 Jakub Jelinek <jakub@redhat.com>
801
802 PR middle-end/89303
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.
806
807 PR middle-end/89281
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.
811
812 PR target/89290
813 * config/i386/predicates.md (x86_64_immediate_operand): Allow
814 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
815 -mcmodel=large.
816
817 2019-02-13 Martin Liska <mliska@suse.cz>
818
819 PR lto/88858
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.
823
824 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
825
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):
832 New BU_CRYPTO_2.
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.
839
840 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
841
842 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
843 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
844
845 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
846
847 PR target/89229
848 * config/i386/i386.md (*movoi_internal_avx): Revert revision
849 268678 and revision 268657.
850 (*movti_internal): Likewise.
851
852 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
853
854 PR target/89233
855 * config/s390/s390.c (s390_decompose_address): Update comment.
856 (s390_check_qrst_address): Reject invalid address forms after
857 LRA.
858
859 2019-02-12 Martin Liska <mliska@suse.cz>
860
861 PR lto/88876
862 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
863 we need default values of funct_state for a function that
864 is not optimized.
865
866 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
867
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.
870
871 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
872 (*movdi_insn_sp32): Likewise.
873 (*movdi_insn_sp64): Likewise.
874
875 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
876
877 PR lto/88677
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.
881
882 2019-02-12 Richard Biener <rguenther@suse.de>
883
884 PR tree-optimization/89253
885 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
886 duplicate the loop.
887
888 2019-02-11 David Malcolm <dmalcolm@redhat.com>
889
890 PR lto/88147
891 * input.c (selftest::test_line_offset_overflow): New selftest.
892 (selftest::input_c_tests): Call it.
893
894 2019-02-11 Martin Sebor <msebor@redhat.com>
895
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
902 -Wstringop-ovefflow.
903 (maybe_diag_offset_bounds): Rename...
904 (maybe_diag_access_bounds): ...to this.
905 (check_bounds_or_overlap): Adjust for name change above.
906
907 2019-02-11 Martin Sebor <msebor@redhat.com>
908
909 PR c++/87996
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.
914
915 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
916
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.
920
921 2019-02-11 Alan Modra <amodra@gmail.com>
922
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.
944
945 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
946
947 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
948 Solaris ld.
949 * configure: Regenerate.
950
951 2019-02-11 Jakub Jelinek <jakub@redhat.com>
952
953 PR bootstrap/88714
954 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
955 instead of r.
956
957 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
958
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.
963
964 2019-02-11 Martin Liska <mliska@suse.cz>
965
966 PR ipa/89009
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.
978
979 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
980
981 * config/nds32/nds32.md (call_internal, call_value_internal,
982 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
983
984 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
985
986 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
987 typo.
988
989 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
990
991 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
992 in comments
993
994 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
995
996 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
997
998 2019-02-10 Jakub Jelinek <jakub@redhat.com>
999
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.
1003
1004 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1005
1006 PR lto/89272
1007 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
1008 polymorphic types.
1009
1010 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1011
1012 * config/nds32/nds32.md (trap): New pattern.
1013
1014 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1015
1016 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
1017 dwarf span.
1018
1019 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1020
1021 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
1022 to split POST_INC.
1023
1024 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1025
1026 * ipa-visibility.c (localize_node): Also do not localize
1027 LDPR_PREVAILING_DEF_IRONLY_EXP.
1028
1029 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1030
1031 PR lto/87957
1032 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
1033 instead of type_with_linkage.
1034
1035 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1036
1037 PR ipa/88755
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.
1041
1042 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
1043
1044 * config/rs6000/rs6000-string.c (expand_compare_loop,
1045 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
1046 memcmp/strncmp.
1047
1048 2019-02-09 Jakub Jelinek <jakub@redhat.com>
1049
1050 PR middle-end/89246
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.
1054
1055 2019-02-09 Alan Modra <amodra@gmail.com>
1056
1057 PR target/88343
1058 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
1059 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
1060 setup.
1061
1062 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
1063
1064 PR middle-end/88560
1065 * lra-constraints.c (process_alt_operands): Don't increase reject
1066 for memory when offset memory is required.
1067
1068 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
1069
1070 * config/s390/vector.md: Implement vector copysign.
1071
1072 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1073
1074 * expr.c (expand_constructor): Correct indentations.
1075
1076 2019-02-08 Richard Biener <rguenther@suse.de>
1077
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.
1086
1087 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
1088
1089 * config/s390/constraints.md (jdd): New constraint.
1090
1091 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1092
1093 PR target/89229
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.
1097
1098 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1099
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.
1104
1105 2019-02-08 Richard Biener <rguenther@suse.de>
1106
1107 PR middle-end/89223
1108 * tree-data-ref.c (initialize_matrix_A): Fail if constant
1109 doesn't fit in HWI.
1110 (analyze_subscript_affine_affine): Handle failure from
1111 initialize_matrix_A.
1112
1113 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1114
1115 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
1116 cfun everywhere.
1117
1118 2019-02-07 David Malcolm <dmalcolm@redhat.com>
1119
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
1124 purged on exit.
1125 * tree-vectorizer.c
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
1130 reset.
1131 * tree-vectorizer.h (class auto_purge_vect_location): New class.
1132
1133 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1134
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
1141 MINUS (MAX MIN).
1142
1143 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
1144
1145 PR target/89229
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.
1149
1150 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
1151
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
1156 float.
1157 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
1158 a new vector type with the alignment of the scalar memory operand.
1159
1160 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
1161 Jakub Jelinek <jakub@redhat.com>
1162
1163 PR bootstrap/88714
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
1167 MINUS.
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.
1172
1173 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1174
1175 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
1176 Make it a C initializer.
1177
1178 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1179
1180 PR/target 88850
1181 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
1182
1183 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1184
1185 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
1186 Use neon_dot<q> for type.
1187 (neon_<sup>dot_lane<vsi2qi>): Likewise.
1188
1189 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1190
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.
1195
1196 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
1197
1198 PR rtl-optimization/89225
1199 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
1200 sizes check.
1201
1202 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
1203
1204 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
1205 after restoring registers saved to allocate the frame on Windows.
1206
1207 2019-02-06 Richard Biener <rguenther@suse.de>
1208
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):
1219 Simplify.
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.
1227
1228 2019-02-06 Jakub Jelinek <jakub@redhat.com>
1229
1230 PR middle-end/89210
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.
1235
1236 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
1237
1238 PR target/88856
1239 * config/s390/s390.md: Remove load and test FP splitter.
1240
1241 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1242
1243 PR target/89112
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.
1250
1251 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1252
1253 PR target/89112
1254 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
1255 for the long branch case.
1256
1257 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1258
1259 PR target/89188
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.
1265
1266 PR rtl-optimization/89195
1267 * combine.c (make_extraction): For MEMs, don't extract bytes outside
1268 of the original MEM.
1269
1270 2019-02-05 Martin Liska <mliska@suse.cz>
1271
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.
1277
1278 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1279
1280 PR target/89186
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).
1283
1284 2019-02-05 Richard Biener <rguenther@suse.de>
1285
1286 PR middle-end/89150
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.
1291
1292 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
1293
1294 PR c/88698
1295 * doc/extend.texi (Vector Extensions): Add an example of using vector
1296 types together with x86 intrinsics.
1297
1298 2019-02-04 Alan Modra <amodra@gmail.com>
1299
1300 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
1301 str[] size to 160, and comment.
1302
1303 2019-02-04 Alan Modra <amodra@gmail.com>
1304
1305 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
1306 (rs6000_pltseq_template): Guard output of TLS markers with
1307 TARGET_TLS_MARKERS.
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.
1314
1315 2019-02-04 Martin Liska <mliska@suse.cz>
1316
1317 PR ipa/88985
1318 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
1319 out when ipa_fn_summaries does not contain entry for callee.
1320
1321 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
1322
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.
1336
1337 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
1338
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".
1341
1342 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1343
1344 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
1345 into consideration.
1346
1347 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1348
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.
1353
1354 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
1355
1356 PR target/89071
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.
1363
1364 2019-02-03 Richard Biener <rguenther@suse.de>
1365
1366 PR debug/87295
1367 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
1368 orig.
1369
1370 2019-02-02 Jakub Jelinek <jakub@redhat.com>
1371
1372 PR middle-end/87887
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.
1376
1377 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
1378
1379 * combine.c (try_combine): Do not print "Can't combine" messages unless
1380 printing failed combination attempts.
1381
1382 2019-02-01 Martin Jambor <mjambor@suse.cz>
1383
1384 PR hsa/87863
1385 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
1386 segment and global segment variables before making them static.
1387
1388 2019-02-01 Martin Jambor <mjambor@suse.cz>
1389
1390 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
1391 missed optimization dump with dump_enabled_p.
1392
1393 2019-02-01 Richard Biener <rguenther@suse.de>
1394
1395 PR middle-end/88597
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.
1403
1404 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
1405
1406 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
1407
1408 2019-02-01 Jakub Jelinek <jakub@redhat.com>
1409
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.
1414
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.
1421
1422 2019-02-01 Richard Biener <rguenth@suse.de>
1423
1424 PR rtl-optimization/88593
1425 * mode-switching.c (optimize_mode_switching): Free dominators before
1426 calling cleanup_cfg.
1427
1428 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
1429
1430 PR tree-optimization/88932
1431 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
1432
1433 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1434
1435 PR middle-end/89137
1436 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
1437 bogus clang warning.
1438
1439 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
1440
1441 PR target/89071
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.
1446
1447 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
1448
1449 PR tree-optimization/89008
1450 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
1451 process anything of the form X * 0.
1452
1453 2019-01-31 Richard Biener <rguenther@suse.de>
1454
1455 PR tree-optimization/89135
1456 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
1457 with abnormal preds.
1458
1459 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1460
1461 PR sanitizer/89124
1462 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
1463 always_inline callees into no_sanitize_address callers.
1464
1465 2019-01-31 Richard Biener <rguenther@suse.de>
1466
1467 PR rtl-optimization/89115
1468 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
1469
1470 2019-01-30 Martin Sebor <msebor@redhat.com>
1471
1472 PR other/89106
1473 * doc/extend.texi (cast to a union): Correct and expand.
1474
1475 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
1476
1477 PR rtl-optimization/87246
1478 * lra-constraints.c (simplify_operand_subreg): Reload memory
1479 in subreg if the address became invalid.
1480
1481 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
1482
1483 PR target/87064
1484 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
1485 Disable for little-endian.
1486
1487 2019-01-30 Richard Biener <rguenther@suse.de>
1488
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
1493 to the default.
1494
1495 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
1496
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
1500 move.
1501
1502 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
1503
1504 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
1505
1506 2019-01-30 Richard Biener <rguenther@suse.de>
1507
1508 PR tree-optimization/89111
1509 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
1510 canonicalization to appropriately sized access types.
1511
1512 2019-01-30 Jakub Jelinek <jakub@redhat.com>
1513
1514 PR c++/89105
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.
1518
1519 2019-01-30 Ulrich Drepper <drepper@redhat.com>
1520
1521 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
1522 after '='.
1523
1524 2019-01-29 Martin Sebor <msebor@redhat.com>
1525
1526 PR c/88956
1527 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
1528
1529 2019-01-29 Jakub Jelinek <jakub@redhat.com>
1530
1531 PR c++/66676
1532 PR ipa/89104
1533 * omp-simd-clone.c (simd_clone_clauses_extract)
1534 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
1535 OMP_CLAUSE_ALIGNED_ALIGNMENT.
1536
1537 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
1538
1539 * config.gcc: Force .init_array for ARC.
1540
1541 2019-01-29 Richard Biener <rguenther@suse.de>
1542
1543 PR debug/87295
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.
1548
1549 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1550
1551 PR middle-end/89002
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
1555 sequence.
1556
1557 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
1558
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.
1562
1563 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1564
1565 PR target/89073
1566 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
1567 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
1568 x86 ISA options.
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.
1580
1581 2019-01-28 Richard Biener <rguenther@suse.de>
1582
1583 PR debug/89076
1584 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
1585 support removal.
1586
1587 2019-01-28 Richard Biener <rguenther@suse.de>
1588
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.
1596
1597 2019-01-27 Jakub Jelinek <jakub@redhat.com>
1598
1599 PR target/87214
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.
1607
1608 2019-01-26 Martin Jambor <mjambor@suse.cz>
1609
1610 PR ipa/88933
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
1615 all callers.
1616 * tree-cfgcleanup.c: Include cgraph.h.
1617 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
1618 Declare.
1619 * ipa-prop.c: Include tree-cfgcleanup.h.
1620 (ipcp_transform_function): Call
1621 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
1622
1623 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
1624
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.
1630
1631 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
1632
1633 PR target/88469
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.
1640
1641 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1642
1643 PR middle-end/89037
1644 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
1645 instead of accessing TREE_INT_CST_ELT directly.
1646
1647 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
1648
1649 * doc/sourcebuild.texi (Environment attributes): Add fenv and
1650 fenv_exceptions description.
1651
1652 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
1653
1654 PR rtl-optimization/87763
1655 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
1656 Allow SUBREG when matching CC_NZmode compare.
1657
1658 2019-01-25 Richard Biener <rguenther@suse.de>
1659
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.
1663
1664 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1665
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.
1669
1670 2019-01-25 Richard Biener <rguenther@suse.de>
1671
1672 PR tree-optimization/86865
1673 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1674 Reject non-do-while loops.
1675
1676 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
1677
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):
1699 Use CONST_INT_P.
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):
1711 Use CONST_INT_P.
1712 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1713 Use CONST_DOUBLE_P.
1714 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1715 CONST_WIDE_INT_P.
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
1720 reg_or_subregno:
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
1736 SYMBOL_REF_P.
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
1746 reg_or_subregno.
1747 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1748 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1749 MEM_P and REG_P.
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.
1781
1782 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1783
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.
1791
1792 2019-01-24 Jakub Jelinek <jakub@redhat.com>
1793
1794 PR debug/89006
1795 * config/i386/i386.c (ix86_pic_register_p): Return true for
1796 UNSPEC_SET_GOT too.
1797
1798 PR tree-optimization/88964
1799 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1800 punt if HONOR_SNANS (chrec).
1801
1802 PR middle-end/89015
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
1807 or GIMPLE_OMP_TASK.
1808
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.
1812
1813 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
1814
1815 PR target/88469
1816 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
1817 force the alignment of m_val.
1818
1819 2019-01-24 Richard Biener <rguenther@suse.de>
1820
1821 PR lto/87187
1822 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
1823 When in "legacy" debug mode make sure to reset self-origins.
1824
1825 2019-01-24 Martin Liska <mliska@suse.cz>
1826
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.
1832
1833 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
1834
1835 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
1836 * vr-values.c (find_case_label_ranges): Fix a comment typo.
1837
1838 2019-01-23 Bin Cheng <bin.cheng@arm.com>
1839 Steve Ellcey <sellcey@marvell.com>
1840
1841 PR target/85711
1842 * recog.c (address_operand): Return false on wrong mode for address.
1843 (constrain_operands): Check for mode with 'p' constraint.
1844
1845 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
1846
1847 PR target/88998
1848 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
1849 Disparage MMX alternative.
1850 (sse2_cvtpd2pi): Ditto.
1851 (sse2_cvttpd2pi): Ditto.
1852
1853 2019-01-23 David Malcolm <dmalcolm@redhat.com>
1854
1855 PR driver/89014
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.
1859
1860 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1861
1862 PR c/44715
1863 * doc/extend.texi: Document break and continue behavior in
1864 statement expressions.
1865
1866 2019-01-23 Richard Biener <rguenther@suse.de>
1867
1868 PR tree-optimization/89008
1869 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
1870 not leave another stray operand.
1871
1872 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1873
1874 * BASE-VER: Bump to 9.0.1.
1875
1876 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
1877
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.
1881
1882 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
1883
1884 * config/arc/atomic.md: Add operand to DMB instruction.
1885
1886 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1887
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.
1892
1893 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
1894
1895 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
1896
1897 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1898
1899 PR target/88965
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.
1903
1904 PR middle-end/88968
1905 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
1906 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
1907
1908 PR target/87064
1909 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
1910 Disable for little endian.
1911
1912 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1913
1914 PR target/88469
1915 * config/arm/arm.c (arm_needs_double_word_align): Check
1916 DECL_BIT_FIELD_TYPE.
1917
1918 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
1919 H.J. Lu <hongjiu.lu@intel.com>
1920
1921 PR target/88909
1922 * config/i386/i386-builtin.def: Add mask2 to all builtin
1923 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
1924 SPECIAL_ARGS.
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
1937 support.
1938 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
1939
1940 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
1941
1942 PR target/88954
1943 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
1944 noplt attribute.
1945
1946 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1947
1948 PR target/88469
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.
1955
1956 2019-01-22 Richard Biener <rguenther@suse.de>
1957
1958 PR tree-optimization/88862
1959 * graphite-scop-detection.c
1960 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
1961
1962 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
1963
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.
1968
1969 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
1970
1971 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
1972 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
1973
1974 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1975
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.
1980
1981 PR rtl-optimization/88904
1982 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
1983 any nonequal registers before processing BB_END (b).
1984
1985 PR target/88905
1986 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
1987 GET_MODE (op0).
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.
1991
1992 PR rtl-optimization/49429
1993 PR target/49454
1994 PR rtl-optimization/86334
1995 PR target/88906
1996 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
1997 addressable from here...
1998 (emit_block_op_via_libcall): ... to here.
1999
2000 2019-01-22 Richard Biener <rguenther@suse.de>
2001
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
2006 gather SLP defs.
2007
2008 2019-01-22 Alan Modra <amodra@gmail.com>
2009
2010 PR target/88614
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,
2022 delete split..
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.
2034
2035 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
2036
2037 PR target/88938
2038 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
2039 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
2040
2041 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
2042
2043 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
2044 string contents as hash_map keys.
2045
2046 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2047
2048 PR c/88928
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.
2055
2056 2019-01-21 Richard Biener <rguenther@suse.de>
2057
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.
2062
2063 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
2064
2065 PR target/71659
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.
2085
2086 2019-01-20 Martin Jambor <mjambor@suse.cz>
2087
2088 PR ipa/87615
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
2097 unmodified_parm.
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
2109 fbi, limit AA walk.
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
2118 get_dynamic_type.
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.
2125
2126 2019-01-19 Jakub Jelinek <jakub@redhat.com>
2127
2128 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
2129 outside of #if CHECKING_P code.
2130
2131 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
2132
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.
2141
2142 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
2143
2144 PR target/88892
2145 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
2146 operands.
2147
2148 2019-01-18 Richard Biener <rguenther@suse.de>
2149
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
2153 shifts by scalars.
2154
2155 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
2156
2157 PR target/88799
2158 * config/arm/arm-cpus.in (mp): New feature.
2159 (sec): 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.
2173
2174 2019-01-18 Martin Liska <mliska@suse.cz>
2175
2176 * params.def: Fix comment.
2177 * tree-profile.c (gimple_init_gcov_profiler): Bump function
2178 name.
2179 (gimple_gen_ic_func_profiler): Likewise.
2180
2181 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2182
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.
2195
2196 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2197
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.
2206
2207 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
2208
2209 PR target/85596
2210 * doc/install.texi (with-multilib-list): Document for aarch64.
2211
2212 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2213
2214 PR target/88734
2215 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
2216 (("..."))) with ("...").
2217
2218 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
2219
2220 * doc/extend.texi (Built-in Functions for Memory Model Aware
2221 Atomic Operations): Document atomic fetch and nand.
2222
2223 2019-01-18 Martin Liska <mliska@suse.cz>
2224 Richard Biener <rguenther@suse.de>
2225
2226 PR middle-end/88587
2227 * cgraph.h (create_version_clone_with_body): Add new argument
2228 with attributes.
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
2234 for declaration.
2235 (expand_target_clones): Do not call valid_attribute_p, it must
2236 be already done.
2237 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
2238 vector types.
2239
2240 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2241
2242 PR target/88734
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.
2246
2247 2019-01-17 Martin Sebor <msebor@redhat.com>
2248
2249 PR middle-end/88273
2250 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
2251 Handle anti-ranges the same as no range at all.
2252
2253 2018-01-17 Steve Ellcey <sellcey@cavium.com>
2254
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
2267 call.
2268
2269 2019-01-17 Martin Sebor <msebor@redhat.com>
2270
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
2277 disabled.
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.
2285
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>
2290
2291 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
2292
2293 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2294
2295 * doc/sourcebuild.texi: Document dg-require-effective-target
2296 llvm_binutils and offload_gcn.
2297
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>
2302
2303 * doc/sourcebuild.texi: Document dg-required-effective-target
2304 exceptions.
2305
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>
2312
2313 * config.gcc: Add amdgcn*-*-amdhsa configuration.
2314 * configure.ac: Check for dlopen.
2315 * configure: Regenerate.
2316
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>
2323
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.
2338
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>
2345
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.
2350
2351 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
2352
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.
2357
2358 2019-01-17 Tamar Christina <tamar.christina@arm.com>
2359
2360 PR target/88851
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.
2364
2365 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2366
2367 * config/aarch64/aarch64.c (ares_tunings): Define.
2368 * config/aarch64/aarch64-cores.def (ares): Use the above.
2369
2370 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2371
2372 PR target/88794
2373 Revert:
2374 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
2375
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.
2429
2430 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2431
2432 PR target/88794
2433 Revert:
2434 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
2435
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.
2443
2444 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2445
2446 PR target/88794
2447 Revert:
2448 2018-12-15 Jakub Jelinek <jakub@redhat.com>
2449
2450 PR target/88489
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.
2454
2455 2019-01-17 Richard Biener <rguenther@suse.de>
2456
2457 PR lto/86736
2458 * dwarf2out.c (want_pubnames): Never generate pubnames sections
2459 and friends for the LTO part of debug info.
2460
2461 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2462
2463 PR tree-optimization/86214
2464 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
2465 if x == y.
2466
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.
2471
2472 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
2473
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.
2479
2480 2019-01-16 David Malcolm <dmalcolm@redhat.com>
2481
2482 PR target/88861
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
2486 returns true.
2487
2488 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2489
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
2495 lane endianness.
2496
2497 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
2498
2499 * config/alpha/alpha.c (alpha_gimplify_va_arg):
2500 Handle split indirect COMPLEX_TYPE arguments.
2501
2502 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
2503
2504 PR target/86891
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
2512 CC_ADCmode.
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.
2530
2531 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2532
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.
2537
2538 2019-01-16 Martin Liska <mliska@suse.cz>
2539
2540 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
2541 for GCC driver.
2542 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
2543 a new argument.
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.
2548
2549 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
2550
2551 * godump.c (go_output_typedef): When outputting a typedef, refer
2552 to the underlying type by its name and not its structure.
2553
2554 2019-01-15 David Malcolm <dmalcolm@redhat.com>
2555
2556 PR c++/88795
2557 * tree.c (build_function_type): Assert that arg_types is not
2558 error_mark_node.
2559
2560 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
2561
2562 PR inline-asm/52813
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.
2569
2570 2019-01-15 Richard Biener <rguenther@suse.de>
2571
2572 PR debug/88046
2573 * dwarf2out.c (gen_member_die): Do not generate inheritance
2574 DIEs late.
2575
2576 2019-01-15 Richard Biener <rguenther@suse.de>
2577
2578 PR tree-optimization/88855
2579 * tree-if-conv.c (combine_blocks): Collect
2580 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
2581
2582 2019-01-15 Tom de Vries <tdevries@suse.de>
2583
2584 PR target/80547
2585 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
2586 lhs == NULL_TREE for gang-level reduction.
2587
2588 2019-01-15 Richard Biener <rguenther@suse.de>
2589 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2590
2591 PR ipa/88788
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.
2595
2596 2019-01-15 Jakub Jelinek <jakub@redhat.com>
2597
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.
2604
2605 2019-01-14 Andi Kleen <ak@linux.intel.com>
2606
2607 * Makefile.in: Lower autofdo sampling rate by 10x.
2608 * Makefile.tpl: Dito.
2609
2610 2019-01-14 Tom Honermann <tom@honermann.net>
2611
2612 * defaults.h: Define CHAR8_TYPE.
2613
2614 2019-01-14 Martin Sebor <msebor@redhat.com>
2615
2616 PR target/88638
2617 * doc/extend.texi (Darwin Format Checks): Clarify.
2618
2619 2019-01-14 Richard Biener <rguenther@suse.de>
2620
2621 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
2622 whether we are in (simplify ...) or (match ...) context.
2623
2624 2019-01-14 Jakub Jelinek <jakub@redhat.com>
2625
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.
2637
2638 2019-01-12 Tom de Vries <tdevries@suse.de>
2639
2640 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
2641 vector length using -fopenacc-dim.
2642
2643 2019-01-12 Tom de Vries <tdevries@suse.de>
2644
2645 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
2646 lengths into account.
2647
2648 2019-01-12 Svante Signell <svante.signell@gmail.com>
2649
2650 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
2651 (TARGET_CAN_SPLIT_STACK): Define.
2652 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2653
2654 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2655
2656 * params.def (inline-unit-growth): Set to 40.
2657
2658 2019-01-12 Jakub Jelinek <jakub@redhat.com>
2659
2660 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
2661
2662 2019-01-12 Tom de Vries <tdevries@suse.de>
2663
2664 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
2665 region calling vector-partitionable routine, set default_vector_length
2666 to WARP_SIZE.
2667
2668 2019-01-12 Tom de Vries <tdevries@suse.de>
2669
2670 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
2671 variable default_vector_length.
2672
2673 2019-01-12 Tom de Vries <tdevries@suse.de>
2674
2675 PR middle-end/88703
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
2678 dimensions limits.
2679
2680 2019-01-12 Tom de Vries <tdevries@suse.de>
2681
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
2688 parameter.
2689 * target.def (validate_dims): Add used parameter in DEFHOOK.
2690 * targhooks.h (default_goacc_validate_dims): Add used parameter.
2691
2692 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2693
2694 PR middle-end/85956
2695 PR lto/88733
2696 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2697 field.
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.
2702
2703 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
2704
2705 PR rtl-optimization/87305
2706 * lra-assigns.c
2707 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2708 for little endian pseudos used as paradoxical subreg.
2709
2710 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2711
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.
2716
2717 2019-01-11 Alan Modra <amodra@gmail.com>
2718
2719 PR 88777
2720 PR 88614
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.
2725
2726 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2727
2728 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2729
2730 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2731
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
2737 argument.
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
2757 to false.
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.
2776
2777 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2778
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.
2788
2789 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2790
2791 PR bootstrap/88714
2792 * passes.c (finish_optimization_passes): Call print_combine_total_stats
2793 inside of pass_combine_1 dump rather than pass_profile_1.
2794
2795 2019-01-11 Tom de Vries <tdevries@suse.de>
2796
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
2801 num_workers 16.
2802
2803 2019-01-11 Tom de Vries <tdevries@suse.de>
2804
2805 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2806
2807 2019-01-11 Jan Beulich <jbeulich@suse.com>
2808
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
2813 syntax.
2814
2815 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2816
2817 PR target/88785
2818 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
2819 define_expand.
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".
2826
2827 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2828
2829 * config/aarch64/aarch64-builtins.c
2830 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
2831 (aarch64_init_simd_builtins): ...Here
2832
2833 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
2834
2835 PR rtl-optimization/87305
2836 * lra-assigns.c
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.
2841
2842 2019-01-10 Richard Biener <rguenther@suse.de>
2843
2844 PR tree-optimization/88792
2845 * tree-ssa-pre.c (get_representative_for): Do not return a
2846 value-number here.
2847
2848 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2849
2850 PR middle-end/84877
2851 PR bootstrap/88450
2852 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
2853 (assign_parm_setup_block): Do the argument slot realignment here
2854 instead.
2855
2856 2019-01-10 Stefan Agner <stefan@agner.ch>
2857
2858 PR target/88648
2859 * config/arm/arm.c (arm_option_override_internal): Force
2860 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
2861
2862 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2863
2864 PR c/88568
2865 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
2866 DECL_EXTERNAL.
2867
2868 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2869
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.
2883 (vcmla_f16): New.
2884 (vcmlaq_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.
2911 (vcmla_f32): New.
2912 (vcmlaq_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.
2950
2951 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2952
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.
2982 (vcmla_f16): New.
2983 (vcmlaq_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.
3012 (vcmla_f32): New.
3013 (vcmlaq_f32): New.
3014 (vcmlaq_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.
3044 (rot): New.
3045 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
3046
3047 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3048
3049 PR other/16615
3050
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.
3061
3062 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3063
3064 PR other/16615
3065
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.
3119 * dse.c: Likewise.
3120 * emit-rtl.c: Likewise.
3121 * emit-rtl.h: Likewise.
3122 * except.c: Likewise.
3123 * expmed.c: Likewise.
3124 * expr.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.
3144 * ipa.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.
3151 * ira.c: Likewise.
3152 * ira.h: 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.
3162 * lra.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.
3170 * ree.c: Likewise.
3171 * reload.c: Likewise.
3172 * reload1.c: Likewise.
3173 * reorg.c: Likewise.
3174 * resource.c: Likewise.
3175 * rtl.def: Likewise.
3176 * rtl.h: 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.
3214 * tree.c: Likewise.
3215 * tree.h: Likewise.
3216 * vr-values.c: Likewise.
3217
3218 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
3219
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.
3228
3229 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3230
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.
3258
3259 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3260 James Clarke <jrtc27@jrtc27.com>
3261
3262 PR target/84010
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.
3348
3349 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3350
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.
3357
3358 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3359 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3360
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
3364 if bti is enabled.
3365 * config/aarch64/aarch64-bti-insert.c: New file.
3366 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
3367 pass.
3368 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
3369 new bti pass.
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.
3374
3375 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3376
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.
3387
3388 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3389
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.
3397
3398 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3399
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.
3408
3409 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3410
3411 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
3412 ARMv8.5-A.
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.
3416
3417 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3418
3419 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
3420 (xorsign<mode>3): Likewise.
3421
3422 2019-01-09 Jelinek <jakub@redhat.com>
3423
3424 PR middle-end/88758
3425 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
3426 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
3427
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.
3431
3432 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3433
3434 * doc/invoke.texi (-Os): Remove trailing spaces.
3435 (-finline-functions): Remove reference to -O2.
3436
3437 2019-01-08 Jakub Jelinek <jakub@redhat.com>
3438
3439 PR rtl-optimization/79593
3440 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
3441
3442 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
3443 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
3444
3445 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
3446
3447 PR bootstrap/88721
3448 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
3449 to -1 on entry.
3450
3451 PR debug/88723
3452 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
3453 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
3454
3455 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
3456
3457 PR target/88717
3458 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
3459 ix86_avx_u128_mode_entry.
3460
3461 2019-01-08 Martin Liska <mliska@suse.cz>
3462
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.
3467
3468 2019-01-08 Richard Biener <rguenther@suse.de>
3469
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.
3476
3477 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
3478
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.
3499
3500 2019-01-08 Alan Modra <amodra@gmail.com>
3501
3502 PR target/88614
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.
3511
3512 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3513
3514 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
3515 optimization for masked stores.
3516
3517 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3518
3519 PR middle-end/88567
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.
3524
3525 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
3526
3527 PR target/86891
3528 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
3529 unsigned_p. Handle signed and unsigned overflow correction as
3530 required.
3531 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
3532 prototype.
3533 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
3534 for operand 2.
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
3553 operands.
3554 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
3555 patterns.
3556 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
3557 patterns.
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.
3563
3564 2019-01-07 Richard Biener <rguenther@suse.de>
3565
3566 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
3567 of tree_operand_hash.
3568
3569 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3570
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.
3576
3577 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3578
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, ... }.
3586
3587 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
3588
3589 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
3590 with x86_64-pc-linux-gnu.
3591
3592 2019-01-07 Tom de Vries <tdevries@suse.de>
3593
3594 PR target/85486
3595 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
3596 function.
3597 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
3598 routines.
3599
3600 2019-01-07 Jakub Jelinek <jakub@redhat.com>
3601
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.
3605
3606 PR debug/88723
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.
3612
3613 PR tree-optimization/88676
3614 * tree-ssa-phiopt.c (two_value_replacement): New function.
3615 (tree_ssa_phiopt_worker): Call it.
3616
3617 PR sanitizer/88619
3618 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
3619 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
3620
3621 PR c++/85052
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.
3635
3636 2019-01-07 Tom de Vries <tdevries@suse.de>
3637
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
3652 vectors.
3653 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
3654 large vectors.
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.
3665
3666 2019-01-07 Tom de Vries <tdevries@suse.de>
3667
3668 PR target/85381
3669 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
3670 empty loops.
3671
3672 2019-01-07 Tom de Vries <tdevries@suse.de>
3673
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
3680 to propagate state.
3681 (nvptx_shared_propagate): Initialize vector bcast partition and
3682 synchronization state.
3683 (nvptx_single): Generalize to enable vectors to use shared-memory
3684 to propagate state.
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.
3689
3690 2019-01-07 Tom de Vries <tdevries@suse.de>
3691
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
3695 PTX_WARP_SIZE.
3696
3697 2019-01-07 Tom de Vries <tdevries@suse.de>
3698
3699 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3700 as late as possible.
3701
3702 2019-01-07 Tom de Vries <tdevries@suse.de>
3703
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.
3709
3710 2019-01-07 Tom de Vries <tdevries@suse.de>
3711
3712 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3713
3714 2019-01-07 Tom de Vries <tdevries@suse.de>
3715
3716 * omp-offload.c (oacc_get_min_dim): New function.
3717 * omp-offload.h (oacc_get_min_dim): Declare.
3718
3719 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
3720
3721 PR target/88521
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.
3724
3725 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3726
3727 PR tree-opt/86020
3728 Revert:
3729 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
3730
3731 * ipa-inline.c (edge_badness): Use inlined_time instead of
3732 inline_summaries->get.
3733
3734 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3735
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.
3740
3741 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3742
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.
3750
3751 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3752
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
3760 new parameters.
3761 * ipa-inline.c (can_inline_edge_by_limits_p,
3762 want_inline_small_function_p): Use new parameters.
3763
3764 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3765
3766 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3767
3768 2019-01-05 Jakub Jelinek <jakub@redhat.com>
3769
3770 PR middle-end/82564
3771 PR target/88620
3772 * expr.c (expand_assignment): For calls returning VLA structures
3773 if to_rtx is not a MEM, force it into a stack temporary.
3774
3775 PR debug/88635
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
3783 2018-11-09 changes.
3784
3785 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
3786
3787 * params.def (hot-bb-count-ws-permille): Set to 990.
3788
3789 2019-01-04 Martin Sebor <msebor@redhat.com>
3790
3791 PR c/88546
3792 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3793 leaf.
3794
3795 2019-01-04 Martin Sebor <msebor@redhat.com>
3796
3797 PR c/88363
3798 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3799
3800 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3801
3802 * gdbinit.in: Turn off pagination for the skip commands, restore
3803 it to previous state afterwards.
3804
3805 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3806
3807 PR target/88594
3808 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3809 of GET_MODE (opN) as modes of the libcall arguments.
3810
3811 2019-01-04 Jan Beulich <jbeulich@suse.com>
3812
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
3840 instead of =Yk.
3841
3842 2019-01-03 Martin Sebor <msebor@redhat.com>
3843
3844 PR tree-optimization/88659
3845 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
3846
3847 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
3848
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.
3852
3853 2019-01-03 Tom de Vries <tdevries@suse.de>
3854
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
3857 function.
3858 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
3859
3860 2019-01-03 Tom de Vries <tdevries@suse.de>
3861
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.
3866
3867 2019-01-03 Tom de Vries <tdevries@suse.de>
3868
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.
3872
3873 2019-01-03 Tom de Vries <tdevries@suse.de>
3874
3875 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
3876 factored out of ...
3877 (nvptx_goacc_validate_dims): ... here.
3878
3879 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3880
3881 PR tree-optimization/85574
3882 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
3883 structure.
3884 (struct ssa_equip_hash_traits): Declare.
3885 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
3886
3887 2019-01-03 Jakub Jelinek <jakub@redhat.com>
3888
3889 PR debug/88644
3890 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
3891 change it to qualified_type.
3892
3893 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3894
3895 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
3896 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
3897
3898 2019-01-02 Martin Sebor <msebor@redhat.com>
3899 Jeff Law <law@redhat.com>
3900
3901 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
3902 (get_range_strlen_tree): Update appropriately.
3903 (get_range_strlen)
3904 * gimple-fold.h (get_range_strlen): Drop unused last argument.
3905
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.
3914
3915 PR middle-end/88663
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
3922 return value.
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.
3929
3930 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
3931
3932 PR lto/88130
3933 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
3934 false at WPA time when body was removed.
3935
3936 2019-01-02 Martin Liska <mliska@suse.cz>
3937
3938 PR tree-optimization/88650
3939 * predict.c (set_even_probabilities): Calculate probability
3940 remainer only when really used.
3941
3942 2019-01-02 Richard Biener <rguenther@suse.de>
3943
3944 PR middle-end/88651
3945 * tree-data-ref.c (analyze_subscript_affine_affine): Use
3946 widest_ints when mangling max_stmt_execution results.
3947
3948 2019-01-02 Richard Biener <rguenther@suse.de>
3949
3950 PR tree-optimization/88621
3951 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
3952 bitfields when canoncalizing.
3953
3954 2019-01-02 Richard Biener <rguenther@suse.de>
3955
3956 PR target/87545
3957 * config/i386/x86-tune-costs.h (intel_cost): Adjust
3958 cost of cheap SSE instruction.
3959
3960 2019-01-02 Richard Biener <rguenther@suse.de>
3961
3962 PR ipa/85574
3963 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
3964 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
3965 function.
3966 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
3967 set after UIDs before splitting them.
3968
3969 2019-01-01 Martin Sebor <msebor@redhat.com>
3970 Jeff Law <law@redhat.com>
3971
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.
3975
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
3988 formatting issues.
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.
3996
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.
4005
4006 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
4007
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.
4015
4016 2019-01-01 Jakub Jelinek <jakub@redhat.com>
4017
4018 Update copyright years.
4019
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.
4032 \f
4033 Copyright (C) 2019 Free Software Foundation, Inc.
4034
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.