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