6045ad0d2484288522582b1eaa37b9e4194af155
[gcc.git] / gcc / ChangeLog
1 2019-02-15 Jakub Jelinek <jakub@redhat.com>
2
3 PR other/89342
4 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
5 optimize_debug.
6 * opth-gen.awk: Likewise.
7
8 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
9
10 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
11 Enable MMX, SSE and SSE2 by default.
12 * config/i386/i386.c (ix86_option_override_internal): Do not
13 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
14
15 2019-02-14 Jakub Jelinek <jakub@redhat.com>
16
17 PR rtl-optimization/89354
18 * combine.c (make_extraction): Punt if extraction_mode is narrower
19 than len bits.
20
21 2019-02-14 Maya Rashish <coypu@sdf.org>
22
23 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
24 * config/netbsd-d.c: New file.
25 * config/t-netbsd: Add netbsd-d.o
26
27 2018-02-14 Steve Ellcey <sellcey@marvell.com>
28
29 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
30 affects_type_identity to true for aarch64_vector_pcs.
31 (aarch64_comp_type_attributes): New function.
32 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
33
34 2019-02-14 Tamar Christina <tamar.christina@arm.com>
35
36 PR target/88850
37 * config/arm/iterators.md (ANY64): Add V4HF.
38
39 2019-02-14 Martin Liska <mliska@suse.cz>
40
41 PR rtl-optimization/89242
42 * dce.c (delete_unmarked_insns): Call free_dominance_info we
43 process a transformation.
44
45 2019-02-14 Jakub Jelinek <jakub@redhat.com>
46
47 PR tree-optimization/89314
48 * fold-const.c (fold_binary_loc): Cast strlen argument to
49 const char * before dereferencing it. Formatting fixes.
50
51 PR middle-end/89284
52 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
53
54 2019-02-13 Ian Lance Taylor <iant@golang.org>
55
56 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
57 and set current index for other optimizations.
58
59 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
60
61 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
62 nonimmediate_operand as operand 2 predicate.
63 (vec_set<VF2_512_256:mode>_0): Ditto.
64 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
65 (*vec_concatv2si): Remove alternative 2.
66 (*vec_concatv4si_0): Use vm constraint for alternative 0.
67 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
68 (vec_concatv2di): Split alternatives 4,5,6 to ...
69 (*vec_concatv2di_0) ... new pattern.
70
71 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
72
73 PR target/89190
74 * config/arm/arm.c (ldm_stm_operation_p) Set
75 addr_reg_in_reglist correctly for first register.
76 (load_multiple_sequence): Remove dead base check.
77 (gen_ldm_seq): Correctly set write_back for Thumb-1.
78
79 2019-02-13 Tamar Christina <tamar.christina@arm.com>
80
81 PR target/88847
82 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
83 Expose as @aarch64_pred_mov.
84 * config/aarch64/aarch64.c (aarch64_classify_address):
85 Use expand_insn which legitimizes operands.
86
87 2019-02-13 Martin Liska <mliska@suse.cz>
88
89 * builtins.h (expand_builtin_with_bounds): Remove declaration.
90 * calls.c (struct arg_data): Remove special_slot, pointer_arg
91 and pointer_offset fields.
92 (initialize_argument_information): Remove usage of dead
93 fields.
94 * cgraph.h (struct cgraph_thunk_info): Remove
95 add_pointer_bounds_args.
96 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
97 fields.
98 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
99 fields.
100 * config/i386/i386.c (ix86_function_arg_advance): Remove
101 unrelated comment.
102 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
103 (def_builtin): Remove usage of dead
104 fields.
105 (ix86_add_new_builtins): Likewise.
106 * ipa-fnsummary.c (compute_fn_summary): Likewise.
107 * ipa-icf.c (sem_function::equals_wpa): Likewise.
108 (sem_function::init): Likewise.
109 (sem_variable::merge): Likewise.
110 * ipa-visibility.c (function_and_variable_visibility): Likewise.
111 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
112 * lto-cgraph.c (lto_output_node): Likewise.
113 (lto_output_varpool_node): Likewise.
114 (input_node): Likewise.
115 (input_varpool_node): Likewise.
116 * lto-streamer-out.c (lto_output): Likewise.
117 * tree-inline.c (expand_call_inline): Remove usage of
118 assign_stmts.
119 * tree-inline.h (struct copy_body_data): Likewise.
120 * varpool.c (varpool_node::dump): Likewise.
121
122 2019-02-13 Jakub Jelinek <jakub@redhat.com>
123
124 PR middle-end/89303
125 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
126 into pt->vars_contains_escaped_heap instead of setting
127 pt->vars_contains_escaped_heap to it.
128
129 PR middle-end/89281
130 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
131 INTVAL (size), compare it to GET_MODE_MASK instead of
132 1 << GET_MODE_BITSIZE.
133
134 PR target/89290
135 * config/i386/predicates.md (x86_64_immediate_operand): Allow
136 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
137 -mcmodel=large.
138
139 2019-02-13 Martin Liska <mliska@suse.cz>
140
141 PR lto/88858
142 * cfgrtl.c (remove_barriers_from_footer): New function.
143 (try_redirect_by_replacing_jump): Use it.
144 (cfg_layout_redirect_edge_and_branch): Likewise.
145
146 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
147
148 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
149 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
150 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
151 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
152 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
153 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
154 New BU_CRYPTO_2.
155 * config/rs6000/rs6000.c (builtin_function_type)
156 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
157 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
158 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
159 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
160 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
161
162 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
163
164 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
165 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
166
167 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
168
169 PR target/89229
170 * config/i386/i386.md (*movoi_internal_avx): Revert revision
171 268678 and revision 268657.
172 (*movti_internal): Likewise.
173
174 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
175
176 PR target/89233
177 * config/s390/s390.c (s390_decompose_address): Update comment.
178 (s390_check_qrst_address): Reject invalid address forms after
179 LRA.
180
181 2019-02-12 Martin Liska <mliska@suse.cz>
182
183 PR lto/88876
184 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
185 we need default values of funct_state for a function that
186 is not optimized.
187
188 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
189
190 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
191 the object to pick the size of stores on strict-alignment platforms.
192
193 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
194 (*movdi_insn_sp32): Likewise.
195 (*movdi_insn_sp64): Likewise.
196
197 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
198
199 PR lto/88677
200 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
201 types that needs constructiong.
202 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
203
204 2019-02-12 Richard Biener <rguenther@suse.de>
205
206 PR tree-optimization/89253
207 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
208 duplicate the loop.
209
210 2019-02-11 David Malcolm <dmalcolm@redhat.com>
211
212 PR lto/88147
213 * input.c (selftest::test_line_offset_overflow): New selftest.
214 (selftest::input_c_tests): Call it.
215
216 2019-02-11 Martin Sebor <msebor@redhat.com>
217
218 PR tree-optimization/88771
219 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
220 when -Wstringop-overflow is set.
221 (builtin_memref::builtin_memref): Adjust excessive upper bound
222 only when lower bound is not excessive.
223 (maybe_diag_overlap): Detect and diagnose excessive bounds via
224 -Wstringop-ovefflow.
225 (maybe_diag_offset_bounds): Rename...
226 (maybe_diag_access_bounds): ...to this.
227 (check_bounds_or_overlap): Adjust for name change above.
228
229 2019-02-11 Martin Sebor <msebor@redhat.com>
230
231 PR c++/87996
232 * builtins.c (max_object_size): Move from here...
233 * builtins.h (max_object_size): ...and here...
234 * tree.c (max_object_size): ...to here...
235 * tree.h (max_object_size): ...and here.
236
237 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
238
239 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
240 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
241 for correct semantics.
242
243 2019-02-11 Alan Modra <amodra@gmail.com>
244
245 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
246 -mlongcall and -mpltseq.
247 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
248 (RS/6000 and PowerPC Options <-mpltseq>): Document.
249 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
250 * config/rs6000/sysv4.opt (mpltseq): New option.
251 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
252 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
253 support is lacking. Don't allow -mpltseq with -mbss-plt.
254 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
255 -mpltseq given for ELFv1.
256 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
257 Only use UNSPEC_PLTSEQ for inline PLT calls.
258 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
259 use UNSPEC_PLTSEQ for inline PLT calls.
260 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
261 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
262 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
263 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
264 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
265 (pltseq_mtctr_<mode>): Likewise.
266
267 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
268
269 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
270 Solaris ld.
271 * configure: Regenerate.
272
273 2019-02-11 Jakub Jelinek <jakub@redhat.com>
274
275 PR bootstrap/88714
276 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
277 instead of r.
278
279 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
280
281 * function.c (assign_parm_setup_block): Use the stored
282 size, not the passed size, when allocating stack-space,
283 also for a parameter with alignment larger than
284 MAX_SUPPORTED_STACK_ALIGNMENT.
285
286 2019-02-11 Martin Liska <mliska@suse.cz>
287
288 PR ipa/89009
289 * ipa-cp.c (build_toporder_info): Remove usage of a param.
290 * ipa-inline.c (inline_small_functions): Likewise.
291 * ipa-pure-const.c (propagate_pure_const): Likewise.
292 (propagate_nothrow): Likewise.
293 * ipa-reference.c (propagate): Likewise.
294 * ipa-utils.c (struct searchc_env): Remove unused field.
295 (searchc): Always search across AVAIL_INTERPOSABLE.
296 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
297 the only called IPA pure const can properly not propagate
298 across interposable boundary.
299 * ipa-utils.h (ipa_reduced_postorder): Remove param.
300
301 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
302
303 * config/nds32/nds32.md (call_internal, call_value_internal,
304 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
305
306 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
307
308 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
309 typo.
310
311 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
312
313 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
314 in comments
315
316 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
317
318 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
319
320 2019-02-10 Jakub Jelinek <jakub@redhat.com>
321
322 PR tree-optimization/89268
323 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
324 if preds is non-NULL.
325
326 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
327
328 PR lto/89272
329 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
330 polymorphic types.
331
332 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
333
334 * config/nds32/nds32.md (trap): New pattern.
335
336 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
337
338 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
339 dwarf span.
340
341 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
342
343 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
344 to split POST_INC.
345
346 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
347
348 * ipa-visibility.c (localize_node): Also do not localize
349 LDPR_PREVAILING_DEF_IRONLY_EXP.
350
351 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
352
353 PR lto/87957
354 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
355 instead of type_with_linkage.
356
357 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
358
359 PR ipa/88755
360 * params.def (uninlined-function-insns, uninlined-function-time,
361 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
362 bound so we don't get overflows.
363
364 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
365
366 * config/rs6000/rs6000-string.c (expand_compare_loop,
367 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
368 memcmp/strncmp.
369
370 2019-02-09 Jakub Jelinek <jakub@redhat.com>
371
372 PR middle-end/89246
373 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
374 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
375 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
376
377 2019-02-09 Alan Modra <amodra@gmail.com>
378
379 PR target/88343
380 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
381 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
382 setup.
383
384 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
385
386 PR middle-end/88560
387 * lra-constraints.c (process_alt_operands): Don't increase reject
388 for memory when offset memory is required.
389
390 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
391
392 * config/s390/vector.md: Implement vector copysign.
393
394 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
395
396 * expr.c (expand_constructor): Correct indentations.
397
398 2019-02-08 Richard Biener <rguenther@suse.de>
399
400 PR tree-optimization/89247
401 * tree-if-conv.c: Include tree-cfgcleanup.h.
402 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
403 (tree_if_conversion): Pass through predicate vector.
404 (pass_if_conversion::execute): Do CFG cleanup and SSA update
405 inline, see if any if-converted loops we refrece in
406 LOOP_VECTORIZED calls vanished and fixup.
407 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
408
409 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
410
411 * config/s390/constraints.md (jdd): New constraint.
412
413 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
414
415 PR target/89229
416 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
417 upper 16 vector registers without TARGET_AVX512VL.
418 (*movti_internal): Likewise.
419
420 2019-02-08 Jakub Jelinek <jakub@redhat.com>
421
422 PR rtl-optimization/89234
423 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
424 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
425 (copy_reg_eh_region_note_backward): Likewise.
426
427 2019-02-08 Richard Biener <rguenther@suse.de>
428
429 PR middle-end/89223
430 * tree-data-ref.c (initialize_matrix_A): Fail if constant
431 doesn't fit in HWI.
432 (analyze_subscript_affine_affine): Handle failure from
433 initialize_matrix_A.
434
435 2019-02-08 Jakub Jelinek <jakub@redhat.com>
436
437 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
438 cfun everywhere.
439
440 2019-02-07 David Malcolm <dmalcolm@redhat.com>
441
442 PR tree-optimization/86637
443 PR tree-optimization/89235
444 * tree-vect-loop.c (optimize_mask_stores): Add an
445 auto_purge_vect_location sentinel to ensure that vect_location is
446 purged on exit.
447 * tree-vectorizer.c
448 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
449 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
450 to ensure that vect_location is purged on exit.
451 (pass_slp_vectorize::execute): Likewise, replacing the manual
452 reset.
453 * tree-vectorizer.h (class auto_purge_vect_location): New class.
454
455 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
456
457 * config/aarch64/iterators.md (max_opp): New code_attr.
458 (USMAX): New code iterator.
459 * config/aarch64/predicates.md (aarch64_smin): New predicate.
460 (aarch64_smax): Likewise.
461 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
462 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
463 MINUS (MAX MIN).
464
465 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
466
467 PR target/89229
468 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
469 for TARGET_AVX512VL.
470 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
471
472 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
473
474 * config/s390/s390-builtin-types.def: Add new types.
475 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
476 (s390_vec_xlw4): Make the memory operand into a const pointer.
477 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
478 float.
479 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
480 a new vector type with the alignment of the scalar memory operand.
481
482 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
483 Jakub Jelinek <jakub@redhat.com>
484
485 PR bootstrap/88714
486 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
487 arm_count_ldrdstrd_insns): New declarations.
488 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
489 MINUS.
490 (valid_operands_ldrd_strd): New function.
491 (arm_count_ldrdstrd_insns): New function.
492 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
493 sets instead of single DImode set and define new insns to match this.
494
495 2019-02-07 Tamar Christina <tamar.christina@arm.com>
496
497 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
498 Make it a C initializer.
499
500 2019-02-07 Tamar Christina <tamar.christina@arm.com>
501
502 PR/target 88850
503 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
504
505 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
506
507 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
508 Use neon_dot<q> for type.
509 (neon_<sup>dot_lane<vsi2qi>): Likewise.
510
511 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
512
513 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
514 Use neon_dot<q> for type.
515 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
516 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
517
518 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
519
520 PR rtl-optimization/89225
521 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
522 sizes check.
523
524 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
525
526 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
527 after restoring registers saved to allocate the frame on Windows.
528
529 2019-02-06 Richard Biener <rguenther@suse.de>
530
531 PR tree-optimization/89182
532 * graphite.h (cached_scalar_evolution_in_region): Declare.
533 * graphite.c (struct seir_cache_key): New.
534 (struct sese_scev_hash): Likewise.
535 (seir_cache): New global.
536 (cached_scalar_evolution_in_region): New function.
537 (graphite_transform_loops): Allocate and release seir_cache.
538 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
539 cached_scalar_evolution_in_region.
540 * graphite-scop-detection.c (scop_detection::can_represent_loop):
541 Simplify.
542 (scop_detection::graphite_can_represent_expr: Use
543 cached_scalar_evolution_in_region.
544 (scop_detection::stmt_simple_for_scop_p): Likewise.
545 (find_params_in_bb): Likewise.
546 (gather_bbs::before_dom_children): Likewise.
547 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
548 (add_loop_constraints): Likewise.
549
550 2019-02-06 Jakub Jelinek <jakub@redhat.com>
551
552 PR middle-end/89210
553 * fold-const-call.c (fold_const_vec_convert): Pass true as last
554 operand to new_unary_operation only if both element types are integral
555 and it isn't a widening conversion. Return NULL_TREE if
556 new_unary_operation failed.
557
558 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
559
560 PR target/88856
561 * config/s390/s390.md: Remove load and test FP splitter.
562
563 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
564
565 PR target/89112
566 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
567 expand_compare_loop, expand_block_compare_gpr,
568 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
569 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
570 #include "profile-count.h" and "predict.h" for types and functions
571 needed to work with REG_BR_PROB notes.
572
573 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
574
575 PR target/89112
576 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
577 for the long branch case.
578
579 2019-02-05 Jakub Jelinek <jakub@redhat.com>
580
581 PR target/89188
582 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
583 can throw, non-call exceptions are enabled and we can't delete
584 dead exceptions or alter cfg. Set must_clean if
585 delete_insn_and_edges returns true, don't set it blindly for calls.
586 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
587
588 PR rtl-optimization/89195
589 * combine.c (make_extraction): For MEMs, don't extract bytes outside
590 of the original MEM.
591
592 2019-02-05 Martin Liska <mliska@suse.cz>
593
594 PR gcov-profile/89000
595 * gcov.c (function_summary): Remove argument.
596 (file_summary): New function.
597 (print_usage): Replace tabs with spaces.
598 (generate_results): Use new function file_summary.
599
600 2019-02-05 Jakub Jelinek <jakub@redhat.com>
601
602 PR target/89186
603 * optabs.c (prepare_cmp_insn): Pass x and y to
604 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
605
606 2019-02-05 Richard Biener <rguenther@suse.de>
607
608 PR middle-end/89150
609 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
610 (struct bitmap_element): Drop chain_prev so we properly recurse on
611 the prev member, supporting tree views.
612 (struct bitmap_head): GTY skip the obstack member.
613
614 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
615
616 PR c/88698
617 * doc/extend.texi (Vector Extensions): Add an example of using vector
618 types together with x86 intrinsics.
619
620 2019-02-04 Alan Modra <amodra@gmail.com>
621
622 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
623 str[] size to 160, and comment.
624
625 2019-02-04 Alan Modra <amodra@gmail.com>
626
627 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
628 (rs6000_pltseq_template): Guard output of TLS markers with
629 TARGET_TLS_MARKERS.
630 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
631 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
632 to use inline PLT sequences.
633 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
634 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
635 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
636
637 2019-02-04 Martin Liska <mliska@suse.cz>
638
639 PR ipa/88985
640 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
641 out when ipa_fn_summaries does not contain entry for callee.
642
643 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
644
645 * config/sparc/sparc.h: Remove superfluous blank lines.
646 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
647 (got_register_rtx): ...this.
648 (sparc_got): Adjust to above renaming.
649 (sparc_tls_got): Likewise.
650 (sparc_delegitimize_address): Likewise.
651 (sparc_output_mi_thunk): Likewise.
652 (sparc_init_pic_reg): Likewise.
653 (save_local_or_in_reg_p): Fix test on the GOT register.
654 (USE_HIDDEN_LINKONCE): Move around.
655 (get_pc_thunk_name): Likewise.
656 (gen_load_pcrel_sym): Likewise.
657 (load_got_register): Likewise.
658
659 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
660
661 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
662 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
663
664 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
665
666 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
667 into consideration.
668
669 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
670
671 * config.gcc (with_nds32_lib, glibc):
672 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
673 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
674 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
675
676 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
677
678 PR target/89071
679 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
680 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
681 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
682 (*rcpsf2_sse): Ditto.
683 (*rsqrtsf2_sse): Ditto.
684 (sse4_1_round<mode<2): Ditto.
685
686 2019-02-03 Richard Biener <rguenther@suse.de>
687
688 PR debug/87295
689 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
690 orig.
691
692 2019-02-02 Jakub Jelinek <jakub@redhat.com>
693
694 PR middle-end/87887
695 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
696 Punt with warning on aggregate return or argument types. Ignore
697 type/mode checking for uniform arguments.
698
699 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
700
701 * combine.c (try_combine): Do not print "Can't combine" messages unless
702 printing failed combination attempts.
703
704 2019-02-01 Martin Jambor <mjambor@suse.cz>
705
706 PR hsa/87863
707 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
708 segment and global segment variables before making them static.
709
710 2019-02-01 Martin Jambor <mjambor@suse.cz>
711
712 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
713 missed optimization dump with dump_enabled_p.
714
715 2019-02-01 Richard Biener <rguenther@suse.de>
716
717 PR middle-end/88597
718 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
719 the instantiate cache.
720 (instantiate_scev_binary): Elide second operand procesing
721 if equal to the first.
722 * tree-chrec.c (chrec_contains_symbols): Add visited set.
723 (chrec_contains_undetermined): Likewise.
724 (tree_contains_chrecs): Likewise.
725
726 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
727
728 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
729
730 2019-02-01 Jakub Jelinek <jakub@redhat.com>
731
732 PR tree-optimization/89143
733 * wide-int-range.h (wide_int_range_absu): Declare.
734 * wide-int-range.cc (wide_int_range_absu): New function.
735 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
736
737 PR tree-optimization/88107
738 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
739 instead of assertion that eh_region_outermost is non-NULL, if it
740 is NULL, set *ALL to true and return NULL.
741 (move_sese_region_to_fn): Adjust caller, if all is set, call
742 duplicate_eh_regions with NULL region.
743
744 2019-02-01 Richard Biener <rguenth@suse.de>
745
746 PR rtl-optimization/88593
747 * mode-switching.c (optimize_mode_switching): Free dominators before
748 calling cleanup_cfg.
749
750 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
751
752 PR tree-optimization/88932
753 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
754
755 2019-01-31 Jakub Jelinek <jakub@redhat.com>
756
757 PR middle-end/89137
758 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
759 bogus clang warning.
760
761 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
762
763 PR target/89071
764 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
765 alternative to avoid partial SSE register stall for TARGET_AVX.
766 (truncdfsf2): Ditto.
767 (sse4_1_round<mode>2): Ditto.
768
769 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
770
771 PR tree-optimization/89008
772 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
773 process anything of the form X * 0.
774
775 2019-01-31 Richard Biener <rguenther@suse.de>
776
777 PR tree-optimization/89135
778 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
779 with abnormal preds.
780
781 2019-01-31 Jakub Jelinek <jakub@redhat.com>
782
783 PR sanitizer/89124
784 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
785 always_inline callees into no_sanitize_address callers.
786
787 2019-01-31 Richard Biener <rguenther@suse.de>
788
789 PR rtl-optimization/89115
790 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
791
792 2019-01-30 Martin Sebor <msebor@redhat.com>
793
794 PR other/89106
795 * doc/extend.texi (cast to a union): Correct and expand.
796
797 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
798
799 PR rtl-optimization/87246
800 * lra-constraints.c (simplify_operand_subreg): Reload memory
801 in subreg if the address became invalid.
802
803 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
804
805 PR target/87064
806 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
807 Disable for little-endian.
808
809 2019-01-30 Richard Biener <rguenther@suse.de>
810
811 PR rtl-optimization/89115
812 * opts.c (default_options_optimization): Reduce
813 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
814 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
815 to the default.
816
817 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
818
819 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
820 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
821 type of vector element when vec_extract is implemented by direct
822 move.
823
824 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
825
826 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
827
828 2019-01-30 Richard Biener <rguenther@suse.de>
829
830 PR tree-optimization/89111
831 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
832 canonicalization to appropriately sized access types.
833
834 2019-01-30 Jakub Jelinek <jakub@redhat.com>
835
836 PR c++/89105
837 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
838 for arguments to functions that are TU-local and shouldn't be
839 referenced by assembly.
840
841 2019-01-30 Ulrich Drepper <drepper@redhat.com>
842
843 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
844 after '='.
845
846 2019-01-29 Martin Sebor <msebor@redhat.com>
847
848 PR c/88956
849 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
850
851 2019-01-29 Jakub Jelinek <jakub@redhat.com>
852
853 PR c++/66676
854 PR ipa/89104
855 * omp-simd-clone.c (simd_clone_clauses_extract)
856 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
857 OMP_CLAUSE_ALIGNED_ALIGNMENT.
858
859 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
860
861 * config.gcc: Force .init_array for ARC.
862
863 2019-01-29 Richard Biener <rguenther@suse.de>
864
865 PR debug/87295
866 * dwarf2out.c (collect_skeleton_dies): New helper.
867 (copy_decls_for_unworthy_types): Call it.
868 (build_abbrev_table): Assert we do not try to replace
869 DW_AT_signature refs with local refs.
870
871 2019-01-28 Jakub Jelinek <jakub@redhat.com>
872
873 PR middle-end/89002
874 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
875 for lastprivate/linear IV, push gimplify context around gimplify_assign
876 and, if it needed any temporaries, pop it into a gimple bind around the
877 sequence.
878
879 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
880
881 * common.opt (-Wattribute-alias): Remove "no-" from name.
882 Make -Wattribute-alias command line option and
883 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
884
885 2019-01-28 Jakub Jelinek <jakub@redhat.com>
886
887 PR target/89073
888 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
889 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
890 x86 ISA options.
891 (bmi2): Add missing @opindex.
892 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
893 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
894 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
895 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
896 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
897 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
898 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
899 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
900 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
901 xsavec, xsaveopt and xsaves options.
902
903 2019-01-28 Richard Biener <rguenther@suse.de>
904
905 PR debug/89076
906 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
907 support removal.
908
909 2019-01-28 Richard Biener <rguenther@suse.de>
910
911 PR tree-optimization/88739
912 * tree-cfg.c (verify_types_in_gimple_reference): Verify
913 BIT_FIELD_REFs only are applied to mode-precision operands
914 when they are integral.
915 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
916 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
917 BIT_FIELD_REFs of non-mode-precision integral operands.
918
919 2019-01-27 Jakub Jelinek <jakub@redhat.com>
920
921 PR target/87214
922 * config/i386/sse.md
923 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
924 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
925 first constants in pairs are multiples of 2. Formatting fixes.
926 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
927 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
928 first constants in each quadruple are multiples of 4. Formatting fixes.
929
930 2019-01-26 Martin Jambor <mjambor@suse.cz>
931
932 PR ipa/88933
933 * tree-inline.c: Include tree-cfgcleanup.h.
934 (delete_unreachable_blocks_update_callgraph): Move...
935 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
936 ...here, make externally visible, make second argument bool, adjust
937 all callers.
938 * tree-cfgcleanup.c: Include cgraph.h.
939 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
940 Declare.
941 * ipa-prop.c: Include tree-cfgcleanup.h.
942 (ipcp_transform_function): Call
943 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
944
945 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
946
947 PR rtl-optimization/88846
948 * ira.c (process_set_for_memref_referenced_p): New.
949 (memref_referenced_p): Add new param. Use
950 process_set_for_memref_referenced_p. Add new switch cases.
951 (memref_used_between_p): Pass new arg to memref_referenced_p.
952
953 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
954
955 PR target/88469
956 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
957 argument ABI_BREAK. Set to true if the calculated alignment has
958 changed in gcc-9. Check bit-fields for their base type alignment.
959 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
960 (aarch64_function_arg_boundary): Likewise.
961 (aarch64_gimplify_va_arg_expr): Likewise.
962
963 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
964
965 PR middle-end/89037
966 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
967 instead of accessing TREE_INT_CST_ELT directly.
968
969 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
970
971 * doc/sourcebuild.texi (Environment attributes): Add fenv and
972 fenv_exceptions description.
973
974 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
975
976 PR rtl-optimization/87763
977 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
978 Allow SUBREG when matching CC_NZmode compare.
979
980 2019-01-25 Richard Biener <rguenther@suse.de>
981
982 PR tree-optimization/89049
983 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
984 Look at the pattern stmt to determine if the stmt is vectorized.
985
986 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
987
988 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
989 (pred_mov<mode>): Handle all-register forms using both a new
990 alternative and a split.
991
992 2019-01-25 Richard Biener <rguenther@suse.de>
993
994 PR tree-optimization/86865
995 * graphite-scop-detection.c (scop_detection::can_represent_loop):
996 Reject non-do-while loops.
997
998 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
999
1000 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
1001 * config/rs6000/constraints.md (Q constraint): Use REG_P.
1002 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
1003 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1004 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
1005 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1006 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
1007 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
1008 vlogical_operand, gpc_reg_operand, int_reg_operand,
1009 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
1010 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
1011 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
1012 (save_world_operation, restore_world_operation, lmw_operation,
1013 stmw_operation): Use MEM_P and REG_P.
1014 (tie_operand): Use MEM_P.
1015 (vrsave_operation, crsave_operation): Use REG_P.
1016 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
1017 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
1018 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
1019 (call_operand): Use HARD_REGISTER_P.
1020 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
1021 Use CONST_INT_P.
1022 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
1023 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
1024 quad_aligned_load_p, replace_swapped_aligned_store,
1025 recombine_lvx_pattern, replace_swapped_aligned_load,
1026 recombine_stvx_pattern): Use MEM_P.
1027 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
1028 Use MEM_P and SYMBOL_REF_P.
1029 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
1030 (insn_is_swappable_p): Use REG_P and MEM_P.
1031 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
1032 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
1033 Use CONST_INT_P.
1034 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1035 Use CONST_DOUBLE_P.
1036 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1037 CONST_WIDE_INT_P.
1038 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
1039 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
1040 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
1041 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
1042 reg_or_subregno:
1043 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1044 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
1045 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
1046 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
1047 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
1048 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
1049 rs6000_split_logical_di): Use CONST_INT_P.
1050 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
1051 REG_P and SYMBOL_REF_P.
1052 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
1053 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
1054 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
1055 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
1056 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
1057 (small_data_operand, print_operand_address): Use CONST_INT_P and
1058 SYMBOL_REF_P.
1059 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
1060 (rs6000_init_hard_regno_mode_ok, direct_move_p):
1061 Use HARD_REGISTER_NUM_P.
1062 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
1063 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
1064 SUBREG_P and SYMBOL_REF_P.
1065 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
1066 and HARD_REGISTER_NUM_P.
1067 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
1068 reg_or_subregno.
1069 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1070 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1071 MEM_P and REG_P.
1072 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
1073 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
1074 find_addr_reg): Use REG_P.
1075 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
1076 (rs6000_emit_le_vsx_move): Use SUBREG_P.
1077 (offsettable_ok_by_alignment, constant_pool_expr_p,
1078 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
1079 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
1080 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
1081 rs6000_assemble_integer, create_TOC_reference,
1082 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
1083 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
1084 (rs6000_split_vec_extract_var): Use reg_or_subregno.
1085 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1086 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1087 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1088 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1089 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
1090 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
1091 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
1092 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
1093 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
1094 and cbranch<mode>4): Use CONST_INT_P.
1095 (multiple define_splits): Use REG_P and SUBREG_P.
1096 (define_expands call, call_value): Use MEM_P.
1097 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
1098 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
1099 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
1100 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
1101 and HARD_REGISTER_NUM_P.
1102 (multiple define_splits): Use HARD_REGISTER_NUM_P.
1103
1104 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1105
1106 PR rtl-optimization/88948
1107 * rtl.h (prepare_copy_insn): New prototype.
1108 * gcse.c (prepare_copy_insn): New function, split out from
1109 process_insert_insn.
1110 (process_insert_insn): Use prepare_copy_insn.
1111 * store-motion.c (replace_store_insn): Use prepare_copy_insn
1112 instead of gen_move_insn.
1113
1114 2019-01-24 Jakub Jelinek <jakub@redhat.com>
1115
1116 PR debug/89006
1117 * config/i386/i386.c (ix86_pic_register_p): Return true for
1118 UNSPEC_SET_GOT too.
1119
1120 PR tree-optimization/88964
1121 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1122 punt if HONOR_SNANS (chrec).
1123
1124 PR middle-end/89015
1125 * tree-nested.c (convert_nonlocal_reference_stmt,
1126 convert_local_reference_stmt, convert_tramp_reference_stmt,
1127 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
1128 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
1129 or GIMPLE_OMP_TASK.
1130
1131 PR tree-optimization/89027
1132 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
1133 for "omp simd array" variables.
1134
1135 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
1136
1137 PR target/88469
1138 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
1139 force the alignment of m_val.
1140
1141 2019-01-24 Richard Biener <rguenther@suse.de>
1142
1143 PR lto/87187
1144 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
1145 When in "legacy" debug mode make sure to reset self-origins.
1146
1147 2019-01-24 Martin Liska <mliska@suse.cz>
1148
1149 PR gcov-profile/88994
1150 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
1151 result will be always smaller or equal to the original.
1152 * gcov.c (mangle_name): Fix else branch where we should
1153 also copy to PTR and shift the pointer.
1154
1155 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
1156
1157 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
1158 * vr-values.c (find_case_label_ranges): Fix a comment typo.
1159
1160 2019-01-23 Bin Cheng <bin.cheng@arm.com>
1161 Steve Ellcey <sellcey@marvell.com>
1162
1163 PR target/85711
1164 * recog.c (address_operand): Return false on wrong mode for address.
1165 (constrain_operands): Check for mode with 'p' constraint.
1166
1167 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
1168
1169 PR target/88998
1170 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
1171 Disparage MMX alternative.
1172 (sse2_cvtpd2pi): Ditto.
1173 (sse2_cvttpd2pi): Ditto.
1174
1175 2019-01-23 David Malcolm <dmalcolm@redhat.com>
1176
1177 PR driver/89014
1178 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
1179 use-after-free of the result of
1180 aarch64_get_extension_string_for_isa_flags.
1181
1182 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1183
1184 PR c/44715
1185 * doc/extend.texi: Document break and continue behavior in
1186 statement expressions.
1187
1188 2019-01-23 Richard Biener <rguenther@suse.de>
1189
1190 PR tree-optimization/89008
1191 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
1192 not leave another stray operand.
1193
1194 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1195
1196 * BASE-VER: Bump to 9.0.1.
1197
1198 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
1199
1200 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
1201 thunk that returns by reference, use the type of the return object
1202 of the thunk instead of that of the alias to build the dereference.
1203
1204 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
1205
1206 * config/arc/atomic.md: Add operand to DMB instruction.
1207
1208 2019-01-23 Jakub Jelinek <jakub@redhat.com>
1209
1210 PR tree-optimization/88964
1211 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
1212 build_zero_cst instead of build_int_cst. Return false for loop
1213 invariants which honor signed zeros.
1214
1215 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
1216
1217 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
1218
1219 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1220
1221 PR target/88965
1222 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
1223 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
1224 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
1225
1226 PR middle-end/88968
1227 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
1228 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
1229
1230 PR target/87064
1231 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
1232 Disable for little endian.
1233
1234 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1235
1236 PR target/88469
1237 * config/arm/arm.c (arm_needs_double_word_align): Check
1238 DECL_BIT_FIELD_TYPE.
1239
1240 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
1241 H.J. Lu <hongjiu.lu@intel.com>
1242
1243 PR target/88909
1244 * config/i386/i386-builtin.def: Add mask2 to all builtin
1245 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
1246 SPECIAL_ARGS.
1247 * config/i386/i386.c (BDESC): Add mask2 to the definition.
1248 (BDESC_FIRST): Likewise.
1249 (define_builtin): Add an argument for mask2. Updated to handle
1250 both ix86_isa_flags and ix86_isa_flags2.
1251 (define_builtin_const): Likewise.
1252 (define_builtin_pure): Likewise.
1253 (define_builtin2): Deleted.
1254 (define_builtin_const2): Likewise.
1255 (builtin_description): Add a member, mask2.
1256 (bdesc_*): Add mask2 to builtin initializations.
1257 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
1258 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
1259 support.
1260 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
1261
1262 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
1263
1264 PR target/88954
1265 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
1266 noplt attribute.
1267
1268 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
1269
1270 PR target/88469
1271 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
1272 alignment is dominated by a bitfield with 64-bit aligned base type.
1273 (arm_function_arg): Emit a warning if the alignment has changed since
1274 earlier GCC releases.
1275 (arm_function_arg_boundary): Likewise.
1276 (arm_setup_incoming_varargs): Likewise.
1277
1278 2019-01-22 Richard Biener <rguenther@suse.de>
1279
1280 PR tree-optimization/88862
1281 * graphite-scop-detection.c
1282 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
1283
1284 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
1285
1286 * doc/extend.tex (AMD GCN Function Attributes): New section.
1287 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
1288 * doc/invoke.texi (AMD GCN Options): New section.
1289 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
1290
1291 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
1292
1293 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
1294 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
1295
1296 2019-01-22 Jakub Jelinek <jakub@redhat.com>
1297
1298 PR tree-optimization/88044
1299 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
1300 is false in the first iteration, but !every_iteration, return false
1301 instead of true with niter->niter zero.
1302
1303 PR rtl-optimization/88904
1304 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
1305 any nonequal registers before processing BB_END (b).
1306
1307 PR target/88905
1308 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
1309 GET_MODE (op0).
1310 (expand_binop_directly, expand_doubleword_clz,
1311 expand_doubleword_popcount, expand_ctz, expand_ffs,
1312 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
1313
1314 PR rtl-optimization/49429
1315 PR target/49454
1316 PR rtl-optimization/86334
1317 PR target/88906
1318 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
1319 addressable from here...
1320 (emit_block_op_via_libcall): ... to here.
1321
1322 2019-01-22 Richard Biener <rguenther@suse.de>
1323
1324 * tree-vect-loop.c (vect_analyze_loop_operations): Use
1325 auto_vec for cost vector to fix memleak.
1326 (vectorize_fold_left_reduction): Properly gather SLP defs.
1327 (vectorizable_comparison): Do not swap operands to properly
1328 gather SLP defs.
1329
1330 2019-01-22 Alan Modra <amodra@gmail.com>
1331
1332 PR target/88614
1333 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
1334 stays a reg. Allow a const_int.
1335 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
1336 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
1337 (IS_NOMARK_TLSGETADDR): Define.
1338 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
1339 (rs6000_output_tlsargs): New function.
1340 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
1341 __tls_get_addr call takes an arg.
1342 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
1343 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
1344 delete split..
1345 (call_value_nonlocal_sysv): ..or here, delete split.
1346 (tls_gdld_nomark): Delete.
1347 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
1348 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
1349 (call_value_nonlocal_sysv): Likewise.
1350 (call_value_nonlocal_sysv_secure): Likewise.
1351 (call_value_nonlocal_aix): Likewise.
1352 (call_value_indirect_aix): Likewise.
1353 (call_value_indirect_elfv2): Likewise.
1354 (call_value_local32, call_value_local64): Disable for no-mark tls.
1355 (call_value_local_aix): Likewise.
1356
1357 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
1358
1359 PR target/88938
1360 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
1361 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
1362
1363 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
1364
1365 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
1366 string contents as hash_map keys.
1367
1368 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
1369
1370 PR c/88928
1371 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
1372 for rvalue context. Handle rvalues correctly. Use min_align_of_type
1373 instead of TYPE_ALIGN.
1374 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
1375 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
1376 pointer from TYPE_STUB_DECL.
1377
1378 2019-01-21 Richard Biener <rguenther@suse.de>
1379
1380 PR tree-optimization/88934
1381 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
1382 at the possibly non-constant operand.
1383 (vect_get_constant_vectors): Adjust.
1384
1385 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
1386
1387 PR target/71659
1388 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
1389 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
1390 instead of _X86INTRIN_H_INCLUDED.
1391 * onfig/i386/clwbintrin.h: Likewise.
1392 * config/i386/pkuintrin.h: Likewise.
1393 * config/i386/prfchwintrin.h: Likewise.
1394 * config/i386/rdseedintrin.h: Likewise.
1395 * config/i386/wbnoinvdintrin.h: Likewise.
1396 * config/i386/xsavecintrin.h: Likewise.
1397 * config/i386/xsavesintrin.h: Likewise.
1398 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
1399 * config/i386/xsaveintrin.h: Likewise.
1400 * config/i386/xsaveoptintrin.h: Likewise.
1401 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
1402 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
1403 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
1404 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
1405 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
1406 * config/i386/immintrin.h: Here.
1407
1408 2019-01-20 Martin Jambor <mjambor@suse.cz>
1409
1410 PR ipa/87615
1411 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
1412 with aa_walk_budget.
1413 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
1414 aa_walk_budget_p parameter.
1415 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
1416 walk. Updated all callers.
1417 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
1418 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
1419 unmodified_parm.
1420 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
1421 parameter info. Extract info from fbi. Pass fbi to recursive calls
1422 and to unmodified_parm.
1423 (phi_result_unknown_predicate): New parameter fbi, removed parameter
1424 info, updated call to will_be_nonconstant_expr_predicate.
1425 (param_change_prob): New parameter fbi, limit AA walking.
1426 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
1427 calls to various above functions.
1428 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
1429 parameter. Use it to limit AA walking.
1430 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
1431 fbi, limit AA walk.
1432 (detect_type_change): New parameter fbi, pass it on to
1433 detect_type_change_from_memory_writes.
1434 (detect_type_change_ssa): Likewise.
1435 (aa_overwalked): Removed.
1436 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
1437 accordingly, adjust to the neew AA limiting scheme.
1438 (parm_ref_data_preserved_p): Likewise.
1439 (ipa_compute_jump_functions_for_edge): Adjust call to
1440 get_dynamic_type.
1441 (ipa_analyze_call_uses): Likewise.
1442 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
1443 (ipa_analyze_node): Initialize aa_walk_budget.
1444 (ipcp_transform_function): Likewise.
1445 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
1446 to get_dynamic_type.
1447
1448 2019-01-19 Jakub Jelinek <jakub@redhat.com>
1449
1450 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
1451 outside of #if CHECKING_P code.
1452
1453 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
1454
1455 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
1456 New function, split out from...
1457 (loop_versioning::analyze_stride): ...here.
1458 (loop_versioning::find_per_loop_multiplication): Use gassign.
1459 (loop_versioning::analyze_term_using_scevs): Return a success code.
1460 (loop_versioning::analyze_arbitrary_term): New function.
1461 (loop_versioning::analyze_address_fragment): Use
1462 analyze_arbitrary_term if all else fails.
1463
1464 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
1465
1466 PR target/88892
1467 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
1468 operands.
1469
1470 2019-01-18 Richard Biener <rguenther@suse.de>
1471
1472 PR tree-optimization/88903
1473 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
1474 scalar stmts a SLP shift amount is composed of when detecting
1475 shifts by scalars.
1476
1477 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
1478
1479 PR target/88799
1480 * config/arm/arm-cpus.in (mp): New feature.
1481 (sec): New feature.
1482 (fgroup ARMv7ve): Add mp and sec features.
1483 (arch armv7-a): Add options to allow mp and sec extensions.
1484 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
1485 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
1486 extenstions to the base architecture.
1487 (cpu cortex-a8): Add sec extension to the base architecture.
1488 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
1489 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
1490 variants down to the base v7-a varaint.
1491 * config/arm/t-multilib (v7_a_arch_variants): New variable.
1492 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
1493 of permitted extensions for -march=armv7-a and for
1494 -mcpu=generic-armv7-a.
1495
1496 2019-01-18 Martin Liska <mliska@suse.cz>
1497
1498 * params.def: Fix comment.
1499 * tree-profile.c (gimple_init_gcov_profiler): Bump function
1500 name.
1501 (gimple_gen_ic_func_profiler): Likewise.
1502
1503 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1504
1505 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
1506 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
1507 and put in error checks for stack protector guard options.
1508 (aarch64_stack_protect_guard): New.
1509 (TARGET_STACK_PROTECT_GUARD): Define.
1510 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
1511 (reg_stack_protect_address<mode>): New.
1512 (stack_protect_set): Adjust for SSP_GLOBAL.
1513 (stack_protect_test): Likewise.
1514 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
1515 (-mstack-protector-guard): Likewise.
1516 (-mstack-protector-guard-offset): Likewise.
1517
1518 2019-01-18 Jakub Jelinek <jakub@redhat.com>
1519
1520 PR tree-optimization/86214
1521 * tree-inline.h (struct copy_body_data): Add
1522 add_clobbers_to_eh_landing_pads member.
1523 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
1524 (copy_edges_for_bb): Call it if EH edge destination is <
1525 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
1526 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
1527 if flag_stack_reuse != SR_NONE and clear it afterwards.
1528
1529 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
1530
1531 PR target/85596
1532 * doc/install.texi (with-multilib-list): Document for aarch64.
1533
1534 2019-01-18 Jakub Jelinek <jakub@redhat.com>
1535
1536 PR target/88734
1537 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
1538 (("..."))) with ("...").
1539
1540 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
1541
1542 * doc/extend.texi (Built-in Functions for Memory Model Aware
1543 Atomic Operations): Document atomic fetch and nand.
1544
1545 2019-01-18 Martin Liska <mliska@suse.cz>
1546 Richard Biener <rguenther@suse.de>
1547
1548 PR middle-end/88587
1549 * cgraph.h (create_version_clone_with_body): Add new argument
1550 with attributes.
1551 * cgraphclones.c (cgraph_node::create_version_clone): Add
1552 DECL_ATTRIBUTES to a newly created decl. And call
1553 valid_attribute_p so that proper cl_target_optimization_node
1554 is set for the newly created declaration.
1555 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
1556 for declaration.
1557 (expand_target_clones): Do not call valid_attribute_p, it must
1558 be already done.
1559 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
1560 vector types.
1561
1562 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1563
1564 PR target/88734
1565 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
1566 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
1567 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
1568
1569 2019-01-17 Martin Sebor <msebor@redhat.com>
1570
1571 PR middle-end/88273
1572 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
1573 Handle anti-ranges the same as no range at all.
1574
1575 2018-01-17 Steve Ellcey <sellcey@cavium.com>
1576
1577 * config/aarch64/aarch64.c (cgraph.h): New include.
1578 (intl.h): New include.
1579 (supported_simd_type): New function.
1580 (currently_supported_simd_type): Ditto.
1581 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
1582 (aarch64_simd_clone_adjust): Ditto.
1583 (aarch64_simd_clone_usable): Ditto.
1584 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
1585 (TARGET_SIMD_CLONE_ADJUST): Ditto.
1586 (TARGET_SIMD_CLONE_USABLE): Ditto.
1587 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
1588 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
1589 call.
1590
1591 2019-01-17 Martin Sebor <msebor@redhat.com>
1592
1593 PR tree-optimization/88800
1594 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
1595 NO_WARNING bit here. Avoid folding out-of-bounds calls.
1596 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
1597 redundant argument. Add new argument and issue diagnostics under
1598 its control. Detect out-of-bounds access even with warnings
1599 disabled.
1600 (check_bounds_or_overlap): Change return type. Add argument.
1601 (wrestrict_dom_walker::check_call): Adjust.
1602 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
1603 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
1604 check_bounds_or_overlap's return value.
1605 (handle_builtin_stxncpy): Same.
1606 (handle_builtin_strcat): Same.
1607
1608 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1609 Kwok Cheung Yeung <kcy@codesourcery.com>
1610 Julian Brown <julian@codesourcery.com>
1611 Tom de Vries <tom@codesourcery.com>
1612
1613 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
1614
1615 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1616
1617 * doc/sourcebuild.texi: Document dg-require-effective-target
1618 llvm_binutils and offload_gcn.
1619
1620 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1621 Kwok Cheung Yeung <kcy@codesourcery.com>
1622 Julian Brown <julian@codesourcery.com>
1623 Tom de Vries <tom@codesourcery.com>
1624
1625 * doc/sourcebuild.texi: Document dg-required-effective-target
1626 exceptions.
1627
1628 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1629 Kwok Cheung Yeung <kcy@codesourcery.com>
1630 Julian Brown <julian@codesourcery.com>
1631 Tom de Vries <tom@codesourcery.com>
1632 Jan Hubicka <hubicka@ucw.cz>
1633 Martin Jambor <mjambor@suse.cz>
1634
1635 * config.gcc: Add amdgcn*-*-amdhsa configuration.
1636 * configure.ac: Check for dlopen.
1637 * configure: Regenerate.
1638
1639 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1640 Kwok Cheung Yeung <kcy@codesourcery.com>
1641 Julian Brown <julian@codesourcery.com>
1642 Tom de Vries <tom@codesourcery.com>
1643 Jan Hubicka <hubicka@ucw.cz>
1644 Martin Jambor <mjambor@suse.cz>
1645
1646 * common/config/gcn/gcn-common.c: New file.
1647 * config/gcn/driver-gcn.c: New file.
1648 * config/gcn/gcn-builtins.def: New file.
1649 * config/gcn/gcn-hsa.h: New file.
1650 * config/gcn/gcn-modes.def: New file.
1651 * config/gcn/gcn-opts.h: New file.
1652 * config/gcn/gcn-passes.def: New file.
1653 * config/gcn/gcn-protos.h: New file.
1654 * config/gcn/gcn-run.c: New file.
1655 * config/gcn/gcn-tree.c: New file.
1656 * config/gcn/gcn.c: New file.
1657 * config/gcn/gcn.h: New file.
1658 * config/gcn/gcn.opt: New file.
1659 * config/gcn/t-gcn-hsa: New file.
1660
1661 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
1662 Kwok Cheung Yeung <kcy@codesourcery.com>
1663 Julian Brown <julian@codesourcery.com>
1664 Tom de Vries <tom@codesourcery.com>
1665 Jan Hubicka <hubicka@ucw.cz>
1666 Martin Jambor <mjambor@suse.cz>
1667
1668 * config/gcn/constraints.md: New file.
1669 * config/gcn/gcn-valu.md: New file.
1670 * config/gcn/gcn.md: New file.
1671 * config/gcn/predicates.md: New file.
1672
1673 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
1674
1675 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
1676 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
1677 (stmt_uses_0_or_null_in_undefined_way): Likewise.
1678 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
1679
1680 2019-01-17 Tamar Christina <tamar.christina@arm.com>
1681
1682 PR target/88851
1683 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
1684 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
1685 it and document registers.
1686
1687 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1688
1689 * config/aarch64/aarch64.c (ares_tunings): Define.
1690 * config/aarch64/aarch64-cores.def (ares): Use the above.
1691
1692 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1693
1694 PR target/88794
1695 Revert:
1696 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
1697
1698 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
1699 (_mm512_fixupimm_round_pd): Update parameters and builtin.
1700 (_mm512_maskz_fixupimm_round_pd): Ditto.
1701 (_mm512_fixupimm_round_ps): Ditto.
1702 (_mm512_maskz_fixupimm_round_ps): Ditto.
1703 (_mm_fixupimm_round_sd): Ditto.
1704 (_mm_maskz_fixupimm_round_sd): Ditto.
1705 (_mm_fixupimm_round_ss): Ditto.
1706 (_mm_maskz_fixupimm_round_ss): Ditto.
1707 (_mm512_fixupimm_pd): Ditto.
1708 (_mm512_maskz_fixupimm_pd): Ditto.
1709 (_mm512_fixupimm_ps): Ditto.
1710 (_mm512_maskz_fixupimm_ps): Ditto.
1711 (_mm_fixupimm_sd): Ditto.
1712 (_mm_maskz_fixupimm_sd): Ditto.
1713 (_mm_fixupimm_ss): Ditto.
1714 (_mm_maskz_fixupimm_ss): Ditto.
1715 (_mm512_mask_fixupimm_round_pd): Update builtin.
1716 (_mm512_mask_fixupimm_round_ps): Ditto.
1717 (_mm_mask_fixupimm_round_sd): Ditto.
1718 (_mm_mask_fixupimm_round_ss): Ditto.
1719 (_mm512_mask_fixupimm_pd): Ditto.
1720 (_mm512_mask_fixupimm_ps): Ditto.
1721 (_mm_mask_fixupimm_sd): Ditto.
1722 (_mm_mask_fixupimm_ss): Ditto.
1723 * config/i386/avx512vlintrin.h:
1724 (_mm256_fixupimm_pd): Update parameters and builtin.
1725 (_mm256_maskz_fixupimm_pd): Ditto.
1726 (_mm256_fixupimm_ps): Ditto.
1727 (_mm256_maskz_fixupimm_ps): Ditto.
1728 (_mm_fixupimm_pd): Ditto.
1729 (_mm_maskz_fixupimm_pd): Ditto.
1730 (_mm_fixupimm_ps): Ditto.
1731 (_mm_maskz_fixupimm_ps): Ditto.
1732 (_mm256_mask_fixupimm_pd): Update builtin.
1733 (_mm256_mask_fixupimm_ps): Ditto.
1734 (_mm_mask_fixupimm_pd): Ditto.
1735 (_mm_mask_fixupimm_ps): Ditto.
1736 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
1737 * config/i386/i386-builtin.def: Update builtin definitions.
1738 * config/i386/i386.c: Handle new builtin types and remove useless ones.
1739 * config/i386/sse.md: Update VFIXUPIMM* patterns.
1740 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1741 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1742 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
1743 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1744 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1745 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
1746 * config/i386/subst.md:
1747 (round_saeonly_sd_mask_operand4): Add new subst_attr.
1748 (round_saeonly_sd_mask_op4): Ditto.
1749 (round_saeonly_expand_operand5): Ditto.
1750 (round_saeonly_expand): Update.
1751
1752 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1753
1754 PR target/88794
1755 Revert:
1756 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
1757
1758 * config/i386/sse.md: Combine VFIXUPIMM* patterns
1759 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1760 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1761 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
1762 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1763 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1764 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
1765
1766 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1767
1768 PR target/88794
1769 Revert:
1770 2018-12-15 Jakub Jelinek <jakub@redhat.com>
1771
1772 PR target/88489
1773 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
1774 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
1775 instead of UNSPEC_FIXUPIMM.
1776
1777 2019-01-17 Richard Biener <rguenther@suse.de>
1778
1779 PR lto/86736
1780 * dwarf2out.c (want_pubnames): Never generate pubnames sections
1781 and friends for the LTO part of debug info.
1782
1783 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1784
1785 PR tree-optimization/86214
1786 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
1787 if x == y.
1788
1789 PR rtl-optimization/88870
1790 * dce.c (deletable_insn_p): Never delete const/pure calls that can
1791 throw if we can't alter the cfg or delete dead exceptions.
1792 (mark_insn): Don't call find_call_stack_args for such calls.
1793
1794 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
1795
1796 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
1797 prototypes for vec_st.
1798 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
1799 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
1800 mainly on signed/unsigned long long and double.
1801
1802 2019-01-16 David Malcolm <dmalcolm@redhat.com>
1803
1804 PR target/88861
1805 * combine.c (delete_noop_moves): Convert to "bool" return,
1806 returning true if any edges are eliminated.
1807 (combine_instructions): Also return true if delete_noop_moves
1808 returns true.
1809
1810 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1811
1812 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
1813 correct max nunits for endian swap.
1814 (aarch64_expand_fcmla_builtin): Correct subreg code.
1815 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1816 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
1817 lane endianness.
1818
1819 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
1820
1821 * config/alpha/alpha.c (alpha_gimplify_va_arg):
1822 Handle split indirect COMPLEX_TYPE arguments.
1823
1824 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
1825
1826 PR target/86891
1827 * config/aarch64/aarch64-modes.def: Add comment about how the carry
1828 bit is set by add and compare.
1829 (CC_ADC): New CC_MODE.
1830 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
1831 to cache the code and mode of X. Adjust the shape of a CC_Cmode
1832 comparison. Add detection for CC_ADCmode.
1833 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
1834 CC_ADCmode.
1835 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
1836 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
1837 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
1838 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
1839 to eliminate the need for zero-extending the operands.
1840 (add<mode>3_compareC_imm): Delete. Merge into ...
1841 (add<mode>3_compareC): ... this. Restructure the comparison to
1842 eliminate the need for zero-extending the operands.
1843 (add<mode>3_carryin): Use LTU for the overflow detection.
1844 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
1845 Reexpress comparison for overflow.
1846 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
1847 (add<mode>3_carryinC): Likewise.
1848 (add<mode>3_carryinV): Use LTU for carry between partials.
1849 * config/aarch64/predicates.md (aarch64_carry_operation): Update
1850 handling of CC_Cmode and add CC_ADCmode.
1851 (aarch64_borrow_operation): Likewise.
1852
1853 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1854
1855 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
1856 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
1857 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
1858 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
1859
1860 2019-01-16 Martin Liska <mliska@suse.cz>
1861
1862 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
1863 for GCC driver.
1864 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
1865 a new argument.
1866 * gcc.c (add_sysrooted_hdrs_prefix): New function.
1867 (path_prefix_reset): Move up in the source file.
1868 (find_fortran_preinclude_file): Make complex search for the
1869 fortran header files.
1870
1871 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
1872
1873 * godump.c (go_output_typedef): When outputting a typedef, refer
1874 to the underlying type by its name and not its structure.
1875
1876 2019-01-15 David Malcolm <dmalcolm@redhat.com>
1877
1878 PR c++/88795
1879 * tree.c (build_function_type): Assert that arg_types is not
1880 error_mark_node.
1881
1882 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
1883
1884 PR inline-asm/52813
1885 * doc/extend.texi: Document that listing the stack pointer in the
1886 clobber list of an asm is a deprecated feature.
1887 * common.opt (Wdeprecated): Moved from c-family/c.opt.
1888 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
1889 warning instead of an error for clobbers of the stack pointer.
1890 Add a note explaining why.
1891
1892 2019-01-15 Richard Biener <rguenther@suse.de>
1893
1894 PR debug/88046
1895 * dwarf2out.c (gen_member_die): Do not generate inheritance
1896 DIEs late.
1897
1898 2019-01-15 Richard Biener <rguenther@suse.de>
1899
1900 PR tree-optimization/88855
1901 * tree-if-conv.c (combine_blocks): Collect
1902 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
1903
1904 2019-01-15 Tom de Vries <tdevries@suse.de>
1905
1906 PR target/80547
1907 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
1908 lhs == NULL_TREE for gang-level reduction.
1909
1910 2019-01-15 Richard Biener <rguenther@suse.de>
1911 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1912
1913 PR ipa/88788
1914 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
1915 return true if SSA_NAME is already marked in visited bitmap.
1916 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
1917
1918 2019-01-15 Jakub Jelinek <jakub@redhat.com>
1919
1920 PR tree-optimization/88775
1921 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
1922 equal == 0 equality pointer comparisons some more if compared in
1923 integral types and either one points to an automatic var and the
1924 other to a global, or we can prove at least one points to the middle
1925 or both point to start or both point to end.
1926
1927 2019-01-14 Andi Kleen <ak@linux.intel.com>
1928
1929 * Makefile.in: Lower autofdo sampling rate by 10x.
1930 * Makefile.tpl: Dito.
1931
1932 2019-01-14 Tom Honermann <tom@honermann.net>
1933
1934 * defaults.h: Define CHAR8_TYPE.
1935
1936 2019-01-14 Martin Sebor <msebor@redhat.com>
1937
1938 PR target/88638
1939 * doc/extend.texi (Darwin Format Checks): Clarify.
1940
1941 2019-01-14 Richard Biener <rguenther@suse.de>
1942
1943 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
1944 whether we are in (simplify ...) or (match ...) context.
1945
1946 2019-01-14 Jakub Jelinek <jakub@redhat.com>
1947
1948 PR rtl-optimization/88796
1949 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
1950 * cfgexpand.c (stack_protect_prologue): Initialize
1951 crtl->stack_protect_guard_decl.
1952 * function.c (stack_protect_epilogue): Use it instead of calling
1953 targetm.stack_protect_guard again.
1954 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
1955 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
1956 crtl->stack_protect_guard_decl.
1957 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
1958 on the returned MEM_EXPR.
1959
1960 2019-01-12 Tom de Vries <tdevries@suse.de>
1961
1962 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
1963 vector length using -fopenacc-dim.
1964
1965 2019-01-12 Tom de Vries <tdevries@suse.de>
1966
1967 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
1968 lengths into account.
1969
1970 2019-01-12 Svante Signell <svante.signell@gmail.com>
1971
1972 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
1973 (TARGET_CAN_SPLIT_STACK): Define.
1974 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1975
1976 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1977
1978 * params.def (inline-unit-growth): Set to 40.
1979
1980 2019-01-12 Jakub Jelinek <jakub@redhat.com>
1981
1982 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
1983
1984 2019-01-12 Tom de Vries <tdevries@suse.de>
1985
1986 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
1987 region calling vector-partitionable routine, set default_vector_length
1988 to WARP_SIZE.
1989
1990 2019-01-12 Tom de Vries <tdevries@suse.de>
1991
1992 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
1993 variable default_vector_length.
1994
1995 2019-01-12 Tom de Vries <tdevries@suse.de>
1996
1997 PR middle-end/88703
1998 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
1999 from oacc_default_dims, as oacc_validate_dims would do it, and apply
2000 dimensions limits.
2001
2002 2019-01-12 Tom de Vries <tdevries@suse.de>
2003
2004 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
2005 (nvptx_goacc_validate_dims): Add used parameter.
2006 * doc/tm.texi: Regenerate.
2007 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
2008 argument to call to targetm.goacc.validate_dims.
2009 (default_goacc_validate_dims): Add used
2010 parameter.
2011 * target.def (validate_dims): Add used parameter in DEFHOOK.
2012 * targhooks.h (default_goacc_validate_dims): Add used parameter.
2013
2014 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2015
2016 PR middle-end/85956
2017 PR lto/88733
2018 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2019 field.
2020 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
2021 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
2022 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
2023 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
2024
2025 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
2026
2027 PR rtl-optimization/87305
2028 * lra-assigns.c
2029 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2030 for little endian pseudos used as paradoxical subreg.
2031
2032 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2033
2034 PR tree-optimization/88693
2035 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
2036 for STRING_CSTs that don't contain any NUL characters in the first
2037 TREE_STRING_LENGTH bytes.
2038
2039 2019-01-11 Alan Modra <amodra@gmail.com>
2040
2041 PR 88777
2042 PR 88614
2043 * genattrtab.c (min_fn): Don't translate values.
2044 (min_attr_value): Return INT_MAX when the value can't be calculated.
2045 Return minimum among any values that can be calculated.
2046 (max_attr_value): Adjust.
2047
2048 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2049
2050 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2051
2052 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2053
2054 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2055 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
2056 (aarch64_return_call_with_max_clobbers): New function.
2057 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
2058 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
2059 argument.
2060 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
2061 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
2062 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
2063 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
2064 * cselib.c (cselib_process_insn): Add argument to
2065 targetm.hard_regno_call_part_clobbered call.
2066 * ira-conflicts.c (ira_build_conflicts): Ditto.
2067 * ira-costs.c (ira_tune_allocno_costs): Ditto.
2068 * lra-constraints.c (inherit_reload_reg): Ditto.
2069 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
2070 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
2071 argument. Call targetm.return_call_with_max_clobbers.
2072 Add argument to targetm.hard_regno_call_part_clobbered call.
2073 (calls_have_same_clobbers_p): New function.
2074 (process_bb_lives): Add call_insn and last_call_insn variables.
2075 Pass call_insn to check_pseudos_live_through_calls.
2076 Modify if stmt to check targetm.return_call_with_max_clobbers.
2077 Update setting of flush variable.
2078 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
2079 to false.
2080 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
2081 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
2082 targetm.hard_regno_call_part_clobbered call.
2083 * reginfo.c (choose_hard_reg_mode): Ditto.
2084 * regrename.c (check_new_reg_p): Ditto.
2085 * reload.c (find_equiv_reg): Ditto.
2086 * reload1.c (emit_reload_insns): Ditto.
2087 * sched-deps.c (deps_analyze_insn): Ditto.
2088 * sel-sched.c (init_regs_for_mode): Ditto.
2089 (mark_unavailable_hard_regs): Ditto.
2090 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
2091 * target.def (hard_regno_call_part_clobbered): Add insn argument.
2092 (return_call_with_max_clobbers): New target function.
2093 * doc/tm.texi: Regenerate.
2094 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
2095 * hooks.c (hook_bool_uint_mode_false): Change to
2096 hook_bool_insn_uint_mode_false.
2097 * hooks.h (hook_bool_uint_mode_false): Ditto.
2098
2099 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2100
2101 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2102 (aarch64_remove_extra_call_preserved_regs): New function.
2103 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
2104 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
2105 * doc/tm.texi: Regenerate.
2106 * final.c (get_call_reg_set_usage): Call new hook.
2107 * target.def (remove_extra_call_preserved_regs): New hook.
2108 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
2109 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
2110
2111 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2112
2113 PR bootstrap/88714
2114 * passes.c (finish_optimization_passes): Call print_combine_total_stats
2115 inside of pass_combine_1 dump rather than pass_profile_1.
2116
2117 2019-01-11 Tom de Vries <tdevries@suse.de>
2118
2119 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
2120 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
2121 (PTX_NUM_PER_WORKER_BARRIERS): Define.
2122 (nvptx_apply_dim_limits): Prevent vector_length 64 and
2123 num_workers 16.
2124
2125 2019-01-11 Tom de Vries <tdevries@suse.de>
2126
2127 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2128
2129 2019-01-11 Jan Beulich <jbeulich@suse.com>
2130
2131 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
2132 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
2133 sse2_cvtsi2sd): Add {l}.
2134 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
2135 syntax.
2136
2137 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2138
2139 PR target/88785
2140 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
2141 define_expand.
2142 (*float<floatunssuffix>v2div2sf2): New define_insn.
2143 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
2144 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
2145 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
2146 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
2147 match_operands with "const0_operand" "C".
2148
2149 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2150
2151 * config/aarch64/aarch64-builtins.c
2152 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
2153 (aarch64_init_simd_builtins): ...Here
2154
2155 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
2156
2157 PR rtl-optimization/87305
2158 * lra-assigns.c
2159 (setup_live_pseudos_and_spill_after_risky_transforms): Check
2160 allocation for big endian pseudos used as paradoxical subregs and
2161 spill them if it is wrong.
2162 * lra-constraints.c (lra_constraints): Add a comment.
2163
2164 2019-01-10 Richard Biener <rguenther@suse.de>
2165
2166 PR tree-optimization/88792
2167 * tree-ssa-pre.c (get_representative_for): Do not return a
2168 value-number here.
2169
2170 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2171
2172 PR middle-end/84877
2173 PR bootstrap/88450
2174 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
2175 (assign_parm_setup_block): Do the argument slot realignment here
2176 instead.
2177
2178 2019-01-10 Stefan Agner <stefan@agner.ch>
2179
2180 PR target/88648
2181 * config/arm/arm.c (arm_option_override_internal): Force
2182 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
2183
2184 2019-01-10 Jakub Jelinek <jakub@redhat.com>
2185
2186 PR c/88568
2187 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
2188 DECL_EXTERNAL.
2189
2190 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2191
2192 * config/arm/arm-builtins.c
2193 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
2194 (MAC_LANE_PAIR_QUALIFIERS): New.
2195 (arm_expand_builtin_args): Use it.
2196 (arm_expand_builtin_1): Likewise.
2197 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
2198 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
2199 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
2200 * config/arm/arm_neon.h:
2201 (vcadd_rot90_f16): New.
2202 (vcaddq_rot90_f16): New.
2203 (vcadd_rot270_f16): New.
2204 (vcaddq_rot270_f16): New.
2205 (vcmla_f16): New.
2206 (vcmlaq_f16): New.
2207 (vcmla_lane_f16): New.
2208 (vcmla_laneq_f16): New.
2209 (vcmlaq_lane_f16): New.
2210 (vcmlaq_laneq_f16): New.
2211 (vcmla_rot90_f16): New.
2212 (vcmlaq_rot90_f16): New.
2213 (vcmla_rot90_lane_f16): New.
2214 (vcmla_rot90_laneq_f16): New.
2215 (vcmlaq_rot90_lane_f16): New.
2216 (vcmlaq_rot90_laneq_f16): New.
2217 (vcmla_rot180_f16): New.
2218 (vcmlaq_rot180_f16): New.
2219 (vcmla_rot180_lane_f16): New.
2220 (vcmla_rot180_laneq_f16): New.
2221 (vcmlaq_rot180_lane_f16): New.
2222 (vcmlaq_rot180_laneq_f16): New.
2223 (vcmla_rot270_f16): New.
2224 (vcmlaq_rot270_f16): New.
2225 (vcmla_rot270_lane_f16): New.
2226 (vcmla_rot270_laneq_f16): New.
2227 (vcmlaq_rot270_lane_f16): New.
2228 (vcmlaq_rot270_laneq_f16): New.
2229 (vcadd_rot90_f32): New.
2230 (vcaddq_rot90_f32): New.
2231 (vcadd_rot270_f32): New.
2232 (vcaddq_rot270_f32): New.
2233 (vcmla_f32): New.
2234 (vcmlaq_f32): New.
2235 (vcmla_lane_f32): New.
2236 (vcmla_laneq_f32): New.
2237 (vcmlaq_lane_f32): New.
2238 (vcmlaq_laneq_f32): New.
2239 (vcmla_rot90_f32): New.
2240 (vcmlaq_rot90_f32): New.
2241 (vcmla_rot90_lane_f32): New.
2242 (vcmla_rot90_laneq_f32): New.
2243 (vcmlaq_rot90_lane_f32): New.
2244 (vcmlaq_rot90_laneq_f32): New.
2245 (vcmla_rot180_f32): New.
2246 (vcmlaq_rot180_f32): New.
2247 (vcmla_rot180_lane_f32): New.
2248 (vcmla_rot180_laneq_f32): New.
2249 (vcmlaq_rot180_lane_f32): New.
2250 (vcmlaq_rot180_laneq_f32): New.
2251 (vcmla_rot270_f32): New.
2252 (vcmlaq_rot270_f32): New.
2253 (vcmla_rot270_lane_f32): New.
2254 (vcmla_rot270_laneq_f32): New.
2255 (vcmlaq_rot270_lane_f32): New.
2256 (vcmlaq_rot270_laneq_f32): New.
2257 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
2258 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
2259 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
2260 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
2261 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
2262 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
2263 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
2264 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
2265 (arm_option_reconfigure_globals): Use them.
2266 * config/arm/iterators.md (VDF, VQ_HSF): New.
2267 (VCADD, VCMLA): New.
2268 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
2269 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
2270 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
2271 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
2272
2273 2019-01-10 Tamar Christina <tamar.christina@arm.com>
2274
2275 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
2276 (emit-rtl.h): Include.
2277 (TYPES_QUADOP_LANE_PAIR): New.
2278 (aarch64_simd_expand_args): Use it.
2279 (aarch64_simd_expand_builtin): Likewise.
2280 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
2281 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
2282 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
2283 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
2284 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
2285 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
2286 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
2287 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
2288 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
2289 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
2290 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
2291 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
2292 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
2293 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
2294 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
2295 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
2296 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2297 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
2298 aarch64_fcmla<rot><mode>): New.
2299 * config/aarch64/arm_neon.h:
2300 (vcadd_rot90_f16): New.
2301 (vcaddq_rot90_f16): New.
2302 (vcadd_rot270_f16): New.
2303 (vcaddq_rot270_f16): New.
2304 (vcmla_f16): New.
2305 (vcmlaq_f16): New.
2306 (vcmla_lane_f16): New.
2307 (vcmla_laneq_f16): New.
2308 (vcmlaq_lane_f16): New.
2309 (vcmlaq_rot90_lane_f16): New.
2310 (vcmla_rot90_laneq_f16): New.
2311 (vcmla_rot90_lane_f16): New.
2312 (vcmlaq_rot90_f16): New.
2313 (vcmla_rot90_f16): New.
2314 (vcmlaq_laneq_f16): New.
2315 (vcmla_rot180_laneq_f16): New.
2316 (vcmla_rot180_lane_f16): New.
2317 (vcmlaq_rot180_f16): New.
2318 (vcmla_rot180_f16): New.
2319 (vcmlaq_rot90_laneq_f16): New.
2320 (vcmlaq_rot270_laneq_f16): New.
2321 (vcmlaq_rot270_lane_f16): New.
2322 (vcmla_rot270_laneq_f16): New.
2323 (vcmlaq_rot270_f16): New.
2324 (vcmla_rot270_f16): New.
2325 (vcmlaq_rot180_laneq_f16): New.
2326 (vcmlaq_rot180_lane_f16): New.
2327 (vcmla_rot270_lane_f16): New.
2328 (vcadd_rot90_f32): New.
2329 (vcaddq_rot90_f32): New.
2330 (vcaddq_rot90_f64): New.
2331 (vcadd_rot270_f32): New.
2332 (vcaddq_rot270_f32): New.
2333 (vcaddq_rot270_f64): New.
2334 (vcmla_f32): New.
2335 (vcmlaq_f32): New.
2336 (vcmlaq_f64): New.
2337 (vcmla_lane_f32): New.
2338 (vcmla_laneq_f32): New.
2339 (vcmlaq_lane_f32): New.
2340 (vcmlaq_laneq_f32): New.
2341 (vcmla_rot90_f32): New.
2342 (vcmlaq_rot90_f32): New.
2343 (vcmlaq_rot90_f64): New.
2344 (vcmla_rot90_lane_f32): New.
2345 (vcmla_rot90_laneq_f32): New.
2346 (vcmlaq_rot90_lane_f32): New.
2347 (vcmlaq_rot90_laneq_f32): New.
2348 (vcmla_rot180_f32): New.
2349 (vcmlaq_rot180_f32): New.
2350 (vcmlaq_rot180_f64): New.
2351 (vcmla_rot180_lane_f32): New.
2352 (vcmla_rot180_laneq_f32): New.
2353 (vcmlaq_rot180_lane_f32): New.
2354 (vcmlaq_rot180_laneq_f32): New.
2355 (vcmla_rot270_f32): New.
2356 (vcmlaq_rot270_f32): New.
2357 (vcmlaq_rot270_f64): New.
2358 (vcmla_rot270_lane_f32): New.
2359 (vcmla_rot270_laneq_f32): New.
2360 (vcmlaq_rot270_lane_f32): New.
2361 (vcmlaq_rot270_laneq_f32): New.
2362 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
2363 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
2364 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
2365 (FCADD, FCMLA): New.
2366 (rot): New.
2367 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
2368
2369 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
2370
2371 PR other/16615
2372
2373 * config/pa/pa.c: Change "can not" to "cannot".
2374 * gimple-ssa-evrp-analyze.c: Likewise.
2375 * ipa-icf.c: Likewise.
2376 * ipa-polymorphic-call.c: Likewise.
2377 * ipa-pure-const.c: Likewise.
2378 * lra-constraints.c: Likewise.
2379 * lra-remat.c: Likewise.
2380 * reload1.c: Likewise.
2381 * reorg.c: Likewise.
2382 * tree-ssa-uninit.c: Likewise.
2383
2384 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
2385
2386 PR other/16615
2387
2388 * Makefile.in: Mechanically replace "can not" with "cannot".
2389 * alias.c: Likewise.
2390 * builtins.c: Likewise.
2391 * calls.c: Likewise.
2392 * cgraph.c: Likewise.
2393 * cgraph.h: Likewise.
2394 * cgraphclones.c: Likewise.
2395 * cgraphunit.c: Likewise.
2396 * combine-stack-adj.c: Likewise.
2397 * combine.c: Likewise.
2398 * common/config/i386/i386-common.c: Likewise.
2399 * config/aarch64/aarch64.c: Likewise.
2400 * config/alpha/sync.md: Likewise.
2401 * config/arc/arc.c: Likewise.
2402 * config/arc/predicates.md: Likewise.
2403 * config/arm/arm-c.c: Likewise.
2404 * config/arm/arm.c: Likewise.
2405 * config/arm/arm.h: Likewise.
2406 * config/arm/arm.md: Likewise.
2407 * config/arm/cortex-r4f.md: Likewise.
2408 * config/csky/csky.c: Likewise.
2409 * config/csky/csky.h: Likewise.
2410 * config/darwin-f.c: Likewise.
2411 * config/epiphany/epiphany.md: Likewise.
2412 * config/i386/i386.c: Likewise.
2413 * config/i386/sol2.h: Likewise.
2414 * config/m68k/m68k.c: Likewise.
2415 * config/mcore/mcore.h: Likewise.
2416 * config/microblaze/microblaze.md: Likewise.
2417 * config/mips/20kc.md: Likewise.
2418 * config/mips/sb1.md: Likewise.
2419 * config/nds32/nds32.c: Likewise.
2420 * config/nds32/predicates.md: Likewise.
2421 * config/pa/pa.c: Likewise.
2422 * config/rs6000/e300c2c3.md: Likewise.
2423 * config/rs6000/rs6000.c: Likewise.
2424 * config/s390/s390.h: Likewise.
2425 * config/sh/sh.c: Likewise.
2426 * config/sh/sh.md: Likewise.
2427 * config/spu/vmx2spu.h: Likewise.
2428 * cprop.c: Likewise.
2429 * dbxout.c: Likewise.
2430 * df-scan.c: Likewise.
2431 * doc/cfg.texi: Likewise.
2432 * doc/extend.texi: Likewise.
2433 * doc/fragments.texi: Likewise.
2434 * doc/gty.texi: Likewise.
2435 * doc/invoke.texi: Likewise.
2436 * doc/lto.texi: Likewise.
2437 * doc/md.texi: Likewise.
2438 * doc/objc.texi: Likewise.
2439 * doc/rtl.texi: Likewise.
2440 * doc/tm.texi: Likewise.
2441 * dse.c: Likewise.
2442 * emit-rtl.c: Likewise.
2443 * emit-rtl.h: Likewise.
2444 * except.c: Likewise.
2445 * expmed.c: Likewise.
2446 * expr.c: Likewise.
2447 * fold-const.c: Likewise.
2448 * genautomata.c: Likewise.
2449 * gimple-fold.c: Likewise.
2450 * hard-reg-set.h: Likewise.
2451 * ifcvt.c: Likewise.
2452 * ipa-comdats.c: Likewise.
2453 * ipa-cp.c: Likewise.
2454 * ipa-devirt.c: Likewise.
2455 * ipa-fnsummary.c: Likewise.
2456 * ipa-icf.c: Likewise.
2457 * ipa-inline-transform.c: Likewise.
2458 * ipa-inline.c: Likewise.
2459 * ipa-polymorphic-call.c: Likewise.
2460 * ipa-profile.c: Likewise.
2461 * ipa-prop.c: Likewise.
2462 * ipa-pure-const.c: Likewise.
2463 * ipa-reference.c: Likewise.
2464 * ipa-split.c: Likewise.
2465 * ipa-visibility.c: Likewise.
2466 * ipa.c: Likewise.
2467 * ira-build.c: Likewise.
2468 * ira-color.c: Likewise.
2469 * ira-conflicts.c: Likewise.
2470 * ira-costs.c: Likewise.
2471 * ira-int.h: Likewise.
2472 * ira-lives.c: Likewise.
2473 * ira.c: Likewise.
2474 * ira.h: Likewise.
2475 * loop-invariant.c: Likewise.
2476 * loop-unroll.c: Likewise.
2477 * lower-subreg.c: Likewise.
2478 * lra-assigns.c: Likewise.
2479 * lra-constraints.c: Likewise.
2480 * lra-eliminations.c: Likewise.
2481 * lra-lives.c: Likewise.
2482 * lra-remat.c: Likewise.
2483 * lra-spills.c: Likewise.
2484 * lra.c: Likewise.
2485 * lto-cgraph.c: Likewise.
2486 * lto-streamer-out.c: Likewise.
2487 * postreload-gcse.c: Likewise.
2488 * predict.c: Likewise.
2489 * profile-count.h: Likewise.
2490 * profile.c: Likewise.
2491 * recog.c: Likewise.
2492 * ree.c: Likewise.
2493 * reload.c: Likewise.
2494 * reload1.c: Likewise.
2495 * reorg.c: Likewise.
2496 * resource.c: Likewise.
2497 * rtl.def: Likewise.
2498 * rtl.h: Likewise.
2499 * rtlanal.c: Likewise.
2500 * sched-deps.c: Likewise.
2501 * sched-ebb.c: Likewise.
2502 * sched-rgn.c: Likewise.
2503 * sel-sched-ir.c: Likewise.
2504 * sel-sched.c: Likewise.
2505 * shrink-wrap.c: Likewise.
2506 * simplify-rtx.c: Likewise.
2507 * symtab.c: Likewise.
2508 * target.def: Likewise.
2509 * toplev.c: Likewise.
2510 * tree-call-cdce.c: Likewise.
2511 * tree-cfg.c: Likewise.
2512 * tree-complex.c: Likewise.
2513 * tree-core.h: Likewise.
2514 * tree-eh.c: Likewise.
2515 * tree-inline.c: Likewise.
2516 * tree-loop-distribution.c: Likewise.
2517 * tree-nrv.c: Likewise.
2518 * tree-profile.c: Likewise.
2519 * tree-sra.c: Likewise.
2520 * tree-ssa-alias.c: Likewise.
2521 * tree-ssa-dce.c: Likewise.
2522 * tree-ssa-dom.c: Likewise.
2523 * tree-ssa-forwprop.c: Likewise.
2524 * tree-ssa-loop-im.c: Likewise.
2525 * tree-ssa-loop-ivcanon.c: Likewise.
2526 * tree-ssa-loop-ivopts.c: Likewise.
2527 * tree-ssa-loop-niter.c: Likewise.
2528 * tree-ssa-phionlycprop.c: Likewise.
2529 * tree-ssa-phiopt.c: Likewise.
2530 * tree-ssa-propagate.c: Likewise.
2531 * tree-ssa-threadedge.c: Likewise.
2532 * tree-ssa-threadupdate.c: Likewise.
2533 * tree-ssa-uninit.c: Likewise.
2534 * tree-ssanames.c: Likewise.
2535 * tree-streamer-out.c: Likewise.
2536 * tree.c: Likewise.
2537 * tree.h: Likewise.
2538 * vr-values.c: Likewise.
2539
2540 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
2541
2542 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
2543 (ix86_split_xorsign): Ditto.
2544 * config/i386/i386.c (ix86_expand_xorsign): New function.
2545 (ix86_split_xorsign): Ditto.
2546 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
2547 (xorsign<mode>3): New expander.
2548 (xorsign<mode>3_1): New insn_and_split pattern.
2549 * config/i386/sse.md (xorsign<mode>3): New expander.
2550
2551 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2552
2553 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
2554 (*tablejump_sp64): Likewise.
2555 (*tablejump<P:mode>): ...this.
2556 (*call_address_sp32): Merge into...
2557 (*call_address_sp64): Likewise.
2558 (*call_address<P:mode>): ...this.
2559 (*call_symbolic_sp32): Merge into...
2560 (*call_symbolic_sp64): Likewise.
2561 (*call_symbolic<P:mode>): ...this.
2562 (call_value): Remove constraint and add predicate.
2563 (*call_value_address_sp32): Merge into...
2564 (*call_value_address_sp64): Likewise.
2565 (*call_value_address<P:mode>): ...this.
2566 (*call_value_symbolic_sp32): Merge into...
2567 (*call_value_symbolic_sp64): Likewise.
2568 (*call_value_symbolic<P:mode>): ...this.
2569 (*sibcall_symbolic_sp32): Merge into...
2570 (*sibcall_symbolic_sp64): Likewise.
2571 (*sibcall_symbolic<P:mode>): ...this.
2572 (sibcall_value): Remove constraint and add predicate.
2573 (*sibcall_value_symbolic_sp32): Merge into...
2574 (*sibcall_value_symbolic_sp64): Likewise.
2575 (*sibcall_value_symbolic<P:mode>): ...this.
2576 (window_save): Minor tweak.
2577 (*branch_sp32): Merge into...
2578 (*branch_sp64): Likewise.
2579 (*branch<P:mode>): ...this.
2580
2581 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2582 James Clarke <jrtc27@jrtc27.com>
2583
2584 PR target/84010
2585 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
2586 consistently in TLS address generation and adjust code to the renaming
2587 of patterns. Mark calls to __tls_get_addr as const.
2588 * config/sparc/sparc.md (tgd_hi22): Turn into...
2589 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
2590 (tgd_lo10): Turn into...
2591 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
2592 (tgd_add32): Merge into...
2593 (tgd_add64): Likewise.
2594 (tgd_add<P:mode>): ...this and use Pmode throughout.
2595 (tldm_hi22): Turn into...
2596 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
2597 (tldm_lo10): Turn into...
2598 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
2599 (tldm_add32): Merge into...
2600 (tldm_add64): Likewise.
2601 (tldm_add<P:mode>): ...this and use Pmode throughout.
2602 (tldm_call32): Merge into...
2603 (tldm_call64): Likewise.
2604 (tldm_call<P:mode>): ...this and use Pmode throughout.
2605 (tldo_hix22): Turn into...
2606 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
2607 (tldo_lox10): Turn into...
2608 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
2609 (tldo_add32): Merge into...
2610 (tldo_add64): Likewise.
2611 (tldo_add<P:mode>): ...this and use Pmode throughout.
2612 (tie_hi22): Turn into...
2613 (tie_hi22<P:mode>): ...this and use Pmode throughout.
2614 (tie_lo10): Turn into...
2615 (tie_lo10<P:mode>): ...this and use Pmode throughout.
2616 (tie_ld64): Use DImode throughout.
2617 (tie_add32): Merge into...
2618 (tie_add64): Likewise.
2619 (tie_add<P:mode>): ...this and use Pmode throughout.
2620 (tle_hix22_sp32): Merge into...
2621 (tle_hix22_sp64): Likewise.
2622 (tle_hix22<P:mode>): ...this and use Pmode throughout.
2623 (tle_lox22_sp32): Merge into...
2624 (tle_lox22_sp64): Likewise.
2625 (tle_lox22<P:mode>): ...this and use Pmode throughout.
2626 (*tldo_ldub_sp32): Merge into...
2627 (*tldo_ldub_sp64): Likewise.
2628 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
2629 (*tldo_ldub1_sp32): Merge into...
2630 (*tldo_ldub1_sp64): Likewise.
2631 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
2632 (*tldo_ldub2_sp32): Merge into...
2633 (*tldo_ldub2_sp64): Likewise.
2634 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
2635 (*tldo_ldsb1_sp32): Merge into...
2636 (*tldo_ldsb1_sp64): Likewise.
2637 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
2638 (*tldo_ldsb2_sp32): Merge into...
2639 (*tldo_ldsb2_sp64): Likewise.
2640 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
2641 (*tldo_ldub3_sp64): Use DImode throughout.
2642 (*tldo_ldsb3_sp64): Likewise.
2643 (*tldo_lduh_sp32): Merge into...
2644 (*tldo_lduh_sp64): Likewise.
2645 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
2646 (*tldo_lduh1_sp32): Merge into...
2647 (*tldo_lduh1_sp64): Likewise.
2648 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
2649 (*tldo_ldsh1_sp32): Merge into...
2650 (*tldo_ldsh1_sp64): Likewise.
2651 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
2652 (*tldo_lduh2_sp64): Use DImode throughout.
2653 (*tldo_ldsh2_sp64): Likewise.
2654 (*tldo_lduw_sp32): Merge into...
2655 (*tldo_lduw_sp64): Likewise.
2656 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
2657 (*tldo_lduw1_sp64): Use DImode throughout.
2658 (*tldo_ldsw1_sp64): Likewise.
2659 (*tldo_ldx_sp64): Likewise.
2660 (*tldo_stb_sp32): Merge into...
2661 (*tldo_stb_sp64): Likewise.
2662 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
2663 (*tldo_sth_sp32): Merge into...
2664 (*tldo_sth_sp64): Likewise.
2665 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
2666 (*tldo_stw_sp32): Merge into...
2667 (*tldo_stw_sp64): Likewise.
2668 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
2669 (*tldo_stx_sp64): Use DImode throughout.
2670
2671 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2672
2673 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
2674 check configure option to set BTI and Return Address Signing.
2675 * configure.ac: Add --enable-standard-branch-protection and
2676 --disable-standard-branch-protection.
2677 * configure: Regenerated.
2678 * doc/install.texi: Document the same.
2679
2680 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2681 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2682
2683 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
2684 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
2685 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
2686 if bti is enabled.
2687 * config/aarch64/aarch64-bti-insert.c: New file.
2688 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
2689 pass.
2690 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
2691 new bti pass.
2692 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
2693 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
2694 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
2695 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
2696
2697 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2698
2699 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
2700 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
2701 Disable bti for -mbranch-protection=none.
2702 (aarch64_handle_standard_branch_protection): Enable bti for
2703 -mbranch-protection=standard.
2704 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
2705 -mbranch-protection.
2706 (aarch64_bti_enabled): Check if bti is enabled.
2707 * config/aarch64/aarch64.opt: Declare target variable.
2708 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
2709
2710 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2711
2712 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
2713 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
2714 (aarch64_expand_epilogue): Likewise.
2715 (aarch64_output_mi_thunk): Likewise
2716 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
2717 TAILCALL_ADDR_REGS to x16 and x17.
2718 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
2719
2720 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2721
2722 * config/aarch64/aarch64-option-extensions.def: Define
2723 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
2724 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
2725 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
2726 (AARCH64_FL_PREDRES): New.
2727 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
2728 AARCH64_FL_PREDRES by default.
2729 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
2730
2731 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2732
2733 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
2734 ARMv8.5-A.
2735 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
2736 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
2737 * doc/invoke.texi: Document ARMv8.5-A.
2738
2739 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2740
2741 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
2742 (xorsign<mode>3): Likewise.
2743
2744 2019-01-09 Jelinek <jakub@redhat.com>
2745
2746 PR middle-end/88758
2747 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
2748 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
2749
2750 PR rtl-optimization/88331
2751 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
2752 not currently_expanding_to_rtl.
2753
2754 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2755
2756 * doc/invoke.texi (-Os): Remove trailing spaces.
2757 (-finline-functions): Remove reference to -O2.
2758
2759 2019-01-08 Jakub Jelinek <jakub@redhat.com>
2760
2761 PR rtl-optimization/79593
2762 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
2763
2764 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
2765 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
2766
2767 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
2768
2769 PR bootstrap/88721
2770 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
2771 to -1 on entry.
2772
2773 PR debug/88723
2774 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
2775 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
2776
2777 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
2778
2779 PR target/88717
2780 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
2781 ix86_avx_u128_mode_entry.
2782
2783 2019-01-08 Martin Liska <mliska@suse.cz>
2784
2785 PR tree-optimization/88753
2786 * tree-switch-conversion.c (switch_conversion::build_one_array):
2787 Come up with local variable constructor. Convert first to
2788 type of constructor values.
2789
2790 2019-01-08 Richard Biener <rguenther@suse.de>
2791
2792 PR tree-optimization/86554
2793 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
2794 rpo_avail): Move earlier.
2795 (visit_nary_op): When value-numbering to expressions
2796 with different overflow behavior make sure there's an
2797 available expression on the path.
2798
2799 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
2800
2801 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
2802 aarch64_parse_branch_protection,
2803 struct aarch64_branch_protect_type,
2804 aarch64_handle_no_branch_protection,
2805 aarch64_handle_standard_branch_protection,
2806 aarch64_validate_mbranch_protection,
2807 aarch64_handle_pac_ret_protection,
2808 aarch64_handle_attr_branch_protection,
2809 accepted_branch_protection_string,
2810 aarch64_pac_ret_subtypes,
2811 aarch64_branch_protect_types,
2812 aarch64_handle_pac_ret_leaf): Define.
2813 (aarch64_override_options_after_change_1, aarch64_override_options):
2814 Add check for accepted_branch_protection_string.
2815 (aarch64_option_save): Save accepted_branch_protection_string.
2816 (aarch64_option_restore): Save accepted_branch_protection_string.
2817 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
2818 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
2819 msign-return-address.
2820 * doc/invoke.texi: Add mbranch-protection.
2821
2822 2019-01-08 Alan Modra <amodra@gmail.com>
2823
2824 PR target/88614
2825 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
2826 Delete "unknownp" parameter. Adjust callers. Handle
2827 CONST_INT, PLUS, MINUS, and MULT.
2828 (attr_value_aligned): Renamed from or_attr_value.
2829 (min_attr_value): Return INT_MIN for unhandled rtl case..
2830 (min_fn): ..and translate to INT_MAX here.
2831 (write_length_unit_log): Modify to cope without "unknown".
2832 (write_attr_value): Handle IF_THEN_ELSE.
2833
2834 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2835
2836 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
2837 optimization for masked stores.
2838
2839 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2840
2841 PR middle-end/88567
2842 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
2843 output vector directly to duplicate_and_interleave instead of
2844 going through a temporary. Postpone insertion of ctor_seq to
2845 the end of the loop.
2846
2847 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
2848
2849 PR target/86891
2850 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
2851 unsigned_p. Handle signed and unsigned overflow correction as
2852 required.
2853 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
2854 prototype.
2855 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
2856 for operand 2.
2857 (add<mode>3_compareV_imm): Make this callable for expanding.
2858 (subv<GPI:mode>4): Use register_operand for operand 1. Use
2859 aarch64_plus_operand for operand 2.
2860 (subv<GPI:mode>_insn): New insn pattern.
2861 (subv<GPI:mode>_imm): Likewise.
2862 (negv<GPI:mode>3): New expand pattern.
2863 (negv<GPI:mode>_insn): New insn pattern.
2864 (negv<GPI:mode>_cmp_only): Likewise.
2865 (cmpv<GPI:mode>_insn): Likewise.
2866 (subvti4): Use register_operand for operand 1. Update call to
2867 aarch64_expand_subvti.
2868 (usubvti4): Likewise.
2869 (negvti3): New expand pattern.
2870 (negdi_carryout): New insn pattern.
2871 (negvdi_carryinV): New insn pattern.
2872 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
2873 version the named version.
2874 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
2875 operands.
2876 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
2877 patterns.
2878 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
2879 patterns.
2880 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
2881 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
2882 (sub<mode>3_carryinCV): Delete.
2883 (sub<GPI:mode>3_carryinV): New expand pattern.
2884 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
2885
2886 2019-01-07 Richard Biener <rguenther@suse.de>
2887
2888 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
2889 of tree_operand_hash.
2890
2891 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2892
2893 PR tree-optimization/88598
2894 * tree.h (single_nonzero_element): Declare.
2895 * tree.c (single_nonzero_element): New function.
2896 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
2897 if I is the only nonzero element of CST.
2898
2899 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2900
2901 PR tree-optimization/88598
2902 * tree.h (initializer_each_zero_or_onep): Declare.
2903 * tree.c (initializer_each_zero_or_onep): New function.
2904 (signed_or_unsigned_type_for): Handle float types too.
2905 (unsigned_type_for, signed_type_for): Update comments accordingly.
2906 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
2907 x & { 0 or -1, 0 or -1, ... }.
2908
2909 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
2910
2911 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
2912 with x86_64-pc-linux-gnu.
2913
2914 2019-01-07 Tom de Vries <tdevries@suse.de>
2915
2916 PR target/85486
2917 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
2918 function.
2919 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
2920 routines.
2921
2922 2019-01-07 Jakub Jelinek <jakub@redhat.com>
2923
2924 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
2925 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
2926 TARGET_AVX512F as condition.
2927
2928 PR debug/88723
2929 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
2930 const_not_ok_for_debug_p target hook.
2931 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
2932 on UNSPEC and subexpressions thereof if all subexpressions of the
2933 UNSPEC are CONSTANT_P.
2934
2935 PR tree-optimization/88676
2936 * tree-ssa-phiopt.c (two_value_replacement): New function.
2937 (tree_ssa_phiopt_worker): Call it.
2938
2939 PR sanitizer/88619
2940 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
2941 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
2942
2943 PR c++/85052
2944 * tree-vect-generic.c: Include insn-config.h and recog.h.
2945 (expand_vector_piecewise): Add defaulted ret_type argument,
2946 if non-NULL, use that in preference to type for the result type.
2947 (expand_vector_parallel): Formatting fix.
2948 (do_vec_conversion, do_vec_narrowing_conversion,
2949 expand_vector_conversion): New functions.
2950 (expand_vector_operations_1): Call expand_vector_conversion
2951 for VEC_CONVERT ifn calls.
2952 * internal-fn.def (VEC_CONVERT): New internal function.
2953 * internal-fn.c (expand_VEC_CONVERT): New function.
2954 * fold-const-call.c (fold_const_vec_convert): New function.
2955 (fold_const_call): Use it for CFN_VEC_CONVERT.
2956 * doc/extend.texi (__builtin_convertvector): Document.
2957
2958 2019-01-07 Tom de Vries <tdevries@suse.de>
2959
2960 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
2961 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
2962 vector_red_partition, vector_red_sym): New global variables.
2963 (nvptx_option_override): Initialize vector_red_sym.
2964 (nvptx_declare_function_name): Restore red_partition register.
2965 (nvptx_file_end): Emit code to declare the vector reduction variables.
2966 (nvptx_output_red_partition): New function.
2967 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
2968 large vector reductions.
2969 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
2970 (nvptx_init_builtins): Add VECTOR_ADDR.
2971 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
2972 Handle nvptx_expand_shared_addr.
2973 (nvptx_get_shared_red_addr): Add vector argument and handle large
2974 vectors.
2975 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
2976 large vectors.
2977 (nvptx_goacc_reduction_init): Likewise.
2978 (nvptx_goacc_reduction_fini): Likewise.
2979 (nvptx_goacc_reduction_teardown): Likewise.
2980 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
2981 init,fini,teardown}.
2982 (nvptx_init_axis_predicate): Initialize vector_red_partition.
2983 (nvptx_set_current_function): Init vector_red_partition.
2984 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
2985 (nvptx_red_partition): New insn.
2986 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
2987
2988 2019-01-07 Tom de Vries <tdevries@suse.de>
2989
2990 PR target/85381
2991 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
2992 empty loops.
2993
2994 2019-01-07 Tom de Vries <tdevries@suse.de>
2995
2996 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
2997 (nvptx_option_override): Init oacc_bcast_partition.
2998 (nvptx_init_oacc_workers): New function.
2999 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
3000 (nvptx_needs_shared_bcast): New function.
3001 (nvptx_find_par): Generalize to enable vectors to use shared-memory
3002 to propagate state.
3003 (nvptx_shared_propagate): Initialize vector bcast partition and
3004 synchronization state.
3005 (nvptx_single): Generalize to enable vectors to use shared-memory
3006 to propagate state.
3007 (nvptx_process_pars): Likewise.
3008 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
3009 * config/nvptx/nvptx.h (struct machine_function): Add
3010 bcast_partition and sync_bar members.
3011
3012 2019-01-07 Tom de Vries <tdevries@suse.de>
3013
3014 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
3015 (nvptx_apply_dim_limits): New function.
3016 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
3017 PTX_WARP_SIZE.
3018
3019 2019-01-07 Tom de Vries <tdevries@suse.de>
3020
3021 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3022 as late as possible.
3023
3024 2019-01-07 Tom de Vries <tdevries@suse.de>
3025
3026 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
3027 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
3028 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
3029 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
3030 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
3031
3032 2019-01-07 Tom de Vries <tdevries@suse.de>
3033
3034 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3035
3036 2019-01-07 Tom de Vries <tdevries@suse.de>
3037
3038 * omp-offload.c (oacc_get_min_dim): New function.
3039 * omp-offload.h (oacc_get_min_dim): Declare.
3040
3041 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
3042
3043 PR target/88521
3044 * config/i386/i386.c (function_value_ms_64): Return small sturct in
3045 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
3046
3047 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3048
3049 PR tree-opt/86020
3050 Revert:
3051 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
3052
3053 * ipa-inline.c (edge_badness): Use inlined_time instead of
3054 inline_summaries->get.
3055
3056 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3057
3058 * opts.c (enable_fdo_optimizations): Enable
3059 version-loops-for-strides, loop-interchange, unrol-and-jam
3060 and tree-loop-distribution.
3061 * invoke.texi: Document newly enabled options.
3062
3063 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3064
3065 * doc/invoke.texi (max-inline-insns-small): New parameters.
3066 * ipa-inline.c (want_early_inline_function_p): simplify.
3067 (want_inline_small_function_p): Fix pasto from previous patch;
3068 use max-inline-insns-small bound.
3069 * params.def (max-inline-insns-small): New param.
3070 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
3071 variables correctly.
3072
3073 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3074
3075 * doc/invoke.texi: Document max-inline-insns-size,
3076 uninlined-function-insns, uninlined-function-time,
3077 uninlined-thunk-insns and uninlined-thunk-time.
3078 * params.def: Add max-inline-insns-size,
3079 uninlined-function-insns, uninlined-function-time,
3080 uninlined-thunk-insns and uninlined-thunk-time.
3081 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
3082 new parameters.
3083 * ipa-inline.c (can_inline_edge_by_limits_p,
3084 want_inline_small_function_p): Use new parameters.
3085
3086 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3087
3088 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3089
3090 2019-01-05 Jakub Jelinek <jakub@redhat.com>
3091
3092 PR middle-end/82564
3093 PR target/88620
3094 * expr.c (expand_assignment): For calls returning VLA structures
3095 if to_rtx is not a MEM, force it into a stack temporary.
3096
3097 PR debug/88635
3098 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3099 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3100 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3101 subexpressions of both operands.
3102 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3103 subrtxes are CONSTANT_P.
3104 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
3105 2018-11-09 changes.
3106
3107 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
3108
3109 * params.def (hot-bb-count-ws-permille): Set to 990.
3110
3111 2019-01-04 Martin Sebor <msebor@redhat.com>
3112
3113 PR c/88546
3114 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3115 leaf.
3116
3117 2019-01-04 Martin Sebor <msebor@redhat.com>
3118
3119 PR c/88363
3120 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3121
3122 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3123
3124 * gdbinit.in: Turn off pagination for the skip commands, restore
3125 it to previous state afterwards.
3126
3127 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3128
3129 PR target/88594
3130 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3131 of GET_MODE (opN) as modes of the libcall arguments.
3132
3133 2019-01-04 Jan Beulich <jbeulich@suse.com>
3134
3135 * config/i386/sse.md
3136 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
3137 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
3138 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3139 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3140 avx512f_vmcmp<mode>3<round_saeonly_name>,
3141 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
3142 avx512f_maskcmp<mode>3,
3143 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3144 <avx512>_cvt<ssemodesuffix>2mask<mode>,
3145 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3146 *<avx512>_cvtmask2<ssemodesuffix><mode>,
3147 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3148 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3149 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3150 <avx512>_gt<mode>3<mask_scalar_merge_name>,
3151 <avx512>_testm<mode>3<mask_scalar_merge_name>,
3152 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
3153 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
3154 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
3155 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
3156 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
3157 avx512cd_maskb_vec_dup<mode>,
3158 avx512cd_maskw_vec_dup<mode>,
3159 avx512dq_fpclass<mode><mask_scalar_merge_name>,
3160 avx512dq_vmfpclass<mode>,
3161 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
3162 instead of =Yk.
3163
3164 2019-01-03 Martin Sebor <msebor@redhat.com>
3165
3166 PR tree-optimization/88659
3167 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
3168
3169 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
3170
3171 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
3172 unaligned vsx and avoid lxvd2x/stxvd2x.
3173 (gen_lvx_v4si_move): New function.
3174
3175 2019-01-03 Tom de Vries <tdevries@suse.de>
3176
3177 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
3178 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
3179 function.
3180 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
3181
3182 2019-01-03 Tom de Vries <tdevries@suse.de>
3183
3184 * config/nvptx/nvptx.c (struct offload_attrs): New.
3185 (populate_offload_attrs): New function. Factor mask extraction out of
3186 nvptx_reorg. Add extraction of dimensions.
3187 (nvptx_reorg): Use populate_offload_attrs.
3188
3189 2019-01-03 Tom de Vries <tdevries@suse.de>
3190
3191 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
3192 cases for oacc_min_dims_p and routine_p. Add asserts for
3193 oacc_default_dims_p and offload_region_p.
3194
3195 2019-01-03 Tom de Vries <tdevries@suse.de>
3196
3197 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
3198 factored out of ...
3199 (nvptx_goacc_validate_dims): ... here.
3200
3201 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3202
3203 PR tree-optimization/85574
3204 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
3205 structure.
3206 (struct ssa_equip_hash_traits): Declare.
3207 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
3208
3209 2019-01-03 Jakub Jelinek <jakub@redhat.com>
3210
3211 PR debug/88644
3212 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
3213 change it to qualified_type.
3214
3215 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
3216
3217 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
3218 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
3219
3220 2019-01-02 Martin Sebor <msebor@redhat.com>
3221 Jeff Law <law@redhat.com>
3222
3223 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
3224 (get_range_strlen_tree): Update appropriately.
3225 (get_range_strlen)
3226 * gimple-fold.h (get_range_strlen): Drop unused last argument.
3227
3228 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
3229 rather than set_range_info.
3230 * tree-ssa-strlen.c (set_strlen_range): Extracted from
3231 maybe_set_strlen_range. Handle potentially boundary crossing
3232 cases more conservatively.
3233 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
3234 Call set_strlen_range.
3235 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
3236
3237 PR middle-end/88663
3238 * gimple-fold.c (get_range_strlen): Update prototype to no longer
3239 need the flexp argument.
3240 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
3241 from calls to get_range_strlen. Update comments. Just update
3242 VAL for an unterminated const char array and let the reset of the
3243 code handle it normally. No longer try to set *flexp. Adjust
3244 return value.
3245 (get_range_strlen): Update for the new get_range_strlen API.
3246 (get_maxval_strlen): Similarly.
3247 (gimple_fold_builtin_strlen): Handle update meaning of return value
3248 from get_range_strlen.
3249 * gimple-ssa-sprintf.c (get_string_length): Update for the new
3250 get_range_strlen API.
3251
3252 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
3253
3254 PR lto/88130
3255 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
3256 false at WPA time when body was removed.
3257
3258 2019-01-02 Martin Liska <mliska@suse.cz>
3259
3260 PR tree-optimization/88650
3261 * predict.c (set_even_probabilities): Calculate probability
3262 remainer only when really used.
3263
3264 2019-01-02 Richard Biener <rguenther@suse.de>
3265
3266 PR middle-end/88651
3267 * tree-data-ref.c (analyze_subscript_affine_affine): Use
3268 widest_ints when mangling max_stmt_execution results.
3269
3270 2019-01-02 Richard Biener <rguenther@suse.de>
3271
3272 PR tree-optimization/88621
3273 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
3274 bitfields when canoncalizing.
3275
3276 2019-01-02 Richard Biener <rguenther@suse.de>
3277
3278 PR target/87545
3279 * config/i386/x86-tune-costs.h (intel_cost): Adjust
3280 cost of cheap SSE instruction.
3281
3282 2019-01-02 Richard Biener <rguenther@suse.de>
3283
3284 PR ipa/85574
3285 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
3286 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
3287 function.
3288 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
3289 set after UIDs before splitting them.
3290
3291 2019-01-01 Martin Sebor <msebor@redhat.com>
3292 Jeff Law <law@redhat.com>
3293
3294 * gimple-fold.c (get_range_strlen_tree): Record if the computed
3295 length is optimistic. If it is, then arrange to compute the
3296 conservative length as well.
3297
3298 * gimple-fold.h (get_range_strlen): Update prototype.
3299 * builtins.c (check_access): Update call to get_range_strlen to use
3300 c_strlen_data pointer. Change various variable accesses to instead
3301 pull data from the c_strlen_data structure.
3302 (check_strncat_sizes, expand_builtin_strncat): Likewise.
3303 * calls.c (maybe_warn_nonstring_arg): Likewise.
3304 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
3305 minimum length if maximum lengh is unknown.
3306 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
3307 that used c_strlen, it's no longer needed. Restructure slightly.
3308 (format_string): Set unlikely range appropriately.
3309 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
3310 formatting issues.
3311 (get_range_strlen): Accept c_strlen_data pointer for external
3312 call sites as well. Pass through to call to internal get_range_strlen.
3313 Adjust minlen, maxlen and maxbound as needed.
3314 (get_maxval_strlen): Update comments.
3315 (gimple_fold_builtin_strlen): Update call to get_range_strlen
3316 to use c_strlen_data pointer. Change variable accesses to instead
3317 use c_strlen_data data members.
3318
3319 * gimple-fold.c (get_range_strlen): Update prototype.
3320 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
3321 local variables. Use pdata to return information to caller.
3322 Update calls to get_range_strlen. Update pdata->maxbound.
3323 (get_range_strlen -- static version): Similarly.
3324 (get_range_strlen -- extern version): Update for internal
3325 get_range_strlen API change. Convert to external data format.
3326 (get_maxval_strlen): Similarly.
3327
3328 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
3329
3330 * coverage.c (get_coverage_counts): Use current_function_decl.
3331 * profile.c (read_thunk_profile): New function.
3332 (branch_prob): Add THUNK parameter.
3333 * tree-profile.c (tree_profiling): Handle thunks.
3334 * value-prof.c (init_node_map): Handle thunks.
3335 * value-prof.h (branch_prob): Upate prototype.
3336 (read_thunk_profile): Declare.
3337
3338 2019-01-01 Jakub Jelinek <jakub@redhat.com>
3339
3340 Update copyright years.
3341
3342 * gcc.c (process_command): Update copyright notice dates.
3343 * gcov-dump.c (print_version): Ditto.
3344 * gcov.c (print_version): Ditto.
3345 * gcov-tool.c (print_version): Ditto.
3346 * gengtype.c (create_file): Ditto.
3347 * doc/cpp.texi: Bump @copying's copyright year.
3348 * doc/cppinternals.texi: Ditto.
3349 * doc/gcc.texi: Ditto.
3350 * doc/gccint.texi: Ditto.
3351 * doc/gcov.texi: Ditto.
3352 * doc/install.texi: Ditto.
3353 * doc/invoke.texi: Ditto.
3354 \f
3355 Copyright (C) 2019 Free Software Foundation, Inc.
3356
3357 Copying and distribution of this file, with or without modification,
3358 are permitted in any medium without royalty provided the copyright
3359 notice and this notice are preserved.