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