Do not instrument static target_expr for use-after-scope (PR sanitizer/90570).
[gcc.git] / gcc / ChangeLog
1 2019-05-23 Martin Liska <mliska@suse.cz>
2
3 PR sanitizer/90570
4 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
5 expression similarly to gimplify_decl_expr.
6
7 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
8
9 * cse.c (cse_dump_path): s/dump_file/f.
10
11 2019-05-22 David Malcolm <dmalcolm@redhat.com>
12
13 PR c++/90462
14 * diagnostic-format-json.cc: Include "selftest.h".
15 (json_from_expanded_location): Only add "file" key for non-NULL
16 file strings.
17 (json_from_location_range): Don't add "start" and "finish"
18 children if they are UNKNOWN_LOCATION.
19 (selftest::test_unknown_location): New selftest.
20 (selftest::test_bad_endpoints): New selftest.
21 (selftest::diagnostic_format_json_cc_tests): New function.
22 * json.cc (json::object::get): New function.
23 (selftest::test_object_get): New selftest.
24 (selftest::json_cc_tests): Call it.
25 * json.h (json::object::get): New decl.
26 * selftest-run-tests.c (selftest::run_tests): Call
27 selftest::diagnostic_format_json_cc_tests.
28 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
29 decl.
30
31 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
32 Andrew Stubbs <amd@codesourcery.com>
33
34 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
35 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
36 (kernel): Rename to...
37 (main_kernel): ... this.
38 (load_image): Load _init_array and _fini_array kernels.
39 (run): Add argument for kernel to run.
40 (main): Run init_array_kernel before main_kernel, and
41 fini_array_kernel after.
42 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
43 amdgpu_hsa_kernel attribute on functions.
44 (gcn_disable_constructors): Delete.
45 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
46 * config/gcn/crt0.c (size_t): Define.
47 (_init_array, _fini_array): New.
48 (__preinit_array_start, __preinit_array_end,
49 __init_array_start, __init_array_end,
50 __fini_array_start, __fini_array_end): Declare weak references.
51
52 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
53
54 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
55
56 2019-05-22 Jason Merrill <jason@redhat.com>
57
58 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
59
60 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
61
62 PR target/88483
63 * config/i386/i386-options.c (ix86_init_machine_status): Set
64 stack_frame_required to true.
65 * config/i386/i386.c (ix86_get_frame_size): New function.
66 (ix86_frame_pointer_required): Replace get_frame_size with
67 ix86_get_frame_size.
68 (ix86_compute_frame_layout): Likewise.
69 (ix86_find_max_used_stack_alignment): Changed to void. Set
70 stack_frame_required.
71 (ix86_finalize_stack_frame_flags): Always call
72 ix86_find_max_used_stack_alignment. Replace get_frame_size with
73 ix86_get_frame_size.
74 * config/i386/i386.h (machine_function): Add stack_frame_required.
75
76 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
77
78 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
79
80 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
81
82 * common/config/aarch64/aarch64-common.c
83 (struct aarch64_option_extension, struct processor_name_to_arch,
84 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
85 aarch64_contains_opt,
86 aarch64_get_extension_string_for_isa_flags): Change type of
87 variables storing flags to uint64_t.
88 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
89 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
90 * config/aarch64/aarch64.c (struct processor,
91 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
92 aarch64_validate_march, aarch64_override_options,
93 aarch64_option_print, aarch64_handle_attr_isa_flags,
94 aarch64_declare_function_name, aarch64_start_file): Make flag
95 variables uint64_t.
96 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
97 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
98 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
99 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
100 * config/aarch64/driver-aarch64.c
101 (struct aarch64_arch_extension, struct aarch64_core_data,
102 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
103 flag variables uint64_t.
104 * doc/invoke.texi: Add documentation for new arguments.
105
106 2019-05-22 Richard Biener <rguenther@suse.de>
107
108 * alias.c (ao_ref_from_mem): Move stack-slot sharing
109 rewrite ...
110 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
111
112 2019-05-22 Martin Liska <mliska@suse.cz>
113
114 PR lto/90500
115 * doc/extend.texi: Document the change.
116
117 2019-05-22 Richard Biener <rguenther@suse.de>
118
119 PR tree-optimization/90450
120 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
121 (mem_ref_hasher::equal): Check it.
122 (mem_ref_alloc): Initialize it.
123 (gather_mem_refs_stmt): Set it.
124
125 2019-05-22 Richard Biener <rguenther@suse.de>
126
127 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
128 Add ABS_EXPR.
129 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
130 as ABSU_EXPR.
131
132 2019-05-22 Alan Modra <amodra@gmail.com>
133
134 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
135 (ASM_CPU_SPEC): Conditionally add -many.
136 * config/rs6000/rs6000.c (rs6000_machine): New static var.
137 (rs6000_machine_from_flags, emit_asm_machine): New functions..
138 (rs6000_file_start): ..extracted from here, and modified to
139 test all ISA bits.
140 (rs6000_output_function_prologue): Emit .machine as necessary.
141 * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
142 power mnemonics.
143 * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
144 added by check_vect_support_and_set_flags.
145 * testsuite/gcc.dg/vect/pr48765.c: Likewise.
146 * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
147
148 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
149
150 PR middle-end/90553
151 * ira-lives.c (process_bb_node_lives): Consider defs
152 for a call insn to be die before the call, not after.
153
154 * function.c (assign_parm_setup_block): Raise alignment of
155 stacked parameter only for STRICT_ALIGNMENT targets.
156
157 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
158
159 * config/rs6000/constraints.md (define_register_constraint "wz"):
160 Delete.
161 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
162 RS6000_CONSTRAINT_wz.
163 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
164 (rs6000_init_hard_regno_mode_ok): Adjust.
165 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
166 * doc/md.texi (Machine Constraints): Adjust.
167
168 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
169
170 * config/rs6000/constraints.md (define_register_constraint "wl"):
171 Delete.
172 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
173 RS6000_CONSTRAINT_wl.
174 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
175 (rs6000_init_hard_regno_mode_ok): Adjust.
176 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
177 * doc/md.texi (Machine Constraints): Adjust.
178
179 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
180
181 * config/rs6000/constraints.md (define_register_constraint "wm"):
182 Delete.
183 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
184 RS6000_CONSTRAINT_wm.
185 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
186 (rs6000_init_hard_regno_mode_ok): Adjust.
187 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
188 * doc/md.texi (Machine Constraints): Adjust.
189
190 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
191
192 * config/rs6000/constraints.md (define_register_constraint "wk"):
193 Delete.
194 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
195 RS6000_CONSTRAINT_wk.
196 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
197 (rs6000_init_hard_regno_mode_ok): Adjust.
198 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
199 * doc/md.texi (Machine Constraints): Adjust.
200
201 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
202
203 * config/rs6000/constraints.md (define_register_constraint "wj"):
204 Delete.
205 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
206 RS6000_CONSTRAINT_wj.
207 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
208 (rs6000_init_hard_regno_mode_ok): Adjust.
209 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
210 (VS_64dm): Delete.
211 * config/rs6000/vsx.md: Ditto.
212 * doc/md.texi (Machine Constraints): Adjust.
213
214 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
215
216 * config/rs6000/constraints.md (define_register_constraint "wh"):
217 Delete.
218 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
219 RS6000_CONSTRAINT_wh.
220 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
221 (rs6000_init_hard_regno_mode_ok): Adjust.
222 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
223 * doc/md.texi (Machine Constraints): Adjust.
224
225 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
226
227 PR target/90547
228 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
229 Avoid calling gen_lowpart with CONST operand.
230
231 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
232
233 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
234 field template_last_to_copy.
235 (ssa_create_duplicates): Set it, and use it. Attempt to
236 preserve more debug stmts.
237
238 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
239
240 * config/i386/sse.md (VF1_AVX2): New mode iterator.
241 (signbit<mode>2): New expander
242
243 2019-05-21 James Clarke <jrtc27@jrtc27.com>
244
245 PR bootstrap/87338
246 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
247 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
248
249 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
250
251 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
252 %ebx and %ecx bafore calling cpuid with leaf 1 or
253 non-constant leaf argument.
254
255 2019-05-21 Alan Modra <amodra@gmail.com>
256
257 PR target/90545
258 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
259 power9 direct move cost.
260 * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
261 Correct comments and rename functions to suit parameters.
262
263 2019-05-21 Richard Biener <rguenther@suse.de>
264
265 PR middle-end/90510
266 * fold-const.c (fold_read_from_vector): New function.
267 * fold-const.h (fold_read_from_vector): Declare.
268 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
269 single-element insert permutations. Canonicalize selector
270 further and fix issue with last commit.
271
272 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
273
274 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
275 parameter with default value false to declaration.
276 (split_edges_for_insertion): New inline function. Wrapper for
277 split_critical_edges with for_edge_insertion_p = true.
278 * tree-cfg.c (split_critical_edges): Don't split non-critical
279 edges if for_edge_insertion_p is false. Fix whitespace.
280 * tree-ssa-pre.c (pass_pre::execute): Call
281 split_edges_for_insertion instead of split_critical_edges.
282 * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
283 * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
284 (pass_data_sink_code): Update function name in the comment.
285
286 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
287
288 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
289 around is_value_included_in that knows how to handle BIT_AND_EXPR.
290 (is_pred_expr_subset_of): Use the new function. Handle more cases where
291 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
292 positives.
293
294 2019-05-21 Martin Liska <mliska@suse.cz>
295
296 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
297 an extra newline.
298 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
299 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
300 vec_lvsr.
301 * config/rs6000/rs6000.c (rs6000_option_override_internal):
302 Quote a C type.
303 (rs6000_function_arg): Likewise.
304 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
305 (rs6000_expand_ternop_builtin): Use interval syntax.
306 (get_element_number): Likewise.
307 (altivec_expand_builtin): Likewise.
308 (rs6000_get_function_versions_dispatcher): Quote target_clones.
309
310 Fix test-suite.
311
312 2019-05-20 Jakub Jelinek <jakub@redhat.com>
313
314 PR c++/59813
315 PR target/90418
316 * function.h (struct function): Add calls_eh_return member.
317 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
318 gimplifying __builtin_eh_return call.
319 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
320 to cfun.
321 (expand_call_inline): Or in src_cfun->calls_eh_return into
322 dst_cfun->calls_eh_return.
323 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
324 cfun->calls_eh_return.
325 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
326 * lto-streamer-out.c (output_struct_function_base): Write
327 calls_eh_return.
328
329 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
330
331 PR rtl-optimization/43147
332 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
333 IX86_BUILTIN_SHUFPD.
334
335 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
336
337 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
338 (refs_may_alias_p_1): ... here; update stats.
339 (refs_may_alias_p): Do not update stats here.
340
341 2019-05-20 Richard Biener <rguenther@suse.de>
342
343 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
344 doesn't produce pointers.
345 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
346 the first operand points to.
347
348 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
349
350 * tree-ssa-alias.c (compare_sizes): New function.
351 (sompare_type_sizes): New function
352 (aliasing_component_refs_p): Use it.
353 (indirect_ref_may_alias_decl_p): Likewise.
354
355 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
356
357 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
358
359 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
360
361 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
362 (LIBLSAN_EARLY_SPEC): Likewise.
363 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
364
365 2019-05-20 Martin Liska <mliska@suse.cz>
366
367 * config/i386/i386.c (ix86_libc_has_fast_function):
368 Add ATTRIBUTE_UNUSED for the argument.
369
370 2019-05-20 Richard Biener <rguenther@suse.de>
371
372 * gimple-match-head.c: Include vec-perm-indices.h.
373 * generic-match-head.c: Likewise.
374 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
375 is included.
376 * fold-const.c (fold_vec_perm): Export.
377 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
378 (match.pd): ...here.
379
380 2019-05-20 Jakub Jelinek <jakub@redhat.com>
381
382 * cfgloop.h (struct loop): Add simdlen member.
383 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
384 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
385 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
386 as new argument to autovectorize_vector_sizes target hook. If
387 loop->simdlen, pick up vector size where the vectorization factor
388 is equal to loop->simd, and if there is none, fall back to the first
389 successful one.
390 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
391 caller.
392 * omp-low.c (omp_clause_aligned_alignment): Likewise.
393 * omp-general.c (omp_max_vf): Likewise.
394 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
395 * tree-vect-slp.c (vect_slp_bb): Likewise.
396 * target.def (autovectorize_vector_sizes): Add ALL argument and
397 document it.
398 * doc/tm.texi: Adjust documentation.
399 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
400 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
401 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
402 bool argument.
403 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
404 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
405 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
406 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
407 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
408 preferred vector size is not 512-bit or 256-bit, just put those
409 unpreferred ones last.
410
411 2019-05-20 Martin Liska <mliska@suse.cz>
412
413 * targhooks.c (default_libc_has_fast_function): New function.
414 * targhooks.h (default_libc_has_fast_function): Likewise.
415
416 2019-05-20 Martin Liska <mliska@suse.cz>
417
418 PR middle-end/90263
419 * builtins.c (expand_builtin_memory_copy_args): When having a
420 target with fast mempcpy implementation do now use memcpy.
421 * config/i386/i386.c (ix86_libc_has_fast_function): New.
422 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
423 * doc/tm.texi: Likewise.
424 * doc/tm.texi.in: Likewise.
425 * target.def:
426 * expr.c (emit_block_move_hints): Add 2 new arguments.
427 * expr.h (emit_block_move_hints): Bail out when libcall
428 to memcpy would be used.
429
430 2019-05-20 Martin Liska <mliska@suse.cz>
431
432 * profile-count.c: Add vertical spacing in order
433 to separate functions.
434 * profile-count.h: Likewise.
435
436 2019-05-20 Martin Liska <mliska@suse.cz>
437
438 * profile-count.h: Do not use full qualified
439 names if possible.
440 * profile-count.c (profile_count::to_frequency): Likewise.
441
442 2019-05-20 Martin Liska <mliska@suse.cz>
443
444 * profile-count.h (enum profile_quality): Use capital letters
445 for enum value names. Use the adjusted names.
446 * profile-count.c: Use the adjusted names.
447
448 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
449
450 * config/rs6000/constraints.md (define_register_constraint "wH"):
451 Delete.
452 (define_register_constraint "wI"): Delete.
453 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
454 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
455 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
456 (rs6000_init_hard_regno_mode_ok): Adjust.
457 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
458 resp. "d", or with "wa" as appropriate, all with "p8v".
459 * config/rs6000/vsx.md: Ditto.
460 * doc/md.texi (Machine Constraints): Adjust.
461
462 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
463
464 * config/rs6000/constraints.md (define_register_constraint "wy"):
465 Delete.
466 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
467 RS6000_CONSTRAINT_wy.
468 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
469 (rs6000_init_hard_regno_mode_ok): Adjust.
470 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
471 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
472 (define_mode_attr Fisa): New.
473 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
474 * doc/md.texi (Machine Constraints): Adjust.
475
476 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
477
478 * config/rs6000/constraints.md (define_register_constraint "wu"):
479 Delete.
480 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
481 RS6000_CONSTRAINT_wu.
482 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
483 (rs6000_init_hard_regno_mode_ok): Adjust.
484 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
485 both with "p8v".
486 (define_mode_attr Fa): Delete.
487 * config/rs6000/vsx.md: Ditto.
488 * doc/md.texi (Machine Constraints): Adjust.
489
490 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
491
492 * config/rs6000/constraints.md (define_register_constraint "wJ"):
493 Delete.
494 (define_register_constraint "wK"): Delete.
495 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
496 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
497 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
498 (rs6000_init_hard_regno_mode_ok): Adjust.
499 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
500 Replace "wK" constraint by "wH" with "p9v".
501 * config/rs6000/vsx.md: Ditto.
502 * doc/md.texi (Machine Constraints): Adjust.
503
504 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
505
506 * config/rs6000/constraints.md (define_register_constraint "wb"):
507 Delete.
508 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
509 RS6000_CONSTRAINT_wb.
510 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
511 (rs6000_init_hard_regno_mode_ok): Adjust.
512 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
513 * config/rs6000/vsx.md: Ditto.
514 * doc/md.texi (Machine Constraints): Adjust.
515
516 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
517
518 * config/rs6000/constraints.md (define_register_constraint "wo"):
519 Delete.
520 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
521 RS6000_CONSTRAINT_wo.
522 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
523 (rs6000_init_hard_regno_mode_ok): Adjust.
524 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
525 * config/rs6000/altivec.md: Ditto.
526 * doc/md.texi (Machine Constraints): Adjust.
527
528 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
529
530 * config/darwin-c.c (darwin_register_objc_includes): Do not
531 prepend the sysroot when building gnu-runtime header search
532 paths.
533
534 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
535
536 * config/darwin.c (darwin_file_end): Use switch_to_section ()
537 instead of direct output of the asm.
538
539 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
540
541 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
542 argument to be type bool (was int before).
543 (rs6000_emit_epilogue): Simplify some code. Declare some variables
544 at first use. Use type bool for some variables. Fix a theoretical
545 eh_return bug for svr4.
546
547 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
548
549 * config/rs6000/rs6000.md (isa): New attribute.
550 (enabled): New attribute.
551
552 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
553
554 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
555 assemble_start_function and assemble_end_function.
556
557 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
558
559 PR middle-end/89433
560 * omp-general.c (oacc_verify_routine_clauses): Change formal
561 parameters. Add checking if already marked with an OpenACC
562 'routine' directive. Adjust all users.
563
564 PR middle-end/89433
565 * omp-general.c (oacc_build_routine_dims): Move some of its
566 processing into...
567 (oacc_verify_routine_clauses): ... this new function.
568 * omp-general.h (oacc_verify_routine_clauses): New prototype.
569
570 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
571
572 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
573 formating of picbase labels to match other ports.
574
575 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
576
577 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
578 in the generated code.
579
580 2019-05-16 Martin Sebor <msebor@redhat.com>
581
582 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
583 identifiers, keywords, operators, and types in diagnostics. Correct
584 quoting, spelling, and sentence capitalization issues.
585 (expand_builtin_atomic_is_lock_free): Same.
586 (fold_builtin_next_arg): Same.
587 * cfgexpand.c (expand_one_var): Same.
588 (tree_conflicts_with_clobbers_p): Same.
589 (expand_asm_stmt): Same.
590 (verify_loop_structure): Same.
591 * cgraphunit.c (process_function_and_variable_attributes): Same.
592 * collect-utils.c (collect_execute): Same.
593 * collect2.c (maybe_run_lto_and_relink): Same.
594 (is_lto_object_file): Same.
595 (scan_prog_file): Same.
596 * convert.c (convert_to_real_1): Same.
597 * dwarf2out.c (dwarf2out_begin_prologue): Same.
598 * except.c (verify_eh_tree): Same.
599 * gcc.c (execute): Same.
600 (eval_spec_function): Same.
601 (run_attempt): Same.
602 (driver::set_up_specs): Same.
603 (compare_debug_auxbase_opt_spec_function): Same.
604 * gcov-tool.c (unlink_gcda_file): Same.
605 (do_merge): Same.
606 (do_rewrite): Same.
607 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
608 * gimplify.c (gimplify_asm_expr): Same.
609 (gimplify_adjust_omp_clauses): Same.
610 * hsa-gen.c (gen_hsa_addr_insns): Same.
611 (gen_hsa_insns_for_load): Same.
612 (gen_hsa_cmp_insn_from_gimple): Same.
613 (gen_hsa_insns_for_operation_assignment): Same.
614 (gen_get_level): Same.
615 (gen_hsa_alloca): Same.
616 (omp_simple_builtin::generate): Same.
617 (gen_hsa_atomic_for_builtin): Same.
618 (gen_hsa_insns_for_call): Same.
619 * input.c (dump_location_info): Same.
620 * ipa-devirt.c (compare_virtual_tables): Same.
621 * ira.c (ira_setup_eliminable_regset): Same.
622 * lra-assigns.c (lra_assign): Same.
623 * lra-constraints.c (lra_constraints): Same.
624 * lto-streamer-in.c (lto_input_mode_table): Same.
625 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
626 (merge_and_complain): Same.
627 (compile_offload_image): Same.
628 (compile_images_for_offload_targets): Same.
629 (debug_objcopy): Same.
630 (run_gcc): Same.
631 (main): Same.
632 * opts.c (print_specific_help): Same.
633 (parse_no_sanitize_attribute): Same.
634 (print_help): Same.
635 (handle_param): Same.
636 * plugin.c (add_new_plugin): Same.
637 (parse_plugin_arg_opt): Same.
638 (try_init_one_plugin): Same.
639 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
640 operators, and types in diagnostics. Correct quoting and spelling
641 issues.
642 * read-rtl-function.c (parse_edge_flag_token): Same.
643 (function_reader::parse_enum_value): Same.
644 * reg-stack.c (check_asm_stack_operands): Same.
645 * regcprop.c (validate_value_data): Same.
646 * sched-rgn.c (make_pass_sched_fusion): Same.
647 * stmt.c (check_unique_operand_names): Same.
648 * targhooks.c (default_target_option_pragma_parse): Same.
649 * tlink.c (recompile_files): Same.
650 * toplev.c (process_options): Same.
651 (do_compile): Same.
652 * trans-mem.c (diagnose_tm_1): Same.
653 (ipa_tm_scan_irr_block): Same.
654 (ipa_tm_diagnose_transaction): Same.
655 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
656 format a tree code name in a diagnostic.
657 (verify_types_in_gimple_min_lval): Same.
658 (verify_types_in_gimple_reference): Same.
659 (verify_gimple_call): Same.
660 (verify_gimple_assign_unary): Same.
661 (verify_gimple_assign_binary): Same.
662 (verify_gimple_assign_ternary): Same.
663 (verify_gimple_assign_single): Same.
664 (verify_gimple_switch): Same.
665 (verify_gimple_label): Same.
666 (verify_gimple_phi): Same.
667 (verify_gimple_in_seq): Same.
668 (verify_eh_throw_stmt_node): Same.
669 (collect_subblocks): Same.
670 (gimple_verify_flow_info): Same.
671 (do_warn_unused_result): Same.
672 * tree-inline.c (expand_call_inline): Same.
673 * tree-into-ssa.c (update_ssa): Same.
674 * tree.c (tree_int_cst_elt_check_failed): Same.
675 (tree_vec_elt_check_failed): Same.
676 (omp_clause_operand_check_failed): Same.
677 (verify_type_variant): Same.
678 (verify_type): Same.
679 * value-prof.c (verify_histograms): Same.
680 * varasm.c (assemble_start_function): Same.
681
682 2019-05-16 Martin Sebor <msebor@redhat.com>
683
684 * config/i386/i386-expand.c (get_element_number): Quote keywords
685 and other internal names in diagnostics. Adjust other diagnostic
686 formatting issues noted by -Wformat-diag.
687 * config/i386/i386-features.c
688 (ix86_mangle_function_version_assembler_name): Same.
689 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
690 * config/i386/i386.c (ix86_function_type_abi): Same.
691 (ix86_function_ms_hook_prologue): Same.
692 (classify_argument): Same.
693 (ix86_expand_prologue): Same.
694 (ix86_md_asm_adjust): Same.
695 (ix86_memmodel_check): Same.
696
697 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
698
699 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
700 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
701 and fpxx modes.
702
703 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
704
705 PR target/90497
706 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
707 intrinsics without SSE/SSE2/SSSE3.
708 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
709 check.
710 (*mmx_uavgv8qi3): Likewise.
711
712 2019-05-17 Richard Biener <rguenther@suse.de>
713
714 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
715 VEC_PERM_EXPR as __VEC_PERM with -gimple.
716
717 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
718
719 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
720 vec_sldw insn pattern.
721
722 2019-05-17 Richard Biener <rguenther@suse.de>
723
724 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
725
726 2019-05-17 Martin Liska <mliska@suse.cz>
727
728 PR driver/90496
729 * toplev.c (output_stack_usage): With LTO and sanitizer it
730 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
731 has no file location.
732
733 2019-05-16 Jakub Jelinek <jakub@redhat.com>
734
735 PR c++/90484
736 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
737 sz0 is equal to sz1, instead return false in that case.
738
739 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
740 has non-constant expression, force sctx.lane and use two
741 argument IFN_GOMP_SIMD_LANE instead of single argument.
742 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
743 two argument IFN_GOMP_SIMD_LANE without lhs.
744 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
745 member.
746 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
747 Define.
748 (LOOP_REQUIRES_VERSIONING): Or in
749 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
750 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
751 simd_if_cond.
752 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
753 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
754 from simd if clause if needed.
755
756 2019-05-16 Richard Biener <rguenther@suse.de>
757
758 * tree-affine.c (expr_to_aff_combination): New function split
759 out from...
760 (tree_to_aff_combination): ... here.
761 (aff_combination_expand): Avoid building a GENERIC tree.
762
763 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
764
765 * cgraphunit.c (cgraph_node::expand_thunk): Remove
766 assemble_start_function and assemble_end_function calls.
767 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
768 assemble_start_function and assemble_end_function.
769 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
770 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
771 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
772 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
773 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
774 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
775 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
776 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
777 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
778 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
779 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
780 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
781 Likewise.
782 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
783 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
784 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
785 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
786 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
787 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
788 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
789 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
790 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
791 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
792 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
793 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
794 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
795 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
796 Likewise.
797 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
798 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
799 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
800
801 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
802
803 * tree-ssa-alias.c (alias_stats): Add
804 aliasing_component_refs_p_may_alias and
805 aliasing_component_refs_p_no_alias.
806 (dump_alias_stats): Print aliasing_component_refs_p stats.
807 (aliasing_component_refs_p): Update stats.
808
809 2019-05-16 Martin Liska <mliska@suse.cz>
810
811 PR lto/90500
812 * multiple_target.c (expand_target_clones): Do not allow
813 target_clones being used with a symbol that is an alias.
814
815 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
816
817 PR tree-optimization/90394
818 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
819 positives rather than ICE for cases where (code2 == NE_EXPR
820 && code1 == BIT_AND_EXPR).
821
822 2019-05-16 Jakub Jelinek <jakub@redhat.com>
823
824 PR fortran/90329
825 * tree-core.h (struct tree_decl_common): Document
826 decl_nonshareable_flag for PARM_DECLs.
827 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
828 * calls.c (expand_call): Don't try tail call if caller
829 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
830 passed on the stack and callee needs to pass any arguments on the
831 stack.
832 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
833 else if instead of series of mutually exclusive ifs. Handle
834 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
835 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
836
837 * lto-streamer.h (LTO_major_version): Bump to 9.
838
839 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
840
841 PR tree-optimization/90106
842 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
843 new parameter as new internal function call, also move it to new
844 basic block.
845 (use_internal_fn): Pass internal function call to
846 shrink_wrap_one_built_in_call_with_conds.
847
848 2019-05-15 Jakub Jelinek <jakub@redhat.com>
849
850 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
851 max_vf to 1.
852 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
853 safelen_int and set loop->dont_vectorize.
854
855 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
856
857 PR target/89021
858 * config/i386/i386-builtin.def: Enable MMX intrinsics with
859 SSE/SSE2/SSSE3.
860 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
861 Likewise.
862 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
863 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
864 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
865 is defined.
866
867 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
868
869 PR target/89021
870 * config/i386/mmx.md (*vec_dupv2sf): Changed to
871 define_insn_and_split to support SSE emulation.
872 (*vec_extractv2sf_0): Likewise.
873 (*vec_extractv2sf_1): Likewise.
874 (*vec_extractv2si_0): Likewise.
875 (*vec_extractv2si_1): Likewise.
876 (*vec_extractv2si_zext_mem): Likewise.
877 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
878 (vec_extractv2sf_1 splitter): Likewise.
879 (vec_extractv2sfsf): Likewise.
880 (vec_setv2si): Likewise.
881 (vec_extractv2si_1 splitter): Likewise.
882 (vec_extractv2sisi): Likewise.
883 (vec_setv4hi): Likewise.
884 (vec_extractv4hihi): Likewise.
885 (vec_setv8qi): Likewise.
886 (vec_extractv8qiqi): Likewise.
887 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
888 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
889 (vec_extractv2sisi): Likewise.
890 (vec_extractv4hihi): Likewise.
891 (vec_extractv8qiqi): Likewise.
892 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
893 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
894 (vec_initv2sisi): Likewise.
895 (vec_initv4hihi): Likewise.
896 (vec_initv8qiqi): Likewise.
897 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
898 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
899 (vec_setv4hi): Likewise.
900 (vec_setv8qi): Likewise.
901
902 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
903
904 PR target/89021
905 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
906 TARGET_MMX_WITH_SSE.
907 (MMXMODE:*mov<mode>_internal): Likewise.
908 (MMXMODE:movmisalign<mode>): Likewise.
909
910 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
911
912 PR target/89021
913 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
914 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
915 (sse2_cvtpd2pi): Ditto.
916 (sse2_cvttpd2pi): Ditto.
917 (*vec_concatv2sf_sse4_1): Ditto.
918 (*vec_concatv2sf_sse): Ditto.
919 (*vec_concatv2si_sse4_1): Ditto.
920 (*vec_concatv2si): Ditto.
921 (*vec_concatv4si_0): Ditto.
922 (*vec_concatv2di_0): Ditto.
923
924 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
925
926 PR target/89021
927 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
928
929 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
930
931 PR target/89021
932 * config/i386/sse.md (ssse3_palignrdi): Changed to
933 define_insn_and_split to support SSE emulation.
934
935 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
936
937 PR target/89021
938 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
939
940 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
941
942 PR target/89021
943 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
944 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
945 SSE emulation.
946
947 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
948
949 PR target/89021
950 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
951 or TARGET_MMX_WITH_SSE.
952 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
953
954 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
955
956 PR target/89021
957 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
958
959 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
960
961 PR target/89021
962 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
963 Changed to define_insn_and_split to support SSE emulation.
964
965 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
966
967 PR target/89021
968 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
969 Changed to define_insn_and_split to support SSE emulation.
970
971 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
972
973 PR target/89021
974 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
975 (*mmx_<emms>): This.
976 (mmx_<emms>): New expander.
977
978 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
979
980 PR target/89021
981 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
982 support.
983 (*sse2_umulv1siv1di3): Add SSE2 emulation.
984
985 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
986
987 PR target/89021
988 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
989
990 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
991
992 PR target/89021
993 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
994
995 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
996
997 PR target/89021
998 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
999 TARGET_MMX_WITH_SSE.
1000 (*mmx_uavgv4hi3): Add SSE emulation.
1001
1002 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1003
1004 PR target/89021
1005 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
1006 and TARGET_MMX_WITH_SSE.
1007 (*mmx_uavgv8qi3): Add SSE emulation.
1008
1009 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1010
1011 PR target/89021
1012 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
1013 maskmovdqu for __MMX_WITH_SSE__.
1014
1015 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1016
1017 PR target/89021
1018 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
1019 TARGET_MMX and TARGET_MMX_WITH_SSE.
1020 (*mmx_umulv4hi3_highpart): Add SSE emulation.
1021
1022 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1023
1024 PR target/89021
1025 * config/i386/mmx.md (mmx_pmovmskb): Changed to
1026 define_insn_and_split to support SSE emulation.
1027
1028 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1029
1030 PR target/89021
1031 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
1032 and TARGET_MMX_WITH_SSE.
1033 (mmx_<code>v8qi3): Likewise.
1034 (smaxmin:<code>v4hi3): New.
1035 (umaxmin:<code>v8qi3): Likewise.
1036 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
1037 (umaxmin:*mmx_<code>v8qi3): Likewise.
1038
1039 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1040
1041 PR target/89021
1042 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
1043 TARGET_MMX_WITH_SSE.
1044 (*mmx_pinsrw): Add SSE emulation.
1045
1046 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1047
1048 PR target/89021
1049 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
1050
1051 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1052
1053 PR target/89021
1054 * config/i386/sse.md (sse_cvtpi2ps): Changed to
1055 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
1056 SSE emulation.
1057
1058 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1059
1060 PR target/89021
1061 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
1062 (sse_cvttps2pi): Likewise.
1063
1064 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1065
1066 PR target/89021
1067 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
1068 TARGET_MMX_WITH_SSE.
1069 (mmx_pshufw_1): Add SSE emulation.
1070 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
1071 TARGET_MMX_WITH_SSE to support SSE emulation.
1072
1073 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1074
1075 PR target/89021
1076 * config/i386/constraints.md (Yw): New constraint.
1077 * config/i386/mmx.md (*vec_dupv2si): Changed to
1078 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
1079 support SSE emulation.
1080
1081 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1082
1083 PR target/89021
1084 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
1085 TARGET_MMX_WITH_SSE.
1086 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
1087 support.
1088 (mmx_gt<mode>3): Likewise.
1089
1090 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1091
1092 PR target/89021
1093 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
1094 TARGET_MMX_WITH_SSE. Add SSE support.
1095
1096 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1097
1098 PR target/89021
1099 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
1100 TARGET_MMX_WITH_SSE.
1101 (any_logic:<code><mode>3): New.
1102 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
1103 Add SSE support.
1104
1105 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1106
1107 PR target/89021
1108 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
1109 TARGET_MMX_WITH_SSE. Add SSE emulation.
1110 (mmx_<shift_insn><mode>3): Likewise.
1111 (ashr<mode>3): New.
1112 (<shift_insn><mode>3): Likewise.
1113
1114 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1115
1116 PR target/89021
1117 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
1118 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
1119
1120 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1121
1122 PR target/89021
1123 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
1124 TARGET_MMX_WITH_SSE.
1125 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
1126 SSE support.
1127
1128 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1129
1130 PR target/89021
1131 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
1132 TARGET_MMX_WITH_SSE.
1133 (mulv4hi3): New.
1134 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
1135 support.
1136
1137 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1138
1139 PR target/89021
1140 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
1141 (plusminus:mmx_<plusminus_insn><mode>3): Check
1142 TARGET_MMX_WITH_SSE.
1143 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
1144 (<plusminus_insn><mode>3): New.
1145 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
1146 (*mmx_<plusminus_insn><mode>3): Likewise.
1147
1148 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1149
1150 PR target/89021
1151 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
1152 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
1153 prototype.
1154 * config/i386/mmx.m (mmx_punpckhbw): Changed to
1155 define_insn_and_split to support SSE emulation.
1156 (mmx_punpcklbw): Likewise.
1157 (mmx_punpckhwd): Likewise.
1158 (mmx_punpcklwd): Likewise.
1159 (mmx_punpckhdq): Likewise.
1160 (mmx_punpckldq): Likewise.
1161
1162 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1163 Uros Bizjak <ubizjak@gmail.com>
1164
1165 PR target/89021
1166 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
1167 New function.
1168 (ix86_split_mmx_pack): Likewise.
1169 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
1170 New prototype.
1171 (ix86_split_mmx_pack): Likewise.
1172 * config/i386/i386.md (mmx_isa): New.
1173 (enabled): Also check mmx_isa.
1174 * config/i386/mmx.md (any_s_truncate): New code iterator.
1175 (s_trunsuffix): New code attr.
1176 (mmx_packsswb): Removed.
1177 (mmx_packssdw): Likewise.
1178 (mmx_packuswb): Likewise.
1179 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
1180 MMX packsswb/packuswb with SSE2.
1181 (mmx_packssdw): Likewise.
1182 * config/i386/predicates.md (register_mmxmem_operand): New.
1183
1184 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
1185
1186 PR target/89021
1187 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1188 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
1189 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
1190 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
1191 (ix86_vector_mode_supported_p): Likewise.
1192 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
1193
1194 2019-05-15 Martin Liska <mliska@suse.cz>
1195
1196 PR middle-end/90478
1197 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
1198 Check for overflow.
1199
1200 2019-05-15 Richard Biener <rguenther@suse.de>
1201
1202 * tree-into-ssa.c (pass_build_ssa::execute): Run
1203 update_address_taken before going into SSA.
1204
1205 2019-05-15 Richard Biener <rguenther@suse.de>
1206
1207 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
1208 as __BIT_FIELD_REF with type with -gimple.
1209
1210 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
1211
1212 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
1213 semantically equivalent branches (left over after prior refactorings).
1214
1215 2019-05-15 Richard Biener <rguenther@suse.de>
1216
1217 PR tree-optimization/88828
1218 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
1219 bogus check.
1220
1221 2019-05-14 Richard Biener <rguenther@suse.de>
1222
1223 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
1224 as __VIEW_CONVERT with -gimple.
1225
1226 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
1227
1228 PR target/82920
1229 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
1230 Darwin.
1231
1232 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
1233
1234 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
1235 define_split to become a define_insn_and_split.
1236
1237 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
1238
1239 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
1240 arguments.
1241 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
1242 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
1243 (sibcall_epilogue): Adjust.
1244 (epilogue): Adjust.
1245
1246 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1247
1248 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
1249 to unsupported ones.
1250 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
1251 * config.host: Likewise.
1252 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
1253 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
1254 __svr4__]: Remove "brand" fallback.
1255 [!KSTAT_DATA_STRING]: Remove.
1256 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
1257 to *-*-solaris2*.
1258 (comdat_group): Likewise.
1259 (set_have_as_tls): Likewise.
1260 (gcc_cv_target_dl_iterate_phdr): Likewise.
1261 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
1262 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
1263 * configure: Regenerate.
1264 * doc/install.texi: Simplify Solaris target triplets.
1265 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
1266 (Specific, *-*-solaris2*): Document Solaris 10 removal.
1267 Remove Solaris 10 references.
1268 Remove obsolete Solaris bug reference.
1269 (Specific, sparc-sun-solaris2.10): Remove.
1270
1271 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
1272
1273 * config/i386/i386.md (any_div): New code iterator.
1274 (paired_mod): New code attribute.
1275 (sgnprefix): Handle DIV and UDIV RTXes.
1276 (u): Ditto.
1277 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
1278 and udivmod<mode>4 patterns using any_div code iterator.
1279 (divmod splitters): Macroize splitters using any_div code iterator.
1280 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
1281 (*udivmodsi4_pow2_zext_2): Ditto.
1282 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
1283 and *udivmod<mode>4_noext patterns using any_div code iterator.
1284 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
1285 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
1286 patterns using any_div code iterator.
1287 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
1288 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
1289 patterns using any_div code iterator.
1290 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
1291 udivmodhiqi3 patterns using any_extend code iterator.
1292
1293 2019-05-14 Richard Biener <rguenther@suse.de>
1294 H.J. Lu <hongjiu.lu@intel.com>
1295
1296 PR tree-optimization/88828
1297 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
1298 permuting in a single non-constant element not extracted
1299 from a vector.
1300
1301 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1302
1303 * internal-fn.def (SIGNBIT): New.
1304 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
1305 defined.
1306 (signbitv4sf2): Likewise.
1307
1308 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
1309
1310 PR target/90357
1311 * config/mips/mips.c (mips_split_move): Skip forward SRC into
1312 next insn when the SRC reg is dead.
1313
1314 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
1315
1316 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
1317 (alloc_cand_and_find_basis): Ditto.
1318 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
1319 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
1320 (create_add_imm_cand, slsr_process_cast): Ditto.
1321 (slsr_process_copy, replace_mult_candidate): Ditto.
1322 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
1323 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
1324 (pass_strength_reduction::execute): Init the first NULL element.
1325
1326 2019-05-13 Nathan Sidwell <nathan@acm.org>
1327
1328 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
1329 (run_attempt): Reformat line break.
1330
1331 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
1332
1333 PR target/90418
1334 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
1335 data registers in sibcall epilogues.
1336 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
1337
1338 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
1339
1340 PR target/89221
1341 * configure.ac (--enable-frame-pointer):
1342 Disable by default for cygwin and mingw.
1343 * configure: Regenerate.
1344
1345 2019-05-13 Nathan Sidwell <nathan@acm.org>
1346
1347 * dwarf2out.c (breakout_comdat_types): Move comment to correct
1348 piece of code.
1349 (const_ok_for_output_1): Balance parens around #if/#else/#endif
1350 (gen_member_die): Move abstract origin check earlier. Only VARs
1351 can be static_inline_p. Simplify splicing control flow.
1352
1353 2019-05-13 Richard Biener <rguenther@suse.de>
1354
1355 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
1356 VIEW_CONVERT_EXPR.
1357 (vect_build_slp_tree_1): Likewise.
1358
1359 2019-05-13 Richard Biener <rguenther@suse.de>
1360
1361 PR tree-optimization/90402
1362 * tree-if-conv.c (tree_if_conversion): Value number only
1363 the loop body by making the latch an exit of the region
1364 as well.
1365 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
1366 processing PHIs.
1367 (do_rpo_vn): Deal with multiple edges into the entry block
1368 that are not backedges inside the region by skipping PHIs
1369 of the entry block.
1370
1371 2019-05-13 Richard Biener <rguenther@suse.de>
1372
1373 PR tree-optimization/90316
1374 * tree-ssa-pre.c (insert_aux): Fold into ...
1375 (insert): ... this function. Use a RPO walk to reduce the
1376 number of required iterations.
1377
1378 2019-05-13 Martin Liska <mliska@suse.cz>
1379
1380 PR tree-optimization/90416
1381 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
1382 string instead of passing the second part as va_arg argument.
1383
1384 2019-05-13 Martin Liska <mliska@suse.cz>
1385
1386 PR gcov-profile/90380
1387 * gcov.c (handle_cycle): Do not support zero cycle count,
1388 it should not be possible.
1389 (path_contains_zero_cycle_arc): New function.
1390 (circuit): Ignore zero cycle arc counts.
1391
1392 2019-05-13 Martin Liska <mliska@suse.cz>
1393
1394 PR gcov-profile/90380
1395 * gcov.c (enum loop_type): Remove the enum and
1396 the operator.
1397 (handle_cycle): Assert that we should not reach
1398 a negative count.
1399 (circuit): Use loop_found instead of a tri-state loop_type.
1400 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
1401 happen.
1402
1403 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
1404
1405 PR target/82920
1406 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
1407 (ix86_output_indirect_branch_via_reg): Use output mechanism
1408 accounting for __USER_LABEL_PREFIX__.
1409 (ix86_output_indirect_branch_via_push): Likewise.
1410 (ix86_output_function_return): Likewise.
1411 (ix86_output_indirect_function_return): Likewise.
1412
1413 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
1414
1415 * doc/md.texi: Document use of code attributes in rtx patterns.
1416 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
1417 * read-rtl.c (find_code): Split out search loops into...
1418 (maybe_find_code): ...this new function.
1419 (check_code_iterator): Make the error message more informative.
1420 (check_code_attribute): New function.
1421 (rtx_reader::rtx_alloc_for_name): Likewise.
1422 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
1423 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
1424 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
1425 <max_opp> directly as an rtx code instead of via a match_operator.
1426 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
1427 (<su>abd<mode>_3): Update accordingly.
1428
1429 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
1430
1431 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
1432 is given, print the state of the EH "save world" computation for
1433 Darwin.
1434
1435 2019-05-11 Jakub Jelinek <jakub@redhat.com>
1436
1437 PR c++/59813
1438 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
1439 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
1440
1441 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
1442
1443 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
1444 Use pinsrd for TARGET_SSE4_1.
1445 * config/i386/sse.md (movdi_to_sse): Ditto.
1446
1447 2019-05-10 Richard Biener <rguenther@suse.de>
1448
1449 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
1450 (do_rpo_vn): Initialize next_value_id.
1451
1452 2019-05-10 Martin Liska <mliska@suse.cz>
1453
1454 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
1455 Fix plural form.
1456
1457 2019-05-10 Jakub Jelinek <jakub@redhat.com>
1458
1459 PR tree-optimization/90385
1460 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
1461 arguments of the exit phis.
1462
1463 PR c++/90383
1464 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
1465 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
1466 id->do_not_fold.
1467 (copy_tree_body_r): Likewise.
1468 (copy_fn): Set id.do_not_fold to true.
1469
1470 2019-05-10 Martin Liska <mliska@suse.cz>
1471
1472 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
1473 Reapply changes from r269790.
1474
1475 2019-05-10 Martin Liska <mliska@suse.cz>
1476
1477 PR middle-end/90340
1478 * doc/invoke.texi: New params.
1479 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
1480 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
1481 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
1482 Use it.
1483 * tree-switch-conversion.h (struct jump_table_cluster):
1484 Likewise.
1485
1486 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
1487
1488 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
1489
1490 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
1491
1492 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
1493
1494 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
1495
1496 PR rtl-optimization/88879
1497 * sel-sched.c (sel_target_adjust_priority): Remove assert.
1498
1499 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
1500
1501 PR target/90405
1502 * config/arm/arm.c (callee_saved_reg_p): Move before
1503 thumb_find_work_register.
1504 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
1505 thumb_find_work_register. Only call df_get_live_out once.
1506 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
1507 (thumb_find_work_register): Use
1508 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
1509 algorithms to locate a spare call clobbered reg.
1510
1511 2019-05-09 Martin Liska <mliska@suse.cz>
1512
1513 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
1514 and MAX_EXPR in GIMPLE FE format.
1515
1516 2019-05-09 Martin Liska <mliska@suse.cz>
1517
1518 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
1519 * gimple-pretty-print.c (dump_gimple_bb_header):
1520 Dump BB count.
1521 (pp_cfg_jump): Dump edge probability.
1522 * profile-count.c (profile_quality_as_string): Simplify
1523 with a static array.
1524 (parse_profile_quality): New function.
1525 (profile_count::dump): Simplify with a static array.
1526 (profile_count::from_gcov_type): Add new argument.
1527 * profile-count.h (parse_profile_quality): Likewise.
1528 * predict.h (set_hot_bb_threshold): New.
1529 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
1530 New param.
1531 * predict.c (get_hot_bb_threshold): Set from the new param.
1532 (set_hot_bb_threshold): New.
1533
1534 2019-05-09 Richard Biener <rguenther@suse.de>
1535
1536 PR tree-optimization/90395
1537 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
1538 rewrite vector stores that throw internally.
1539
1540 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
1541
1542 * cif-code.def (CHKP): Remove.
1543
1544 PR target/89221
1545 * configure.ac (--enable-frame-pointer): Disable by default for
1546 GNU systems.
1547 * configure: Regenerate.
1548
1549 2019-05-09 Alan Modra <amodra@gmail.com>
1550
1551 PR target/89271
1552 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
1553 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
1554 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
1555 cost for general <-> vsx when direct moves are available.
1556 Cost union classes at minimal cost for any reg in the class.
1557 Correct calculation for moves between vsx, float, and altivec.
1558 Don't return a low cost for moves between special regs. Don't
1559 use hard coded register numbers.
1560 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
1561 (rs6000_ira_change_pseudo_allocno_class): New function.
1562 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
1563 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
1564 alternatives.
1565 (movsi_internal1): Don't disparage vector alternatives.
1566 (mov<mode>_internal): Likewise, excepting alternative that
1567 will be split.
1568 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
1569 we <- b alternative.
1570
1571 2019-05-08 Jakub Jelinek <jakub@redhat.com>
1572
1573 PR c++/59813
1574 PR tree-optimization/89060
1575 * tree-ssa-live.h (live_vars_map): New typedef.
1576 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
1577 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
1578 (struct compute_live_vars_data): New type.
1579 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
1580 live_vars_at_stmt, destroy_live_vars): New functions.
1581 * tree-tailcall.c: Include tree-ssa-live.h.
1582 (live_vars, live_vars_vec): New global variables.
1583 (find_tail_calls): Perform variable life analysis before punting.
1584 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
1585 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
1586 member.
1587 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
1588 Perform variable life analysis to select variables that really need
1589 clobbers added.
1590 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
1591 instead set id->eh_landing_pad_dest and assert it is the same.
1592 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
1593
1594 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
1595 Richard Earnshaw <rearnsha@arm.com>
1596
1597 PR target/88167
1598 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
1599 function.
1600 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
1601 (thumb1_compute_save_core_reg_mask): Don't force a spare work
1602 register if both the epilogue and prologue can use call-clobbered
1603 regs.
1604 (thumb1_unexpanded_epilogue): Use
1605 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
1606 picking temporaries for restoring high regs to match that of the
1607 prologue where possible.
1608 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
1609 the list of work registers. Detect if the return address is still live
1610 at the end of the prologue and avoid using it for a work register if so.
1611 If the return address is not live, add LR to the list of pushable regs
1612 after the first pass.
1613
1614 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
1615
1616 PR tree-optimization/90078
1617 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
1618 (INFTY): Increase the value for infinite cost.
1619 (struct comp_cost): Promote type of members to int64_t.
1620 (infinite_cost): Don't set complexity in initialization.
1621 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
1622 overflows to infinite_cost.
1623 (adjust_setup_cost): Promote type of parameter and cost computation
1624 to int64_t.
1625 (struct ainc_cost_data, struct iv_ca): Promote type of member to
1626 int64_t.
1627 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
1628 cost computation to int64_t.
1629 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
1630 int64_t's format specifier in dump.
1631
1632 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
1633
1634 PR tree-optimization/90240
1635 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
1636 with respect to scaling factor pre-computed for each basic block.
1637 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
1638 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
1639 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
1640 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
1641 live range for array of loop's basic blocks. Cleanup aux field of
1642 loop's basic blocks.
1643
1644 2019-05-08 Jakub Jelinek <jakub@redhat.com>
1645
1646 PR tree-optimization/90356
1647 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
1648
1649 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
1650
1651 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
1652 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
1653 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
1654 (ix86_handle_option): Handle -mavx512bf16.
1655 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
1656 to extra_headers.
1657 * config/i386/avx512bf16vlintrin.h: New.
1658 * config/i386/avx512bf16intrin.h: New.
1659 * config/i386/cpuid.h (bit_AVX512BF16): New.
1660 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
1661 * config/i386/i386-builtin-types.def: Add new types.
1662 * config/i386/i386-builtin.def: Add new builtins.
1663 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1664 __AVX512BF16__.
1665 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
1666 (ix86_option_override_internal): Handle BF16.
1667 (ix86_valid_target_attribute_inner_p): Ditto.
1668 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
1669 * config/i386/i386-builtin.c (enum processor_features): Add
1670 F_AVX512BF16.
1671 (static const _isa_names_table isa_names_table): Ditto.
1672 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
1673 (PTA_AVX512BF16): Ditto.
1674 * config/i386/i386.opt: Add -mavx512bf16.
1675 * config/i386/immintrin.h: Include avx512bf16intrin.h
1676 and avx512bf16vlintrin.h.
1677 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
1678 avx512f_cvtneps2bf16_<mode><mask_name>,
1679 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
1680 * config/i386/subst.md (mask_half): Add new subst.
1681 * doc/invoke.texi: Document -mavx512bf16.
1682
1683 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
1684
1685 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
1686 Delete declaration.
1687 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
1688 (rs6000_debug_legitimize_reload_address): Delete.
1689 (rs6000_legitimize_reload_address_ptr): Delete.
1690 (rs6000_option_override_internal): Adjust.
1691 (mem_operand_gpr): Adjust comment.
1692 (legitimate_lo_sum_address_p): Ditto.
1693 (rs6000_legitimize_reload_address): Delete.
1694 (rs6000_debug_legitimize_reload_address): Delete.
1695 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
1696
1697 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
1698
1699 PR target/89765
1700 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
1701 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
1702 to compute vector element selector for both constant and variable
1703 operands.
1704
1705 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
1706
1707 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
1708 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
1709 ashrdi3_cvt using SWI48 mode iterator.
1710
1711 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1712
1713 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
1714 (aarch64_<su>abd<mode>_3): Likewise.
1715 (*aarch64_<su>abd<mode>_3): New define_insn.
1716 (<sur>sad<vsi2qi>): New define_expand.
1717 * config/aarch64/iterators.md: Added MAX_OPP attribute.
1718 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
1719 (build_vect_cond_expr): Likewise.
1720
1721 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
1722
1723 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
1724 clobbers outside of accessible_reg_set.
1725 * config/i386/i386.c (ix86_conditional_register_usage):
1726 Disable register sets by clearing corresponding bits in
1727 accessible_reg_set. Do not set corresponding bits in fixed_regs,
1728 call_used_regs and don't clear corresponding reg_names array members.
1729
1730 2019-05-07 Richard Biener <rguenther@suse.de>
1731
1732 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
1733 not specified still compute a comp_vectype for invariant
1734 compares.
1735
1736 2019-05-07 Richard Biener <rguenther@suse.de>
1737
1738 PR tree-optimization/90316
1739 * tree-ssa-pre.c (translate_vuse_through_block): When
1740 same_valid is NULL do not bother to search for a virtual
1741 PHI continuation.
1742 (phi_translate_1): When operands changed we cannot keep
1743 the same value-number so do not bother to ask whether
1744 that's possible from translate_vuse_through_block.
1745
1746 2019-05-07 Martin Liska <mliska@suse.cz>
1747
1748 * bitmap.c (bitmap_register): Come up with
1749 alloc_descriptor_max_uid and assign it for
1750 a new bitmap.
1751 (register_overhead): Use get_descriptor as
1752 a descriptor.
1753 (release_overhead): New.
1754 (bitmap_elem_to_freelist): Call it.
1755 (bitmap_elt_clear_from): Likewise.
1756 (bitmap_obstack_free): Likewise.
1757 (bitmap_move): Sensitively release memory.
1758 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
1759 (bitmap_initialize): Initialize alloc_descriptor to zero.
1760 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
1761
1762 2019-05-07 Richard Biener <rguenther@suse.de>
1763
1764 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
1765 we build a SLP node. Remove max_size and limiting.
1766 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
1767
1768 2019-05-07 Richard Biener <rguenther@suse.de>
1769
1770 PR tree-optimization/90316
1771 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
1772 limit by reference.
1773 (walk_non_aliased_vuses): Take walking limit argument.
1774 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
1775 walking if it is reached instead of just counting.
1776 (get_continuation_for_phi): Likewise.
1777 (walk_non_aliased_vuses): Likewise, instead of leaving counter
1778 limiting to the callback.
1779 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
1780 (vn_reference_lookup_3): Likewise.
1781 (vn_reference_lookup_pieces): Likewise.
1782 (vn_reference_lookup): Likewise.
1783 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
1784 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
1785 (avail_exprs_stack::lookup_avail_expr): Likewise.
1786
1787 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
1788
1789 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
1790 for comparaible types in the second direction even if first one
1791 hits incomparable type.
1792
1793 2019-05-07 Richard Biener <rguenther@suse.de>
1794
1795 PR lto/90369
1796 * lto-wrapper.c (debug_objcopy): Use the original filename
1797 including archive offset for the filename used for -save-temps.
1798
1799 2019-05-07 Li Jia He <helijia@linux.ibm.com>
1800
1801 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
1802 detection.
1803
1804 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
1805
1806 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
1807 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
1808 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
1809 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
1810 (FRAME_POINTER_REGNUM): Change numbering.
1811 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
1812 (alt_reg_names): Adjust.
1813 (rs6000_conditional_register_usage): Don't mark hard register 64 as
1814 fixed.
1815 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
1816 (DWARF_FRAME_REGISTERS): Delete.
1817 (DWARF2_FRAME_REG_OUT): Fix whitespace.
1818 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
1819 Adjust.
1820 (REG_ALLOC_ORDER): Adjust.
1821 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
1822 (REG_CLASS_CONTENTS): Adjust.
1823 (RETURN_ADDR_RTX): Change comment.
1824 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
1825 instead of 67.
1826 (REGISTER_NAMES): Adjust.
1827 (ADDITIONAL_REGISTER_NAMES): Adjust.
1828 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
1829
1830 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
1831
1832 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
1833 Delete.
1834 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
1835 (DWARF_FRAME_REGISTERS): Adjust.
1836 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
1837 Adjust.
1838 (REG_ALLOC_ORDER): Adjust.
1839 (enum reg_class): Delete SPR_REGS.
1840 (REG_CLASS_NAMES): Delete SPR_REGS.
1841 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
1842 (REGISTER_NAMES): Adjust.
1843 (ADDITIONAL_REGISTER_NAMES): Adjust.
1844 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
1845 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
1846 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
1847 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
1848 (htm_spr_regno): Delete.
1849 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
1850 argument.
1851 (rs6000_dbx_register_number): Adjust.
1852
1853 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
1854
1855 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
1856
1857 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
1858
1859 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
1860 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
1861
1862 2019-05-06 Jakub Jelinek <jakub@redhat.com>
1863
1864 PR tree-optimization/88709
1865 PR tree-optimization/90271
1866 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
1867 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
1868 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
1869 variable.
1870 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
1871 of the store merging group is larger than
1872 PARAM_STORE_MERGING_MAX_SIZE parameter.
1873 (split_group): Add bzero_first argument. If set, always emit first
1874 the first store which must be = {} of the whole area and then for the
1875 rest of the stores consider all zero bytes as paddings.
1876 (imm_store_chain_info::output_merged_store): Check if first store
1877 is = {} of the whole area and if yes, determine which setting of
1878 bzero_first for split_group gives smaller number of stores. Adjust
1879 split_group callers.
1880 (lhs_valid_for_store_merging_p): Allow decls.
1881 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
1882 no elts.
1883 (pass_store_merging::process_store): Likewise.
1884
1885 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
1886
1887 PR target/89424
1888 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
1889 handling of V1TImode.
1890
1891 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
1892
1893 PR target/89221
1894 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
1895 and enable_frame_pointer ...
1896 * configure.ac: ... here. Update help strings for
1897 --enable-frame-pointer.
1898 * configure: Regenerate.
1899 * config/i386/i386-options.c (ix86_option_override_internal): Remove
1900 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
1901 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
1902 (USE_X86_64_FRAME_POINTER): Ditto.
1903
1904 2019-05-06 Martin Liska <mliska@suse.cz>
1905
1906 * config.gcc: Append to target_gtfiles and fix indentation.
1907
1908 2019-05-06 Richard Biener <rguenther@suse.de>
1909
1910 PR tree-optimization/90358
1911 * tree-vect-stmts.c (get_group_load_store_type): Properly
1912 detect unused upper half of load.
1913 (vectorizable_load): Likewise.
1914
1915 2019-05-06 Richard Biener <rguenther@suse.de>
1916
1917 PR tree-optimization/88828
1918 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
1919 (simplify_vector_constructor): ...here. Handle constants in
1920 the constructor.
1921
1922 2019-05-06 Richard Biener <rguenther@suse.de>
1923
1924 PR tree-optimization/90328
1925 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
1926 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
1927 is valid in the loop nest before using it.
1928 (initialize_data_dependence_relation): Adjust.
1929 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
1930 loop as loop-nest to dr_may_alias_p.
1931
1932 2019-05-06 Richard Biener <rguenther@suse.de>
1933
1934 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
1935
1936 2019-05-06 Richard Biener <rguenther@suse.de>
1937
1938 PR tree-optimization/90316
1939 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
1940 compute target on demand.
1941 (get_continuation_for_phi): Remove code walking stmts to
1942 get to a target virtual operand which could end up being
1943 quadratic.
1944
1945 2019-05-06 Martin Liska <mliska@suse.cz>
1946
1947 PR sanitizer/90312
1948 * config/i386/i386-options.c (ix86_option_override_internal): Error only
1949 when -mabi is selected to a non-default version.
1950
1951 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
1952 Martin Liska <mliska@suse.cz>
1953
1954 * Makefile.in: Add lto-dump.texi.
1955 * cgraph.h: Add new functions get_visibility_string and
1956 get_symtab_type_string.
1957 * doc/gcc.texi: Include lto-dump section.
1958 * doc/lto-dump.texi: New file.
1959 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
1960 (parse_dump_option): Factor out this function.
1961 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
1962 (parse_dump_option): Export the function.
1963 * symtab.c (symtab_node::get_visibility_string): New function.
1964 (symtab_node::get_symtab_type_string): Likewise.
1965
1966 2019-05-06 Martin Liska <mliska@suse.cz>
1967
1968 * config/i386/i386-builtins.c: New file.
1969 * config/i386/i386-builtins.h: New file.
1970 * config/i386/i386-expand.c: New file.
1971 * config/i386/i386-expand.h: New file.
1972 * config/i386/i386-features.c: New file.
1973 * config/i386/i386-features.h: New file.
1974 * config/i386/i386-options.c: New file.
1975 * config/i386/i386-options.h: New file.
1976 * config.gcc: Add new files into extra_objs and
1977 target_gtfiles.
1978 * config/i386/i386.c: Split content of the file
1979 into newly introduced files.
1980 * config/i386/i386.h: Declare common variables
1981 and macros.
1982 * config/i386/t-i386: Define dependencies for new files.
1983
1984 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
1985
1986 PR target/89400
1987 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
1988 Restrict 'all' variant to 32-bit configurations.
1989 (unaligned_loadhiu): Likewise.
1990 (unaligned_storehi): Likewise.
1991 (unaligned_storesi): Likewise.
1992 (unaligned_loadhis): Disable when compiling for thumb1.
1993
1994 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
1995
1996 PR tree-optimization/90269
1997 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
1998 Ignore clobbers.
1999
2000 2019-05-03 Martin Liska <mliska@suse.cz>
2001
2002 * hash-map.h: Add is_empty function.
2003 * hash-set.h: Likewise.
2004 * hash-table.h: Likewise.
2005 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
2006 elements () == 0 (and similar usages).
2007 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
2008 * gimplify.c (gimplify_bind_expr): Likewise.
2009 (gimplify_switch_expr): Likewise.
2010 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
2011 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
2012 * postreload-gcse.c (dump_hash_table): Likewise.
2013 (gcse_after_reload_main): Likewise.
2014 * predict.c (combine_predictions_for_bb): Likewise.
2015 * tree-parloops.c (reduction_phi): Likewise.
2016 (separate_decls_in_region): Likewise.
2017 (transform_to_exit_first_loop): Likewise.
2018 (gen_parallel_loop): Likewise.
2019 (gather_scalar_reductions): Likewise.
2020 (try_create_reduction_list): Likewise.
2021 * var-tracking.c (dump_vars): Likewise.
2022 (emit_notes_for_changes): Likewise.
2023 (vt_emit_notes): Likewise.
2024
2025 2019-05-03 Richard Biener <rguenther@suse.de>
2026
2027 PR tree-optimization/90316
2028 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
2029 before running VN.
2030
2031 2019-05-03 Richard Biener <rguenther@suse.de>
2032
2033 * tree-vect-stmts.c (get_group_load_store_type): Avoid
2034 peeling for gaps by loading only lower halves of vectors
2035 if possible.
2036 (vectorizable_load): Likewise.
2037
2038 2019-05-03 Richard Biener <rguenther@suse.de>
2039
2040 PR middle-end/89518
2041 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
2042
2043 2019-05-03 Richard Biener <rguenther@suse.de>
2044
2045 PR middle-end/87314
2046 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
2047 Handle STRING_CST vs DECL or STRING_CST.
2048
2049 2019-05-03 Richard Biener <rguenther@suse.de>
2050
2051 PR tree-optimization/88963
2052 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
2053 vector loads feeding only BIT_FIELD_REFs to component
2054 loads. Rewrite stores fed by CONSTRUCTORs to component
2055 stores.
2056
2057 2019-05-03 Jakub Jelinek <jakub@redhat.com>
2058
2059 * opts.h (finish_options): Remove lang_mask argument.
2060 (print_help, help_option_argument): Declare.
2061 * opts.c (print_help): Remove forward declaration, no longer static.
2062 (finish_options): Remove lang_mask argument, don't call print_help
2063 here.
2064 * opts-global.c (decode_options): Adjust finish_option caller, call
2065 print_help here.
2066
2067 PR tree-optimization/90303
2068 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
2069 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
2070
2071 2019-05-03 Richard Biener <rguenther@suse.de>
2072
2073 PR tree-optimization/89698
2074 * gimple-fold.c (canonicalize_constructor_val): Early out
2075 for constants, handle unfolded INTEGER_CSTs as they appear in
2076 C++ virtual table ctors.
2077
2078 2019-05-03 Richard Biener <rguenther@suse.de>
2079
2080 * passes.c (execute_function_todo): Remove dead code.
2081
2082 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
2083
2084 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
2085 the internal register number, for any "real" register.
2086
2087 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
2088
2089 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
2090 correct numbers for TFHAR, TFIAR, TEXASR.
2091
2092 2019-05-02 Richard Biener <rguenther@suse.de>
2093
2094 PR tree-optimization/89653
2095 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
2096 update-address-taken before the pass.
2097 * passes.def (pass_tree_loop_init): Put comment before it.
2098
2099 2019-05-02 Richard Biener <rguenther@suse.de>
2100
2101 PR tree-optimization/89509
2102 * tree-ssa-structalias.c (compute_dependence_clique): Look
2103 at the first subvar when determining whether it is restrict.
2104
2105 2019-05-02 Richard Biener <rguenther@suse.de>
2106
2107 PR tree-optimization/90273
2108 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
2109 useless debug stmts.
2110
2111 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2112
2113 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
2114 ACLE branch.
2115 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
2116 SVE ACLE branch.
2117 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
2118 VEC_COND_EXPR be inserted to emulate a conditional internal function.
2119 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
2120 (vectorizable_reduction): Use the functions above to vectorize in a
2121 fully masked loop codes that don't have a conditional internal
2122 function.
2123
2124 2019-05-02 Martin Liska <mliska@suse.cz>
2125
2126 * cgraphclones.c: Call valid_attribute_p with 1 for
2127 target_clone.
2128 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
2129 it's for target attribute.
2130 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
2131 Add new boolean argument.
2132 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
2133 Likewise.
2134 (ix86_valid_target_attribute_tree): Pass target_clone_attr
2135 to ix86_valid_target_attribute_inner_p.
2136 (ix86_valid_target_attribute_p): Pass flags argument to
2137 ix86_valid_target_attribute_inner_p.
2138 (get_builtin_code_for_version): Use 0 as it's target attribute.
2139
2140 2019-05-02 Martin Liska <mliska@suse.cz>
2141
2142 * gcc.c (process_command): Add dummy file only
2143 if n_infiles == 0.
2144 * opts-global.c (decode_options): Pass lang_mask.
2145 * opts.c (print_help): New function.
2146 (finish_options): Print --help if help_option_argument
2147 is set.
2148 (common_handle_option): Factor out content of OPT__help_
2149 into print_help.
2150 * opts.h (finish_options): Add new argument.
2151
2152 2019-05-02 Martin Liska <mliska@suse.cz>
2153
2154 PR target/88809
2155 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
2156 With -minline-all-stringops use inline expansion using 4B loop.
2157 * doc/invoke.texi: Document the change of
2158 -minline-all-stringops.
2159
2160 2019-05-01 Jeff Law <law@redhat.com>
2161
2162 PR tree-optimization/88797
2163 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
2164 PHI feeds a conditional on the RHS of an assignment.
2165
2166 2019-04-30 Andrew Waterman <andrew@sifive.com>
2167 Jim Wilson <jimw@sifive.com>
2168
2169 * config/riscv/constraints.md (L): New.
2170 * config/riscv/predicates.md (lui_operand): New.
2171 (sfb_alu_operand): New.
2172 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
2173 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
2174 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
2175 * config/riscv/risc.md (type): Add sfb_alu.
2176 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
2177 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
2178 (branch_zero<mode>): Delete.
2179 (mov<mode>cc): New.
2180 (mov<GPR:mode><X:mode>cc): Likewise.
2181 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
2182
2183 2019-04-30 Nathan Sidwell <nathan@acm.org>
2184
2185 * tree.h (MARK_TS_EXP): New.
2186
2187 2019-04-30 Martin Liska <mliska@suse.cz>
2188
2189 * opts.c (enable_warning_as_error): Provide hints
2190 for unknown options.
2191
2192 2019-04-30 Martin Liska <mliska@suse.cz>
2193
2194 PR debug/90288
2195 * doc/invoke.texi: Add missing dash for gas-locview-support
2196 and gno-as-locview-support.
2197
2198 2019-04-30 Jakub Jelinek <jakub@redhat.com>
2199
2200 PR target/89093
2201 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
2202 whitespace at the start of target attribute string.
2203
2204 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2205
2206 PR target/86538
2207 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
2208 Define __ARM_FEATURE_ATOMICS.
2209
2210 2019-04-30 Martin Liska <mliska@suse.cz>
2211
2212 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
2213 into built_in_function enum. Remove code for endp == 2 and
2214 use BUILT_IN_* constants.
2215 (gimple_fold_builtin): Call the function with fcode.
2216
2217 2019-04-30 Martin Liska <mliska@suse.cz>
2218
2219 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
2220 DECL_FUNCTION_CODE into ix86_builtins enum before
2221 the switch statement.
2222
2223 2019-04-30 Jakub Jelinek <jakub@redhat.com>
2224
2225 PR tree-optimization/89475
2226 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
2227 calls.
2228
2229 2019-04-30 Martin Liska <mliska@suse.cz>
2230
2231 PR translation/90274
2232 * opts.c (print_filtered_help): Wrap string in _(...).
2233
2234 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
2235
2236 PR tree-optimization/90240
2237 Revert:
2238 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
2239
2240 PR tree-optimization/90078
2241 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
2242 checks for infinite_cost overflow.
2243
2244 2019-04-29 Jeff Law <law@redhat.com>
2245
2246 * passes.def: Move -Wrestrict pass after copy propagation.
2247
2248 2019-04-29 Maya Rashish <coypu@sdf.org>
2249
2250 * config.gcc (default_gnu_indirect_function): Default to yes
2251 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
2252 sparc*-*-netbsd*, x86_64-*-netbsd*.
2253
2254 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
2255
2256 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
2257 where cond2 is NE_EXPR.
2258 (is_value_included_in): Update comment.
2259
2260 2019-04-29 Richard Biener <rguenther@suse.de>
2261
2262 PR tree-optimization/90278
2263 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
2264 EH on comparison simplification.
2265
2266 2019-04-29 Jason Merrill <jason@redhat.com>
2267
2268 PR c++/82081 - tail call optimization breaks noexcept
2269 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
2270 nothrow function to a might-throw function into a tail call.
2271
2272 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
2273
2274 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
2275 (DDR_INNER_LOOP): Likewise.
2276 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
2277 (initialize_data_dependence_relation): Likewise.
2278 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
2279
2280 2019-04-29 Jakub Jelinek <jakub@redhat.com>
2281
2282 PR rtl-optimization/90257
2283 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
2284 return value.
2285
2286 Revert the revert:
2287 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
2288
2289 PR target/90178
2290 Revert:
2291 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
2292
2293 Revert the revert:
2294 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
2295
2296 Revert:
2297 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
2298
2299 * lra-spills.c (lra_final_code_change): Remove useless move insns.
2300
2301 2019-04-29 Richard Biener <rguenther@suse.de>
2302
2303 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
2304 rhs issue a reset.
2305
2306 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
2307
2308 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
2309 varasm.h, and netbsd-protos.h.
2310
2311 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
2312
2313 PR target/89261
2314 * config/i386/i386-protos.h (ix86_data_alignment): Change
2315 the second argument type to unsigned int.
2316 * config/i386/i386.c (ix86_data_alignment): Change "align"
2317 argument type to unsigned int.
2318
2319 2019-04-27 Martin Liska <mliska@suse.cz>
2320
2321 PR middle-end/90258
2322 * opt-suggestions.c (option_proposer::build_option_suggestions):
2323 When get_valid_option_values returns empty values, add the
2324 misspelling candidate.
2325
2326 2019-04-26 Jim Wilson <jimw@sifive.com>
2327
2328 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
2329 parameter.
2330 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
2331 Pass orig_mode to riscv_build_integer.
2332 (riscv_split_integer): Pass mode to riscv_move_integer.
2333 (riscv_legitimize_const_move): Likewise.
2334 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
2335 promoted_mode. Replace force_reg call with code to load constant into
2336 promoted reg and then subreg it for the store.
2337 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
2338 riscv_move_integer.
2339
2340 2018-04-26 Eugene Sharygin <eush@ispras.ru>
2341
2342 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
2343 corrupt codes.
2344
2345 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
2346
2347 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
2348 commentary about the encoding of precision.
2349
2350 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
2351
2352 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
2353 * config/i386/t-freebsd64: New file.
2354 * config.gcc: Add the t-freebsd64 for multilib support.
2355
2356 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
2357
2358 * doc/extend.texi (vector_size): Add missing comma after @xref.
2359
2360 2019-04-25 Jakub Jelinek <jakub@redhat.com>
2361
2362 * BASE-VER: Set to 10.0.0.
2363
2364 2019-04-25 Richard Biener <rguenther@suse.de>
2365
2366 PR middle-end/89765
2367 * gimplify.c (gimplify_expr): Avoid turning a lvalue
2368 VIEW_CONVERT_EXPR into one operating on an rvalue.
2369
2370 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
2371
2372 PR target/89929
2373 * config/i386/i386.c (feature_priority): Moved to file scope.
2374 (processor_features): Likewise.
2375 (processor_model): Likewise.
2376 (_arch_names_table): Likewise.
2377 (arch_names_table): Likewise.
2378 (_feature_list): Removed.
2379 (feature_list): Likewise.
2380 (_isa_names_table): Moved to file scope. Add priority.
2381 (isa_names_table): Likewise.
2382 (get_builtin_code_for_version): Replace feature_list with
2383 isa_names_table. Update error message for P_ZERO priority.
2384
2385 2019-04-25 Richard Biener <rguenther@suse.de>
2386
2387 * tree-pass.h (make_pass_phi_only_cprop): Remove.
2388 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
2389
2390 2019-04-24 Jeff Law <law@redhat.com>
2391
2392 PR tree-optimization/90037
2393 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
2394 * passes.def: Replace all instance of phi-only cprop with the
2395 lattice propagator. Move propagation pass from after erroneous
2396 path isolation to before erroneous path isolation.
2397 * tree-ssa-phionlycprop.c: Remove.
2398
2399 2019-04-24 Richard Biener <rguenther@suse.de>
2400
2401 PR middle-end/90213
2402 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
2403 by size and BITS_PER_UNIT on poly-wide-ints.
2404
2405 2019-04-25 Richard Biener <rguenther@suse.de>
2406
2407 PR middle-end/90194
2408 * match.pd: Add pattern to simplify view-conversion of an
2409 empty constructor.
2410
2411 2019-04-24 Clement Chigot <clement.chigot@atos.net>
2412
2413 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
2414 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
2415 for Go on 32 bit AIX.
2416 * config/rs6000/aix72.h: Likewise.
2417
2418 2019-04-24 Jakub Jelinek <jakub@redhat.com>
2419
2420 PR target/90193
2421 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
2422 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
2423
2424 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
2425
2426 PR target/89952
2427 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
2428 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
2429 for restored hard frame pointer.
2430 (s390_sched_dependencies_evaluation): Implement new target hook.
2431 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
2432
2433 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
2434
2435 * config/arc/arc-options.def: Fix typos and spelling mistakes.
2436 * config/arc/arc.c (arc_init): Cleanup warning message.
2437 (arc_override_options): Likewise.
2438
2439 2019-04-24 Jakub Jelinek <jakub@redhat.com>
2440
2441 PR target/90187
2442 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
2443 a register if both if_true and if_false are MEMs.
2444
2445 PR tree-optimization/90208
2446 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
2447 after labels of new_bb, not before them.
2448
2449 PR tree-optimization/90211
2450 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
2451 which are not SSA_NAMEs.
2452
2453 2018-04-23 Sudakshina Das <sudi.das@arm.com>
2454
2455 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
2456 AArch64.
2457 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
2458
2459 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
2460
2461 PR rtl-optimization/87979
2462 * modulo-sched.c (sms_schedule): Start ii value "mii" should
2463 not equal zero.
2464
2465 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
2466
2467 PR rtl-optimization/84032
2468 * modulo-sched.c (ps_insn_find_column): Change condition so that
2469 branch will always be the last insn in a row inside partial
2470 schedule.
2471
2472 2019-04-23 Richard Biener <rguenther@suse.de>
2473
2474 PR debug/90131
2475 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
2476 dest_single_pred_p argument.
2477 (remove_forwarder_block): Adjust.
2478 (remove_forwarder_block_with_phi): Likewise.
2479
2480 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2481 Bernd Edlinger <bernd.edlinger@hotmail.de>
2482 Jakub Jelinek <jakub@redhat.com>
2483
2484 PR target/89093
2485 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
2486 if used with general-regs-only.
2487 (arm_conditional_register_usage): Don't add non-general regs if
2488 general-regs-only.
2489 (arm_valid_target_attribute_rec): Handle general-regs-only.
2490 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
2491 general-regs-only.
2492 (TARGET_HARD_FLOAT_SUB): Define.
2493 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
2494 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
2495 (TARGET_REALLY_IWMMXT2): Likewise.
2496 * config/arm/arm.opt: Add -mgeneral-regs-only.
2497 * doc/extend.texi: Document ARM general-regs-only target.
2498 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
2499
2500 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
2501
2502 PR tree-optimization/90078
2503 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
2504 checks for infinite_cost overflow.
2505
2506 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
2507
2508 PR tree-optimization/90021
2509 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
2510 and check univariate against it.
2511 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
2512 * tree-data-ref.c (add_other_self_distances): Pass new argument.
2513
2514 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
2515
2516 PR target/90178
2517 Revert:
2518 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
2519
2520 Revert the revert:
2521 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
2522
2523 Revert:
2524 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
2525
2526 * lra-spills.c (lra_final_code_change): Remove useless move insns.
2527
2528 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
2529
2530 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
2531 names using operand format, rather than hard-wired.
2532 (speculation_barrier): Likewise.
2533
2534 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
2535
2536 PR tree-optimization/88055
2537 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
2538 (gen_one_condition): Use it if !HONOR_NANS.
2539
2540 2019-04-19 Jakub Jelinek <jakub@redhat.com>
2541
2542 PR middle-end/90139
2543 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
2544 assign_temp instead of gen_reg_rtx.
2545
2546 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
2547
2548 PR translation/90118
2549 * config/aarch64/aarch64.c (aarch64_override_options_internal):
2550 Add missing space before %<.
2551
2552 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
2553
2554 PR rtl-optimization/87871
2555 * ira-lives.c (make_object_dead): Don't add conflicts to
2556 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
2557
2558 2019-04-18 Martin Sebor <msebor@redhat.com>
2559
2560 PR middle-end/89797
2561 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
2562 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
2563 assuming type size fits in SHWI.
2564
2565 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
2566
2567 PR ipa/85051
2568 * ipa-inline.c (flatten_function): New parameter UPDATE.
2569 (ipa_inline, early_inliner): Use it.
2570
2571 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
2572
2573 * fold-const.c (int_const_binop): Return early on failure.
2574
2575 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
2576
2577 PR middle-end/85164
2578 * combine.c (force_int_to_mode): Cast the argument rather than
2579 the result of known_alignment.
2580 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
2581
2582 2019-04-18 Richard Biener <rguenther@suse.de>
2583
2584 PR debug/90131
2585 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
2586 out from ...
2587 (remove_forwarder_block): ... here.
2588 (remove_forwarder_block_with_phi): Also move debug stmts here.
2589
2590 2019-04-18 Jakub Jelinek <jakub@redhat.com>
2591
2592 PR translation/79183
2593 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
2594 inform where appropriate.
2595
2596 2019-04-18 Richard Biener <rguenther@suse.de>
2597
2598 * tree.c (get_qualified_type): Put found type variants at the
2599 head of the variant list.
2600
2601 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
2602
2603 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
2604
2605 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
2606
2607 PR target/90125
2608 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
2609 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
2610 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
2611 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
2612 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
2613
2614 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
2615
2616 * ira-conflicts.c (print_allocno_conflicts): Always print something,
2617 even for allocno's with no conflicts.
2618 (print_conflicts): Print an extra newline.
2619
2620 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
2621
2622 * auto-inc-dec.c (attempt_change): Set the alignment of the
2623 temporary memory to that of the original.
2624
2625 2019-04-17 Joao Moreira <jmoreira@suse.de>
2626
2627 * targhooks.c (default_print_patchable_function_entry): Emit
2628 __patchable_function_entries section with writable flags to allow
2629 relocation resolution.
2630
2631 2019-04-17 Jonny Grant <jg@jguk.org>
2632
2633 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
2634
2635 2019-04-17 Jakub Jelinek <jakub@redhat.com>
2636
2637 PR middle-end/90095
2638 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
2639 on lowpart SUBREGs.
2640
2641 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
2642
2643 * config/arc/arc.c (arc_init): Format diagnostic string.
2644 (arc_override_options): Likewise.
2645 (check_if_valid_regno_const): Likewise.
2646 (arc_reorg): Likewise.
2647
2648 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
2649
2650 PR target/17108
2651 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
2652 name.
2653 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
2654 name.
2655 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
2656 (*movdi_update1): Use Pmode.
2657 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
2658 (movdi_<mode>_update_stack): Rename to ...
2659 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
2660 use Pmode.
2661 (*movsi_update1): Use Pmode.
2662 (*movsi_update2): Use Pmode.
2663 (movsi_update): Rename to ...
2664 (movsi_<mode>_update): ... this. Use Pmode.
2665 (movsi_update_stack): Fix condition.
2666 (*movhi_update1): Use Pmode. Fix argument to
2667 avoiding_indexed_address_p.
2668 (*movhi_update2): Ditto.
2669 (*movhi_update3): Ditto.
2670 (*movhi_update4): Ditto.
2671 (*movqi_update1): Ditto.
2672 (*movqi_update2): Ditto.
2673 (*movqi_update3): Ditto.
2674 (*movsf_update1, *movdf_update1): Merge, rename to...
2675 (*mov<mode>_update1): This. Use Pmode. Fix argument to
2676 avoiding_indexed_address_p. Add "size" attribute.
2677 (*movsf_update2, *movdf_update2): Merge, rename to...
2678 (*mov<mode>_update2): This. Ditto.
2679 (*movsf_update3): Use Pmode. Fix argument to
2680 avoiding_indexed_address_p.
2681 (*movsf_update4): Ditto.
2682 (allocate_stack): Simplify condition. Adjust pattern names.
2683
2684 2019-04-17 Jakub Jelinek <jakub@redhat.com>
2685
2686 PR target/89093
2687 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
2688 whitespace at the start of target attribute string.
2689
2690 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
2691
2692 PR target/84369
2693 * config/rs6000/power9.md: Add store forwarding bypass.
2694
2695 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
2696
2697 PR debug/89528
2698 * valtrack.c (dead_debug_insert_temp): Reset debug references
2699 to the return value of a call being removed.
2700
2701 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
2702
2703 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
2704 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
2705 implement target hook.
2706 (arc_memory_move_cost): New function.
2707 (TARGET_REGISTER_MOVE_COST): Define.
2708 (TARGET_MEMORY_MOVE_COST): Likewise.
2709 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
2710 (MEMORY_MOVE_COST): Likewise.
2711
2712 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
2713
2714 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
2715 (sibcall_value_insn): Likewise.
2716 * config/arc/constraints.md (Rs5): Remove.
2717
2718 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
2719
2720 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
2721 for last two fake registers.
2722 (arc_conditional_register_usage): Make sure fake frame and arg
2723 pointer regs are in general regs class.
2724 (FRAME_POINTER_MASK): Remove.
2725 (RETURN_ADDR_MASK): Remove.
2726 (arc_must_save_register): Use hard frame regnum.
2727 (frame_restore_reg): Use hard_frame_pointer_rtx.
2728 (arc_save_callee_saves): Likewise.
2729 (arc_restore_callee_saves): Likewise.
2730 (arc_save_callee_enter): Likewise.
2731 (arc_restore_callee_leave): Likewise.
2732 (arc_save_callee_milli): Likewise.
2733 (arc_eh_return_address_location): Likewise.
2734 (arc_check_multi): Use hard frame regnum.
2735 (arc_can_eliminate): Likewise.
2736 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
2737 for register allocator.
2738 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
2739 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
2740 (FRAME_POINTER_REGNUM): Change it to a fake register.
2741 (HARD_FRAME_POINTER_REGNUM): Defined.
2742 (ARG_POINTER_REGNUM): Change it to a new fake register.
2743 (ELIMINABLE_REGS): Update.
2744 (REGISTER_NAMES): Update names.
2745 * config/arc/arc.md (LP_START): Remove.
2746 (LP_END): Likewise.
2747 (shift_si3_loop): Update pattern.
2748
2749 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
2750
2751 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
2752 to avoid delay slot scheduling.
2753 (arc_must_save_register): Don't save SP.
2754 * config/arc/arc.md (stack_tie): Remove.
2755 (UNSPEC_ARC_STKTIE): Likewise.
2756
2757 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
2758 Shiva Chen <shiva0217@gmail.com>
2759
2760 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
2761 code gen with large shift amount.
2762
2763 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
2764
2765 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
2766 subreg.
2767
2768 2019-04-16 Jakub Jelinek <jakub@redhat.com>
2769
2770 PR target/90096
2771 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
2772 print -m64/-mx32/-m32 if it is true.
2773 (ix86_debug_options, ix86_function_specific_print): Pass true as
2774 ADD_ABI_P to ix86_target_string.
2775 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
2776 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
2777 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
2778
2779 PR rtl-optimization/90082
2780 * dce.c (can_delete_call): New function.
2781 (deletable_insn_p, mark_insn): Use it.
2782
2783 PR tree-optimization/90090
2784 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
2785 throw internally.
2786 (is_division_by_square): Likewise. Formatting fix.
2787
2788 2019-04-16 Richard Biener <rguenther@suse.de>
2789
2790 PR tree-optimization/56049
2791 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
2792 equality check if alias-set zero will prevail.
2793
2794 2019-04-15 Jeff Law <law@redhat.com>
2795
2796 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
2797 size and alignment as unsigned.
2798
2799 2019-04-15 Richard Biener <rguenther@suse.de>
2800
2801 PR debug/90074
2802 * tree-loop-distribution.c (destroy_loop): Preserve correct
2803 debug info.
2804
2805 2019-04-15 Richard Biener <rguenther@suse.de>
2806
2807 PR tree-optimization/90071
2808 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
2809 abnormal operands from def stmts.
2810
2811 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
2812
2813 PR rtl-optimization/89794
2814 * combine.c (count_auto_inc): New function.
2815 (try_combine): Count how many auto_inc expressions there were in the
2816 original instructions. Ensure we have the same number in the new
2817 instructions. Remove the code that tried to ensure auto_inc side
2818 effects on i1 and i0 are not lost.
2819
2820 2019-04-15 Richard Biener <rguenther@suse.de>
2821
2822 PR ipa/88936
2823 * tree.h (auto_var_p): Declare.
2824 * tree.c (auto_var_p): New function, split out from ...
2825 (auto_var_in_fn_p): ... here.
2826 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
2827 member.
2828 (new_var_info): Initialize it.
2829 (set_uids_in_ptset): Also set the shadow variable uid if required.
2830 (ipa_pta_execute): Postprocess points-to solutions assigning
2831 shadow variable uids for locals that may reach their containing
2832 function recursively.
2833 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
2834 assert but instead check whether the points-to solution is
2835 a singleton.
2836
2837 2019-04-15 Martin Jambor <mjambor@suse.cz>
2838
2839 PR ipa/pr89693
2840 * cgraph.c (clone_of_p): Loop over clone chain for each step in
2841 the thunk chain.
2842
2843 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
2844
2845 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
2846
2847 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
2848 Kito Cheng <kito.cheng@gmail.com>
2849 Shiva Chen <shiva0217@gmail.com>
2850
2851 * config/nds32/nds32-md-auxiliary.c
2852 (nds32_legitimize_pic_address): Use new PIC pattern.
2853 (nds32_legitimize_tls_address): Use new TLS pattern.
2854 (nds32_output_symrel): New.
2855 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
2856 (nds32_alloc_relax_group_id): Ditto.
2857 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
2858 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
2859 relax_group_id.
2860 (nds32_group_tls_insn): Ditto.
2861 (nds32_group_float_insns): Ditto.
2862 * config/nds32/nds32.md (tls_le): New.
2863 (sym_got): Ditto.
2864
2865 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
2866
2867 * configure: Add nds32 target for dwarf2 debug_line checking.
2868 * configure.ac: Regenerated.
2869
2870 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
2871
2872 PR lto/89358
2873 * ipa-devirt.c (skip_in_fields_list_p): New.
2874 (odr_types_equivalent_p): Use it.
2875
2876 2019-04-13 Jakub Jelinek <jakub@redhat.com>
2877
2878 PR target/89093
2879 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
2880 instead of strncmp when checking for thumb and arm. Formatting fixes.
2881
2882 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
2883
2884 * doc/install.texi: Document --with-target-system-zlib.
2885
2886 2019-04-12 Martin Sebor <msebor@redhat.com>
2887
2888 PR c/88383
2889 PR c/89288
2890 PR c/89798
2891 PR c/89797
2892 * targhooks.c (default_vector_alignment): Avoid assuming
2893 argument fits in SHWI.
2894 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
2895 a shift expression.
2896 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
2897
2898 2019-04-12 Jakub Jelinek <jakub@redhat.com>
2899
2900 PR rtl-optimization/89965
2901 * dce.c: Include rtl-iter.h.
2902 (struct check_argument_load_data): New type.
2903 (check_argument_load): New function.
2904 (find_call_stack_args): Check for loads from stack slots still tracked
2905 in sp_bytes and punt if any is found.
2906
2907 * config/mips/loongson-mmiintrin.h: Fix up #error message.
2908
2909 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
2910
2911 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
2912 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
2913
2914 2019-04-12 Martin Liska <mliska@suse.cz>
2915
2916 PR middle-end/89970
2917 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
2918 in error message.
2919 (separate_attrs): Handle multiple 'default's.
2920 (expand_target_clones): Rework error handling code.
2921
2922 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
2923
2924 PR target/87532
2925 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
2926 mode of vector rather than mode of destination for move instruction.
2927 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
2928 Use QI inner mode with V16QI vector mode.
2929
2930 2019-04-12 Jakub Jelinek <jakub@redhat.com>
2931
2932 PR target/52726
2933 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
2934 "invalid %%t operand" in output_operand_lossage message.
2935
2936 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
2937
2938 * config/s390/predicates.md (permute_pattern_operand): New
2939 predicate.
2940 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
2941 operand for the permute pattern.
2942 ("*vec_perm<mode>"): New insn definition.
2943 ("bswap<mode>"): Generate the permute pattern operand in the
2944 expander and perform the operand reloads for pre arch13 level
2945 already.
2946 ("*bswap<mode>_emu"): Rename to ...
2947 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
2948 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
2949 Add the USE operand for the permute pattern.
2950 ("*vec_set_bswap_vec<mode>"): Likewise.
2951
2952 2019-04-12 Jakub Jelinek <jakub@redhat.com>
2953
2954 PR c/89946
2955 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
2956 and gcc_unreachable if it fails, just call tree_to_uhwi which
2957 verifies that too. Test TREE_CHAIN instead of list_length > 1.
2958 Start warning message with a lower-case letter. Formatting fixes.
2959
2960 PR rtl-optimization/90026
2961 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
2962 successors, look for BARRIERs inside of the whole BB_FOOTER chain
2963 rather than just at the start of it. If e->src BB_FOOTER is not NULL
2964 in cfglayout mode, use emit_barrier_after_bb.
2965
2966 2018-04-11 Steve Ellcey <sellcey@marvell.com>
2967
2968 PR rtl-optimization/87763
2969 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
2970 New Instruction.
2971
2972 2019-04-11 Tom de Vries <tdevries@suse.de>
2973
2974 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
2975 max macro using statement expression.
2976
2977 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
2978
2979 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
2980 * xcoffout.c (xcoff_private_rodata_section_name): Define.
2981 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
2982 read_only_private_data_section using xcoff_private_rodata_section_name.
2983 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
2984
2985 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
2986
2987 PR target/90016
2988 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
2989
2990 2019-04-11 Jakub Jelinek <jakub@redhat.com>
2991
2992 PR rtl-optimization/89965
2993 * dce.c (sp_based_mem_offset): New function.
2994 (find_call_stack_args): Use sp_based_mem_offset.
2995
2996 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
2997
2998 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
2999
3000 2019-04-11 Richard Biener <rguenther@suse.de>
3001
3002 PR tree-optimization/90020
3003 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
3004 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
3005 * tree-ssa-pre.c (compute_avail): Use it to not put
3006 possibly trapping references after a call that might not
3007 return into EXP_GEN.
3008 * gcse.c (compute_hash_table_work): Do not elide
3009 marking a block containing a call if the call might not
3010 return.
3011
3012 2019-04-11 Richard Biener <rguenther@suse.de>
3013
3014 PR tree-optimization/90018
3015 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
3016 Test both SLP and interleaving variants.
3017
3018 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
3019
3020 * config/s390/8561.md: New file.
3021 * config/s390/driver-native.c (s390_host_detect_local_cpu):
3022 Add arch13 cpu model.
3023 * config/s390/s390-opts.h (enum processor_type): Likewise.
3024 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
3025 (s390_get_unit_mask): Likewise.
3026 (s390_is_fpd): Likewise.
3027 (s390_is_fxd): Likewise.
3028 * config/s390/s390.h (s390_tune_attr): Likewise.
3029 * config/s390/s390.md: Include arch13 pipeline description.
3030 * config/s390/s390.opt: Add arch13.
3031
3032 2018-04-10 Steve Ellcey <sellcey@marvell.com>
3033
3034 PR rtl-optimization/87763
3035 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
3036 New prototype.
3037 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
3038 New function.
3039 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
3040 New instruction.
3041 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
3042 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
3043 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
3044 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
3045
3046 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
3047
3048 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
3049 "Although" in -fipa-icf documentation.
3050
3051 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
3052 of using multiple -g options.
3053
3054 2019-04-10 Martin Liska <mliska@suse.cz>
3055
3056 PR gcov-profile/89959
3057 * doc/gcov.texi: Make documentation of -x option
3058 more precise.
3059
3060 2019-04-10 Richard Biener <rguenther@suse.de>
3061
3062 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
3063 member.
3064 (DR_GROUP_SAME_DR_STMT): Remove.
3065 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
3066 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
3067 replace with assert.
3068 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
3069 (vect_record_grouped_load_vectors): Remove unreachable code.
3070
3071 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
3072
3073 PR target/90016
3074 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
3075 obsolete reference to N.
3076
3077 2019-04-10 Jakub Jelinek <jakub@redhat.com>
3078
3079 PR middle-end/90025
3080 * expr.c (store_expr): Set properly size on the MEM passed to
3081 clear_storage.
3082
3083 PR c++/90010
3084 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
3085 with strlen in between hostsz-3 and hostsz-1 inclusive when no
3086 translation is needed, and when translation is needed, only append
3087 ... if the string length is hostsz or more bytes long. Avoid using
3088 strncpy or strcat.
3089
3090 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
3091
3092 PR target/90024
3093 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
3094 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
3095 into three.
3096 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
3097 differences directly.
3098 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
3099
3100 2019-04-09 Jakub Jelinek <jakub@redhat.com>
3101
3102 PR translation/90011
3103 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
3104 from diagnostics.
3105 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
3106 diagnostics.
3107 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
3108 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
3109 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
3110 trailing space from -gsplit-dwarf diagnostics.
3111
3112 PR tree-optimization/89998
3113 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
3114 instead of integer_type_node if possible, don't add ranges if return
3115 type is not compatible with int.
3116 * gimple-fold.c (gimple_fold_builtin_sprintf,
3117 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
3118 integer_type_node.
3119
3120 2019-04-09 Martin Liska <mliska@suse.cz>
3121
3122 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
3123 * doc/install.texi: Document the new config.
3124
3125 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
3126
3127 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
3128 use gimple_expr_type for load and store calls. Skip over the
3129 condition argument in a conditional internal function.
3130 Protect use of TREE_INT_CST_LOW.
3131
3132 2019-04-09 Jakub Jelinek <jakub@redhat.com>
3133
3134 PR target/90015
3135 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
3136 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
3137 trailing period from it too.
3138
3139 2019-04-08 wu yuan <wuyuan5@huawei.com>
3140
3141 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
3142 * config/aarch64/aarch64.md : Add "tsv110.md"
3143 * config/aarch64/tsv110.md: New file.
3144
3145 2019-04-08 Richard Biener <rguenther@suse.de>
3146
3147 PR tree-optimization/90006
3148 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
3149 calls like lrint.
3150
3151 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
3152
3153 PR target/83033
3154 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
3155 construction.
3156 (fma_root_node): Likewise.
3157 (func_fma_steering): Likewise.
3158
3159 2019-04-08 Jakub Jelinek <jakub@redhat.com>
3160
3161 PR rtl-optimization/89865
3162 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
3163
3164 PR rtl-optimization/89865
3165 * config/i386/i386.md
3166 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
3167 numbers not to clash with the additional operands[4].
3168 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
3169 with extra register copy in the middle.
3170
3171 2019-04-08 Martin Liska <mliska@suse.cz>
3172
3173 PR gcov-profile/89961
3174 * doc/gcov.texi: Document data_file.
3175 * gcov.c (generate_results): Add data_info into JSON output.
3176
3177 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
3178
3179 PR tree-optimization/89725
3180 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
3181 loop's chrec as invariant symbol.
3182 * tree-chrec.h (chrec_contains_symbols): New parameter.
3183 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
3184 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
3185 function of loops not in DDR's loop_nest.
3186 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
3187
3188 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
3189
3190 PR target/89623
3191 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
3192 Mask.
3193
3194 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
3195
3196 PR target/89945
3197 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
3198 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
3199
3200 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
3201
3202 * sched-deps.c (sched_macro_fuse_insns): Check return value of
3203 targetm.fixed_condition_code_regs.
3204
3205 2019-04-05 Richard Biener <rguenther@suse.de>
3206
3207 PR debug/89892
3208 PR debug/89905
3209 * tree-cfgcleanup.c (remove_forwarder_block): Always move
3210 debug bind stmts but reset them if they are not valid at the
3211 destination.
3212
3213 2019-04-05 Martin Liska <mliska@suse.cz>
3214
3215 PR translation/89936
3216 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
3217 order to wrap keywords or arguments.
3218 * collect2.c (main): Likewise.
3219 (scan_prog_file): Likewise.
3220 (scan_libraries): Likewise.
3221 * common/config/riscv/riscv-common.c
3222 (riscv_subset_list::parsing_subset_version): Likewise.
3223 (riscv_subset_list::parse_std_ext): Likewise.
3224 * config/aarch64/aarch64.c (aarch64_override_options_internal):
3225 Likewise.
3226 * config/arm/arm.c (arm_option_override): Likewise.
3227 * config/cris/cris.c (cris_print_operand): Likewise.
3228 * config/darwin-c.c (darwin_pragma_options): Likewise.
3229 (darwin_pragma_unused): Likewise.
3230 (darwin_pragma_ms_struct): Likewise.
3231 * config/ft32/ft32.c (ft32_print_operand): Likewise.
3232 * config/i386/i386.c (print_reg): Likewise.
3233 (ix86_print_operand): Likewise.
3234 * config/i386/xm-djgpp.h: Likewise.
3235 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
3236 * config/m32c/m32c.c (m32c_option_override): Likewise.
3237 * config/msp430/msp430.c (msp430_option_override): Likewise.
3238 * config/nds32/nds32.c (nds32_option_override): Likewise.
3239 * config/nvptx/mkoffload.c (main): Likewise.
3240 * config/rx/rx.c (rx_print_operand): Likewise.
3241 (valid_psw_flag): Likewise.
3242 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
3243 (vms_pragma_nomember_alignment): Likewise.
3244 (vms_pragma_extern_model): Likewise.
3245 * lto-wrapper.c (compile_offload_image): Likewise.
3246 * omp-offload.c (oacc_parse_default_dims): Likewise.
3247 * symtab.c (symtab_node::verify_base): Likewise.
3248 * tlink.c (recompile_files): Likewise.
3249 (start_tweaking): Likewise.
3250 * tree-profile.c (parse_profile_filter): Likewise.
3251
3252 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
3253
3254 PR tree-optimization/89956
3255 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
3256 multiple negates of the same value.
3257
3258 2019-04-04 Martin Sebor <msebor@redhat.com>
3259
3260 PR middle-end/89957
3261 PR middle-end/89911
3262 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
3263 have the same precision since the function crashes otherwise.
3264 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
3265 has non-zero arguments.
3266
3267 2019-04-04 Martin Sebor <msebor@redhat.com>
3268
3269 PR middle-end/89934
3270 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
3271 out if the number of arguments is less than expected.
3272
3273 2019-04-04 Jeff Law <law@redhat.com>
3274
3275 PR rtl-optimization/89399
3276 * ree.c (combine_set_extension): Use single_set rather than
3277 digging into PATTERN for items on the candidate list.
3278 (combine_reaching_defs): Likewise.
3279
3280 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
3281
3282 PR rtl-optimization/46590
3283 * loop-invariant.c (find_defs): Move df_remove_problem and
3284 df_process_deferred_rescans to move_invariants.
3285 Move df_live_add_problem and df_live_set_all_dirty calls
3286 to move_invariants.
3287 (move_invariants): Likewise.
3288 (move_loop_invariants): Likewise, making the df_live calls
3289 conditional on -O. Remove the problem again if we added it
3290 locally.
3291
3292 2019-04-03 qing zhao <qing.zhao@oracle.com>
3293
3294 PR tree-optimization/89730
3295 * ipa-inline.c (can_inline_edge_p): Delete the checking for
3296 -flive-patching=inline-only-static.
3297 (can_inline_edge_by_limits_p): Add the checking for
3298 -flive-patching=inline-only-static and grant always_inline
3299 even when -flive-patching=inline-only-static is specified.
3300
3301 2019-04-03 Jeff Law <law@redhat.com>
3302
3303 PR rtl-optimization/81025
3304 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
3305
3306 2019-04-03 Richard Biener <rguenther@suse.de>
3307
3308 PR tree-optimization/84101
3309 * tree-vect-stmts.c: Include explow.h for hard_function_value,
3310 regs.h for hard_regno_nregs.
3311 (cfun_returns): New helper.
3312 (vect_model_store_cost): When vectorizing a store to a decl
3313 we return and the function ABI returns in a multi-reg location
3314 account for the possible spilling that will happen.
3315
3316 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
3317
3318 * config/s390/s390.c (s390_legitimate_address_p): Reject long
3319 displacement addresses for vector mode operands.
3320
3321 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
3322
3323 * config/arc/arc.c (GMASK_LEN): Define.
3324 (arc_restore_callee_saves): Restore first blink when
3325 !optimize_size.
3326
3327 2019-04-03 Sudakshina Das <sudi.das@arm.com>
3328
3329 * doc/extend.texi: Add deprecated comment on sign-return-address
3330 function attribute and add mbranch-protection.
3331 * doc/invoke.texi: Add bti to the options for mbranch-protection.
3332
3333 2019-04-03 Richard Biener <rguenther@suse.de>
3334
3335 PR lto/89896
3336 * lto-wrapper.c (run_gcc): Avoid implicit rules making
3337 the all target phony.
3338
3339 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
3340
3341 PR target/89902
3342 PR target/89903
3343 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
3344 Return false for variable DImode shifts.
3345 (dimode_scalar_chain::compute_convert_gain): Do not handle
3346 register count operand in variable DImode shifts.
3347 (dimode_scalar_chain::make_vector_copies): Remove support to copy
3348 count argument of a variable shift instruction to a vector register.
3349 (dimode_scalar_chain::convert_reg): Remove support to convert
3350 count argument of a variable shift instruction.
3351
3352 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
3353
3354 PR rtl-optimization/84206
3355 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
3356 iterating over loop headers.
3357
3358 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
3359
3360 PR rtl-optimization/85876
3361 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
3362 beyond the original fence.
3363
3364 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
3365
3366 * config.gcc: Mark spu* targets as deprecated/obsolete.
3367
3368 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3369
3370 * config/s390/s390-builtin-types.def: New builtin function type
3371 definitions. Remove unused types.
3372 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
3373 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
3374 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
3375 overloaded builtins.
3376 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
3377 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
3378 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
3379 (vec_double, vec_signed, vec_unsigned): Define to use the new
3380 overloaded builtins.
3381 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
3382 Remove expanders.
3383
3384 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3385
3386 * config/s390/s390-builtin-types.def: New builtin function type
3387 definitions.
3388 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
3389 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
3390 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
3391 (s390_vstrszh, s390_vstrszf): New low-level builtins.
3392 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
3393 constant definitions.
3394 * config/s390/vecintrin.h (vec_search_string_cc)
3395 (vec_search_string_until_zero_cc): New builtin name definitions.
3396 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
3397 expanders.
3398 ("vec_vstrs<mode>"): New insn definition.
3399
3400 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3401
3402 * config/s390/s390-builtin-types.def: Add new builtin function
3403 types.
3404 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
3405 New overloaded builtins.
3406 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
3407 s390_vsrd.
3408 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
3409 (UNSPEC_VEC_SLDBYTE): ... this.
3410 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
3411 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
3412 definitions.
3413 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
3414 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
3415 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
3416
3417 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3418
3419 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
3420 New insn definition.
3421 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
3422 * config/s390/vector.md (V_HW_HSD): ... here.
3423
3424 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3425
3426 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
3427 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
3428 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
3429 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
3430 New insn definitions.
3431
3432 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3433
3434 * config/s390/s390-builtin-types.def: Add new builtin function type.
3435 * config/s390/s390-builtins.def: Add overloaded builtin
3436 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
3437 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
3438 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
3439 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
3440 ("eltswap<mode>"): New expander.
3441 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
3442 insn definitions.
3443
3444 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3445
3446 * config/s390/s390-builtin-types.def: Add new builtin function types.
3447 * config/s390/s390-builtins.def: Add overloaded builtin
3448 s390_vec_revb. Add low-level builtins for vlbr and vstbr
3449 instructions.
3450 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
3451 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
3452 ("bswap<mode>"): New expander.
3453 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
3454
3455 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3456
3457 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
3458 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
3459 vector builtin version number in __VEC__.
3460
3461 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3462
3463 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
3464 iterators.
3465 (SFSI): New mode attribute.
3466 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
3467 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
3468 rename to ...
3469 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
3470 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
3471 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
3472 ("floatsi<mode>2"): Add wcefb instruction.
3473
3474 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3475
3476 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
3477 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
3478 mode iterators.
3479 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
3480 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
3481 support 32 bit fp-int conversions. Rename to ...
3482 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
3483 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
3484 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
3485 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
3486 ... to these.
3487
3488 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3489
3490 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
3491 if-then-else constructs if we can use the select instruction.
3492 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
3493
3494 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3495
3496 * config/s390/s390.md ("*popcountdi_arch13_cc")
3497 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
3498 definition.
3499 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
3500 Append _z196 to make it ...
3501 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
3502 ("popcounthi2_z196"): ... this.
3503 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
3504 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
3505
3506 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3507
3508 * config/s390/s390.c (s390_canonicalize_comparison): Convert
3509 certain compares for arch13 in order to make use of the condition
3510 code result produced by the new instructions.
3511 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
3512 nxrk, and nxgrk instruction patterns.
3513 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
3514 (inv_no): Add new code iterator together with some attributes.
3515 ("*andc_split_<mode>"): Disable splitter for arch13.
3516 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
3517 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
3518 ("*<ANDOR:bitops_name>c<GPR:mode>")
3519 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
3520 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
3521 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
3522 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
3523
3524 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
3525
3526 * common/config/s390/s390-common.c (processor_flags_table): New
3527 entry for arch13.
3528 * config.gcc: Support arch13 with the --with-arch= configure flag.
3529 * config/s390/driver-native.c (s390_host_detect_local_cpu):
3530 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
3531 * config/s390/s390.c (s390_get_sched_attrmask)
3532 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
3533 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
3534 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
3535 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
3536 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
3537 definitions.
3538 * config/s390/s390.opt: Support arch13 as processor type in
3539 command line options.
3540
3541 2019-04-02 Martin Liska <mliska@suse.cz>
3542
3543 PR translation/89912
3544 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
3545 Fix param description of graphite-max-arrays-per-scop.
3546
3547 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
3548
3549 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
3550 (ASAN_CC1_SPEC): Use it in 64-bit mode.
3551 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
3552
3553 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
3554
3555 PR rtl-optimization/85412
3556 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
3557 sel_sched_region_1, not after.
3558
3559 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
3560
3561 PR rtl-optimization/86928
3562 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
3563 compute_live if necessary.
3564 (sel_redirect_edge_and_branch): Likewise.
3565
3566 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
3567
3568 PR rtl-optimization/89865
3569 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
3570 register if it is a part of small class.
3571
3572 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
3573
3574 PR rtl-optimization/87273
3575 * sel-sched-ir.c (merge_fences): Remove assert.
3576
3577 2019-04-01 Richard Biener <rguenther@suse.de>
3578
3579 PR tree-optimization/46590
3580 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
3581 (dom_walker::m_reachability): Add in place of...
3582 (dom_walker::m_skip_unreachable_blocks): ...this.
3583 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
3584 Move complex initialization ...
3585 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
3586 lazily and initialize edge flags on each invocation.
3587 (dom_walker::bb_reachable): Use m_reachability.
3588
3589 2019-04-01 Martin Liska <mliska@suse.cz>
3590
3591 PR driver/89861
3592 * opt-suggestions.c (option_proposer::build_option_suggestions):
3593 Add variant without any argument in order to provide better
3594 hints.
3595
3596 2019-04-01 Richard Biener <rguenther@suse.de>
3597
3598 PR c/71598
3599 * gimple.c: Include langhooks.h.
3600 (gimple_get_alias_set): Treat enumeral types as the underlying
3601 integer type.
3602
3603 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
3604 Eric Botcazou <ebotcazou@adacore.com>
3605
3606 PR rtl-optimization/89862
3607 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
3608 that operates on the full registers for WORD_REGISTER_OPERATIONS
3609 architectures.
3610
3611 2019-03-29 Jim Wilson <jimw@sifive.com>
3612
3613 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
3614 Clear MASK_RVC and then set if C subset supported.
3615
3616 2019-03-29 Jakub Jelinek <jakub@redhat.com>
3617
3618 PR c/89872
3619 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
3620 non-addressable complit into its initializer if it is volatile.
3621
3622 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
3623
3624 * opts-common.c (integral_argument): Set errno properly in one case.
3625
3626 2019-03-29 Martin Liska <mliska@suse.cz>
3627
3628 * doc/invoke.texi: Remove -Wchkp from documentation.
3629
3630 2019-03-29 Martin Liska <mliska@suse.cz>
3631
3632 * dbgcnt.c (print_limit_reach): New function.
3633 (dbg_cnt): Use it.
3634
3635 2019-03-29 Martin Liska <mliska@suse.cz>
3636
3637 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
3638 (dbg_cnt_process_opt): Parse first tokens aas
3639 dbg_cnt_process_single_pair is also using strtok.
3640
3641 2019-03-29 Jakub Jelinek <jakub@redhat.com>
3642
3643 PR rtl-optimization/87485
3644 * function.c (expand_function_end): Move stack_protect_epilogue
3645 before loading of return value into hard register(s).
3646
3647 2019-03-28 Jakub Jelinek <jakub@redhat.com>
3648
3649 PR middle-end/89621
3650 * tree-inline.h (struct copy_body_data): Add
3651 dont_remap_vla_if_no_change flag.
3652 * tree-inline.c (remap_type_3, remap_type_2): New functions.
3653 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
3654 and remap_type_2 returns false.
3655 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
3656 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
3657 only from where it is copied to nested contexts.
3658
3659 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
3660
3661 PR target/89865
3662 * config/i386/i386.md (RMW operation with LEA peephole):
3663 Use LEAMODE mode attribute instead of SWI mode iterator for
3664 LEA pattern.
3665
3666 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
3667
3668 PR target/89848
3669 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
3670 Also process XEXP (src, 0) of a shift insn.
3671
3672 2019-03-28 David Malcolm <dmalcolm@redhat.com>
3673
3674 PR middle-end/89725
3675 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
3676 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
3677
3678 2019-03-28 Jakub Jelinek <jakub@redhat.com>
3679
3680 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
3681 test.
3682 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
3683 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
3684 immediately after first one with df_analyze in between, but rather
3685 process all bbs, queueing ones that need second pass in a worklist,
3686 df_analyze, process queued debug insn changes and if second pass is
3687 needed, process bbs from worklist, df_analyze, process queued debug
3688 insns again.
3689
3690 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
3691 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
3692 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
3693
3694 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
3695
3696 PR c/79022
3697 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
3698 definition.
3699
3700 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
3701
3702 PR target/85667
3703 * config/i386/i386.c (ix86_function_value_1): Call the newly added
3704 function for 32-bit MS_ABI.
3705 (function_value_ms_32): New function.
3706
3707 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
3708
3709 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
3710 (movdi): Call gen_movdi_symbol_save_scc.
3711 (gen_movdi_symbol_save_scc): New insn and split.
3712
3713 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
3714
3715 PR rtl-optimization/89313
3716 * function.c (matching_constraint_num): New static function.
3717 (match_asm_constraints_1): Use it. Fixup white space and comment.
3718 Don't replace inputs with non-matching constraints which conflict
3719 with early clobber outputs.
3720
3721 2019-03-27 Jeff Law <law@redhat.com>
3722
3723
3724 PR rtl-optimization/87761
3725 PR rtl-optimization/89826
3726 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
3727 slightly later.
3728 (pass_cprop_hardreg::execute): Call df_analyze after adding the
3729 note problem to get REG_DEAD/REG_UNUSED notes updated.
3730
3731 2019-03-27 Richard Biener <rguenther@suse.de>
3732
3733 PR tree-optimization/89463
3734 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
3735 queue edges to remove.
3736 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
3737 dead stmts. Delay edge removal until PHIs are removed to
3738 make debug-stmt creation not confused by seemingly degenerate
3739 PHIs.
3740
3741 2019-03-27 Alan Modra <amodra@gmail.com>
3742
3743 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
3744 throughout file.
3745 * config/rs6000/darwin.h: Likewise.
3746 * config/rs6000/rs6000.c: Likewise.
3747
3748 2019-03-27 Alan Modra <amodra@gmail.com>
3749
3750 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
3751 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
3752
3753 2019-03-26 Andrew Waterman <andrew@sifive.com>
3754 Jim Wilson <jimw@sifive.com>
3755
3756 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
3757 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
3758 (generic_idivdi, generic_fmul_single, generic_fmul_double)
3759 (generic_fdiv, generic_fsqrt): Add check for generic tune.
3760 (generic_alu): Add auipc to type list.
3761 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
3762 (riscv_microarchitecture): Declare.
3763 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
3764 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
3765 field.
3766 (riscv_microarchitecture): New.
3767 (sifive_7_tune_info): New.
3768 (riscv_cpu_info_table): Add microarchitecture value for rocket and
3769 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
3770 entries.
3771 (riscv_store_data_bypass_p): New.
3772 (riscv_option_override): Set riscv_microarchitecture from
3773 cpu->microarchitecture.
3774 * config/riscv/riscv.md: Include sifive-7.md.
3775 (type): Add auipc.
3776 (tune): New.
3777 (auipc<mode>): Change type to auipc.
3778 (restore_stack_nonlocal): New.
3779 * config/riscv/sifive-7.md: New.
3780 * doc/invoke.texi (RISC-V Options): Update mtune docs.
3781
3782 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
3783
3784 PR target/89827
3785 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
3786 Also process XEXP (src, 0) of a shift insn.
3787
3788 2019-03-26 Richard Biener <rguenther@suse.de>
3789
3790 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
3791 (copy_debug_stmt): Likewise.
3792 (expand_call_inline): Likewise.
3793 (copy_bb): Avoid redundant lookup & set of gimple_block.
3794 * gimple-low.c (lower_gimple_return): Likewise.
3795 (lower_builtin_setjmp): Likewise.
3796
3797 2019-03-26 Jakub Jelinek <jakub@redhat.com>
3798
3799 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
3800 is constant 0, turn into static const data member initialized to false.
3801 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
3802 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
3803
3804 2019-03-26 Jason Merrill <jason@redhat.com>
3805 Jakub Jelinek <jakub@redhat.com>
3806
3807 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
3808 method.
3809 (mem_alloc_description::release_object_overhead): Fix comment typos.
3810 * hash-table.h (hash_table::~hash_table): Call
3811 release_instance_overhead only if m_entries is non-NULL, otherwise
3812 call unregister_descriptor.
3813
3814 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
3815
3816 PR tree-optimization/81740
3817 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
3818 In case of outer loop vectorization, check for backward dependence
3819 at the inner loop if outer loop dependence is reversed.
3820
3821 2019-03-26 Alan Modra <amodra@gmail.com>
3822
3823 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
3824 rs6000_vector_mem init. Correct wI and wJ comment.
3825
3826 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
3827
3828 PR rtl-optimization/88347
3829 PR rtl-optimization/88423
3830 * sched-deps.c (sched_analyze_insn): Take into account that for
3831 tablejumps the barrier appears after a label and a jump_table_data.
3832
3833 2019-03-25 Martin Sebor <msebor@redhat.com>
3834
3835 PR c/89812
3836 * c-common.c (check_user_alignment): Rename local. Correct maximum
3837 alignment in diagnostic. Avoid assuming argument fits in SHWI,
3838 convert it to UHWI when it fits.
3839
3840 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
3841
3842 PR debug/86964
3843 * dwarf2out.c (premark_used_variables): New function.
3844 (prune_unused_types_walk): Do not mark not premarked external
3845 variables.
3846 (prune_unused_types): Call premark_used_variables.
3847
3848 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
3849
3850 PR rtl-optimization/89676
3851 * lra-constraints.c (curr_insn_transform): Do match reload for
3852 early clobbers when the match was successful only for different
3853 registers.
3854
3855 2019-03-25 Martin Sebor <msebor@redhat.com>
3856
3857 * doc/extend.texi (Common Type Attributes): Document vector_size.
3858 (Common Variable Attributes): Mention size constraint. Correct
3859 quoting and typos.
3860 (Vector Extensions): Use @dfn when defining bas type. Clarify
3861 base type and size constraints.
3862
3863 2019-03-25 Richard Biener <rguenther@suse.de>
3864
3865 PR tree-optimization/89789
3866 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
3867 changes from non-undefined back to undefined.
3868
3869 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
3870
3871 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
3872 heap string and a gc string, but since this variable is unknown to
3873 ggc the gc string might get reused and corrupted. Fixed by always
3874 using a heap string.
3875
3876 2019-03-25 Richard Biener <rguenther@suse.de>
3877
3878 PR tree-optimization/89779
3879 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
3880 to remove IV defs, delay actual removal.
3881 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
3882 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
3883 very end, properly also reset loop control IV information.
3884
3885 2019-03-25 Richard Biener <rguenther@suse.de>
3886
3887 PR tree-optimization/89802
3888 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
3889 move EH data to folded stmt.
3890
3891 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
3892
3893 * config/s390/s390-builtin-types.def: Remove few unused types and
3894 fix sort order for others.
3895
3896 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
3897
3898 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
3899 expected and found types with -mdebug during builtin matching.
3900
3901 2019-03-25 Richard Biener <rguenther@suse.de>
3902
3903 PR middle-end/89790
3904 * fold-const.c (operand_equal_p): Revert last change with
3905 updated comment.
3906
3907 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
3908
3909 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
3910 notes for the result of the __tls_get_addr calls.
3911 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
3912
3913 2019-03-24 Jeff Law <law@redhat.com>
3914
3915 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
3916
3917 PR rtl-optimization/87761
3918 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
3919 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
3920 as needed.
3921 (pass_cprop_hardreg::execute): Add df note problem and defer insn
3922 rescans. Reprocess blocks as needed, calling df_analyze before
3923 reprocessing. Always call df_analyze before fixing up debug bind
3924 insns.
3925
3926 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
3927
3928 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
3929 big endian.
3930
3931 2019-03-22 Andrew Pinski <apinski@marvell.com>
3932
3933 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
3934 attrribute for uxtw.
3935
3936 2019-03-26 Jeff Law <law@redhat.com>
3937
3938 PR rtl-optimization/87761
3939 * config/mips/mips-protos.h (mips_split_move): Add new argument.
3940 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
3941 (mips_split_move): Accept new INSN argument. Try to forward SRC
3942 into the next instruction.
3943 (mips_split_move_insn): Pass INSN through to mips_split_move.
3944
3945 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
3946
3947 PR rtl-optimization/89676
3948 * lra-constraints.c (curr_insn_transform): Do match reload for
3949 early clobbers even if the match was successful.
3950
3951 2019-03-22 Jakub Jelinek <jakub@redhat.com>
3952
3953 PR c++/87481
3954 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
3955
3956 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
3957
3958 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
3959
3960 2019-03-22 Jakub Jelinek <jakub@redhat.com>
3961
3962 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
3963 <avx512>_fmsub_<mode>_mask3<round_name>,
3964 <avx512>_fnmadd_<mode>_mask3<round_name>,
3965 <avx512>_fnmsub_<mode>_mask3<round_name>,
3966 avx512f_vmfmadd_<mode>_mask3<round_name>,
3967 avx512f_vmfmsub_<mode>_mask3<round_name>,
3968 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
3969 instead of register_operand and %v instead of v for match_operand 1.
3970 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
3971 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
3972 <round_nimm_predicate> instead of register_operand and %v instead of v
3973 for match_operand 1.
3974
3975 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
3976 <avx512>_fmadd_<mode>_mask3<round_name>,
3977 <avx512>_fmsub_<mode>_mask<round_name>,
3978 <avx512>_fmsub_<mode>_mask3<round_name>,
3979 <avx512>_fnmadd_<mode>_mask<round_name>,
3980 <avx512>_fnmadd_<mode>_mask3<round_name>,
3981 <avx512>_fnmsub_<mode>_mask<round_name>,
3982 <avx512>_fnmsub_<mode>_mask3<round_name>,
3983 <avx512>_fmaddsub_<mode>_mask<round_name>,
3984 <avx512>_fmaddsub_<mode>_mask3<round_name>,
3985 <avx512>_fmsubadd_<mode>_mask<round_name>,
3986 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
3987 <round_nimm_predicate> instead of nonimmediate_operand.
3988 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
3989 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
3990 Use register_operand instead of <round_nimm_predicate> for the
3991 operand that needs to match output.
3992 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
3993 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
3994 Likewise. Formatting fixes.
3995
3996 PR target/89784
3997 * config/i386/i386.c (enum ix86_builtins): Remove
3998 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
3999 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
4000 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
4001 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
4002 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
4003 __builtin_ia32_vfmsubss3_mask3): New builtins.
4004 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
4005 avx512f_vmfmadd_<mode>_mask3<round_name>,
4006 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
4007 *avx512f_vmfmsub_<mode>_mask<round_name>,
4008 avx512f_vmfmsub_<mode>_mask3<round_name>,
4009 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
4010 *avx512f_vmfnmadd_<mode>_mask<round_name>,
4011 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
4012 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
4013 *avx512f_vmfnmsub_<mode>_mask<round_name>,
4014 avx512f_vmfnmsub_<mode>_mask3<round_name>,
4015 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
4016 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
4017 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
4018 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
4019 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
4020 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
4021 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
4022 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
4023 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
4024 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
4025 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
4026 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
4027 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
4028 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
4029 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
4030 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
4031 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
4032 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
4033 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
4034 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
4035 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
4036 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
4037
4038 2019-03-21 Martin Sebor <msebor@redhat.com>
4039
4040 PR tree-optimization/89350
4041 * builtins.c (compute_objsize): Also ignore offsets whose upper
4042 bound is negative.
4043 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
4044 (builtin_memref::builtin_memref): Initialize new member.
4045 Allow EXPR to be null.
4046 (builtin_memref::extend_offset_range): Replace local with a member.
4047 Avoid assuming pointer offsets are unsigned.
4048 (builtin_memref::set_base_and_offset): Determine base object
4049 before computing offset range.
4050 (builtin_access::builtin_access): Handle memset.
4051 (builtin_access::generic_overlap): Replace local with a member.
4052 (builtin_access::strcat_overlap): Same.
4053 (builtin_access::overlap): Same.
4054 (maybe_diag_overlap): Same.
4055 (maybe_diag_access_bounds): Same.
4056 (wrestrict_dom_walker::check_call): Handle memset.
4057 (check_bounds_or_overlap): Same.
4058
4059 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
4060 Jakub Jelinek <jakub@redhat.com>
4061
4062 PR lto/89692
4063 * tree.c (fld_type_variant, fld_incomplete_type_of,
4064 fld_process_array_type): Call fld->pset.add and don't call
4065 add_tree_to_fld_list if it returns true.
4066 (free_lang_data_in_type): Similarly with self-recursive call. Purge
4067 non-marked types from TYPE_NEXT_VARIANT list.
4068 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
4069
4070 2019-03-21 Jakub Jelinek <jakub@redhat.com>
4071
4072 * hash-table.h (hash_table): Add Lazy template parameter defaulted
4073 to false, if true, don't alloc_entries during construction, but defer
4074 it to the first method that needs m_entries allocated.
4075 (hash_table::hash_table, hash_table::~hash_table,
4076 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
4077 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
4078 hash_table::clear_slot, hash_table::traverse_noresize,
4079 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
4080 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
4081 false.
4082 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
4083 NO_INSERT instead of find_with_hash.
4084 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
4085 hash_set::m_table): Add Lazy to template params of hash_table.
4086 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
4087 * attribs.c (test_attribute_exclusions): Likewise.
4088 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
4089 hash_set. Add tests for hash_set with Lazy = true.
4090
4091 2019-03-21 Richard Biener <rguenther@suse.de>
4092
4093 PR tree-optimization/89779
4094 * tree.c (tree_nop_conversion): Consolidate and fix defensive
4095 checks with respect to released SSA names now having error_mark_node
4096 type.
4097 * fold-const.c (operand_equal_p): Likewise.
4098
4099 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
4100
4101 PR target/89775
4102 * config/s390/s390.c (global_not_special_regno_p): Move to make it
4103 available to ...
4104 (s390_optimize_register_info): Use global_not_special_regno_p to
4105 check for global regs.
4106
4107 2019-03-20 Jakub Jelinek <jakub@redhat.com>
4108
4109 PR target/89752
4110 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
4111 update this_alternative nor this_alternative_set.
4112
4113 2019-03-19 Jim Wilson <jimw@sifive.com>
4114
4115 PR target/89411
4116 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
4117 align, size, offset. Use them to handle a BLKmode reference. Update
4118 comment.
4119 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
4120
4121 2019-03-19 Jakub Jelinek <jakub@redhat.com>
4122
4123 PR rtl-optimization/89768
4124 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
4125 instead of GEN_INT.
4126 (unroll_loop_runtime_iterations): Likewise.
4127
4128 2019-03-19 Martin Sebor <msebor@redhat.com>
4129
4130 PR tree-optimization/89644
4131 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
4132 rather than endptr as an indicator of nul-termination.
4133
4134 PR tree-optimization/89644
4135 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
4136 arrays in determining sequence sizes in strncpy and stpncpy.
4137
4138 2019-03-19 Martin Liska <mliska@suse.cz>
4139
4140 PR middle-end/89737
4141 * predict.c (combine_predictions_for_bb): Empty likely_edges and
4142 unlikely_edges if there's an edge that belongs to both these sets.
4143
4144 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
4145
4146 PR target/89746
4147 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
4148 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
4149 go via a stack temporary.
4150
4151 2019-03-19 Jakub Jelinek <jakub@redhat.com>
4152
4153 PR target/89378
4154 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
4155 instead of gen_rtx_SUBREG.
4156 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
4157
4158 2019-03-19 Richard Biener <rguenther@suse.de>
4159
4160 PR debug/88389
4161 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
4162
4163 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
4164
4165 PR lto/87809
4166 PR lto/89335
4167 * tree.c (free_lang_data_in_decl): Do not free context of C++
4168 destrutors.
4169
4170 2019-03-19 Jakub Jelinek <jakub@redhat.com>
4171
4172 PR target/89506
4173 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
4174 subs for the first alternative except when operands[3] is 1.
4175
4176 PR target/89752
4177 * gimplify.c (gimplify_asm_expr): For output argument with
4178 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
4179 diagnose error.
4180
4181 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
4182
4183 PR rtl-optimization/89753
4184 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
4185 explicit unrolling factor even more robust.
4186
4187 2019-03-19 Jakub Jelinek <jakub@redhat.com>
4188
4189 PR target/89726
4190 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
4191 compensation use x2 += 1 instead of x2 -= -1 and when honoring
4192 signed zeros, do another copysign after the compensation.
4193
4194 2019-03-18 Martin Sebor <msebor@redhat.com>
4195
4196 PR tree-optimization/89720
4197 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
4198 more conservatively, the same as anti-range.
4199
4200 2019-03-18 Richard Biener <rguenther@suse.de>
4201
4202 PR middle-end/88945
4203 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
4204 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
4205 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
4206 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
4207
4208 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
4209
4210 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
4211 Extend queue to 1024 entries.
4212 Add "consumed" field.
4213 (gomp_print_output): Remove print_index parameter.
4214 Add final parameter.
4215 Change limit to unsigned.
4216 Use consumed field to implement circular buffer.
4217 Detect interrupted print in final pass.
4218 Flush output at the end.
4219 (run): Update gomp_print_output usage.
4220 (main): Initialize kernargs->output_data.consumed.
4221
4222 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
4223
4224 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
4225 calculation of the minimum number of scalar iterations for
4226 fully-predicated loops.
4227
4228 2019-03-18 Martin Jambor <mjambor@suse.cz>
4229
4230 PR tree-optimization/89546
4231 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
4232 any propagation to its children took place.
4233
4234 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
4235
4236 PR target/89627
4237 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
4238 parameter, and make use of it.
4239 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
4240
4241 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
4242
4243 * config/arc/arc.opt (mcode-density-frame): Get the inital value
4244 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
4245 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
4246 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
4247 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
4248 match what the ops is doing.
4249 (push_multi_fp_blink): Likewise.
4250 * config/arc/arc.c (arc_override_options): Enable enter/leave when
4251 compiling for size and elf target.
4252 (arc_save_callee_enter): Adjust note to match what enter/leave
4253 operation does.
4254
4255 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
4256
4257 * config/arc/arc.md (tst_movb): Fix constraint.
4258
4259 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
4260
4261 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
4262
4263 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
4264
4265 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
4266 * config/arc/arc.c (arc_conditional_register_usage): Remove all
4267 reg_alloc_order references.
4268 (size_alloc_order): Define.
4269 (arc_adjust_reg_alloc_order): New function.
4270 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
4271 order.
4272 (ADJUST_REG_ALLOC_ORDER): Define.
4273 (HONOR_REG_ALLOC_ORDER): Likewise.
4274
4275 2019-03-18 Richard Biener <rguenther@suse.de>
4276
4277 PR target/87561
4278 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
4279 loads and stores a bit more.
4280
4281 2019-03-18 Richard Biener <rguenther@suse.de>
4282
4283 PR target/87561
4284 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
4285 load pessimization to stores as well.
4286
4287 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
4288
4289 PR middle-end/86979
4290 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
4291 successor, use NULL as its av set.
4292
4293 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
4294
4295 PR rtl-optimization/89721
4296 * lra-constraints (invariant_p): Return false if side_effects_p holds.
4297
4298 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
4299
4300 PR target/87532
4301 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4302 When handling vec_extract, use modular arithmetic to allow
4303 constant selectors greater than vector length.
4304 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
4305 V1TImode vectors to have constant selector values greater than 0.
4306 Use modular arithmetic to compute vector index.
4307 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
4308 index for in-memory vectors. Correct code generation for
4309 in-register vectors.
4310 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
4311 compute index.
4312
4313 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
4314
4315 PR c++/88534
4316 PR c++/88537
4317 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
4318 VAR_DECL args.
4319
4320 2019-03-15 Jakub Jelinek <jakub@redhat.com>
4321
4322 PR c++/89709
4323 * tree.c (inchash::add_expr): Strip any location wrappers.
4324 * fold-const.c (operand_equal_p): Move stripping of location wrapper
4325 after hash verification.
4326
4327 PR debug/89704
4328 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
4329 SIGN_EXTEND and ZERO_EXTEND.
4330
4331 2019-03-14 Jason Merrill <jason@redhat.com>
4332 Jakub Jelinek <jakub@redhat.com>
4333
4334 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
4335 than if is_empty (*slot).
4336 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
4337 existing elt and for elt removal.
4338 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
4339 of already removed elt.
4340
4341 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
4342
4343 PR target/89650
4344 * config/i386/i386.c (remove_partial_avx_dependency): Handle
4345 REG_EH_REGION note.
4346
4347 2019-03-14 Martin Liska <mliska@suse.cz>
4348
4349 PR other/89712
4350 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
4351
4352 2019-03-14 Richard Biener <rguenther@suse.de>
4353
4354 PR target/89711
4355 * config/i386/i386.c (make_resolver_func): Properly set
4356 DECL_CONTEXT on the RESULT_DECL.
4357 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
4358
4359 2019-03-14 Richard Biener <rguenther@suse.de>
4360
4361 * gimple-pretty-print.c: Include cfgloop.h.
4362 (dump_gimple_phi): Adjust.
4363 (dump_gimple_bb_header): Dump loop header for GIMPLE.
4364 (pp_cfg_jump): Adjust.
4365 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
4366 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
4367 (lower_phi_internal_fn): Remove.
4368 (verify_gimple_call): Remove IFN_PHI special-casing.
4369 (dump_function_to_file): Dump IL state.
4370 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
4371 done to deal with PHI nodes being present in non-SSA state.
4372
4373 2019-03-14 Jakub Jelinek <jakub@redhat.com>
4374
4375 PR ipa/89684
4376 * multiple_target.c (create_dispatcher_calls): Change
4377 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
4378 In the node->iterate_referring loop, push *ref rather than ref, call
4379 ref->remove_reference () and always pass 0 to iterate_referring.
4380
4381 PR rtl-optimization/89679
4382 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
4383 would contain a paradoxical SUBREG.
4384
4385 2019-03-14 Richard Biener <rguenther@suse.de>
4386
4387 PR tree-optimization/89710
4388 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
4389 safe_dyn_cast.
4390
4391 2019-03-14 Martin Liska <mliska@suse.cz>
4392
4393 * coverage.c (coverage_begin_function): Stream also
4394 end_column.
4395 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
4396 documentation about function declaration location.
4397 * gcov-dump.c (tag_function): Print whole range
4398 of function declaration.
4399 * gcov.c (struct function_info): Add end_column field.
4400 (function_info::function_info): Initialize it.
4401 (output_json_intermediate_file): Output {start,end}_column
4402 fields.
4403 (read_graph_file): Read end_column.
4404
4405 2019-03-14 Richard Biener <rguenther@suse.de>
4406
4407 PR middle-end/89698
4408 * fold-const.c (operand_equal_p): For INDIRECT_REF check
4409 that the access types are similar.
4410
4411 2019-03-14 Jakub Jelinek <jakub@redhat.com>
4412
4413 PR tree-optimization/89703
4414 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
4415 aren't compatible also with builtin_decl_explicit. Check pure
4416 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
4417 and BUILT_IN_STPNCPY{,_CHK}.
4418
4419 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
4420
4421 PR target/89523
4422 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
4423 addr32 prefix to VSIB address for X32.
4424 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
4425 "%M2" to opcode.
4426 (*avx512pf_gatherpf<mode>df_mask): Likewise.
4427 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
4428 (*avx512pf_scatterpf<mode>df_mask): Likewise.
4429 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
4430 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
4431 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
4432 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
4433 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
4434 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
4435 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
4436 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
4437 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
4438 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
4439 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
4440 (*avx512f_scatterdi<mode>): Likewise.
4441
4442 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
4443
4444 PR target/85860
4445 * lra-constraints.c (inherit_in_ebb): Update
4446 potential_reload_hard_regs along with live_hard_regs.
4447
4448 2019-03-13 Jakub Jelinek <jakub@redhat.com>
4449
4450 PR debug/89498
4451 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
4452 DWARF_OFFSET_SIZE.
4453 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
4454
4455 2019-03-13 Martin Sebor <msebor@redhat.com>
4456
4457 PR tree-optimization/89662
4458 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
4459 has a size.
4460
4461 2019-03-13 Richard Biener <rguenther@suse.de>
4462
4463 PR middle-end/89677
4464 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
4465 throw FP expressions at tree-affine.
4466
4467 2019-03-14 Richard Biener <rguenther@suse.de>
4468
4469 * tree-pretty-print.c (dump_generic_node): For -gimple properly
4470 dump negative integer constants using _Literal (type) -num.
4471
4472 2019-03-13 Jakub Jelinek <jakub@redhat.com>
4473
4474 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
4475 nonlocal_value member.
4476
4477 PR middle-end/88588
4478 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
4479 (ipa_simd_modify_function_body): Handle PHIs.
4480
4481 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
4482
4483 * config/s390/s390.c (s390_option_override_internal): Use more
4484 aggressive inlining parameters.
4485
4486 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
4487
4488 * config/s390/3906.md: New file.
4489 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
4490 (LONGRUNNING_THRESHOLD): Remove.
4491 (MAX_SCHED_MIX_SCORE): Decrease.
4492 (MAX_SCHED_MIX_DISTANCE): Decrease.
4493 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
4494 (struct s390_sched_state): New struct to hold scheduling state.
4495 (S390_SCHED_STATE_NORMAL): Remove.
4496 (S390_SCHED_STATE_CRACKED): Remove.
4497 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
4498 (s390_get_sched_attrmask): Use new attribute.
4499 (s390_get_unit_mask): Use new units.
4500 (s390_is_fpd): New function.
4501 (s390_is_fxd): New function.
4502 (s390_is_longrunning): New function.
4503 (s390_sched_score): Use new functions.
4504 (s390_sched_reorder): Likewise.
4505 (s390_sched_variable_issue): Rework and use new functions.
4506 (s390_sched_init): Use new functions.
4507 * config/s390/s390.h (s390_tune_attr): Add z14.
4508 * config/s390/s390.md: Add z14.
4509
4510 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
4511
4512 * config/s390/2964.md: Update pipeline description.
4513 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
4514 (LONGRUNNING_THRESHOLD): Remove.
4515 (LATENCY_FACTOR): Remove.
4516 (s390_get_unit_mask): Add unit.
4517 (s390_sched_score): Use fxd/fpd.
4518 (s390_sched_variable_issue): Use fxd/fpd.
4519
4520 2019-03-12 Martin Liska <mliska@suse.cz>
4521
4522 * config/i386/i386.c: Reword an error message.
4523
4524 2019-03-12 Martin Jambor <mjambor@suse.cz>
4525
4526 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
4527 terminate with newline.
4528
4529 2019-03-12 Jakub Jelinek <jakub@redhat.com>
4530
4531 PR target/52726
4532 * config/s390/s390.md (tabort): Use %wd instead of
4533 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
4534 letters and periods.
4535 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
4536 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
4537 's with %< and %>.
4538
4539 PR middle-end/89663
4540 * builtins.c (expand_builtin_int_roundingfn,
4541 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
4542 gcc_unreachable if validate_arglist fails.
4543
4544 2019-03-12 Richard Biener <rguenther@suse.de>
4545
4546 PR tree-optimization/89664
4547 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
4548 free the occurance tree after the early out.
4549
4550 2019-03-11 Jakub Jelinek <jakub@redhat.com>
4551
4552 PR middle-end/89655
4553 PR bootstrap/89656
4554 * vr-values.c (vr_values::update_value_range): If
4555 old_vr->varying_p (), don't update it, make new_vr also VARYING
4556 and return false.
4557
4558 2019-03-11 Martin Liska <mliska@suse.cz>
4559
4560 * config/aarch64/aarch64.c (aarch64_override_options_internal):
4561 Fix double string quoting.
4562
4563 2019-03-11 Martin Liska <mliska@suse.cz>
4564
4565 * collect-utils.c (collect_wait): Wrap apostrophes
4566 in gcc internal format with %'.
4567 * collect2.c (main): Likewise.
4568 (scan_prog_file): Likewise.
4569 (scan_libraries): Likewise.
4570 * config/i386/i386.c (ix86_expand_call): Likewise.
4571 (ix86_handle_interrupt_attribute): Likewise.
4572 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
4573 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
4574 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
4575 * lto-wrapper.c (find_crtoffloadtable): Likewise.
4576 * symtab.c (symtab_node::verify_base): Likewise.
4577 * tree-cfg.c (verify_gimple_label): Likewise.
4578 * tree.c (verify_type_variant): Likewise.
4579
4580 2019-03-11 Martin Liska <mliska@suse.cz>
4581
4582 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
4583 in a string format message and fix GNU coding style.
4584 (expand_builtin_set_thread_pointer): Likewise.
4585 * common/config/aarch64/aarch64-common.c
4586 (aarch64_rewrite_selected_cpu): Likewise.
4587 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
4588 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
4589 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
4590 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
4591 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
4592 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
4593 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
4594 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
4595 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
4596 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
4597 Likewise.
4598 * common/config/riscv/riscv-common.c
4599 (riscv_subset_list::parsing_subset_version): Likewise.
4600 (riscv_subset_list::parse_std_ext): Likewise.
4601 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
4602 (riscv_subset_list::parse): Likewise.
4603 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
4604 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
4605 (aarch64_override_options_internal): Likewise.
4606 (aarch64_validate_mcpu): Likewise.
4607 (aarch64_validate_march): Likewise.
4608 (aarch64_validate_mtune): Likewise.
4609 (aarch64_override_options): Likewise.
4610 * config/alpha/alpha.c (alpha_option_override): Likewise.
4611 * config/arc/arc.c (arc_init): Likewise.
4612 (parse_mrgf_banked_regs_option): Likewise.
4613 (arc_override_options): Likewise.
4614 (arc_expand_builtin_aligned): Likewise.
4615 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
4616 (arm_expand_builtin): Likewise.
4617 * config/arm/arm.c (arm_option_check_internal): Likewise.
4618 (arm_configure_build_target): Likewise.
4619 (arm_option_override): Likewise.
4620 (arm_options_perform_arch_sanity_checks): Likewise.
4621 (arm_handle_cmse_nonsecure_entry): Likewise.
4622 (arm_handle_cmse_nonsecure_call): Likewise.
4623 (arm_tls_referenced_p): Likewise.
4624 (thumb1_expand_prologue): Likewise.
4625 * config/avr/avr.c (avr_option_override): Likewise.
4626 * config/bfin/bfin.c (bfin_option_override): Likewise.
4627 * config/c6x/c6x.c (c6x_option_override): Likewise.
4628 * config/cr16/cr16.c (cr16_override_options): Likewise.
4629 * config/cris/cris.c (cris_option_override): Likewise.
4630 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
4631 * config/darwin-c.c (macosx_version_as_macro): Likewise.
4632 * config/darwin.c (darwin_override_options): Likewise.
4633 * config/frv/frv.c (frv_expand_builtin): Likewise.
4634 * config/h8300/h8300.c (h8300_option_override): Likewise.
4635 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
4636 (ix86_option_override_internal): Likewise.
4637 (warn_once_call_ms2sysv_xlogues): Likewise.
4638 (ix86_expand_prologue): Likewise.
4639 (split_stack_prologue_scratch_regno): Likewise.
4640 (ix86_warn_parameter_passing_abi): Likewise.
4641 * config/ia64/ia64.c (fix_range): Likewise.
4642 * config/m68k/m68k.c (m68k_option_override): Likewise.
4643 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
4644 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
4645 (mips_set_compression_mode): Likewise.
4646 * config/mmix/mmix.c (mmix_option_override): Likewise.
4647 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
4648 * config/msp430/msp430.c (msp430_option_override): Likewise.
4649 * config/nds32/nds32.c (nds32_option_override): Likewise.
4650 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
4651 (nios2_option_override): Likewise.
4652 (nios2_expand_custom_builtin): Likewise.
4653 * config/nvptx/mkoffload.c (main): Likewise.
4654 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
4655 * config/pa/pa.c (fix_range): Likewise.
4656 (pa_option_override): Likewise.
4657 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
4658 (riscv_option_override): Likewise.
4659 * config/rl78/rl78.c (rl78_option_override): Likewise.
4660 * config/rs6000/aix61.h: Likewise.
4661 * config/rs6000/aix71.h: Likewise.
4662 * config/rs6000/aix72.h: Likewise.
4663 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
4664 * config/rs6000/freebsd64.h: Likewise.
4665 * config/rs6000/linux64.h: Likewise.
4666 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
4667 (rs6000_expand_zeroop_builtin): Likewise.
4668 (rs6000_expand_mtfsb_builtin): Likewise.
4669 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
4670 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
4671 (rs6000_invalid_builtin): Likewise.
4672 (rs6000_expand_split_stack_prologue): Likewise.
4673 * config/rs6000/rtems.h: Likewise.
4674 * config/rx/rx.c (valid_psw_flag): Likewise.
4675 (rx_expand_builtin): Likewise.
4676 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
4677 * config/s390/s390.c (s390_expand_builtin): Likewise.
4678 (s390_function_profiler): Likewise.
4679 (s390_option_override_internal): Likewise.
4680 (s390_option_override): Likewise.
4681 * config/sh/sh.c (sh_option_override): Likewise.
4682 (sh_builtin_saveregs): Likewise.
4683 (sh_fix_range): Likewise.
4684 * config/sh/vxworks.h: Likewise.
4685 * config/sparc/sparc.c (sparc_option_override): Likewise.
4686 * config/spu/spu.c (spu_option_override): Likewise.
4687 (fix_range): Likewise.
4688 * config/visium/visium.c (visium_option_override): Likewise.
4689 (visium_handle_interrupt_attr): Likewise.
4690 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
4691 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
4692 (dbg_cnt_process_opt): Likewise.
4693 * dwarf2out.c (output_dwarf_version): Likewise.
4694 * except.c (expand_eh_return): Likewise.
4695 * gcc.c (defined): Likewise.
4696 (driver_handle_option): Likewise.
4697 (process_command): Likewise.
4698 (compare_files): Likewise.
4699 (driver::prepare_infiles): Likewise.
4700 (driver::do_spec_on_infiles): Likewise.
4701 (driver::maybe_run_linker): Likewise.
4702 * omp-offload.c (oacc_parse_default_dims): Likewise.
4703 * opts-global.c (handle_common_deferred_options): Likewise.
4704 * opts.c (parse_sanitizer_options): Likewise.
4705 (common_handle_option): Likewise.
4706 (enable_warning_as_error): Likewise.
4707 * passes.c (enable_disable_pass): Likewise.
4708 * plugin.c (parse_plugin_arg_opt): Likewise.
4709 (default_plugin_dir_name): Likewise.
4710 * targhooks.c (default_expand_builtin_saveregs): Likewise.
4711 (default_pch_valid_p): Likewise.
4712 * toplev.c (init_asm_output): Likewise.
4713 (process_options): Likewise.
4714 (toplev::run_self_tests): Likewise.
4715 * tree-cfg.c (verify_gimple_call): Likewise.
4716 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
4717 (tree_inlinable_function_p): Likewise.
4718 * var-tracking.c (vt_find_locations): Likewise.
4719
4720 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
4721
4722 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
4723 only on the else branch.
4724
4725 2019-03-11 Martin Liska <mliska@suse.cz>
4726
4727 * gcov.c (output_intermediate_json_line): Print function
4728 name of each line.
4729 (output_json_intermediate_file): Add new argument.
4730 * doc/gcov.texi: Document the change.
4731
4732 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
4733
4734 PR rtl-optimization/89588
4735 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
4736 explicit unrolling factor more robust.
4737
4738 2019-03-11 Richard Biener <rguenther@suse.de>
4739
4740 PR tree-optimization/89649
4741 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
4742 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
4743 on the prolog and epilog loops.
4744 (vect_loop_versioning): Return copy of loop.
4745 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
4746 on the non-vectorized version of the loop.
4747
4748 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
4749
4750 PR target/68924
4751 * config/i386/sse.md (*vec_extractv2di_0_sse):
4752 Add (=r,x) alternative and corresponding splitter.
4753
4754 2019-03-10 Martin Jambor <mjambor@suse.cz>
4755
4756 PR tree-optimization/85762
4757 PR tree-optimization/87008
4758 PR tree-optimization/85459
4759 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
4760 it points to if there is a type changing MEM_REF. Adjust all callers.
4761 (build_accesses_from_assign): Disable total scalarization if
4762 contains_vce_or_bfcref_p returns true through the new parameter, for
4763 both rhs and lhs.
4764
4765 2019-03-09 Jakub Jelinek <jakub@redhat.com>
4766
4767 PR c/88568
4768 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
4769 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
4770
4771 PR target/79645
4772 * common.opt (fdiagnostics-show-labels,
4773 fdiagnostics-show-line-numbers, fdiagnostics-format=,
4774 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
4775 gas-locview-support, ginline-points, ginternal-reset-location-views):
4776 Terminate description text with a dot.
4777 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
4778 * config/mcore/mcore.opt (m210, m340): Likewise.
4779 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
4780 mnops=): Start description text with a capital letter.
4781 * config/arc/arc.opt (msize-level=): Likewise.
4782 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
4783 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
4784 mnewlib): Likewise.
4785 * config/ft32/ft32.opt (msim): Likewise.
4786 (mft32b, mcompress): Likewise. Terminate description text with a dot.
4787 (mnodiv, mnopm): Terminate description text with a dot.
4788 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
4789 a colon.
4790 * config/i386/i386.opt (prefer_vector_width, instrument_return):
4791 Likewise.
4792 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
4793 text.
4794
4795 PR rtl-optimization/89634
4796 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
4797 are modified in BB_END (e->src) instruction.
4798
4799 2019-03-08 David Malcolm <dmalcolm@redhat.com>
4800
4801 PR target/79926
4802 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
4803 messages more amenable to translation, and improve wording.
4804
4805 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
4806
4807 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
4808 ud- and du-chains between phases.
4809
4810 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
4811
4812 PR debug/89631
4813 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
4814 instead of POLY_INT_CST.
4815
4816 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
4817
4818 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
4819 requirement.
4820
4821 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
4822
4823 PR target/68924
4824 PR target/78782
4825 PR target/87558
4826 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
4827 (_mm_storeu_si64): Ditto.
4828
4829 2019-03-08 Martin Liska <mliska@suse.cz>
4830
4831 PR target/86952
4832 * config/i386/i386.c (ix86_option_override_internal): Disable
4833 jump tables when retpolines are used.
4834
4835 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
4836
4837 PR go/63560
4838 * ipa-split.c (execute_split_functions): Do not split
4839 'noinline' or 'section' function.
4840
4841 2019-03-08 Jakub Jelinek <jakub@redhat.com>
4842
4843 PR target/79846
4844 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
4845 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
4846 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
4847
4848 PR ipa/80000
4849 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
4850 from diagnostics. Formatting fixes.
4851
4852 PR target/85665
4853 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
4854 warn_odr diagnostics.
4855
4856 PR other/80058
4857 * lra-constraints.c (process_alt_operands): Avoid one space before
4858 " at the end of line and another after " on another line in a string
4859 literal.
4860 * attribs.c (handle_dll_attribute): Likewise.
4861 * config/avr/avr-devices.c (avr_texinfo): Likewise.
4862
4863 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
4864 warning_at or inform messages in G_() if there is no ?:.
4865
4866 PR tree-optimization/89550
4867 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
4868 returned true. Formatting fixes.
4869 (expand_builtin_strnlen): Formatting fixes.
4870 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
4871 if warning_at returned true.
4872 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
4873
4874 2019-03-08 Richard Biener <rguenther@suse.de>
4875
4876 PR middle-end/89578
4877 * cfgloop.h (struct loop): Add owned_clique field.
4878 * cfgloopmanip.c (copy_loop_info): Copy it.
4879 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
4880 cliques.
4881 * tree-inline.c (copy_loops): Remap owned_clique.
4882 * lto-streamer-in.c (input_cfg): Stream owned_clique.
4883 * lto-streamer-out.c (output_cfg): Likewise.
4884
4885 2019-03-08 Jakub Jelinek <jakub@redhat.com>
4886
4887 PR target/80190
4888 * config/darwin.c: Include intl.h.
4889 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
4890 composing the message out of two separate parts.
4891
4892 2019-03-07 Jakub Jelinek <jakub@redhat.com>
4893
4894 PR target/80003
4895 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
4896 doesn't start with a capital letter and doesn't end with a dot.
4897 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
4898 with a capital letter.
4899 (ix86_mangle_function_version_assembler_name): Likewise.
4900 (ix86_generate_version_dispatcher_body): Likewise.
4901 (fold_builtin_cpu): Likewise.
4902 (get_builtin_code_for_version): Likewise. Remove extraneous space.
4903 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
4904 translators, wrap full type name in %qs.
4905
4906 PR translation/79999
4907 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
4908 depend clause with source (or sink) modifier.
4909 * omp-expand.c (expand_omp_ordered_sink): Likewise.
4910
4911 PR target/89602
4912 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
4913 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
4914 (avx512f_load<mode>_mask): New define_expand.
4915 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
4916 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
4917 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
4918 __builtin_ia32_movess_mask): New builtins.
4919 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
4920 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
4921 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
4922 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
4923
4924 2019-03-07 Martin Jambor <mjambor@suse.cz>
4925
4926 PR lto/87525
4927 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
4928 for extern inline functions.
4929
4930 2019-03-07 Martin Jambor <mjambor@suse.cz>
4931
4932 PR ipa/88235
4933 * cgraph.h (cgraph_node): New inline method former_thunk_p.
4934 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
4935 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
4936 have multiple callees. At the end check if declarations match as
4937 opposed to cgraph_nodes.
4938
4939 2019-03-07 Martin Liska <mliska@suse.cz>
4940
4941 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
4942 which is equivalent to searching for this in clones chain.
4943 * symtab.c (symtab_node::verify_base): Similarly compare ASM
4944 names with a neighbour and special case first node in a chain.
4945
4946 2019-01-25 Jason Merrill <jason@redhat.com>
4947
4948 PR c++/80916 - spurious "static but not defined" warning.
4949 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
4950 for an internal symbol with DECL_EXTERNAL.
4951
4952 2019-04-07 Richard Biener <rguenther@suse.de>
4953
4954 PR middle-end/89618
4955 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
4956 * tree-inline.c (copy_loops): Simplify.
4957
4958 2019-03-07 Martin Liska <mliska@suse.cz>
4959
4960 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
4961
4962 2019-03-07 Richard Biener <rguenther@suse.de>
4963
4964 PR tree-optimization/89595
4965 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
4966 stmt iterator as reference, take boolean output parameter to
4967 indicate whether the stmt was removed and thus the iterator
4968 already advanced.
4969 (dom_opt_dom_walker::before_dom_children): Re-iterate over
4970 stmts created by folding.
4971
4972 2019-03-07 Jakub Jelinek <jakub@redhat.com>
4973
4974 PR c++/89585
4975 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
4976 at toplevel.
4977
4978 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
4979
4980 PR rtl-optimization/88845
4981 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
4982 LRA.
4983 * lra.c (remove_scratches_1): New function.
4984 (remove_scratches): Use it.
4985 (lra_emit_move): Likewise.
4986
4987 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
4988
4989 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
4990 unaligned_access variable.
4991 * config/arc/arc.c (arc_override_options): Set unaligned access
4992 default on for HS CPUs.
4993 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
4994
4995 2019-03-06 Martin Liska <mliska@suse.cz>
4996
4997 PR gcov-profile/89577
4998 * doc/gcov.texi: Prefer to use --coverage.
4999 * doc/sourcebuild.texi: Likewise.
5000
5001 2019-03-02 Jason Merrill <jason@redhat.com>
5002
5003 PR c++/86485 - -Wmaybe-unused with empty class ?:
5004 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
5005
5006 2019-03-05 Jakub Jelinek <jakub@redhat.com>
5007
5008 PR target/89587
5009 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
5010 if_multiarch.
5011
5012 PR middle-end/89590
5013 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
5014 exactly one argument.
5015
5016 2019-03-05 Jakub Jelinek <jakub@redhat.com>
5017 Richard Sandiford <richard.sandiford@arm.com>
5018
5019 PR tree-optimization/89570
5020 * match.pd (vec_cond into cond_op simplification): Don't use
5021 get_conditional_internal_fn, use as_internal_fn (cond_op).
5022
5023 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
5024
5025 PR target/89222
5026 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
5027 to decide when to split off a non-zero offset from a symbol.
5028 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
5029 in function symbols.
5030
5031 2019-03-05 Richard Biener <rguenther@suse.de>
5032
5033 PR tree-optimization/89594
5034 * tree-if-conv.c (pass_if_conversion::execute): Handle
5035 case where .LOOP_VECTORIZED_FUNCTION was removed.
5036
5037 2019-03-05 Jakub Jelinek <jakub@redhat.com>
5038
5039 PR bootstrap/89560
5040 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
5041 instead alloca it only when needed with the needed size.
5042
5043 PR tree-optimization/89570
5044 * match.pd (vec_cond into cond_op simplification): Guard with
5045 vectorized_internal_fn_supported_p test and #if GIMPLE.
5046
5047 PR tree-optimization/89566
5048 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
5049 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
5050 Punt if get_user_idx_format succeeds, but idx_format argument is
5051 not provided or doesn't have pointer type, or if idx_args is above
5052 number of provided arguments.
5053
5054 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
5055
5056 PR tree-optimization/89437
5057 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
5058
5059 2019-03-04 Richard Biener <rguenther@suse.de>
5060
5061 PR middle-end/89572
5062 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
5063 safe_dyn_cast.
5064
5065 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
5066
5067 PR tree-optimization/89487
5068 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
5069 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
5070 (distribute_loop): Don't do runtime alias check if there is non-
5071 addressable data reference.
5072 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
5073 is a register variable.
5074
5075 2019-03-02 Jakub Jelinek <jakub@redhat.com>
5076
5077 PR target/89506
5078 * config/arm/arm.md (cmpsi2_addneg): Use
5079 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
5080 If operands[2] is 0 or INT_MIN, force use of subs.
5081 (*compare_scc splitter): Use gen_int_mode.
5082 (*negscc): Likewise.
5083 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
5084
5085 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
5086 Monk Chiang <sh.chiang04@gmail.com>
5087
5088 * common/config/riscv/riscv-common.c: Include sstream.
5089 (riscv_subset_list::to_string): New.
5090 (riscv_arch_str): Likewise.
5091 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
5092 * config.in: Regen.
5093 * config/riscv/riscv-protos.h (riscv_arch_str): New.
5094 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
5095 (riscv_emit_attribute): New.
5096 (riscv_file_start): Emit attribute if needed.
5097 (riscv_option_override): Init riscv_emit_attribute_p.
5098 * config/riscv/riscv.opt (mriscv-attribute): New option.
5099 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
5100 * configure: Regen.
5101 * doc/install.texi: Document --with-riscv-attribute.
5102 * doc/invoke.texi: Document -mriscv-attribute.
5103
5104 * common/config/riscv/riscv-common.c:
5105 Include config/riscv/riscv-protos.h.
5106 (INCLUDE_STRING): Defined.
5107 (RISCV_DONT_CARE_VERSION): Defined.
5108 (riscv_subset_t): Declare.
5109 (riscv_subset_t::riscv_subset_t): New.
5110 (riscv_subset_list): Declare.
5111 (riscv_subset_list::riscv_subset_list): New.
5112 (riscv_subset_list::~riscv_subset_list): Likewise.
5113 (riscv_subset_list::parsing_subset_version): Likewise.
5114 (riscv_subset_list::parse_std_ext): Likewise.
5115 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
5116 (riscv_subset_list::add): Likewise.
5117 (riscv_subset_list::lookup): Likewise.
5118 (riscv_subset_list::xlen): Likewise.
5119 (riscv_subset_list::parse): Likewise.
5120 (riscv_supported_std_ext): Likewise.
5121 (current_subset_list): Likewise.
5122 (riscv_parse_arch_string): Using riscv_subset_list::parse to
5123 parse.
5124
5125 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
5126
5127 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
5128 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
5129 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
5130
5131 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
5132
5133 PR rtl-optimization/85899
5134 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
5135 fallthru edges leading to the exit block.
5136
5137 2019-03-01 Tamar Christina <tamar.christina@arm.com>
5138
5139 PR target/89517
5140 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
5141 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
5142
5143 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
5144
5145 PR tree-optimization/89535
5146 * tree-vect-stmts.c (vectorizable_call): Record the vector types
5147 for each operand. Calculate the fallback choice for mask operands
5148 and pass it to vect_get_vec_def_for_operand.
5149
5150 2019-03-01 Richard Biener <rguenther@suse.de>
5151
5152 PR middle-end/89541
5153 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
5154 get virtual operands.
5155 (get_expr_operands): Handle CONST_DECL like other decls.
5156
5157 2019-03-01 Jakub Jelinek <jakub@redhat.com>
5158
5159 PR middle-end/89503
5160 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
5161 on DECL_P and EXPR_P.
5162
5163 2019-03-01 Richard Biener <rguenther@suse.de>
5164
5165 PR middle-end/89497
5166 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
5167 argument, defaulted to zero.
5168 * passes.c (execute_function_todo): Pass down SSA update flags
5169 to cleanup_tree_cfg.
5170 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
5171 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
5172 form if requested.
5173 (cleanup_tree_cfg): Get and pass down SSA update flags.
5174
5175 2019-03-01 Jakub Jelinek <jakub@redhat.com>
5176
5177 PR bootstrap/89539
5178 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
5179 early_lto_debug argument.
5180
5181 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
5182
5183 PR tree-optimization/89536
5184 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
5185 only whether bit #0 of the value is 0 instead of the entire value.
5186
5187 2019-02-28 Marek Polacek <polacek@redhat.com>
5188
5189 PR c++/87068 - missing diagnostic with fallthrough statement.
5190 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
5191 at the end of a seq, save its location to walk_stmt_info.
5192 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
5193 a switch.
5194
5195 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
5196
5197 PR lto/88585
5198 * tree.c (find_atomic_core_type): Move ahead in file.
5199 (check_base_type): Correctly compare alignments of atomic types.
5200
5201 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
5202
5203 PR target/89455
5204 * config/i386/i386.c (get_builtin_code_for_version): Identify
5205 Westmere from PCLMUL, instead of AES.
5206
5207 2019-02-28 Jakub Jelinek <jakub@redhat.com>
5208
5209 PR target/89434
5210 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
5211 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
5212 -UINTVAL (...).
5213
5214 2019-02-28 Tamar Christina <tamar.christina@arm.com>
5215
5216 PR target/88530
5217 * config/aarch64/aarch64-option-extensions.def: Document it.
5218 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
5219 if empty hwcaps.
5220
5221 2019-02-28 Jakub Jelinek <jakub@redhat.com>
5222
5223 PR c/89520
5224 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
5225 builtins if they don't have a single scalar floating point argument.
5226 Formatting fixes.
5227
5228 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
5229
5230 PR rtl-optimization/89490
5231 * varasm.c (get_block_for_section): Bail out for mergeable sections.
5232 (default_use_anchors_for_symbol_p, output_object_block): Assert the
5233 block section is not mergeable.
5234
5235 2019-02-27 Jakub Jelinek <jakub@redhat.com>
5236
5237 PR target/70341
5238 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
5239 old define_insn to ...
5240 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
5241 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
5242 Rename old define_insn to ...
5243 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
5244 (thumb2_casesi_internal_pic): New define_expand. Rename old
5245 define_insn to ...
5246 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
5247 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
5248 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
5249
5250 2019-02-27 Richard Biener <rguenther@suse.de>
5251
5252 PR debug/88878
5253 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
5254
5255 2019-02-27 Richard Biener <rguenther@suse.de>
5256
5257 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
5258 building.
5259
5260 2019-02-27 Richard Biener <rguenther@suse.de>
5261
5262 PR debug/88878
5263 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
5264 parameter, prefix section name with .gnu.debuglto_ if true.
5265 (dwarf2out_finish): Pass false to output_comdat_type_unit.
5266 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
5267
5268 2019-02-27 Richard Biener <rguenther@suse.de>
5269
5270 PR debug/89514
5271 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
5272 rather than on use_debug_types, doing what output_die does.
5273 (value_format): Likewise.
5274
5275 2019-02-27 Martin Jambor <mjambor@suse.cz>
5276 Martin Sebor <msebor@redhat.com>
5277
5278 * doc/invoke.texi (Warning Options): Reword description of
5279 -Wno-absolute-value.
5280
5281 2019-02-27 Jakub Jelinek <jakub@redhat.com>
5282
5283 PR tree-optimization/89280
5284 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
5285 builtin_setjmp_setup_bb): New functions.
5286 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
5287 When visiting __builtin_setjmp_setup block, queue in special
5288 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
5289 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
5290 from visited after the loop if they don't have any visited successor
5291 blocks.
5292
5293 2018-02-26 Steve Ellcey <sellcey@marvell.com>
5294
5295 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
5296 New function.
5297 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
5298
5299 2019-02-26 Jakub Jelinek <jakub@redhat.com>
5300
5301 PR c++/89507
5302 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
5303 with types other than sizetype/ssizetype.
5304
5305 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
5306
5307 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
5308 (enum sparc_processor_type): ...this.
5309 (enum sparc_code_model_type): New enumeration type.
5310 (enum sparc_memory_model_type): Tweak comments.
5311 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
5312 (mtune): Likewise.
5313 (mcmodel): Use sparc_code_model enumeration and variable.
5314 (sparc_code_model): New enumeration.
5315 (mdebug): Add Undocumented marker.
5316 * config/sparc/sparc.h (enum cmodel): Delete.
5317 (sparc_cmodel): Likewise.
5318 (TARGET_CM_MEDLOW): Adjust to above renaming.
5319 (TARGET_CM_MEDMID): Likewise.
5320 (TARGET_CM_MEDANY): Likewise.
5321 (TARGET_CM_EMBMEDANY): Likewise.
5322 * config/sparc/sparc.c (sparc_cmodel): Delete.
5323 (sparc_option_override): Remove string/value mapping support for the
5324 code model. Move code and memory model support to after the handling
5325 of target flags. Do private machine setup last.
5326 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
5327 (sparc_legitimize_reload_address): Likewise.
5328 (sparc_output_mi_thunk): Likewise.
5329 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
5330
5331 2019-02-26 Jakub Jelinek <jakub@redhat.com>
5332
5333 PR tree-optimization/89500
5334 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
5335 (handle_builtin_strlen): Remove noncst_bound variable. Always
5336 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
5337 cst if the first cst bytes starting at x are known to be non-zero,
5338 even if the string is not zero terminated. Don't try to modify
5339 *si for strnlen. Update strlen_to_stridx only for strlen or if
5340 we can prove strnlen returns the same value as strlen would.
5341
5342 2019-02-26 Martin Liska <mliska@suse.cz>
5343
5344 * alloc-pool.h (struct pool_usage): Remove extra
5345 print_dash_line.
5346 * bitmap.h (struct bitmap_usage): Likewise.
5347 * ggc-common.c (struct ggc_usage): Likewise.
5348 * mem-stats.h (struct mem_usage): Likewise.
5349 (mem_alloc_description::dump): Print dash lines
5350 here and repeat header at the end of a table report.
5351 It's then more readable.
5352 * tree-phinodes.c (phinodes_print_statistics): Make
5353 horizontal alignment.
5354 * tree-ssanames.c (ssanames_print_statistics): Likewise.
5355 * vec.c (struct vec_usage): Remove extra print_dash_line.
5356 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
5357
5358 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
5359
5360 * doc/extend.texi (__builtin_object_size):
5361 Use @pxref instead of @xref inside parenthesis.
5362 (__builtin_has_attribute): Add missing comma after @xref.
5363 (__builtin_object_size): Ditto.
5364 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
5365 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
5366 in the list.
5367
5368 2019-02-26 Jeff Law <law@redhat.com>
5369
5370 PR rtl-optimization/87761
5371 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
5372 detect obviously dead insns and delete them.
5373
5374 2019-02-26 Richard Biener <rguenther@suse.de>
5375
5376 PR tree-optimization/89505
5377 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
5378 to handle restrict pointed-to vars with multiple subvars
5379 correctly.
5380
5381 2019-02-26 Richard Biener <rguenther@suse.de>
5382
5383 PR tree-optimization/89489
5384 * tree-parloops.c (create_loop_fn): Copy over last_clique.
5385
5386 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
5387
5388 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
5389 and move around comment.
5390 <BIT_AND_EXPR>: Likewise.
5391 <BIT_NOT_EXPR>: Add specific handling for boolean types.
5392
5393 2019-02-26 Jakub Jelinek <jakub@redhat.com>
5394
5395 PR target/89474
5396 * config/i386/i386.c (remove_partial_avx_dependency): Call
5397 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
5398 after changing possibly many instructions to use that pseudo. Fix up
5399 insertion of v4sf_const0 setter at the start of bb.
5400
5401 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
5402
5403 PR c/80409
5404 * doc/extend.texi (Variadic Pointer Args): New section.
5405
5406 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
5407 Martin Sebor <msebor@gmail.com>
5408
5409 * common.opt (Wattribute-alias): Likewise.
5410 * doc/invoke.texi (Option Summary): List general form of
5411 -Wattribute-alias=. List positive form of -Wmissing-attributes.
5412 (-Wmissing-attributes): Invert entry, rewrite and correct default.
5413 Add cross-references.
5414 (-Wattribute-alias): Rewrite and correct default. Mention
5415 considered attributes (same as for -Wmissing-attributes).
5416
5417 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
5418
5419 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
5420 (_mm_cvtpd_ps): Likewise.
5421 (_mm_cvttpd_epi32): Likewise.
5422
5423 PR target/89338
5424 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
5425 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
5426
5427 PR target/89339
5428 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
5429
5430 2019-02-25 Tamar Christina <tamar.christina@arm.com>
5431
5432 PR target/88530
5433 * common/config/aarch64/aarch64-common.c
5434 (struct aarch64_option_extension): Add is_synthetic.
5435 (all_extensions): Use it.
5436 (TARGET_OPTION_INIT_STRUCT): Define hook.
5437 (struct gcc_targetm_common): Moved to end.
5438 (all_extensions_by_on): New.
5439 (opt_ext_cmp, typedef opt_ext): New.
5440 (aarch64_option_init_struct): New.
5441 (aarch64_contains_opt): New.
5442 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
5443 * config/aarch64/aarch64-option-extensions.def
5444 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
5445 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
5446 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
5447 Set is_synthetic to false.
5448 (crypto): Set is_synthetic to true.
5449 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
5450 SYNTHETIC.
5451
5452 2019-02-25 Tamar Christina <tamar.christina@arm.com>
5453
5454 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
5455 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
5456 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
5457 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
5458 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
5459 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
5460 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
5461 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
5462 Rename ...
5463 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
5464 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
5465 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
5466 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
5467 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
5468 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
5469 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
5470 vfmlsl_laneq_high_f16): ... To this.
5471 * config/arm/neon.md: Update comments.
5472
5473 2019-02-25 Tamar Christina <tamar.christina@arm.com>
5474
5475 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
5476 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
5477 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
5478 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
5479 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
5480 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
5481 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
5482 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
5483 Rename ...
5484 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
5485 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
5486 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
5487 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
5488 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
5489 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
5490 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
5491 vfmlslq_laneq_high_f16): ... To this.
5492
5493 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
5494
5495 PR rtl-optimization/86096
5496 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
5497 comparing mw_order values.
5498
5499 2019-02-25 Jakub Jelinek <jakub@redhat.com>
5500
5501 PR target/89434
5502 * config/arm/arm.md (*subsi3_carryin_const): Use
5503 arm_neg_immediate_operand predicate instead of
5504 arm_not_immediate_operand, "L" constraint instead of "K" and
5505 print it using %n2 instead of %B2.
5506 (*subsi3_carryin_const0): New define_insn.
5507 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
5508 instead of arm_not_operand and "I" constraint instead of "K" and
5509 print it using %n3 instead of %B2. Instead of using match_dup 2 add
5510 another match_operand and in the condition check that it is negation
5511 of operands[2].
5512 (*subsi3_carryin_compare_const0): New define_ins.
5513 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
5514 *subsi3_carryin_const.
5515 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
5516 split into *subsi3_carryin_compare_const0 if the highpart is zero.
5517
5518 PR target/89438
5519 * config/arm.vfp.md (*negdf2_vfp): Use
5520 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
5521 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
5522
5523 2019-02-24 Jakub Jelinek <jakub@redhat.com>
5524
5525 PR rtl-optimization/89445
5526 * simplify-rtx.c (simplify_ternary_operation): Don't use
5527 simplify_merge_mask on operands that may trap.
5528 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
5529 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
5530 second operand is CONST_VECTOR, check if any element could be zero.
5531 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
5532 their operands can trap.
5533
5534 2019-02-23 Martin Sebor <msebor@redhat.com>
5535
5536 * gimple-ssa-sprintf.c (target_strtol): Rename...
5537 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
5538 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
5539 check for range error.
5540
5541 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
5542
5543 PR driver/69471
5544 * opts-common.c (prune_options): Also prune joined switches
5545 with Negative and RejectNegative.
5546 * config/i386/i386.opt (march=): Add Negative(march=).
5547 (mtune=): Add Negative(mtune=).
5548 * doc/options.texi: Document Negative used together with Joined
5549 and RejectNegative.
5550
5551 2019-02-22 Martin Sebor <msebor@redhat.com>
5552
5553 * doc/extend.texi (Other Builtins): Add
5554 __builtin_is_constant_evaluated.
5555
5556 2019-02-22 Richard Biener <rguenther@suse.de>
5557
5558 PR tree-optimization/87609
5559 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
5560
5561 2019-02-22 Jeff Law <law@redhat.com>
5562
5563 PR rtl-optimization/87761
5564 * config/mips/mips.md: Add new combiner pattern to recognize
5565 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
5566
5567 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
5568
5569 PR target/89324
5570 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
5571 destination register in peepholes generating patterns for ADDS/SUBS.
5572 (add<mode>3_compare0,
5573 *addsi3_compare0_uxtw, add<mode>3_compareC,
5574 add<mode>3_compareV_imm, add<mode>3_compareV,
5575 *adds_<optab><ALLX:mode>_<GPI:mode>,
5576 *subs_<optab><ALLX:mode>_<GPI:mode>,
5577 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
5578 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
5579 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
5580 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
5581 sub<mode>3_compare1): Allow stack pointer for source register.
5582 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
5583
5584 2019-02-22 Martin Sebor <msebor@redhat.com>
5585
5586 PR tree-optimization/88993
5587 PR tree-optimization/88853
5588 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
5589 New helper.
5590 (sprintf_dom_walker::call_info::is_string_func): New helper.
5591 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
5592 for formatted string functions.
5593 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
5594
5595 2019-02-22 Martin Sebor <msebor@redhat.com>
5596
5597 PR c/89425
5598 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
5599 unreachable subexpressions.
5600
5601 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
5602 Hongtao Liu <hongtao.liu@intel.com>
5603 Sunil K Pandey <sunil.k.pandey@intel.com>
5604
5605 PR target/87007
5606 * config/i386/i386-passes.def: Add
5607 pass_remove_partial_avx_dependency.
5608 * config/i386/i386-protos.h
5609 (make_pass_remove_partial_avx_dependency): New.
5610 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
5611 New function.
5612 (pass_data_remove_partial_avx_dependency): New.
5613 (pass_remove_partial_avx_dependency): Likewise.
5614 (make_pass_remove_partial_avx_dependency): Likewise.
5615 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
5616 (*extendsfdf2): Add avx_partial_xmm_update.
5617 (truncdfsf2): Likewise.
5618 (*float<SWI48:mode><MODEF:mode>2): Likewise.
5619 (SF/DF conversion splitters): Disabled for TARGET_AVX.
5620
5621 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
5622
5623 PR middle-end/85598
5624 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
5625 analysis for pass.
5626
5627 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
5628
5629 PR target/89444
5630 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
5631 (PTA_SKYLAKE): Add PTA_AES.
5632 (PTA_GOLDMONT): Likewise.
5633
5634 2019-02-22 Sudakshina Das <sudi.das@arm.com>
5635
5636 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
5637 instruction if enabled.
5638 (aarch64_override_options): Remove reference to return address key.
5639
5640 2019-02-22 Richard Biener <rguenther@suse.de>
5641
5642 PR tree-optimization/89440
5643 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
5644 not necessary assert.
5645
5646 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
5647
5648 PR fortran/72741
5649 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
5650 (oacc_replace_fn_attrib_attr): ... this new function.
5651 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
5652 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
5653
5654 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5655
5656 * config/arm/arm-cpus.in (ares): Rename to...
5657 (neoverse-n1): ... This. Add ares as alias.
5658 * config/arm/arm-tables.opt: Regenerate.
5659 * config/arm/arm-tune.md: Likewise.
5660 * doc/invoke.txt (ARM Options): Document neoverse-n1.
5661
5662 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5663
5664 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
5665 * config/aarch64/aarch64-tune.md: Regenerate.
5666 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
5667
5668 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
5669
5670 * config/aarch64/aarch64.c (ares_tunings): Rename to...
5671 (neoversen1_tunings): ... This.
5672 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
5673 (neoverse-n1): New CPU.
5674 * config/aarch64/aarch64-tune.md: Regenerate.
5675 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
5676
5677 2019-02-22 Richard Biener <rguenther@suse.de>
5678
5679 PR middle-end/87609
5680 * cfghooks.h (dependence_hash): New typedef.
5681 (struct copy_bb_data): New type.
5682 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
5683 (duplicate_block): Likewise.
5684 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
5685 (copy_bbs): Create and pass down copy_bb_data.
5686 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
5687 (rtl_duplicate_bb): Likewise.
5688 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
5689 remap dependence info.
5690
5691 2019-02-22 Richard Biener <rguenther@suse.de>
5692
5693 PR tree-optimization/87609
5694 * tree-core.h (tree_base): Document special clique values.
5695 * tree-inline.c (remap_dependence_clique): Do not use the
5696 special clique value of one.
5697 (maybe_set_dependence_info): Use clique one.
5698 (clear_dependence_clique): New callback.
5699 (compute_dependence_clique): Clear clique one from all refs
5700 before assigning it (again).
5701
5702 2019-02-21 Martin Sebor <msebor@redhat.com>
5703
5704 * doc/extend.texi (__clear_cache): Correct signature.
5705
5706 2019-02-21 Ian Lance Taylor <iant@golang.org>
5707
5708 PR go/89170
5709 * varasm.c (decode_addr_const): Call lookup_constant_def rather
5710 than output_constant_def.
5711 (add_constant_to_table): New static function.
5712 (output_constant_def): Call add_constant_to_table.
5713 (tree_output_constant_def): Likewise.
5714
5715 2019-02-21 Jakub Jelinek <jakub@redhat.com>
5716
5717 PR c++/89285
5718 * builtins.c (fold_builtin_arith_overflow): If first two args are
5719 INTEGER_CSTs, set intres and ovfres to constants rather than calls
5720 to ifn.
5721
5722 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
5723
5724 PR target/87412
5725 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
5726 error for -mindirect-branch/-mfunction-return with incompatible
5727 -fcf-protection.
5728
5729 2019-02-21 Jakub Jelinek <jakub@redhat.com>
5730
5731 PR bootstrap/88714
5732 * constraints.md (q): Remove.
5733 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
5734 instead of q.
5735
5736 2019-02-21 Martin Jambor <mjambor@suse.cz>
5737
5738 PR hsa/89302
5739 * omp-general.c (omp_extract_for_data): Removed a duplicate call
5740 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
5741 (omp_adjust_for_condition): ...here. Added necessary parameters.
5742 * omp-general.h (omp_adjust_for_condition): Updated declaration.
5743 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
5744 proper values to new parameters of omp_adjust_for_condition.
5745
5746 2019-02-20 Jakub Jelinek <jakub@redhat.com>
5747
5748 PR middle-end/89412
5749 * expr.c (expand_assignment): If result is a MEM, use change_address
5750 instead of simplify_gen_subreg.
5751
5752 2019-02-20 Jakub Jelinek <jakub@redhat.com>
5753 David Malcolm <dmalcolm@redhat.com>
5754
5755 PR middle-end/89091
5756 * fold-const.c (decode_field_reference): Return NULL_TREE if
5757 lang_hooks.types.type_for_size returns NULL. Check it before
5758 overwriting *exp_. Use return NULL_TREE instead of return 0.
5759
5760 2019-02-20 Jakub Jelinek <jakub@redhat.com>
5761
5762 PR middle-end/88074
5763 PR middle-end/89415
5764 * toplev.c (do_compile): Double the emin/emax exponents to workaround
5765 buggy mpc_norm.
5766
5767 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
5768
5769 PR target/89397
5770 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
5771 TARGET_SSE in addition to TARGET_SSE_MATH.
5772
5773 (ix86_excess_precision): Ditto.
5774 (ix86_float_exceptions_rounding_supported_p): Ditto.
5775 (use_rsqrt_p): Ditto.
5776 * config/i386/sse.md (rsqrt<mode>2): Ditto.
5777
5778 2019-02-20 David Malcolm <dmalcolm@redhat.com>
5779
5780 PR c/89410
5781 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
5782 linenum_arith_t when determining if two adjacent line spans are
5783 close enough to merge.
5784 (diagnostic_show_locus): Use linenum_arith_t when iterating over
5785 lines within each line_span.
5786
5787 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
5788
5789 PR target/86487
5790 * lra-constraints.c(uses_hard_regs_p): Fix handling of
5791 paradoxical SUBREGS.
5792
5793 2019-02-20 Li Jia He <helijia@linux.ibm.com>
5794
5795 PR target/88100
5796 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
5797 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
5798 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
5799 range checking it.
5800
5801 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
5802
5803 * config/gcn/gcn.c (print_operand): Fix typo.
5804
5805 2019-02-19 Richard Biener <rguenther@suse.de>
5806
5807 PR middle-end/88074
5808 * toplev.c (do_compile): Initialize mpfr's exponent range
5809 based on available float modes.
5810
5811 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
5812
5813 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
5814 as long as the epilogue isn't completed.
5815
5816 2019-02-18 Martin Sebor <msebor@redhat.com>
5817
5818 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
5819 __has_cpp_attribute, and __has_include.
5820
5821 2019-02-18 Martin Sebor <msebor@redhat.com>
5822
5823 * doc/invoke.texi (-Wreturn-type): Correct and expand.
5824
5825 2019-02-18 Martin Sebor <msebor@redhat.com>
5826
5827 PR middle-end/89294
5828 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
5829 expression.
5830 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
5831
5832 2019-02-18 Richard Biener <rguenther@suse.de>
5833
5834 PR tree-optimization/89296
5835 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
5836 of no-warning flag to cases that might emit the bogus warning.
5837
5838 2019-02-18 Jakub Jelinek <jakub@redhat.com>
5839
5840 PR bootstrap/88714
5841 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
5842 "q" constraint.
5843 * config/arm/vfp.md (*movdi_vfp): Likewise.
5844 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
5845 "q" constraint for operands[0].
5846
5847 PR target/89369
5848 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
5849 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
5850 pattern in a temporary buffer.
5851 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
5852 than 64-operands[2].
5853
5854 PR target/89361
5855 * config/s390/s390.c (s390_indirect_branch_attrvalue,
5856 s390_indirect_branch_settings): Define unconditionally.
5857 (s390_set_current_function): Likewise, but guard the whole body except
5858 the s390_indirect_branch_settings call with
5859 #if S390_USE_TARGET_ATTRIBUTE.
5860 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
5861
5862 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
5863 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
5864 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
5865 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
5866 HOST_WIDE_INT_1U instead of 1ULL.
5867 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
5868 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
5869 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
5870 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
5871 instead of 1UL.
5872 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
5873 instead of 1ul.
5874
5875 2019-02-18 Martin Jambor <mjambor@suse.cz>
5876
5877 PR tree-optimization/89209
5878 * tree-sra.c (create_access_replacement): New optional parameter
5879 reg_tree. Use it as a type if non-NULL and access type is not of
5880 a register type.
5881 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
5882 to create_access_replacement.
5883 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
5884 Check lacc is non-NULL before attempting to re-create it on the RHS.
5885
5886 2019-02-18 Martin Liska <mliska@suse.cz>
5887
5888 PR ipa/89306
5889 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
5890 by default.
5891 (symbol_table::free_edge): Recycle m_summary_id.
5892 * cgraph.h (get_summary_id): New.
5893 (symbol_table::release_symbol): Set m_summary_id to -1
5894 by default.
5895 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
5896 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
5897 function_summary to fast_function_summary.
5898 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
5899 * ipa-pure-const.c (class funct_state_summary_t):
5900 Switch from function_summary to fast_function_summary.
5901 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
5902 (class ipa_ref_opt_summary_t): Switch from function_summary
5903 to fast_function_summary.
5904 * symbol-summary.h (class function_summary_base): New class
5905 that is created from base of former function_summary.
5906 (function_summary_base::unregister_hooks): New.
5907 (class function_summary): Inherit from function_summary_base.
5908 (class call_summary_base): New class
5909 that is created from base of former call_summary.
5910 (class call_summary): Inherit from call_summary_base.
5911 (struct is_same): New.
5912 (class fast_function_summary): New summary class.
5913 (class fast_call_summary): New summary class.
5914 * vec.h (vec_safe_grow_cleared): New function.
5915
5916 2019-02-18 Martin Liska <mliska@suse.cz>
5917
5918 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
5919 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
5920 * doc/tm.texi: Document new target hook.
5921 * doc/tm.texi.in: Likewise.
5922 * target.def: Add new target macro.
5923 * gcc.c (find_fortran_preinclude_file): Do not search multilib
5924 suffixes.
5925
5926 2019-02-17 Alan Modra <amodra@gmail.com>
5927
5928 PR target/89271
5929 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
5930 output reg on add insn.
5931 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
5932
5933 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
5934
5935 PR target/89372
5936 * config/i386/sse.md (ssedoublemode): Remove V4HI.
5937 (PMULHRSW): Likewise.
5938 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
5939 TARGET_AVX2.
5940 (ssse3_pmulhrswv4hi3): New expander.
5941
5942 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
5943
5944 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
5945 MMX. Add isa attribute.
5946
5947 2019-02-16 Jakub Jelinek <jakub@redhat.com>
5948
5949 PR rtl-optimization/66152
5950 * builtins.h (c_readstr): Declare.
5951 * builtins.c (c_readstr): Remove forward declaration. Add
5952 null_terminated_p argument, if false, read all bytes from the
5953 string instead of stopping after '\0'.
5954 * expr.c (string_cst_read_str): New function.
5955 (store_expr): Use string_cst_read_str instead of
5956 builtin_strncpy_read_str. Try to store by pieces the whole
5957 exp_len first, and only if that fails, split it up into
5958 store by pieces followed by clear_storage. Formatting fix.
5959
5960 * config/i386/i386.md (*movqi_internal): Remove static from
5961 buf variable. Use output_asm_insn (buf, operands); return "";
5962 instead of return buf;.
5963 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
5964 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
5965 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
5966
5967 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
5968
5969 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
5970 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
5971 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
5972 (CC1_SPEC): Likewise.
5973 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
5974
5975 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
5976
5977 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
5978 the base address on 64-bit strict-alignment platforms.
5979
5980 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
5981
5982 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
5983
5984 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
5985
5986 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
5987
5988 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
5989
5990 PR rtl-optimization/88308
5991 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
5992 on copied instruction.
5993
5994 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
5995
5996 * final.c (insn_current_reference_address): Replace test on JUMP_P
5997 with test on jump_to_label_p.
5998 * config/visium/visium-passes.def: New file.
5999 * config/visium/t-visium (PASSES_EXTRA): Define.
6000 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
6001 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
6002 (TRAMPOLINE_ALIGNMENT): Define.
6003 * config/visium/visium.c (visium_option_override): Do not register
6004 the machine-specific reorg pass here.
6005 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
6006 for the GR6.
6007 (output_branch): Adjust threshold for long branch instruction.
6008 * config/visium/visium.md (cpu): Move around.
6009 (length): Adjust for the GR6.
6010
6011 2019-02-15 Richard Biener <rguenther@suse.de>
6012 Jakub Jelinek <jakub@redhat.com>
6013
6014 PR tree-optimization/89278
6015 * tree-loop-distribution.c: Include tree-eh.h.
6016 (generate_memset_builtin, generate_memcpy_builtin): Call
6017 rewrite_to_non_trapping_overflow on builtin->size before passing it
6018 to force_gimple_operand_gsi.
6019
6020 2019-02-15 Jakub Jelinek <jakub@redhat.com>
6021
6022 PR other/89342
6023 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
6024 optimize_debug.
6025 * opth-gen.awk: Likewise.
6026
6027 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
6028
6029 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
6030 Enable MMX, SSE and SSE2 by default.
6031 * config/i386/i386.c (ix86_option_override_internal): Do not
6032 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
6033
6034 2019-02-14 Jakub Jelinek <jakub@redhat.com>
6035
6036 PR rtl-optimization/89354
6037 * combine.c (make_extraction): Punt if extraction_mode is narrower
6038 than len bits.
6039
6040 2019-02-14 Maya Rashish <coypu@sdf.org>
6041
6042 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
6043 * config/netbsd-d.c: New file.
6044 * config/t-netbsd: Add netbsd-d.o
6045
6046 2018-02-14 Steve Ellcey <sellcey@marvell.com>
6047
6048 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
6049 affects_type_identity to true for aarch64_vector_pcs.
6050 (aarch64_comp_type_attributes): New function.
6051 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
6052
6053 2019-02-14 Tamar Christina <tamar.christina@arm.com>
6054
6055 PR target/88850
6056 * config/arm/iterators.md (ANY64): Add V4HF.
6057
6058 2019-02-14 Martin Liska <mliska@suse.cz>
6059
6060 PR rtl-optimization/89242
6061 * dce.c (delete_unmarked_insns): Call free_dominance_info we
6062 process a transformation.
6063
6064 2019-02-14 Jakub Jelinek <jakub@redhat.com>
6065
6066 PR tree-optimization/89314
6067 * fold-const.c (fold_binary_loc): Cast strlen argument to
6068 const char * before dereferencing it. Formatting fixes.
6069
6070 PR middle-end/89284
6071 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
6072
6073 2019-02-13 Ian Lance Taylor <iant@golang.org>
6074
6075 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
6076 and set current index for other optimizations.
6077
6078 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
6079
6080 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
6081 nonimmediate_operand as operand 2 predicate.
6082 (vec_set<VF2_512_256:mode>_0): Ditto.
6083 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
6084 (*vec_concatv2si): Remove alternative 2.
6085 (*vec_concatv4si_0): Use vm constraint for alternative 0.
6086 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
6087 (vec_concatv2di): Split alternatives 4,5,6 to ...
6088 (*vec_concatv2di_0) ... new pattern.
6089
6090 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
6091
6092 PR target/89190
6093 * config/arm/arm.c (ldm_stm_operation_p) Set
6094 addr_reg_in_reglist correctly for first register.
6095 (load_multiple_sequence): Remove dead base check.
6096 (gen_ldm_seq): Correctly set write_back for Thumb-1.
6097
6098 2019-02-13 Tamar Christina <tamar.christina@arm.com>
6099
6100 PR target/88847
6101 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
6102 Expose as @aarch64_pred_mov.
6103 * config/aarch64/aarch64.c (aarch64_classify_address):
6104 Use expand_insn which legitimizes operands.
6105
6106 2019-02-13 Martin Liska <mliska@suse.cz>
6107
6108 * builtins.h (expand_builtin_with_bounds): Remove declaration.
6109 * calls.c (struct arg_data): Remove special_slot, pointer_arg
6110 and pointer_offset fields.
6111 (initialize_argument_information): Remove usage of dead
6112 fields.
6113 * cgraph.h (struct cgraph_thunk_info): Remove
6114 add_pointer_bounds_args.
6115 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
6116 fields.
6117 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
6118 fields.
6119 * config/i386/i386.c (ix86_function_arg_advance): Remove
6120 unrelated comment.
6121 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
6122 (def_builtin): Remove usage of dead
6123 fields.
6124 (ix86_add_new_builtins): Likewise.
6125 * ipa-fnsummary.c (compute_fn_summary): Likewise.
6126 * ipa-icf.c (sem_function::equals_wpa): Likewise.
6127 (sem_function::init): Likewise.
6128 (sem_variable::merge): Likewise.
6129 * ipa-visibility.c (function_and_variable_visibility): Likewise.
6130 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
6131 * lto-cgraph.c (lto_output_node): Likewise.
6132 (lto_output_varpool_node): Likewise.
6133 (input_node): Likewise.
6134 (input_varpool_node): Likewise.
6135 * lto-streamer-out.c (lto_output): Likewise.
6136 * tree-inline.c (expand_call_inline): Remove usage of
6137 assign_stmts.
6138 * tree-inline.h (struct copy_body_data): Likewise.
6139 * varpool.c (varpool_node::dump): Likewise.
6140
6141 2019-02-13 Jakub Jelinek <jakub@redhat.com>
6142
6143 PR middle-end/89303
6144 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
6145 into pt->vars_contains_escaped_heap instead of setting
6146 pt->vars_contains_escaped_heap to it.
6147
6148 PR middle-end/89281
6149 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
6150 INTVAL (size), compare it to GET_MODE_MASK instead of
6151 1 << GET_MODE_BITSIZE.
6152
6153 PR target/89290
6154 * config/i386/predicates.md (x86_64_immediate_operand): Allow
6155 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
6156 -mcmodel=large.
6157
6158 2019-02-13 Martin Liska <mliska@suse.cz>
6159
6160 PR lto/88858
6161 * cfgrtl.c (remove_barriers_from_footer): New function.
6162 (try_redirect_by_replacing_jump): Use it.
6163 (cfg_layout_redirect_edge_and_branch): Likewise.
6164
6165 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
6166
6167 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
6168 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
6169 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
6170 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
6171 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
6172 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
6173 New BU_CRYPTO_2.
6174 * config/rs6000/rs6000.c (builtin_function_type)
6175 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
6176 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
6177 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
6178 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
6179 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
6180
6181 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
6182
6183 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
6184 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
6185
6186 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
6187
6188 PR target/89229
6189 * config/i386/i386.md (*movoi_internal_avx): Revert revision
6190 268678 and revision 268657.
6191 (*movti_internal): Likewise.
6192
6193 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
6194
6195 PR target/89233
6196 * config/s390/s390.c (s390_decompose_address): Update comment.
6197 (s390_check_qrst_address): Reject invalid address forms after
6198 LRA.
6199
6200 2019-02-12 Martin Liska <mliska@suse.cz>
6201
6202 PR lto/88876
6203 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
6204 we need default values of funct_state for a function that
6205 is not optimized.
6206
6207 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
6208
6209 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
6210 the object to pick the size of stores on strict-alignment platforms.
6211
6212 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
6213 (*movdi_insn_sp32): Likewise.
6214 (*movdi_insn_sp64): Likewise.
6215
6216 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
6217
6218 PR lto/88677
6219 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
6220 types that needs constructiong.
6221 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
6222
6223 2019-02-12 Richard Biener <rguenther@suse.de>
6224
6225 PR tree-optimization/89253
6226 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
6227 duplicate the loop.
6228
6229 2019-02-11 David Malcolm <dmalcolm@redhat.com>
6230
6231 PR lto/88147
6232 * input.c (selftest::test_line_offset_overflow): New selftest.
6233 (selftest::input_c_tests): Call it.
6234
6235 2019-02-11 Martin Sebor <msebor@redhat.com>
6236
6237 PR tree-optimization/88771
6238 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
6239 when -Wstringop-overflow is set.
6240 (builtin_memref::builtin_memref): Adjust excessive upper bound
6241 only when lower bound is not excessive.
6242 (maybe_diag_overlap): Detect and diagnose excessive bounds via
6243 -Wstringop-ovefflow.
6244 (maybe_diag_offset_bounds): Rename...
6245 (maybe_diag_access_bounds): ...to this.
6246 (check_bounds_or_overlap): Adjust for name change above.
6247
6248 2019-02-11 Martin Sebor <msebor@redhat.com>
6249
6250 PR c++/87996
6251 * builtins.c (max_object_size): Move from here...
6252 * builtins.h (max_object_size): ...and here...
6253 * tree.c (max_object_size): ...to here...
6254 * tree.h (max_object_size): ...and here.
6255
6256 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
6257
6258 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
6259 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
6260 for correct semantics.
6261
6262 2019-02-11 Alan Modra <amodra@gmail.com>
6263
6264 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
6265 -mlongcall and -mpltseq.
6266 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
6267 (RS/6000 and PowerPC Options <-mpltseq>): Document.
6268 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
6269 * config/rs6000/sysv4.opt (mpltseq): New option.
6270 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
6271 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
6272 support is lacking. Don't allow -mpltseq with -mbss-plt.
6273 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
6274 -mpltseq given for ELFv1.
6275 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
6276 Only use UNSPEC_PLTSEQ for inline PLT calls.
6277 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
6278 use UNSPEC_PLTSEQ for inline PLT calls.
6279 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
6280 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
6281 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
6282 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
6283 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
6284 (pltseq_mtctr_<mode>): Likewise.
6285
6286 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
6287
6288 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
6289 Solaris ld.
6290 * configure: Regenerate.
6291
6292 2019-02-11 Jakub Jelinek <jakub@redhat.com>
6293
6294 PR bootstrap/88714
6295 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
6296 instead of r.
6297
6298 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
6299
6300 * function.c (assign_parm_setup_block): Use the stored
6301 size, not the passed size, when allocating stack-space,
6302 also for a parameter with alignment larger than
6303 MAX_SUPPORTED_STACK_ALIGNMENT.
6304
6305 2019-02-11 Martin Liska <mliska@suse.cz>
6306
6307 PR ipa/89009
6308 * ipa-cp.c (build_toporder_info): Remove usage of a param.
6309 * ipa-inline.c (inline_small_functions): Likewise.
6310 * ipa-pure-const.c (propagate_pure_const): Likewise.
6311 (propagate_nothrow): Likewise.
6312 * ipa-reference.c (propagate): Likewise.
6313 * ipa-utils.c (struct searchc_env): Remove unused field.
6314 (searchc): Always search across AVAIL_INTERPOSABLE.
6315 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
6316 the only called IPA pure const can properly not propagate
6317 across interposable boundary.
6318 * ipa-utils.h (ipa_reduced_postorder): Remove param.
6319
6320 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
6321
6322 * config/nds32/nds32.md (call_internal, call_value_internal,
6323 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
6324
6325 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
6326
6327 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
6328 typo.
6329
6330 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
6331
6332 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
6333 in comments
6334
6335 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
6336
6337 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
6338
6339 2019-02-10 Jakub Jelinek <jakub@redhat.com>
6340
6341 PR tree-optimization/89268
6342 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
6343 if preds is non-NULL.
6344
6345 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
6346
6347 PR lto/89272
6348 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
6349 polymorphic types.
6350
6351 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
6352
6353 * config/nds32/nds32.md (trap): New pattern.
6354
6355 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
6356
6357 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
6358 dwarf span.
6359
6360 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
6361
6362 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
6363 to split POST_INC.
6364
6365 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
6366
6367 * ipa-visibility.c (localize_node): Also do not localize
6368 LDPR_PREVAILING_DEF_IRONLY_EXP.
6369
6370 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
6371
6372 PR lto/87957
6373 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
6374 instead of type_with_linkage.
6375
6376 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
6377
6378 PR ipa/88755
6379 * params.def (uninlined-function-insns, uninlined-function-time,
6380 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
6381 bound so we don't get overflows.
6382
6383 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
6384
6385 * config/rs6000/rs6000-string.c (expand_compare_loop,
6386 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
6387 memcmp/strncmp.
6388
6389 2019-02-09 Jakub Jelinek <jakub@redhat.com>
6390
6391 PR middle-end/89246
6392 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6393 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
6394 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
6395
6396 2019-02-09 Alan Modra <amodra@gmail.com>
6397
6398 PR target/88343
6399 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
6400 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
6401 setup.
6402
6403 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
6404
6405 PR middle-end/88560
6406 * lra-constraints.c (process_alt_operands): Don't increase reject
6407 for memory when offset memory is required.
6408
6409 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
6410
6411 * config/s390/vector.md: Implement vector copysign.
6412
6413 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
6414
6415 * expr.c (expand_constructor): Correct indentations.
6416
6417 2019-02-08 Richard Biener <rguenther@suse.de>
6418
6419 PR tree-optimization/89247
6420 * tree-if-conv.c: Include tree-cfgcleanup.h.
6421 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
6422 (tree_if_conversion): Pass through predicate vector.
6423 (pass_if_conversion::execute): Do CFG cleanup and SSA update
6424 inline, see if any if-converted loops we refrece in
6425 LOOP_VECTORIZED calls vanished and fixup.
6426 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
6427
6428 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
6429
6430 * config/s390/constraints.md (jdd): New constraint.
6431
6432 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
6433
6434 PR target/89229
6435 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
6436 upper 16 vector registers without TARGET_AVX512VL.
6437 (*movti_internal): Likewise.
6438
6439 2019-02-08 Jakub Jelinek <jakub@redhat.com>
6440
6441 PR rtl-optimization/89234
6442 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
6443 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
6444 (copy_reg_eh_region_note_backward): Likewise.
6445
6446 2019-02-08 Richard Biener <rguenther@suse.de>
6447
6448 PR middle-end/89223
6449 * tree-data-ref.c (initialize_matrix_A): Fail if constant
6450 doesn't fit in HWI.
6451 (analyze_subscript_affine_affine): Handle failure from
6452 initialize_matrix_A.
6453
6454 2019-02-08 Jakub Jelinek <jakub@redhat.com>
6455
6456 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
6457 cfun everywhere.
6458
6459 2019-02-07 David Malcolm <dmalcolm@redhat.com>
6460
6461 PR tree-optimization/86637
6462 PR tree-optimization/89235
6463 * tree-vect-loop.c (optimize_mask_stores): Add an
6464 auto_purge_vect_location sentinel to ensure that vect_location is
6465 purged on exit.
6466 * tree-vectorizer.c
6467 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
6468 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
6469 to ensure that vect_location is purged on exit.
6470 (pass_slp_vectorize::execute): Likewise, replacing the manual
6471 reset.
6472 * tree-vectorizer.h (class auto_purge_vect_location): New class.
6473
6474 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6475
6476 * config/aarch64/iterators.md (max_opp): New code_attr.
6477 (USMAX): New code iterator.
6478 * config/aarch64/predicates.md (aarch64_smin): New predicate.
6479 (aarch64_smax): Likewise.
6480 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
6481 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
6482 MINUS (MAX MIN).
6483
6484 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
6485
6486 PR target/89229
6487 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
6488 for TARGET_AVX512VL.
6489 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
6490
6491 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
6492
6493 * config/s390/s390-builtin-types.def: Add new types.
6494 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
6495 (s390_vec_xlw4): Make the memory operand into a const pointer.
6496 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
6497 float.
6498 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
6499 a new vector type with the alignment of the scalar memory operand.
6500
6501 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
6502 Jakub Jelinek <jakub@redhat.com>
6503
6504 PR bootstrap/88714
6505 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
6506 arm_count_ldrdstrd_insns): New declarations.
6507 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
6508 MINUS.
6509 (valid_operands_ldrd_strd): New function.
6510 (arm_count_ldrdstrd_insns): New function.
6511 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
6512 sets instead of single DImode set and define new insns to match this.
6513
6514 2019-02-07 Tamar Christina <tamar.christina@arm.com>
6515
6516 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
6517 Make it a C initializer.
6518
6519 2019-02-07 Tamar Christina <tamar.christina@arm.com>
6520
6521 PR/target 88850
6522 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
6523
6524 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6525
6526 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
6527 Use neon_dot<q> for type.
6528 (neon_<sup>dot_lane<vsi2qi>): Likewise.
6529
6530 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6531
6532 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
6533 Use neon_dot<q> for type.
6534 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
6535 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
6536
6537 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
6538
6539 PR rtl-optimization/89225
6540 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
6541 sizes check.
6542
6543 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
6544
6545 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
6546 after restoring registers saved to allocate the frame on Windows.
6547
6548 2019-02-06 Richard Biener <rguenther@suse.de>
6549
6550 PR tree-optimization/89182
6551 * graphite.h (cached_scalar_evolution_in_region): Declare.
6552 * graphite.c (struct seir_cache_key): New.
6553 (struct sese_scev_hash): Likewise.
6554 (seir_cache): New global.
6555 (cached_scalar_evolution_in_region): New function.
6556 (graphite_transform_loops): Allocate and release seir_cache.
6557 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
6558 cached_scalar_evolution_in_region.
6559 * graphite-scop-detection.c (scop_detection::can_represent_loop):
6560 Simplify.
6561 (scop_detection::graphite_can_represent_expr: Use
6562 cached_scalar_evolution_in_region.
6563 (scop_detection::stmt_simple_for_scop_p): Likewise.
6564 (find_params_in_bb): Likewise.
6565 (gather_bbs::before_dom_children): Likewise.
6566 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
6567 (add_loop_constraints): Likewise.
6568
6569 2019-02-06 Jakub Jelinek <jakub@redhat.com>
6570
6571 PR middle-end/89210
6572 * fold-const-call.c (fold_const_vec_convert): Pass true as last
6573 operand to new_unary_operation only if both element types are integral
6574 and it isn't a widening conversion. Return NULL_TREE if
6575 new_unary_operation failed.
6576
6577 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
6578
6579 PR target/88856
6580 * config/s390/s390.md: Remove load and test FP splitter.
6581
6582 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
6583
6584 PR target/89112
6585 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
6586 expand_compare_loop, expand_block_compare_gpr,
6587 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
6588 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
6589 #include "profile-count.h" and "predict.h" for types and functions
6590 needed to work with REG_BR_PROB notes.
6591
6592 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
6593
6594 PR target/89112
6595 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
6596 for the long branch case.
6597
6598 2019-02-05 Jakub Jelinek <jakub@redhat.com>
6599
6600 PR target/89188
6601 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
6602 can throw, non-call exceptions are enabled and we can't delete
6603 dead exceptions or alter cfg. Set must_clean if
6604 delete_insn_and_edges returns true, don't set it blindly for calls.
6605 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
6606
6607 PR rtl-optimization/89195
6608 * combine.c (make_extraction): For MEMs, don't extract bytes outside
6609 of the original MEM.
6610
6611 2019-02-05 Martin Liska <mliska@suse.cz>
6612
6613 PR gcov-profile/89000
6614 * gcov.c (function_summary): Remove argument.
6615 (file_summary): New function.
6616 (print_usage): Replace tabs with spaces.
6617 (generate_results): Use new function file_summary.
6618
6619 2019-02-05 Jakub Jelinek <jakub@redhat.com>
6620
6621 PR target/89186
6622 * optabs.c (prepare_cmp_insn): Pass x and y to
6623 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
6624
6625 2019-02-05 Richard Biener <rguenther@suse.de>
6626
6627 PR middle-end/89150
6628 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
6629 (struct bitmap_element): Drop chain_prev so we properly recurse on
6630 the prev member, supporting tree views.
6631 (struct bitmap_head): GTY skip the obstack member.
6632
6633 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
6634
6635 PR c/88698
6636 * doc/extend.texi (Vector Extensions): Add an example of using vector
6637 types together with x86 intrinsics.
6638
6639 2019-02-04 Alan Modra <amodra@gmail.com>
6640
6641 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
6642 str[] size to 160, and comment.
6643
6644 2019-02-04 Alan Modra <amodra@gmail.com>
6645
6646 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
6647 (rs6000_pltseq_template): Guard output of TLS markers with
6648 TARGET_TLS_MARKERS.
6649 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
6650 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
6651 to use inline PLT sequences.
6652 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
6653 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
6654 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
6655
6656 2019-02-04 Martin Liska <mliska@suse.cz>
6657
6658 PR ipa/88985
6659 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
6660 out when ipa_fn_summaries does not contain entry for callee.
6661
6662 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
6663
6664 * config/sparc/sparc.h: Remove superfluous blank lines.
6665 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
6666 (got_register_rtx): ...this.
6667 (sparc_got): Adjust to above renaming.
6668 (sparc_tls_got): Likewise.
6669 (sparc_delegitimize_address): Likewise.
6670 (sparc_output_mi_thunk): Likewise.
6671 (sparc_init_pic_reg): Likewise.
6672 (save_local_or_in_reg_p): Fix test on the GOT register.
6673 (USE_HIDDEN_LINKONCE): Move around.
6674 (get_pc_thunk_name): Likewise.
6675 (gen_load_pcrel_sym): Likewise.
6676 (load_got_register): Likewise.
6677
6678 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
6679
6680 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
6681 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
6682
6683 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
6684
6685 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
6686 into consideration.
6687
6688 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
6689
6690 * config.gcc (with_nds32_lib, glibc):
6691 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
6692 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
6693 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
6694
6695 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
6696
6697 PR target/89071
6698 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
6699 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
6700 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
6701 (*rcpsf2_sse): Ditto.
6702 (*rsqrtsf2_sse): Ditto.
6703 (sse4_1_round<mode<2): Ditto.
6704
6705 2019-02-03 Richard Biener <rguenther@suse.de>
6706
6707 PR debug/87295
6708 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
6709 orig.
6710
6711 2019-02-02 Jakub Jelinek <jakub@redhat.com>
6712
6713 PR middle-end/87887
6714 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
6715 Punt with warning on aggregate return or argument types. Ignore
6716 type/mode checking for uniform arguments.
6717
6718 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
6719
6720 * combine.c (try_combine): Do not print "Can't combine" messages unless
6721 printing failed combination attempts.
6722
6723 2019-02-01 Martin Jambor <mjambor@suse.cz>
6724
6725 PR hsa/87863
6726 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
6727 segment and global segment variables before making them static.
6728
6729 2019-02-01 Martin Jambor <mjambor@suse.cz>
6730
6731 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
6732 missed optimization dump with dump_enabled_p.
6733
6734 2019-02-01 Richard Biener <rguenther@suse.de>
6735
6736 PR middle-end/88597
6737 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
6738 the instantiate cache.
6739 (instantiate_scev_binary): Elide second operand procesing
6740 if equal to the first.
6741 * tree-chrec.c (chrec_contains_symbols): Add visited set.
6742 (chrec_contains_undetermined): Likewise.
6743 (tree_contains_chrecs): Likewise.
6744
6745 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
6746
6747 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
6748
6749 2019-02-01 Jakub Jelinek <jakub@redhat.com>
6750
6751 PR tree-optimization/89143
6752 * wide-int-range.h (wide_int_range_absu): Declare.
6753 * wide-int-range.cc (wide_int_range_absu): New function.
6754 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
6755
6756 PR tree-optimization/88107
6757 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
6758 instead of assertion that eh_region_outermost is non-NULL, if it
6759 is NULL, set *ALL to true and return NULL.
6760 (move_sese_region_to_fn): Adjust caller, if all is set, call
6761 duplicate_eh_regions with NULL region.
6762
6763 2019-02-01 Richard Biener <rguenth@suse.de>
6764
6765 PR rtl-optimization/88593
6766 * mode-switching.c (optimize_mode_switching): Free dominators before
6767 calling cleanup_cfg.
6768
6769 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
6770
6771 PR tree-optimization/88932
6772 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
6773
6774 2019-01-31 Jakub Jelinek <jakub@redhat.com>
6775
6776 PR middle-end/89137
6777 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
6778 bogus clang warning.
6779
6780 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
6781
6782 PR target/89071
6783 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
6784 alternative to avoid partial SSE register stall for TARGET_AVX.
6785 (truncdfsf2): Ditto.
6786 (sse4_1_round<mode>2): Ditto.
6787
6788 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
6789
6790 PR tree-optimization/89008
6791 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
6792 process anything of the form X * 0.
6793
6794 2019-01-31 Richard Biener <rguenther@suse.de>
6795
6796 PR tree-optimization/89135
6797 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
6798 with abnormal preds.
6799
6800 2019-01-31 Jakub Jelinek <jakub@redhat.com>
6801
6802 PR sanitizer/89124
6803 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
6804 always_inline callees into no_sanitize_address callers.
6805
6806 2019-01-31 Richard Biener <rguenther@suse.de>
6807
6808 PR rtl-optimization/89115
6809 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
6810
6811 2019-01-30 Martin Sebor <msebor@redhat.com>
6812
6813 PR other/89106
6814 * doc/extend.texi (cast to a union): Correct and expand.
6815
6816 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
6817
6818 PR rtl-optimization/87246
6819 * lra-constraints.c (simplify_operand_subreg): Reload memory
6820 in subreg if the address became invalid.
6821
6822 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
6823
6824 PR target/87064
6825 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
6826 Disable for little-endian.
6827
6828 2019-01-30 Richard Biener <rguenther@suse.de>
6829
6830 PR rtl-optimization/89115
6831 * opts.c (default_options_optimization): Reduce
6832 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
6833 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
6834 to the default.
6835
6836 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
6837
6838 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
6839 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
6840 type of vector element when vec_extract is implemented by direct
6841 move.
6842
6843 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
6844
6845 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
6846
6847 2019-01-30 Richard Biener <rguenther@suse.de>
6848
6849 PR tree-optimization/89111
6850 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
6851 canonicalization to appropriately sized access types.
6852
6853 2019-01-30 Jakub Jelinek <jakub@redhat.com>
6854
6855 PR c++/89105
6856 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
6857 for arguments to functions that are TU-local and shouldn't be
6858 referenced by assembly.
6859
6860 2019-01-30 Ulrich Drepper <drepper@redhat.com>
6861
6862 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
6863 after '='.
6864
6865 2019-01-29 Martin Sebor <msebor@redhat.com>
6866
6867 PR c/88956
6868 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
6869
6870 2019-01-29 Jakub Jelinek <jakub@redhat.com>
6871
6872 PR c++/66676
6873 PR ipa/89104
6874 * omp-simd-clone.c (simd_clone_clauses_extract)
6875 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
6876 OMP_CLAUSE_ALIGNED_ALIGNMENT.
6877
6878 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
6879
6880 * config.gcc: Force .init_array for ARC.
6881
6882 2019-01-29 Richard Biener <rguenther@suse.de>
6883
6884 PR debug/87295
6885 * dwarf2out.c (collect_skeleton_dies): New helper.
6886 (copy_decls_for_unworthy_types): Call it.
6887 (build_abbrev_table): Assert we do not try to replace
6888 DW_AT_signature refs with local refs.
6889
6890 2019-01-28 Jakub Jelinek <jakub@redhat.com>
6891
6892 PR middle-end/89002
6893 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
6894 for lastprivate/linear IV, push gimplify context around gimplify_assign
6895 and, if it needed any temporaries, pop it into a gimple bind around the
6896 sequence.
6897
6898 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
6899
6900 * common.opt (-Wattribute-alias): Remove "no-" from name.
6901 Make -Wattribute-alias command line option and
6902 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
6903
6904 2019-01-28 Jakub Jelinek <jakub@redhat.com>
6905
6906 PR target/89073
6907 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
6908 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
6909 x86 ISA options.
6910 (bmi2): Add missing @opindex.
6911 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
6912 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
6913 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
6914 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
6915 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
6916 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
6917 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
6918 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
6919 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
6920 xsavec, xsaveopt and xsaves options.
6921
6922 2019-01-28 Richard Biener <rguenther@suse.de>
6923
6924 PR debug/89076
6925 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
6926 support removal.
6927
6928 2019-01-28 Richard Biener <rguenther@suse.de>
6929
6930 PR tree-optimization/88739
6931 * tree-cfg.c (verify_types_in_gimple_reference): Verify
6932 BIT_FIELD_REFs only are applied to mode-precision operands
6933 when they are integral.
6934 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
6935 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
6936 BIT_FIELD_REFs of non-mode-precision integral operands.
6937
6938 2019-01-27 Jakub Jelinek <jakub@redhat.com>
6939
6940 PR target/87214
6941 * config/i386/sse.md
6942 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
6943 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
6944 first constants in pairs are multiples of 2. Formatting fixes.
6945 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
6946 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
6947 first constants in each quadruple are multiples of 4. Formatting fixes.
6948
6949 2019-01-26 Martin Jambor <mjambor@suse.cz>
6950
6951 PR ipa/88933
6952 * tree-inline.c: Include tree-cfgcleanup.h.
6953 (delete_unreachable_blocks_update_callgraph): Move...
6954 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
6955 ...here, make externally visible, make second argument bool, adjust
6956 all callers.
6957 * tree-cfgcleanup.c: Include cgraph.h.
6958 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
6959 Declare.
6960 * ipa-prop.c: Include tree-cfgcleanup.h.
6961 (ipcp_transform_function): Call
6962 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
6963
6964 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
6965
6966 PR rtl-optimization/88846
6967 * ira.c (process_set_for_memref_referenced_p): New.
6968 (memref_referenced_p): Add new param. Use
6969 process_set_for_memref_referenced_p. Add new switch cases.
6970 (memref_used_between_p): Pass new arg to memref_referenced_p.
6971
6972 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
6973
6974 PR target/88469
6975 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
6976 argument ABI_BREAK. Set to true if the calculated alignment has
6977 changed in gcc-9. Check bit-fields for their base type alignment.
6978 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
6979 (aarch64_function_arg_boundary): Likewise.
6980 (aarch64_gimplify_va_arg_expr): Likewise.
6981
6982 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
6983
6984 PR middle-end/89037
6985 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
6986 instead of accessing TREE_INT_CST_ELT directly.
6987
6988 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
6989
6990 * doc/sourcebuild.texi (Environment attributes): Add fenv and
6991 fenv_exceptions description.
6992
6993 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
6994
6995 PR rtl-optimization/87763
6996 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
6997 Allow SUBREG when matching CC_NZmode compare.
6998
6999 2019-01-25 Richard Biener <rguenther@suse.de>
7000
7001 PR tree-optimization/89049
7002 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
7003 Look at the pattern stmt to determine if the stmt is vectorized.
7004
7005 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
7006
7007 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
7008 (pred_mov<mode>): Handle all-register forms using both a new
7009 alternative and a split.
7010
7011 2019-01-25 Richard Biener <rguenther@suse.de>
7012
7013 PR tree-optimization/86865
7014 * graphite-scop-detection.c (scop_detection::can_represent_loop):
7015 Reject non-do-while loops.
7016
7017 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
7018
7019 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
7020 * config/rs6000/constraints.md (Q constraint): Use REG_P.
7021 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
7022 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
7023 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
7024 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7025 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
7026 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
7027 vlogical_operand, gpc_reg_operand, int_reg_operand,
7028 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
7029 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
7030 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
7031 (save_world_operation, restore_world_operation, lmw_operation,
7032 stmw_operation): Use MEM_P and REG_P.
7033 (tie_operand): Use MEM_P.
7034 (vrsave_operation, crsave_operation): Use REG_P.
7035 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
7036 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
7037 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
7038 (call_operand): Use HARD_REGISTER_P.
7039 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
7040 Use CONST_INT_P.
7041 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
7042 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
7043 quad_aligned_load_p, replace_swapped_aligned_store,
7044 recombine_lvx_pattern, replace_swapped_aligned_load,
7045 recombine_stvx_pattern): Use MEM_P.
7046 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
7047 Use MEM_P and SYMBOL_REF_P.
7048 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
7049 (insn_is_swappable_p): Use REG_P and MEM_P.
7050 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
7051 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
7052 Use CONST_INT_P.
7053 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
7054 Use CONST_DOUBLE_P.
7055 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
7056 CONST_WIDE_INT_P.
7057 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
7058 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
7059 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
7060 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
7061 reg_or_subregno:
7062 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
7063 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
7064 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
7065 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
7066 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
7067 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
7068 rs6000_split_logical_di): Use CONST_INT_P.
7069 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
7070 REG_P and SYMBOL_REF_P.
7071 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
7072 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
7073 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
7074 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
7075 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
7076 (small_data_operand, print_operand_address): Use CONST_INT_P and
7077 SYMBOL_REF_P.
7078 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
7079 (rs6000_init_hard_regno_mode_ok, direct_move_p):
7080 Use HARD_REGISTER_NUM_P.
7081 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
7082 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
7083 SUBREG_P and SYMBOL_REF_P.
7084 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
7085 and HARD_REGISTER_NUM_P.
7086 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
7087 reg_or_subregno.
7088 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
7089 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
7090 MEM_P and REG_P.
7091 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
7092 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
7093 find_addr_reg): Use REG_P.
7094 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
7095 (rs6000_emit_le_vsx_move): Use SUBREG_P.
7096 (offsettable_ok_by_alignment, constant_pool_expr_p,
7097 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
7098 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
7099 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
7100 rs6000_assemble_integer, create_TOC_reference,
7101 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
7102 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
7103 (rs6000_split_vec_extract_var): Use reg_or_subregno.
7104 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
7105 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
7106 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7107 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
7108 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
7109 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
7110 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
7111 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
7112 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
7113 and cbranch<mode>4): Use CONST_INT_P.
7114 (multiple define_splits): Use REG_P and SUBREG_P.
7115 (define_expands call, call_value): Use MEM_P.
7116 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
7117 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
7118 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
7119 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
7120 and HARD_REGISTER_NUM_P.
7121 (multiple define_splits): Use HARD_REGISTER_NUM_P.
7122
7123 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
7124
7125 PR rtl-optimization/88948
7126 * rtl.h (prepare_copy_insn): New prototype.
7127 * gcse.c (prepare_copy_insn): New function, split out from
7128 process_insert_insn.
7129 (process_insert_insn): Use prepare_copy_insn.
7130 * store-motion.c (replace_store_insn): Use prepare_copy_insn
7131 instead of gen_move_insn.
7132
7133 2019-01-24 Jakub Jelinek <jakub@redhat.com>
7134
7135 PR debug/89006
7136 * config/i386/i386.c (ix86_pic_register_p): Return true for
7137 UNSPEC_SET_GOT too.
7138
7139 PR tree-optimization/88964
7140 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
7141 punt if HONOR_SNANS (chrec).
7142
7143 PR middle-end/89015
7144 * tree-nested.c (convert_nonlocal_reference_stmt,
7145 convert_local_reference_stmt, convert_tramp_reference_stmt,
7146 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
7147 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
7148 or GIMPLE_OMP_TASK.
7149
7150 PR tree-optimization/89027
7151 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
7152 for "omp simd array" variables.
7153
7154 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
7155
7156 PR target/88469
7157 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
7158 force the alignment of m_val.
7159
7160 2019-01-24 Richard Biener <rguenther@suse.de>
7161
7162 PR lto/87187
7163 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
7164 When in "legacy" debug mode make sure to reset self-origins.
7165
7166 2019-01-24 Martin Liska <mliska@suse.cz>
7167
7168 PR gcov-profile/88994
7169 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
7170 result will be always smaller or equal to the original.
7171 * gcov.c (mangle_name): Fix else branch where we should
7172 also copy to PTR and shift the pointer.
7173
7174 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
7175
7176 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
7177 * vr-values.c (find_case_label_ranges): Fix a comment typo.
7178
7179 2019-01-23 Bin Cheng <bin.cheng@arm.com>
7180 Steve Ellcey <sellcey@marvell.com>
7181
7182 PR target/85711
7183 * recog.c (address_operand): Return false on wrong mode for address.
7184 (constrain_operands): Check for mode with 'p' constraint.
7185
7186 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
7187
7188 PR target/88998
7189 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
7190 Disparage MMX alternative.
7191 (sse2_cvtpd2pi): Ditto.
7192 (sse2_cvttpd2pi): Ditto.
7193
7194 2019-01-23 David Malcolm <dmalcolm@redhat.com>
7195
7196 PR driver/89014
7197 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
7198 use-after-free of the result of
7199 aarch64_get_extension_string_for_isa_flags.
7200
7201 2019-01-23 Jakub Jelinek <jakub@redhat.com>
7202
7203 PR c/44715
7204 * doc/extend.texi: Document break and continue behavior in
7205 statement expressions.
7206
7207 2019-01-23 Richard Biener <rguenther@suse.de>
7208
7209 PR tree-optimization/89008
7210 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
7211 not leave another stray operand.
7212
7213 2019-01-23 Jakub Jelinek <jakub@redhat.com>
7214
7215 * BASE-VER: Bump to 9.0.1.
7216
7217 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
7218
7219 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
7220 thunk that returns by reference, use the type of the return object
7221 of the thunk instead of that of the alias to build the dereference.
7222
7223 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
7224
7225 * config/arc/atomic.md: Add operand to DMB instruction.
7226
7227 2019-01-23 Jakub Jelinek <jakub@redhat.com>
7228
7229 PR tree-optimization/88964
7230 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
7231 build_zero_cst instead of build_int_cst. Return false for loop
7232 invariants which honor signed zeros.
7233
7234 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
7235
7236 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
7237
7238 2019-01-22 Jakub Jelinek <jakub@redhat.com>
7239
7240 PR target/88965
7241 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
7242 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
7243 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
7244
7245 PR middle-end/88968
7246 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
7247 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
7248
7249 PR target/87064
7250 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
7251 Disable for little endian.
7252
7253 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
7254
7255 PR target/88469
7256 * config/arm/arm.c (arm_needs_double_word_align): Check
7257 DECL_BIT_FIELD_TYPE.
7258
7259 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
7260 H.J. Lu <hongjiu.lu@intel.com>
7261
7262 PR target/88909
7263 * config/i386/i386-builtin.def: Add mask2 to all builtin
7264 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
7265 SPECIAL_ARGS.
7266 * config/i386/i386.c (BDESC): Add mask2 to the definition.
7267 (BDESC_FIRST): Likewise.
7268 (define_builtin): Add an argument for mask2. Updated to handle
7269 both ix86_isa_flags and ix86_isa_flags2.
7270 (define_builtin_const): Likewise.
7271 (define_builtin_pure): Likewise.
7272 (define_builtin2): Deleted.
7273 (define_builtin_const2): Likewise.
7274 (builtin_description): Add a member, mask2.
7275 (bdesc_*): Add mask2 to builtin initializations.
7276 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
7277 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
7278 support.
7279 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
7280
7281 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
7282
7283 PR target/88954
7284 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
7285 noplt attribute.
7286
7287 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
7288
7289 PR target/88469
7290 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
7291 alignment is dominated by a bitfield with 64-bit aligned base type.
7292 (arm_function_arg): Emit a warning if the alignment has changed since
7293 earlier GCC releases.
7294 (arm_function_arg_boundary): Likewise.
7295 (arm_setup_incoming_varargs): Likewise.
7296
7297 2019-01-22 Richard Biener <rguenther@suse.de>
7298
7299 PR tree-optimization/88862
7300 * graphite-scop-detection.c
7301 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
7302
7303 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
7304
7305 * doc/extend.tex (AMD GCN Function Attributes): New section.
7306 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
7307 * doc/invoke.texi (AMD GCN Options): New section.
7308 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
7309
7310 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
7311
7312 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
7313 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
7314
7315 2019-01-22 Jakub Jelinek <jakub@redhat.com>
7316
7317 PR tree-optimization/88044
7318 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
7319 is false in the first iteration, but !every_iteration, return false
7320 instead of true with niter->niter zero.
7321
7322 PR rtl-optimization/88904
7323 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
7324 any nonequal registers before processing BB_END (b).
7325
7326 PR target/88905
7327 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
7328 GET_MODE (op0).
7329 (expand_binop_directly, expand_doubleword_clz,
7330 expand_doubleword_popcount, expand_ctz, expand_ffs,
7331 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
7332
7333 PR rtl-optimization/49429
7334 PR target/49454
7335 PR rtl-optimization/86334
7336 PR target/88906
7337 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
7338 addressable from here...
7339 (emit_block_op_via_libcall): ... to here.
7340
7341 2019-01-22 Richard Biener <rguenther@suse.de>
7342
7343 * tree-vect-loop.c (vect_analyze_loop_operations): Use
7344 auto_vec for cost vector to fix memleak.
7345 (vectorize_fold_left_reduction): Properly gather SLP defs.
7346 (vectorizable_comparison): Do not swap operands to properly
7347 gather SLP defs.
7348
7349 2019-01-22 Alan Modra <amodra@gmail.com>
7350
7351 PR target/88614
7352 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
7353 stays a reg. Allow a const_int.
7354 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
7355 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
7356 (IS_NOMARK_TLSGETADDR): Define.
7357 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
7358 (rs6000_output_tlsargs): New function.
7359 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
7360 __tls_get_addr call takes an arg.
7361 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
7362 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
7363 delete split..
7364 (call_value_nonlocal_sysv): ..or here, delete split.
7365 (tls_gdld_nomark): Delete.
7366 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
7367 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
7368 (call_value_nonlocal_sysv): Likewise.
7369 (call_value_nonlocal_sysv_secure): Likewise.
7370 (call_value_nonlocal_aix): Likewise.
7371 (call_value_indirect_aix): Likewise.
7372 (call_value_indirect_elfv2): Likewise.
7373 (call_value_local32, call_value_local64): Disable for no-mark tls.
7374 (call_value_local_aix): Likewise.
7375
7376 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
7377
7378 PR target/88938
7379 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
7380 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
7381
7382 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
7383
7384 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
7385 string contents as hash_map keys.
7386
7387 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
7388
7389 PR c/88928
7390 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
7391 for rvalue context. Handle rvalues correctly. Use min_align_of_type
7392 instead of TYPE_ALIGN.
7393 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
7394 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
7395 pointer from TYPE_STUB_DECL.
7396
7397 2019-01-21 Richard Biener <rguenther@suse.de>
7398
7399 PR tree-optimization/88934
7400 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
7401 at the possibly non-constant operand.
7402 (vect_get_constant_vectors): Adjust.
7403
7404 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
7405
7406 PR target/71659
7407 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
7408 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
7409 instead of _X86INTRIN_H_INCLUDED.
7410 * onfig/i386/clwbintrin.h: Likewise.
7411 * config/i386/pkuintrin.h: Likewise.
7412 * config/i386/prfchwintrin.h: Likewise.
7413 * config/i386/rdseedintrin.h: Likewise.
7414 * config/i386/wbnoinvdintrin.h: Likewise.
7415 * config/i386/xsavecintrin.h: Likewise.
7416 * config/i386/xsavesintrin.h: Likewise.
7417 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
7418 * config/i386/xsaveintrin.h: Likewise.
7419 * config/i386/xsaveoptintrin.h: Likewise.
7420 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
7421 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
7422 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
7423 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
7424 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
7425 * config/i386/immintrin.h: Here.
7426
7427 2019-01-20 Martin Jambor <mjambor@suse.cz>
7428
7429 PR ipa/87615
7430 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
7431 with aa_walk_budget.
7432 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
7433 aa_walk_budget_p parameter.
7434 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
7435 walk. Updated all callers.
7436 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
7437 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
7438 unmodified_parm.
7439 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
7440 parameter info. Extract info from fbi. Pass fbi to recursive calls
7441 and to unmodified_parm.
7442 (phi_result_unknown_predicate): New parameter fbi, removed parameter
7443 info, updated call to will_be_nonconstant_expr_predicate.
7444 (param_change_prob): New parameter fbi, limit AA walking.
7445 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
7446 calls to various above functions.
7447 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
7448 parameter. Use it to limit AA walking.
7449 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
7450 fbi, limit AA walk.
7451 (detect_type_change): New parameter fbi, pass it on to
7452 detect_type_change_from_memory_writes.
7453 (detect_type_change_ssa): Likewise.
7454 (aa_overwalked): Removed.
7455 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
7456 accordingly, adjust to the neew AA limiting scheme.
7457 (parm_ref_data_preserved_p): Likewise.
7458 (ipa_compute_jump_functions_for_edge): Adjust call to
7459 get_dynamic_type.
7460 (ipa_analyze_call_uses): Likewise.
7461 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
7462 (ipa_analyze_node): Initialize aa_walk_budget.
7463 (ipcp_transform_function): Likewise.
7464 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
7465 to get_dynamic_type.
7466
7467 2019-01-19 Jakub Jelinek <jakub@redhat.com>
7468
7469 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
7470 outside of #if CHECKING_P code.
7471
7472 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
7473
7474 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
7475 New function, split out from...
7476 (loop_versioning::analyze_stride): ...here.
7477 (loop_versioning::find_per_loop_multiplication): Use gassign.
7478 (loop_versioning::analyze_term_using_scevs): Return a success code.
7479 (loop_versioning::analyze_arbitrary_term): New function.
7480 (loop_versioning::analyze_address_fragment): Use
7481 analyze_arbitrary_term if all else fails.
7482
7483 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
7484
7485 PR target/88892
7486 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
7487 operands.
7488
7489 2019-01-18 Richard Biener <rguenther@suse.de>
7490
7491 PR tree-optimization/88903
7492 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
7493 scalar stmts a SLP shift amount is composed of when detecting
7494 shifts by scalars.
7495
7496 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
7497
7498 PR target/88799
7499 * config/arm/arm-cpus.in (mp): New feature.
7500 (sec): New feature.
7501 (fgroup ARMv7ve): Add mp and sec features.
7502 (arch armv7-a): Add options to allow mp and sec extensions.
7503 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
7504 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
7505 extenstions to the base architecture.
7506 (cpu cortex-a8): Add sec extension to the base architecture.
7507 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
7508 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
7509 variants down to the base v7-a varaint.
7510 * config/arm/t-multilib (v7_a_arch_variants): New variable.
7511 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
7512 of permitted extensions for -march=armv7-a and for
7513 -mcpu=generic-armv7-a.
7514
7515 2019-01-18 Martin Liska <mliska@suse.cz>
7516
7517 * params.def: Fix comment.
7518 * tree-profile.c (gimple_init_gcov_profiler): Bump function
7519 name.
7520 (gimple_gen_ic_func_profiler): Likewise.
7521
7522 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7523
7524 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
7525 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
7526 and put in error checks for stack protector guard options.
7527 (aarch64_stack_protect_guard): New.
7528 (TARGET_STACK_PROTECT_GUARD): Define.
7529 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
7530 (reg_stack_protect_address<mode>): New.
7531 (stack_protect_set): Adjust for SSP_GLOBAL.
7532 (stack_protect_test): Likewise.
7533 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
7534 (-mstack-protector-guard): Likewise.
7535 (-mstack-protector-guard-offset): Likewise.
7536
7537 2019-01-18 Jakub Jelinek <jakub@redhat.com>
7538
7539 PR tree-optimization/86214
7540 * tree-inline.h (struct copy_body_data): Add
7541 add_clobbers_to_eh_landing_pads member.
7542 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
7543 (copy_edges_for_bb): Call it if EH edge destination is <
7544 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
7545 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
7546 if flag_stack_reuse != SR_NONE and clear it afterwards.
7547
7548 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
7549
7550 PR target/85596
7551 * doc/install.texi (with-multilib-list): Document for aarch64.
7552
7553 2019-01-18 Jakub Jelinek <jakub@redhat.com>
7554
7555 PR target/88734
7556 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
7557 (("..."))) with ("...").
7558
7559 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
7560
7561 * doc/extend.texi (Built-in Functions for Memory Model Aware
7562 Atomic Operations): Document atomic fetch and nand.
7563
7564 2019-01-18 Martin Liska <mliska@suse.cz>
7565 Richard Biener <rguenther@suse.de>
7566
7567 PR middle-end/88587
7568 * cgraph.h (create_version_clone_with_body): Add new argument
7569 with attributes.
7570 * cgraphclones.c (cgraph_node::create_version_clone): Add
7571 DECL_ATTRIBUTES to a newly created decl. And call
7572 valid_attribute_p so that proper cl_target_optimization_node
7573 is set for the newly created declaration.
7574 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
7575 for declaration.
7576 (expand_target_clones): Do not call valid_attribute_p, it must
7577 be already done.
7578 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
7579 vector types.
7580
7581 2019-01-17 Jakub Jelinek <jakub@redhat.com>
7582
7583 PR target/88734
7584 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
7585 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
7586 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
7587
7588 2019-01-17 Martin Sebor <msebor@redhat.com>
7589
7590 PR middle-end/88273
7591 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
7592 Handle anti-ranges the same as no range at all.
7593
7594 2018-01-17 Steve Ellcey <sellcey@cavium.com>
7595
7596 * config/aarch64/aarch64.c (cgraph.h): New include.
7597 (intl.h): New include.
7598 (supported_simd_type): New function.
7599 (currently_supported_simd_type): Ditto.
7600 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
7601 (aarch64_simd_clone_adjust): Ditto.
7602 (aarch64_simd_clone_usable): Ditto.
7603 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
7604 (TARGET_SIMD_CLONE_ADJUST): Ditto.
7605 (TARGET_SIMD_CLONE_USABLE): Ditto.
7606 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
7607 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
7608 call.
7609
7610 2019-01-17 Martin Sebor <msebor@redhat.com>
7611
7612 PR tree-optimization/88800
7613 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
7614 NO_WARNING bit here. Avoid folding out-of-bounds calls.
7615 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
7616 redundant argument. Add new argument and issue diagnostics under
7617 its control. Detect out-of-bounds access even with warnings
7618 disabled.
7619 (check_bounds_or_overlap): Change return type. Add argument.
7620 (wrestrict_dom_walker::check_call): Adjust.
7621 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
7622 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
7623 check_bounds_or_overlap's return value.
7624 (handle_builtin_stxncpy): Same.
7625 (handle_builtin_strcat): Same.
7626
7627 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
7628 Kwok Cheung Yeung <kcy@codesourcery.com>
7629 Julian Brown <julian@codesourcery.com>
7630 Tom de Vries <tom@codesourcery.com>
7631
7632 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
7633
7634 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
7635
7636 * doc/sourcebuild.texi: Document dg-require-effective-target
7637 llvm_binutils and offload_gcn.
7638
7639 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
7640 Kwok Cheung Yeung <kcy@codesourcery.com>
7641 Julian Brown <julian@codesourcery.com>
7642 Tom de Vries <tom@codesourcery.com>
7643
7644 * doc/sourcebuild.texi: Document dg-required-effective-target
7645 exceptions.
7646
7647 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
7648 Kwok Cheung Yeung <kcy@codesourcery.com>
7649 Julian Brown <julian@codesourcery.com>
7650 Tom de Vries <tom@codesourcery.com>
7651 Jan Hubicka <hubicka@ucw.cz>
7652 Martin Jambor <mjambor@suse.cz>
7653
7654 * config.gcc: Add amdgcn*-*-amdhsa configuration.
7655 * configure.ac: Check for dlopen.
7656 * configure: Regenerate.
7657
7658 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
7659 Kwok Cheung Yeung <kcy@codesourcery.com>
7660 Julian Brown <julian@codesourcery.com>
7661 Tom de Vries <tom@codesourcery.com>
7662 Jan Hubicka <hubicka@ucw.cz>
7663 Martin Jambor <mjambor@suse.cz>
7664
7665 * common/config/gcn/gcn-common.c: New file.
7666 * config/gcn/driver-gcn.c: New file.
7667 * config/gcn/gcn-builtins.def: New file.
7668 * config/gcn/gcn-hsa.h: New file.
7669 * config/gcn/gcn-modes.def: New file.
7670 * config/gcn/gcn-opts.h: New file.
7671 * config/gcn/gcn-passes.def: New file.
7672 * config/gcn/gcn-protos.h: New file.
7673 * config/gcn/gcn-run.c: New file.
7674 * config/gcn/gcn-tree.c: New file.
7675 * config/gcn/gcn.c: New file.
7676 * config/gcn/gcn.h: New file.
7677 * config/gcn/gcn.opt: New file.
7678 * config/gcn/t-gcn-hsa: New file.
7679
7680 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
7681 Kwok Cheung Yeung <kcy@codesourcery.com>
7682 Julian Brown <julian@codesourcery.com>
7683 Tom de Vries <tom@codesourcery.com>
7684 Jan Hubicka <hubicka@ucw.cz>
7685 Martin Jambor <mjambor@suse.cz>
7686
7687 * config/gcn/constraints.md: New file.
7688 * config/gcn/gcn-valu.md: New file.
7689 * config/gcn/gcn.md: New file.
7690 * config/gcn/predicates.md: New file.
7691
7692 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
7693
7694 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
7695 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
7696 (stmt_uses_0_or_null_in_undefined_way): Likewise.
7697 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
7698
7699 2019-01-17 Tamar Christina <tamar.christina@arm.com>
7700
7701 PR target/88851
7702 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
7703 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
7704 it and document registers.
7705
7706 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
7707
7708 * config/aarch64/aarch64.c (ares_tunings): Define.
7709 * config/aarch64/aarch64-cores.def (ares): Use the above.
7710
7711 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
7712
7713 PR target/88794
7714 Revert:
7715 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
7716
7717 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
7718 (_mm512_fixupimm_round_pd): Update parameters and builtin.
7719 (_mm512_maskz_fixupimm_round_pd): Ditto.
7720 (_mm512_fixupimm_round_ps): Ditto.
7721 (_mm512_maskz_fixupimm_round_ps): Ditto.
7722 (_mm_fixupimm_round_sd): Ditto.
7723 (_mm_maskz_fixupimm_round_sd): Ditto.
7724 (_mm_fixupimm_round_ss): Ditto.
7725 (_mm_maskz_fixupimm_round_ss): Ditto.
7726 (_mm512_fixupimm_pd): Ditto.
7727 (_mm512_maskz_fixupimm_pd): Ditto.
7728 (_mm512_fixupimm_ps): Ditto.
7729 (_mm512_maskz_fixupimm_ps): Ditto.
7730 (_mm_fixupimm_sd): Ditto.
7731 (_mm_maskz_fixupimm_sd): Ditto.
7732 (_mm_fixupimm_ss): Ditto.
7733 (_mm_maskz_fixupimm_ss): Ditto.
7734 (_mm512_mask_fixupimm_round_pd): Update builtin.
7735 (_mm512_mask_fixupimm_round_ps): Ditto.
7736 (_mm_mask_fixupimm_round_sd): Ditto.
7737 (_mm_mask_fixupimm_round_ss): Ditto.
7738 (_mm512_mask_fixupimm_pd): Ditto.
7739 (_mm512_mask_fixupimm_ps): Ditto.
7740 (_mm_mask_fixupimm_sd): Ditto.
7741 (_mm_mask_fixupimm_ss): Ditto.
7742 * config/i386/avx512vlintrin.h:
7743 (_mm256_fixupimm_pd): Update parameters and builtin.
7744 (_mm256_maskz_fixupimm_pd): Ditto.
7745 (_mm256_fixupimm_ps): Ditto.
7746 (_mm256_maskz_fixupimm_ps): Ditto.
7747 (_mm_fixupimm_pd): Ditto.
7748 (_mm_maskz_fixupimm_pd): Ditto.
7749 (_mm_fixupimm_ps): Ditto.
7750 (_mm_maskz_fixupimm_ps): Ditto.
7751 (_mm256_mask_fixupimm_pd): Update builtin.
7752 (_mm256_mask_fixupimm_ps): Ditto.
7753 (_mm_mask_fixupimm_pd): Ditto.
7754 (_mm_mask_fixupimm_ps): Ditto.
7755 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
7756 * config/i386/i386-builtin.def: Update builtin definitions.
7757 * config/i386/i386.c: Handle new builtin types and remove useless ones.
7758 * config/i386/sse.md: Update VFIXUPIMM* patterns.
7759 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
7760 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
7761 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
7762 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
7763 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
7764 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
7765 * config/i386/subst.md:
7766 (round_saeonly_sd_mask_operand4): Add new subst_attr.
7767 (round_saeonly_sd_mask_op4): Ditto.
7768 (round_saeonly_expand_operand5): Ditto.
7769 (round_saeonly_expand): Update.
7770
7771 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
7772
7773 PR target/88794
7774 Revert:
7775 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
7776
7777 * config/i386/sse.md: Combine VFIXUPIMM* patterns
7778 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
7779 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
7780 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
7781 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
7782 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
7783 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
7784
7785 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
7786
7787 PR target/88794
7788 Revert:
7789 2018-12-15 Jakub Jelinek <jakub@redhat.com>
7790
7791 PR target/88489
7792 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
7793 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
7794 instead of UNSPEC_FIXUPIMM.
7795
7796 2019-01-17 Richard Biener <rguenther@suse.de>
7797
7798 PR lto/86736
7799 * dwarf2out.c (want_pubnames): Never generate pubnames sections
7800 and friends for the LTO part of debug info.
7801
7802 2019-01-17 Jakub Jelinek <jakub@redhat.com>
7803
7804 PR tree-optimization/86214
7805 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
7806 if x == y.
7807
7808 PR rtl-optimization/88870
7809 * dce.c (deletable_insn_p): Never delete const/pure calls that can
7810 throw if we can't alter the cfg or delete dead exceptions.
7811 (mark_insn): Don't call find_call_stack_args for such calls.
7812
7813 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
7814
7815 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
7816 prototypes for vec_st.
7817 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
7818 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
7819 mainly on signed/unsigned long long and double.
7820
7821 2019-01-16 David Malcolm <dmalcolm@redhat.com>
7822
7823 PR target/88861
7824 * combine.c (delete_noop_moves): Convert to "bool" return,
7825 returning true if any edges are eliminated.
7826 (combine_instructions): Also return true if delete_noop_moves
7827 returns true.
7828
7829 2019-01-16 Tamar Christina <tamar.christina@arm.com>
7830
7831 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
7832 correct max nunits for endian swap.
7833 (aarch64_expand_fcmla_builtin): Correct subreg code.
7834 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
7835 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
7836 lane endianness.
7837
7838 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
7839
7840 * config/alpha/alpha.c (alpha_gimplify_va_arg):
7841 Handle split indirect COMPLEX_TYPE arguments.
7842
7843 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
7844
7845 PR target/86891
7846 * config/aarch64/aarch64-modes.def: Add comment about how the carry
7847 bit is set by add and compare.
7848 (CC_ADC): New CC_MODE.
7849 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
7850 to cache the code and mode of X. Adjust the shape of a CC_Cmode
7851 comparison. Add detection for CC_ADCmode.
7852 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
7853 CC_ADCmode.
7854 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
7855 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
7856 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
7857 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
7858 to eliminate the need for zero-extending the operands.
7859 (add<mode>3_compareC_imm): Delete. Merge into ...
7860 (add<mode>3_compareC): ... this. Restructure the comparison to
7861 eliminate the need for zero-extending the operands.
7862 (add<mode>3_carryin): Use LTU for the overflow detection.
7863 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
7864 Reexpress comparison for overflow.
7865 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
7866 (add<mode>3_carryinC): Likewise.
7867 (add<mode>3_carryinV): Use LTU for carry between partials.
7868 * config/aarch64/predicates.md (aarch64_carry_operation): Update
7869 handling of CC_Cmode and add CC_ADCmode.
7870 (aarch64_borrow_operation): Likewise.
7871
7872 2019-01-16 Tamar Christina <tamar.christina@arm.com>
7873
7874 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
7875 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
7876 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
7877 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
7878
7879 2019-01-16 Martin Liska <mliska@suse.cz>
7880
7881 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
7882 for GCC driver.
7883 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
7884 a new argument.
7885 * gcc.c (add_sysrooted_hdrs_prefix): New function.
7886 (path_prefix_reset): Move up in the source file.
7887 (find_fortran_preinclude_file): Make complex search for the
7888 fortran header files.
7889
7890 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
7891
7892 * godump.c (go_output_typedef): When outputting a typedef, refer
7893 to the underlying type by its name and not its structure.
7894
7895 2019-01-15 David Malcolm <dmalcolm@redhat.com>
7896
7897 PR c++/88795
7898 * tree.c (build_function_type): Assert that arg_types is not
7899 error_mark_node.
7900
7901 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
7902
7903 PR inline-asm/52813
7904 * doc/extend.texi: Document that listing the stack pointer in the
7905 clobber list of an asm is a deprecated feature.
7906 * common.opt (Wdeprecated): Moved from c-family/c.opt.
7907 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
7908 warning instead of an error for clobbers of the stack pointer.
7909 Add a note explaining why.
7910
7911 2019-01-15 Richard Biener <rguenther@suse.de>
7912
7913 PR debug/88046
7914 * dwarf2out.c (gen_member_die): Do not generate inheritance
7915 DIEs late.
7916
7917 2019-01-15 Richard Biener <rguenther@suse.de>
7918
7919 PR tree-optimization/88855
7920 * tree-if-conv.c (combine_blocks): Collect
7921 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
7922
7923 2019-01-15 Tom de Vries <tdevries@suse.de>
7924
7925 PR target/80547
7926 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
7927 lhs == NULL_TREE for gang-level reduction.
7928
7929 2019-01-15 Richard Biener <rguenther@suse.de>
7930 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
7931
7932 PR ipa/88788
7933 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
7934 return true if SSA_NAME is already marked in visited bitmap.
7935 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
7936
7937 2019-01-15 Jakub Jelinek <jakub@redhat.com>
7938
7939 PR tree-optimization/88775
7940 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
7941 equal == 0 equality pointer comparisons some more if compared in
7942 integral types and either one points to an automatic var and the
7943 other to a global, or we can prove at least one points to the middle
7944 or both point to start or both point to end.
7945
7946 2019-01-14 Andi Kleen <ak@linux.intel.com>
7947
7948 * Makefile.in: Lower autofdo sampling rate by 10x.
7949 * Makefile.tpl: Dito.
7950
7951 2019-01-14 Tom Honermann <tom@honermann.net>
7952
7953 * defaults.h: Define CHAR8_TYPE.
7954
7955 2019-01-14 Martin Sebor <msebor@redhat.com>
7956
7957 PR target/88638
7958 * doc/extend.texi (Darwin Format Checks): Clarify.
7959
7960 2019-01-14 Richard Biener <rguenther@suse.de>
7961
7962 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
7963 whether we are in (simplify ...) or (match ...) context.
7964
7965 2019-01-14 Jakub Jelinek <jakub@redhat.com>
7966
7967 PR rtl-optimization/88796
7968 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
7969 * cfgexpand.c (stack_protect_prologue): Initialize
7970 crtl->stack_protect_guard_decl.
7971 * function.c (stack_protect_epilogue): Use it instead of calling
7972 targetm.stack_protect_guard again.
7973 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
7974 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
7975 crtl->stack_protect_guard_decl.
7976 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
7977 on the returned MEM_EXPR.
7978
7979 2019-01-12 Tom de Vries <tdevries@suse.de>
7980
7981 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
7982 vector length using -fopenacc-dim.
7983
7984 2019-01-12 Tom de Vries <tdevries@suse.de>
7985
7986 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
7987 lengths into account.
7988
7989 2019-01-12 Svante Signell <svante.signell@gmail.com>
7990
7991 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
7992 (TARGET_CAN_SPLIT_STACK): Define.
7993 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
7994
7995 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
7996
7997 * params.def (inline-unit-growth): Set to 40.
7998
7999 2019-01-12 Jakub Jelinek <jakub@redhat.com>
8000
8001 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
8002
8003 2019-01-12 Tom de Vries <tdevries@suse.de>
8004
8005 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
8006 region calling vector-partitionable routine, set default_vector_length
8007 to WARP_SIZE.
8008
8009 2019-01-12 Tom de Vries <tdevries@suse.de>
8010
8011 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
8012 variable default_vector_length.
8013
8014 2019-01-12 Tom de Vries <tdevries@suse.de>
8015
8016 PR middle-end/88703
8017 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
8018 from oacc_default_dims, as oacc_validate_dims would do it, and apply
8019 dimensions limits.
8020
8021 2019-01-12 Tom de Vries <tdevries@suse.de>
8022
8023 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
8024 (nvptx_goacc_validate_dims): Add used parameter.
8025 * doc/tm.texi: Regenerate.
8026 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
8027 argument to call to targetm.goacc.validate_dims.
8028 (default_goacc_validate_dims): Add used
8029 parameter.
8030 * target.def (validate_dims): Add used parameter in DEFHOOK.
8031 * targhooks.h (default_goacc_validate_dims): Add used parameter.
8032
8033 2019-01-11 Jakub Jelinek <jakub@redhat.com>
8034
8035 PR middle-end/85956
8036 PR lto/88733
8037 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
8038 field.
8039 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
8040 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
8041 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
8042 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
8043
8044 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
8045
8046 PR rtl-optimization/87305
8047 * lra-assigns.c
8048 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
8049 for little endian pseudos used as paradoxical subreg.
8050
8051 2019-01-11 Jakub Jelinek <jakub@redhat.com>
8052
8053 PR tree-optimization/88693
8054 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
8055 for STRING_CSTs that don't contain any NUL characters in the first
8056 TREE_STRING_LENGTH bytes.
8057
8058 2019-01-11 Alan Modra <amodra@gmail.com>
8059
8060 PR 88777
8061 PR 88614
8062 * genattrtab.c (min_fn): Don't translate values.
8063 (min_attr_value): Return INT_MAX when the value can't be calculated.
8064 Return minimum among any values that can be calculated.
8065 (max_attr_value): Adjust.
8066
8067 2019-01-11 Jakub Jelinek <jakub@redhat.com>
8068
8069 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
8070
8071 2019-01-11 Steve Ellcey <sellcey@marvell.com>
8072
8073 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
8074 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
8075 (aarch64_return_call_with_max_clobbers): New function.
8076 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
8077 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
8078 argument.
8079 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
8080 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
8081 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
8082 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
8083 * cselib.c (cselib_process_insn): Add argument to
8084 targetm.hard_regno_call_part_clobbered call.
8085 * ira-conflicts.c (ira_build_conflicts): Ditto.
8086 * ira-costs.c (ira_tune_allocno_costs): Ditto.
8087 * lra-constraints.c (inherit_reload_reg): Ditto.
8088 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
8089 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
8090 argument. Call targetm.return_call_with_max_clobbers.
8091 Add argument to targetm.hard_regno_call_part_clobbered call.
8092 (calls_have_same_clobbers_p): New function.
8093 (process_bb_lives): Add call_insn and last_call_insn variables.
8094 Pass call_insn to check_pseudos_live_through_calls.
8095 Modify if stmt to check targetm.return_call_with_max_clobbers.
8096 Update setting of flush variable.
8097 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
8098 to false.
8099 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
8100 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
8101 targetm.hard_regno_call_part_clobbered call.
8102 * reginfo.c (choose_hard_reg_mode): Ditto.
8103 * regrename.c (check_new_reg_p): Ditto.
8104 * reload.c (find_equiv_reg): Ditto.
8105 * reload1.c (emit_reload_insns): Ditto.
8106 * sched-deps.c (deps_analyze_insn): Ditto.
8107 * sel-sched.c (init_regs_for_mode): Ditto.
8108 (mark_unavailable_hard_regs): Ditto.
8109 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
8110 * target.def (hard_regno_call_part_clobbered): Add insn argument.
8111 (return_call_with_max_clobbers): New target function.
8112 * doc/tm.texi: Regenerate.
8113 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
8114 * hooks.c (hook_bool_uint_mode_false): Change to
8115 hook_bool_insn_uint_mode_false.
8116 * hooks.h (hook_bool_uint_mode_false): Ditto.
8117
8118 2019-01-11 Steve Ellcey <sellcey@marvell.com>
8119
8120 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
8121 (aarch64_remove_extra_call_preserved_regs): New function.
8122 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
8123 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
8124 * doc/tm.texi: Regenerate.
8125 * final.c (get_call_reg_set_usage): Call new hook.
8126 * target.def (remove_extra_call_preserved_regs): New hook.
8127 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
8128 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
8129
8130 2019-01-11 Jakub Jelinek <jakub@redhat.com>
8131
8132 PR bootstrap/88714
8133 * passes.c (finish_optimization_passes): Call print_combine_total_stats
8134 inside of pass_combine_1 dump rather than pass_profile_1.
8135
8136 2019-01-11 Tom de Vries <tdevries@suse.de>
8137
8138 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
8139 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
8140 (PTX_NUM_PER_WORKER_BARRIERS): Define.
8141 (nvptx_apply_dim_limits): Prevent vector_length 64 and
8142 num_workers 16.
8143
8144 2019-01-11 Tom de Vries <tdevries@suse.de>
8145
8146 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
8147
8148 2019-01-11 Jan Beulich <jbeulich@suse.com>
8149
8150 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
8151 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
8152 sse2_cvtsi2sd): Add {l}.
8153 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
8154 syntax.
8155
8156 2019-01-10 Jakub Jelinek <jakub@redhat.com>
8157
8158 PR target/88785
8159 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
8160 define_expand.
8161 (*float<floatunssuffix>v2div2sf2): New define_insn.
8162 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
8163 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
8164 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
8165 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
8166 match_operands with "const0_operand" "C".
8167
8168 2019-01-10 Tamar Christina <tamar.christina@arm.com>
8169
8170 * config/aarch64/aarch64-builtins.c
8171 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
8172 (aarch64_init_simd_builtins): ...Here
8173
8174 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
8175
8176 PR rtl-optimization/87305
8177 * lra-assigns.c
8178 (setup_live_pseudos_and_spill_after_risky_transforms): Check
8179 allocation for big endian pseudos used as paradoxical subregs and
8180 spill them if it is wrong.
8181 * lra-constraints.c (lra_constraints): Add a comment.
8182
8183 2019-01-10 Richard Biener <rguenther@suse.de>
8184
8185 PR tree-optimization/88792
8186 * tree-ssa-pre.c (get_representative_for): Do not return a
8187 value-number here.
8188
8189 2019-01-10 Jakub Jelinek <jakub@redhat.com>
8190
8191 PR middle-end/84877
8192 PR bootstrap/88450
8193 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
8194 (assign_parm_setup_block): Do the argument slot realignment here
8195 instead.
8196
8197 2019-01-10 Stefan Agner <stefan@agner.ch>
8198
8199 PR target/88648
8200 * config/arm/arm.c (arm_option_override_internal): Force
8201 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
8202
8203 2019-01-10 Jakub Jelinek <jakub@redhat.com>
8204
8205 PR c/88568
8206 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
8207 DECL_EXTERNAL.
8208
8209 2019-01-10 Tamar Christina <tamar.christina@arm.com>
8210
8211 * config/arm/arm-builtins.c
8212 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
8213 (MAC_LANE_PAIR_QUALIFIERS): New.
8214 (arm_expand_builtin_args): Use it.
8215 (arm_expand_builtin_1): Likewise.
8216 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
8217 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
8218 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
8219 * config/arm/arm_neon.h:
8220 (vcadd_rot90_f16): New.
8221 (vcaddq_rot90_f16): New.
8222 (vcadd_rot270_f16): New.
8223 (vcaddq_rot270_f16): New.
8224 (vcmla_f16): New.
8225 (vcmlaq_f16): New.
8226 (vcmla_lane_f16): New.
8227 (vcmla_laneq_f16): New.
8228 (vcmlaq_lane_f16): New.
8229 (vcmlaq_laneq_f16): New.
8230 (vcmla_rot90_f16): New.
8231 (vcmlaq_rot90_f16): New.
8232 (vcmla_rot90_lane_f16): New.
8233 (vcmla_rot90_laneq_f16): New.
8234 (vcmlaq_rot90_lane_f16): New.
8235 (vcmlaq_rot90_laneq_f16): New.
8236 (vcmla_rot180_f16): New.
8237 (vcmlaq_rot180_f16): New.
8238 (vcmla_rot180_lane_f16): New.
8239 (vcmla_rot180_laneq_f16): New.
8240 (vcmlaq_rot180_lane_f16): New.
8241 (vcmlaq_rot180_laneq_f16): New.
8242 (vcmla_rot270_f16): New.
8243 (vcmlaq_rot270_f16): New.
8244 (vcmla_rot270_lane_f16): New.
8245 (vcmla_rot270_laneq_f16): New.
8246 (vcmlaq_rot270_lane_f16): New.
8247 (vcmlaq_rot270_laneq_f16): New.
8248 (vcadd_rot90_f32): New.
8249 (vcaddq_rot90_f32): New.
8250 (vcadd_rot270_f32): New.
8251 (vcaddq_rot270_f32): New.
8252 (vcmla_f32): New.
8253 (vcmlaq_f32): New.
8254 (vcmla_lane_f32): New.
8255 (vcmla_laneq_f32): New.
8256 (vcmlaq_lane_f32): New.
8257 (vcmlaq_laneq_f32): New.
8258 (vcmla_rot90_f32): New.
8259 (vcmlaq_rot90_f32): New.
8260 (vcmla_rot90_lane_f32): New.
8261 (vcmla_rot90_laneq_f32): New.
8262 (vcmlaq_rot90_lane_f32): New.
8263 (vcmlaq_rot90_laneq_f32): New.
8264 (vcmla_rot180_f32): New.
8265 (vcmlaq_rot180_f32): New.
8266 (vcmla_rot180_lane_f32): New.
8267 (vcmla_rot180_laneq_f32): New.
8268 (vcmlaq_rot180_lane_f32): New.
8269 (vcmlaq_rot180_laneq_f32): New.
8270 (vcmla_rot270_f32): New.
8271 (vcmlaq_rot270_f32): New.
8272 (vcmla_rot270_lane_f32): New.
8273 (vcmla_rot270_laneq_f32): New.
8274 (vcmlaq_rot270_lane_f32): New.
8275 (vcmlaq_rot270_laneq_f32): New.
8276 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
8277 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
8278 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
8279 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
8280 vcmlaq_lane270): New.
8281 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
8282 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
8283 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
8284 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
8285 (arm_option_reconfigure_globals): Use them.
8286 * config/arm/iterators.md (VDF, VQ_HSF): New.
8287 (VCADD, VCMLA): New.
8288 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
8289 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
8290 New.
8291 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
8292 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
8293
8294 2019-01-10 Tamar Christina <tamar.christina@arm.com>
8295
8296 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
8297 Add qualifier_lane_pair_index.
8298 (emit-rtl.h): Include.
8299 (TYPES_QUADOP_LANE_PAIR): New.
8300 (aarch64_simd_expand_args): Use it.
8301 (aarch64_simd_expand_builtin): Likewise.
8302 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
8303 New.
8304 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
8305 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
8306 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
8307 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
8308 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
8309 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
8310 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
8311 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
8312 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
8313 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
8314 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
8315 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
8316 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
8317 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
8318 Add __ARM_FEATURE_COMPLEX.
8319 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
8320 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
8321 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
8322 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
8323 fcmlaq_lane270): New.
8324 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
8325 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
8326 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
8327 * config/aarch64/arm_neon.h:
8328 (vcadd_rot90_f16): New.
8329 (vcaddq_rot90_f16): New.
8330 (vcadd_rot270_f16): New.
8331 (vcaddq_rot270_f16): New.
8332 (vcmla_f16): New.
8333 (vcmlaq_f16): New.
8334 (vcmla_lane_f16): New.
8335 (vcmla_laneq_f16): New.
8336 (vcmlaq_lane_f16): New.
8337 (vcmlaq_rot90_lane_f16): New.
8338 (vcmla_rot90_laneq_f16): New.
8339 (vcmla_rot90_lane_f16): New.
8340 (vcmlaq_rot90_f16): New.
8341 (vcmla_rot90_f16): New.
8342 (vcmlaq_laneq_f16): New.
8343 (vcmla_rot180_laneq_f16): New.
8344 (vcmla_rot180_lane_f16): New.
8345 (vcmlaq_rot180_f16): New.
8346 (vcmla_rot180_f16): New.
8347 (vcmlaq_rot90_laneq_f16): New.
8348 (vcmlaq_rot270_laneq_f16): New.
8349 (vcmlaq_rot270_lane_f16): New.
8350 (vcmla_rot270_laneq_f16): New.
8351 (vcmlaq_rot270_f16): New.
8352 (vcmla_rot270_f16): New.
8353 (vcmlaq_rot180_laneq_f16): New.
8354 (vcmlaq_rot180_lane_f16): New.
8355 (vcmla_rot270_lane_f16): New.
8356 (vcadd_rot90_f32): New.
8357 (vcaddq_rot90_f32): New.
8358 (vcaddq_rot90_f64): New.
8359 (vcadd_rot270_f32): New.
8360 (vcaddq_rot270_f32): New.
8361 (vcaddq_rot270_f64): New.
8362 (vcmla_f32): New.
8363 (vcmlaq_f32): New.
8364 (vcmlaq_f64): New.
8365 (vcmla_lane_f32): New.
8366 (vcmla_laneq_f32): New.
8367 (vcmlaq_lane_f32): New.
8368 (vcmlaq_laneq_f32): New.
8369 (vcmla_rot90_f32): New.
8370 (vcmlaq_rot90_f32): New.
8371 (vcmlaq_rot90_f64): New.
8372 (vcmla_rot90_lane_f32): New.
8373 (vcmla_rot90_laneq_f32): New.
8374 (vcmlaq_rot90_lane_f32): New.
8375 (vcmlaq_rot90_laneq_f32): New.
8376 (vcmla_rot180_f32): New.
8377 (vcmlaq_rot180_f32): New.
8378 (vcmlaq_rot180_f64): New.
8379 (vcmla_rot180_lane_f32): New.
8380 (vcmla_rot180_laneq_f32): New.
8381 (vcmlaq_rot180_lane_f32): New.
8382 (vcmlaq_rot180_laneq_f32): New.
8383 (vcmla_rot270_f32): New.
8384 (vcmlaq_rot270_f32): New.
8385 (vcmlaq_rot270_f64): New.
8386 (vcmla_rot270_lane_f32): New.
8387 (vcmla_rot270_laneq_f32): New.
8388 (vcmlaq_rot270_lane_f32): New.
8389 (vcmlaq_rot270_laneq_f32): New.
8390 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
8391 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
8392 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
8393 (FCADD, FCMLA): New.
8394 (rot): New.
8395 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
8396
8397 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
8398
8399 PR other/16615
8400
8401 * config/pa/pa.c: Change "can not" to "cannot".
8402 * gimple-ssa-evrp-analyze.c: Likewise.
8403 * ipa-icf.c: Likewise.
8404 * ipa-polymorphic-call.c: Likewise.
8405 * ipa-pure-const.c: Likewise.
8406 * lra-constraints.c: Likewise.
8407 * lra-remat.c: Likewise.
8408 * reload1.c: Likewise.
8409 * reorg.c: Likewise.
8410 * tree-ssa-uninit.c: Likewise.
8411
8412 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
8413
8414 PR other/16615
8415
8416 * Makefile.in: Mechanically replace "can not" with "cannot".
8417 * alias.c: Likewise.
8418 * builtins.c: Likewise.
8419 * calls.c: Likewise.
8420 * cgraph.c: Likewise.
8421 * cgraph.h: Likewise.
8422 * cgraphclones.c: Likewise.
8423 * cgraphunit.c: Likewise.
8424 * combine-stack-adj.c: Likewise.
8425 * combine.c: Likewise.
8426 * common/config/i386/i386-common.c: Likewise.
8427 * config/aarch64/aarch64.c: Likewise.
8428 * config/alpha/sync.md: Likewise.
8429 * config/arc/arc.c: Likewise.
8430 * config/arc/predicates.md: Likewise.
8431 * config/arm/arm-c.c: Likewise.
8432 * config/arm/arm.c: Likewise.
8433 * config/arm/arm.h: Likewise.
8434 * config/arm/arm.md: Likewise.
8435 * config/arm/cortex-r4f.md: Likewise.
8436 * config/csky/csky.c: Likewise.
8437 * config/csky/csky.h: Likewise.
8438 * config/darwin-f.c: Likewise.
8439 * config/epiphany/epiphany.md: Likewise.
8440 * config/i386/i386.c: Likewise.
8441 * config/i386/sol2.h: Likewise.
8442 * config/m68k/m68k.c: Likewise.
8443 * config/mcore/mcore.h: Likewise.
8444 * config/microblaze/microblaze.md: Likewise.
8445 * config/mips/20kc.md: Likewise.
8446 * config/mips/sb1.md: Likewise.
8447 * config/nds32/nds32.c: Likewise.
8448 * config/nds32/predicates.md: Likewise.
8449 * config/pa/pa.c: Likewise.
8450 * config/rs6000/e300c2c3.md: Likewise.
8451 * config/rs6000/rs6000.c: Likewise.
8452 * config/s390/s390.h: Likewise.
8453 * config/sh/sh.c: Likewise.
8454 * config/sh/sh.md: Likewise.
8455 * config/spu/vmx2spu.h: Likewise.
8456 * cprop.c: Likewise.
8457 * dbxout.c: Likewise.
8458 * df-scan.c: Likewise.
8459 * doc/cfg.texi: Likewise.
8460 * doc/extend.texi: Likewise.
8461 * doc/fragments.texi: Likewise.
8462 * doc/gty.texi: Likewise.
8463 * doc/invoke.texi: Likewise.
8464 * doc/lto.texi: Likewise.
8465 * doc/md.texi: Likewise.
8466 * doc/objc.texi: Likewise.
8467 * doc/rtl.texi: Likewise.
8468 * doc/tm.texi: Likewise.
8469 * dse.c: Likewise.
8470 * emit-rtl.c: Likewise.
8471 * emit-rtl.h: Likewise.
8472 * except.c: Likewise.
8473 * expmed.c: Likewise.
8474 * expr.c: Likewise.
8475 * fold-const.c: Likewise.
8476 * genautomata.c: Likewise.
8477 * gimple-fold.c: Likewise.
8478 * hard-reg-set.h: Likewise.
8479 * ifcvt.c: Likewise.
8480 * ipa-comdats.c: Likewise.
8481 * ipa-cp.c: Likewise.
8482 * ipa-devirt.c: Likewise.
8483 * ipa-fnsummary.c: Likewise.
8484 * ipa-icf.c: Likewise.
8485 * ipa-inline-transform.c: Likewise.
8486 * ipa-inline.c: Likewise.
8487 * ipa-polymorphic-call.c: Likewise.
8488 * ipa-profile.c: Likewise.
8489 * ipa-prop.c: Likewise.
8490 * ipa-pure-const.c: Likewise.
8491 * ipa-reference.c: Likewise.
8492 * ipa-split.c: Likewise.
8493 * ipa-visibility.c: Likewise.
8494 * ipa.c: Likewise.
8495 * ira-build.c: Likewise.
8496 * ira-color.c: Likewise.
8497 * ira-conflicts.c: Likewise.
8498 * ira-costs.c: Likewise.
8499 * ira-int.h: Likewise.
8500 * ira-lives.c: Likewise.
8501 * ira.c: Likewise.
8502 * ira.h: Likewise.
8503 * loop-invariant.c: Likewise.
8504 * loop-unroll.c: Likewise.
8505 * lower-subreg.c: Likewise.
8506 * lra-assigns.c: Likewise.
8507 * lra-constraints.c: Likewise.
8508 * lra-eliminations.c: Likewise.
8509 * lra-lives.c: Likewise.
8510 * lra-remat.c: Likewise.
8511 * lra-spills.c: Likewise.
8512 * lra.c: Likewise.
8513 * lto-cgraph.c: Likewise.
8514 * lto-streamer-out.c: Likewise.
8515 * postreload-gcse.c: Likewise.
8516 * predict.c: Likewise.
8517 * profile-count.h: Likewise.
8518 * profile.c: Likewise.
8519 * recog.c: Likewise.
8520 * ree.c: Likewise.
8521 * reload.c: Likewise.
8522 * reload1.c: Likewise.
8523 * reorg.c: Likewise.
8524 * resource.c: Likewise.
8525 * rtl.def: Likewise.
8526 * rtl.h: Likewise.
8527 * rtlanal.c: Likewise.
8528 * sched-deps.c: Likewise.
8529 * sched-ebb.c: Likewise.
8530 * sched-rgn.c: Likewise.
8531 * sel-sched-ir.c: Likewise.
8532 * sel-sched.c: Likewise.
8533 * shrink-wrap.c: Likewise.
8534 * simplify-rtx.c: Likewise.
8535 * symtab.c: Likewise.
8536 * target.def: Likewise.
8537 * toplev.c: Likewise.
8538 * tree-call-cdce.c: Likewise.
8539 * tree-cfg.c: Likewise.
8540 * tree-complex.c: Likewise.
8541 * tree-core.h: Likewise.
8542 * tree-eh.c: Likewise.
8543 * tree-inline.c: Likewise.
8544 * tree-loop-distribution.c: Likewise.
8545 * tree-nrv.c: Likewise.
8546 * tree-profile.c: Likewise.
8547 * tree-sra.c: Likewise.
8548 * tree-ssa-alias.c: Likewise.
8549 * tree-ssa-dce.c: Likewise.
8550 * tree-ssa-dom.c: Likewise.
8551 * tree-ssa-forwprop.c: Likewise.
8552 * tree-ssa-loop-im.c: Likewise.
8553 * tree-ssa-loop-ivcanon.c: Likewise.
8554 * tree-ssa-loop-ivopts.c: Likewise.
8555 * tree-ssa-loop-niter.c: Likewise.
8556 * tree-ssa-phionlycprop.c: Likewise.
8557 * tree-ssa-phiopt.c: Likewise.
8558 * tree-ssa-propagate.c: Likewise.
8559 * tree-ssa-threadedge.c: Likewise.
8560 * tree-ssa-threadupdate.c: Likewise.
8561 * tree-ssa-uninit.c: Likewise.
8562 * tree-ssanames.c: Likewise.
8563 * tree-streamer-out.c: Likewise.
8564 * tree.c: Likewise.
8565 * tree.h: Likewise.
8566 * vr-values.c: Likewise.
8567
8568 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
8569
8570 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
8571 (ix86_split_xorsign): Ditto.
8572 * config/i386/i386.c (ix86_expand_xorsign): New function.
8573 (ix86_split_xorsign): Ditto.
8574 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
8575 (xorsign<mode>3): New expander.
8576 (xorsign<mode>3_1): New insn_and_split pattern.
8577 * config/i386/sse.md (xorsign<mode>3): New expander.
8578
8579 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
8580
8581 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
8582 (*tablejump_sp64): Likewise.
8583 (*tablejump<P:mode>): ...this.
8584 (*call_address_sp32): Merge into...
8585 (*call_address_sp64): Likewise.
8586 (*call_address<P:mode>): ...this.
8587 (*call_symbolic_sp32): Merge into...
8588 (*call_symbolic_sp64): Likewise.
8589 (*call_symbolic<P:mode>): ...this.
8590 (call_value): Remove constraint and add predicate.
8591 (*call_value_address_sp32): Merge into...
8592 (*call_value_address_sp64): Likewise.
8593 (*call_value_address<P:mode>): ...this.
8594 (*call_value_symbolic_sp32): Merge into...
8595 (*call_value_symbolic_sp64): Likewise.
8596 (*call_value_symbolic<P:mode>): ...this.
8597 (*sibcall_symbolic_sp32): Merge into...
8598 (*sibcall_symbolic_sp64): Likewise.
8599 (*sibcall_symbolic<P:mode>): ...this.
8600 (sibcall_value): Remove constraint and add predicate.
8601 (*sibcall_value_symbolic_sp32): Merge into...
8602 (*sibcall_value_symbolic_sp64): Likewise.
8603 (*sibcall_value_symbolic<P:mode>): ...this.
8604 (window_save): Minor tweak.
8605 (*branch_sp32): Merge into...
8606 (*branch_sp64): Likewise.
8607 (*branch<P:mode>): ...this.
8608
8609 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
8610 James Clarke <jrtc27@jrtc27.com>
8611
8612 PR target/84010
8613 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
8614 consistently in TLS address generation and adjust code to the renaming
8615 of patterns. Mark calls to __tls_get_addr as const.
8616 * config/sparc/sparc.md (tgd_hi22): Turn into...
8617 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
8618 (tgd_lo10): Turn into...
8619 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
8620 (tgd_add32): Merge into...
8621 (tgd_add64): Likewise.
8622 (tgd_add<P:mode>): ...this and use Pmode throughout.
8623 (tldm_hi22): Turn into...
8624 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
8625 (tldm_lo10): Turn into...
8626 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
8627 (tldm_add32): Merge into...
8628 (tldm_add64): Likewise.
8629 (tldm_add<P:mode>): ...this and use Pmode throughout.
8630 (tldm_call32): Merge into...
8631 (tldm_call64): Likewise.
8632 (tldm_call<P:mode>): ...this and use Pmode throughout.
8633 (tldo_hix22): Turn into...
8634 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
8635 (tldo_lox10): Turn into...
8636 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
8637 (tldo_add32): Merge into...
8638 (tldo_add64): Likewise.
8639 (tldo_add<P:mode>): ...this and use Pmode throughout.
8640 (tie_hi22): Turn into...
8641 (tie_hi22<P:mode>): ...this and use Pmode throughout.
8642 (tie_lo10): Turn into...
8643 (tie_lo10<P:mode>): ...this and use Pmode throughout.
8644 (tie_ld64): Use DImode throughout.
8645 (tie_add32): Merge into...
8646 (tie_add64): Likewise.
8647 (tie_add<P:mode>): ...this and use Pmode throughout.
8648 (tle_hix22_sp32): Merge into...
8649 (tle_hix22_sp64): Likewise.
8650 (tle_hix22<P:mode>): ...this and use Pmode throughout.
8651 (tle_lox22_sp32): Merge into...
8652 (tle_lox22_sp64): Likewise.
8653 (tle_lox22<P:mode>): ...this and use Pmode throughout.
8654 (*tldo_ldub_sp32): Merge into...
8655 (*tldo_ldub_sp64): Likewise.
8656 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
8657 (*tldo_ldub1_sp32): Merge into...
8658 (*tldo_ldub1_sp64): Likewise.
8659 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
8660 (*tldo_ldub2_sp32): Merge into...
8661 (*tldo_ldub2_sp64): Likewise.
8662 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
8663 (*tldo_ldsb1_sp32): Merge into...
8664 (*tldo_ldsb1_sp64): Likewise.
8665 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
8666 (*tldo_ldsb2_sp32): Merge into...
8667 (*tldo_ldsb2_sp64): Likewise.
8668 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
8669 (*tldo_ldub3_sp64): Use DImode throughout.
8670 (*tldo_ldsb3_sp64): Likewise.
8671 (*tldo_lduh_sp32): Merge into...
8672 (*tldo_lduh_sp64): Likewise.
8673 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
8674 (*tldo_lduh1_sp32): Merge into...
8675 (*tldo_lduh1_sp64): Likewise.
8676 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
8677 (*tldo_ldsh1_sp32): Merge into...
8678 (*tldo_ldsh1_sp64): Likewise.
8679 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
8680 (*tldo_lduh2_sp64): Use DImode throughout.
8681 (*tldo_ldsh2_sp64): Likewise.
8682 (*tldo_lduw_sp32): Merge into...
8683 (*tldo_lduw_sp64): Likewise.
8684 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
8685 (*tldo_lduw1_sp64): Use DImode throughout.
8686 (*tldo_ldsw1_sp64): Likewise.
8687 (*tldo_ldx_sp64): Likewise.
8688 (*tldo_stb_sp32): Merge into...
8689 (*tldo_stb_sp64): Likewise.
8690 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
8691 (*tldo_sth_sp32): Merge into...
8692 (*tldo_sth_sp64): Likewise.
8693 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
8694 (*tldo_stw_sp32): Merge into...
8695 (*tldo_stw_sp64): Likewise.
8696 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
8697 (*tldo_stx_sp64): Use DImode throughout.
8698
8699 2018-01-09 Sudakshina Das <sudi.das@arm.com>
8700
8701 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
8702 check configure option to set BTI and Return Address Signing.
8703 * configure.ac: Add --enable-standard-branch-protection and
8704 --disable-standard-branch-protection.
8705 * configure: Regenerated.
8706 * doc/install.texi: Document the same.
8707
8708 2018-01-09 Sudakshina Das <sudi.das@arm.com>
8709 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
8710
8711 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
8712 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
8713 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
8714 if bti is enabled.
8715 * config/aarch64/aarch64-bti-insert.c: New file.
8716 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
8717 pass.
8718 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
8719 new bti pass.
8720 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
8721 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
8722 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
8723 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
8724
8725 2018-01-09 Sudakshina Das <sudi.das@arm.com>
8726
8727 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
8728 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
8729 Disable bti for -mbranch-protection=none.
8730 (aarch64_handle_standard_branch_protection): Enable bti for
8731 -mbranch-protection=standard.
8732 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
8733 -mbranch-protection.
8734 (aarch64_bti_enabled): Check if bti is enabled.
8735 * config/aarch64/aarch64.opt: Declare target variable.
8736 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
8737
8738 2018-01-09 Sudakshina Das <sudi.das@arm.com>
8739
8740 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
8741 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
8742 (aarch64_expand_epilogue): Likewise.
8743 (aarch64_output_mi_thunk): Likewise
8744 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
8745 TAILCALL_ADDR_REGS to x16 and x17.
8746 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
8747
8748 2018-01-09 Sudakshina Das <sudi.das@arm.com>
8749
8750 * config/aarch64/aarch64-option-extensions.def: Define
8751 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
8752 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
8753 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
8754 (AARCH64_FL_PREDRES): New.
8755 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
8756 AARCH64_FL_PREDRES by default.
8757 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
8758
8759 2018-01-09 Sudakshina Das <sudi.das@arm.com>
8760
8761 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
8762 ARMv8.5-A.
8763 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
8764 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
8765 * doc/invoke.texi: Document ARMv8.5-A.
8766
8767 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
8768
8769 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
8770 (xorsign<mode>3): Likewise.
8771
8772 2019-01-09 Jelinek <jakub@redhat.com>
8773
8774 PR middle-end/88758
8775 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
8776 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
8777
8778 PR rtl-optimization/88331
8779 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
8780 not currently_expanding_to_rtl.
8781
8782 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
8783
8784 * doc/invoke.texi (-Os): Remove trailing spaces.
8785 (-finline-functions): Remove reference to -O2.
8786
8787 2019-01-08 Jakub Jelinek <jakub@redhat.com>
8788
8789 PR rtl-optimization/79593
8790 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
8791
8792 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
8793 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
8794
8795 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
8796
8797 PR bootstrap/88721
8798 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
8799 to -1 on entry.
8800
8801 PR debug/88723
8802 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
8803 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
8804
8805 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
8806
8807 PR target/88717
8808 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
8809 ix86_avx_u128_mode_entry.
8810
8811 2019-01-08 Martin Liska <mliska@suse.cz>
8812
8813 PR tree-optimization/88753
8814 * tree-switch-conversion.c (switch_conversion::build_one_array):
8815 Come up with local variable constructor. Convert first to
8816 type of constructor values.
8817
8818 2019-01-08 Richard Biener <rguenther@suse.de>
8819
8820 PR tree-optimization/86554
8821 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
8822 rpo_avail): Move earlier.
8823 (visit_nary_op): When value-numbering to expressions
8824 with different overflow behavior make sure there's an
8825 available expression on the path.
8826
8827 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
8828
8829 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
8830 aarch64_parse_branch_protection,
8831 struct aarch64_branch_protect_type,
8832 aarch64_handle_no_branch_protection,
8833 aarch64_handle_standard_branch_protection,
8834 aarch64_validate_mbranch_protection,
8835 aarch64_handle_pac_ret_protection,
8836 aarch64_handle_attr_branch_protection,
8837 accepted_branch_protection_string,
8838 aarch64_pac_ret_subtypes,
8839 aarch64_branch_protect_types,
8840 aarch64_handle_pac_ret_leaf): Define.
8841 (aarch64_override_options_after_change_1, aarch64_override_options):
8842 Add check for accepted_branch_protection_string.
8843 (aarch64_option_save): Save accepted_branch_protection_string.
8844 (aarch64_option_restore): Save accepted_branch_protection_string.
8845 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
8846 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
8847 msign-return-address.
8848 * doc/invoke.texi: Add mbranch-protection.
8849
8850 2019-01-08 Alan Modra <amodra@gmail.com>
8851
8852 PR target/88614
8853 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
8854 Delete "unknownp" parameter. Adjust callers. Handle
8855 CONST_INT, PLUS, MINUS, and MULT.
8856 (attr_value_aligned): Renamed from or_attr_value.
8857 (min_attr_value): Return INT_MIN for unhandled rtl case..
8858 (min_fn): ..and translate to INT_MAX here.
8859 (write_length_unit_log): Modify to cope without "unknown".
8860 (write_attr_value): Handle IF_THEN_ELSE.
8861
8862 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
8863
8864 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
8865 optimization for masked stores.
8866
8867 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
8868
8869 PR middle-end/88567
8870 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
8871 output vector directly to duplicate_and_interleave instead of
8872 going through a temporary. Postpone insertion of ctor_seq to
8873 the end of the loop.
8874
8875 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
8876
8877 PR target/86891
8878 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
8879 unsigned_p. Handle signed and unsigned overflow correction as
8880 required.
8881 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
8882 prototype.
8883 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
8884 for operand 2.
8885 (add<mode>3_compareV_imm): Make this callable for expanding.
8886 (subv<GPI:mode>4): Use register_operand for operand 1. Use
8887 aarch64_plus_operand for operand 2.
8888 (subv<GPI:mode>_insn): New insn pattern.
8889 (subv<GPI:mode>_imm): Likewise.
8890 (negv<GPI:mode>3): New expand pattern.
8891 (negv<GPI:mode>_insn): New insn pattern.
8892 (negv<GPI:mode>_cmp_only): Likewise.
8893 (cmpv<GPI:mode>_insn): Likewise.
8894 (subvti4): Use register_operand for operand 1. Update call to
8895 aarch64_expand_subvti.
8896 (usubvti4): Likewise.
8897 (negvti3): New expand pattern.
8898 (negdi_carryout): New insn pattern.
8899 (negvdi_carryinV): New insn pattern.
8900 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
8901 version the named version.
8902 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
8903 operands.
8904 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
8905 patterns.
8906 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
8907 patterns.
8908 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
8909 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
8910 (sub<mode>3_carryinCV): Delete.
8911 (sub<GPI:mode>3_carryinV): New expand pattern.
8912 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
8913
8914 2019-01-07 Richard Biener <rguenther@suse.de>
8915
8916 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
8917 of tree_operand_hash.
8918
8919 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
8920
8921 PR tree-optimization/88598
8922 * tree.h (single_nonzero_element): Declare.
8923 * tree.c (single_nonzero_element): New function.
8924 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
8925 if I is the only nonzero element of CST.
8926
8927 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
8928
8929 PR tree-optimization/88598
8930 * tree.h (initializer_each_zero_or_onep): Declare.
8931 * tree.c (initializer_each_zero_or_onep): New function.
8932 (signed_or_unsigned_type_for): Handle float types too.
8933 (unsigned_type_for, signed_type_for): Update comments accordingly.
8934 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
8935 x & { 0 or -1, 0 or -1, ... }.
8936
8937 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
8938
8939 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
8940 with x86_64-pc-linux-gnu.
8941
8942 2019-01-07 Tom de Vries <tdevries@suse.de>
8943
8944 PR target/85486
8945 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
8946 function.
8947 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
8948 routines.
8949
8950 2019-01-07 Jakub Jelinek <jakub@redhat.com>
8951
8952 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
8953 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
8954 TARGET_AVX512F as condition.
8955
8956 PR debug/88723
8957 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
8958 const_not_ok_for_debug_p target hook.
8959 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
8960 on UNSPEC and subexpressions thereof if all subexpressions of the
8961 UNSPEC are CONSTANT_P.
8962
8963 PR tree-optimization/88676
8964 * tree-ssa-phiopt.c (two_value_replacement): New function.
8965 (tree_ssa_phiopt_worker): Call it.
8966
8967 PR sanitizer/88619
8968 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
8969 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
8970
8971 PR c++/85052
8972 * tree-vect-generic.c: Include insn-config.h and recog.h.
8973 (expand_vector_piecewise): Add defaulted ret_type argument,
8974 if non-NULL, use that in preference to type for the result type.
8975 (expand_vector_parallel): Formatting fix.
8976 (do_vec_conversion, do_vec_narrowing_conversion,
8977 expand_vector_conversion): New functions.
8978 (expand_vector_operations_1): Call expand_vector_conversion
8979 for VEC_CONVERT ifn calls.
8980 * internal-fn.def (VEC_CONVERT): New internal function.
8981 * internal-fn.c (expand_VEC_CONVERT): New function.
8982 * fold-const-call.c (fold_const_vec_convert): New function.
8983 (fold_const_call): Use it for CFN_VEC_CONVERT.
8984 * doc/extend.texi (__builtin_convertvector): Document.
8985
8986 2019-01-07 Tom de Vries <tdevries@suse.de>
8987
8988 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
8989 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
8990 vector_red_partition, vector_red_sym): New global variables.
8991 (nvptx_option_override): Initialize vector_red_sym.
8992 (nvptx_declare_function_name): Restore red_partition register.
8993 (nvptx_file_end): Emit code to declare the vector reduction variables.
8994 (nvptx_output_red_partition): New function.
8995 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
8996 large vector reductions.
8997 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
8998 (nvptx_init_builtins): Add VECTOR_ADDR.
8999 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
9000 Handle nvptx_expand_shared_addr.
9001 (nvptx_get_shared_red_addr): Add vector argument and handle large
9002 vectors.
9003 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
9004 large vectors.
9005 (nvptx_goacc_reduction_init): Likewise.
9006 (nvptx_goacc_reduction_fini): Likewise.
9007 (nvptx_goacc_reduction_teardown): Likewise.
9008 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
9009 init,fini,teardown}.
9010 (nvptx_init_axis_predicate): Initialize vector_red_partition.
9011 (nvptx_set_current_function): Init vector_red_partition.
9012 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
9013 (nvptx_red_partition): New insn.
9014 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
9015
9016 2019-01-07 Tom de Vries <tdevries@suse.de>
9017
9018 PR target/85381
9019 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
9020 empty loops.
9021
9022 2019-01-07 Tom de Vries <tdevries@suse.de>
9023
9024 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
9025 (nvptx_option_override): Init oacc_bcast_partition.
9026 (nvptx_init_oacc_workers): New function.
9027 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
9028 (nvptx_needs_shared_bcast): New function.
9029 (nvptx_find_par): Generalize to enable vectors to use shared-memory
9030 to propagate state.
9031 (nvptx_shared_propagate): Initialize vector bcast partition and
9032 synchronization state.
9033 (nvptx_single): Generalize to enable vectors to use shared-memory
9034 to propagate state.
9035 (nvptx_process_pars): Likewise.
9036 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
9037 * config/nvptx/nvptx.h (struct machine_function): Add
9038 bcast_partition and sync_bar members.
9039
9040 2019-01-07 Tom de Vries <tdevries@suse.de>
9041
9042 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
9043 (nvptx_apply_dim_limits): New function.
9044 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
9045 PTX_WARP_SIZE.
9046
9047 2019-01-07 Tom de Vries <tdevries@suse.de>
9048
9049 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
9050 as late as possible.
9051
9052 2019-01-07 Tom de Vries <tdevries@suse.de>
9053
9054 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
9055 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
9056 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
9057 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
9058 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
9059
9060 2019-01-07 Tom de Vries <tdevries@suse.de>
9061
9062 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
9063
9064 2019-01-07 Tom de Vries <tdevries@suse.de>
9065
9066 * omp-offload.c (oacc_get_min_dim): New function.
9067 * omp-offload.h (oacc_get_min_dim): Declare.
9068
9069 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
9070
9071 PR target/88521
9072 * config/i386/i386.c (function_value_ms_64): Return small sturct in
9073 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
9074
9075 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
9076
9077 PR tree-opt/86020
9078 Revert:
9079 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
9080
9081 * ipa-inline.c (edge_badness): Use inlined_time instead of
9082 inline_summaries->get.
9083
9084 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
9085
9086 * opts.c (enable_fdo_optimizations): Enable
9087 version-loops-for-strides, loop-interchange, unrol-and-jam
9088 and tree-loop-distribution.
9089 * invoke.texi: Document newly enabled options.
9090
9091 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
9092
9093 * doc/invoke.texi (max-inline-insns-small): New parameters.
9094 * ipa-inline.c (want_early_inline_function_p): simplify.
9095 (want_inline_small_function_p): Fix pasto from previous patch;
9096 use max-inline-insns-small bound.
9097 * params.def (max-inline-insns-small): New param.
9098 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
9099 variables correctly.
9100
9101 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
9102
9103 * doc/invoke.texi: Document max-inline-insns-size,
9104 uninlined-function-insns, uninlined-function-time,
9105 uninlined-thunk-insns and uninlined-thunk-time.
9106 * params.def: Add max-inline-insns-size,
9107 uninlined-function-insns, uninlined-function-time,
9108 uninlined-thunk-insns and uninlined-thunk-time.
9109 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
9110 new parameters.
9111 * ipa-inline.c (can_inline_edge_by_limits_p,
9112 want_inline_small_function_p): Use new parameters.
9113
9114 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
9115
9116 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
9117
9118 2019-01-05 Jakub Jelinek <jakub@redhat.com>
9119
9120 PR middle-end/82564
9121 PR target/88620
9122 * expr.c (expand_assignment): For calls returning VLA structures
9123 if to_rtx is not a MEM, force it into a stack temporary.
9124
9125 PR debug/88635
9126 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
9127 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
9128 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
9129 subexpressions of both operands.
9130 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
9131 subrtxes are CONSTANT_P.
9132 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
9133 2018-11-09 changes.
9134
9135 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
9136
9137 * params.def (hot-bb-count-ws-permille): Set to 990.
9138
9139 2019-01-04 Martin Sebor <msebor@redhat.com>
9140
9141 PR c/88546
9142 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
9143 leaf.
9144
9145 2019-01-04 Martin Sebor <msebor@redhat.com>
9146
9147 PR c/88363
9148 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
9149
9150 2019-01-04 Jakub Jelinek <jakub@redhat.com>
9151
9152 * gdbinit.in: Turn off pagination for the skip commands, restore
9153 it to previous state afterwards.
9154
9155 2019-01-04 Jakub Jelinek <jakub@redhat.com>
9156
9157 PR target/88594
9158 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
9159 of GET_MODE (opN) as modes of the libcall arguments.
9160
9161 2019-01-04 Jan Beulich <jbeulich@suse.com>
9162
9163 * config/i386/sse.md
9164 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
9165 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
9166 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
9167 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
9168 avx512f_vmcmp<mode>3<round_saeonly_name>,
9169 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
9170 avx512f_maskcmp<mode>3,
9171 <avx512>_cvt<ssemodesuffix>2mask<mode>,
9172 <avx512>_cvt<ssemodesuffix>2mask<mode>,
9173 *<avx512>_cvtmask2<ssemodesuffix><mode>,
9174 *<avx512>_cvtmask2<ssemodesuffix><mode>,
9175 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
9176 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
9177 <avx512>_gt<mode>3<mask_scalar_merge_name>,
9178 <avx512>_gt<mode>3<mask_scalar_merge_name>,
9179 <avx512>_testm<mode>3<mask_scalar_merge_name>,
9180 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
9181 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
9182 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
9183 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
9184 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
9185 avx512cd_maskb_vec_dup<mode>,
9186 avx512cd_maskw_vec_dup<mode>,
9187 avx512dq_fpclass<mode><mask_scalar_merge_name>,
9188 avx512dq_vmfpclass<mode>,
9189 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
9190 instead of =Yk.
9191
9192 2019-01-03 Martin Sebor <msebor@redhat.com>
9193
9194 PR tree-optimization/88659
9195 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
9196
9197 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
9198
9199 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
9200 unaligned vsx and avoid lxvd2x/stxvd2x.
9201 (gen_lvx_v4si_move): New function.
9202
9203 2019-01-03 Tom de Vries <tdevries@suse.de>
9204
9205 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
9206 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
9207 function.
9208 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
9209
9210 2019-01-03 Tom de Vries <tdevries@suse.de>
9211
9212 * config/nvptx/nvptx.c (struct offload_attrs): New.
9213 (populate_offload_attrs): New function. Factor mask extraction out of
9214 nvptx_reorg. Add extraction of dimensions.
9215 (nvptx_reorg): Use populate_offload_attrs.
9216
9217 2019-01-03 Tom de Vries <tdevries@suse.de>
9218
9219 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
9220 cases for oacc_min_dims_p and routine_p. Add asserts for
9221 oacc_default_dims_p and offload_region_p.
9222
9223 2019-01-03 Tom de Vries <tdevries@suse.de>
9224
9225 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
9226 factored out of ...
9227 (nvptx_goacc_validate_dims): ... here.
9228
9229 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
9230
9231 PR tree-optimization/85574
9232 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
9233 structure.
9234 (struct ssa_equip_hash_traits): Declare.
9235 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
9236
9237 2019-01-03 Jakub Jelinek <jakub@redhat.com>
9238
9239 PR debug/88644
9240 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
9241 change it to qualified_type.
9242
9243 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
9244
9245 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
9246 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
9247
9248 2019-01-02 Martin Sebor <msebor@redhat.com>
9249 Jeff Law <law@redhat.com>
9250
9251 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
9252 (get_range_strlen_tree): Update appropriately.
9253 (get_range_strlen)
9254 * gimple-fold.h (get_range_strlen): Drop unused last argument.
9255
9256 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
9257 rather than set_range_info.
9258 * tree-ssa-strlen.c (set_strlen_range): Extracted from
9259 maybe_set_strlen_range. Handle potentially boundary crossing
9260 cases more conservatively.
9261 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
9262 Call set_strlen_range.
9263 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
9264
9265 PR middle-end/88663
9266 * gimple-fold.c (get_range_strlen): Update prototype to no longer
9267 need the flexp argument.
9268 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
9269 from calls to get_range_strlen. Update comments. Just update
9270 VAL for an unterminated const char array and let the reset of the
9271 code handle it normally. No longer try to set *flexp. Adjust
9272 return value.
9273 (get_range_strlen): Update for the new get_range_strlen API.
9274 (get_maxval_strlen): Similarly.
9275 (gimple_fold_builtin_strlen): Handle update meaning of return value
9276 from get_range_strlen.
9277 * gimple-ssa-sprintf.c (get_string_length): Update for the new
9278 get_range_strlen API.
9279
9280 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
9281
9282 PR lto/88130
9283 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
9284 false at WPA time when body was removed.
9285
9286 2019-01-02 Martin Liska <mliska@suse.cz>
9287
9288 PR tree-optimization/88650
9289 * predict.c (set_even_probabilities): Calculate probability
9290 remainer only when really used.
9291
9292 2019-01-02 Richard Biener <rguenther@suse.de>
9293
9294 PR middle-end/88651
9295 * tree-data-ref.c (analyze_subscript_affine_affine): Use
9296 widest_ints when mangling max_stmt_execution results.
9297
9298 2019-01-02 Richard Biener <rguenther@suse.de>
9299
9300 PR tree-optimization/88621
9301 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
9302 bitfields when canoncalizing.
9303
9304 2019-01-02 Richard Biener <rguenther@suse.de>
9305
9306 PR target/87545
9307 * config/i386/x86-tune-costs.h (intel_cost): Adjust
9308 cost of cheap SSE instruction.
9309
9310 2019-01-02 Richard Biener <rguenther@suse.de>
9311
9312 PR ipa/85574
9313 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
9314 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
9315 function.
9316 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
9317 set after UIDs before splitting them.
9318
9319 2019-01-01 Martin Sebor <msebor@redhat.com>
9320 Jeff Law <law@redhat.com>
9321
9322 * gimple-fold.c (get_range_strlen_tree): Record if the computed
9323 length is optimistic. If it is, then arrange to compute the
9324 conservative length as well.
9325
9326 * gimple-fold.h (get_range_strlen): Update prototype.
9327 * builtins.c (check_access): Update call to get_range_strlen to use
9328 c_strlen_data pointer. Change various variable accesses to instead
9329 pull data from the c_strlen_data structure.
9330 (check_strncat_sizes, expand_builtin_strncat): Likewise.
9331 * calls.c (maybe_warn_nonstring_arg): Likewise.
9332 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
9333 minimum length if maximum lengh is unknown.
9334 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
9335 that used c_strlen, it's no longer needed. Restructure slightly.
9336 (format_string): Set unlikely range appropriately.
9337 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
9338 formatting issues.
9339 (get_range_strlen): Accept c_strlen_data pointer for external
9340 call sites as well. Pass through to call to internal get_range_strlen.
9341 Adjust minlen, maxlen and maxbound as needed.
9342 (get_maxval_strlen): Update comments.
9343 (gimple_fold_builtin_strlen): Update call to get_range_strlen
9344 to use c_strlen_data pointer. Change variable accesses to instead
9345 use c_strlen_data data members.
9346
9347 * gimple-fold.c (get_range_strlen): Update prototype.
9348 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
9349 local variables. Use pdata to return information to caller.
9350 Update calls to get_range_strlen. Update pdata->maxbound.
9351 (get_range_strlen -- static version): Similarly.
9352 (get_range_strlen -- extern version): Update for internal
9353 get_range_strlen API change. Convert to external data format.
9354 (get_maxval_strlen): Similarly.
9355
9356 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
9357
9358 * coverage.c (get_coverage_counts): Use current_function_decl.
9359 * profile.c (read_thunk_profile): New function.
9360 (branch_prob): Add THUNK parameter.
9361 * tree-profile.c (tree_profiling): Handle thunks.
9362 * value-prof.c (init_node_map): Handle thunks.
9363 * value-prof.h (branch_prob): Upate prototype.
9364 (read_thunk_profile): Declare.
9365
9366 2019-01-01 Jakub Jelinek <jakub@redhat.com>
9367
9368 Update copyright years.
9369
9370 * gcc.c (process_command): Update copyright notice dates.
9371 * gcov-dump.c (print_version): Ditto.
9372 * gcov.c (print_version): Ditto.
9373 * gcov-tool.c (print_version): Ditto.
9374 * gengtype.c (create_file): Ditto.
9375 * doc/cpp.texi: Bump @copying's copyright year.
9376 * doc/cppinternals.texi: Ditto.
9377 * doc/gcc.texi: Ditto.
9378 * doc/gccint.texi: Ditto.
9379 * doc/gcov.texi: Ditto.
9380 * doc/install.texi: Ditto.
9381 * doc/invoke.texi: Ditto.
9382 \f
9383 Copyright (C) 2019 Free Software Foundation, Inc.
9384
9385 Copying and distribution of this file, with or without modification,
9386 are permitted in any medium without royalty provided the copyright
9387 notice and this notice are preserved.